3
0
Files
corteza/server/system/rest.yaml
Vivek Patel 1699e3f94b Remove handle requirement from resource API
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.
2022-11-24 10:28:22 +02:00

2259 lines
64 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 }
- 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
- github.com/cortezaproject/corteza/server/system/types
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: "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", required: true, 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" }
- 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
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: 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
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: 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
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: true }
- { 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: true }
- { name: "level", type: "int", required: true }
- { name: "meta", type: "types.DalSensitivityLevelMeta", required: true, parser: "types.ParseDalSensitivityLevelMeta" }
- 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 connections
path: "/dal/connections"
entrypoint: dalConnection
authentication:
- Client ID
- Session ID
imports:
- github.com/cortezaproject/corteza/server/system/types
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" }
- 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
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
- 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: 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: 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
- 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
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 }
- 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
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" }
- 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
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" }
- 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
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" }
- 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" } ] }
- title: Locale
entrypoint: locale
path: "/locale"
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 }
- 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 Request
entrypoint: dataPrivacyRequest
imports:
- github.com/cortezaproject/corteza/server/system/types
path: "/data-privacy/requests"
apis:
- name: list
method: GET
title: List data privacy requests
path: "/"
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: create
method: POST
title: Create data privacy request
path: "/"
parameters:
post:
- { name: kind, type: "string", title: "Request Kind", required: true }
- { name: payload, type: "types.DataPrivacyRequestPayloadSet", title: Request, required: false, parser: types.ParseDataPrivacyRequestPayload }
- name: update status
method: PATCH
title: Update data privacy request status
path: "/{requestID}/status/{status}"
parameters:
path:
- { name: requestID, type: "uint64", title: "ID", required: true }
- { name: status, type: "string", title: "Request Status", required: true }
- name: read
method: GET
title: Get details about specific request
path: "/{requestID}"
parameters:
path:
- { name: requestID, type: "uint64", title: "Request ID", required: true }
- title: Data Privacy Request Comment
entrypoint: dataPrivacyRequestComment
path: "/data-privacy/requests/{requestID}/comments"
parameters:
path:
- { name: requestID, type: "uint64", title: "Request ID", required: true }
apis:
- name: list
method: GET
title: List data privacy request comments
path: "/"
parameters:
get:
- { 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 data privacy request comment
path: "/"
parameters:
post:
- { name: comment, type: "string", title: "Comment description", required: true }
- title: Data Privacy
entrypoint: dataPrivacy
imports:
- github.com/cortezaproject/corteza/server/pkg/filter
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