mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-18 16:02:10 +00:00
38ac8de377
* chore(main): release 1.60.0 * Update CHANGELOG.md * Apply automatic changes Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
5709 lines
142 KiB
YAML
5709 lines
142 KiB
YAML
openapi: "3.0.3"
|
|
|
|
info:
|
|
version: 1.60.0
|
|
title: Windmill server API
|
|
contact:
|
|
name: Windmill contact
|
|
email: contact@windmill.dev
|
|
url: https://windmill.dev
|
|
|
|
license:
|
|
name: Apache 2.0
|
|
url: https://www.apache.org/licenses/LICENSE-2.0.html
|
|
|
|
externalDocs:
|
|
description: documentation portal
|
|
url: https://docs.windmill.dev
|
|
|
|
servers:
|
|
- url: /api
|
|
|
|
security:
|
|
- bearerAuth: []
|
|
- cookieAuth: []
|
|
|
|
paths:
|
|
/version:
|
|
get:
|
|
summary: get backend version
|
|
operationId: backendVersion
|
|
tags:
|
|
- settings
|
|
responses:
|
|
"200":
|
|
description: git version of backend
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/openapi.yaml:
|
|
get:
|
|
summary: get openapi yaml spec
|
|
operationId: getOpenApiYaml
|
|
tags:
|
|
- settings
|
|
responses:
|
|
"200":
|
|
description: openapi yaml file content
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/audit/get/{id}:
|
|
get:
|
|
summary: get audit log (requires admin privilege)
|
|
operationId: getAuditLog
|
|
tags:
|
|
- audit
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/PathId"
|
|
responses:
|
|
"200":
|
|
description: an audit log
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AuditLog"
|
|
|
|
/w/{workspace}/audit/list:
|
|
get:
|
|
summary: list audit logs (requires admin privilege)
|
|
operationId: listAuditLogs
|
|
tags:
|
|
- audit
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/Before"
|
|
- $ref: "#/components/parameters/After"
|
|
- $ref: "#/components/parameters/Username"
|
|
- $ref: "#/components/parameters/Operation"
|
|
- $ref: "#/components/parameters/ResourceName"
|
|
- $ref: "#/components/parameters/ActionKind"
|
|
|
|
responses:
|
|
"200":
|
|
description: a list of audit logs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/AuditLog"
|
|
|
|
/auth/login:
|
|
post:
|
|
security: []
|
|
summary: login with password
|
|
operationId: login
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: credentials
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Login"
|
|
|
|
responses:
|
|
"200":
|
|
description: >
|
|
Successfully authenticated.
|
|
The session ID is returned in a cookie named `token` and as plaintext response.
|
|
Preferred method of authorization is through the bearer token. The cookie is only for browser convenience.
|
|
|
|
headers:
|
|
Set-Cookie:
|
|
schema:
|
|
type: string
|
|
example: token=abcde12345; Path=/; HttpOnly
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/auth/logout:
|
|
post:
|
|
security: []
|
|
summary: logout
|
|
operationId: logout
|
|
tags:
|
|
- user
|
|
|
|
responses:
|
|
"200":
|
|
description: clear cookies and clear token (if applicable)
|
|
headers:
|
|
Set-Cookie:
|
|
schema:
|
|
type: string
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/users/add:
|
|
post:
|
|
summary: create user (require admin privilege)
|
|
operationId: createUser
|
|
tags:
|
|
- user
|
|
- admin
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new user
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewUser"
|
|
responses:
|
|
"201":
|
|
description: user created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/users/update/{username}:
|
|
post:
|
|
summary: update user (require admin privilege)
|
|
operationId: updateUser
|
|
tags:
|
|
- user
|
|
- admin
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
description: new user
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditWorkspaceUser"
|
|
responses:
|
|
"200":
|
|
description: edited user
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
|
|
/w/{workspace}/users/is_owner/{path}:
|
|
get:
|
|
summary: is owner of path
|
|
operationId: isOwnerOfPath
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: is owner
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/users/setpassword:
|
|
post:
|
|
summary: set password
|
|
operationId: setPassword
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: set password
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
password:
|
|
type: string
|
|
required:
|
|
- password
|
|
responses:
|
|
"200":
|
|
description: password set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/create:
|
|
post:
|
|
summary: create user
|
|
operationId: createUserGlobally
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: user info
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
password:
|
|
type: string
|
|
super_admin:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
company:
|
|
type: string
|
|
required:
|
|
- email
|
|
- password
|
|
- super_admin
|
|
responses:
|
|
"201":
|
|
description: user created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/update/{email}:
|
|
post:
|
|
summary: global update user (require super admin)
|
|
operationId: globalUserUpdate
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: email
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
description: new user info
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
is_super_admin:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: user updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/delete/{email}:
|
|
delete:
|
|
summary: global delete user (require super admin)
|
|
operationId: globalUserDelete
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: email
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: user deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/users/delete/{username}:
|
|
delete:
|
|
summary: delete user (require admin privilege)
|
|
operationId: deleteUser
|
|
tags:
|
|
- user
|
|
- admin
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: delete user
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/workspaces/list:
|
|
get:
|
|
summary: list all workspaces visible to me
|
|
operationId: listWorkspaces
|
|
tags:
|
|
- workspace
|
|
responses:
|
|
"200":
|
|
description: all workspaces
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Workspace"
|
|
|
|
/workspaces/allowed_domain_auto_invite:
|
|
get:
|
|
summary: is domain allowed for auto invi
|
|
operationId: isDomainAllowed
|
|
tags:
|
|
- workspace
|
|
responses:
|
|
"200":
|
|
description: domain allowed or not
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/workspaces/users:
|
|
get:
|
|
summary: list all workspaces visible to me with user info
|
|
operationId: listUserWorkspaces
|
|
tags:
|
|
- workspace
|
|
responses:
|
|
"200":
|
|
description: workspace with associated username
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UserWorkspaceList"
|
|
|
|
/workspaces/list_as_superadmin:
|
|
get:
|
|
summary: list all workspaces as super admin (require to be super admin)
|
|
operationId: listWorkspacesAsSuperAdmin
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: workspaces
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Workspace"
|
|
|
|
/workspaces/create:
|
|
post:
|
|
summary: create workspace
|
|
operationId: createWorkspace
|
|
tags:
|
|
- workspace
|
|
requestBody:
|
|
description: new token
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateWorkspace"
|
|
responses:
|
|
"201":
|
|
description: token created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/workspaces/exists:
|
|
post:
|
|
summary: exists workspace
|
|
operationId: existsWorkspace
|
|
tags:
|
|
- workspace
|
|
requestBody:
|
|
description: id of workspace
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
required:
|
|
- id
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: boolean
|
|
|
|
/workspaces/exists_username:
|
|
post:
|
|
summary: exists username
|
|
operationId: existsUsername
|
|
tags:
|
|
- workspace
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
username:
|
|
type: string
|
|
required:
|
|
- id
|
|
- username
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: boolean
|
|
|
|
/users/email:
|
|
get:
|
|
summary: get current user email (if logged in)
|
|
operationId: getCurrentEmail
|
|
tags:
|
|
- user
|
|
responses:
|
|
"200":
|
|
description: user email
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/usage:
|
|
get:
|
|
summary: get current usage outside of premium workspaces
|
|
operationId: getUsage
|
|
tags:
|
|
- user
|
|
responses:
|
|
"200":
|
|
description: free usage
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: number
|
|
|
|
/users/whoami:
|
|
get:
|
|
summary: get current global whoami (if logged in)
|
|
operationId: globalWhoami
|
|
tags:
|
|
- user
|
|
responses:
|
|
"200":
|
|
description: user email
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/GlobalUserInfo"
|
|
|
|
/users/list_invites:
|
|
get:
|
|
summary: list all workspace invites
|
|
operationId: listWorkspaceInvites
|
|
tags:
|
|
- user
|
|
responses:
|
|
"200":
|
|
description: list all workspace invites
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WorkspaceInvite"
|
|
|
|
/w/{workspace}/users/whoami:
|
|
get:
|
|
summary: whoami
|
|
operationId: whoami
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/User"
|
|
|
|
/w/{workspace}/users/leave_workspace:
|
|
post:
|
|
summary: leave workspace
|
|
operationId: leaveWorkspace
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/accept_invite:
|
|
post:
|
|
summary: accept invite to workspace
|
|
operationId: acceptInvite
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: accept invite
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
username:
|
|
type: string
|
|
required:
|
|
- workspace_id
|
|
- username
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/decline_invite:
|
|
post:
|
|
summary: decline invite to workspace
|
|
operationId: declineInvite
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: decline invite
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
required:
|
|
- workspace_id
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/invite_user:
|
|
post:
|
|
summary: invite user to workspace
|
|
operationId: inviteUser
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceInvite
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
is_admin:
|
|
type: boolean
|
|
operator:
|
|
type: boolean
|
|
required:
|
|
- email
|
|
- is_admin
|
|
- operator
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/add_user:
|
|
post:
|
|
summary: add user to workspace
|
|
operationId: addUser
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceInvite
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
is_admin:
|
|
type: boolean
|
|
username:
|
|
type: string
|
|
operator:
|
|
type: boolean
|
|
required:
|
|
- email
|
|
- is_admin
|
|
- operator
|
|
- username
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/delete_invite:
|
|
post:
|
|
summary: delete user invite
|
|
operationId: delete invite
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceInvite
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
is_admin:
|
|
type: boolean
|
|
operator:
|
|
type: boolean
|
|
required:
|
|
- email
|
|
- is_admin
|
|
- operator
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/archive:
|
|
post:
|
|
summary: archive workspace
|
|
operationId: archiveWorkspace
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/workspaces/unarchive/{workspace}:
|
|
post:
|
|
summary: unarchive workspace
|
|
operationId: unarchiveWorkspace
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/workspaces/delete/{workspace}:
|
|
delete:
|
|
summary: delete workspace (require super admin)
|
|
operationId: deleteWorkspace
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/users/whois/{username}:
|
|
get:
|
|
summary: whois
|
|
operationId: whois
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/User"
|
|
|
|
/users/list_as_super_admin:
|
|
get:
|
|
summary: list all users as super admin (require to be super amdin)
|
|
operationId: listUsersAsSuperAdmin
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/GlobalUserInfo"
|
|
|
|
/w/{workspace}/workspaces/list_pending_invites:
|
|
get:
|
|
summary: list pending invites for a workspace
|
|
operationId: listPendingInvites
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WorkspaceInvite"
|
|
|
|
/w/{workspace}/workspaces/get_settings:
|
|
get:
|
|
summary: get settings
|
|
operationId: getSettings
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
slack_name:
|
|
type: string
|
|
slack_team_id:
|
|
type: string
|
|
slack_command_script:
|
|
type: string
|
|
auto_invite_domain:
|
|
type: string
|
|
auto_invite_operator:
|
|
type: boolean
|
|
|
|
/w/{workspace}/workspaces/premium_info:
|
|
get:
|
|
summary: get premium info
|
|
operationId: getPremiumInfo
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
premium:
|
|
type: boolean
|
|
usage:
|
|
type: number
|
|
required:
|
|
- premium
|
|
|
|
/w/{workspace}/workspaces/edit_slack_command:
|
|
post:
|
|
summary: edit slack command
|
|
operationId: editSlackCommand
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceInvite
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
slack_command_script:
|
|
type: string
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/edit_auto_invite:
|
|
post:
|
|
summary: edit auto invite
|
|
operationId: editAutoInvite
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceInvite
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
operator:
|
|
type: boolean
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/users/list:
|
|
get:
|
|
summary: list users
|
|
operationId: listUsers
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/User"
|
|
|
|
/w/{workspace}/users/list_usernames:
|
|
get:
|
|
summary: list usernames
|
|
operationId: listUsernames
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/users/tokens/create:
|
|
post:
|
|
summary: create token
|
|
operationId: createToken
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: new token
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewToken"
|
|
responses:
|
|
"201":
|
|
description: token created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/tokens/delete/{token_prefix}:
|
|
delete:
|
|
summary: delete token
|
|
operationId: deleteToken
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: token_prefix
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: delete token
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/tokens/list:
|
|
get:
|
|
summary: list token
|
|
operationId: listTokens
|
|
tags:
|
|
- user
|
|
responses:
|
|
"200":
|
|
description: truncated token
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/TruncatedToken"
|
|
|
|
/w/{workspace}/variables/create:
|
|
post:
|
|
summary: create variable
|
|
operationId: createVariable
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new variable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateVariable"
|
|
responses:
|
|
"201":
|
|
description: variable created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/variables/delete/{path}:
|
|
delete:
|
|
summary: delete variable
|
|
operationId: deleteVariable
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: variable deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/variables/update/{path}:
|
|
post:
|
|
summary: update variable
|
|
operationId: updateVariable
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated variable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditVariable"
|
|
responses:
|
|
"200":
|
|
description: variable updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/variables/get/{path}:
|
|
get:
|
|
summary: get variable
|
|
operationId: getVariable
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: decrypt_secret
|
|
description: |
|
|
ask to decrypt secret if this variable is secret
|
|
(if not secret no effect, default: true)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: variable
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ListableVariable"
|
|
|
|
/w/{workspace}/variables/exists/{path}:
|
|
get:
|
|
summary: does variable exists at path
|
|
operationId: existsVariable
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: variable
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/variables/list:
|
|
get:
|
|
summary: list variables
|
|
operationId: listVariable
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: variable list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ListableVariable"
|
|
|
|
/w/{workspace}/variables/list_contextual:
|
|
get:
|
|
summary: list contextual variables
|
|
operationId: listContextualVariables
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: contextual variable list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ContextualVariable"
|
|
|
|
/oauth/login_callback/{client_name}:
|
|
post:
|
|
security: []
|
|
summary: login with oauth authorization flow
|
|
operationId: loginWithOauth
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/ClientName"
|
|
requestBody:
|
|
description: Partially filled script
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
state:
|
|
type: string
|
|
|
|
responses:
|
|
"200":
|
|
description: >
|
|
Successfully authenticated.
|
|
The session ID is returned in a cookie named `token` and as plaintext response.
|
|
Preferred method of authorization is through the bearer token. The cookie is only for browser convenience.
|
|
|
|
headers:
|
|
Set-Cookie:
|
|
schema:
|
|
type: string
|
|
example: token=abcde12345; Path=/; HttpOnly
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/oauth/connect_slack_callback:
|
|
post:
|
|
summary: connect slack callback
|
|
operationId: connectSlackCallback
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: code endpoint
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
state:
|
|
type: string
|
|
required:
|
|
- code
|
|
- state
|
|
responses:
|
|
"200":
|
|
description: slack token
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/oauth/connect_callback/{client_name}:
|
|
post:
|
|
summary: connect callback
|
|
operationId: connectCallback
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- $ref: "#/components/parameters/ClientName"
|
|
requestBody:
|
|
description: code endpoint
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
state:
|
|
type: string
|
|
required:
|
|
- code
|
|
- state
|
|
responses:
|
|
"200":
|
|
description: oauth token
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TokenResponse"
|
|
|
|
/w/{workspace}/oauth/create_account:
|
|
post:
|
|
summary: create OAuth account
|
|
operationId: createAccount
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: code endpoint
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
refresh_token:
|
|
type: string
|
|
expires_in:
|
|
type: integer
|
|
owner:
|
|
type: string
|
|
client:
|
|
type: string
|
|
required:
|
|
- expires_in
|
|
- owner
|
|
- client
|
|
responses:
|
|
"200":
|
|
description: account set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/oauth/refresh_token/{id}:
|
|
post:
|
|
summary: refresh token
|
|
operationId: refreshToken
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/AccountId"
|
|
requestBody:
|
|
description: variable path
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
required:
|
|
- path
|
|
responses:
|
|
"200":
|
|
description: token refreshed
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/oauth/disconnect/{id}:
|
|
post:
|
|
summary: disconnect account
|
|
operationId: disconnectAccount
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/AccountId"
|
|
responses:
|
|
"200":
|
|
description: disconnected client
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/oauth/disconnect_slack:
|
|
post:
|
|
summary: disconnect slack
|
|
operationId: disconnectSlack
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: disconnected slack
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/oauth/list_logins:
|
|
get:
|
|
summary: list oauth logins
|
|
operationId: listOAuthLogins
|
|
tags:
|
|
- oauth
|
|
responses:
|
|
"200":
|
|
description: list of oauth login clients
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/oauth/list_connects:
|
|
get:
|
|
summary: list oauth connects
|
|
operationId: listOAuthConnects
|
|
tags:
|
|
- oauth
|
|
responses:
|
|
"200":
|
|
description: list of oauth connects clients
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties:
|
|
type: object
|
|
properties:
|
|
extra_params:
|
|
additionalProperties:
|
|
type: string
|
|
scopes:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/create:
|
|
post:
|
|
summary: create resource
|
|
operationId: createResource
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new resource
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateResource"
|
|
responses:
|
|
"201":
|
|
description: resource created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/delete/{path}:
|
|
delete:
|
|
summary: delete resource
|
|
operationId: deleteResource
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: resource deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/update/{path}:
|
|
post:
|
|
summary: update resource
|
|
operationId: updateResource
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated resource
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditResource"
|
|
responses:
|
|
"200":
|
|
description: resource updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/update_value/{path}:
|
|
post:
|
|
summary: update resource value
|
|
operationId: updateResourceValue
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated resource
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
value: {}
|
|
responses:
|
|
"200":
|
|
description: resource value updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/get/{path}:
|
|
get:
|
|
summary: get resource
|
|
operationId: getResource
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: resource
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Resource"
|
|
|
|
/w/{workspace}/resources/get_value/{path}:
|
|
get:
|
|
summary: get resource value
|
|
operationId: getResourceValue
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: resource value
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/resources/exists/{path}:
|
|
get:
|
|
summary: does resource exists
|
|
operationId: existsResource
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: does resource exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/resources/list:
|
|
get:
|
|
summary: list resources
|
|
operationId: listResource
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: resource_type
|
|
description: resource_types to list from, separated by ',',
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: resource_type_exclude
|
|
description: resource_types to not list from, separated by ',',
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: resource list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ListableResource"
|
|
|
|
/w/{workspace}/resources/type/create:
|
|
post:
|
|
summary: create resource_type
|
|
operationId: createResourceType
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new resource_type
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ResourceType"
|
|
responses:
|
|
"201":
|
|
description: resource_type created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/type/delete/{path}:
|
|
delete:
|
|
summary: delete resource_type
|
|
operationId: deleteResourceType
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: resource_type deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/type/update/{path}:
|
|
post:
|
|
summary: update resource_type
|
|
operationId: updateResourceType
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated resource_type
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditResourceType"
|
|
responses:
|
|
"200":
|
|
description: resource_type updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/type/get/{path}:
|
|
get:
|
|
summary: get resource_type
|
|
operationId: getResourceType
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: resource_type deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ResourceType"
|
|
|
|
/w/{workspace}/resources/type/exists/{path}:
|
|
get:
|
|
summary: does resource_type exists
|
|
operationId: existsResourceType
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: does resource_type exist
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/resources/type/list:
|
|
get:
|
|
summary: list resource_types
|
|
operationId: listResourceType
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: resource_type list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ResourceType"
|
|
|
|
/w/{workspace}/resources/type/listnames:
|
|
get:
|
|
summary: list resource_types names
|
|
operationId: listResourceTypeNames
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: resource_type list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/scripts/hub/list:
|
|
get:
|
|
summary: list all available hub scripts
|
|
operationId: listHubScripts
|
|
tags:
|
|
- script
|
|
responses:
|
|
"200":
|
|
description: hub scripts list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
asks:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: number
|
|
ask_id:
|
|
type: number
|
|
summary:
|
|
type: string
|
|
app:
|
|
type: string
|
|
approved:
|
|
type: boolean
|
|
kind:
|
|
type: string
|
|
enum: [script, failure, trigger, command, approval]
|
|
votes:
|
|
type: number
|
|
views:
|
|
type: number
|
|
required:
|
|
- id
|
|
- ask_id
|
|
- summary
|
|
- app
|
|
- approved
|
|
- kind
|
|
- views
|
|
- votes
|
|
|
|
/flows/hub/list:
|
|
get:
|
|
summary: list all available hub flows
|
|
operationId: listHubFlows
|
|
tags:
|
|
- flow
|
|
responses:
|
|
"200":
|
|
description: hub flows list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
flows:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: number
|
|
flow_id:
|
|
type: number
|
|
summary:
|
|
type: string
|
|
apps:
|
|
type: array
|
|
items:
|
|
type: string
|
|
approved:
|
|
type: boolean
|
|
votes:
|
|
type: number
|
|
|
|
required:
|
|
- id
|
|
- flow_id
|
|
- summary
|
|
- apps
|
|
- approved
|
|
- votes
|
|
|
|
/flows/hub/get/{id}:
|
|
get:
|
|
summary: get hub flow by id
|
|
operationId: getHubFlowById
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/PathId"
|
|
responses:
|
|
"200":
|
|
description: flow
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
flow:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/OpenFlow"
|
|
|
|
/apps/hub/list:
|
|
get:
|
|
summary: list all available hub apps
|
|
operationId: listHubApps
|
|
tags:
|
|
- app
|
|
responses:
|
|
"200":
|
|
description: hub apps list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
apps:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: number
|
|
app_id:
|
|
type: number
|
|
summary:
|
|
type: string
|
|
apps:
|
|
type: array
|
|
items:
|
|
type: string
|
|
approved:
|
|
type: boolean
|
|
votes:
|
|
type: number
|
|
required:
|
|
- id
|
|
- app_id
|
|
- summary
|
|
- apps
|
|
- approved
|
|
- votes
|
|
|
|
/apps/hub/get/{id}:
|
|
get:
|
|
summary: get hub app by id
|
|
operationId: getHubAppById
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/PathId"
|
|
responses:
|
|
"200":
|
|
description: app
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
app:
|
|
type: object
|
|
properties:
|
|
summary:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- summary
|
|
- value
|
|
required:
|
|
- app
|
|
|
|
/scripts/hub/get/{path}:
|
|
get:
|
|
summary: get hub script content by path
|
|
operationId: getHubScriptContentByPath
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/scripts/hub/get_full/{path}:
|
|
get:
|
|
summary: get full hub script by path
|
|
operationId: getHubScriptByPath
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
content:
|
|
type: string
|
|
lockfile:
|
|
type: string
|
|
schema: {}
|
|
language:
|
|
type: string
|
|
enum: [deno, python3, go, bash]
|
|
summary:
|
|
type: string
|
|
required:
|
|
- content
|
|
- language
|
|
|
|
/w/{workspace}/scripts/list:
|
|
get:
|
|
summary: list all available scripts
|
|
operationId: listScripts
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/OrderDesc"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- name: path_start
|
|
description: mask to filter matching starting path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: path_exact
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: first_parent_hash
|
|
description: mask to filter scripts whom first direct parent has exact hash
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: last_parent_hash
|
|
description: |
|
|
mask to filter scripts whom last parent in the chain has exact hash.
|
|
Beware that each script stores only a limited number of parents. Hence
|
|
the last parent hash for a script is not necessarily its top-most parent.
|
|
To find the top-most parent you will have to jump from last to last hash
|
|
until finding the parent
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: parent_hash
|
|
description: |
|
|
is the hash present in the array of stored parent hashes for this script.
|
|
The same warning applies than for last_parent_hash. A script only store a
|
|
limited number of direct parent
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: show_archived
|
|
description: |
|
|
(default false)
|
|
show also the archived files.
|
|
when multiple archived hash share the same path, only the ones with the latest create_at
|
|
are
|
|
ed.
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: is_template
|
|
description: |
|
|
(default regardless)
|
|
if true show only the templates
|
|
if false show only the non templates
|
|
if not defined, show all regardless of if the script is a template
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: kind
|
|
description: |
|
|
(default regardless)
|
|
script kind
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: starred_only
|
|
description: |
|
|
(default false)
|
|
show only the starred items
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: All available scripts
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Script"
|
|
|
|
/w/{workspace}/scripts/list_paths:
|
|
get:
|
|
summary: list all available scripts paths
|
|
operationId: listScriptPaths
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: list of script paths
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
|
|
/w/{workspace}/scripts/create:
|
|
post:
|
|
summary: create script
|
|
operationId: createScript
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Partially filled script
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
parent_hash:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
description:
|
|
type: string
|
|
content:
|
|
type: string
|
|
schema:
|
|
type: object
|
|
is_template:
|
|
type: boolean
|
|
lock:
|
|
type: array
|
|
items:
|
|
type: string
|
|
language:
|
|
type: string
|
|
enum: [python3, deno, go, bash]
|
|
kind:
|
|
type: string
|
|
enum: [script, failure, trigger, command, approval]
|
|
required:
|
|
- path
|
|
- summary
|
|
- description
|
|
- content
|
|
- language
|
|
responses:
|
|
"201":
|
|
description: script created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/scripts/python/tojsonschema:
|
|
post:
|
|
summary: inspect python code to infer jsonschema of arguments
|
|
operationId: pythonToJsonschema
|
|
tags:
|
|
- script
|
|
requestBody:
|
|
description: python code with the main function
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: parsed args
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/MainArgSignature"
|
|
|
|
/scripts/deno/tojsonschema:
|
|
post:
|
|
summary: inspect deno code to infer jsonschema of arguments
|
|
operationId: denoToJsonschema
|
|
tags:
|
|
- script
|
|
requestBody:
|
|
description: deno code with the main function
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: parsed args
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/MainArgSignature"
|
|
|
|
/scripts/bash/tojsonschema:
|
|
post:
|
|
summary: inspect bash code to infer jsonschema of arguments
|
|
operationId: bashToJsonschema
|
|
tags:
|
|
- script
|
|
requestBody:
|
|
description: bash code with the main function
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: parsed args
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/MainArgSignature"
|
|
|
|
/scripts/go/tojsonschema:
|
|
post:
|
|
summary: inspect go code to infer jsonschema of arguments
|
|
operationId: goToJsonschema
|
|
tags:
|
|
- script
|
|
requestBody:
|
|
description: go code with the main function
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: parsed args
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/MainArgSignature"
|
|
|
|
/w/{workspace}/scripts/archive/p/{path}:
|
|
post:
|
|
summary: archive script by path
|
|
operationId: archiveScriptByPath
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script archived
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/scripts/archive/h/{hash}:
|
|
post:
|
|
summary: archive script by hash
|
|
operationId: archiveScriptByHash
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptHash"
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Script"
|
|
|
|
/w/{workspace}/scripts/delete/h/{hash}:
|
|
post:
|
|
summary: delete script by hash (erase content but keep hash)
|
|
operationId: deleteScriptByHash
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptHash"
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Script"
|
|
|
|
/w/{workspace}/scripts/get/p/{path}:
|
|
get:
|
|
summary: get script by path
|
|
operationId: getScriptByPath
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Script"
|
|
|
|
/w/{workspace}/scripts/raw/p/{path}:
|
|
get:
|
|
summary: raw script by path
|
|
operationId: rawScriptByPath
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script content
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/scripts/exists/p/{path}:
|
|
get:
|
|
summary: exists script by path
|
|
operationId: existsScriptByPath
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: does it exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/scripts/get/h/{hash}:
|
|
get:
|
|
summary: get script by hash
|
|
operationId: getScriptByHash
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptHash"
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Script"
|
|
|
|
/w/{workspace}/scripts/raw/h/{path}:
|
|
get:
|
|
summary: raw script by hash
|
|
operationId: rawScriptByHash
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script content
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/scripts/deployment_status/h/{hash}:
|
|
get:
|
|
summary: get script deployment status
|
|
operationId: getScriptDeploymentStatus
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptHash"
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
lock:
|
|
type: string
|
|
lock_error_logs:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/run/p/{path}:
|
|
post:
|
|
summary: run script by path
|
|
operationId: runScriptByPath
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- name: scheduled_for
|
|
description: when to schedule this job (leave empty for immediate run)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
- name: scheduled_in_secs
|
|
description: schedule the script to execute in the number of seconds starting now
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the script owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
requestBody:
|
|
description: script args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
responses:
|
|
"201":
|
|
description: job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/jobs/run_wait_result/p/{path}:
|
|
post:
|
|
summary: run script by path
|
|
operationId: runWaitResultScriptByPath
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- name: scheduled_for
|
|
description: when to schedule this job (leave empty for immediate run)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
- name: scheduled_in_secs
|
|
description: schedule the script to execute in the number of seconds starting now
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
|
|
requestBody:
|
|
description: script args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
responses:
|
|
"200":
|
|
description: job result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/jobs/result_by_id/{flow_job_id}/{node_id}:
|
|
get:
|
|
summary: get job result by id
|
|
operationId: resultById
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: flow_job_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: node_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: skip_direct
|
|
description: Skip checking that the node is part of the given flow.
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: job result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/flows/list_paths:
|
|
get:
|
|
summary: list all available flow paths
|
|
operationId: listFlowPaths
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: list of flow paths
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/flows/list:
|
|
get:
|
|
summary: list all available flows
|
|
operationId: listFlows
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/OrderDesc"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- name: path_start
|
|
description: mask to filter matching starting path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: path_exact
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: show_archived
|
|
description: |
|
|
(default false)
|
|
show also the archived files.
|
|
when multiple archived hash share the same path, only the ones with the latest create_at
|
|
are displayed.
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: starred_only
|
|
description: |
|
|
(default false)
|
|
show only the starred items
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: All available flow
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Flow"
|
|
|
|
/w/{workspace}/flows/get/{path}:
|
|
get:
|
|
summary: get flow by path
|
|
operationId: getFlowByPath
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: flow details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Flow"
|
|
|
|
/w/{workspace}/flows/exists/{path}:
|
|
get:
|
|
summary: exists flow by path
|
|
operationId: existsFlowByPath
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: flow details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/flows/create:
|
|
post:
|
|
summary: create flow
|
|
operationId: createFlow
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Partially filled flow
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/OpenFlowWPath"
|
|
|
|
responses:
|
|
"201":
|
|
description: flow created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/flows/update/{path}:
|
|
post:
|
|
summary: update flow
|
|
operationId: updateFlow
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
requestBody:
|
|
description: Partially filled flow
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/OpenFlowWPath"
|
|
|
|
responses:
|
|
"200":
|
|
description: flow updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/flows/archive/{path}:
|
|
post:
|
|
summary: archive flow by path
|
|
operationId: archiveFlowByPath
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: flow archived
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/apps/list:
|
|
get:
|
|
summary: list all available apps
|
|
operationId: listApps
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/OrderDesc"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- name: path_start
|
|
description: mask to filter matching starting path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: path_exact
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: starred_only
|
|
description: |
|
|
(default false)
|
|
show only the starred items
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: All available apps
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ListableApp"
|
|
|
|
/w/{workspace}/apps/exists/{path}:
|
|
get:
|
|
summary: does an app exisst at path
|
|
operationId: existsApp
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: app exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/apps/get/p/{path}:
|
|
get:
|
|
summary: get app by path
|
|
operationId: getAppByPath
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: app details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppWithLastVersion"
|
|
|
|
/w/{workspace}/apps_u/public_app/{path}:
|
|
get:
|
|
summary: get public app by secret
|
|
operationId: getPublicAppBySecret
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: app details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppWithLastVersion"
|
|
|
|
|
|
/w/{workspace}/apps/secret_of/{path}:
|
|
get:
|
|
summary: get public secret of app
|
|
operationId: getPublicSecretOfApp
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: app secret
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/apps/get/v/{id}:
|
|
get:
|
|
summary: get app by version
|
|
operationId: getAppByVersion
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/PathId"
|
|
responses:
|
|
"200":
|
|
description: app details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppWithLastVersion"
|
|
|
|
/w/{workspace}/apps/create:
|
|
post:
|
|
summary: create app
|
|
operationId: createApp
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new app
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
value: {}
|
|
summary:
|
|
type: string
|
|
policy:
|
|
$ref: "#/components/schemas/Policy"
|
|
required:
|
|
- path
|
|
- value
|
|
- summary
|
|
- policy
|
|
responses:
|
|
"201":
|
|
description: app created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/apps/delete/{path}:
|
|
delete:
|
|
summary: delete app
|
|
operationId: deleteApp
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: app deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/apps/update/{path}:
|
|
post:
|
|
summary: update app
|
|
operationId: updateApp
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
requestBody:
|
|
description: update app
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
value: {}
|
|
policy:
|
|
$ref: "#/components/schemas/Policy"
|
|
responses:
|
|
"200":
|
|
description: app updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/apps_u/execute_component/{path}:
|
|
post:
|
|
summary: executeComponent
|
|
operationId: executeComponent
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
requestBody:
|
|
description: update app
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
#script: script/<path>
|
|
#flow: flow/<path>
|
|
path:
|
|
type: string
|
|
args: {}
|
|
raw_code:
|
|
type: object
|
|
properties:
|
|
content:
|
|
type: string
|
|
language:
|
|
type: string
|
|
path:
|
|
type: string
|
|
required:
|
|
- content
|
|
- language
|
|
force_viewer_static_fields:
|
|
type: object
|
|
required:
|
|
- args
|
|
|
|
responses:
|
|
"200":
|
|
description: job uuid
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/run/f/{path}:
|
|
post:
|
|
summary: run flow by path
|
|
operationId: runFlowByPath
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- name: scheduled_for
|
|
description: when to schedule this job (leave empty for immediate run)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
- name: scheduled_in_secs
|
|
description: schedule the script to execute in the number of seconds starting now
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the flow owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
|
|
requestBody:
|
|
description: flow args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
responses:
|
|
"201":
|
|
description: job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/jobs/run/h/{hash}:
|
|
post:
|
|
summary: run script by hash
|
|
operationId: runScriptByHash
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptHash"
|
|
- name: scheduled_for
|
|
description: when to schedule this job (leave empty for immediate run)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
- name: scheduled_in_secs
|
|
description: schedule the script to execute in the number of seconds starting now
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the script owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
requestBody:
|
|
description: Partially filled args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
|
|
responses:
|
|
"201":
|
|
description: job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/jobs/run/preview:
|
|
post:
|
|
summary: run script preview
|
|
operationId: runScriptPreview
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the script owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
requestBody:
|
|
description: preview
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Preview"
|
|
|
|
responses:
|
|
"201":
|
|
description: job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/jobs/run/preview_flow:
|
|
post:
|
|
summary: run flow preview
|
|
operationId: runFlowPreview
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the script owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
|
|
requestBody:
|
|
description: preview
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/FlowPreview"
|
|
|
|
responses:
|
|
"201":
|
|
description: job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/jobs/queue/list:
|
|
get:
|
|
summary: list all available queued jobs
|
|
operationId: listQueue
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/OrderDesc"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/ScriptExactPath"
|
|
- $ref: "#/components/parameters/ScriptStartPath"
|
|
- $ref: "#/components/parameters/ScriptExactHash"
|
|
- $ref: "#/components/parameters/CreatedBefore"
|
|
- $ref: "#/components/parameters/CreatedAfter"
|
|
- $ref: "#/components/parameters/Success"
|
|
- $ref: "#/components/parameters/JobKinds"
|
|
- $ref: "#/components/parameters/Suspended"
|
|
- $ref: "#/components/parameters/Running"
|
|
responses:
|
|
"200":
|
|
description: All available queued jobs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/QueuedJob"
|
|
|
|
/w/{workspace}/jobs/completed/list:
|
|
get:
|
|
summary: list all available completed jobs
|
|
operationId: listCompletedJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/OrderDesc"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/ScriptExactPath"
|
|
- $ref: "#/components/parameters/ScriptStartPath"
|
|
- $ref: "#/components/parameters/ScriptExactHash"
|
|
- $ref: "#/components/parameters/CreatedBefore"
|
|
- $ref: "#/components/parameters/CreatedAfter"
|
|
- $ref: "#/components/parameters/Success"
|
|
- $ref: "#/components/parameters/JobKinds"
|
|
- name: is_skipped
|
|
description: is the job skipped
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: is_flow_step
|
|
description: is the job a flow step
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: All available completed jobs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/CompletedJob"
|
|
|
|
/w/{workspace}/jobs/list:
|
|
get:
|
|
summary: list all available jobs
|
|
operationId: listJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/ScriptExactPath"
|
|
- $ref: "#/components/parameters/ScriptStartPath"
|
|
- $ref: "#/components/parameters/ScriptExactHash"
|
|
- $ref: "#/components/parameters/CreatedBefore"
|
|
- $ref: "#/components/parameters/CreatedAfter"
|
|
- $ref: "#/components/parameters/JobKinds"
|
|
- name: is_skipped
|
|
description: is the job skipped
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: is_flow_step
|
|
description: is the job a flow step
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: success
|
|
description: filter on successful jobs
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: All jobs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Job"
|
|
|
|
/w/{workspace}/jobs_u/get/{id}:
|
|
get:
|
|
summary: get job
|
|
operationId: getJob
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
responses:
|
|
"200":
|
|
description: job details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Job"
|
|
|
|
# /w/{workspace}/jobs/flow/current_state/{id}:
|
|
# get:
|
|
# summary: get flow current step state
|
|
# operationId: getJob
|
|
# tags:
|
|
# - job
|
|
# parameters:
|
|
# - $ref: "#/components/parameters/WorkspaceId"
|
|
# - $ref: "#/components/parameters/JobId"
|
|
# responses:
|
|
# "200":
|
|
# description: state details
|
|
# content:
|
|
# application/json:
|
|
# schema:
|
|
# type: string
|
|
|
|
/w/{workspace}/jobs_u/getupdate/{id}:
|
|
get:
|
|
summary: get job updates
|
|
operationId: getJobUpdates
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: running
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: log_offset
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
|
|
responses:
|
|
"200":
|
|
description: job details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
running:
|
|
type: boolean
|
|
completed:
|
|
type: boolean
|
|
new_logs:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/completed/get/{id}:
|
|
get:
|
|
summary: get completed job
|
|
operationId: getCompletedJob
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
responses:
|
|
"200":
|
|
description: job details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CompletedJob"
|
|
|
|
/w/{workspace}/jobs/completed/delete/{id}:
|
|
post:
|
|
summary: delete completed job (erase content but keep run id)
|
|
operationId: deleteCompletedJob
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
responses:
|
|
"200":
|
|
description: job details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CompletedJob"
|
|
|
|
/w/{workspace}/jobs/queue/cancel/{id}:
|
|
post:
|
|
summary: cancel queued job
|
|
operationId: cancelQueuedJob
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
requestBody:
|
|
description: reason
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
reason:
|
|
type: string
|
|
|
|
responses:
|
|
"200":
|
|
description: job canceled
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/job_signature/{id}/{resume_id}:
|
|
get:
|
|
summary: create an HMac signature given a job id and a resume id
|
|
operationId: createJobSignature
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: job signature
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/resume_urls/{id}/{resume_id}:
|
|
get:
|
|
summary: get resume urls given a job_id, resume_id and a nonce to resume a flow
|
|
operationId: getResumeUrls
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: url endpoints
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
approvalPage:
|
|
type: string
|
|
resume:
|
|
type: string
|
|
cancel:
|
|
type: string
|
|
required:
|
|
- approvalPage
|
|
- resume
|
|
- cancel
|
|
|
|
/w/{workspace}/jobs_u/resume/{id}/{resume_id}/{signature}:
|
|
get:
|
|
summary: resume a job for a suspended flow
|
|
operationId: resumeSuspendedJobGet
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: signature
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"201":
|
|
description: job resumed
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
post:
|
|
summary: resume a job for a suspended flow
|
|
operationId: resumeSuspendedJobPost
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: signature
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
responses:
|
|
"201":
|
|
description: job resumed
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/flow/resume/{id}:
|
|
post:
|
|
summary: resume a job for a suspended flow as an owner
|
|
operationId: resumeSuspendedFlowAsOwner
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
responses:
|
|
"201":
|
|
description: job resumed
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs_u/cancel/{id}/{resume_id}/{signature}:
|
|
get:
|
|
summary: cancel a job for a suspended flow
|
|
operationId: cancelSuspendedJobGet
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: signature
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"201":
|
|
description: job resumed
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
post:
|
|
summary: cancel a job for a suspended flow
|
|
operationId: cancelSuspendedJobPost
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: signature
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
responses:
|
|
"201":
|
|
description: job resumed
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs_u/get_flow/{id}/{resume_id}/{signature}:
|
|
get:
|
|
summary: get parent flow job of suspended job
|
|
operationId: getSuspendedJobFlow
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: signature
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: parent flow details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
job:
|
|
$ref: "#/components/schemas/Job"
|
|
approvers:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
resume_id:
|
|
type: integer
|
|
approver:
|
|
type: string
|
|
required:
|
|
- resume_id
|
|
- approver
|
|
required:
|
|
- job
|
|
- approvers
|
|
|
|
/schedules/preview:
|
|
post:
|
|
summary: preview schedule
|
|
operationId: previewSchedule
|
|
tags:
|
|
- schedule
|
|
requestBody:
|
|
description: schedule
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
schedule:
|
|
type: string
|
|
offset:
|
|
type: integer
|
|
required:
|
|
- schedule
|
|
responses:
|
|
"200":
|
|
description: the preview of the next 10 time this schedule would apply to
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: date-time
|
|
|
|
/w/{workspace}/schedules/create:
|
|
post:
|
|
summary: create schedule
|
|
operationId: createSchedule
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new schedule
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewSchedule"
|
|
responses:
|
|
"201":
|
|
description: schedule created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/schedules/update/{path}:
|
|
post:
|
|
summary: update schedule
|
|
operationId: updateSchedule
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated schedule
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditSchedule"
|
|
responses:
|
|
"200":
|
|
description: schedule updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/schedules/setenabled/{path}:
|
|
post:
|
|
summary: set enabled schedule
|
|
operationId: setScheduleEnabled
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated schedule enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
required:
|
|
- enabled
|
|
|
|
responses:
|
|
"200":
|
|
description: schedule enabled set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/schedules/delete/{path}:
|
|
delete:
|
|
summary: delete schedule
|
|
operationId: deleteSchedule
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: schedule deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/schedules/get/{path}:
|
|
get:
|
|
summary: get schedule
|
|
operationId: getSchedule
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: schedule deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Schedule"
|
|
|
|
/w/{workspace}/schedules/exists/{path}:
|
|
get:
|
|
summary: does schedule exists
|
|
operationId: existsSchedule
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: schedule exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/schedules/list:
|
|
get:
|
|
summary: list schedules
|
|
operationId: listSchedules
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: schedule list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Schedule"
|
|
|
|
/w/{workspace}/groups/list:
|
|
get:
|
|
summary: list groups
|
|
operationId: listGroups
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: group list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Group"
|
|
|
|
/w/{workspace}/groups/listnames:
|
|
get:
|
|
summary: list group names
|
|
operationId: listGroupNames
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: only_member_of
|
|
in: query
|
|
description: only list the groups the user is member of (default false)
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: group list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/groups/create:
|
|
post:
|
|
summary: create group
|
|
operationId: createGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: create group
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
required:
|
|
- name
|
|
responses:
|
|
"200":
|
|
description: group created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/groups/update/{name}:
|
|
post:
|
|
summary: update group
|
|
operationId: updateGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: updated group
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
summary:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: group updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/groups/delete/{name}:
|
|
delete:
|
|
summary: delete group
|
|
operationId: deleteGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: group deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/groups/get/{name}:
|
|
get:
|
|
summary: get group
|
|
operationId: getGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: group
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Group"
|
|
|
|
/w/{workspace}/groups/adduser/{name}:
|
|
post:
|
|
summary: add user to group
|
|
operationId: addUserToGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: added user to group
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
username:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: user added to group
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/groups/removeuser/{name}:
|
|
post:
|
|
summary: remove user to group
|
|
operationId: removeUserToGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: added user to group
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
username:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: user removed from group
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/folders/list:
|
|
get:
|
|
summary: list folders
|
|
operationId: listFolders
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: folder list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Folder"
|
|
|
|
/w/{workspace}/folders/listnames:
|
|
get:
|
|
summary: list folder names
|
|
operationId: listFolderNames
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: only_member_of
|
|
in: query
|
|
description: only list the folders the user is member of (default false)
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: folder list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/folders/create:
|
|
post:
|
|
summary: create folder
|
|
operationId: createFolder
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: create folder
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
owners:
|
|
type: array
|
|
items:
|
|
type: string
|
|
extra_perms:
|
|
additionalProperties:
|
|
type: boolean
|
|
required:
|
|
- name
|
|
responses:
|
|
"200":
|
|
description: folder created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/folders/update/{name}:
|
|
post:
|
|
summary: update folder
|
|
operationId: updateFolder
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: update folder
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
owners:
|
|
type: array
|
|
items:
|
|
type: string
|
|
extra_perms:
|
|
additionalProperties:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: folder updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/folders/delete/{name}:
|
|
delete:
|
|
summary: delete folder
|
|
operationId: deleteFolder
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: folder deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/folders/get/{name}:
|
|
get:
|
|
summary: get folder
|
|
operationId: getFolder
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: folder
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Folder"
|
|
|
|
/w/{workspace}/folders/getusage/{name}:
|
|
get:
|
|
summary: get folder usage
|
|
operationId: getFolderUsage
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: folder
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
scripts:
|
|
type: number
|
|
flows:
|
|
type: number
|
|
apps:
|
|
type: number
|
|
resources:
|
|
type: number
|
|
variables:
|
|
type: number
|
|
schedules:
|
|
type: number
|
|
required:
|
|
- scripts
|
|
- flows
|
|
- apps
|
|
- resources
|
|
- variables
|
|
- schedules
|
|
|
|
/w/{workspace}/folders/addowner/{name}:
|
|
post:
|
|
summary: add owner to folder
|
|
operationId: addOwnerToFolder
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: owner user to folder
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
owner:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: owner added to folder
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/folders/removeowner/{name}:
|
|
post:
|
|
summary: remove owner to folder
|
|
operationId: removeOwnerToFolder
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: added owner to folder
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
owner:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: owner removed from folder
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/workers/list:
|
|
get:
|
|
summary: list workers
|
|
operationId: listWorkers
|
|
tags:
|
|
- worker
|
|
parameters:
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: a list of workers
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WorkerPing"
|
|
|
|
/w/{workspace}/acls/get/{kind}/{path}:
|
|
get:
|
|
summary: get granular acls
|
|
operationId: getGranularAcls
|
|
tags:
|
|
- granular_acl
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: kind
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: [script, group_, resource, schedule, variable, flow, folder, app]
|
|
responses:
|
|
"200":
|
|
description: acls
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
|
|
/w/{workspace}/acls/add/{kind}/{path}:
|
|
post:
|
|
summary: add granular acls
|
|
operationId: addGranularAcls
|
|
tags:
|
|
- granular_acl
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: kind
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: [script, group_, resource, schedule, variable, flow, folder, app]
|
|
requestBody:
|
|
description: acl to add
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
owner:
|
|
type: string
|
|
write:
|
|
type: boolean
|
|
required: [owner]
|
|
responses:
|
|
"200":
|
|
description: granular acl added
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/acls/remove/{kind}/{path}:
|
|
post:
|
|
summary: remove granular acls
|
|
operationId: removeGranularAcls
|
|
tags:
|
|
- granular_acl
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: kind
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: [script, group_, resource, schedule, variable, flow, folder, app]
|
|
requestBody:
|
|
description: acl to add
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
owner:
|
|
type: string
|
|
required: [owner]
|
|
responses:
|
|
"200":
|
|
description: granular acl removed
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
|
|
/w/{workspace}/capture_u/{path}:
|
|
post:
|
|
summary: update flow preview capture
|
|
operationId: updateCapture
|
|
tags:
|
|
- capture
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"204":
|
|
description: flow preview captured
|
|
|
|
/w/{workspace}/capture/{path}:
|
|
put:
|
|
summary: create flow preview capture
|
|
operationId: createCapture
|
|
tags:
|
|
- capture
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"201":
|
|
description: flow preview capture created
|
|
get:
|
|
summary: get flow preview capture
|
|
operationId: getCapture
|
|
tags:
|
|
- capture
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: captured flow preview
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
"404":
|
|
description: capture does not exist for this flow
|
|
|
|
/w/{workspace}/favorites/star:
|
|
post:
|
|
summary: star item
|
|
operationId: star
|
|
tags:
|
|
- favorite
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
favorite_kind:
|
|
type: string
|
|
enum: [flow, app, script]
|
|
responses:
|
|
"200":
|
|
description: star item
|
|
|
|
/w/{workspace}/favorites/unstar:
|
|
post:
|
|
summary: unstar item
|
|
operationId: unstar
|
|
tags:
|
|
- favorite
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
favorite_kind:
|
|
type: string
|
|
enum: [flow, app, script]
|
|
responses:
|
|
"200":
|
|
description: unstar item
|
|
|
|
components:
|
|
securitySchemes:
|
|
bearerAuth:
|
|
type: http
|
|
scheme: bearer
|
|
cookieAuth:
|
|
type: apiKey
|
|
in: cookie
|
|
name: token
|
|
parameters:
|
|
WorkspaceId:
|
|
name: workspace
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
AccountId:
|
|
name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
ClientName:
|
|
name: client_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
ScriptPath:
|
|
name: path
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
ScriptHash:
|
|
name: hash
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
JobId:
|
|
name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
Path:
|
|
name: path
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
PathId:
|
|
name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
Name:
|
|
name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
Page:
|
|
name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
PerPage:
|
|
name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
OrderDesc:
|
|
name: order_desc
|
|
description: order by desc order (default true)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
CreatedBy:
|
|
name: created_by
|
|
description: mask to filter exact matching user creator
|
|
in: query
|
|
schema:
|
|
type: string
|
|
ParentJob:
|
|
name: parent_job
|
|
description: The parent job that is at the origin and responsible for the execution of this script if any
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
IncludeHeader:
|
|
name: include_header
|
|
description: |
|
|
List of headers's keys (separated with ',') whove value are added to the args
|
|
Header's key lowercased and '-'' replaced to '_' such that 'Content-Type' becomes the 'content_type' arg key
|
|
in: query
|
|
schema:
|
|
type: string
|
|
|
|
ScriptStartPath:
|
|
name: script_path_start
|
|
description: mask to filter matching starting path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
ScriptExactPath:
|
|
name: script_path_exact
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
ScriptExactHash:
|
|
name: script_hash
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
CreatedBefore:
|
|
name: created_before
|
|
description: filter on created before (inclusive) timestamp
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
CreatedAfter:
|
|
name: created_after
|
|
description: filter on created after (exclusive) timestamp
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
Success:
|
|
name: success
|
|
description: filter on successful jobs
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
Suspended:
|
|
name: suspended
|
|
description: filter on suspended jobs
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
Running:
|
|
name: running
|
|
description: filter on running jobs
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
After:
|
|
name: after
|
|
description: filter on created after (exclusive) timestamp
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
Before:
|
|
name: before
|
|
description: filter on created before (exclusive) timestamp
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
Username:
|
|
name: username
|
|
description: filter on exact username of user
|
|
in: query
|
|
schema:
|
|
type: string
|
|
Operation:
|
|
name: operation
|
|
description: filter on exact or prefix name of operation
|
|
in: query
|
|
schema:
|
|
type: string
|
|
ResourceName:
|
|
name: resource
|
|
description: filter on exact or prefix name of resource
|
|
in: query
|
|
schema:
|
|
type: string
|
|
ActionKind:
|
|
name: action_kind
|
|
description: filter on type of operation
|
|
in: query
|
|
schema:
|
|
type: string
|
|
enum: [Create, Update, Delete, Execute]
|
|
JobKinds:
|
|
name: job_kinds
|
|
description: filter on job kind (values 'preview', 'script', 'dependencies', 'flow') separated by,
|
|
in: query
|
|
schema:
|
|
type: string
|
|
# correct type is below but explode not supported by our codegen
|
|
# type: array
|
|
# items:
|
|
# type: string
|
|
# enum: ["preview", "script", "dependencies"]
|
|
# explode: false
|
|
|
|
schemas:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas"
|
|
Script:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
hash:
|
|
type: string
|
|
path:
|
|
type: string
|
|
parent_hashes:
|
|
type: array
|
|
description: |
|
|
The first element is the direct parent of the script, the second is the parent of the first, etc
|
|
items:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
description:
|
|
type: string
|
|
content:
|
|
type: string
|
|
created_by:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
archived:
|
|
type: boolean
|
|
schema:
|
|
type: object
|
|
deleted:
|
|
type: boolean
|
|
is_template:
|
|
type: boolean
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
lock:
|
|
type: string
|
|
lock_error_logs:
|
|
type: string
|
|
language:
|
|
type: string
|
|
enum: [python3, deno, go, bash]
|
|
kind:
|
|
type: string
|
|
enum: [script, failure, trigger, command, approval]
|
|
starred:
|
|
type: boolean
|
|
required:
|
|
- hash
|
|
- path
|
|
- summary
|
|
- description
|
|
- content
|
|
- created_by
|
|
- created_at
|
|
- archived
|
|
- deleted
|
|
- is_template
|
|
- extra_perms
|
|
- language
|
|
- kind
|
|
- starred
|
|
|
|
ScriptArgs:
|
|
type: object
|
|
additionalProperties: {}
|
|
|
|
QueuedJob:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
parent_job:
|
|
type: string
|
|
format: uuid
|
|
created_by:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
started_at:
|
|
type: string
|
|
format: date-time
|
|
scheduled_for:
|
|
type: string
|
|
format: date-time
|
|
running:
|
|
type: boolean
|
|
script_path:
|
|
type: string
|
|
script_hash:
|
|
type: string
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
logs:
|
|
type: string
|
|
raw_code:
|
|
type: string
|
|
canceled:
|
|
type: boolean
|
|
canceled_by:
|
|
type: string
|
|
canceled_reason:
|
|
type: string
|
|
last_ping:
|
|
type: string
|
|
format: date-time
|
|
job_kind:
|
|
type: string
|
|
enum:
|
|
[
|
|
"script",
|
|
"preview",
|
|
"dependencies",
|
|
"flow",
|
|
"flowpreview",
|
|
"script_hub",
|
|
"identity",
|
|
]
|
|
schedule_path:
|
|
type: string
|
|
permissioned_as:
|
|
type: string
|
|
description: |
|
|
The user (u/userfoo) or group (g/groupfoo) whom
|
|
the execution of this script will be permissioned_as and by extension its DT_TOKEN.
|
|
flow_status:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowStatus"
|
|
raw_flow:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowValue"
|
|
is_flow_step:
|
|
type: boolean
|
|
language:
|
|
type: string
|
|
enum: [python3, deno, go, bash]
|
|
email:
|
|
type: string
|
|
visible_to_owner:
|
|
type: boolean
|
|
required:
|
|
- id
|
|
- running
|
|
- canceled
|
|
- job_kind
|
|
- permissioned_as
|
|
- is_flow_step
|
|
- email
|
|
- visible_to_owner
|
|
|
|
CompletedJob:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
parent_job:
|
|
type: string
|
|
format: uuid
|
|
created_by:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
started_at:
|
|
type: string
|
|
format: date-time
|
|
duration_ms:
|
|
type: integer
|
|
success:
|
|
type: boolean
|
|
script_path:
|
|
type: string
|
|
script_hash:
|
|
type: string
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
result: {}
|
|
logs:
|
|
type: string
|
|
deleted:
|
|
type: boolean
|
|
raw_code:
|
|
type: string
|
|
canceled:
|
|
type: boolean
|
|
canceled_by:
|
|
type: string
|
|
canceled_reason:
|
|
type: string
|
|
job_kind:
|
|
type: string
|
|
enum:
|
|
[
|
|
"script",
|
|
"preview",
|
|
"dependencies",
|
|
"flow",
|
|
"flowpreview",
|
|
"script_hub",
|
|
"identity",
|
|
]
|
|
schedule_path:
|
|
type: string
|
|
permissioned_as:
|
|
type: string
|
|
description: |
|
|
The user (u/userfoo) or group (g/groupfoo) whom
|
|
the execution of this script will be permissioned_as and by extension its DT_TOKEN.
|
|
flow_status:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowStatus"
|
|
raw_flow:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowValue"
|
|
is_flow_step:
|
|
type: boolean
|
|
language:
|
|
type: string
|
|
enum: [python3, deno, go, bash]
|
|
is_skipped:
|
|
type: boolean
|
|
email:
|
|
type: string
|
|
visible_to_owner:
|
|
type: boolean
|
|
required:
|
|
- id
|
|
- created_by
|
|
- duration_ms
|
|
- created_at
|
|
- started_at
|
|
- success
|
|
- canceled
|
|
- job_kind
|
|
- permissioned_as
|
|
- is_flow_step
|
|
- is_skipped
|
|
- email
|
|
- visible_to_owner
|
|
|
|
Job:
|
|
allOf:
|
|
- oneOf:
|
|
- $ref: "#/components/schemas/CompletedJob"
|
|
- $ref: "#/components/schemas/QueuedJob"
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum: [CompletedJob, QueuedJob]
|
|
discriminator:
|
|
propertyName: type
|
|
|
|
User:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
username:
|
|
type: string
|
|
is_admin:
|
|
type: boolean
|
|
is_super_admin:
|
|
type: boolean
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
operator:
|
|
type: boolean
|
|
disabled:
|
|
type: boolean
|
|
groups:
|
|
type: array
|
|
items:
|
|
type: string
|
|
folders:
|
|
type: array
|
|
items:
|
|
type: string
|
|
usage:
|
|
$ref: "#/components/schemas/Usage"
|
|
required:
|
|
- email
|
|
- username
|
|
- is_admin
|
|
- is_super_admin
|
|
- created_at
|
|
- operator
|
|
- disabled
|
|
- folders
|
|
|
|
Usage:
|
|
type: object
|
|
properties:
|
|
executions:
|
|
type: number
|
|
|
|
Login:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
password:
|
|
type: string
|
|
required:
|
|
- email
|
|
- password
|
|
|
|
NewUser:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
username:
|
|
type: string
|
|
is_admin:
|
|
type: boolean
|
|
required:
|
|
- email
|
|
- username
|
|
- is_admin
|
|
|
|
EditWorkspaceUser:
|
|
type: object
|
|
properties:
|
|
is_admin:
|
|
type: boolean
|
|
operator:
|
|
type: boolean
|
|
disabled:
|
|
type: boolean
|
|
|
|
TruncatedToken:
|
|
type: object
|
|
properties:
|
|
label:
|
|
type: string
|
|
expiration:
|
|
type: string
|
|
format: date-time
|
|
token_prefix:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
last_used_at:
|
|
type: string
|
|
format: date-time
|
|
required:
|
|
- token_prefix
|
|
- created_at
|
|
- last_used_at
|
|
|
|
NewToken:
|
|
type: object
|
|
properties:
|
|
label:
|
|
type: string
|
|
expiration:
|
|
type: string
|
|
format: date-time
|
|
|
|
ListableVariable:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
path:
|
|
type: string
|
|
value:
|
|
type: string
|
|
is_secret:
|
|
type: boolean
|
|
description:
|
|
type: string
|
|
account:
|
|
type: integer
|
|
is_oauth:
|
|
type: boolean
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
is_expired:
|
|
type: boolean
|
|
refresh_error:
|
|
type: string
|
|
is_linked:
|
|
type: boolean
|
|
is_refreshed:
|
|
type: boolean
|
|
required:
|
|
- workspace_id
|
|
- path
|
|
- is_secret
|
|
- extra_perms
|
|
|
|
ContextualVariable:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
description:
|
|
type: string
|
|
required:
|
|
- name
|
|
- value
|
|
- description
|
|
|
|
CreateVariable:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
value:
|
|
type: string
|
|
is_secret:
|
|
type: boolean
|
|
description:
|
|
type: string
|
|
account:
|
|
type: integer
|
|
is_oauth:
|
|
type: boolean
|
|
required:
|
|
- path
|
|
- value
|
|
- is_secret
|
|
- description
|
|
|
|
EditVariable:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
value:
|
|
type: string
|
|
is_secret:
|
|
type: boolean
|
|
description:
|
|
type: string
|
|
|
|
AuditLog:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
timestamp:
|
|
type: string
|
|
format: date-time
|
|
username:
|
|
type: string
|
|
operation:
|
|
type: string
|
|
enum:
|
|
- "jobs.run"
|
|
- "scripts.create"
|
|
- "scripts.update"
|
|
- "users.create"
|
|
- "users.delete"
|
|
- "users.setpassword"
|
|
- "users.update"
|
|
- "users.login"
|
|
- "users.token.create"
|
|
- "users.token.delete"
|
|
- "variables.create"
|
|
- "variables.delete"
|
|
- "variables.update"
|
|
action_kind:
|
|
type: string
|
|
enum: ["Created", "Updated", "Delete", "Execute"]
|
|
resource:
|
|
type: string
|
|
parameters:
|
|
type: object
|
|
required:
|
|
- id
|
|
- timestamp
|
|
- username
|
|
- operation
|
|
- action_kind
|
|
|
|
MainArgSignature:
|
|
type: object
|
|
properties:
|
|
star_args:
|
|
type: boolean
|
|
star_kwargs:
|
|
type: boolean
|
|
args:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
typ:
|
|
oneOf:
|
|
- type: string
|
|
enum:
|
|
[
|
|
"float",
|
|
"int",
|
|
"bool",
|
|
"email",
|
|
"unknown",
|
|
"bytes",
|
|
"dict",
|
|
"datetime",
|
|
"sql",
|
|
]
|
|
- type: object
|
|
properties:
|
|
resource:
|
|
type: string
|
|
nullable: true
|
|
required:
|
|
- resource
|
|
- type: object
|
|
properties:
|
|
str:
|
|
type: array
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
required:
|
|
- str
|
|
- type: object
|
|
properties:
|
|
object:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
typ:
|
|
oneOf:
|
|
- type: string
|
|
enum:
|
|
[
|
|
"float",
|
|
"int",
|
|
"bool",
|
|
"email",
|
|
"unknown",
|
|
"bytes",
|
|
"dict",
|
|
"datetime",
|
|
"sql",
|
|
]
|
|
- type: object
|
|
properties:
|
|
str: {}
|
|
required: [str]
|
|
required:
|
|
- key
|
|
- typ
|
|
required:
|
|
- object
|
|
- type: object
|
|
properties:
|
|
list:
|
|
oneOf:
|
|
- type: string
|
|
enum:
|
|
[
|
|
"float",
|
|
"int",
|
|
"bool",
|
|
"email",
|
|
"unknown",
|
|
"bytes",
|
|
"dict",
|
|
"datetime",
|
|
"sql",
|
|
]
|
|
- type: object
|
|
properties:
|
|
str: {}
|
|
required: [str]
|
|
nullable: true
|
|
required:
|
|
- list
|
|
has_default:
|
|
type: boolean
|
|
default: {}
|
|
required:
|
|
- name
|
|
- typ
|
|
required:
|
|
- star_args
|
|
- start_kwargs
|
|
- args
|
|
|
|
Preview:
|
|
type: object
|
|
properties:
|
|
content:
|
|
type: string
|
|
path:
|
|
type: string
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
language:
|
|
type: string
|
|
enum: [python3, deno, go, bash]
|
|
|
|
required:
|
|
- content
|
|
- args
|
|
- language
|
|
|
|
CreateResource:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
value: {}
|
|
description:
|
|
type: string
|
|
resource_type:
|
|
type: string
|
|
required:
|
|
- path
|
|
- value
|
|
- resource_type
|
|
|
|
EditResource:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
description:
|
|
type: string
|
|
value: {}
|
|
|
|
Resource:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
path:
|
|
type: string
|
|
description:
|
|
type: string
|
|
resource_type:
|
|
type: string
|
|
value: {}
|
|
is_oauth:
|
|
type: boolean
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
required:
|
|
- path
|
|
- resource_type
|
|
- is_oauth
|
|
|
|
ListableResource:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
path:
|
|
type: string
|
|
description:
|
|
type: string
|
|
resource_type:
|
|
type: string
|
|
value: {}
|
|
is_oauth:
|
|
type: boolean
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
is_expired:
|
|
type: boolean
|
|
refresh_error:
|
|
type: string
|
|
is_linked:
|
|
type: boolean
|
|
is_refreshed:
|
|
type: boolean
|
|
account:
|
|
type: number
|
|
required:
|
|
- path
|
|
- resource_type
|
|
- is_oauth
|
|
- is_linked
|
|
- is_refreshed
|
|
|
|
ResourceType:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
schema: {}
|
|
description:
|
|
type: string
|
|
required:
|
|
- name
|
|
|
|
EditResourceType:
|
|
type: object
|
|
properties:
|
|
schema:
|
|
type: string
|
|
description:
|
|
type: string
|
|
|
|
Schedule:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
edited_by:
|
|
type: string
|
|
edited_at:
|
|
type: string
|
|
format: date-time
|
|
schedule:
|
|
type: string
|
|
offset_:
|
|
type: integer
|
|
enabled:
|
|
type: boolean
|
|
script_path:
|
|
type: string
|
|
is_flow:
|
|
type: boolean
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
email:
|
|
type: string
|
|
error:
|
|
type: string
|
|
required:
|
|
- path
|
|
- edited_by
|
|
- edited_at
|
|
- schedule
|
|
- script_path
|
|
- offset_
|
|
- extra_perms
|
|
- is_flow
|
|
- enabled
|
|
- email
|
|
|
|
NewSchedule:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
schedule:
|
|
type: string
|
|
offset:
|
|
type: integer
|
|
script_path:
|
|
type: string
|
|
is_flow:
|
|
type: boolean
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
enabled:
|
|
type: boolean
|
|
required:
|
|
- path
|
|
- schedule
|
|
- script_path
|
|
- is_flow
|
|
- args
|
|
|
|
EditSchedule:
|
|
type: object
|
|
properties:
|
|
schedule:
|
|
type: string
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
required:
|
|
- schedule
|
|
- script_path
|
|
- is_flow
|
|
- args
|
|
|
|
Group:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
members:
|
|
type: array
|
|
items:
|
|
type: string
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
required:
|
|
- name
|
|
|
|
Folder:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
owners:
|
|
type: array
|
|
items:
|
|
type: string
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
required:
|
|
- name
|
|
- owners
|
|
- extra_perms
|
|
|
|
WorkerPing:
|
|
type: object
|
|
properties:
|
|
worker:
|
|
type: string
|
|
worker_instance:
|
|
type: string
|
|
ping_at:
|
|
type: string
|
|
format: date-time
|
|
started_at:
|
|
type: string
|
|
format: date-time
|
|
ip:
|
|
type: string
|
|
jobs_executed:
|
|
type: integer
|
|
required:
|
|
- worker
|
|
- worker_instance
|
|
- ping_at
|
|
- started_at
|
|
- ip
|
|
- jobs_executed
|
|
|
|
UserWorkspaceList:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
workspaces:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
username:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- username
|
|
required:
|
|
- email
|
|
- workspaces
|
|
|
|
CreateWorkspace:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
username:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- username
|
|
|
|
Workspace:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
owner:
|
|
type: string
|
|
domain:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- owner
|
|
|
|
WorkspaceInvite:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
email:
|
|
type: string
|
|
is_admin:
|
|
type: boolean
|
|
operator:
|
|
type: boolean
|
|
required:
|
|
- workspace_id
|
|
- email
|
|
- is_admin
|
|
- operator
|
|
|
|
GlobalUserInfo:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
login_type:
|
|
type: string
|
|
enum: ["password", "github"]
|
|
super_admin:
|
|
type: boolean
|
|
verified:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
company:
|
|
type: string
|
|
|
|
required:
|
|
- email
|
|
- login_type
|
|
- super_admin
|
|
- verified
|
|
|
|
Flow:
|
|
allOf:
|
|
- $ref: "../../openflow.openapi.yaml#/components/schemas/OpenFlow"
|
|
- $ref: "#/components/schemas/FlowMetadata"
|
|
|
|
FlowMetadata:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
path:
|
|
type: string
|
|
edited_by:
|
|
type: string
|
|
edited_at:
|
|
type: string
|
|
format: date-time
|
|
archived:
|
|
type: boolean
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
starred:
|
|
type: boolean
|
|
required:
|
|
- path
|
|
- edited_by
|
|
- edited_at
|
|
- archived
|
|
- extra_perms
|
|
|
|
OpenFlowWPath:
|
|
allOf:
|
|
- $ref: "../../openflow.openapi.yaml#/components/schemas/OpenFlow"
|
|
- type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
required:
|
|
- path
|
|
|
|
FlowPreview:
|
|
type: object
|
|
properties:
|
|
value:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowValue"
|
|
path:
|
|
type: string
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
required:
|
|
- value
|
|
- content
|
|
- args
|
|
|
|
Policy:
|
|
type: object
|
|
properties:
|
|
triggerables:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
execution_mode:
|
|
type: string
|
|
enum: [viewer, publisher, anonymous]
|
|
on_behalf_of:
|
|
type: string
|
|
on_behalf_of_email:
|
|
type: string
|
|
|
|
ListableApp:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
workspace_id:
|
|
type: string
|
|
path:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
version:
|
|
type: integer
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
starred:
|
|
type: boolean
|
|
edited_at:
|
|
type: string
|
|
format: date-time
|
|
execution_mode:
|
|
type: string
|
|
enum: [viewer, publisher, anonymous]
|
|
required:
|
|
- id
|
|
- workspace_id
|
|
- path
|
|
- summary
|
|
- version
|
|
- extra_perms
|
|
- edited_at
|
|
- execution_mode
|
|
AppWithLastVersion:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
workspace_id:
|
|
type: string
|
|
path:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
versions:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
created_by:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
value: {}
|
|
policy:
|
|
$ref: "#/components/schemas/Policy"
|
|
execution_mode:
|
|
type: string
|
|
enum: [viewer, publisher, anonymous]
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
required:
|
|
- id
|
|
- workspace_id
|
|
- path
|
|
- summary
|
|
- versions
|
|
- created_by
|
|
- created_at
|
|
- value
|
|
- policy
|
|
- execution_mode
|
|
- extra_perms
|
|
|
|
SlackToken:
|
|
type: object
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
team_id:
|
|
type: string
|
|
team_name:
|
|
type: string
|
|
bot:
|
|
type: object
|
|
properties:
|
|
bot_access_token:
|
|
type: string
|
|
required:
|
|
- access_token
|
|
- team_id
|
|
- team_name
|
|
- bot
|
|
|
|
TokenResponse:
|
|
type: object
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
expires_in:
|
|
type: integer
|
|
refresh_token:
|
|
type: string
|
|
scope:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
required:
|
|
- access_token
|