mirror of
https://github.com/bybrooklyn/alchemist.git
synced 2026-04-18 01:43:34 -04:00
164 lines
3.9 KiB
YAML
164 lines
3.9 KiB
YAML
openapi: 3.0.3
|
|
info:
|
|
title: Alchemist API
|
|
version: 0.3.0
|
|
description: >
|
|
Hand-maintained API contract for Alchemist. Authentication may use the
|
|
alchemist_session cookie or a bearer token. Bearer tokens support
|
|
read_only and full_access classes.
|
|
servers:
|
|
- url: /
|
|
components:
|
|
securitySchemes:
|
|
sessionCookie:
|
|
type: apiKey
|
|
in: cookie
|
|
name: alchemist_session
|
|
bearerToken:
|
|
type: http
|
|
scheme: bearer
|
|
bearerFormat: opaque
|
|
schemas:
|
|
ApiToken:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
access_level:
|
|
type: string
|
|
enum: [read_only, full_access]
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
last_used_at:
|
|
type: string
|
|
format: date-time
|
|
nullable: true
|
|
revoked_at:
|
|
type: string
|
|
format: date-time
|
|
nullable: true
|
|
paths:
|
|
/api/auth/login:
|
|
post:
|
|
summary: Create an authenticated session cookie
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: [username, password]
|
|
properties:
|
|
username:
|
|
type: string
|
|
password:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Session created
|
|
/api/settings/api-tokens:
|
|
get:
|
|
summary: List API token metadata
|
|
security:
|
|
- sessionCookie: []
|
|
- bearerToken: []
|
|
responses:
|
|
"200":
|
|
description: Token metadata list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ApiToken"
|
|
post:
|
|
summary: Create an API token
|
|
security:
|
|
- sessionCookie: []
|
|
- bearerToken: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: [name, access_level]
|
|
properties:
|
|
name:
|
|
type: string
|
|
access_level:
|
|
type: string
|
|
enum: [read_only, full_access]
|
|
responses:
|
|
"200":
|
|
description: Token created; plaintext token shown once
|
|
/api/settings/api-tokens/{id}:
|
|
delete:
|
|
summary: Revoke an API token
|
|
security:
|
|
- sessionCookie: []
|
|
- bearerToken: []
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: Token revoked
|
|
/api/system/info:
|
|
get:
|
|
summary: Get runtime version and environment information
|
|
security:
|
|
- sessionCookie: []
|
|
- bearerToken: []
|
|
responses:
|
|
"200":
|
|
description: Runtime info
|
|
/api/system/update:
|
|
get:
|
|
summary: Check GitHub Releases for the latest stable version
|
|
security:
|
|
- sessionCookie: []
|
|
- bearerToken: []
|
|
responses:
|
|
"200":
|
|
description: Update status
|
|
/api/jobs:
|
|
get:
|
|
summary: List jobs
|
|
security:
|
|
- sessionCookie: []
|
|
- bearerToken: []
|
|
responses:
|
|
"200":
|
|
description: Job list
|
|
/api/jobs/{id}/details:
|
|
get:
|
|
summary: Get a single job detail record
|
|
security:
|
|
- sessionCookie: []
|
|
- bearerToken: []
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: Job detail
|
|
/api/engine/status:
|
|
get:
|
|
summary: Get current engine status
|
|
security:
|
|
- sessionCookie: []
|
|
- bearerToken: []
|
|
responses:
|
|
"200":
|
|
description: Engine status
|