3
0
corteza/server/system/rest.yaml
2024-10-07 15:24:22 +02:00

2461 lines
71 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 clients
type: uint
- 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: 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 }
- { type: "*time.Time", name: updatedAt, required: false, title: Last update (or creation) date }
- 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: Expressions
path: "/expressions"
entrypoint: expression
endpoint: expressions
authentication: []
apis:
- name: evaluate
method: POST
title: Evaluate expressions
path: "/evaluate"
parameters:
post:
- name: variables
type: map[string]interface{}
parser: parseMapStringInterface
title: variables
- name: expressions
type: map[string]string
parser: parseMapStringString
title: expressions
- 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
- github.com/cortezaproject/corteza/server/system/types
- time
apis:
- name: list
method: GET
title: List roles
path: "/"
parameters:
get:
- { type: "string", name: "query", title: "Search query" }
- { type: "uint64", name: "memberID", title: "Search roles for member"}
- { type: "[]string", name: "roleID", title: "Search roles by ID" }
- { type: "uint", name: "deleted", title: "Exclude (0, default), include (1) or return only (2) deleted roles" }
- { type: "uint", name: "archived", title: "Exclude (0, default), include (1) or return only (2) archived roles" }
- { type: "map[string]string", name: "labels", title: "Labels", parser: "label.ParseStrings" }
- { type: "uint", name: "limit", title: "Limit" }
- { name: "incTotal", type: "bool", title: "Include total counter" }
- { 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", title: "Handle for role" }
- { type: "[]string", name: "members", title: "role member IDs" }
- { type: "*types.RoleMeta", name: "meta", title: "Meta", parser: "types.ParseRoleMeta" }
- { 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: "*types.RoleMeta", name: "meta", title: "Meta", parser: "types.ParseRoleMeta" }
- { 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: 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
- name: args
type: map[string]interface{}
parser: parseMapStringInterface
title: Arguments to pass to the script
- name: cloneRules
path: "/{roleID}/rules/clone"
method: POST
title: Clone permission settings to a role
parameters:
path:
- name: roleID
type: uint64
required: true
title: Role ID
get:
- name: cloneToRoleID
type: "[]string"
required: true
title: Clone set of rules to roleID
- 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
- time
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: 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: 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: meta
type: "*types.UserMeta"
title: Additional user info
parser: types.ParseUserMeta
- 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
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: meta
type: "*types.UserMeta"
title: Additional user info
parser: types.ParseUserMeta
- { type: "*time.Time", name: updatedAt, required: false, title: Last update (or creation) date }
- 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
sensitive: true
title: New password or empty to unset
- 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
- name: args
type: map[string]interface{}
parser: parseMapStringInterface
title: Arguments to pass to the script
- name: sessionsRemove
method: DELETE
title: Remove all auth sessions of user
path: "/{userID}/sessions"
parameters:
path:
- type: uint64
name: userID
required: true
title: ID
- name: listCredentials
method: GET
title: List user's credentials
path: "/{userID}/credentials"
parameters:
path:
- { type: uint64, name: userID, required: true, title: ID }
- name: deleteCredentials
method: DELETE
title: List user's credentials
path: "/{userID}/credentials/{credentialsID}"
parameters:
path:
- { type: uint64, name: userID, required: true, title: ID }
- { type: uint64, name: credentialsID, required: true, title: Credentials ID }
- name: profileAvatar
method: POST
title: User's profile avatar
path: "/{userID}/avatar"
parameters:
path:
- type: uint64
name: userID
required: true
title: User ID
post:
- name: upload
type: "*multipart.FileHeader"
title: Avatar to upload
required: false
- name: width
type: uint
title: Avatar width dimension
required: false
- name: height
type: uint
title: Avatar height dimension
required: false
- name: profileAvatarInitial
method: POST
title: User profile avatar initial
path: "/{userID}/avatar-initial"
parameters:
path:
- type: uint64
name: userID
required: true
title: User ID
post:
- name: avatarColor
type: string
title: Avatar text color
required: false
- name: avatarBgColor
type: string
title: Avatar initial background color
required: false
- name: deleteAvatar
method: DELETE
title: delete user's profile avatar
path: "/{userID}/avatar"
parameters:
path:
- type: uint64
name: userID
required: true
title: User ID
- name: export
method: GET
title: Export users
path: "/export/{filename}.zip"
parameters:
path:
- name: filename
type: string
required: true
title: Output filename
get:
- name: inclRoleMembership
type: bool
required: false
title: Include role membership
- name: inclRoles
type: bool
required: false
title: Include roles
- name: import
method: POST
title: Import users
path: "/import"
parameters:
post:
- name: upload
type: "*multipart.FileHeader"
required: true
title: File import
- title: Data access layer drivers
path: "/dal/drivers"
entrypoint: dalDriver
authentication:
- Client ID
- Session ID
apis:
- name: list
method: GET
title: Search drivers
path: "/"
- title: Data access layer sensitivity levels
path: "/dal/sensitivity-levels"
entrypoint: dalSensitivityLevel
authentication:
- Client ID
- Session ID
imports:
- github.com/cortezaproject/corteza/server/system/types
- time
apis:
- name: list
method: GET
title: Search sensitivity levels
path: "/"
parameters:
get:
- name: sensitivityLevelID
type: "[]string"
title: Filter by sensitivity level ID
- name: deleted
title: Exclude (0, default), include (1) or return only (2) deleted sensitivity levels
type: uint
- type: bool
name: incTotal
title: Include total counter
- name: create
method: POST
title: Create sensitivity level
path: "/"
parameters:
post:
- { name: "handle", type: "string", required: false }
- { name: "level", type: "int", required: true }
- { name: "meta", type: "types.DalSensitivityLevelMeta", required: true, parser: "types.ParseDalSensitivityLevelMeta" }
- name: update
method: PUT
title: Update sensitivity details
path: "/{sensitivityLevelID}"
parameters:
path:
- type: uint64
name: sensitivityLevelID
required: true
title: Connection ID
post:
- { name: "handle", type: "string", required: false }
- { name: "level", type: "int", required: true }
- { name: "meta", type: "types.DalSensitivityLevelMeta", required: true, parser: "types.ParseDalSensitivityLevelMeta" }
- { type: "*time.Time", name: updatedAt, required: false, title: Last update (or creation) date }
- name: read
method: GET
title: Read connection details
path: "/{sensitivityLevelID}"
parameters:
path:
- type: uint64
name: sensitivityLevelID
required: true
title: Connection ID
- name: delete
method: DELETE
title: Remove sensitivity level
path: "/{sensitivityLevelID}"
parameters:
path:
- type: uint64
name: sensitivityLevelID
required: true
title: Connection ID
- name: undelete
method: POST
title: Undelete sensitivity level
path: "/{sensitivityLevelID}/undelete"
parameters:
path:
- type: uint64
name: sensitivityLevelID
required: true
title: Connection ID
- title: Data access layer schema alterations
path: "/dal/schema/alterations"
entrypoint: dalSchemaAlteration
authentication:
- Client ID
- Session ID
imports:
apis:
- name: list
method: GET
title: Search schema alterations
path: "/"
parameters:
get:
- name: alterationID
type: "[]string"
title: Filter by alteration ID
- name: batchID
type: "[]string"
title: Filter by batch ID
- name: resource
type: "[]string"
title: Search by resource
- name: resourceType
type: string
title: Search by resource type
- type: string
name: kind
title: Search by kind
- name: deleted
title: Exclude (0, default), include (1) or return only (2) deleted alterations
type: uint
- name: completed
title: Exclude (0, default), include (1) or return only (2) completed alterations
type: uint
- name: dismissed
title: Exclude (0, default), include (1) or return only (2) dismissed alterations
type: uint
- type: bool
name: incTotal
title: Include total counter
# We'll drop these two because they don't make sense to be here
# - name: create
# method: POST
# - name: update
# method: PUT
- name: read
method: GET
title: Read alteration details
path: "/{alterationID}"
parameters:
path: [ { type: uint64, name: alterationID, required: true, title: "Alteration ID" } ]
- name: apply
method: POST
title: Apply alterations
path: "/apply"
parameters:
get: [ { type: "[]uint64", name: alterationID, required: true, title: "Alteration ID" } ]
- name: dismiss
method: POST
title: Dismiss alterations
path: "/dismiss"
parameters:
get: [ { type: "[]uint64", name: alterationID, required: true, title: "Alteration ID" } ]
- title: Data access layer connections
path: "/dal/connections"
entrypoint: dalConnection
authentication:
- Client ID
- Session ID
imports:
- github.com/cortezaproject/corteza/server/system/types
- time
apis:
- name: list
method: GET
title: Search connections (Directory)
path: "/"
parameters:
get:
- name: connectionID
type: "[]string"
title: Filter by connection ID
- type: string
name: handle
title: Search handle to match against connections
- type: string
name: type
title: Search type to match against connections
- name: deleted
title: Exclude (0, default), include (1) or return only (2) deleted connections
type: uint
- type: bool
name: incTotal
title: Include total counter
- name: create
method: POST
title: Create connection
path: "/"
parameters:
post:
- { name: handle, type: "string", }
- { name: type, type: "string", required: true }
- { name: meta, type: "types.ConnectionMeta", required: true, parser: "types.ParseConnectionMeta" }
- { name: config, type: "types.ConnectionConfig", required: true, parser: "types.ParseConnectionConfig" }
- name: update
method: PUT
title: Update connection details
path: "/{connectionID}"
parameters:
path: [ { type: uint64, name: connectionID, required: true, title: "Connection ID" } ]
post:
- { name: handle, type: "string", }
- { name: type, type: "string", required: true }
- { name: meta, type: "types.ConnectionMeta", required: true, parser: "types.ParseConnectionMeta" }
- { name: config, type: "types.ConnectionConfig", required: true, parser: "types.ParseConnectionConfig" }
- { type: "*time.Time", name: updatedAt, required: false, title: Last update (or creation) date }
- name: read
method: GET
title: Read connection details
path: "/{connectionID}"
parameters:
path: [ { type: uint64, name: connectionID, required: true, title: "Connection ID" } ]
- name: delete
method: DELETE
title: Remove connection
path: "/{connectionID}"
parameters:
path: [ { type: uint64, name: connectionID, required: true, title: "Connection ID" } ]
- name: undelete
method: POST
title: Undelete connection
path: "/{connectionID}/undelete"
parameters:
path: [ { type: uint64, name: connectionID, required: true, title: "Connection ID" } ]
- title: Applications
path: "/application"
entrypoint: application
authentication: []
imports:
- github.com/cortezaproject/corteza/server/pkg/label
- sqlxTypes github.com/jmoiron/sqlx/types
- time
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: 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: 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
- { type: "*time.Time", name: updatedAt, required: false, title: Last update (or creation) date }
- 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: args
type: map[string]interface{}
parser: parseMapStringInterface
title: Arguments to pass to the script
- 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: 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: 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
- name: includeDeleted
required: false
title: Includes deleted 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: undismiss
method: PATCH
title: Undismiss reminder
path: "/{reminderID}/undismiss"
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
- time
authentication:
- Client ID
- SessionID
apis:
- name: list
method: GET
title: List templates
path: "/"
parameters:
get:
- name: query
type: string
title: Query
- 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
- type: bool
name: incTotal
title: Include total counter
- 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
- { type: "*time.Time", name: updatedAt, required: false, title: Last update (or creation) date }
- 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: renderDrivers
method: GET
title: Render drivers
path: "/render/drivers"
- 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: Reports
path: "/reports"
entrypoint: report
authentication: []
imports:
- github.com/cortezaproject/corteza/server/pkg/label
- github.com/cortezaproject/corteza/server/system/types
- github.com/cortezaproject/corteza/server/system/reporting
- time
apis:
- name: list
method: GET
title: List reports
path: "/"
parameters:
get:
- name: handle
required: false
title: Report handle
type: string
- name: query
required: false
title: Report query
type: string
- name: deleted
required: false
title: Exclude (0, default), include (1) or return only (2) deleted reports
type: uint
- 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: Create report
path: "/"
parameters:
post:
- { name: handle, type: string, title: Client handle }
- { name: meta, type: '*types.ReportMeta', title: Additional info, parser: types.ParseReportMeta }
- { name: scenarios, type: "types.ReportScenarioSet", title: Report scenarios }
- { name: sources, type: "types.ReportDataSourceSet", title: Report source definitions }
- { name: blocks, type: "types.ReportBlockSet", title: Report blocks definition }
- { name: labels, type: 'map[string]string', title: Labels, parser: label.ParseStrings }
- name: update
method: PUT
title: Update report
path: "/{reportID}"
parameters:
path:
- type: uint64
name: reportID
required: true
title: Report ID
post:
- { name: handle, type: string, title: Client handle }
- { name: meta, type: '*types.ReportMeta', title: Additional info, parser: types.ParseReportMeta }
- { name: scenarios, type: "types.ReportScenarioSet", title: Report scenarios }
- { name: sources, type: "types.ReportDataSourceSet", title: Report sources definition }
- { name: blocks, type: "types.ReportBlockSet", title: Report blocks definition }
- { name: labels, type: 'map[string]string', title: Labels, parser: label.ParseStrings }
- { type: "*time.Time", name: updatedAt, required: false, title: Last update (or creation) date }
- name: read
method: GET
title: Read report details
path: "/{reportID}"
parameters:
path:
- type: uint64
name: reportID
required: true
title: Report ID
- name: delete
method: DELETE
title: Remove report
path: "/{reportID}"
parameters:
path:
- type: uint64
name: reportID
required: true
title: Report ID
- name: undelete
method: POST
title: Undelete report
path: "/{reportID}/undelete"
parameters:
path:
- type: uint64
name: reportID
required: true
title: Report ID
- name: describe
method: POST
title: Describe report
path: "/describe"
parameters:
post:
- { name: sources, type: "types.ReportDataSourceSet", title: Report steps definition }
- { name: steps, type: "types.ReportStepSet", title: Report steps definition }
- { name: describe, type: "[]string", title: The source descriptions to generate }
- name: run
method: POST
title: Run report
path: "/{reportID}/run"
parameters:
path:
- type: uint64
name: reportID
required: true
title: Report ID
post:
- { name: frames, type: "reporting.FrameDefinitionSet", title: Report data frame definitions }
- 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 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
- 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
- title: Messaging queues
entrypoint: queues
path: "/queues"
imports:
- github.com/cortezaproject/corteza/server/system/types
- time
apis:
- name: list
method: GET
title: Messaging queues
path: "/"
parameters:
get:
- { type: string, name: query, title: Search query }
- { 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 }
- { type: uint, name: deleted, title: Exclude (0, default), include (1) or return only (2) deleted queues }
- name: create
method: POST
title: Create messaging queue
path: ""
parameters:
post:
- { type: string, name: queue, required: true, title: Name of queue }
- { type: string, name: consumer, required: true, title: Queue consumer }
- { type: "types.QueueMeta", name: meta, required: false, title: Meta data for queue, parser: "types.ParseQueueMeta" }
- name: read
method: GET
title: Messaging queue details
path: "/{queueID}"
parameters:
path:
- { type: uint64, name: queueID, required: true, title: Queue ID }
- name: update
method: PUT
title: Update queue details
path: "/{queueID}"
parameters:
path:
- { type: uint64, name: queueID, required: true, title: Queue ID }
post:
- { type: string, name: queue, required: true, title: Name of queue }
- { type: string, name: consumer, required: true, title: Queue consumer }
- { type: "types.QueueMeta", name: meta, required: false, title: Meta data for queue, parser: "types.ParseQueueMeta" }
- { type: "*time.Time", name: updatedAt, required: false, title: Last update (or creation) date }
- name: delete
method: DELETE
title: Messaging queue delete
path: "/{queueID}"
parameters:
path:
- { type: uint64, name: queueID, required: true, title: Queue ID }
- name: undelete
method: POST
title: Messaging queue undelete
path: "/{queueID}/undelete"
parameters:
path:
- { type: uint64, name: queueID, required: true, title: Queue ID }
- title: Integration gateway routes
path: "/apigw/route"
entrypoint: apigwRoute
authentication: []
imports:
- github.com/cortezaproject/corteza/server/system/types
- github.com/cortezaproject/corteza/server/pkg/label
- time
apis:
- name: list
method: GET
title: List routes
path: "/"
parameters:
get:
- { name: routeID, type: "[]uint64", title: "Filter by route ID" }
- { name: query, type: "string", title: "Filter routes" }
- { name: deleted, type: "uint64", title: "Exclude (0, default), include (1) or return only (2) deleted routes" }
- { name: disabled, type: "uint64", title: "Exclude (0, default), include (1) or return only (2) disabled routes" }
- { name: labels, type: "map[string]string", title: "Labels", parser: "label.ParseStrings" }
- { name: limit, type: "uint", title: "Limit" }
- { name: incTotal, type: "bool", title: "Include total counter" }
- { name: pageCursor, type: "string", title: "Page cursor" }
- { name: sort, type: "string", title: "Sort items" }
- name: create
method: POST
title: Create route
path: ""
parameters:
post:
- { name: endpoint, type: string, required: true, title: "Route endpoint" }
- { name: method, type: string, title: "Route method" }
- { name: enabled, type: bool, title: "Is route enabled" }
- { name: group, type: uint64, title: "Route group" }
- { name: meta, type: "types.ApigwRouteMeta", title: "Route meta", parser: "types.ParseApigwRouteMeta" }
- name: update
method: PUT
title: Update route details
path: "/{routeID}"
parameters:
path: [ { name: routeID, type: uint64, required: true, title: "Route ID" } ]
post:
- { name: endpoint, type: string, required: true, title: "Route endpoint" }
- { name: method, type: string, title: "Route method" }
- { name: enabled, type: bool, title: "Is route enabled" }
- { name: group, type: uint64, title: "Route group" }
- { name: meta, type: "types.ApigwRouteMeta", title: "Route meta", parser: "types.ParseApigwRouteMeta" }
- { type: "*time.Time", name: updatedAt, required: false, title: Last update (or creation) date }
- name: read
method: GET
title: Read route details
path: "/{routeID}"
parameters: { path: [ { name: routeID, type: uint64, required: true, title: "Route ID" } ] }
- name: delete
method: DELETE
title: Remove route
path: "/{routeID}"
parameters: { path: [ { name: routeID, type: uint64, required: true, title: "Route ID" } ] }
- name: undelete
method: POST
title: Undelete route
path: "/{routeID}/undelete"
parameters: { path: [ { name: routeID, type: uint64, required: true, title: "Route ID" } ] }
- title: Integration gateway filters
path: "/apigw/filter"
entrypoint: apigwFilter
authentication: []
imports:
- github.com/cortezaproject/corteza/server/system/types
- time
apis:
- name: list
method: GET
title: List filters
path: "/"
parameters:
get:
- { name: routeID, type: "uint64", title: "Filter by route ID", required: true }
- { name: deleted, type: "uint64", title: "Exclude (0, default), include (1) or return only (2) deleted filters" }
- { name: disabled, type: "uint64", title: "Exclude (0, default), include (1) or return only (2) disabled filters" }
- { name: limit, type: "uint", title: "Limit" }
- { name: pageCursor, type: "string", title: "Page cursor" }
- { name: sort, type: "string", title: "Sort items" }
- name: create
method: PUT
title: Create filter
path: ""
parameters:
post:
- { name: routeID, type: uint64, title: "Route", required: true }
- { name: weight, type: uint64, title: "Filter priority" }
- { name: kind, type: string, title: "Filter kind" }
- { name: ref, type: string, title: "Filter ref" }
- { name: enabled, type: bool, title: "Is Filter enabled" }
- { name: params, type: "types.ApigwFilterParams", title: "Filter parameters", parser: "types.ParseApigwfFilterParams" }
- name: update
method: POST
title: Update filter details
path: "/{filterID}"
parameters:
path: [ { name: filterID, type: uint64, required: true, title: "Filter ID" } ]
post:
- { name: routeID, type: uint64, title: "Route", required: true }
- { name: weight, type: uint64, title: "Filter priority" }
- { name: kind, type: string, title: "Filter kind" }
- { name: ref, type: string, title: "Filter ref" }
- { name: enabled, type: bool, title: "Is Filter enabled" }
- { name: params, type: "types.ApigwFilterParams", title: "Filter parameters", parser: "types.ParseApigwfFilterParams" }
- { type: "*time.Time", name: updatedAt, required: false, title: Last update (or creation) date }
- name: read
method: GET
title: Read filter details
path: "/{filterID}"
parameters: { path: [ { name: filterID, type: uint64, required: true, title: "Filter ID" } ] }
- name: delete
method: DELETE
title: Remove filter
path: "/{filterID}"
parameters: { path: [ { name: filterID, type: uint64, required: true, title: "Filter ID" } ] }
- name: undelete
method: POST
title: Undelete filter
path: "/{filterID}/undelete"
parameters: { path: [ { name: filterID, type: uint64, required: true, title: "Filter ID" } ] }
- name: defFilter
method: GET
title: Filter definitions
path: "/def"
parameters:
get:
- { name: kind, type: "string", title: "Filter filters by kind" }
- name: defProxyAuth
method: GET
title: Proxy auth definitions
path: "/proxy_auth/def"
- title: Integration gateway profiler
path: "/apigw/profiler"
entrypoint: apigwProfiler
authentication: []
apis:
- name: aggregation
method: GET
title: List aggregated list of routes
path: "/"
parameters:
get:
- { name: path, type: "string", title: "Filter by request path" }
- { name: before, type: "string", title: "Entries before specified route" }
- { name: sort, type: "string", title: "Sort items" }
- { name: limit, type: "uint", title: "Limit" }
- name: route
method: GET
title: List hits per route
path: "/route/{routeID}"
parameters:
path:
- { name: routeID, type: "string", title: "Route ID", required: true }
get:
- { name: path, type: "string", title: "Filter by request path" }
- { name: before, type: "string", title: "Entries before specified hit ID" }
- { name: sort, type: "string", title: "Sort items" }
- { name: limit, type: "uint", title: "Limit" }
- name: hit
method: GET
title: Hit details
path: "/hit/{hitID}"
parameters: { path: [ { name: hitID, type: string, required: true, title: "Hit ID" } ] }
- name: purge all
method: POST
title: Purge all profiler hits
path: "/purge"
- name: purge
method: POST
title: Purge route profiler hits
path: "/purge/{routeID}"
parameters: { path: [ { name: routeID, type: "uint64", title: "Route ID", required: true } ] }
- title: Locale
entrypoint: locale
path: "/locale"
imports:
- time
apis:
- name: list resource
method: GET
title: List resources translations
path: "/resource"
parameters:
get:
- { name: lang, type: string, title: Language }
- { name: resource, type: string, title: Resource }
- { name: resourceType, type: string, title: Resource type }
- { name: ownerID, type: uint64, title: OwnerID }
- { name: deleted, type: "uint64", title: "Exclude (0, default), include (1) or return only (2) deleted resource translations" }
- { name: limit, type: "uint", title: "Limit" }
- { name: pageCursor, type: "string", title: "Page cursor" }
- { name: sort, type: "string", title: "Sort items" }
- name: create resource
method: POST
title: Create resource translation
path: "/resource"
parameters:
post:
- { name: lang, type: string, required: true, title: Lang }
- { name: resource, type: string, required: true, title: Resource }
- { name: key, type: string, required: true, title: Key }
- { name: place, type: int, required: false, title: place }
- { name: message, type: string, required: true, title: Message }
- { name: ownerID, type: uint64, title: OwnerID }
- name: update resource
method: PUT
title: Update resource translation
path: "/resource/{translationID}"
parameters:
path: [ { name: translationID, type: uint64, required: true, title: "ID" } ]
post:
- { name: lang, type: string, title: Lang }
- { name: resource, type: string, title: Resource }
- { name: key, type: string, title: Key }
- { name: place, type: int, title: place }
- { name: message, type: string, title: Message }
- { name: ownerID, type: uint64, title: OwnerID }
- { type: "*time.Time", name: updatedAt, required: false, title: Last update (or creation) date }
- name: read resource
method: GET
title: Read resource translation details
path: "/resource/{translationID}"
parameters: { path: [ { name: translationID, type: uint64, required: true, title: "ID" } ] }
- name: delete resource
method: DELETE
title: Remove resource translation
path: "/resource/{translationID}"
parameters: { path: [ { name: translationID, type: uint64, required: true, title: "ID" } ] }
- name: undelete resource
method: POST
title: Undelete resource translation
path: "/resource/{translationID}/undelete"
parameters: { path: [ { name: translationID, type: uint64, required: true, title: "ID" } ] }
- name: list
method: GET
title: List all available languages
path: "/"
- name: get
method: GET
title: List all available translation in a language for a specific webapp
path: "/{lang}/{application}"
parameters:
path:
- { type: string, name: lang, required: true, title: Language }
- { type: string, name: application, required: true, title: Application name }
- title: Data Privacy
entrypoint: dataPrivacy
imports:
- github.com/cortezaproject/corteza/server/pkg/filter
- github.com/cortezaproject/corteza/server/system/types
path: "/data-privacy"
apis:
- name: connection list
method: GET
title: List connections for data privacy
path: "/connection/"
parameters:
get:
- name: connectionID
type: "[]string"
required: false
title: Filter by connection ID
- type: string
name: handle
required: false
title: Search handle to match against connections
- type: string
name: type
required: false
title: Search type to match against connections
- name: deleted
required: false
title: Exclude (0, default), include (1) or return only (2) deleted connections
type: filter.State
- name: request list
method: GET
title: List data privacy requests
path: "/requests/"
parameters:
get:
- { name: requestedBy, type: "[]string", title: "Filter by user ID" }
- { name: query, type: "string", title: "Filter requests" }
- { name: kind, type: "[]string", title: "Filter by kind: correct, delete, export" }
- { name: status, type: "[]string", title: "Filter by status: pending, cancel, approve, reject" }
- { name: limit, type: "uint", title: "Limit" }
- { name: pageCursor, type: "string", title: "Page cursor" }
- { name: sort, type: "string", title: "Sort items" }
- name: request create
method: POST
title: Create data privacy request
path: "/requests/"
parameters:
post:
- { name: kind, type: "string", title: "Request Kind", required: true }
- { name: payload, type: "types.DataPrivacyRequestPayloadSet", title: Request, required: false, parser: types.ParseDataPrivacyRequestPayload }
- name: request read
method: GET
title: Get details about specific request
path: "/requests/{requestID}"
parameters:
path:
- { name: requestID, type: "uint64", title: "Request ID", required: true }
- name: request update status
method: PATCH
title: Update data privacy request status
path: "/requests/{requestID}/status/{status}"
parameters:
path:
- { name: requestID, type: "uint64", title: "ID", required: true }
- { name: status, type: "string", title: "Request Status", required: true }
- name: request comment list
method: GET
title: List data privacy request comments
path: "/requests/{requestID}/comments/"
parameters:
path:
- { name: requestID, type: "uint64", title: "Request ID", required: true }
get:
- { name: limit, type: "uint", title: "Limit" }
- { name: pageCursor, type: "string", title: "Page cursor" }
- { name: sort, type: "string", title: "Sort items" }
- name: request comment create
method: POST
title: Create data privacy request comment
path: "/requests/{requestID}/comments/"
parameters:
path:
- { name: requestID, type: "uint64", title: "Request ID", required: true }
post:
- { name: comment, type: "string", title: "Comment description", required: true }
- title: SMTP Configuration Checker
entrypoint: smtpConfigurationChecker
path: "/smtp"
apis:
- name: check
method: POST
title: Check SMTP server configuration settings
path: "/configuration-checker/"
parameters:
post:
- { name: host, type: string, title: SMTP server host name, required: true }
- { name: port, type: uint, title: SMTP server port, }
- { name: recipients, type: "[]string", title: List of recipients email addresses that should recieve test email }
- { name: username, type: string, title: SMTP server authentication username }
- { name: password, type: string, title: SMTP server authentication password }
- { name: tlsInsecure, type: bool, title: TLS mode }
- { name: tlsServerName, type: string, title: TLS server name }