3
0
corteza/server/docs/compose.yaml
2022-11-14 09:26:39 +01:00

2465 lines
64 KiB
YAML

openapi: 3.0.0
info:
title: Corteza compose API
description: Corteza compose 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:
/compose/namespace/:
get:
tags:
- Namespaces
summary: List namespaces
responses:
'200':
description: OK
parameters:
- in: query
name: query
description: Search query
required: false
schema: &ref_0
type: string
- in: query
name: slug
description: Search by namespace slug
required: false
schema: *ref_0
- in: query
name: limit
description: Limit
required: false
schema: &ref_10
type: string
- in: query
name: incTotal
description: Include total counter
required: false
schema: &ref_17
type: boolean
- in: query
name: labels
description: Labels
required: false
schema: *ref_0
- 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:
- Namespaces
summary: Create namespace
responses:
'200':
description: OK
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_1
name:
type: string
description: Name
labels:
type: string
description: Labels
slug:
type: string
description: Slug (url path part)
enabled:
type: boolean
description: Enabled
meta:
type: string
format: json
description: Meta data
required:
- name
- meta
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_1
/compose/namespace/{namespaceID}:
get:
tags:
- Namespaces
summary: Read namespace
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: ID
required: true
schema: &ref_2
type: string
post:
tags:
- Namespaces
summary: Update namespace
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: ID
required: true
schema: *ref_2
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_3
name:
type: string
description: Name
slug:
type: string
description: Slug (url path part)
enabled:
type: boolean
description: Enabled
meta:
type: string
format: json
description: Meta data
labels:
type: string
description: Labels
updatedAt:
type: string
format: date-time
description: Last update (or creation) date
required:
- name
- meta
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_3
delete:
tags:
- Namespaces
summary: Delete namespace
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: ID
required: true
schema: *ref_2
/compose/namespace/upload:
post:
tags:
- Namespaces
summary: Upload namespace assets
responses:
'200':
description: OK
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_4
upload:
type: string
format: binary
description: File to upload
required:
- upload
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_4
/compose/namespace/{namespaceID}/clone:
post:
tags:
- Namespaces
summary: Clone compose namespace
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: ID
required: true
schema: *ref_2
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_5
name:
type: string
description: Duplicate name
slug:
type: string
description: Duplicate slug
required:
- name
- slug
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_5
/compose/namespace/{namespaceID}/export/{filename}.zip:
get:
tags:
- Namespaces
summary: Export compose namespace
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: ID
required: true
schema: *ref_2
- in: path
name: filename
description: Output file name
required: true
schema: *ref_0
- in: path
name: ext
description: Output file ext
required: true
schema: *ref_0
/compose/namespace/import:
post:
tags:
- Namespaces
summary: Initiate namespace import session
responses:
'200':
description: OK
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_6
upload:
type: string
format: binary
description: File import
required:
- upload
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_6
/compose/namespace/import/{sessionID}:
post:
tags:
- Namespaces
summary: Run namespace import
responses:
'200':
description: OK
parameters:
- in: path
name: sessionID
description: Import session
required: true
schema: *ref_2
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_7
name:
type: string
description: Imported namespace name
slug:
type: string
description: Imported namespace slug
required:
- name
- slug
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_7
/compose/namespace/{namespaceID}/trigger:
post:
tags:
- Namespaces
summary: Fire compose:namespace trigger
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: ID
required: true
schema: *ref_2
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_8
script:
type: string
description: Script to execute
args:
type: string
description: Arguments to pass to the script
required:
- script
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_8
/compose/namespace/{namespaceID}/translation:
get:
tags:
- Namespaces
summary: List translation
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: ID
required: true
schema: *ref_2
patch:
tags:
- Namespaces
summary: Update translation
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: ID
required: true
schema: *ref_2
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_9
translations:
type: string
description: Resource translation to upsert
required:
- translations
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_9
/compose/namespace/{namespaceID}/page/:
get:
tags:
- Pages
summary: List available pages
responses:
'200':
description: OK
parameters:
- in: query
name: selfID
description: Parent page ID
required: false
schema: *ref_2
- in: query
name: moduleID
description: Module ID
required: false
schema: *ref_2
- in: query
name: query
description: Search query
required: false
schema: *ref_0
- in: query
name: handle
description: Search by handle
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_10
- in: query
name: pageCursor
description: Page cursor
required: false
schema: *ref_0
- in: query
name: sort
description: Sort items
required: false
schema: *ref_0
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
post:
tags:
- Pages
summary: Create page
responses:
'200':
description: OK
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_11
selfID:
type: string
description: Parent Page ID
moduleID:
type: string
description: Module ID
title:
type: string
description: Title
handle:
type: string
description: Handle
description:
type: string
description: Description
weight:
type: integer
description: Page tree weight
labels:
type: string
description: Labels
visible:
type: boolean
description: Visible in navigation
blocks:
type: string
format: json
description: Blocks JSON
config:
type: string
format: json
description: Config JSON
required:
- title
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_11
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
/compose/namespace/{namespaceID}/page/{pageID}:
get:
tags:
- Pages
summary: Get page details
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: pageID
description: Page ID
required: true
schema: *ref_2
post:
tags:
- Pages
summary: Update page
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: pageID
description: Page ID
required: true
schema: *ref_2
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_12
selfID:
type: string
description: Parent Page ID
moduleID:
type: string
description: Module ID (optional)
title:
type: string
description: Title
handle:
type: string
description: Handle
description:
type: string
description: Description
weight:
type: integer
description: Page tree weight
labels:
type: string
description: Labels
visible:
type: boolean
description: Visible in navigation
blocks:
type: string
format: json
description: Blocks JSON
config:
type: string
format: json
description: Config JSON
required:
- title
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_12
delete:
tags:
- Pages
summary: Delete page
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: pageID
description: Page ID
required: true
schema: *ref_2
- in: query
name: strategy
description: Page delete strategy (abort, force, rebase, cascade)
required: false
schema: *ref_0
/compose/namespace/{namespaceID}/page/tree:
get:
tags:
- Pages
summary: Get page all (non-record) pages, hierarchically
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
/compose/namespace/{namespaceID}/page/{selfID}/reorder:
post:
tags:
- Pages
summary: Reorder pages
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: selfID
description: Parent page ID
required: true
schema: *ref_2
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_13
pageIDs:
type: array
items: *ref_0
description: Page ID order
required:
- pageIDs
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_13
/compose/namespace/{namespaceID}/page/{pageID}/attachment:
post:
tags:
- Pages
summary: Uploads attachment to page
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: pageID
description: Page ID
required: true
schema: *ref_2
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_14
upload:
type: string
format: binary
description: File to upload
required:
- upload
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_14
/compose/namespace/{namespaceID}/page/{pageID}/trigger:
post:
tags:
- Pages
summary: Fire compose:page trigger
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: pageID
description: Page ID
required: true
schema: *ref_2
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_15
script:
type: string
description: Script to execute
args:
type: string
description: Arguments to pass to the script
required:
- script
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_15
/compose/namespace/{namespaceID}/page/{pageID}/translation:
get:
tags:
- Pages
summary: List page translation
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: pageID
description: ID
required: true
schema: *ref_2
patch:
tags:
- Pages
summary: Update page translation
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: pageID
description: ID
required: true
schema: *ref_2
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_16
translations:
type: string
description: Resource translation to upsert
required:
- translations
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_16
/compose/namespace/{namespaceID}/module/:
get:
tags:
- Modules
summary: List modules
responses:
'200':
description: OK
parameters:
- in: query
name: query
description: Search query
required: false
schema: *ref_0
- in: query
name: name
description: Search by name
required: false
schema: *ref_0
- in: query
name: handle
description: Search by handle
required: false
schema: *ref_0
- in: query
name: limit
description: Limit
required: false
schema: *ref_10
- in: query
name: incTotal
description: Include total counter
required: false
schema: *ref_17
- in: query
name: pageCursor
description: Page cursor
required: false
schema: *ref_0
- in: query
name: labels
description: Labels
required: false
schema: *ref_0
- in: query
name: sort
description: Sort items
required: false
schema: *ref_0
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
post:
tags:
- Modules
summary: Create module
responses:
'200':
description: OK
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_18
name:
type: string
description: Name
handle:
type: string
description: Handle
config:
type: string
description: Configuration
meta:
type: string
format: json
description: Meta data
fields:
type: array
items: &ref_19
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: Fields
labels:
type: string
description: Labels
required:
- name
- meta
- fields
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_18
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
/compose/namespace/{namespaceID}/module/{moduleID}:
get:
tags:
- Modules
summary: Read module
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: Module ID
required: true
schema: *ref_2
post:
tags:
- Modules
summary: Update module
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: Module ID
required: true
schema: *ref_2
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_20
name:
type: string
description: Name
handle:
type: string
description: Handle
config:
type: string
description: Configuration
meta:
type: string
format: json
description: Meta data
fields:
type: array
items: *ref_19
description: Fields
labels:
type: string
description: Labels
updatedAt:
type: string
format: date-time
description: Last update (or creation) date
required:
- name
- meta
- fields
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_20
delete:
tags:
- Modules
summary: Delete module
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: Module ID
required: true
schema: *ref_2
/compose/namespace/{namespaceID}/module/{moduleID}/trigger:
post:
tags:
- Modules
summary: Fire compose:module trigger
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: ID
required: true
schema: *ref_2
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_21
script:
type: string
description: Script to execute
args:
type: string
description: Arguments to pass to the script
required:
- script
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_21
/compose/namespace/{namespaceID}/module/{moduleID}/translation:
get:
tags:
- Modules
summary: List moudle translation
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: ID
required: true
schema: *ref_2
patch:
tags:
- Modules
summary: Update module translation
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: ID
required: true
schema: *ref_2
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_22
translations:
type: string
description: Resource translation to upsert
required:
- translations
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_22
/compose/namespace/{namespaceID}/module/{moduleID}/record/report:
get:
tags:
- Records
summary: Generates report from module records
responses:
'200':
description: OK
parameters:
- in: query
name: metrics
description: 'Metrics (eg: ''SUM(money), MAX(calls)'')'
required: false
schema: *ref_0
- in: query
name: dimensions
description: 'Dimensions (eg: ''DATE(foo), status'')'
required: true
schema: *ref_0
- in: query
name: filter
description: 'Filter (eg: ''DATE(foo) > 2010'')'
required: false
schema: *ref_0
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: Module ID
required: true
schema: *ref_2
/compose/namespace/{namespaceID}/module/{moduleID}/record/:
get:
tags:
- Records
summary: List/read records from module section
responses:
'200':
description: OK
parameters:
- in: query
name: query
description: Record filtering query
required: false
schema: *ref_0
- in: query
name: meta
description: Record meta data
required: false
schema: *ref_0
- in: query
name: deleted
description: Exclude (0, default), include (1) or return only (2) deleted records
required: false
schema: *ref_10
- in: query
name: limit
description: Limit
required: false
schema: *ref_10
- in: query
name: incTotal
description: Include total records counter
required: false
schema: *ref_17
- in: query
name: incPageNavigation
description: Include page navigation
required: false
schema: *ref_17
- in: query
name: pageCursor
description: Page cursor
required: false
schema: *ref_0
- in: query
name: sort
description: Sort items
required: false
schema: *ref_0
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: Module ID
required: true
schema: *ref_2
post:
tags:
- Records
summary: Create record in module section
responses:
'200':
description: OK
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_23
values:
type: array
items: &ref_28
type: object
properties:
name:
type: string
value:
type: string
description: Record values
ownedBy:
type: string
description: Record Owner
records:
type: array
items: &ref_29
type: object
properties:
recordID:
type: string
format: uuid
moduleID:
type: string
format: uuid
namespaceID:
type: string
format: uuid
values:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
deletedAt:
type: string
format: date-time
ownedBy:
type: string
format: uuid
createdBy:
type: string
format: uuid
updatedBy:
type: string
format: uuid
deletedBy:
type: string
format: uuid
description: Records
meta:
type: string
description: Record meta-data
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_23
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: Module ID
required: true
schema: *ref_2
delete:
tags:
- Records
summary: Delete record row from module section
responses:
'200':
description: OK
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_24
recordIDs:
type: array
items: *ref_0
description: IDs of records to delete
truncate:
type: boolean
description: >-
Remove ALL records of a specified module (pending
implementation)
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_24
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: Module ID
required: true
schema: *ref_2
/compose/namespace/{namespaceID}/module/{moduleID}/record/import:
post:
tags:
- Records
summary: Initiate record import session
responses:
'200':
description: OK
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_25
upload:
type: string
format: binary
description: File import
required:
- upload
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_25
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: Module ID
required: true
schema: *ref_2
/compose/namespace/{namespaceID}/module/{moduleID}/record/import/{sessionID}:
patch:
tags:
- Records
summary: Run record import
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: Module ID
required: true
schema: *ref_2
- in: path
name: sessionID
description: Import session
required: true
schema: *ref_2
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_26
fields:
type: string
format: json
description: Fields defined by import file
onError:
type: string
description: What happens if record fails to import
required:
- fields
- onError
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_26
get:
tags:
- Records
summary: Get import progress
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: Module ID
required: true
schema: *ref_2
- in: path
name: sessionID
description: Import session
required: true
schema: *ref_2
/compose/namespace/{namespaceID}/module/{moduleID}/record/export{filename}.{ext}:
get:
tags:
- Records
summary: 'Exports records that match '
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: Module ID
required: true
schema: *ref_2
- in: path
name: filename
description: Filename to use
required: true
schema: *ref_0
- in: path
name: ext
description: Export format
required: true
schema: *ref_0
- in: query
name: filter
description: Filtering condition
required: false
schema: *ref_0
- in: query
name: fields
description: Fields to export
required: true
schema:
type: array
items: *ref_0
- in: query
name: timezone
description: Convert times to this timezone
required: false
schema: *ref_0
/compose/namespace/{namespaceID}/module/{moduleID}/record/exec/{procedure}:
post:
tags:
- Records
summary: Executes server-side procedure over one or more module records
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: Module ID
required: true
schema: *ref_2
- in: path
name: procedure
description: Name of procedure to execute
required: true
schema: *ref_0
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_27
args:
type: array
items:
type: object
properties:
name:
type: string
value:
type: string
description: Procedure arguments
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_27
/compose/namespace/{namespaceID}/module/{moduleID}/record/{recordID}:
get:
tags:
- Records
summary: Read records by ID from module section
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: Module ID
required: true
schema: *ref_2
- in: path
name: recordID
description: Record ID
required: true
schema: *ref_2
post:
tags:
- Records
summary: Update records in module section
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: Module ID
required: true
schema: *ref_2
- in: path
name: recordID
description: Record ID
required: true
schema: *ref_2
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_30
values:
type: array
items: *ref_28
description: Record values
ownedBy:
type: string
description: Record Owner
meta:
type: string
description: Record meta-data
records:
type: array
items: *ref_29
description: Records
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_30
delete:
tags:
- Records
summary: Delete record row from module section
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: Module ID
required: true
schema: *ref_2
- in: path
name: recordID
description: Record ID
required: true
schema: *ref_2
/compose/namespace/{namespaceID}/module/{moduleID}/record/attachment:
post:
tags:
- Records
summary: Uploads attachment and validates it against record field requirements
responses:
'200':
description: OK
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_31
recordID:
type: string
description: Record ID
fieldName:
type: string
description: Field name
upload:
type: string
format: binary
description: File to upload
required:
- fieldName
- upload
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_31
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: Module ID
required: true
schema: *ref_2
/compose/namespace/{namespaceID}/module/{moduleID}/record/{recordID}/trigger:
post:
tags:
- Records
summary: Fire compose:record trigger
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: Module ID
required: true
schema: *ref_2
- in: path
name: recordID
description: ID
required: true
schema: *ref_2
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_32
script:
type: string
description: Script to execute
values:
type: array
items: *ref_28
description: Record values
required:
- script
- values
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_32
/compose/namespace/{namespaceID}/module/{moduleID}/record/trigger:
post:
tags:
- Records
summary: Fire compose:record trigger
responses:
'200':
description: OK
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_33
script:
type: string
description: Script to execute
args:
type: string
description: Arguments to pass to the script
required:
- script
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_33
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: Module ID
required: true
schema: *ref_2
/compose/namespace/{namespaceID}/module/{moduleID}/record/{recordID}/revisions:
get:
tags:
- Records
summary: List record revisions
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: moduleID
description: Module ID
required: true
schema: *ref_2
- in: path
name: recordID
description: ID
required: true
schema: *ref_2
/compose/data-privacy/record:
get:
tags:
- Data Privacy
summary: List records for data privacy
responses:
'200':
description: OK
parameters:
- in: query
name: sensitivityLevelID
description: Sensitivity Level ID
required: false
schema: *ref_2
- in: query
name: connectionID
description: Filter by connection ID
required: false
schema:
type: array
items: *ref_0
/compose/data-privacy/module:
get:
tags:
- Data Privacy
summary: List modules
responses:
'200':
description: OK
parameters:
- in: query
name: connectionID
description: Filter by connection ID
required: false
schema:
type: array
items: *ref_0
- in: query
name: limit
description: Limit
required: false
schema: *ref_10
- in: query
name: pageCursor
description: Page cursor
required: false
schema: *ref_0
- in: query
name: sort
description: Sort items
required: false
schema: *ref_0
/compose/namespace/{namespaceID}/chart/:
get:
tags:
- Charts
summary: List/read charts
responses:
'200':
description: OK
parameters:
- in: query
name: query
description: Search query to match against charts
required: false
schema: *ref_0
- in: query
name: handle
description: Search charts by handle
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_10
- in: query
name: incTotal
description: Include total counter
required: false
schema: *ref_17
- in: query
name: pageCursor
description: Page cursor
required: false
schema: *ref_0
- in: query
name: sort
description: Sort items
required: false
schema: *ref_0
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
post:
tags:
- Charts
summary: 'List/read charts '
responses:
'200':
description: OK
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_34
config:
type: string
format: json
description: Chart JSON
name:
type: string
description: Chart name
handle:
type: string
description: Chart handle
labels:
type: string
description: Labels
required:
- config
- name
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_34
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
/compose/namespace/{namespaceID}/chart/{chartID}:
get:
tags:
- Charts
summary: Read charts by ID
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: chartID
description: Chart ID
required: true
schema: *ref_2
post:
tags:
- Charts
summary: Add/update charts
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: chartID
description: Chart ID
required: true
schema: *ref_2
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_35
config:
type: string
format: json
description: Chart JSON
name:
type: string
description: Chart name
handle:
type: string
description: Chart handle
labels:
type: string
description: Labels
updatedAt:
type: string
format: date-time
description: Last update (or creation) date
required:
- config
- name
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_35
delete:
tags:
- Charts
summary: Delete chart
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: chartID
description: Chart ID
required: true
schema: *ref_2
/compose/namespace/{namespaceID}/chart/{chartID}/translation:
get:
tags:
- Charts
summary: List chart translation
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: chartID
description: ID
required: true
schema: *ref_2
patch:
tags:
- Charts
summary: Update chart translation
responses:
'200':
description: OK
parameters:
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: chartID
description: ID
required: true
schema: *ref_2
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_36
translations:
type: string
description: Resource translation to upsert
required:
- translations
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_36
/compose/notification/email:
post:
tags:
- Notifications
summary: Send email from the Compose
responses:
'200':
description: OK
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_37
to:
type: array
items: *ref_0
description: Email addresses
cc:
type: array
items: *ref_0
description: Email addresses
replyTo:
type: string
description: Email address in reply-to field
subject:
type: string
description: Email subject
content:
type: string
format: json
description: Message content
remoteAttachments:
type: array
items: *ref_0
description: Remote files to attach to the email
required:
- to
- content
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_37
/compose/namespace/{namespaceID}/attachment/{kind}/:
get:
tags:
- Attachments
summary: List, filter all page attachments
responses:
'200':
description: OK
parameters:
- in: query
name: sign
description: Signature
required: false
schema: *ref_0
- in: query
name: userID
description: User ID
required: false
schema: *ref_2
- in: query
name: pageID
description: Filter attachments by page ID
required: false
schema: *ref_2
- in: query
name: moduleID
description: Filter attachments by module ID
required: false
schema: *ref_2
- in: query
name: recordID
description: Filter attachments by record ID
required: false
schema: *ref_2
- in: query
name: fieldName
description: Filter attachments by field name
required: false
schema: *ref_0
- in: query
name: limit
description: Limit
required: false
schema: *ref_10
- in: query
name: pageCursor
description: Page cursor
required: false
schema: *ref_0
- in: path
name: kind
description: Attachment kind
required: true
schema: *ref_0
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
/compose/namespace/{namespaceID}/attachment/{kind}/{attachmentID}:
get:
tags:
- Attachments
summary: Attachment details
responses:
'200':
description: OK
parameters:
- in: path
name: kind
description: Attachment kind
required: true
schema: *ref_0
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: attachmentID
description: Attachment ID
required: true
schema: *ref_2
- in: query
name: sign
description: Signature
required: false
schema: *ref_0
- in: query
name: userID
description: User ID
required: false
schema: *ref_2
delete:
tags:
- Attachments
summary: Delete attachment
responses:
'200':
description: OK
parameters:
- in: path
name: kind
description: Attachment kind
required: true
schema: *ref_0
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: attachmentID
description: Attachment ID
required: true
schema: *ref_2
- in: query
name: sign
description: Signature
required: false
schema: *ref_0
- in: query
name: userID
description: User ID
required: false
schema: *ref_2
/compose/namespace/{namespaceID}/attachment/{kind}/{attachmentID}/original/{name}:
get:
tags:
- Attachments
summary: Serves attached file
responses:
'200':
description: OK
parameters:
- in: path
name: kind
description: Attachment kind
required: true
schema: *ref_0
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: attachmentID
description: Attachment ID
required: true
schema: *ref_2
- in: path
name: name
description: File name
required: true
schema: *ref_0
- in: query
name: sign
description: Signature
required: false
schema: *ref_0
- in: query
name: userID
description: User ID
required: false
schema: *ref_2
- in: query
name: download
description: Force file download
required: false
schema: *ref_17
/compose/namespace/{namespaceID}/attachment/{kind}/{attachmentID}/preview.{ext}:
get:
tags:
- Attachments
summary: Serves preview of an attached file
responses:
'200':
description: OK
parameters:
- in: path
name: kind
description: Attachment kind
required: true
schema: *ref_0
- in: path
name: namespaceID
description: Namespace ID
required: true
schema: *ref_2
- in: path
name: attachmentID
description: Attachment ID
required: true
schema: *ref_2
- in: path
name: ext
description: Preview extension/format
required: true
schema: *ref_0
- in: query
name: sign
description: Signature
required: false
schema: *ref_0
- in: query
name: userID
description: User ID
required: false
schema: *ref_2
/compose/permissions/:
get:
tags:
- Permissions
summary: Retrieve defined permissions
responses:
'200':
description: OK
/compose/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
/compose/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_2
- in: query
name: roleID
required: false
schema:
type: array
items: *ref_2
/compose/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_2
- 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_2
patch:
tags:
- Permissions
summary: Update permission settings
responses:
'200':
description: OK
parameters:
- in: path
name: roleID
description: Role ID
required: true
schema: *ref_2
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_38
rules:
type: string
description: List of permission rules to set
required:
- rules
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_38
/compose/automation/:
get:
tags:
- Compose automation scripts
summary: List all available automation scripts for compose resources
responses:
'200':
description: OK
parameters:
- in: query
name: resourceTypePrefixes
description: Filter by resource prefix
required: false
schema:
type: array
items: *ref_0
- in: query
name: resourceTypes
description: Filter by resource type
required: false
schema:
type: array
items: *ref_0
- in: query
name: eventTypes
description: Filter by event type
required: false
schema:
type: array
items: *ref_0
- in: query
name: excludeInvalid
description: Exclude scripts that cannot be used (errors)
required: false
schema: *ref_17
- in: query
name: excludeClientScripts
description: Do not include client scripts
required: false
schema: *ref_17
- in: query
name: excludeServerScripts
description: Do not include server scripts
required: false
schema: *ref_17
/compose/automation/{bundle}-{type}.{ext}:
get:
tags:
- Compose automation scripts
summary: Serves client scripts bundle
responses:
'200':
description: OK
parameters:
- in: path
name: bundle
description: Name of the bundle
required: true
schema: *ref_0
- in: path
name: type
description: Bundle type
required: true
schema: *ref_0
- in: path
name: ext
description: Bundle extension
required: true
schema: *ref_0
/compose/automation/trigger:
post:
tags:
- Compose automation scripts
summary: Triggers execution of a specific script on a system service level
responses:
'200':
description: OK
requestBody:
content:
application/json:
schema:
type: object
properties: &ref_39
script:
type: string
description: Script to execute
args:
type: string
description: Arguments to pass to the script
required:
- script
application/x-www-form-urlencoded:
schema:
type: object
properties: *ref_39