snapshot of https://github.com/cortezaproject/corteza.git (2024.9.x, 2026-09-18; blobs > 131072B omitted)
Some checks failed
SonarQube / SonarQube (push) Failing after 5m28s
E2e test on main branch push / server and client test (map[name:admin port:8080]) (push) Failing after 3m33s
Server and lib tests / Library test (js) (push) Failing after 1m36s
Server and lib tests / Library test (vue) (push) Successful in 2m24s
Server and lib tests / Web client test (admin) (push) Successful in 2m52s
Server and lib tests / Web client test (compose) (push) Successful in 3m23s
Server and lib tests / Web client test (discovery) (push) Successful in 2m49s
Server and lib tests / Web client test (one) (push) Successful in 2m52s
Server and lib tests / Web client test (privacy) (push) Successful in 2m44s
Server and lib tests / Web client test (reporter) (push) Successful in 2m56s
Server and lib tests / Web client test (workflow) (push) Successful in 3m0s
Server and lib tests / Server tests (push) Failing after 4m55s
E2e test on main branch push / notify-failure (push) Failing after 9s
Server and lib tests / Send matrix testing notification (push) Successful in 2s
Mark stale issues and pull requests / stale (push) Successful in 40s
Some checks failed
SonarQube / SonarQube (push) Failing after 5m28s
E2e test on main branch push / server and client test (map[name:admin port:8080]) (push) Failing after 3m33s
Server and lib tests / Library test (js) (push) Failing after 1m36s
Server and lib tests / Library test (vue) (push) Successful in 2m24s
Server and lib tests / Web client test (admin) (push) Successful in 2m52s
Server and lib tests / Web client test (compose) (push) Successful in 3m23s
Server and lib tests / Web client test (discovery) (push) Successful in 2m49s
Server and lib tests / Web client test (one) (push) Successful in 2m52s
Server and lib tests / Web client test (privacy) (push) Successful in 2m44s
Server and lib tests / Web client test (reporter) (push) Successful in 2m56s
Server and lib tests / Web client test (workflow) (push) Successful in 3m0s
Server and lib tests / Server tests (push) Failing after 4m55s
E2e test on main branch push / notify-failure (push) Failing after 9s
Server and lib tests / Send matrix testing notification (push) Successful in 2s
Mark stale issues and pull requests / stale (push) Successful in 40s
This commit is contained in:
17
server/docs/README.adoc
Normal file
17
server/docs/README.adoc
Normal file
@@ -0,0 +1,17 @@
|
||||
# Corteza API documentation
|
||||
|
||||
WARNING: Work in progress
|
||||
|
||||
This is the first step in migration towards full OpenAPI standards support.
|
||||
|
||||
## Current state (`2021.3.x` and later)
|
||||
We're experimenting with first step toward conversion to OpenAPI 3.0 YAML files for API
|
||||
definition. There is a converter available in https://github.com/cortezaproject/openapi3-converter[cortezaproject/openapi3-converter]
|
||||
that takes those custom YAML files and converts them to OpenAPI format.
|
||||
|
||||
## Goal (target: end of 2021)
|
||||
Generate HTTP handlers and all auxiliary code and documentation from YAML files in OpenAPI 3.0 format
|
||||
|
||||
## Original/starting state (pre `2020.9`; deprecated):
|
||||
Home-brew API definition format in JSON, still available under `api/*/spec.json`.
|
||||
This is still needed for controller/request/handler codegens. Documentation generators are disabled.
|
||||
813
server/docs/automation.yaml
Normal file
813
server/docs/automation.yaml
Normal file
@@ -0,0 +1,813 @@
|
||||
openapi: 3.0.0
|
||||
info:
|
||||
title: Corteza automation API
|
||||
description: Corteza automation REST API definition
|
||||
version: '2022.9'
|
||||
contact:
|
||||
email: info@cortezaproject.org
|
||||
license:
|
||||
name: Apache 2.0
|
||||
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
paths:
|
||||
/automation/workflows/:
|
||||
get:
|
||||
tags:
|
||||
- Workflows
|
||||
summary: List workflows
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: query
|
||||
name: workflowID
|
||||
description: Filter by workflow ID
|
||||
required: false
|
||||
schema:
|
||||
type: array
|
||||
items: &ref_0
|
||||
type: string
|
||||
- in: query
|
||||
name: query
|
||||
description: Filter workflows
|
||||
required: false
|
||||
schema: *ref_0
|
||||
- in: query
|
||||
name: deleted
|
||||
description: >-
|
||||
Exclude (0, default), include (1) or return only (2) deleted
|
||||
workflows
|
||||
required: false
|
||||
schema: &ref_1
|
||||
type: string
|
||||
- in: query
|
||||
name: disabled
|
||||
description: >-
|
||||
Exclude (0, default), include (1) or return only (2) disabled
|
||||
workflows
|
||||
required: false
|
||||
schema: *ref_1
|
||||
- in: query
|
||||
name: subWorkflow
|
||||
description: Exclude (0, default), include (1) or return only (2) sub workflows
|
||||
required: false
|
||||
schema: *ref_1
|
||||
- in: query
|
||||
name: labels
|
||||
description: Labels
|
||||
required: false
|
||||
schema: *ref_0
|
||||
- in: query
|
||||
name: limit
|
||||
description: Limit
|
||||
required: false
|
||||
schema: *ref_1
|
||||
- in: query
|
||||
name: incTotal
|
||||
description: Include total rows counter
|
||||
required: false
|
||||
schema: &ref_9
|
||||
type: boolean
|
||||
- in: query
|
||||
name: pageCursor
|
||||
description: Page cursor
|
||||
required: false
|
||||
schema: *ref_0
|
||||
- in: query
|
||||
name: sort
|
||||
description: Sort items
|
||||
required: false
|
||||
schema: *ref_0
|
||||
post:
|
||||
tags:
|
||||
- Workflows
|
||||
summary: Create workflow
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties: &ref_2
|
||||
handle:
|
||||
type: string
|
||||
description: Workflow name
|
||||
labels:
|
||||
type: string
|
||||
description: Labels
|
||||
meta:
|
||||
type: string
|
||||
description: Workflow meta data
|
||||
enabled:
|
||||
type: boolean
|
||||
description: Is workflow enabled
|
||||
trace:
|
||||
type: boolean
|
||||
description: Trace workflow execution
|
||||
keepSessions:
|
||||
type: integer
|
||||
description: Keep old workflow sessions
|
||||
scope:
|
||||
type: string
|
||||
description: Workflow meta data
|
||||
steps:
|
||||
type: string
|
||||
description: Workflow steps definition
|
||||
paths:
|
||||
type: string
|
||||
description: Workflow step paths definition
|
||||
runAs:
|
||||
type: string
|
||||
description: Is workflow enabled
|
||||
ownedBy:
|
||||
type: string
|
||||
description: Owner of the workflow
|
||||
required:
|
||||
- handle
|
||||
- runAs
|
||||
- ownedBy
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
type: object
|
||||
properties: *ref_2
|
||||
/automation/workflows/{workflowID}:
|
||||
put:
|
||||
tags:
|
||||
- Workflows
|
||||
summary: Update triger details
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: workflowID
|
||||
description: Workflow ID
|
||||
required: true
|
||||
schema: &ref_4
|
||||
type: string
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties: &ref_3
|
||||
handle:
|
||||
type: string
|
||||
description: Workflow name
|
||||
labels:
|
||||
type: string
|
||||
description: Labels
|
||||
meta:
|
||||
type: string
|
||||
description: Workflow meta data
|
||||
enabled:
|
||||
type: boolean
|
||||
description: Is workflow enabled
|
||||
trace:
|
||||
type: boolean
|
||||
description: Trace workflow execution
|
||||
keepSessions:
|
||||
type: integer
|
||||
description: Keep old workflow sessions
|
||||
scope:
|
||||
type: string
|
||||
description: Workflow meta data
|
||||
steps:
|
||||
type: string
|
||||
description: Workflow steps definition
|
||||
paths:
|
||||
type: string
|
||||
description: Workflow step paths definition
|
||||
runAs:
|
||||
type: string
|
||||
description: Is workflow enabled
|
||||
ownedBy:
|
||||
type: string
|
||||
description: Owner of the workflow
|
||||
required:
|
||||
- handle
|
||||
- runAs
|
||||
- ownedBy
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
type: object
|
||||
properties: *ref_3
|
||||
get:
|
||||
tags:
|
||||
- Workflows
|
||||
summary: Read workflow details
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: workflowID
|
||||
description: Workflow ID
|
||||
required: true
|
||||
schema: *ref_4
|
||||
delete:
|
||||
tags:
|
||||
- Workflows
|
||||
summary: Remove workflow
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: workflowID
|
||||
description: Workflow ID
|
||||
required: true
|
||||
schema: *ref_4
|
||||
/automation/workflows/{workflowID}/undelete:
|
||||
post:
|
||||
tags:
|
||||
- Workflows
|
||||
summary: Undelete workflow
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: workflowID
|
||||
description: Workflow ID
|
||||
required: true
|
||||
schema: *ref_4
|
||||
/automation/workflows/{workflowID}/test:
|
||||
post:
|
||||
tags:
|
||||
- Workflows
|
||||
summary: Test workflow details
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: workflowID
|
||||
description: Workflow ID
|
||||
required: true
|
||||
schema: *ref_4
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties: &ref_5
|
||||
scope:
|
||||
type: string
|
||||
description: Workflow meta data
|
||||
runAs:
|
||||
type: boolean
|
||||
description: Is workflow enabled
|
||||
required:
|
||||
- runAs
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
type: object
|
||||
properties: *ref_5
|
||||
/automation/workflows/{workflowID}/exec:
|
||||
post:
|
||||
tags:
|
||||
- Workflows
|
||||
summary: >-
|
||||
Executes workflow on a specific step (must be orphan step and connected
|
||||
to 'onManual' trigger)
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: workflowID
|
||||
description: Workflow ID
|
||||
required: true
|
||||
schema: *ref_4
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties: &ref_6
|
||||
stepID:
|
||||
type: string
|
||||
description: Step ID
|
||||
input:
|
||||
type: string
|
||||
description: Input
|
||||
trace:
|
||||
type: boolean
|
||||
description: Trace workflow execution
|
||||
wait:
|
||||
type: boolean
|
||||
description: Wait for workflow to complete
|
||||
async:
|
||||
type: boolean
|
||||
description: Execute step and return immediately
|
||||
required:
|
||||
- stepID
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
type: object
|
||||
properties: *ref_6
|
||||
/automation/triggers/:
|
||||
get:
|
||||
tags:
|
||||
- Triggers
|
||||
summary: List triggers
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: query
|
||||
name: triggerID
|
||||
description: Filter by trigger ID
|
||||
required: false
|
||||
schema:
|
||||
type: array
|
||||
items: *ref_0
|
||||
- in: query
|
||||
name: workflowID
|
||||
description: Filter by workflow ID
|
||||
required: false
|
||||
schema:
|
||||
type: array
|
||||
items: *ref_0
|
||||
- in: query
|
||||
name: deleted
|
||||
description: >-
|
||||
Exclude (0, default), include (1) or return only (2) deleted
|
||||
triggers
|
||||
required: false
|
||||
schema: *ref_1
|
||||
- in: query
|
||||
name: disabled
|
||||
description: >-
|
||||
Exclude (0, default), include (1) or return only (2) disabled
|
||||
triggers
|
||||
required: false
|
||||
schema: *ref_1
|
||||
- in: query
|
||||
name: eventType
|
||||
description: Filter triggers by event type
|
||||
required: false
|
||||
schema: *ref_0
|
||||
- in: query
|
||||
name: resourceType
|
||||
description: Filter triggers by resource type
|
||||
required: false
|
||||
schema: *ref_0
|
||||
- in: query
|
||||
name: query
|
||||
description: Filter workflows,
|
||||
required: false
|
||||
schema: *ref_0
|
||||
- in: query
|
||||
name: labels
|
||||
description: Labels
|
||||
required: false
|
||||
schema: *ref_0
|
||||
- in: query
|
||||
name: limit
|
||||
description: Limit
|
||||
required: false
|
||||
schema: *ref_1
|
||||
- in: query
|
||||
name: pageCursor
|
||||
description: Page cursor
|
||||
required: false
|
||||
schema: *ref_0
|
||||
- in: query
|
||||
name: sort
|
||||
description: Sort items
|
||||
required: false
|
||||
schema: *ref_0
|
||||
post:
|
||||
tags:
|
||||
- Triggers
|
||||
summary: Create trigger
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties: &ref_7
|
||||
eventType:
|
||||
type: string
|
||||
description: Event type
|
||||
resourceType:
|
||||
type: string
|
||||
description: Resource type
|
||||
enabled:
|
||||
type: boolean
|
||||
description: Is trigger enabled
|
||||
workflowID:
|
||||
type: string
|
||||
description: Workflow to be triggered
|
||||
workflowStepID:
|
||||
type: string
|
||||
description: Start workflow in a specific step
|
||||
input:
|
||||
type: string
|
||||
description: Workflow meta data
|
||||
labels:
|
||||
type: string
|
||||
description: Labels
|
||||
meta:
|
||||
type: string
|
||||
description: Trigger meta data
|
||||
constraints:
|
||||
type: string
|
||||
description: Workflow steps definition
|
||||
ownedBy:
|
||||
type: string
|
||||
description: Owner of the trigger
|
||||
required:
|
||||
- eventType
|
||||
- resourceType
|
||||
- workflowID
|
||||
- workflowStepID
|
||||
- ownedBy
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
type: object
|
||||
properties: *ref_7
|
||||
/automation/triggers/{triggerID}:
|
||||
put:
|
||||
tags:
|
||||
- Triggers
|
||||
summary: Update trigger details
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: triggerID
|
||||
description: Trigger ID
|
||||
required: true
|
||||
schema: *ref_4
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties: &ref_8
|
||||
eventType:
|
||||
type: string
|
||||
description: Event type
|
||||
resourceType:
|
||||
type: string
|
||||
description: Resource type
|
||||
enabled:
|
||||
type: boolean
|
||||
description: Is trigger enabled
|
||||
workflowID:
|
||||
type: string
|
||||
description: Workflow to be triggered
|
||||
workflowStepID:
|
||||
type: string
|
||||
description: Start workflow in a specific step
|
||||
input:
|
||||
type: string
|
||||
description: Workflow meta data
|
||||
labels:
|
||||
type: string
|
||||
description: Labels
|
||||
meta:
|
||||
type: string
|
||||
description: Trigger meta data
|
||||
constraints:
|
||||
type: string
|
||||
description: Workflow steps definition
|
||||
ownedBy:
|
||||
type: string
|
||||
description: Owner of the trigger
|
||||
required:
|
||||
- eventType
|
||||
- resourceType
|
||||
- workflowID
|
||||
- workflowStepID
|
||||
- ownedBy
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
type: object
|
||||
properties: *ref_8
|
||||
get:
|
||||
tags:
|
||||
- Triggers
|
||||
summary: Read trigger details
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: triggerID
|
||||
description: Trigger ID
|
||||
required: true
|
||||
schema: *ref_4
|
||||
delete:
|
||||
tags:
|
||||
- Triggers
|
||||
summary: Remove trigger
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: triggerID
|
||||
description: Trigger ID
|
||||
required: true
|
||||
schema: *ref_4
|
||||
/automation/triggers/{triggerID}/undelete:
|
||||
post:
|
||||
tags:
|
||||
- Triggers
|
||||
summary: Undelete trigger
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: triggerID
|
||||
description: Trigger ID
|
||||
required: true
|
||||
schema: *ref_4
|
||||
/automation/sessions/:
|
||||
get:
|
||||
tags:
|
||||
- Sessions
|
||||
summary: List sessions
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: query
|
||||
name: sessionID
|
||||
description: Filter by session ID
|
||||
required: false
|
||||
schema:
|
||||
type: array
|
||||
items: *ref_0
|
||||
- in: query
|
||||
name: workflowID
|
||||
description: Filter by workflow ID
|
||||
required: false
|
||||
schema:
|
||||
type: array
|
||||
items: *ref_0
|
||||
- in: query
|
||||
name: createdBy
|
||||
description: Filter by creators ID
|
||||
required: false
|
||||
schema:
|
||||
type: array
|
||||
items: *ref_0
|
||||
- in: query
|
||||
name: completed
|
||||
description: >-
|
||||
Exclude (0, default), include (1) or return only (2) completed
|
||||
sessions
|
||||
required: false
|
||||
schema: *ref_1
|
||||
- in: query
|
||||
name: status
|
||||
description: >-
|
||||
Filter by status: started (0), prompted (1), suspended (2), failed
|
||||
(3) and completed (4)
|
||||
required: false
|
||||
schema:
|
||||
type: array
|
||||
items: *ref_1
|
||||
- in: query
|
||||
name: eventType
|
||||
description: Filter event type
|
||||
required: false
|
||||
schema: *ref_0
|
||||
- in: query
|
||||
name: resourceType
|
||||
description: Filter resource type
|
||||
required: false
|
||||
schema: *ref_0
|
||||
- in: query
|
||||
name: limit
|
||||
description: Limit
|
||||
required: false
|
||||
schema: *ref_1
|
||||
- in: query
|
||||
name: incTotal
|
||||
description: Include total rows counter
|
||||
required: false
|
||||
schema: *ref_9
|
||||
- in: query
|
||||
name: pageCursor
|
||||
description: Page cursor
|
||||
required: false
|
||||
schema: *ref_0
|
||||
- in: query
|
||||
name: sort
|
||||
description: Sort items
|
||||
required: false
|
||||
schema: *ref_0
|
||||
/automation/sessions/{sessionID}:
|
||||
get:
|
||||
tags:
|
||||
- Sessions
|
||||
summary: Read session details
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: sessionID
|
||||
description: Session ID
|
||||
required: true
|
||||
schema: *ref_4
|
||||
/automation/sessions/{sessionID}/cancel:
|
||||
post:
|
||||
tags:
|
||||
- Sessions
|
||||
summary: Cancel session
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: sessionID
|
||||
description: Session ID
|
||||
required: true
|
||||
schema: *ref_4
|
||||
/automation/sessions/prompts:
|
||||
get:
|
||||
tags:
|
||||
- Sessions
|
||||
summary: Returns pending prompts from all sessions
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
/automation/sessions/{sessionID}/state/{stateID}:
|
||||
post:
|
||||
tags:
|
||||
- Sessions
|
||||
summary: Resume session
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: sessionID
|
||||
description: Session ID
|
||||
required: true
|
||||
schema: *ref_4
|
||||
- in: path
|
||||
name: stateID
|
||||
description: State ID
|
||||
required: true
|
||||
schema: *ref_4
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties: &ref_10
|
||||
input:
|
||||
type: string
|
||||
description: Prompt variables
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
type: object
|
||||
properties: *ref_10
|
||||
/automation/functions/:
|
||||
get:
|
||||
tags:
|
||||
- Functions
|
||||
summary: Available workflow functions
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
/automation/types/:
|
||||
get:
|
||||
tags:
|
||||
- Types
|
||||
summary: Available workflow types
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
/automation/event-types/:
|
||||
get:
|
||||
tags:
|
||||
- Event types
|
||||
summary: Available workflow types
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
/automation/permissions/:
|
||||
get:
|
||||
tags:
|
||||
- Permissions
|
||||
summary: Retrieve defined permissions
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
/automation/permissions/effective:
|
||||
get:
|
||||
tags:
|
||||
- Permissions
|
||||
summary: Effective rules for current user
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: query
|
||||
name: resource
|
||||
description: Show only rules for a specific resource
|
||||
required: false
|
||||
schema: *ref_0
|
||||
/automation/permissions/trace:
|
||||
get:
|
||||
tags:
|
||||
- Permissions
|
||||
summary: Evaluate rules for given user/role combo
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: query
|
||||
name: resource
|
||||
description: Show only rules for a specific resource
|
||||
required: false
|
||||
schema:
|
||||
type: array
|
||||
items: *ref_0
|
||||
- in: query
|
||||
name: userID
|
||||
required: false
|
||||
schema: *ref_4
|
||||
- in: query
|
||||
name: roleID
|
||||
required: false
|
||||
schema:
|
||||
type: array
|
||||
items: *ref_4
|
||||
/automation/permissions/{roleID}/rules:
|
||||
get:
|
||||
tags:
|
||||
- Permissions
|
||||
summary: Retrieve role permissions
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: roleID
|
||||
description: Role ID
|
||||
required: true
|
||||
schema: *ref_4
|
||||
- in: query
|
||||
name: resource
|
||||
description: Show only rules for a specific resource
|
||||
required: false
|
||||
schema:
|
||||
type: array
|
||||
items: *ref_0
|
||||
delete:
|
||||
tags:
|
||||
- Permissions
|
||||
summary: Remove all defined role permissions
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: roleID
|
||||
description: Role ID
|
||||
required: true
|
||||
schema: *ref_4
|
||||
patch:
|
||||
tags:
|
||||
- Permissions
|
||||
summary: Update permission settings
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: roleID
|
||||
description: Role ID
|
||||
required: true
|
||||
schema: *ref_4
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties: &ref_11
|
||||
rules:
|
||||
type: string
|
||||
description: List of permission rules to set
|
||||
required:
|
||||
- rules
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
type: object
|
||||
properties: *ref_11
|
||||
2464
server/docs/compose.yaml
Normal file
2464
server/docs/compose.yaml
Normal file
File diff suppressed because it is too large
Load Diff
830
server/docs/federation.yaml
Normal file
830
server/docs/federation.yaml
Normal file
@@ -0,0 +1,830 @@
|
||||
openapi: 3.0.0
|
||||
info:
|
||||
title: Corteza federation API
|
||||
description: Corteza federation REST API definition
|
||||
version: '2022.9'
|
||||
contact:
|
||||
email: info@cortezaproject.org
|
||||
license:
|
||||
name: Apache 2.0
|
||||
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
paths:
|
||||
/federation/nodes/{nodeID}/handshake:
|
||||
post:
|
||||
tags:
|
||||
- Federation node handshake
|
||||
summary: Initialize the handshake step with node B
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties: &ref_0
|
||||
pairToken:
|
||||
type: string
|
||||
description: >-
|
||||
Pairing token to authenticate handshake initialization
|
||||
request
|
||||
sharedNodeID:
|
||||
type: string
|
||||
description: Remote (invoker's) node ID
|
||||
authToken:
|
||||
type: string
|
||||
description: Authentication token so that remote
|
||||
required:
|
||||
- pairToken
|
||||
- sharedNodeID
|
||||
- authToken
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
type: object
|
||||
properties: *ref_0
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: NodeID
|
||||
required: true
|
||||
schema: &ref_3
|
||||
type: string
|
||||
/federation/nodes/:
|
||||
get:
|
||||
tags:
|
||||
- Federation nodes
|
||||
summary: Search federated nodes
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: query
|
||||
name: query
|
||||
description: Filter nodes by name and host
|
||||
required: false
|
||||
schema: &ref_1
|
||||
type: string
|
||||
- in: query
|
||||
name: status
|
||||
description: Filter by status
|
||||
required: false
|
||||
schema: *ref_1
|
||||
post:
|
||||
tags:
|
||||
- Federation nodes
|
||||
summary: Create a new federation node
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties: &ref_2
|
||||
baseURL:
|
||||
type: string
|
||||
description: Federation API base URL
|
||||
name:
|
||||
type: string
|
||||
description: Name for this node
|
||||
contact:
|
||||
type: string
|
||||
description: Contact email
|
||||
pairingURI:
|
||||
type: string
|
||||
description: Pairing URI
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
type: object
|
||||
properties: *ref_2
|
||||
/federation/nodes/{nodeID}:
|
||||
get:
|
||||
tags:
|
||||
- Federation nodes
|
||||
summary: Read a federation node
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: NodeID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
post:
|
||||
tags:
|
||||
- Federation nodes
|
||||
summary: Updates existing node
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: NodeID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties: &ref_4
|
||||
name:
|
||||
type: string
|
||||
description: Name for this node
|
||||
contact:
|
||||
type: string
|
||||
description: Contact email
|
||||
baseURL:
|
||||
type: string
|
||||
description: Federation API base URL
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
type: object
|
||||
properties: *ref_4
|
||||
delete:
|
||||
tags:
|
||||
- Federation nodes
|
||||
summary: Deletes node
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: NodeID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
/federation/nodes/{nodeID}/uri:
|
||||
post:
|
||||
tags:
|
||||
- Federation nodes
|
||||
summary: Creates new sharable federation URI
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: NodeID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
/federation/nodes/{nodeID}/undelete:
|
||||
post:
|
||||
tags:
|
||||
- Federation nodes
|
||||
summary: Undeletes a node
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: NodeID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
/federation/nodes/{nodeID}/pair:
|
||||
post:
|
||||
tags:
|
||||
- Federation nodes
|
||||
summary: Initialize the pairing process between the two nodes
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: NodeID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
/federation/nodes/{nodeID}/handshake-confirm:
|
||||
post:
|
||||
tags:
|
||||
- Federation nodes
|
||||
summary: Confirm the requested handshake
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: NodeID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
/federation/nodes/{nodeID}/handshake-complete:
|
||||
post:
|
||||
tags:
|
||||
- Federation nodes
|
||||
summary: Complete the handshake
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: NodeID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties: &ref_5
|
||||
authToken:
|
||||
type: string
|
||||
description: Node A token
|
||||
required:
|
||||
- authToken
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
type: object
|
||||
properties: *ref_5
|
||||
/federation/nodes/{nodeID}/modules/{moduleID}/exposed:
|
||||
get:
|
||||
tags:
|
||||
- Manage structure
|
||||
summary: Exposed settings for module
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: Node ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
- in: path
|
||||
name: moduleID
|
||||
description: Module ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
post:
|
||||
tags:
|
||||
- Manage structure
|
||||
summary: Update already exposed module
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: Node ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
- in: path
|
||||
name: moduleID
|
||||
description: Module ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties: &ref_6
|
||||
composeModuleID:
|
||||
type: string
|
||||
description: Compose module id
|
||||
composeNamespaceID:
|
||||
type: string
|
||||
description: Compose namespace id
|
||||
name:
|
||||
type: string
|
||||
description: Module name
|
||||
handle:
|
||||
type: string
|
||||
description: Module handle
|
||||
fields:
|
||||
type: array
|
||||
items: &ref_7
|
||||
type: object
|
||||
properties:
|
||||
fieldID:
|
||||
type: string
|
||||
format: uuid
|
||||
name:
|
||||
type: string
|
||||
kind:
|
||||
type: string
|
||||
label:
|
||||
type: string
|
||||
defaultValue:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
maxLength:
|
||||
type: integer
|
||||
isRequired:
|
||||
type: boolean
|
||||
isPrivate:
|
||||
type: boolean
|
||||
isMulti:
|
||||
type: boolean
|
||||
isSystem:
|
||||
type: boolean
|
||||
options:
|
||||
type: object
|
||||
description: Exposed module fields
|
||||
required:
|
||||
- composeModuleID
|
||||
- composeNamespaceID
|
||||
- name
|
||||
- handle
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
type: object
|
||||
properties: *ref_6
|
||||
delete:
|
||||
tags:
|
||||
- Manage structure
|
||||
summary: Remove from federation
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: Node ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
- in: path
|
||||
name: moduleID
|
||||
description: Module ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
/federation/nodes/{nodeID}/modules/:
|
||||
put:
|
||||
tags:
|
||||
- Manage structure
|
||||
summary: Add module to federation
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: Node ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties: &ref_8
|
||||
composeModuleID:
|
||||
type: string
|
||||
description: Compose module id
|
||||
composeNamespaceID:
|
||||
type: string
|
||||
description: Compose namespace id
|
||||
name:
|
||||
type: string
|
||||
description: Module name
|
||||
handle:
|
||||
type: string
|
||||
description: Module handle
|
||||
fields:
|
||||
type: array
|
||||
items: *ref_7
|
||||
description: Exposed module fields
|
||||
required:
|
||||
- composeModuleID
|
||||
- composeNamespaceID
|
||||
- name
|
||||
- handle
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
type: object
|
||||
properties: *ref_8
|
||||
get:
|
||||
tags:
|
||||
- Manage structure
|
||||
summary: List of shared/exposed/mapped modules
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: Node ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
- in: query
|
||||
name: shared
|
||||
description: List shared modules
|
||||
required: false
|
||||
schema: &ref_9
|
||||
type: boolean
|
||||
- in: query
|
||||
name: exposed
|
||||
description: List exposed modules
|
||||
required: false
|
||||
schema: *ref_9
|
||||
- in: query
|
||||
name: mapped
|
||||
description: List mapped modules
|
||||
required: false
|
||||
schema: *ref_9
|
||||
/federation/nodes/{nodeID}/modules/{moduleID}/shared:
|
||||
get:
|
||||
tags:
|
||||
- Manage structure
|
||||
summary: Shared settings for module
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: Node ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
- in: path
|
||||
name: moduleID
|
||||
description: Module ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
/federation/nodes/{nodeID}/modules/{moduleID}/mapped:
|
||||
put:
|
||||
tags:
|
||||
- Manage structure
|
||||
summary: Add fields mappings to federated module
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: Node ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
- in: path
|
||||
name: moduleID
|
||||
description: Module ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties: &ref_10
|
||||
composeModuleID:
|
||||
type: string
|
||||
description: Compose module id
|
||||
composeNamespaceID:
|
||||
type: string
|
||||
description: Compose namespace id
|
||||
fields:
|
||||
type: string
|
||||
description: Exposed module fields
|
||||
required:
|
||||
- composeModuleID
|
||||
- composeNamespaceID
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
type: object
|
||||
properties: *ref_10
|
||||
get:
|
||||
tags:
|
||||
- Manage structure
|
||||
summary: Fields mappings for module
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: Node ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
- in: path
|
||||
name: moduleID
|
||||
description: Module ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
- in: query
|
||||
name: composeModuleID
|
||||
description: Compose module id
|
||||
required: false
|
||||
schema: *ref_3
|
||||
/federation/nodes/{nodeID}/modules/exposed/:
|
||||
get:
|
||||
tags:
|
||||
- Sync structure
|
||||
summary: List all exposed modules changes
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: Node ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
- in: query
|
||||
name: lastSync
|
||||
description: Last sync timestamp
|
||||
required: false
|
||||
schema: *ref_3
|
||||
- in: query
|
||||
name: query
|
||||
description: Search query
|
||||
required: false
|
||||
schema: *ref_1
|
||||
- in: query
|
||||
name: limit
|
||||
description: Limit
|
||||
required: false
|
||||
schema: &ref_11
|
||||
type: string
|
||||
- in: query
|
||||
name: pageCursor
|
||||
description: Page cursor
|
||||
required: false
|
||||
schema: *ref_1
|
||||
- in: query
|
||||
name: sort
|
||||
description: Sort items
|
||||
required: false
|
||||
schema: *ref_1
|
||||
/federation/nodes/{nodeID}/modules/exposed/activity-stream:
|
||||
get:
|
||||
tags:
|
||||
- Sync structure
|
||||
summary: List all exposed modules changes in activity streams format
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: Node ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
- in: query
|
||||
name: lastSync
|
||||
description: Last sync timestamp
|
||||
required: false
|
||||
schema: *ref_3
|
||||
- in: query
|
||||
name: query
|
||||
description: Search query
|
||||
required: false
|
||||
schema: *ref_1
|
||||
- in: query
|
||||
name: limit
|
||||
description: Limit
|
||||
required: false
|
||||
schema: *ref_11
|
||||
- in: query
|
||||
name: pageCursor
|
||||
description: Page cursor
|
||||
required: false
|
||||
schema: *ref_1
|
||||
- in: query
|
||||
name: sort
|
||||
description: Sort items
|
||||
required: false
|
||||
schema: *ref_1
|
||||
/federation/nodes/{nodeID}/modules/exposed/records/:
|
||||
get:
|
||||
tags:
|
||||
- Sync data
|
||||
summary: List all record changes
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: Node ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
- in: query
|
||||
name: lastSync
|
||||
description: Last sync timestamp
|
||||
required: false
|
||||
schema: *ref_3
|
||||
- in: query
|
||||
name: query
|
||||
description: Search query
|
||||
required: false
|
||||
schema: *ref_1
|
||||
- in: query
|
||||
name: limit
|
||||
description: Limit
|
||||
required: false
|
||||
schema: *ref_11
|
||||
- in: query
|
||||
name: pageCursor
|
||||
description: Page cursor
|
||||
required: false
|
||||
schema: *ref_1
|
||||
- in: query
|
||||
name: sort
|
||||
description: Sort items
|
||||
required: false
|
||||
schema: *ref_1
|
||||
/federation/nodes/{nodeID}/modules/{moduleID}/records/:
|
||||
get:
|
||||
tags:
|
||||
- Sync data
|
||||
summary: List all records per module
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: Node ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
- in: path
|
||||
name: moduleID
|
||||
description: Module ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
- in: query
|
||||
name: lastSync
|
||||
description: Last sync timestamp
|
||||
required: false
|
||||
schema: *ref_3
|
||||
- in: query
|
||||
name: query
|
||||
description: Search query
|
||||
required: false
|
||||
schema: *ref_1
|
||||
- in: query
|
||||
name: limit
|
||||
description: Limit
|
||||
required: false
|
||||
schema: *ref_11
|
||||
- in: query
|
||||
name: pageCursor
|
||||
description: Page cursor
|
||||
required: false
|
||||
schema: *ref_1
|
||||
- in: query
|
||||
name: sort
|
||||
description: Sort items
|
||||
required: false
|
||||
schema: *ref_1
|
||||
/federation/nodes/{nodeID}/modules/{moduleID}/records/activity-stream/:
|
||||
get:
|
||||
tags:
|
||||
- Sync data
|
||||
summary: List all records per module in activitystreams format
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: nodeID
|
||||
description: Node ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
- in: path
|
||||
name: moduleID
|
||||
description: Module ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
- in: query
|
||||
name: lastSync
|
||||
description: Last sync timestamp
|
||||
required: false
|
||||
schema: *ref_3
|
||||
- in: query
|
||||
name: query
|
||||
description: Search query
|
||||
required: false
|
||||
schema: *ref_1
|
||||
- in: query
|
||||
name: limit
|
||||
description: Limit
|
||||
required: false
|
||||
schema: *ref_11
|
||||
- in: query
|
||||
name: pageCursor
|
||||
description: Page cursor
|
||||
required: false
|
||||
schema: *ref_1
|
||||
- in: query
|
||||
name: sort
|
||||
description: Sort items
|
||||
required: false
|
||||
schema: *ref_1
|
||||
/federation/permissions/:
|
||||
get:
|
||||
tags:
|
||||
- Permissions
|
||||
summary: Retrieve defined permissions
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
/federation/permissions/effective:
|
||||
get:
|
||||
tags:
|
||||
- Permissions
|
||||
summary: Effective rules for current user
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: query
|
||||
name: resource
|
||||
description: Show only rules for a specific resource
|
||||
required: false
|
||||
schema: *ref_1
|
||||
/federation/permissions/trace:
|
||||
get:
|
||||
tags:
|
||||
- Permissions
|
||||
summary: Evaluate rules for given user/role combo
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: query
|
||||
name: resource
|
||||
description: Show only rules for a specific resource
|
||||
required: false
|
||||
schema:
|
||||
type: array
|
||||
items: *ref_1
|
||||
- in: query
|
||||
name: userID
|
||||
required: false
|
||||
schema: *ref_3
|
||||
- in: query
|
||||
name: roleID
|
||||
required: false
|
||||
schema:
|
||||
type: array
|
||||
items: *ref_3
|
||||
/federation/permissions/{roleID}/rules:
|
||||
get:
|
||||
tags:
|
||||
- Permissions
|
||||
summary: Retrieve role permissions
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: roleID
|
||||
description: Role ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
- in: query
|
||||
name: resource
|
||||
description: Show only rules for a specific resource
|
||||
required: false
|
||||
schema:
|
||||
type: array
|
||||
items: *ref_1
|
||||
delete:
|
||||
tags:
|
||||
- Permissions
|
||||
summary: Remove all defined role permissions
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: roleID
|
||||
description: Role ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
patch:
|
||||
tags:
|
||||
- Permissions
|
||||
summary: Update permission settings
|
||||
responses:
|
||||
'200':
|
||||
description: OK
|
||||
parameters:
|
||||
- in: path
|
||||
name: roleID
|
||||
description: Role ID
|
||||
required: true
|
||||
schema: *ref_3
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties: &ref_12
|
||||
rules:
|
||||
type: string
|
||||
description: List of permission rules to set
|
||||
required:
|
||||
- rules
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
type: object
|
||||
properties: *ref_12
|
||||
65
server/docs/index.html
Normal file
65
server/docs/index.html
Normal file
@@ -0,0 +1,65 @@
|
||||
<!-- HTML for static distribution bundle build -->
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Corteza Server REST API Documentation</title>
|
||||
<link rel="stylesheet" type="text/css" href="https://unpkg.com/swagger-ui-dist@3/swagger-ui.css" >
|
||||
<link rel="icon" type="image/png" href="https://unpkg.com/swagger-ui-dist@3/favicon-32x32.png" sizes="32x32" />
|
||||
<link rel="icon" type="image/png" href="https://unpkg.com/swagger-ui-dist@3/favicon-16x16.png" sizes="16x16" />
|
||||
<style>
|
||||
html
|
||||
{
|
||||
box-sizing: border-box;
|
||||
overflow: -moz-scrollbars-vertical;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
*,
|
||||
*:before,
|
||||
*:after
|
||||
{
|
||||
box-sizing: inherit;
|
||||
}
|
||||
|
||||
body
|
||||
{
|
||||
margin:0;
|
||||
background: #fafafa;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="swagger-ui"></div>
|
||||
<script src="https://unpkg.com/swagger-ui-dist@3/swagger-ui-bundle.js" charset="UTF-8"></script>
|
||||
<script src="https://unpkg.com/swagger-ui-dist@3/swagger-ui-standalone-preset.js" charset="UTF-8"></script>
|
||||
|
||||
<script>
|
||||
window.onload = function() {
|
||||
// https://swagger.io/docs/open-source-tools/swagger-ui/usage/configuration/
|
||||
window.ui = SwaggerUIBundle({
|
||||
urls: [
|
||||
{ url: "system.yaml", name: 'System' },
|
||||
{ url: "compose.yaml", name: 'Compose' },
|
||||
{ url: "automation.yaml", name: 'Automation' },
|
||||
{ url: "federation.yaml", name: 'Federation' },
|
||||
],
|
||||
dom_id: '#swagger-ui',
|
||||
deepLinking: true,
|
||||
presets: [
|
||||
SwaggerUIBundle.presets.apis,
|
||||
SwaggerUIStandalonePreset
|
||||
],
|
||||
plugins: [
|
||||
SwaggerUIBundle.plugins.DownloadUrl
|
||||
],
|
||||
layout: "StandaloneLayout",
|
||||
validatorUrl : null,
|
||||
|
||||
supportedSubmitMethods: [],
|
||||
})
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
14
server/docs/serve.go
Normal file
14
server/docs/serve.go
Normal file
@@ -0,0 +1,14 @@
|
||||
package docs
|
||||
|
||||
import (
|
||||
"embed"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
//go:embed *.yaml
|
||||
//go:embed *.html
|
||||
var docs embed.FS
|
||||
|
||||
func GetFS() http.FileSystem {
|
||||
return http.FS(docs)
|
||||
}
|
||||
3818
server/docs/system.yaml
Normal file
3818
server/docs/system.yaml
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user