mirror of
https://github.com/SecurityBrewery/catalyst.git
synced 2026-04-28 21:47:59 +02:00
Release catalyst
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
swagger: "2.0"
|
||||
info: { version: "", title: "" }
|
||||
|
||||
paths:
|
||||
/graph/{col}/{id}:
|
||||
get:
|
||||
tags: [ "graph" ]
|
||||
summary: "Graph"
|
||||
operationId: "graph"
|
||||
parameters:
|
||||
- { name: "col", in: "path", description: "Graph Start", required: true, type: string, x-example: "tickets" }
|
||||
- { name: "id", in: "path", description: "Graph Start", required: true, type: string, x-example: "88" }
|
||||
- { name: "depth", in: "query", description: "Graph Start", required: true, type: integer, x-example: 1 }
|
||||
responses:
|
||||
"200":
|
||||
description: "successful operation"
|
||||
schema: { $ref: "#/definitions/Graph" }
|
||||
examples:
|
||||
test:
|
||||
nodes:
|
||||
- { id: "artifacts/94d5cab6f5fe3422a447ab15436e7a672bc0c09a", name: "94d5cab6f5fe3422a447ab15436e7a672bc0c09a" }
|
||||
- { id: "artifacts/http%3A%2F%2Fwww.customerviral.io%2Fscalable%2Fvertical%2Fkiller", name: "http://www.customerviral.io/scalable/vertical/killer" }
|
||||
- { id: "artifacts/leadreintermediate.io", name: "leadreintermediate.io" }
|
||||
- { id: "tickets/88", name: "live zebra" }
|
||||
links:
|
||||
- { id: "296239", sid: "tickets/88", tid: "artifacts/http%3A%2F%2Fwww.customerviral.io%2Fscalable%2Fvertical%2Fkiller" }
|
||||
- { id: "296240", sid: "tickets/88", tid: "artifacts/leadreintermediate.io" }
|
||||
- { id: "296242", sid: "tickets/88", tid: "artifacts/94d5cab6f5fe3422a447ab15436e7a672bc0c09a" }
|
||||
security: [ { roles: [ "ticket:read" ] } ]
|
||||
|
||||
definitions:
|
||||
Graph:
|
||||
type: object
|
||||
properties:
|
||||
nodes: { type: array, items: { $ref: "#/definitions/Node" } }
|
||||
links: { type: array, items: { $ref: "#/definitions/Link" } }
|
||||
|
||||
Node:
|
||||
type: object
|
||||
required: [ id, name ]
|
||||
properties:
|
||||
id: { type: string }
|
||||
name: { type: string }
|
||||
|
||||
Link:
|
||||
type: object
|
||||
required: [ id, tid, sid ]
|
||||
properties:
|
||||
id: { type: string }
|
||||
# name: { type: string }
|
||||
tid: { type: string }
|
||||
sid: { type: string }
|
||||
@@ -0,0 +1,84 @@
|
||||
swagger: "2.0"
|
||||
info: { version: "", title: "" }
|
||||
|
||||
paths:
|
||||
/groups:
|
||||
get:
|
||||
tags: [ "groups" ]
|
||||
summary: "List groups"
|
||||
operationId: "listGroups"
|
||||
responses:
|
||||
"200":
|
||||
description: "successful operation"
|
||||
schema: { type: array, items: { $ref: "#/definitions/Group" } }
|
||||
security: [ { roles: [ "group:read" ] } ]
|
||||
post:
|
||||
tags: [ "groups" ]
|
||||
summary: "Create a new group"
|
||||
operationId: "createGroup"
|
||||
parameters:
|
||||
- { name: "group", in: "body", description: "New group", required: true, schema: { $ref: "#/definitions/GroupForm" } }
|
||||
responses:
|
||||
"200":
|
||||
description: "successful operation"
|
||||
schema: { $ref: "#/definitions/GroupResponse" }
|
||||
security: [ { roles: [ "group:write" ] } ]
|
||||
|
||||
/groups/{id}:
|
||||
get:
|
||||
tags: [ "groups" ]
|
||||
summary: "Get a single group"
|
||||
operationId: "getGroup"
|
||||
parameters:
|
||||
- { name: "id", in: "path", description: "Group ID", required: true, type: string }
|
||||
responses:
|
||||
"200":
|
||||
description: "successful operation"
|
||||
schema: { $ref: "#/definitions/GroupResponse" }
|
||||
security: [ { roles: [ "group:read" ] } ]
|
||||
put:
|
||||
tags: [ "groups" ]
|
||||
summary: "Update an existing group"
|
||||
operationId: "updateGroup"
|
||||
parameters:
|
||||
- { name: "id", in: "path", description: "Group ID", required: true, type: string }
|
||||
- { name: "group", in: "body", description: "Group object that needs to be added", required: true, schema: { $ref: "#/definitions/Group" } }
|
||||
responses:
|
||||
"200":
|
||||
description: "successful operation"
|
||||
schema: { $ref: "#/definitions/Group" }
|
||||
security: [ { roles: [ "group:write" ] } ]
|
||||
delete:
|
||||
tags: [ "groups" ]
|
||||
summary: "Delete a group"
|
||||
operationId: "deleteGroup"
|
||||
parameters:
|
||||
- { name: "id", in: "path", description: "Group ID", required: true, type: string }
|
||||
responses:
|
||||
"204": { description: "successful operation" }
|
||||
security: [ { roles: [ "group:write" ] } ]
|
||||
|
||||
definitions:
|
||||
GroupForm:
|
||||
type: object
|
||||
required: [ name, users ]
|
||||
properties:
|
||||
id: { type: string }
|
||||
name: { type: string }
|
||||
users: { type: array, items: { type: string } }
|
||||
|
||||
Group:
|
||||
type: object
|
||||
required: [ name, users ]
|
||||
properties:
|
||||
name: { type: string }
|
||||
users: { type: array, items: { type: string } }
|
||||
|
||||
|
||||
GroupResponse:
|
||||
type: object
|
||||
required: [ id, name, users ]
|
||||
properties:
|
||||
id: { type: string }
|
||||
name: { type: string }
|
||||
users: { type: array, items: { type: string } }
|
||||
@@ -0,0 +1,110 @@
|
||||
swagger: "2.0"
|
||||
info: { version: "", title: "" }
|
||||
|
||||
paths:
|
||||
/rules:
|
||||
get:
|
||||
tags: [ "rules" ]
|
||||
summary: "List rules"
|
||||
operationId: "listRules"
|
||||
responses:
|
||||
"200":
|
||||
description: "successful operation"
|
||||
schema: { type: array, items: { $ref: "#/definitions/RuleResponse" } }
|
||||
examples:
|
||||
test:
|
||||
- id: ignore-alerts
|
||||
name: Ignore Alerts
|
||||
condition: "type == 'alert'"
|
||||
update: { "status": "closed" }
|
||||
security: [ { roles: [ "rule:read" ] } ]
|
||||
post:
|
||||
tags: [ "rules" ]
|
||||
summary: "Create a rule"
|
||||
operationId: "createRule"
|
||||
parameters:
|
||||
- { name: "rule", in: "body", description: "New rule", required: true, schema: { $ref: "#/definitions/RuleForm" }, x-example: { name: "Ignore all Alerts", condition: "type == 'alert'", update: { "status": "closed" } } }
|
||||
responses:
|
||||
"200":
|
||||
description: "successful operation"
|
||||
schema: { type: array, items: { $ref: "#/definitions/RuleResponse" } }
|
||||
examples:
|
||||
test:
|
||||
id: ignore-all-alerts
|
||||
name: Ignore all Alerts
|
||||
condition: "type == 'alert'"
|
||||
update: { "status": "closed" }
|
||||
security: [ { roles: [ "rule:write" ] } ]
|
||||
|
||||
/rules/{id}:
|
||||
get:
|
||||
tags: [ "rules" ]
|
||||
summary: "Get a single rule"
|
||||
operationId: "getRule"
|
||||
parameters:
|
||||
- { name: "id", in: "path", description: "Rule name", required: true, type: string, x-example: "ignore-alerts" }
|
||||
responses:
|
||||
"200":
|
||||
description: "successful operation"
|
||||
schema: { $ref: "#/definitions/RuleResponse" }
|
||||
examples:
|
||||
test:
|
||||
id: ignore-alerts
|
||||
name: Ignore Alerts
|
||||
condition: "type == 'alert'"
|
||||
update: { "status": "closed" }
|
||||
security: [ { roles: [ "rule:read" ] } ]
|
||||
put:
|
||||
tags: [ "rules" ]
|
||||
summary: "Update an existing ticket rule"
|
||||
operationId: "updateRule"
|
||||
parameters:
|
||||
- { name: "id", in: "path", description: "Rule ID", required: true, type: string, x-example: "ignore-alerts" }
|
||||
- { name: "rule", in: "body", description: "Updated rule", required: true, schema: { $ref: "#/definitions/RuleForm" }, x-example: { name: "Ignore Alerts", condition: "type == 'alert'", update: { "status": "invalid" } } }
|
||||
responses:
|
||||
"200":
|
||||
description: "successful operation"
|
||||
schema: { $ref: "#/definitions/RuleResponse" }
|
||||
examples:
|
||||
test:
|
||||
id: ignore-alerts
|
||||
name: Ignore Alerts
|
||||
condition: "type == 'alert'"
|
||||
update: { "status": "invalid" }
|
||||
security: [ { roles: [ "rule:write" ] } ]
|
||||
delete:
|
||||
tags: [ "rules" ]
|
||||
summary: "Delete a rule"
|
||||
operationId: "deleteRule"
|
||||
parameters:
|
||||
- { name: "id", in: "path", description: "Rule name", required: true, type: string, x-example: "ignore-alerts" }
|
||||
responses:
|
||||
"204": { description: "successful operation" }
|
||||
security: [ { roles: [ "rule:write" ] } ]
|
||||
|
||||
definitions:
|
||||
RuleForm:
|
||||
type: object
|
||||
required: [ name, condition, update ]
|
||||
properties:
|
||||
id: { type: string }
|
||||
name: { type: string }
|
||||
condition: { type: string }
|
||||
update: { type: object }
|
||||
|
||||
Rule:
|
||||
type: object
|
||||
required: [ name, condition, update ]
|
||||
properties:
|
||||
name: { type: string }
|
||||
condition: { type: string }
|
||||
update: { type: object }
|
||||
|
||||
RuleResponse:
|
||||
type: object
|
||||
required: [ id, name, condition, update ]
|
||||
properties:
|
||||
id: { type: string }
|
||||
name: { type: string }
|
||||
condition: { type: string }
|
||||
update: { type: object }
|
||||
Reference in New Issue
Block a user