We removed handle requirement for all resource like namespace(slug), module, user, page, chart. Due to that namespace import/export was broken as we were using handle as reference, hence fixed it by replacing handle usage with ID of resource. It also fixes index of template table for handle column.
1339 lines
33 KiB
YAML
1339 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
|
|
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
|
|
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
|