1341 lines
33 KiB
YAML
1341 lines
33 KiB
YAML
---
|
|
|
|
# This is direct conversion from old api/*/spec.json files
|
|
# using https://www.json2yaml.com/
|
|
#
|
|
# Next step: swagger.
|
|
|
|
endpoints:
|
|
- title: Namespaces
|
|
entrypoint: namespace
|
|
path: "/namespace"
|
|
authentication: []
|
|
imports:
|
|
- github.com/cortezaproject/corteza-server/pkg/label
|
|
- github.com/cortezaproject/corteza-server/pkg/locale
|
|
- sqlxTypes github.com/jmoiron/sqlx/types
|
|
- time
|
|
apis:
|
|
- name: list
|
|
method: GET
|
|
title: List namespaces
|
|
path: "/"
|
|
parameters:
|
|
get:
|
|
- type: string
|
|
name: query
|
|
required: false
|
|
title: Search query
|
|
- type: string
|
|
name: slug
|
|
required: false
|
|
title: Search by namespace slug
|
|
- type: uint
|
|
name: limit
|
|
title: Limit
|
|
- type: bool
|
|
name: incTotal
|
|
title: Include total counter
|
|
- type: map[string]string
|
|
name: labels
|
|
title: Labels
|
|
parser: label.ParseStrings
|
|
- type: string
|
|
name: pageCursor
|
|
title: Page cursor
|
|
- type: string
|
|
name: sort
|
|
title: Sort items
|
|
- name: create
|
|
method: POST
|
|
title: Create namespace
|
|
path: "/"
|
|
parameters:
|
|
post:
|
|
- type: string
|
|
name: name
|
|
required: true
|
|
title: Name
|
|
- type: map[string]string
|
|
name: labels
|
|
title: Labels
|
|
parser: label.ParseStrings
|
|
- type: string
|
|
name: slug
|
|
required: false
|
|
title: Slug (url path part)
|
|
- type: bool
|
|
name: enabled
|
|
required: false
|
|
title: Enabled
|
|
- type: sqlxTypes.JSONText
|
|
name: meta
|
|
required: true
|
|
title: Meta data
|
|
- name: read
|
|
method: GET
|
|
title: Read namespace
|
|
path: "/{namespaceID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: namespaceID
|
|
required: true
|
|
title: ID
|
|
- name: update
|
|
method: POST
|
|
title: Update namespace
|
|
path: "/{namespaceID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: namespaceID
|
|
required: true
|
|
title: ID
|
|
post:
|
|
- type: string
|
|
name: name
|
|
required: true
|
|
title: Name
|
|
- type: string
|
|
name: slug
|
|
required: false
|
|
title: Slug (url path part)
|
|
- type: bool
|
|
name: enabled
|
|
required: false
|
|
title: Enabled
|
|
- type: sqlxTypes.JSONText
|
|
name: meta
|
|
required: true
|
|
title: Meta data
|
|
- type: map[string]string
|
|
name: labels
|
|
title: Labels
|
|
parser: label.ParseStrings
|
|
- type: "*time.Time"
|
|
name: updatedAt
|
|
required: false
|
|
title: Last update (or creation) date
|
|
- name: delete
|
|
method: DELETE
|
|
title: Delete namespace
|
|
path: "/{namespaceID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: namespaceID
|
|
required: true
|
|
title: ID
|
|
- name: upload
|
|
path: "/upload"
|
|
method: POST
|
|
title: Upload namespace assets
|
|
parameters:
|
|
post:
|
|
- name: upload
|
|
type: "*multipart.FileHeader"
|
|
required: true
|
|
title: File to upload
|
|
- name: clone
|
|
path: "/{namespaceID}/clone"
|
|
method: POST
|
|
title: Clone compose namespace
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: namespaceID
|
|
required: true
|
|
title: ID
|
|
post:
|
|
- type: string
|
|
name: name
|
|
required: true
|
|
title: Duplicate name
|
|
- type: string
|
|
name: slug
|
|
required: true
|
|
title: Duplicate slug
|
|
- name: export
|
|
path: "/{namespaceID}/export/{filename}.zip"
|
|
method: GET
|
|
title: Export compose namespace
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: namespaceID
|
|
required: true
|
|
title: ID
|
|
- type: string
|
|
name: filename
|
|
required: true
|
|
title: Output file name
|
|
- type: string
|
|
name: ext
|
|
required: true
|
|
title: Output file ext
|
|
- name: importInit
|
|
path: "/import"
|
|
method: POST
|
|
title: Initiate namespace import session
|
|
parameters:
|
|
post:
|
|
- name: upload
|
|
type: "*multipart.FileHeader"
|
|
required: true
|
|
title: File import
|
|
- name: importRun
|
|
path: "/import/{sessionID}"
|
|
method: POST
|
|
title: Run namespace import
|
|
parameters:
|
|
path:
|
|
- name: sessionID
|
|
type: uint64
|
|
required: true
|
|
title: Import session
|
|
post:
|
|
- type: string
|
|
name: name
|
|
required: true
|
|
title: Imported namespace name
|
|
- type: string
|
|
name: slug
|
|
required: true
|
|
title: Imported namespace slug
|
|
- name: triggerScript
|
|
method: POST
|
|
title: Fire compose:namespace trigger
|
|
path: "/{namespaceID}/trigger"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: namespaceID
|
|
required: true
|
|
title: ID
|
|
post:
|
|
- name: script
|
|
type: string
|
|
title: Script to execute
|
|
required: true
|
|
- name: args
|
|
type: map[string]interface{}
|
|
parser: parseMapStringInterface
|
|
title: Arguments to pass to the script
|
|
- name: listTranslations
|
|
method: GET
|
|
title: List translation
|
|
path: "/{namespaceID}/translation"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: namespaceID
|
|
required: true
|
|
title: ID
|
|
- name: updateTranslations
|
|
method: PATCH
|
|
title: Update translation
|
|
path: "/{namespaceID}/translation"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: namespaceID
|
|
required: true
|
|
title: ID
|
|
post:
|
|
- name: translations
|
|
type: locale.ResourceTranslationSet
|
|
title: Resource translation to upsert
|
|
required: true
|
|
|
|
- title: Pages
|
|
description: Compose pages
|
|
entrypoint: page
|
|
path: "/namespace/{namespaceID}/page"
|
|
authentication: []
|
|
imports:
|
|
- sqlxTypes github.com/jmoiron/sqlx/types
|
|
- github.com/cortezaproject/corteza-server/pkg/locale
|
|
- github.com/cortezaproject/corteza-server/pkg/label
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: namespaceID
|
|
required: true
|
|
title: Namespace ID
|
|
apis:
|
|
- name: list
|
|
method: GET
|
|
path: "/"
|
|
title: List available pages
|
|
parameters:
|
|
get:
|
|
- type: uint64
|
|
name: selfID
|
|
required: false
|
|
title: Parent page ID
|
|
- type: uint64
|
|
name: moduleID
|
|
required: false
|
|
title: Module ID
|
|
- type: string
|
|
name: query
|
|
required: false
|
|
title: Search query
|
|
- type: string
|
|
name: handle
|
|
required: false
|
|
title: Search by handle
|
|
- type: map[string]string
|
|
name: labels
|
|
title: Labels
|
|
parser: label.ParseStrings
|
|
- type: uint
|
|
name: limit
|
|
title: Limit
|
|
- type: string
|
|
name: pageCursor
|
|
title: Page cursor
|
|
- type: string
|
|
name: sort
|
|
title: Sort items
|
|
- name: create
|
|
method: POST
|
|
title: Create page
|
|
path: "/"
|
|
parameters:
|
|
post:
|
|
- type: uint64
|
|
name: selfID
|
|
required: false
|
|
title: Parent Page ID
|
|
- type: uint64
|
|
name: moduleID
|
|
required: false
|
|
title: Module ID
|
|
- type: string
|
|
name: title
|
|
required: true
|
|
title: Title
|
|
- type: string
|
|
name: handle
|
|
required: false
|
|
title: Handle
|
|
- type: string
|
|
name: description
|
|
required: false
|
|
title: Description
|
|
- type: int
|
|
name: weight
|
|
required: false
|
|
title: Page tree weight
|
|
- type: map[string]string
|
|
name: labels
|
|
title: Labels
|
|
parser: label.ParseStrings
|
|
- type: bool
|
|
name: visible
|
|
required: false
|
|
title: Visible in navigation
|
|
- type: sqlxTypes.JSONText
|
|
name: blocks
|
|
required: false
|
|
title: Blocks JSON
|
|
- type: sqlxTypes.JSONText
|
|
name: config
|
|
required: false
|
|
title: Config JSON
|
|
- name: read
|
|
path: "/{pageID}"
|
|
method: GET
|
|
title: Get page details
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: pageID
|
|
required: true
|
|
title: Page ID
|
|
- name: tree
|
|
path: "/tree"
|
|
method: GET
|
|
title: Get page all (non-record) pages, hierarchically
|
|
|
|
- name: update
|
|
method: POST
|
|
title: Update page
|
|
path: "/{pageID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: pageID
|
|
required: true
|
|
title: Page ID
|
|
post:
|
|
- type: uint64
|
|
name: selfID
|
|
required: false
|
|
title: Parent Page ID
|
|
- type: uint64
|
|
name: moduleID
|
|
required: false
|
|
title: Module ID (optional)
|
|
- type: string
|
|
name: title
|
|
required: true
|
|
title: Title
|
|
- type: string
|
|
name: handle
|
|
required: false
|
|
title: Handle
|
|
- type: string
|
|
name: description
|
|
required: false
|
|
title: Description
|
|
- type: int
|
|
name: weight
|
|
required: false
|
|
title: Page tree weight
|
|
- type: map[string]string
|
|
name: labels
|
|
title: Labels
|
|
parser: label.ParseStrings
|
|
- type: bool
|
|
name: visible
|
|
required: false
|
|
title: Visible in navigation
|
|
- type: sqlxTypes.JSONText
|
|
name: blocks
|
|
required: false
|
|
title: Blocks JSON
|
|
- type: sqlxTypes.JSONText
|
|
name: config
|
|
required: false
|
|
title: Config JSON
|
|
- name: reorder
|
|
method: POST
|
|
title: Reorder pages
|
|
path: "/{selfID}/reorder"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: selfID
|
|
required: true
|
|
title: Parent page ID
|
|
post:
|
|
- type: "[]string"
|
|
name: pageIDs
|
|
required: true
|
|
title: Page ID order
|
|
- name: delete
|
|
path: "/{pageID}"
|
|
method: DELETE
|
|
title: Delete page
|
|
parameters:
|
|
path:
|
|
- { type: uint64, name: pageID, required: true, title: Page ID }
|
|
get:
|
|
- { type: string, name: strategy, title: "Page delete strategy (abort, force, rebase, cascade)" }
|
|
- name: upload
|
|
path: "/{pageID}/attachment"
|
|
method: POST
|
|
title: Uploads attachment to page
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: pageID
|
|
required: true
|
|
title: Page ID
|
|
post:
|
|
- name: upload
|
|
type: "*multipart.FileHeader"
|
|
required: true
|
|
title: File to upload
|
|
- name: triggerScript
|
|
method: POST
|
|
title: Fire compose:page trigger
|
|
path: "/{pageID}/trigger"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: pageID
|
|
required: true
|
|
title: Page ID
|
|
post:
|
|
- name: script
|
|
type: string
|
|
title: Script to execute
|
|
required: true
|
|
- name: args
|
|
type: map[string]interface{}
|
|
parser: parseMapStringInterface
|
|
title: Arguments to pass to the script
|
|
|
|
- name: listTranslations
|
|
method: GET
|
|
title: List page translation
|
|
path: "/{pageID}/translation"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: pageID
|
|
required: true
|
|
title: ID
|
|
- name: updateTranslations
|
|
method: PATCH
|
|
title: Update page translation
|
|
path: "/{pageID}/translation"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: pageID
|
|
required: true
|
|
title: ID
|
|
post:
|
|
- name: translations
|
|
type: locale.ResourceTranslationSet
|
|
title: Resource translation to upsert
|
|
required: true
|
|
|
|
- title: Modules
|
|
description: Compose module definitions
|
|
entrypoint: module
|
|
path: "/namespace/{namespaceID}/module"
|
|
authentication: []
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: namespaceID
|
|
required: true
|
|
title: Namespace ID
|
|
imports:
|
|
- sqlxTypes github.com/jmoiron/sqlx/types
|
|
- github.com/cortezaproject/corteza-server/compose/types
|
|
- github.com/cortezaproject/corteza-server/pkg/locale
|
|
- github.com/cortezaproject/corteza-server/pkg/label
|
|
- time
|
|
apis:
|
|
- name: list
|
|
method: GET
|
|
title: List modules
|
|
path: "/"
|
|
parameters:
|
|
get:
|
|
- type: string
|
|
name: query
|
|
required: false
|
|
title: Search query
|
|
- type: string
|
|
name: name
|
|
required: false
|
|
title: Search by name
|
|
- type: string
|
|
name: handle
|
|
required: false
|
|
title: Search by handle
|
|
- type: uint
|
|
name: limit
|
|
title: Limit
|
|
- type: bool
|
|
name: incTotal
|
|
title: Include total counter
|
|
- type: string
|
|
name: pageCursor
|
|
title: Page cursor
|
|
- type: map[string]string
|
|
name: labels
|
|
title: Labels
|
|
parser: label.ParseStrings
|
|
- type: string
|
|
name: sort
|
|
title: Sort items
|
|
- name: create
|
|
method: POST
|
|
title: Create module
|
|
path: "/"
|
|
parameters:
|
|
post:
|
|
- { type: "string", name: name, title: Name, required: true }
|
|
- { type: "string", name: handle, title: Handle }
|
|
- { type: "types.ModuleConfig", name: config, title: Configuration, parser: types.ParseModuleConfig }
|
|
- { type: "sqlxTypes.JSONText", name: meta, title: Meta data, required: true }
|
|
- { type: "types.ModuleFieldSet", name: fields, title: Fields, required: true }
|
|
- { type: "map[string]string", name: labels, title: Labels, parser: label.ParseStrings }
|
|
- name: read
|
|
method: GET
|
|
title: Read module
|
|
path: "/{moduleID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: moduleID
|
|
required: true
|
|
title: Module ID
|
|
- name: update
|
|
method: POST
|
|
title: Update module
|
|
path: "/{moduleID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: moduleID
|
|
required: true
|
|
title: Module ID
|
|
post:
|
|
- { type: "string", name: name, title: Name, required: true }
|
|
- { type: "string", name: handle, title: Handle }
|
|
- { type: "types.ModuleConfig", name: config, title: Configuration, parser: types.ParseModuleConfig }
|
|
- { type: "sqlxTypes.JSONText", name: meta, title: Meta data, required: true }
|
|
- { type: "types.ModuleFieldSet", name: fields, title: Fields, required: true }
|
|
- { type: "map[string]string", name: labels, title: Labels, parser: label.ParseStrings }
|
|
- { type: "*time.Time", name: updatedAt, title: Last update (or creation) date }
|
|
- name: delete
|
|
method: DELETE
|
|
title: Delete module
|
|
path: "/{moduleID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: moduleID
|
|
required: true
|
|
title: Module ID
|
|
- name: triggerScript
|
|
method: POST
|
|
title: Fire compose:module trigger
|
|
path: "/{moduleID}/trigger"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: moduleID
|
|
required: true
|
|
title: ID
|
|
post:
|
|
- name: script
|
|
type: string
|
|
title: Script to execute
|
|
required: true
|
|
- name: args
|
|
type: map[string]interface{}
|
|
parser: parseMapStringInterface
|
|
title: Arguments to pass to the script
|
|
- name: listTranslations
|
|
method: GET
|
|
title: List moudle translation
|
|
path: "/{moduleID}/translation"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: moduleID
|
|
required: true
|
|
title: ID
|
|
- name: updateTranslations
|
|
method: PATCH
|
|
title: Update module translation
|
|
path: "/{moduleID}/translation"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: moduleID
|
|
required: true
|
|
title: ID
|
|
post:
|
|
- name: translations
|
|
type: locale.ResourceTranslationSet
|
|
title: Resource translation to upsert
|
|
required: true
|
|
|
|
- title: Records
|
|
description: Compose records
|
|
entrypoint: record
|
|
path: "/namespace/{namespaceID}/module/{moduleID}/record"
|
|
authentication: []
|
|
imports:
|
|
- github.com/cortezaproject/corteza-server/compose/types
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: namespaceID
|
|
required: true
|
|
title: Namespace ID
|
|
- type: uint64
|
|
name: moduleID
|
|
required: true
|
|
title: Module ID
|
|
apis:
|
|
- name: report
|
|
method: GET
|
|
title: Generates report from module records
|
|
path: "/report"
|
|
parameters:
|
|
get:
|
|
- type: string
|
|
name: metrics
|
|
required: false
|
|
title: 'Metrics (eg: ''SUM(money), MAX(calls)'')'
|
|
- type: string
|
|
name: dimensions
|
|
required: true
|
|
title: 'Dimensions (eg: ''DATE(foo), status'')'
|
|
- type: string
|
|
name: filter
|
|
required: false
|
|
title: 'Filter (eg: ''DATE(foo) > 2010'')'
|
|
- name: list
|
|
method: GET
|
|
title: List/read records from module section
|
|
path: "/"
|
|
parameters:
|
|
get:
|
|
- { name: query, type: "string", title: "Record filtering query" }
|
|
- { name: meta, type: "map[string]any", title: "Record meta data", parser: payload.ParseMeta }
|
|
- { name: deleted, type: "uint", title: "Exclude (0, default), include (1) or return only (2) deleted records" }
|
|
- { name: limit, type: "uint", title: "Limit" }
|
|
- { name: incTotal, type: "bool", title: "Include total records counter" }
|
|
- { name: incPageNavigation, type: "bool", title: "Include page navigation" }
|
|
- { name: pageCursor, type: "string", title: "Page cursor" }
|
|
- { name: sort, type: "string", title: "Sort items" }
|
|
- name: importInit
|
|
path: "/import"
|
|
method: POST
|
|
title: Initiate record import session
|
|
parameters:
|
|
post:
|
|
- name: upload
|
|
type: "*multipart.FileHeader"
|
|
required: true
|
|
title: File import
|
|
- name: importRun
|
|
path: "/import/{sessionID}"
|
|
method: PATCH
|
|
title: Run record import
|
|
parameters:
|
|
path:
|
|
- name: sessionID
|
|
type: uint64
|
|
required: true
|
|
title: Import session
|
|
post:
|
|
- name: fields
|
|
type: json.RawMessage
|
|
required: true
|
|
title: Fields defined by import file
|
|
- name: onError
|
|
type: string
|
|
required: true
|
|
title: What happens if record fails to import
|
|
- name: importProgress
|
|
path: "/import/{sessionID}"
|
|
method: GET
|
|
title: Get import progress
|
|
parameters:
|
|
path:
|
|
- name: sessionID
|
|
type: uint64
|
|
required: true
|
|
title: Import session
|
|
- name: export
|
|
path: "/export{filename}.{ext}"
|
|
method: GET
|
|
title: 'Exports records that match '
|
|
parameters:
|
|
path:
|
|
- type: string
|
|
name: filename
|
|
required: false
|
|
title: Filename to use
|
|
- type: string
|
|
name: ext
|
|
required: true
|
|
title: Export format
|
|
get:
|
|
- name: filter
|
|
type: string
|
|
required: false
|
|
title: Filtering condition
|
|
- name: fields
|
|
type: "[]string"
|
|
required: true
|
|
title: Fields to export
|
|
- name: timezone
|
|
type: string
|
|
required: false
|
|
title: Convert times to this timezone
|
|
- name: exec
|
|
path: "/exec/{procedure}"
|
|
method: POST
|
|
title: Executes server-side procedure over one or more module records
|
|
parameters:
|
|
path:
|
|
- type: string
|
|
name: procedure
|
|
required: true
|
|
title: Name of procedure to execute
|
|
post:
|
|
- type: "[]ProcedureArg"
|
|
name: args
|
|
required: false
|
|
title: Procedure arguments
|
|
- name: create
|
|
method: POST
|
|
title: Create record in module section
|
|
path: "/"
|
|
parameters:
|
|
post:
|
|
- { name: values, type: "types.RecordValueSet", title: Record values }
|
|
- { name: ownedBy, type: "uint64", title: Record Owner }
|
|
- { name: records, type: "types.RecordBulkSet", title: Records }
|
|
- { name: meta, type: "map[string]any", title: Record meta-data, parser: payload.ParseMeta }
|
|
- name: read
|
|
method: GET
|
|
title: Read records by ID from module section
|
|
path: "/{recordID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: recordID
|
|
required: true
|
|
title: Record ID
|
|
- name: update
|
|
method: POST
|
|
title: Update records in module section
|
|
path: "/{recordID}"
|
|
parameters:
|
|
path:
|
|
- { name: recordID, type: "uint64", required: true, title: Record ID }
|
|
post:
|
|
- { name: values, type: "types.RecordValueSet", title: Record values }
|
|
- { name: ownedBy, type: "uint64", title: Record Owner }
|
|
- { name: meta, type: "map[string]any", title: Record meta-data, parser: payload.ParseMeta }
|
|
- { name: records, type: "types.RecordBulkSet", title: Records }
|
|
- name: bulkDelete
|
|
method: DELETE
|
|
title: Delete record row from module section
|
|
path: "/"
|
|
parameters:
|
|
post:
|
|
- type: "[]string"
|
|
name: recordIDs
|
|
required: false
|
|
title: IDs of records to delete
|
|
- type: bool
|
|
name: truncate
|
|
required: false
|
|
title: Remove ALL records of a specified module (pending implementation)
|
|
- name: delete
|
|
method: DELETE
|
|
title: Delete record row from module section
|
|
path: "/{recordID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: recordID
|
|
required: true
|
|
title: Record ID
|
|
- name: upload
|
|
path: "/attachment"
|
|
method: POST
|
|
title: Uploads attachment and validates it against record field requirements
|
|
parameters:
|
|
post:
|
|
- name: recordID
|
|
type: uint64
|
|
required: false
|
|
title: Record ID
|
|
- name: fieldName
|
|
type: string
|
|
required: true
|
|
title: Field name
|
|
- name: upload
|
|
type: "*multipart.FileHeader"
|
|
required: true
|
|
title: File to upload
|
|
- name: triggerScript
|
|
method: POST
|
|
title: Fire compose:record trigger
|
|
path: "/{recordID}/trigger"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: recordID
|
|
required: true
|
|
title: ID
|
|
post:
|
|
- name: script
|
|
type: string
|
|
title: Script to execute
|
|
required: true
|
|
- type: types.RecordValueSet
|
|
name: values
|
|
required: true
|
|
title: Record values
|
|
- name: triggerScriptOnList
|
|
method: POST
|
|
title: Fire compose:record trigger
|
|
path: "/trigger"
|
|
parameters:
|
|
post:
|
|
- name: script
|
|
type: string
|
|
title: Script to execute
|
|
required: true
|
|
- name: args
|
|
type: map[string]interface{}
|
|
parser: parseMapStringInterface
|
|
title: Arguments to pass to the script
|
|
- name: revisions
|
|
method: GET
|
|
title: List record revisions
|
|
path: "/{recordID}/revisions"
|
|
parameters:
|
|
path:
|
|
- { type: uint64, name: recordID, required: true, title: ID }
|
|
|
|
- title: Data Privacy
|
|
entrypoint: dataPrivacy
|
|
path: "/data-privacy"
|
|
apis:
|
|
- name: record list
|
|
method: GET
|
|
title: List records for data privacy
|
|
path: /record
|
|
parameters:
|
|
get:
|
|
- { name: sensitivityLevelID, type: "uint64", title: "Sensitivity Level ID", required: false}
|
|
- { name: connectionID, type: "[]string", required: false, title: "Filter by connection ID"}
|
|
- name: module list
|
|
method: GET
|
|
title: List modules
|
|
path: /module
|
|
parameters:
|
|
get:
|
|
- { name: connectionID, type: "[]string", title: "Filter by connection ID" }
|
|
- { name: limit, type: "uint", title: "Limit" }
|
|
- { name: pageCursor, type: "string", title: "Page cursor" }
|
|
- { name: sort, type: "string", title: "Sort items" }
|
|
|
|
- title: Charts
|
|
path: "/namespace/{namespaceID}/chart"
|
|
entrypoint: chart
|
|
authentication: []
|
|
imports:
|
|
- sqlxTypes github.com/jmoiron/sqlx/types
|
|
- github.com/cortezaproject/corteza-server/pkg/label
|
|
- github.com/cortezaproject/corteza-server/pkg/locale
|
|
- time
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: namespaceID
|
|
required: true
|
|
title: Namespace ID
|
|
apis:
|
|
- name: list
|
|
method: GET
|
|
title: List/read charts
|
|
path: "/"
|
|
parameters:
|
|
get:
|
|
- name: query
|
|
required: false
|
|
title: Search query to match against charts
|
|
type: string
|
|
- name: handle
|
|
required: false
|
|
title: Search charts by handle
|
|
type: string
|
|
- type: map[string]string
|
|
name: labels
|
|
title: Labels
|
|
parser: label.ParseStrings
|
|
- type: uint
|
|
name: limit
|
|
title: Limit
|
|
- type: bool
|
|
name: incTotal
|
|
title: Include total counter
|
|
- type: string
|
|
name: pageCursor
|
|
title: Page cursor
|
|
- type: string
|
|
name: sort
|
|
title: Sort items
|
|
- name: create
|
|
method: POST
|
|
title: 'List/read charts '
|
|
path: "/"
|
|
parameters:
|
|
post:
|
|
- type: sqlxTypes.JSONText
|
|
name: config
|
|
required: true
|
|
title: Chart JSON
|
|
- name: name
|
|
title: Chart name
|
|
type: string
|
|
required: true
|
|
- name: handle
|
|
title: Chart handle
|
|
type: string
|
|
required: false
|
|
- type: map[string]string
|
|
name: labels
|
|
title: Labels
|
|
parser: label.ParseStrings
|
|
- name: read
|
|
method: GET
|
|
title: Read charts by ID
|
|
path: "/{chartID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: chartID
|
|
required: true
|
|
title: Chart ID
|
|
- name: update
|
|
method: POST
|
|
title: Add/update charts
|
|
path: "/{chartID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: chartID
|
|
required: true
|
|
title: Chart ID
|
|
post:
|
|
- type: sqlxTypes.JSONText
|
|
name: config
|
|
required: true
|
|
title: Chart JSON
|
|
- name: name
|
|
title: Chart name
|
|
type: string
|
|
required: true
|
|
- name: handle
|
|
title: Chart handle
|
|
type: string
|
|
required: false
|
|
- type: map[string]string
|
|
name: labels
|
|
title: Labels
|
|
parser: label.ParseStrings
|
|
- type: "*time.Time"
|
|
name: updatedAt
|
|
required: false
|
|
title: Last update (or creation) date
|
|
- name: delete
|
|
method: DELETE
|
|
title: Delete chart
|
|
path: "/{chartID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: chartID
|
|
required: true
|
|
title: Chart ID
|
|
- name: listTranslations
|
|
method: GET
|
|
title: List chart translation
|
|
path: "/{chartID}/translation"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: chartID
|
|
required: true
|
|
title: ID
|
|
- name: updateTranslations
|
|
method: PATCH
|
|
title: Update chart translation
|
|
path: "/{chartID}/translation"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: chartID
|
|
required: true
|
|
title: ID
|
|
post:
|
|
- name: translations
|
|
type: locale.ResourceTranslationSet
|
|
title: Resource translation to upsert
|
|
required: true
|
|
|
|
- title: Notifications
|
|
description: Compose Notifications
|
|
entrypoint: notification
|
|
path: "/notification"
|
|
authentication: []
|
|
imports:
|
|
- sqlxTypes github.com/jmoiron/sqlx/types
|
|
apis:
|
|
- name: email/send
|
|
method: POST
|
|
title: Send email from the Compose
|
|
path: "/email"
|
|
parameters:
|
|
post:
|
|
- name: to
|
|
type: "[]string"
|
|
required: true
|
|
title: Email addresses
|
|
- name: cc
|
|
type: "[]string"
|
|
required: false
|
|
title: Email addresses
|
|
- name: replyTo
|
|
type: string
|
|
required: false
|
|
title: Email address in reply-to field
|
|
- name: subject
|
|
type: string
|
|
required: false
|
|
title: Email subject
|
|
- name: content
|
|
type: sqlxTypes.JSONText
|
|
required: true
|
|
title: Message content
|
|
- name: remoteAttachments
|
|
type: "[]string"
|
|
required: false
|
|
title: Remote files to attach to the email
|
|
- title: Attachments
|
|
path: "/namespace/{namespaceID}/attachment/{kind}"
|
|
entrypoint: attachment
|
|
authentication:
|
|
- Client ID
|
|
- Session ID
|
|
parameters:
|
|
path:
|
|
- name: kind
|
|
type: string
|
|
required: true
|
|
title: Attachment kind
|
|
- type: uint64
|
|
name: namespaceID
|
|
required: true
|
|
title: Namespace ID
|
|
get:
|
|
- type: string
|
|
name: sign
|
|
required: false
|
|
title: Signature
|
|
- type: uint64
|
|
name: userID
|
|
required: false
|
|
title: User ID
|
|
apis:
|
|
- name: list
|
|
path: "/"
|
|
method: GET
|
|
title: List, filter all page attachments
|
|
parameters:
|
|
get:
|
|
- name: pageID
|
|
type: uint64
|
|
required: false
|
|
title: Filter attachments by page ID
|
|
- type: uint64
|
|
name: moduleID
|
|
required: false
|
|
title: Filter attachments by module ID
|
|
- name: recordID
|
|
type: uint64
|
|
required: false
|
|
title: Filter attachments by record ID
|
|
- name: fieldName
|
|
type: string
|
|
required: false
|
|
title: Filter attachments by field name
|
|
- type: uint
|
|
name: limit
|
|
title: Limit
|
|
- type: string
|
|
name: pageCursor
|
|
title: Page cursor
|
|
- name: read
|
|
path: "/{attachmentID}"
|
|
method: GET
|
|
title: Attachment details
|
|
parameters:
|
|
path:
|
|
- name: attachmentID
|
|
type: uint64
|
|
required: true
|
|
title: Attachment ID
|
|
- name: delete
|
|
path: "/{attachmentID}"
|
|
method: DELETE
|
|
title: Delete attachment
|
|
parameters:
|
|
path:
|
|
- name: attachmentID
|
|
type: uint64
|
|
required: true
|
|
title: Attachment ID
|
|
- name: original
|
|
path: "/{attachmentID}/original/{name}"
|
|
method: GET
|
|
title: Serves attached file
|
|
parameters:
|
|
path:
|
|
- name: attachmentID
|
|
type: uint64
|
|
required: true
|
|
title: Attachment ID
|
|
- name: name
|
|
type: string
|
|
required: true
|
|
title: File name
|
|
get:
|
|
- type: bool
|
|
name: download
|
|
required: false
|
|
title: Force file download
|
|
- name: preview
|
|
path: "/{attachmentID}/preview.{ext}"
|
|
method: GET
|
|
title: Serves preview of an attached file
|
|
parameters:
|
|
path:
|
|
- name: attachmentID
|
|
type: uint64
|
|
required: true
|
|
title: Attachment ID
|
|
- name: ext
|
|
type: string
|
|
required: true
|
|
title: Preview extension/format
|
|
- title: Permissions
|
|
entrypoint: permissions
|
|
path: "/permissions"
|
|
authentication:
|
|
- Client ID
|
|
- Session ID
|
|
imports:
|
|
- github.com/cortezaproject/corteza-server/pkg/rbac
|
|
apis:
|
|
- name: list
|
|
path: "/"
|
|
method: GET
|
|
title: Retrieve defined permissions
|
|
- name: effective
|
|
path: "/effective"
|
|
method: GET
|
|
title: Effective rules for current user
|
|
parameters:
|
|
get:
|
|
- name: resource
|
|
type: string
|
|
required: false
|
|
title: Show only rules for a specific resource
|
|
- name: trace
|
|
path: "/trace"
|
|
method: GET
|
|
title: Evaluate rules for given user/role combo
|
|
parameters:
|
|
get:
|
|
- name: resource
|
|
type: "[]string"
|
|
required: false
|
|
title: Show only rules for a specific resource
|
|
- name: userID
|
|
type: uint64
|
|
required: false
|
|
- name: roleID
|
|
type: "[]uint64"
|
|
required: false
|
|
- name: read
|
|
path: "/{roleID}/rules"
|
|
method: GET
|
|
title: Retrieve role permissions
|
|
parameters:
|
|
path:
|
|
- name: roleID
|
|
type: uint64
|
|
required: true
|
|
title: Role ID
|
|
get:
|
|
- name: resource
|
|
type: "[]string"
|
|
required: false
|
|
title: Show only rules for a specific resource
|
|
- name: delete
|
|
path: "/{roleID}/rules"
|
|
method: DELETE
|
|
title: Remove all defined role permissions
|
|
parameters:
|
|
path:
|
|
- name: roleID
|
|
type: uint64
|
|
required: true
|
|
title: Role ID
|
|
- name: update
|
|
path: "/{roleID}/rules"
|
|
method: PATCH
|
|
title: Update permission settings
|
|
parameters:
|
|
path:
|
|
- name: roleID
|
|
type: uint64
|
|
required: true
|
|
title: Role ID
|
|
post:
|
|
- name: rules
|
|
type: rbac.RuleSet
|
|
required: true
|
|
title: List of permission rules to set
|
|
- title: Compose automation scripts
|
|
path: "/automation"
|
|
entrypoint: automation
|
|
apis:
|
|
- name: list
|
|
method: GET
|
|
title: List all available automation scripts for compose resources
|
|
path: "/"
|
|
parameters:
|
|
get:
|
|
- name: resourceTypePrefixes
|
|
type: "[]string"
|
|
title: Filter by resource prefix
|
|
- name: resourceTypes
|
|
type: "[]string"
|
|
title: Filter by resource type
|
|
- name: eventTypes
|
|
type: "[]string"
|
|
title: Filter by event type
|
|
- name: excludeInvalid
|
|
type: bool
|
|
title: Exclude scripts that cannot be used (errors)
|
|
- name: excludeClientScripts
|
|
type: bool
|
|
title: Do not include client scripts
|
|
- name: excludeServerScripts
|
|
type: bool
|
|
title: Do not include server scripts
|
|
- name: bundle
|
|
method: GET
|
|
title: Serves client scripts bundle
|
|
path: "/{bundle}-{type}.{ext}"
|
|
parameters:
|
|
path:
|
|
- name: bundle
|
|
type: string
|
|
title: Name of the bundle
|
|
- name: type
|
|
type: string
|
|
title: Bundle type
|
|
- name: ext
|
|
type: string
|
|
title: Bundle extension
|
|
- name: triggerScript
|
|
method: POST
|
|
title: Triggers execution of a specific script on a system service level
|
|
path: "/trigger"
|
|
parameters:
|
|
post:
|
|
- name: script
|
|
type: string
|
|
title: Script to execute
|
|
required: true
|
|
- name: args
|
|
type: map[string]interface{}
|
|
parser: parseMapStringInterface
|
|
title: Arguments to pass to the script
|