1477 lines
35 KiB
YAML
1477 lines
35 KiB
YAML
---
|
|
|
|
# This is direct conversion from old api/*/spec.json files
|
|
# using https://www.json2yaml.com/
|
|
#
|
|
# Next step: swagger.
|
|
|
|
endpoints:
|
|
- title: Authentication
|
|
path: "/auth"
|
|
entrypoint: auth
|
|
authentication: []
|
|
apis:
|
|
- name: impersonate
|
|
method: POST
|
|
title: Impersonate a user
|
|
path: "/impersonate"
|
|
parameters:
|
|
post:
|
|
- name: userID
|
|
type: uint64
|
|
required: true
|
|
title: ID of the impersonated user
|
|
- title: Authentication clients
|
|
path: "/auth/clients"
|
|
entrypoint: authClient
|
|
authentication: []
|
|
imports:
|
|
- github.com/cortezaproject/corteza-server/pkg/label
|
|
- github.com/cortezaproject/corteza-server/system/types
|
|
- time
|
|
apis:
|
|
- name: list
|
|
method: GET
|
|
title: List clients
|
|
path: "/"
|
|
parameters:
|
|
get:
|
|
- name: handle
|
|
required: false
|
|
title: Client handle
|
|
type: string
|
|
- name: deleted
|
|
required: false
|
|
title: Exclude (0, default), include (1) or return only (2) deleted roles
|
|
type: uint
|
|
- 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 client
|
|
path: "/"
|
|
parameters:
|
|
post:
|
|
- { name: handle, type: string, title: Client handle }
|
|
- { name: meta, type: '*types.AuthClientMeta', title: Additional info, parser: "types.ParseAuthClientMeta" }
|
|
- { name: validGrant, type: string, title: Valid grants (authorization_code, client_credentials) }
|
|
- { name: redirectURI, type: string, title: Space delimited list of redirect URIs }
|
|
- { name: scope, type: string, title: Space delimited list of scopes }
|
|
- { name: trusted, type: bool, title: Is client trusted (skip authorization) }
|
|
- { name: enabled, type: bool, title: Is client enabled }
|
|
- { name: validFrom, type: '*time.Time', title: Date and time from when client becomes valid }
|
|
- { name: expiresAt, type: '*time.Time', title: Date and time from client is no logner valid }
|
|
- { name: security, type: '*types.AuthClientSecurity', title: Security settings, allowed, denied, forced roles, parser: "types.ParseAuthClientSecurity" }
|
|
- { name: labels, type: 'map[string]string', title: Labels, parser: label.ParseStrings }
|
|
- name: update
|
|
method: PUT
|
|
title: Update user details
|
|
path: "/{clientID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: clientID
|
|
required: true
|
|
title: Client ID
|
|
post:
|
|
- { name: handle, type: string, title: Client handle }
|
|
- { name: meta, type: '*types.AuthClientMeta', title: Additional info , parser: "types.ParseAuthClientMeta"}
|
|
- { name: validGrant, type: string, title: Valid grants (authorization_code, client_credentials) }
|
|
- { name: redirectURI, type: string, title: Space delimited list of redirect URIs }
|
|
- { name: scope, type: string, title: Space delimited list of scopes }
|
|
- { name: trusted, type: bool, title: Is client trusted (skip authorization) }
|
|
- { name: enabled, type: bool, title: Is client enabled }
|
|
- { name: validFrom, type: '*time.Time', title: Date and time from when client becomes valid }
|
|
- { name: expiresAt, type: '*time.Time', title: Date and time from client is no logner valid }
|
|
- { name: security, type: '*types.AuthClientSecurity', title: Security settings, allowed, denied, forced roles, parser: "types.ParseAuthClientSecurity" }
|
|
- { name: labels, type: 'map[string]string', title: Labels, parser: label.ParseStrings }
|
|
- name: read
|
|
method: GET
|
|
title: Read client details
|
|
path: "/{clientID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: clientID
|
|
required: true
|
|
title: Client ID
|
|
- name: delete
|
|
method: DELETE
|
|
title: Remove client
|
|
path: "/{clientID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: clientID
|
|
required: true
|
|
title: Client ID
|
|
- name: undelete
|
|
method: POST
|
|
title: Undelete client
|
|
path: "/{clientID}/undelete"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: clientID
|
|
required: true
|
|
title: Client ID
|
|
- name: regenerateSecret
|
|
method: POST
|
|
title: Regenerate client's secret
|
|
path: "/{clientID}/secret"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: clientID
|
|
required: true
|
|
title: Client ID
|
|
- name: exposeSecret
|
|
method: GET
|
|
title: Exposes client's secret
|
|
path: "/{clientID}/secret"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: clientID
|
|
required: true
|
|
title: Client ID
|
|
|
|
- title: Settings
|
|
path: "/settings"
|
|
entrypoint: settings
|
|
authentication: []
|
|
imports:
|
|
- github.com/cortezaproject/corteza-server/system/types
|
|
apis:
|
|
- name: list
|
|
method: GET
|
|
title: List settings
|
|
path: "/"
|
|
parameters:
|
|
get:
|
|
- name: prefix
|
|
type: string
|
|
title: Key prefix
|
|
- name: update
|
|
method: PATCH
|
|
title: Update settings
|
|
path: "/"
|
|
parameters:
|
|
post:
|
|
- name: values
|
|
type: types.SettingValueSet
|
|
title: 'Array of new settings: `[{ name: ..., value: ... }]`. Omit value to
|
|
remove setting'
|
|
required: true
|
|
- name: get
|
|
method: GET
|
|
title: Get a value for a key
|
|
path: "/{key}"
|
|
parameters:
|
|
path:
|
|
- name: key
|
|
type: string
|
|
title: Setting key
|
|
required: true
|
|
get:
|
|
- name: ownerID
|
|
type: uint64
|
|
title: Owner ID
|
|
- name: set
|
|
path: "/{key}"
|
|
method: POST
|
|
title: Set value for specific setting
|
|
parameters:
|
|
path:
|
|
- name: key
|
|
type: string
|
|
title: Key
|
|
required: true
|
|
post:
|
|
- name: upload
|
|
type: "*multipart.FileHeader"
|
|
title: File to upload
|
|
- name: ownerID
|
|
type: uint64
|
|
title: Owner ID
|
|
- name: current
|
|
method: GET
|
|
title: Current compose settings
|
|
path: "/current"
|
|
- title: Roles
|
|
description: An organisation may have many roles. Roles may have many channels available.
|
|
Access to channels may be shared between roles.
|
|
path: "/roles"
|
|
entrypoint: role
|
|
authentication:
|
|
- Client ID
|
|
- Session ID
|
|
imports:
|
|
- github.com/cortezaproject/corteza-server/pkg/label
|
|
apis:
|
|
- name: list
|
|
method: GET
|
|
title: List roles
|
|
path: "/"
|
|
parameters:
|
|
get:
|
|
- type: string
|
|
name: query
|
|
required: false
|
|
title: Search query
|
|
- name: deleted
|
|
required: false
|
|
title: Exclude (0, default), include (1) or return only (2) deleted roles
|
|
type: uint
|
|
- name: archived
|
|
required: false
|
|
title: Exclude (0, default), include (1) or return only (2) achived roles
|
|
type: uint
|
|
- 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: Update role details
|
|
path: "/"
|
|
parameters:
|
|
post:
|
|
- type: string
|
|
name: name
|
|
required: true
|
|
title: Name of Role
|
|
- type: string
|
|
name: handle
|
|
required: true
|
|
title: Handle for Role
|
|
- type: "[]string"
|
|
name: members
|
|
required: false
|
|
title: Role member IDs
|
|
- type: map[string]string
|
|
name: labels
|
|
title: Labels
|
|
parser: label.ParseStrings
|
|
- name: update
|
|
method: PUT
|
|
title: Update role details
|
|
path: "/{roleID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: roleID
|
|
required: true
|
|
title: Role ID
|
|
post:
|
|
- type: string
|
|
name: name
|
|
required: false
|
|
title: Name of Role
|
|
- type: string
|
|
name: handle
|
|
required: false
|
|
title: Handle for Role
|
|
- type: "[]string"
|
|
name: members
|
|
required: false
|
|
title: Role member IDs
|
|
- type: map[string]string
|
|
name: labels
|
|
title: Labels
|
|
parser: label.ParseStrings
|
|
- name: read
|
|
method: GET
|
|
title: Read role details and memberships
|
|
path: "/{roleID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: roleID
|
|
required: true
|
|
title: Role ID
|
|
- name: delete
|
|
method: DELETE
|
|
title: Remove role
|
|
path: "/{roleID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: roleID
|
|
required: true
|
|
title: Role ID
|
|
- name: archive
|
|
method: POST
|
|
title: Archive role
|
|
path: "/{roleID}/archive"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: roleID
|
|
required: true
|
|
title: Role ID
|
|
- name: unarchive
|
|
method: POST
|
|
title: Unarchive role
|
|
path: "/{roleID}/unarchive"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: roleID
|
|
required: true
|
|
title: Role ID
|
|
- name: undelete
|
|
method: POST
|
|
title: Undelete role
|
|
path: "/{roleID}/undelete"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: roleID
|
|
required: true
|
|
title: Role ID
|
|
- name: move
|
|
method: POST
|
|
title: Move role to different organisation
|
|
path: "/{roleID}/move"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: roleID
|
|
required: true
|
|
title: Role ID
|
|
post:
|
|
- type: uint64
|
|
name: organisationID
|
|
required: true
|
|
title: Role ID
|
|
- name: merge
|
|
method: POST
|
|
title: Merge one role into another
|
|
path: "/{roleID}/merge"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: roleID
|
|
required: true
|
|
title: Source Role ID
|
|
post:
|
|
- type: uint64
|
|
name: destination
|
|
required: true
|
|
title: Destination Role ID
|
|
- name: memberList
|
|
method: GET
|
|
title: Returns all role members
|
|
path: "/{roleID}/members"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: roleID
|
|
required: true
|
|
title: Source Role ID
|
|
- name: memberAdd
|
|
method: POST
|
|
title: Add member to a role
|
|
path: "/{roleID}/member/{userID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: roleID
|
|
required: true
|
|
title: Source Role ID
|
|
- type: uint64
|
|
name: userID
|
|
required: true
|
|
title: User ID
|
|
- name: memberRemove
|
|
method: DELETE
|
|
title: Remove member from a role
|
|
path: "/{roleID}/member/{userID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: roleID
|
|
required: true
|
|
title: Source Role ID
|
|
- type: uint64
|
|
name: userID
|
|
required: true
|
|
title: User ID
|
|
- name: triggerScript
|
|
method: POST
|
|
title: Fire system:role trigger
|
|
path: "/{roleID}/trigger"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: roleID
|
|
required: true
|
|
title: ID
|
|
post:
|
|
- name: script
|
|
type: string
|
|
title: Script to execute
|
|
required: true
|
|
- title: Users
|
|
path: "/users"
|
|
entrypoint: user
|
|
authentication:
|
|
- Client ID
|
|
- Session ID
|
|
imports:
|
|
- github.com/cortezaproject/corteza-server/pkg/label
|
|
- github.com/cortezaproject/corteza-server/system/types
|
|
apis:
|
|
- name: list
|
|
method: GET
|
|
title: Search users (Directory)
|
|
path: "/"
|
|
parameters:
|
|
get:
|
|
- name: userID
|
|
type: "[]string"
|
|
required: false
|
|
title: Filter by user ID
|
|
- name: roleID
|
|
type: "[]string"
|
|
required: false
|
|
title: Filter by role membership
|
|
- type: string
|
|
name: query
|
|
required: false
|
|
title: Search query to match against users
|
|
- type: string
|
|
name: username
|
|
required: false
|
|
title: Search username to match against users
|
|
- type: string
|
|
name: email
|
|
required: false
|
|
title: Search email to match against users
|
|
- type: string
|
|
name: handle
|
|
required: false
|
|
title: Search handle to match against users
|
|
- name: kind
|
|
type: types.UserKind
|
|
required: false
|
|
title: Kind (normal, bot)
|
|
- type: bool
|
|
name: incDeleted
|
|
required: false
|
|
title: "[Deprecated] Include deleted users (requires 'access' permission)"
|
|
- type: bool
|
|
name: incSuspended
|
|
required: false
|
|
title: "[Deprecated] Include suspended users"
|
|
- name: deleted
|
|
required: false
|
|
title: Exclude (0, default), include (1) or return only (2) deleted users
|
|
type: uint
|
|
- name: suspended
|
|
required: false
|
|
title: Exclude (0, default), include (1) or return only (2) suspended users
|
|
type: uint
|
|
- 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 user
|
|
path: "/"
|
|
parameters:
|
|
post:
|
|
- name: email
|
|
type: string
|
|
required: true
|
|
title: Email
|
|
- name: name
|
|
type: string
|
|
required: false
|
|
title: Name
|
|
- name: handle
|
|
type: string
|
|
required: false
|
|
title: Handle
|
|
- name: kind
|
|
type: types.UserKind
|
|
required: false
|
|
title: Kind (normal, bot)
|
|
- type: map[string]string
|
|
name: labels
|
|
title: Labels
|
|
parser: label.ParseStrings
|
|
- name: update
|
|
method: PUT
|
|
title: Update user details
|
|
path: "/{userID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: userID
|
|
required: true
|
|
title: User ID
|
|
post:
|
|
- name: email
|
|
type: string
|
|
required: true
|
|
title: Email
|
|
- name: name
|
|
type: string
|
|
required: true
|
|
title: Name
|
|
- name: handle
|
|
type: string
|
|
required: false
|
|
title: Handle
|
|
- name: kind
|
|
type: types.UserKind
|
|
required: false
|
|
title: Kind (normal, bot)
|
|
- type: map[string]string
|
|
name: labels
|
|
title: Labels
|
|
parser: label.ParseStrings
|
|
- name: partialUpdate
|
|
method: PATCH
|
|
title: Patch user (experimental)
|
|
path: "/{userID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: userID
|
|
required: true
|
|
title: User ID
|
|
- name: read
|
|
method: GET
|
|
title: Read user details
|
|
path: "/{userID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: userID
|
|
required: true
|
|
title: User ID
|
|
- name: delete
|
|
method: DELETE
|
|
title: Remove user
|
|
path: "/{userID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: userID
|
|
required: true
|
|
title: User ID
|
|
- name: suspend
|
|
method: POST
|
|
title: Suspend user
|
|
path: "/{userID}/suspend"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: userID
|
|
required: true
|
|
title: User ID
|
|
- name: unsuspend
|
|
method: POST
|
|
title: Unsuspend user
|
|
path: "/{userID}/unsuspend"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: userID
|
|
required: true
|
|
title: User ID
|
|
|
|
- name: undelete
|
|
method: POST
|
|
title: Undelete user
|
|
path: "/{userID}/undelete"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: userID
|
|
required: true
|
|
title: User ID
|
|
- name: setPassword
|
|
method: POST
|
|
title: Set's or changes user's password
|
|
path: "/{userID}/password"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: userID
|
|
required: true
|
|
title: User ID
|
|
post:
|
|
- name: password
|
|
type: string
|
|
required: true
|
|
sensitive: true
|
|
title: New password
|
|
|
|
- name: membershipList
|
|
method: GET
|
|
title: Add member to a role
|
|
path: "/{userID}/membership"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: userID
|
|
required: true
|
|
title: User ID
|
|
- name: membershipAdd
|
|
method: POST
|
|
title: Add role to a user
|
|
path: "/{userID}/membership/{roleID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: roleID
|
|
required: true
|
|
title: Role ID
|
|
- type: uint64
|
|
name: userID
|
|
required: true
|
|
title: User ID
|
|
- name: membershipRemove
|
|
method: DELETE
|
|
title: Remove role from a user
|
|
path: "/{userID}/membership/{roleID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: roleID
|
|
required: true
|
|
title: Role ID
|
|
- type: uint64
|
|
name: userID
|
|
required: true
|
|
title: User ID
|
|
- name: triggerScript
|
|
method: POST
|
|
title: Fire system:user trigger
|
|
path: "/{userID}/trigger"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: userID
|
|
required: true
|
|
title: ID
|
|
post:
|
|
- name: script
|
|
type: string
|
|
title: Script to execute
|
|
required: true
|
|
- title: Applications
|
|
path: "/application"
|
|
entrypoint: application
|
|
authentication: []
|
|
imports:
|
|
- github.com/cortezaproject/corteza-server/pkg/label
|
|
- sqlxTypes github.com/jmoiron/sqlx/types
|
|
apis:
|
|
- name: list
|
|
method: GET
|
|
title: List applications
|
|
path: "/"
|
|
parameters:
|
|
get:
|
|
- name: name
|
|
required: false
|
|
title: Application name
|
|
type: string
|
|
- name: query
|
|
required: false
|
|
title: Filter applications
|
|
type: string
|
|
- name: deleted
|
|
required: false
|
|
title: Exclude (0, default), include (1) or return only (2) deleted roles
|
|
type: uint
|
|
- type: map[string]string
|
|
name: labels
|
|
title: Labels
|
|
parser: label.ParseStrings
|
|
- name: flags
|
|
type: "[]string"
|
|
title: Flags
|
|
- name: incFlags
|
|
required: false
|
|
title: Calculated (0, default), global (1) or return only (2) own flags
|
|
type: uint
|
|
- 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 application
|
|
path: "/"
|
|
parameters:
|
|
post:
|
|
- name: name
|
|
type: string
|
|
required: true
|
|
title: Application name
|
|
- name: enabled
|
|
type: bool
|
|
required: false
|
|
title: Enabled
|
|
- name: weight
|
|
type: int
|
|
required: false
|
|
title: Weight for sorting
|
|
- name: unify
|
|
type: sqlxTypes.JSONText
|
|
required: false
|
|
title: Unify properties
|
|
- name: config
|
|
type: sqlxTypes.JSONText
|
|
required: false
|
|
title: Arbitrary JSON holding application configuration
|
|
- type: map[string]string
|
|
name: labels
|
|
title: Labels
|
|
parser: label.ParseStrings
|
|
- name: update
|
|
method: PUT
|
|
title: Update user details
|
|
path: "/{applicationID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: applicationID
|
|
required: true
|
|
title: Application ID
|
|
post:
|
|
- name: name
|
|
type: string
|
|
required: true
|
|
title: Email
|
|
- name: enabled
|
|
type: bool
|
|
required: false
|
|
title: Enabled
|
|
- name: weight
|
|
type: int
|
|
required: false
|
|
title: Weight for sorting
|
|
- name: unify
|
|
type: sqlxTypes.JSONText
|
|
required: false
|
|
title: Unify properties
|
|
- name: config
|
|
type: sqlxTypes.JSONText
|
|
required: false
|
|
title: Arbitrary JSON holding application configuration
|
|
- type: map[string]string
|
|
name: labels
|
|
title: Labels
|
|
parser: label.ParseStrings
|
|
|
|
- name: upload
|
|
path: "/upload"
|
|
method: POST
|
|
title: Upload application assets
|
|
parameters:
|
|
post:
|
|
- name: upload
|
|
type: "*multipart.FileHeader"
|
|
required: true
|
|
title: File to upload
|
|
|
|
- name: flagCreate
|
|
method: POST
|
|
title: Flag application
|
|
path: "/{applicationID}/flag/{ownedBy}/{flag}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: applicationID
|
|
required: true
|
|
title: Application ID
|
|
- type: string
|
|
name: flag
|
|
required: true
|
|
title: Flag
|
|
- type: uint64
|
|
name: ownedBy
|
|
required: false
|
|
title: Owner; 0 = everyone
|
|
|
|
- name: flagDelete
|
|
method: DELETE
|
|
title: Unflag application
|
|
path: "/{applicationID}/flag/{ownedBy}/{flag}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: applicationID
|
|
required: true
|
|
title: Application ID
|
|
- type: string
|
|
name: flag
|
|
required: true
|
|
title: Flag
|
|
- type: uint64
|
|
name: ownedBy
|
|
required: false
|
|
title: Owner; 0 = everyone
|
|
|
|
- name: read
|
|
method: GET
|
|
title: Read application details
|
|
path: "/{applicationID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: applicationID
|
|
required: true
|
|
title: Application ID
|
|
get:
|
|
- name: incFlags
|
|
required: false
|
|
title: Calculated (0, default), global (1) or return only (2) own flags
|
|
type: uint
|
|
- name: delete
|
|
method: DELETE
|
|
title: Remove application
|
|
path: "/{applicationID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: applicationID
|
|
required: true
|
|
title: Application ID
|
|
- name: undelete
|
|
method: POST
|
|
title: Undelete application
|
|
path: "/{applicationID}/undelete"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: applicationID
|
|
required: true
|
|
title: Application ID
|
|
- name: triggerScript
|
|
method: POST
|
|
title: Fire system:application trigger
|
|
path: "/{applicationID}/trigger"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: applicationID
|
|
required: true
|
|
title: ID
|
|
post:
|
|
- name: script
|
|
type: string
|
|
title: Script to execute
|
|
required: true
|
|
- name: reorder
|
|
method: POST
|
|
title: Reorder applications
|
|
path: "/reorder"
|
|
parameters:
|
|
post:
|
|
- name: applicationIDs
|
|
type: "[]string"
|
|
required: true
|
|
title: Application order
|
|
|
|
- title: Permissions
|
|
parameters: {}
|
|
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
|
|
parameters: {}
|
|
- 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: read
|
|
path: "/{roleID}/rules"
|
|
method: GET
|
|
title: Retrieve role permissions
|
|
parameters:
|
|
path:
|
|
- name: roleID
|
|
type: uint64
|
|
required: true
|
|
title: Role ID
|
|
- 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: Reminders
|
|
entrypoint: reminder
|
|
path: "/reminder"
|
|
authentication:
|
|
- Client ID
|
|
- Session ID
|
|
imports:
|
|
- sqlxTypes github.com/jmoiron/sqlx/types
|
|
- time
|
|
apis:
|
|
- name: list
|
|
method: GET
|
|
title: List/read reminders
|
|
path: "/"
|
|
parameters:
|
|
get:
|
|
- name: reminderID
|
|
type: "[]string"
|
|
required: false
|
|
title: Filter by reminder ID
|
|
- name: resource
|
|
required: false
|
|
title: Only reminders of a specific resource
|
|
type: string
|
|
- name: assignedTo
|
|
required: false
|
|
title: Only reminders for a given user
|
|
type: uint64
|
|
- name: scheduledFrom
|
|
required: false
|
|
title: Only reminders from this time (included)
|
|
type: "*time.Time"
|
|
- name: scheduledUntil
|
|
required: false
|
|
title: Only reminders up to this time (included)
|
|
type: "*time.Time"
|
|
- name: scheduledOnly
|
|
required: false
|
|
title: Only scheduled reminders
|
|
type: bool
|
|
- name: excludeDismissed
|
|
required: false
|
|
title: Filter out dismissed reminders
|
|
type: bool
|
|
- 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: Add new reminder
|
|
path: "/"
|
|
parameters:
|
|
post:
|
|
- name: resource
|
|
title: Resource
|
|
type: string
|
|
required: true
|
|
- name: assignedTo
|
|
title: Assigned To
|
|
type: uint64
|
|
required: true
|
|
- name: payload
|
|
title: Payload
|
|
type: sqlxTypes.JSONText
|
|
required: true
|
|
- name: remindAt
|
|
title: Remind At
|
|
type: "*time.Time"
|
|
required: false
|
|
- name: update
|
|
method: PUT
|
|
title: Update reminder
|
|
path: "/{reminderID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: reminderID
|
|
required: true
|
|
title: Reminder ID
|
|
post:
|
|
- name: resource
|
|
title: Resource
|
|
type: string
|
|
required: true
|
|
- name: assignedTo
|
|
title: Assigned To
|
|
type: uint64
|
|
required: true
|
|
- name: payload
|
|
title: Payload
|
|
type: sqlxTypes.JSONText
|
|
required: true
|
|
- name: remindAt
|
|
title: Remind At
|
|
type: "*time.Time"
|
|
required: false
|
|
- name: read
|
|
method: GET
|
|
title: Read reminder by ID
|
|
path: "/{reminderID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: reminderID
|
|
required: true
|
|
title: Reminder ID
|
|
- name: delete
|
|
method: DELETE
|
|
title: Delete reminder
|
|
path: "/{reminderID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: reminderID
|
|
required: true
|
|
title: Reminder ID
|
|
- name: dismiss
|
|
method: PATCH
|
|
title: Dismiss reminder
|
|
path: "/{reminderID}/dismiss"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: reminderID
|
|
required: true
|
|
title: reminder ID
|
|
- name: snooze
|
|
method: PATCH
|
|
title: Snooze reminder
|
|
path: "/{reminderID}/snooze"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: reminderID
|
|
required: true
|
|
title: reminder ID
|
|
post:
|
|
- type: "*time.Time"
|
|
name: remindAt
|
|
required: true
|
|
title: New Remind At Time
|
|
- title: Attachments
|
|
path: "/attachment/{kind}"
|
|
entrypoint: attachment
|
|
authentication:
|
|
- Client ID
|
|
- Session ID
|
|
parameters:
|
|
path:
|
|
- name: kind
|
|
type: string
|
|
required: true
|
|
title: Kind
|
|
get:
|
|
- type: string
|
|
name: sign
|
|
required: false
|
|
title: Signature
|
|
- type: uint64
|
|
name: userID
|
|
required: false
|
|
title: User ID
|
|
apis:
|
|
- 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: Template
|
|
path: "/template"
|
|
entrypoint: template
|
|
imports:
|
|
- github.com/cortezaproject/corteza-server/system/types
|
|
- github.com/cortezaproject/corteza-server/pkg/label
|
|
authentication:
|
|
- Client ID
|
|
- SessionID
|
|
apis:
|
|
- name: list
|
|
method: GET
|
|
title: List templates
|
|
path: "/"
|
|
parameters:
|
|
get:
|
|
- name: handle
|
|
type: string
|
|
title: Handle
|
|
- name: type
|
|
type: string
|
|
title: Type
|
|
- name: ownerID
|
|
type: uint64
|
|
title: OwnerID
|
|
- name: partial
|
|
required: false
|
|
title: Show partial templates
|
|
type: bool
|
|
- name: deleted
|
|
required: false
|
|
title: Exclude (0, default), include (1) or return only (2) deleted templates
|
|
type: uint
|
|
- name: labels
|
|
type: map[string]string
|
|
title: Labels
|
|
parser: label.ParseStrings
|
|
- name: limit
|
|
type: uint
|
|
title: Limit
|
|
- name: pageCursor
|
|
type: string
|
|
title: Page cursor
|
|
- name: sort
|
|
type: string
|
|
title: Sort items
|
|
- name: create
|
|
method: POST
|
|
title: Create template
|
|
path: "/"
|
|
parameters:
|
|
post:
|
|
- name: handle
|
|
type: string
|
|
title: Handle
|
|
- name: language
|
|
type: string
|
|
title: Language
|
|
- name: type
|
|
type: string
|
|
title: Type
|
|
- name: partial
|
|
type: bool
|
|
title: Partial
|
|
- name: meta
|
|
type: "types.TemplateMeta"
|
|
parser: "types.ParseTemplateMeta"
|
|
title: Meta
|
|
- name: template
|
|
type: string
|
|
title: Template
|
|
- name: ownerID
|
|
type: uint64
|
|
title: OwnerID
|
|
- name: labels
|
|
type: map[string]string
|
|
title: Labels
|
|
parser: label.ParseStrings
|
|
- name: read
|
|
method: GET
|
|
title: Read template
|
|
path: "/{templateID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: templateID
|
|
required: true
|
|
title: ID
|
|
- name: update
|
|
method: PUT
|
|
title: Update template
|
|
path: "/{templateID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: templateID
|
|
required: true
|
|
title: ID
|
|
post:
|
|
- name: handle
|
|
type: string
|
|
title: Handle
|
|
- name: language
|
|
type: string
|
|
title: Language
|
|
- name: type
|
|
type: string
|
|
title: Type
|
|
- name: partial
|
|
type: bool
|
|
title: Partial
|
|
- name: meta
|
|
type: "types.TemplateMeta"
|
|
parser: "types.ParseTemplateMeta"
|
|
title: Meta
|
|
- name: template
|
|
type: string
|
|
title: Template
|
|
- name: ownerID
|
|
type: uint64
|
|
title: OwnerID
|
|
- name: labels
|
|
type: map[string]string
|
|
title: Labels
|
|
parser: label.ParseStrings
|
|
- name: delete
|
|
method: DELETE
|
|
title: Delete template
|
|
path: "/{templateID}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: templateID
|
|
required: true
|
|
title: ID
|
|
- name: undelete
|
|
path: "/{templateID}/undelete"
|
|
method: POST
|
|
title: Undelete template
|
|
parameters:
|
|
path:
|
|
- name: templateID
|
|
type: uint64
|
|
required: true
|
|
title: Template ID
|
|
- name: render
|
|
method: POST
|
|
title: Render template
|
|
path: "/{templateID}/render/{filename}.{ext}"
|
|
parameters:
|
|
path:
|
|
- type: uint64
|
|
name: templateID
|
|
required: true
|
|
title: Render template to use
|
|
- type: string
|
|
name: filename
|
|
required: true
|
|
title: Filename to use
|
|
- type: string
|
|
name: ext
|
|
required: true
|
|
title: Export format
|
|
post:
|
|
- name: variables
|
|
type: json.RawMessage
|
|
required: true
|
|
title: Variables defined by import file
|
|
- name: options
|
|
type: json.RawMessage
|
|
required: false
|
|
title: Rendering options
|
|
- title: Statistics
|
|
entrypoint: stats
|
|
path: "/stats"
|
|
authentication:
|
|
- Client ID
|
|
- Session ID
|
|
apis:
|
|
- name: list
|
|
method: GET
|
|
title: List system statistics
|
|
path: "/"
|
|
parameters: {}
|
|
- title: System automation scripts
|
|
path: "/automation"
|
|
entrypoint: automation
|
|
apis:
|
|
- name: list
|
|
method: GET
|
|
title: List all available automation scripts for system 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 can not 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
|
|
- title: Action log
|
|
entrypoint: actionlog
|
|
path: "/actionlog"
|
|
imports:
|
|
- time
|
|
apis:
|
|
- name: list
|
|
method: GET
|
|
title: Action log events
|
|
path: "/"
|
|
parameters:
|
|
get:
|
|
- name: from
|
|
type: "*time.Time"
|
|
required: false
|
|
title: From
|
|
- name: to
|
|
type: "*time.Time"
|
|
required: false
|
|
title: To
|
|
- name: beforeActionID
|
|
type: uint64
|
|
required: false
|
|
title: Entries before specified action ID
|
|
- name: resource
|
|
required: false
|
|
title: Resource
|
|
type: string
|
|
- name: action
|
|
required: false
|
|
title: Action
|
|
type: string
|
|
- name: actorID
|
|
required: false
|
|
title: Filter by one or more actors
|
|
type: "[]string"
|
|
- type: uint
|
|
name: limit
|
|
title: Limit
|