--- # 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: "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 }