mirror of
https://github.com/SecurityBrewery/catalyst.git
synced 2025-12-06 15:22:47 +01:00
161 lines
6.3 KiB
YAML
161 lines
6.3 KiB
YAML
swagger: "2.0"
|
|
info: { version: "", title: "" }
|
|
|
|
paths:
|
|
/automations:
|
|
get:
|
|
tags: [ "automations" ]
|
|
summary: "List automations"
|
|
operationId: "listAutomations"
|
|
responses:
|
|
"200":
|
|
description: "successful operation"
|
|
schema: { type: array, items: { $ref: "#/definitions/AutomationResponse" } }
|
|
examples:
|
|
test:
|
|
- id: comment
|
|
image: "docker.io/python:3"
|
|
script: ""
|
|
type: [ playbook ]
|
|
- id: hash.sha1
|
|
image: "docker.io/python:3"
|
|
script: ""
|
|
type: [ global, artifact, playbook ]
|
|
schema: "{\"title\":\"Input\",\"type\":\"object\",\"properties\":{\"default\":{\"type\":\"string\",\"title\":\"Value\"}},\"required\":[\"default\"]}"
|
|
- id: vt.hash
|
|
image: "docker.io/python:3"
|
|
script: ""
|
|
type: [ global, artifact, playbook ]
|
|
schema: "{\"title\":\"Input\",\"type\":\"object\",\"properties\":{\"default\":{\"type\":\"string\",\"title\":\"Value\"}},\"required\":[\"default\"]}"
|
|
security: [ { roles: [ "automation:read" ] } ]
|
|
post:
|
|
tags: [ "automations" ]
|
|
summary: "Create a new automation"
|
|
operationId: "createAutomation"
|
|
parameters:
|
|
- { name: "automation", in: "body", description: "New automation", required: true, schema: { $ref: "#/definitions/AutomationForm" }, x-example: { id: "hash-sha-256", image: "docker.io/python:3", script: "import sys\nimport json\nimport hashlib\n\n\ndef run(msg):\n sha256 = hashlib.sha256(msg['payload']['default'].encode('utf-8'))\n return {'hash': sha256.hexdigest()}\n\n\nprint(json.dumps(run(json.loads(sys.argv[1]))))\n", type: [ global ] } }
|
|
responses:
|
|
"200":
|
|
description: "successful operation"
|
|
schema: { $ref: "#/definitions/AutomationResponse" }
|
|
examples:
|
|
test:
|
|
id: "hash-sha-256"
|
|
image: "docker.io/python:3"
|
|
type: [ global ]
|
|
script: |
|
|
import sys
|
|
import json
|
|
import hashlib
|
|
|
|
|
|
def run(msg):
|
|
sha256 = hashlib.sha256(msg['payload']['default'].encode('utf-8'))
|
|
return {'hash': sha256.hexdigest()}
|
|
|
|
|
|
print(json.dumps(run(json.loads(sys.argv[1]))))
|
|
|
|
security: [ { roles: [ "automation:write" ] } ]
|
|
|
|
/automations/{id}:
|
|
get:
|
|
tags: [ "automations" ]
|
|
summary: "Get a single automation"
|
|
operationId: "getAutomation"
|
|
parameters:
|
|
- { name: "id", in: "path", description: "Automation ID", required: true, type: string, x-example: "hash.sha1" }
|
|
responses:
|
|
"200":
|
|
description: "successful operation"
|
|
schema: { $ref: "#/definitions/AutomationResponse" }
|
|
examples:
|
|
test:
|
|
id: hash.sha1
|
|
image: "docker.io/python:3"
|
|
type: [ global, artifact, playbook ]
|
|
schema: "{\"title\":\"Input\",\"type\":\"object\",\"properties\":{\"default\":{\"type\":\"string\",\"title\":\"Value\"}},\"required\":[\"default\"]}"
|
|
script: |
|
|
#!/usr/bin/env python
|
|
|
|
import sys
|
|
import json
|
|
import hashlib
|
|
|
|
|
|
def run(msg):
|
|
sha1 = hashlib.sha1(msg['payload']['default'].encode('utf-8'))
|
|
return {"hash": sha1.hexdigest()}
|
|
|
|
|
|
print(json.dumps(run(json.loads(sys.argv[1]))))
|
|
security: [ { roles: [ "automation:read" ] } ]
|
|
put:
|
|
tags: [ "automations" ]
|
|
summary: "Update an existing automation"
|
|
operationId: "updateAutomation"
|
|
parameters:
|
|
- { name: "id", in: "path", description: "Automation ID", required: true, type: string, x-example: "hash.sha1" }
|
|
- { name: "automation", in: "body", description: "Automation object that needs to be added", required: true, schema: { $ref: "#/definitions/AutomationForm" }, x-example: { id: hash.sha1, image: "docker.io/python:3", script: "import sys\nimport json\nimport hashlib\n\n\ndef run(msg):\n sha1 = hashlib.sha1(msg['payload'].encode('utf-8'))\n return {'hash': sha1.hexdigest()}\n\n\nprint(json.dumps(run(json.loads(sys.argv[1]))))\n", type: [ global, artifact, playbook ] } }
|
|
responses:
|
|
"200":
|
|
description: "successful operation"
|
|
schema: { $ref: "#/definitions/AutomationResponse" }
|
|
examples:
|
|
test:
|
|
id: hash.sha1
|
|
image: "docker.io/python:3"
|
|
type: [ global, artifact, playbook ]
|
|
script: |
|
|
import sys
|
|
import json
|
|
import hashlib
|
|
|
|
|
|
def run(msg):
|
|
sha1 = hashlib.sha1(msg['payload'].encode('utf-8'))
|
|
return {'hash': sha1.hexdigest()}
|
|
|
|
|
|
print(json.dumps(run(json.loads(sys.argv[1]))))
|
|
security: [ { roles: [ "automation:write" ] } ]
|
|
delete:
|
|
tags: [ "automations" ]
|
|
summary: "Delete a automation"
|
|
operationId: "deleteAutomation"
|
|
parameters:
|
|
- { name: "id", in: "path", description: "Automation ID", required: true, type: string, x-example: "hash.sha1" }
|
|
responses:
|
|
"204": { description: "successful operation" }
|
|
security: [ { roles: [ "automation:write" ] } ]
|
|
|
|
definitions:
|
|
AutomationForm:
|
|
type: object
|
|
required: [ id, image, script, type ]
|
|
properties:
|
|
id: { type: string }
|
|
image: { type: string }
|
|
script: { type: string }
|
|
type: { type: array, items: { type: string, enum: [ artifact, playbook, global ] } }
|
|
schema: { type: string, example: "{}" }
|
|
|
|
Automation:
|
|
type: object
|
|
required: [ image, script, type ]
|
|
properties:
|
|
image: { type: string }
|
|
script: { type: string }
|
|
type: { type: array, items: { type: string, enum: [ artifact, playbook, global ] } }
|
|
schema: { type: string, example: "{}" }
|
|
|
|
AutomationResponse:
|
|
type: object
|
|
required: [ id, image, script, type ]
|
|
properties:
|
|
id: { type: string }
|
|
image: { type: string }
|
|
script: { type: string }
|
|
type: { type: array, items: { type: string, enum: [ artifact, playbook, global ] } }
|
|
schema: { type: string, example: "{}" }
|