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

This commit is contained in:
upstream-mirror
2026-09-18 01:22:23 +05:00
commit 7e385fc126
8391 changed files with 1766236 additions and 0 deletions

17
server/docs/README.adoc Normal file
View 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
View 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

File diff suppressed because it is too large Load Diff

830
server/docs/federation.yaml Normal file
View 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
View 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
View 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

File diff suppressed because it is too large Load Diff