Files
osmedeus/docs/api-swagger/openapi.yaml
T

488 lines
12 KiB
YAML

basePath: /
definitions:
pkg_server_handlers.CreateScanRequest:
properties:
concurrency:
default: 1
description: Number of concurrent scans (default: 1)
type: integer
flow:
description: Flow workflow name
type: string
module:
description: Module workflow name
type: string
params:
additionalProperties:
type: string
type: object
target:
description: Single target to scan
type: string
targets:
description: Array of targets to scan
items:
type: string
type: array
target_file:
description: Path to file containing targets (one per line)
type: string
type: object
pkg_server_handlers.LoginRequest:
properties:
password:
type: string
username:
type: string
type: object
pkg_server_handlers.SubmitTaskRequest:
properties:
params:
additionalProperties: true
type: object
target:
type: string
workflow_kind:
type: string
workflow_name:
type: string
type: object
host: localhost:8002
info:
contact:
email: support@osmedeus.org
name: Osmedeus Support
url: https://github.com/j3ssie/osmedeus
description: Modern Orchestration Engine for Security - REST API for managing security
automation workflows, scans, and distributed task execution.
license:
name: MIT
url: https://opensource.org/licenses/MIT
termsOfService: https://docs.osmedeus.org/terms/
title: Osmedeus API
version: 5.0.0
paths:
/:
get:
description: Get server version and info
produces:
- application/json
responses:
"200":
description: Server information
schema:
additionalProperties:
type: string
type: object
summary: Server info
tags:
- Info
/osm/api/login:
post:
consumes:
- application/json
description: Authenticate user and get JWT token
parameters:
- description: Login credentials
in: body
name: credentials
required: true
schema:
$ref: '#/definitions/pkg_server_handlers.LoginRequest'
produces:
- application/json
responses:
"200":
description: JWT token
schema:
additionalProperties:
type: string
type: object
"400":
description: Invalid request
schema:
additionalProperties: true
type: object
"401":
description: Invalid credentials
schema:
additionalProperties: true
type: object
summary: User login
tags:
- Auth
/osm/api/new-scan:
post:
consumes:
- application/json
description: Execute a workflow against a target
parameters:
- description: Scan configuration
in: body
name: scan
required: true
schema:
$ref: '#/definitions/pkg_server_handlers.CreateScanRequest'
produces:
- application/json
responses:
"202":
description: Scan started
schema:
additionalProperties: true
type: object
"400":
description: Invalid request
schema:
additionalProperties: true
type: object
"404":
description: Workflow not found
schema:
additionalProperties: true
type: object
security:
- BearerAuth: []
summary: Create a new scan
tags:
- Scans
/osm/api/upload-file:
post:
consumes:
- multipart/form-data
description: Upload a file containing a list of inputs (targets, URLs, etc.)
for later use in scans
parameters:
- description: Input file to upload
in: formData
name: file
required: true
type: file
produces:
- application/json
responses:
"200":
description: File uploaded with path
schema:
additionalProperties: true
type: object
"400":
description: Invalid request
schema:
additionalProperties: true
type: object
security:
- BearerAuth: []
summary: Upload input file
tags:
- Files
/osm/api/workflow-upload:
post:
consumes:
- multipart/form-data
description: Upload a raw YAML workflow file and save it to the workflows directory
parameters:
- description: Workflow YAML file
in: formData
name: file
required: true
type: file
produces:
- application/json
responses:
"201":
description: Workflow uploaded
schema:
additionalProperties: true
type: object
"400":
description: Invalid request or YAML
schema:
additionalProperties: true
type: object
security:
- BearerAuth: []
summary: Upload workflow file
tags:
- Workflows
/osm/api/tasks:
get:
description: Get a list of all running and completed tasks
produces:
- application/json
responses:
"200":
description: List of running and completed tasks
schema:
additionalProperties: true
type: object
"500":
description: Failed to list tasks
schema:
additionalProperties: true
type: object
security:
- BearerAuth: []
summary: List all tasks
tags:
- Distributed
post:
consumes:
- application/json
description: Submit a new task to the distributed worker queue
parameters:
- description: Task configuration
in: body
name: task
required: true
schema:
$ref: '#/definitions/pkg_server_handlers.SubmitTaskRequest'
produces:
- application/json
responses:
"202":
description: Task submitted
schema:
additionalProperties: true
type: object
"400":
description: Invalid request
schema:
additionalProperties: true
type: object
"500":
description: Failed to submit task
schema:
additionalProperties: true
type: object
security:
- BearerAuth: []
summary: Submit a new task
tags:
- Distributed
/osm/api/tasks/{id}:
get:
description: Get details for a specific task by ID
parameters:
- description: Task ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: Task details
schema:
additionalProperties: true
type: object
"404":
description: Task not found
schema:
additionalProperties: true
type: object
security:
- BearerAuth: []
summary: Get task details
tags:
- Distributed
/osm/api/workers:
get:
description: Get a list of all registered workers in the distributed pool
produces:
- application/json
responses:
"200":
description: List of workers
schema:
additionalProperties: true
type: object
"500":
description: Failed to list workers
schema:
additionalProperties: true
type: object
security:
- BearerAuth: []
summary: List all workers
tags:
- Distributed
/osm/api/workers/{id}:
get:
description: Get details for a specific worker by ID
parameters:
- description: Worker ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: Worker details
schema:
additionalProperties: true
type: object
"404":
description: Worker not found
schema:
additionalProperties: true
type: object
"500":
description: Failed to get worker
schema:
additionalProperties: true
type: object
security:
- BearerAuth: []
summary: Get worker details
tags:
- Distributed
/osm/api/workflows:
get:
description: Get a list of all available workflows with details
produces:
- application/json
responses:
"200":
description: List of workflows
schema:
additionalProperties: true
type: object
"500":
description: Failed to load workflows
schema:
additionalProperties: true
type: object
security:
- BearerAuth: []
summary: List all workflows
tags:
- Workflows
/osm/api/workflows/{name}:
get:
description: Get detailed information about a specific workflow. Use show_yaml=true
to get raw YAML content.
parameters:
- description: Workflow name
in: path
name: name
required: true
type: string
- description: Return raw YAML content instead of JSON
in: query
name: show_yaml
type: boolean
produces:
- application/json
responses:
"200":
description: Workflow details
schema:
additionalProperties: true
type: object
"404":
description: Workflow not found
schema:
additionalProperties: true
type: object
security:
- BearerAuth: []
summary: Get workflow details
tags:
- Workflows
/osm/api/workspaces:
get:
description: Get a list of all scan workspaces
produces:
- application/json
responses:
"200":
description: List of workspaces
schema:
additionalProperties: true
type: object
"500":
description: Failed to read workspaces
schema:
additionalProperties: true
type: object
security:
- BearerAuth: []
summary: List all workspaces
tags:
- Workspaces
/osm/api/snapshot-download/{workspace_name}:
get:
description: Compress a workspace folder into a zip file and download it
parameters:
- description: Workspace name
in: path
name: workspace_name
required: true
type: string
produces:
- application/zip
responses:
"200":
description: Zip file download
schema:
type: file
"404":
description: Workspace not found
schema:
additionalProperties: true
type: object
"500":
description: Failed to create snapshot
schema:
additionalProperties: true
type: object
security:
- BearerAuth: []
summary: Download workspace snapshot
tags:
- Snapshots
/health:
get:
description: Check if the server is running
produces:
- application/json
responses:
"200":
description: 'status: ok'
schema:
additionalProperties:
type: string
type: object
summary: Health check
tags:
- Health
/health/ready:
get:
description: Check if the server is ready to accept requests
produces:
- application/json
responses:
"200":
description: 'status: ready'
schema:
additionalProperties:
type: string
type: object
summary: Readiness check
tags:
- Health
schemes:
- http
- https
securityDefinitions:
BearerAuth:
description: 'JWT Bearer token authentication. Format: "Bearer {token}"'
in: header
name: Authorization
type: apiKey
swagger: "2.0"