Files
windmill/backend/windmill-api/openapi-deref.yaml
Ruben Fiszel 15f1b7cf7d update openapi
2024-11-14 16:21:07 +01:00

15407 lines
423 KiB
YAML

openapi: 3.0.3
info:
version: 1.423.2
title: Windmill API
contact:
name: Windmill Team
email: contact@windmill.dev
url: https://windmill.dev
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
x-logo:
url: https://windmill.dev/img/windmill.svg
externalDocs:
description: documentation portal
url: https://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
/uptodate:
get:
summary: is backend up to date
operationId: backendUptodate
tags:
- settings
responses:
'200':
description: is backend up to date
content:
text/plain:
schema:
type: string
/ee_license:
get:
summary: get license id
operationId: getLicenseId
tags:
- settings
responses:
'200':
description: get license id (empty if not ee)
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:
- name: workspace
in: path
required: true
schema: &ref_0
type: string
- name: id
in: path
required: true
schema: &ref_30
type: integer
responses:
'200':
description: an audit log
content:
application/json:
schema:
type: object
properties: &ref_1
id:
type: integer
timestamp:
type: string
format: date-time
username:
type: string
operation:
type: string
enum:
- jobs.run
- jobs.run.script
- jobs.run.preview
- jobs.run.flow
- jobs.run.flow_preview
- jobs.run.script_hub
- jobs.run.dependencies
- jobs.run.identity
- jobs.run.noop
- jobs.flow_dependencies
- jobs
- jobs.cancel
- jobs.force_cancel
- jobs.disapproval
- jobs.delete
- account.delete
- ai.request
- resources.create
- resources.update
- resources.delete
- resource_types.create
- resource_types.update
- resource_types.delete
- schedule.create
- schedule.setenabled
- schedule.edit
- schedule.delete
- scripts.create
- scripts.update
- scripts.archive
- scripts.delete
- users.create
- users.delete
- users.update
- users.login
- users.login_failure
- users.logout
- users.accept_invite
- users.decline_invite
- users.token.create
- users.token.delete
- users.add_to_workspace
- users.add_global
- users.setpassword
- users.impersonate
- users.leave_workspace
- oauth.login
- oauth.login_failure
- oauth.signup
- variables.create
- variables.delete
- variables.update
- flows.create
- flows.update
- flows.delete
- flows.archive
- apps.create
- apps.update
- apps.delete
- folder.create
- folder.update
- folder.delete
- folder.add_owner
- folder.remove_owner
- group.create
- group.delete
- group.edit
- group.adduser
- group.removeuser
- igroup.create
- igroup.delete
- igroup.adduser
- igroup.removeuser
- variables.decrypt_secret
- workspaces.edit_command_script
- workspaces.edit_deploy_to
- workspaces.edit_auto_invite_domain
- workspaces.edit_webhook
- workspaces.edit_copilot_config
- workspaces.edit_error_handler
- workspaces.create
- workspaces.update
- workspaces.archive
- workspaces.unarchive
- workspaces.delete
action_kind:
type: string
enum:
- Created
- Updated
- Delete
- Execute
resource:
type: string
parameters:
type: object
required: &ref_2
- id
- timestamp
- username
- operation
- action_kind
/w/{workspace}/audit/list:
get:
summary: list audit logs (requires admin privilege)
operationId: listAuditLogs
tags:
- audit
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: &ref_5
type: integer
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: &ref_6
type: integer
- name: before
description: filter on started before (inclusive) timestamp
in: query
schema: &ref_120
type: string
format: date-time
- name: after
description: filter on created after (exclusive) timestamp
in: query
schema: &ref_121
type: string
format: date-time
- name: username
description: filter on exact username of user
in: query
schema: &ref_130
type: string
- name: operation
description: filter on exact or prefix name of operation
in: query
schema: &ref_131
type: string
- name: operations
in: query
description: comma separated list of exact operations to include
schema:
type: string
- name: exclude_operations
in: query
description: comma separated list of operations to exclude
schema:
type: string
- name: resource
description: filter on exact or prefix name of resource
in: query
schema: &ref_132
type: string
- name: action_kind
description: filter on type of operation
in: query
schema: &ref_133
type: string
enum:
- Create
- Update
- Delete
- Execute
responses:
'200':
description: a list of audit logs
content:
application/json:
schema:
type: array
items:
type: object
properties: *ref_1
required: *ref_2
/auth/login:
post:
security: []
summary: login with password
operationId: login
tags:
- user
requestBody:
description: credentials
required: true
content:
application/json:
schema:
type: object
properties: &ref_145
email:
type: string
password:
type: string
required: &ref_146
- email
- password
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/get/{username}:
get:
summary: get user (require admin privilege)
operationId: getUser
tags:
- user
- admin
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: username
in: path
required: true
schema:
type: string
responses:
'200':
description: user created
content:
application/json:
schema:
type: object
properties: &ref_10
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
folders_owners:
type: array
items:
type: string
required: &ref_11
- email
- username
- is_admin
- is_super_admin
- created_at
- operator
- disabled
- folders
- folders_owners
/w/{workspace}/users/update/{username}:
post:
summary: update user (require admin privilege)
operationId: updateUser
tags:
- user
- admin
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: username
in: path
required: true
schema:
type: string
requestBody:
description: new user
required: true
content:
application/json:
schema:
type: object
properties: &ref_147
is_admin:
type: boolean
operator:
type: boolean
disabled:
type: boolean
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: &ref_23
type: string
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/set_password_of/{user}:
post:
summary: set password for a specific user (require super admin)
operationId: setPasswordForUser
tags:
- user
parameters:
- name: user
in: path
required: true
schema:
type: string
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/set_login_type/{user}:
post:
summary: set login type for a specific user (require super admin)
operationId: setLoginTypeForUser
tags:
- user
parameters:
- name: user
in: path
required: true
schema:
type: string
requestBody:
description: set login type
required: true
content:
application/json:
schema:
type: object
properties:
login_type:
type: string
required:
- login_type
responses:
'200':
description: login type 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
name:
type: string
responses:
'200':
description: user updated
content:
text/plain:
schema:
type: string
/users/username_info/{email}:
get:
summary: global username info (require super admin)
operationId: globalUsernameInfo
tags:
- user
parameters:
- name: email
in: path
required: true
schema:
type: string
responses:
'200':
description: user renamed
content:
application/json:
schema:
type: object
properties:
username:
type: string
workspace_usernames:
type: array
items:
type: object
properties:
workspace_id:
type: string
username:
type: string
required:
- workspace_id
- username
required:
- username
- workspace_usernames
/users/rename/{email}:
post:
summary: global rename user (require super admin)
operationId: globalUserRename
tags:
- user
parameters:
- name: email
in: path
required: true
schema:
type: string
requestBody:
description: new username
required: true
content:
application/json:
schema:
type: object
properties:
new_username:
type: string
required:
- new_username
responses:
'200':
description: user renamed
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
/users/overwrite:
post:
summary: global overwrite users (require super admin and EE)
operationId: globalUsersOverwrite
tags:
- user
requestBody:
description: List of users
required: true
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_3
email:
type: string
password_hash:
type: string
super_admin:
type: boolean
verified:
type: boolean
name:
type: string
company:
type: string
first_time_user:
type: boolean
username:
type: string
required: &ref_4
- email
- super_admin
- verified
- first_time_user
responses:
'200':
description: Success message
content:
text/plain:
schema:
type: string
/users/export:
get:
summary: global export users (require super admin and EE)
operationId: globalUsersExport
tags:
- user
responses:
'200':
description: exported users
content:
application/json:
schema:
type: array
items:
type: object
properties: *ref_3
required: *ref_4
/w/{workspace}/users/delete/{username}:
delete:
summary: delete user (require admin privilege)
operationId: deleteUser
tags:
- user
- admin
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- 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:
type: object
properties: &ref_7
id:
type: string
name:
type: string
owner:
type: string
domain:
type: string
required: &ref_8
- id
- name
- owner
/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:
type: object
properties: &ref_185
email:
type: string
workspaces:
type: array
items:
type: object
properties:
id:
type: string
name:
type: string
username:
type: string
required:
- id
- name
- username
required: &ref_186
- email
- workspaces
/workspaces/list_as_superadmin:
get:
summary: list all workspaces as super admin (require to be super admin)
operationId: listWorkspacesAsSuperAdmin
tags:
- workspace
parameters:
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
responses:
'200':
description: workspaces
content:
application/json:
schema:
type: array
items:
type: object
properties: *ref_7
required: *ref_8
/workspaces/create:
post:
summary: create workspace
operationId: createWorkspace
tags:
- workspace
requestBody:
description: new token
required: true
content:
application/json:
schema:
type: object
properties: &ref_187
id:
type: string
name:
type: string
username:
type: string
required: &ref_188
- id
- name
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
/settings/global/{key}:
get:
summary: get global settings
operationId: getGlobal
tags:
- setting
parameters:
- name: key
in: path
required: true
schema: &ref_9
type: string
responses:
'200':
description: status
content:
application/json:
schema: {}
post:
summary: post global settings
operationId: setGlobal
tags:
- setting
parameters:
- name: key
in: path
required: true
schema: *ref_9
requestBody:
description: value set
required: true
content:
application/json:
schema:
type: object
properties:
value: {}
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/settings/local:
get:
summary: get local settings
operationId: getLocal
tags:
- setting
responses:
'200':
description: status
content:
application/json:
schema: {}
/settings/test_smtp:
post:
summary: test smtp
operationId: testSmtp
tags:
- setting
requestBody:
description: test smtp payload
required: true
content:
application/json:
schema:
type: object
properties:
to:
type: string
smtp:
type: object
properties:
host:
type: string
username:
type: string
password:
type: string
port:
type: integer
from:
type: string
tls_implicit:
type: boolean
disable_tls:
type: boolean
required:
- host
- username
- password
- port
- from
- tls_implicit
- disable_tls
required:
- to
- smtp
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/settings/test_critical_channels:
post:
summary: test critical channels
operationId: testCriticalChannels
tags:
- setting
requestBody:
description: test critical channel payload
required: true
content:
application/json:
schema:
type: array
items:
type: object
properties:
email:
type: string
slack_channel:
type: string
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/settings/critical_alerts:
get:
summary: Get all critical alerts
operationId: getCriticalAlerts
tags:
- setting
parameters:
- in: query
name: page
schema:
type: integer
default: 1
description: The page number to retrieve (minimum value is 1)
- in: query
name: page_size
schema:
type: integer
default: 10
maximum: 100
description: Number of alerts per page (maximum is 100)
- in: query
name: acknowledged
schema:
type: boolean
nullable: true
description: >-
Filter by acknowledgment status; true for acknowledged, false for
unacknowledged, and omit for all alerts
responses:
'200':
description: Successfully retrieved all critical alerts
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_230
id:
type: integer
description: Unique identifier for the alert
alert_type:
type: string
description: Type of alert (e.g., critical_error)
message:
type: string
description: The message content of the alert
created_at:
type: string
format: date-time
description: Time when the alert was created
acknowledged:
type: boolean
nullable: true
description: >-
Acknowledgment status of the alert, can be true, false,
or null if not set
/settings/critical_alerts/{id}/acknowledge:
post:
summary: Acknowledge a critical alert
operationId: acknowledgeCriticalAlert
tags:
- setting
parameters:
- in: path
name: id
required: true
schema:
type: integer
description: The ID of the critical alert to acknowledge
responses:
'200':
description: Successfully acknowledged the critical alert
content:
application/json:
schema:
type: string
example: Critical alert acknowledged
/settings/critical_alerts/acknowledge_all:
post:
summary: Acknowledge all unacknowledged critical alerts
operationId: acknowledgeAllCriticalAlerts
tags:
- setting
responses:
'200':
description: Successfully acknowledged all unacknowledged critical alerts.
content:
application/json:
schema:
type: string
example: All unacknowledged critical alerts acknowledged
/settings/test_license_key:
post:
summary: test license key
operationId: testLicenseKey
tags:
- setting
requestBody:
description: test license key
required: true
content:
application/json:
schema:
type: object
properties:
license_key:
type: string
required:
- license_key
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/settings/test_object_storage_config:
post:
summary: test object storage config
operationId: testObjectStorageConfig
tags:
- setting
requestBody:
description: test object storage config
required: true
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/settings/send_stats:
post:
summary: send stats
operationId: sendStats
tags:
- setting
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/settings/latest_key_renewal_attempt:
get:
summary: get latest key renewal attempt
operationId: getLatestKeyRenewalAttempt
tags:
- setting
responses:
'200':
description: status
content:
application/json:
schema:
type: object
properties:
result:
type: string
attempted_at:
type: string
format: date-time
required:
- result
- attempted_at
nullable: true
/settings/renew_license_key:
post:
summary: renew license key
operationId: renewLicenseKey
tags:
- setting
parameters:
- name: license_key
in: query
required: false
schema:
type: string
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/settings/customer_portal:
post:
summary: create customer portal session
operationId: createCustomerPortalSession
tags:
- setting
parameters:
- name: license_key
in: query
required: false
schema:
type: string
responses:
'200':
description: url to portal
content:
text/plain:
schema:
type: string
/saml/test_metadata:
post:
summary: test metadata
operationId: testMetadata
tags:
- setting
requestBody:
description: test metadata
required: true
content:
application/json:
schema:
type: string
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/settings/list_global:
get:
summary: list global settings
operationId: listGlobalSettings
tags:
- setting
responses:
'200':
description: list of settings
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_223
name:
type: string
value:
type: object
required: &ref_224
- name
- value
/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/refresh_token:
get:
summary: refresh the current token
operationId: refreshUserToken
tags:
- user
responses:
'200':
description: free usage
content:
text/plain:
schema:
type: string
/users/tutorial_progress:
get:
summary: get tutorial progress
operationId: getTutorialProgress
tags:
- user
responses:
'200':
description: tutorial progress
content:
application/json:
schema:
type: object
properties:
progress:
type: integer
post:
summary: update tutorial progress
operationId: updateTutorialProgress
tags:
- user
requestBody:
description: progress update
required: true
content:
application/json:
schema:
type: object
properties:
progress:
type: integer
responses:
'200':
description: tutorial progress
content:
text/plain:
schema:
type: string
/users/leave_instance:
post:
summary: leave instance
operationId: leaveInstance
tags:
- user
responses:
'200':
description: status
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/all_runnables:
get:
summary: get all runnables in every workspace
operationId: getRunnable
tags:
- user
responses:
'200':
description: free all runnables
content:
application/json:
schema:
type: object
properties:
workspace:
type: string
endpoint_async:
type: string
endpoint_sync:
type: string
endpoint_openai_sync:
type: string
summary:
type: string
description:
type: string
kind:
type: string
required:
- workspace
- endpoint_async
- endpoint_sync
- endpoint_openai_sync
- summary
- kind
/users/whoami:
get:
summary: get current global whoami (if logged in)
operationId: globalWhoami
tags:
- user
responses:
'200':
description: user email
content:
application/json:
schema:
type: object
properties: &ref_12
email:
type: string
login_type:
type: string
enum:
- password
- github
super_admin:
type: boolean
verified:
type: boolean
name:
type: string
company:
type: string
username:
type: string
operator_only:
type: boolean
required: &ref_13
- email
- login_type
- super_admin
- verified
/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:
type: object
properties: &ref_14
workspace_id:
type: string
email:
type: string
is_admin:
type: boolean
operator:
type: boolean
required: &ref_15
- workspace_id
- email
- is_admin
- operator
/w/{workspace}/users/whoami:
get:
summary: whoami
operationId: whoami
tags:
- user
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: user
content:
application/json:
schema:
type: object
properties: *ref_10
required: *ref_11
/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
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:
- name: workspace
in: path
required: true
schema: *ref_0
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:
- name: workspace
in: path
required: true
schema: *ref_0
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
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:
- name: workspace
in: path
required: true
schema: *ref_0
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:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/workspaces/unarchive/{workspace}:
post:
summary: unarchive workspace
operationId: unarchiveWorkspace
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
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:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/w/{workspace}/workspaces/leave:
post:
summary: leave workspace
operationId: leaveWorkspace
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/w/{workspace}/workspaces/get_workspace_name:
get:
summary: get workspace name
operationId: getWorkspaceName
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/w/{workspace}/workspaces/change_workspace_name:
post:
summary: change workspace name
operationId: changeWorkspaceName
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
content:
application/json:
schema:
type: object
properties:
new_name:
type: string
required:
- username
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/w/{workspace}/workspaces/change_workspace_id:
post:
summary: change workspace id
operationId: changeWorkspaceId
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
content:
application/json:
schema:
type: object
properties:
new_id:
type: string
new_name:
type: string
required:
- username
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/w/{workspace}/users/whois/{username}:
get:
summary: whois
operationId: whois
tags:
- user
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: username
in: path
required: true
schema:
type: string
responses:
'200':
description: user
content:
application/json:
schema:
type: object
properties: *ref_10
required: *ref_11
/users/exists/{email}:
get:
summary: exists email
operationId: existsEmail
tags:
- user
parameters:
- name: email
in: path
required: true
schema:
type: string
responses:
'200':
description: user
content:
application/json:
schema:
type: boolean
/users/list_as_super_admin:
get:
summary: list all users as super admin (require to be super amdin)
operationId: listUsersAsSuperAdmin
tags:
- user
parameters:
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
- name: active_only
in: query
description: filter only active users
schema:
type: boolean
responses:
'200':
description: user
content:
application/json:
schema:
type: array
items:
type: object
properties: *ref_12
required: *ref_13
/w/{workspace}/workspaces/list_pending_invites:
get:
summary: list pending invites for a workspace
operationId: listPendingInvites
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: user
content:
application/json:
schema:
type: array
items:
type: object
properties: *ref_14
required: *ref_15
/w/{workspace}/workspaces/get_settings:
get:
summary: get settings
operationId: getSettings
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
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
auto_add:
type: boolean
plan:
type: string
automatic_billing:
type: boolean
customer_id:
type: string
webhook:
type: string
deploy_to:
type: string
ai_resource:
type: object
properties: &ref_16
path:
type: string
provider:
type: string
required: &ref_17
- path
- provider
code_completion_enabled:
type: boolean
error_handler:
type: string
error_handler_extra_args:
type: object
additionalProperties: &ref_18 {}
error_handler_muted_on_cancel:
type: boolean
large_file_storage:
type: object
properties: &ref_19
type:
type: string
enum:
- S3Storage
- AzureBlobStorage
- AzureWorkloadIdentity
- S3AwsOidc
s3_resource_path:
type: string
azure_blob_resource_path:
type: string
public_resource:
type: boolean
secondary_storage:
type: object
additionalProperties:
type: object
properties:
type:
type: string
enum:
- S3Storage
- AzureBlobStorage
- AzureWorkloadIdentity
- S3AwsOidc
s3_resource_path:
type: string
azure_blob_resource_path:
type: string
public_resource:
type: boolean
git_sync:
type: object
properties: &ref_20
include_path:
type: array
items:
type: string
include_type:
type: array
items:
type: string
enum:
- script
- flow
- app
- folder
- resource
- variable
- secret
- resourcetype
- schedule
- user
- group
repositories:
type: array
items:
type: object
properties: &ref_207
script_path:
type: string
git_repo_resource_path:
type: string
use_individual_branch:
type: boolean
group_by_folder:
type: boolean
exclude_types_override:
type: array
items:
type: string
enum:
- script
- flow
- app
- folder
- resource
- variable
- secret
- resourcetype
- schedule
- user
- group
required: &ref_208
- script_path
- git_repo_resource_path
deploy_ui:
type: object
properties: &ref_21
include_path:
type: array
items:
type: string
include_type:
type: array
items:
type: string
enum:
- script
- flow
- app
- resource
- variable
- secret
default_app:
type: string
default_scripts:
type: object
properties: &ref_22
order:
type: array
items:
type: string
hidden:
type: array
items:
type: string
default_script_content:
additionalProperties:
type: string
required:
- code_completion_enabled
- automatic_billing
- error_handler_muted_on_cancel
/w/{workspace}/workspaces/get_deploy_to:
get:
summary: get deploy to
operationId: getDeployTo
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: status
content:
application/json:
schema:
type: object
properties:
deploy_to:
type: string
/w/{workspace}/workspaces/is_premium:
get:
summary: get if workspace is premium
operationId: getIsPremium
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: status
content:
application/json:
schema:
type: boolean
/w/{workspace}/workspaces/premium_info:
get:
summary: get premium info
operationId: getPremiumInfo
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: status
content:
application/json:
schema:
type: object
properties:
premium:
type: boolean
usage:
type: number
seats:
type: number
automatic_billing:
type: boolean
required:
- premium
- automatic_billing
/w/{workspace}/workspaces/set_automatic_billing:
post:
summary: set automatic billing
operationId: setAutomaticBilling
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: automatic billing
required: true
content:
application/json:
schema:
type: object
properties:
automatic_billing:
type: boolean
seats:
type: number
required:
- automatic_billing
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/w/{workspace}/workspaces/edit_slack_command:
post:
summary: edit slack command
operationId: editSlackCommand
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
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/run_slack_message_test_job:
post:
summary: run a job that sends a message to Slack
operationId: runSlackMessageTestJob
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: path to hub script to run and its corresponding args
required: true
content:
application/json:
schema:
type: object
properties:
hub_script_path:
type: string
channel:
type: string
test_msg:
type: string
responses:
'200':
description: status
content:
text/json:
schema:
type: object
properties:
job_uuid:
type: string
/w/{workspace}/workspaces/edit_deploy_to:
post:
summary: edit deploy to
operationId: editDeployTo
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
deploy_to:
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:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: WorkspaceInvite
required: true
content:
application/json:
schema:
type: object
properties:
operator:
type: boolean
invite_all:
type: boolean
auto_add:
type: boolean
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/w/{workspace}/workspaces/edit_webhook:
post:
summary: edit webhook
operationId: editWebhook
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: WorkspaceWebhook
required: true
content:
application/json:
schema:
type: object
properties:
webhook:
type: string
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/w/{workspace}/workspaces/edit_copilot_config:
post:
summary: edit copilot config
operationId: editCopilotConfig
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: WorkspaceCopilotConfig
required: true
content:
application/json:
schema:
type: object
required:
- code_completion_enabled
properties:
ai_resource:
type: object
properties: *ref_16
required: *ref_17
code_completion_enabled:
type: boolean
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/w/{workspace}/workspaces/get_copilot_info:
get:
summary: get copilot info
operationId: getCopilotInfo
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: status
content:
text/plain:
schema:
type: object
properties:
ai_provider:
type: string
exists_ai_resource:
type: boolean
code_completion_enabled:
type: boolean
required:
- ai_provider
- exists_ai_resource
- code_completion_enabled
/w/{workspace}/workspaces/edit_error_handler:
post:
summary: edit error handler
operationId: editErrorHandler
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: WorkspaceErrorHandler
required: true
content:
application/json:
schema:
type: object
properties:
error_handler:
type: string
error_handler_extra_args:
type: object
additionalProperties: *ref_18
error_handler_muted_on_cancel:
type: boolean
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/w/{workspace}/workspaces/edit_large_file_storage_config:
post:
summary: edit large file storage settings
operationId: editLargeFileStorageConfig
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: LargeFileStorage info
required: true
content:
application/json:
schema:
type: object
properties:
large_file_storage:
type: object
properties: *ref_19
responses:
'200':
description: status
content:
application/json:
schema: {}
/w/{workspace}/workspaces/edit_git_sync_config:
post:
summary: edit workspace git sync settings
operationId: editWorkspaceGitSyncConfig
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: Workspace Git sync settings
required: true
content:
application/json:
schema:
type: object
properties:
git_sync_settings:
type: object
properties: *ref_20
responses:
'200':
description: status
content:
application/json:
schema: {}
/w/{workspace}/workspaces/edit_deploy_ui_config:
post:
summary: edit workspace deploy ui settings
operationId: editWorkspaceDeployUISettings
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: Workspace deploy UI settings
required: true
content:
application/json:
schema:
type: object
properties:
deploy_ui_settings:
type: object
properties: *ref_21
responses:
'200':
description: status
content:
application/json:
schema: {}
/w/{workspace}/workspaces/edit_default_app:
post:
summary: edit default app for workspace
operationId: editWorkspaceDefaultApp
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: Workspace default app
required: true
content:
application/json:
schema:
type: object
properties:
default_app_path:
type: string
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/w/{workspace}/workspaces/default_scripts:
post:
summary: edit default scripts for workspace
operationId: editDefaultScripts
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: Workspace default app
content:
application/json:
schema:
type: object
properties: *ref_22
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
get:
summary: get default scripts for workspace
operationId: get default scripts
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: status
content:
application/json:
schema:
type: object
properties: *ref_22
/w/{workspace}/workspaces/set_environment_variable:
post:
summary: set environment variable
operationId: setEnvironmentVariable
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: Workspace default app
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
value:
type: string
required:
- name
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/w/{workspace}/workspaces/encryption_key:
get:
summary: retrieves the encryption key for this workspace
operationId: getWorkspaceEncryptionKey
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: status
content:
application/json:
schema:
type: object
properties:
key:
type: string
required:
- key
post:
summary: update the encryption key for this workspace
operationId: setWorkspaceEncryptionKey
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: New encryption key
required: true
content:
application/json:
schema:
type: object
properties:
new_key:
type: string
skip_reencrypt:
type: boolean
required:
- new_key
responses:
'200':
description: status
content:
text/plain:
schema:
type: string
/w/{workspace}/workspaces/default_app:
get:
summary: get default app for workspace
operationId: getWorkspaceDefaultApp
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: status
content:
application/json:
schema:
type: object
properties:
default_app_path:
type: string
/w/{workspace}/workspaces/get_large_file_storage_config:
get:
summary: get large file storage config
operationId: getLargeFileStorageConfig
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: status
content:
application/json:
schema:
type: object
properties: *ref_19
/w/{workspace}/workspaces/usage:
get:
summary: get usage
operationId: getWorkspaceUsage
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: usage
content:
text/plain:
schema:
type: number
/w/{workspace}/workspaces/used_triggers:
get:
summary: get used triggers
operationId: getUsedTriggers
tags:
- workspace
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: status
content:
application/json:
schema:
type: object
properties:
http_routes_used:
type: boolean
websocket_used:
type: boolean
required:
- http_routes_used
- websocket_used
/w/{workspace}/users/list:
get:
summary: list users
operationId: listUsers
tags:
- user
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: user
content:
application/json:
schema:
type: array
items:
type: object
properties: *ref_10
required: *ref_11
/w/{workspace}/users/list_usage:
get:
summary: list users usage
operationId: listUsersUsage
tags:
- user
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: user
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_144
email:
type: string
executions:
type: number
/w/{workspace}/users/list_usernames:
get:
summary: list usernames
operationId: listUsernames
tags:
- user
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: user
content:
application/json:
schema:
type: array
items:
type: string
/w/{workspace}/users/username_to_email/{username}:
get:
summary: get email from username
operationId: usernameToEmail
tags:
- user
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: username
in: path
required: true
schema:
type: string
responses:
'200':
description: email
content:
text/plain:
schema:
type: string
/users/tokens/create:
post:
summary: create token
operationId: createToken
tags:
- user
requestBody:
description: new token
required: true
content:
application/json:
schema:
type: object
properties: &ref_148
label:
type: string
expiration:
type: string
format: date-time
scopes:
type: array
items:
type: string
workspace_id:
type: string
responses:
'201':
description: token created
content:
text/plain:
schema:
type: string
/users/tokens/impersonate:
post:
summary: create token to impersonate a user (require superadmin)
operationId: createTokenImpersonate
tags:
- user
requestBody:
description: new token
required: true
content:
application/json:
schema:
type: object
properties: &ref_149
label:
type: string
expiration:
type: string
format: date-time
impersonate_email:
type: string
workspace_id:
type: string
required: &ref_150
- impersonate_email
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
parameters:
- name: exclude_ephemeral
in: query
schema:
type: boolean
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
responses:
'200':
description: truncated token
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_40
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
scopes:
type: array
items:
type: string
email:
type: string
required: &ref_41
- token_prefix
- created_at
- last_used_at
/w/{workspace}/oidc/token/{audience}:
post:
summary: get OIDC token (ee only)
operationId: getOidcToken
tags:
- oidc
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: audience
in: path
required: true
schema:
type: string
responses:
'200':
description: new oidc token
content:
text/plain:
schema:
type: string
/w/{workspace}/variables/create:
post:
summary: create variable
operationId: createVariable
tags:
- variable
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: already_encrypted
in: query
schema:
type: boolean
requestBody:
description: new variable
required: true
content:
application/json:
schema:
type: object
properties: &ref_153
path:
type: string
value:
type: string
is_secret:
type: boolean
description:
type: string
account:
type: integer
is_oauth:
type: boolean
expires_at:
type: string
format: date-time
required: &ref_154
- path
- value
- is_secret
- description
responses:
'201':
description: variable created
content:
text/plain:
schema:
type: string
/w/{workspace}/variables/encrypt:
post:
summary: encrypt value
operationId: encryptValue
tags:
- variable
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: new variable
required: true
content:
application/json:
schema:
type: string
responses:
'200':
description: encrypted value
content:
text/plain:
schema:
type: string
/w/{workspace}/variables/delete/{path}:
delete:
summary: delete variable
operationId: deleteVariable
tags:
- variable
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
- name: already_encrypted
in: query
schema:
type: boolean
requestBody:
description: updated variable
required: true
content:
application/json:
schema:
type: object
properties: &ref_155
path:
type: string
value:
type: string
is_secret:
type: boolean
description:
type: string
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
- 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
- name: include_encrypted
description: >
ask to include the encrypted value if secret and decrypt secret is
not true (default: false)
in: query
schema:
type: boolean
responses:
'200':
description: variable
content:
application/json:
schema:
type: object
properties: &ref_24
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
expires_at:
type: string
format: date-time
required: &ref_25
- workspace_id
- path
- is_secret
- extra_perms
/w/{workspace}/variables/get_value/{path}:
get:
summary: get variable value
operationId: getVariableValue
tags:
- variable
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
responses:
'200':
description: variable
content:
application/json:
schema:
type: string
/w/{workspace}/variables/exists/{path}:
get:
summary: does variable exists at path
operationId: existsVariable
tags:
- variable
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
responses:
'200':
description: variable
content:
application/json:
schema:
type: boolean
/w/{workspace}/variables/list:
get:
summary: list variables
operationId: listVariable
tags:
- variable
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path_start
in: query
schema:
type: string
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
responses:
'200':
description: variable list
content:
application/json:
schema:
type: array
items:
type: object
properties: *ref_24
required: *ref_25
/w/{workspace}/variables/list_contextual:
get:
summary: list contextual variables
operationId: listContextualVariables
tags:
- variable
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: contextual variable list
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_151
name:
type: string
value:
type: string
description:
type: string
is_custom:
type: boolean
required: &ref_152
- name
- value
- description
- is_custom
/oauth/login_callback/{client_name}:
post:
security: []
summary: login with oauth authorization flow
operationId: loginWithOauth
tags:
- user
parameters:
- name: client_name
in: path
required: true
schema: &ref_26
type: string
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:
- name: workspace
in: path
required: true
schema: *ref_0
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_slack_callback:
post:
summary: connect slack callback instance
operationId: connectSlackCallbackInstance
tags:
- oauth
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: success message
content:
text/plain:
schema:
type: string
/oauth/connect_callback/{client_name}:
post:
summary: connect callback
operationId: connectCallback
tags:
- oauth
parameters:
- name: client_name
in: path
required: true
schema: *ref_26
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:
type: object
properties: &ref_200
access_token:
type: string
expires_in:
type: integer
refresh_token:
type: string
scope:
type: array
items:
type: string
required: &ref_201
- access_token
/w/{workspace}/oauth/create_account:
post:
summary: create OAuth account
operationId: createAccount
tags:
- oauth
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: code endpoint
required: true
content:
application/json:
schema:
type: object
properties:
refresh_token:
type: string
expires_in:
type: integer
client:
type: string
required:
- expires_in
- 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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: &ref_27
type: integer
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_27
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:
- name: workspace
in: path
required: true
schema: *ref_0
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 and saml login clients
content:
application/json:
schema:
type: object
properties:
oauth:
type: array
items:
type: object
properties:
type:
type: string
display_name:
type: string
required:
- type
saml:
type: string
required:
- oauth
/oauth/list_connects:
get:
summary: list oauth connects
operationId: listOAuthConnects
tags:
- oauth
responses:
'200':
description: list of oauth connects clients
content:
application/json:
schema:
type: array
items:
type: string
/oauth/get_connect/{client}:
get:
summary: get oauth connect
operationId: getOAuthConnect
tags:
- oauth
parameters:
- name: client
description: client name
in: path
required: true
schema:
type: string
responses:
'200':
description: get
content:
application/json:
schema:
type: object
properties:
extra_params:
type: object
scopes:
type: array
items:
type: string
/w/{workspace}/resources/create:
post:
summary: create resource
operationId: createResource
tags:
- resource
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: update_if_exists
in: query
schema:
type: boolean
requestBody:
description: new resource
required: true
content:
application/json:
schema:
type: object
properties: &ref_162
path:
type: string
value: {}
description:
type: string
resource_type:
type: string
required: &ref_163
- path
- value
- resource_type
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
requestBody:
description: updated resource
required: true
content:
application/json:
schema:
type: object
properties: &ref_164
path:
type: string
description:
type: string
value: {}
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
responses:
'200':
description: resource
content:
application/json:
schema:
type: object
properties: &ref_165
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
created_by:
type: string
edited_at:
type: string
format: date-time
required: &ref_166
- path
- resource_type
- is_oauth
/w/{workspace}/resources/get_value_interpolated/{path}:
get:
summary: get resource interpolated (variables and resources are fully unrolled)
operationId: getResourceValueInterpolated
tags:
- resource
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
- name: job_id
description: job id
in: query
schema:
type: string
format: uuid
responses:
'200':
description: resource value
content:
application/json:
schema: {}
/w/{workspace}/resources/get_value/{path}:
get:
summary: get resource value
operationId: getResourceValue
tags:
- resource
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
responses:
'200':
description: resource value
content:
application/json:
schema: {}
/w/{workspace}/resources/exists/{path}:
get:
summary: does resource exists
operationId: existsResource
tags:
- resource
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
- 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
- name: path_start
in: query
schema:
type: string
responses:
'200':
description: resource list
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_167
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
created_by:
type: string
edited_at:
type: string
format: date-time
required: &ref_168
- path
- resource_type
- is_oauth
- is_linked
- is_refreshed
/w/{workspace}/resources/list_search:
get:
summary: list resources for search
operationId: listSearchResource
tags:
- resource
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: resource list
content:
application/json:
schema:
type: array
items:
type: object
properties:
path:
type: string
value: {}
required:
- path
- value
/w/{workspace}/resources/list_names/{name}:
get:
summary: list resource names
operationId: listResourceNames
tags:
- resource
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: name
in: path
required: true
schema: &ref_103
type: string
responses:
'200':
description: resource list names
content:
application/json:
schema:
type: array
items:
type: object
properties:
name:
type: string
path:
type: string
required:
- name
- path
/w/{workspace}/resources/type/create:
post:
summary: create resource_type
operationId: createResourceType
tags:
- resource
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: new resource_type
required: true
content:
application/json:
schema:
type: object
properties: &ref_28
workspace_id:
type: string
name:
type: string
schema: {}
description:
type: string
created_by:
type: string
edited_at:
type: string
format: date-time
format_extension:
type: string
required: &ref_29
- name
responses:
'201':
description: resource_type created
content:
text/plain:
schema:
type: string
/w/{workspace}/resources/file_resource_type_to_file_ext_map:
get:
summary: get map from resource type to format extension
operationId: fileResourceTypeToFileExtMap
tags:
- resource
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: map from resource type to file ext
content:
application/json:
schema: {}
/w/{workspace}/resources/type/delete/{path}:
delete:
summary: delete resource_type
operationId: deleteResourceType
tags:
- resource
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
requestBody:
description: updated resource_type
required: true
content:
application/json:
schema:
type: object
properties: &ref_169
schema: {}
description:
type: string
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
responses:
'200':
description: resource_type deleted
content:
application/json:
schema:
type: object
properties: *ref_28
required: *ref_29
/w/{workspace}/resources/type/exists/{path}:
get:
summary: does resource_type exists
operationId: existsResourceType
tags:
- resource
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
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:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: resource_type list
content:
application/json:
schema:
type: array
items:
type: object
properties: *ref_28
required: *ref_29
/w/{workspace}/resources/type/listnames:
get:
summary: list resource_types names
operationId: listResourceTypeNames
tags:
- resource
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: resource_type list
content:
application/json:
schema:
type: array
items:
type: string
/w/{workspace}/embeddings/query_resource_types:
get:
summary: query resource types by similarity
operationId: queryResourceTypes
tags:
- resource
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: text
description: query text
in: query
required: true
schema:
type: string
- name: limit
description: query limit
in: query
required: false
schema:
type: number
responses:
'200':
description: resource type details
content:
application/json:
schema:
type: array
items:
type: object
properties:
name:
type: string
score:
type: number
schema: {}
required:
- name
- score
/integrations/hub/list:
get:
summary: list hub integrations
operationId: listHubIntegrations
tags:
- integration
parameters:
- name: kind
description: query integrations kind
in: query
required: false
schema:
type: string
responses:
'200':
description: integrations details
content:
application/json:
schema:
type: array
items:
type: object
properties:
name:
type: string
required:
- name
/flows/hub/list:
get:
summary: list all 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:
- name: id
in: path
required: true
schema: *ref_30
responses:
'200':
description: flow
content:
application/json:
schema:
type: object
properties:
flow:
type: object
properties: &ref_54
summary:
type: string
description:
type: string
value:
type: object
properties: &ref_66
modules:
type: array
items:
type: object
properties: &ref_33
id:
type: string
value:
oneOf: &ref_251
- type: object
properties: &ref_235
input_transforms:
type: object
additionalProperties:
oneOf: &ref_31
- type: object
properties: &ref_231
value: {}
type:
type: string
enum:
- javascript
required: &ref_232
- expr
- type
- type: object
properties: &ref_233
expr:
type: string
type:
type: string
enum:
- javascript
required: &ref_234
- expr
- type
discriminator: &ref_32
propertyName: type
mapping:
static: '#/components/schemas/StaticTransform'
javascript: '#/components/schemas/JavascriptTransform'
content:
type: string
language:
type: string
enum:
- deno
- bun
- python3
- go
- bash
- powershell
- postgresql
- mysql
- bigquery
- snowflake
- mssql
- graphql
- nativets
- php
path:
type: string
lock:
type: string
type:
type: string
enum:
- rawscript
tag:
type: string
concurrent_limit:
type: number
concurrency_time_window_s:
type: number
custom_concurrency_key:
type: string
is_trigger:
type: boolean
required: &ref_236
- type
- content
- language
- input_transforms
- type: object
properties: &ref_237
input_transforms:
type: object
additionalProperties:
oneOf: *ref_31
discriminator: *ref_32
path:
type: string
hash:
type: string
type:
type: string
enum:
- script
tag_override:
type: string
is_trigger:
type: boolean
required: &ref_238
- type
- path
- input_transforms
- type: object
properties: &ref_239
input_transforms:
type: object
additionalProperties:
oneOf: *ref_31
discriminator: *ref_32
path:
type: string
type:
type: string
enum:
- flow
required: &ref_240
- type
- path
- input_transforms
- type: object
properties: &ref_241
modules:
type: array
items:
type: object
properties: *ref_33
required: &ref_34
- value
- id
iterator:
oneOf: *ref_31
discriminator: *ref_32
skip_failures:
type: boolean
type:
type: string
enum:
- forloopflow
parallel:
type: boolean
parallelism:
type: integer
required: &ref_242
- modules
- iterator
- skip_failures
- type
- type: object
properties: &ref_243
modules:
type: array
items:
type: object
properties: *ref_33
required: *ref_34
skip_failures:
type: boolean
type:
type: string
enum:
- forloopflow
parallel:
type: boolean
parallelism:
type: integer
required: &ref_244
- modules
- skip_failures
- type
- type: object
properties: &ref_245
branches:
type: array
items:
type: object
properties:
summary:
type: string
expr:
type: string
modules:
type: array
items:
type: object
properties: *ref_33
required: *ref_34
required:
- modules
- expr
default:
type: array
items:
type: object
properties: *ref_33
required: *ref_34
required:
- modules
type:
type: string
enum:
- branchone
required: &ref_246
- branches
- default
- type
- type: object
properties: &ref_247
branches:
type: array
items:
type: object
properties:
summary:
type: string
skip_failure:
type: boolean
modules:
type: array
items:
type: object
properties: *ref_33
required: *ref_34
required:
- modules
- expr
type:
type: string
enum:
- branchall
parallel:
type: boolean
required: &ref_248
- branches
- type
- type: object
properties: &ref_249
type:
type: string
enum:
- identity
flow:
type: boolean
required: &ref_250
- type
discriminator: &ref_252
propertyName: type
mapping:
rawscript: '#/components/schemas/RawScript'
script: '#/components/schemas/PathScript'
flow: '#/components/schemas/PathFlow'
forloopflow: '#/components/schemas/ForloopFlow'
whileloopflow: '#/components/schemas/WhileloopFlow'
branchone: '#/components/schemas/BranchOne'
branchall: '#/components/schemas/BranchAll'
identity: '#/components/schemas/Identity'
stop_after_if:
type: object
properties:
skip_if_stopped:
type: boolean
expr:
type: string
required:
- expr
stop_after_all_iters_if:
type: object
properties:
skip_if_stopped:
type: boolean
expr:
type: string
required:
- expr
skip_if:
type: object
properties:
expr:
type: string
required:
- expr
sleep:
oneOf: *ref_31
discriminator: *ref_32
cache_ttl:
type: number
timeout:
type: number
delete_after_use:
type: boolean
summary:
type: string
mock:
type: object
properties:
enabled:
type: boolean
return_value: {}
suspend:
type: object
properties:
required_events:
type: integer
timeout:
type: integer
resume_form:
type: object
properties:
schema:
type: object
user_auth_required:
type: boolean
user_groups_required:
oneOf: *ref_31
discriminator: *ref_32
self_approval_disabled:
type: boolean
hide_cancel:
type: boolean
continue_on_disapprove_timeout:
type: boolean
priority:
type: number
continue_on_error:
type: boolean
retry:
type: object
properties: &ref_95
constant:
type: object
properties:
attempts:
type: integer
seconds:
type: integer
exponential:
type: object
properties:
attempts:
type: integer
multiplier:
type: integer
seconds:
type: integer
random_factor:
type: integer
minimum: 0
maximum: 100
required: *ref_34
failure_module:
type: object
properties: *ref_33
required: *ref_34
preprocessor_module:
type: object
properties: *ref_33
required: *ref_34
same_worker:
type: boolean
concurrent_limit:
type: number
concurrency_key:
type: string
concurrency_time_window_s:
type: number
skip_expr:
type: string
cache_ttl:
type: number
priority:
type: number
early_return:
type: string
required: &ref_67
- modules
schema:
type: object
required: &ref_55
- summary
- value
/apps/hub/list:
get:
summary: list all 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:
- name: id
in: path
required: true
schema: *ref_30
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:
- name: path
in: path
required: true
schema: &ref_35
type: string
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:
- name: path
in: path
required: true
schema: *ref_35
responses:
'200':
description: script details
content:
application/json:
schema:
type: object
properties:
content:
type: string
lockfile:
type: string
schema: {}
language:
type: string
summary:
type: string
required:
- content
- language
/scripts/hub/top:
get:
summary: get top hub scripts
operationId: getTopHubScripts
tags:
- script
parameters:
- name: limit
description: query limit
in: query
required: false
schema:
type: number
- name: app
description: query scripts app
in: query
required: false
schema:
type: string
- name: kind
description: query scripts kind
in: query
required: false
schema:
type: string
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
version_id:
type: number
kind:
name: kind
schema: &ref_36
type: string
enum:
- script
- failure
- trigger
- approval
votes:
type: number
views:
type: number
required:
- id
- ask_id
- summary
- app
- version_id
- kind
- views
- votes
/embeddings/query_hub_scripts:
get:
summary: query hub scripts by similarity
operationId: queryHubScripts
tags:
- script
parameters:
- name: text
description: query text
in: query
required: true
schema:
type: string
- name: kind
description: query scripts kind
in: query
required: false
schema:
type: string
- name: limit
description: query limit
in: query
required: false
schema:
type: number
- name: app
description: query scripts app
in: query
required: false
schema:
type: string
responses:
'200':
description: script details
content:
application/json:
schema:
type: array
items:
type: object
properties:
ask_id:
type: number
id:
type: number
version_id:
type: number
summary:
type: string
app:
type: string
kind:
name: kind
schema: *ref_36
score:
type: number
required:
- ask_id
- id
- version_id
- summary
- app
- kind
- score
/w/{workspace}/scripts/list_search:
get:
summary: list scripts for search
operationId: listSearchScript
tags:
- script
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: script list
content:
application/json:
schema:
type: array
items:
type: object
properties:
path:
type: string
content:
type: string
required:
- path
- content
/w/{workspace}/scripts/list:
get:
summary: list all scripts
operationId: listScripts
tags:
- script
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
- name: order_desc
description: order by desc order (default true)
in: query
schema: &ref_52
type: boolean
- name: created_by
description: mask to filter exact matching user creator
in: query
schema: &ref_53
type: string
- 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 only 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: include_without_main
description: |
(default false)
include scripts without an exported main function
in: query
schema:
type: boolean
- name: include_draft_only
description: |
(default false)
include scripts that have no deployed version
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: kinds
description: |
(default regardless)
script kinds to filter, split by comma
in: query
schema:
type: string
- name: starred_only
description: |
(default false)
show only the starred items
in: query
schema:
type: boolean
- name: with_deployment_msg
description: |
(default false)
include deployment message
in: query
schema:
type: boolean
responses:
'200':
description: All scripts
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_37
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
- powershell
- postgresql
- mysql
- bigquery
- snowflake
- mssql
- graphql
- nativets
- bun
- php
- rust
- ansible
kind:
type: string
enum:
- script
- failure
- trigger
- command
- approval
starred:
type: boolean
tag:
type: string
has_draft:
type: boolean
draft_only:
type: boolean
envs:
type: array
items:
type: string
concurrent_limit:
type: integer
concurrency_time_window_s:
type: integer
concurrency_key:
type: string
cache_ttl:
type: number
dedicated_worker:
type: boolean
ws_error_handler_muted:
type: boolean
priority:
type: integer
restart_unless_cancelled:
type: boolean
timeout:
type: integer
delete_after_use:
type: boolean
visible_to_runner_only:
type: boolean
no_main_func:
type: boolean
codebase:
type: string
has_preprocessor:
type: boolean
required: &ref_38
- hash
- path
- summary
- description
- content
- created_by
- created_at
- archived
- deleted
- is_template
- extra_perms
- language
- kind
- starred
- no_main_func
- has_preprocessor
/w/{workspace}/scripts/list_paths:
get:
summary: list all scripts paths
operationId: listScriptPaths
tags:
- script
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: list of script paths
content:
text/plain:
schema:
type: array
items:
type: string
/w/{workspace}/drafts/create:
post:
summary: create draft
operationId: createDraft
tags:
- draft
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
path:
type: string
typ:
type: string
enum:
- flow
- script
- app
value: {}
required:
- path
- typ
- enum
responses:
'201':
description: draft created
content:
text/plain:
schema:
type: string
/w/{workspace}/drafts/delete/{kind}/{path}:
delete:
summary: delete draft
operationId: deleteDraft
tags:
- draft
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: kind
in: path
required: true
schema:
type: string
enum:
- script
- flow
- app
- name: path
in: path
required: true
schema: *ref_35
responses:
'200':
description: draft deleted
content:
text/plain:
schema:
type: string
/w/{workspace}/scripts/create:
post:
summary: create script
operationId: createScript
tags:
- script
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: Partially filled script
required: true
content:
application/json:
schema:
type: object
properties: &ref_42
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: string
language:
type: string
enum:
- python3
- deno
- go
- bash
- powershell
- postgresql
- mysql
- bigquery
- snowflake
- mssql
- graphql
- nativets
- bun
- php
- rust
- ansible
kind:
type: string
enum:
- script
- failure
- trigger
- command
- approval
tag:
type: string
draft_only:
type: boolean
envs:
type: array
items:
type: string
concurrent_limit:
type: integer
concurrency_time_window_s:
type: integer
cache_ttl:
type: number
dedicated_worker:
type: boolean
ws_error_handler_muted:
type: boolean
priority:
type: integer
restart_unless_cancelled:
type: boolean
timeout:
type: integer
delete_after_use:
type: boolean
deployment_message:
type: string
concurrency_key:
type: string
visible_to_runner_only:
type: boolean
no_main_func:
type: boolean
codebase:
type: string
has_preprocessor:
type: boolean
required: &ref_43
- path
- summary
- description
- content
- language
responses:
'201':
description: script created
content:
text/plain:
schema:
type: string
/w/{workspace}/scripts/toggle_workspace_error_handler/p/{path}:
post:
summary: Toggle ON and OFF the workspace error handler for a given script
operationId: toggleWorkspaceErrorHandlerForScript
tags:
- script
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
requestBody:
description: Workspace error handler enabled
required: true
content:
application/json:
schema:
type: object
properties:
muted:
type: boolean
responses:
'200':
description: error handler toggled
content:
text/plain:
schema:
type: string
/workers/custom_tags:
get:
summary: >-
get all instance custom tags (tags are used to dispatch jobs to
different worker groups)
operationId: getCustomTags
tags:
- worker
responses:
'200':
description: list of custom tags
content:
application/json:
schema:
type: array
items:
type: string
/workers/get_default_tags:
get:
summary: get all instance default tags
operationId: geDefaultTags
tags:
- worker
responses:
'200':
description: list of default tags
content:
application/json:
schema:
type: array
items:
type: string
/workers/is_default_tags_per_workspace:
get:
summary: is default tags per workspace
operationId: isDefaultTagsPerWorkspace
tags:
- worker
responses:
'200':
description: is the default tags per workspace
content:
application/json:
schema:
type: boolean
/w/{workspace}/scripts/archive/p/{path}:
post:
summary: archive script by path
operationId: archiveScriptByPath
tags:
- script
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: hash
in: path
required: true
schema: &ref_39
type: string
responses:
'200':
description: script details
content:
application/json:
schema:
type: object
properties: *ref_37
required: *ref_38
/w/{workspace}/scripts/delete/h/{hash}:
post:
summary: delete script by hash (erase content but keep hash, require admin)
operationId: deleteScriptByHash
tags:
- script
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: hash
in: path
required: true
schema: *ref_39
responses:
'200':
description: script details
content:
application/json:
schema:
type: object
properties: *ref_37
required: *ref_38
/w/{workspace}/scripts/delete/p/{path}:
post:
summary: delete all scripts at a given path (require admin)
operationId: deleteScriptByPath
tags:
- script
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
responses:
'200':
description: script path
content:
application/json:
schema:
type: string
/w/{workspace}/scripts/get/p/{path}:
get:
summary: get script by path
operationId: getScriptByPath
tags:
- script
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
- name: with_starred_info
in: query
schema:
type: boolean
responses:
'200':
description: script details
content:
application/json:
schema:
type: object
properties: *ref_37
required: *ref_38
/w/{workspace}/scripts/get_triggers_count/{path}:
get:
summary: get triggers count of script
operationId: getTriggersCountOfScript
tags:
- script
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
responses:
'200':
description: triggers count
content:
application/json:
schema:
type: object
properties: &ref_59
primary_schedule:
type: object
properties:
schedule:
type: string
schedule_count:
type: number
http_routes_count:
type: number
webhook_count:
type: number
email_count:
type: number
websocket_count:
type: number
/w/{workspace}/scripts/list_tokens/{path}:
get:
summary: get tokens with script scope
operationId: listTokensOfScript
tags:
- script
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
responses:
'200':
description: tokens list
content:
application/json:
schema:
type: array
items:
type: object
properties: *ref_40
required: *ref_41
/w/{workspace}/scripts/get/draft/{path}:
get:
summary: get script by path with draft
operationId: getScriptByPathWithDraft
tags:
- script
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
responses:
'200':
description: script details
content:
application/json:
schema:
allOf: &ref_137
- type: object
properties: *ref_42
required: *ref_43
- type: object
properties:
draft:
type: object
properties: *ref_42
required: *ref_43
hash:
type: string
required:
- hash
/w/{workspace}/scripts/history/p/{path}:
get:
summary: get history of a script by path
operationId: getScriptHistoryByPath
tags:
- script
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
responses:
'200':
description: script history
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_44
script_hash:
type: string
deployment_msg:
type: string
required: &ref_45
- script_hash
/w/{workspace}/scripts/get_latest_version/{path}:
get:
summary: get scripts's latest version (hash)
operationId: getScriptLatestVersion
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
tags:
- script
responses:
'200':
description: Script version/hash
content:
application/json:
required: false
schema:
type: object
properties: *ref_44
required: *ref_45
/w/{workspace}/scripts/history_update/h/{hash}/p/{path}:
post:
summary: update history of a script
operationId: updateScriptHistory
tags:
- script
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: hash
in: path
required: true
schema: *ref_39
- name: path
in: path
required: true
schema: *ref_35
requestBody:
description: Script deployment message
required: true
content:
application/json:
schema:
type: object
properties:
deployment_msg:
type: string
responses:
'200':
description: success
content:
text/plain:
schema:
type: string
/w/{workspace}/scripts/raw/p/{path}:
get:
summary: raw script by path
operationId: rawScriptByPath
tags:
- script
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
responses:
'200':
description: script content
content:
text/plain:
schema:
type: string
/scripts_u/tokened_raw/{workspace}/{token}/{path}:
get:
summary: >-
raw script by path with a token (mostly used by lsp to be used with
import maps to resolve scripts)
operationId: rawScriptByPathTokened
tags:
- script
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: token
in: path
required: true
schema: &ref_126
type: string
- name: path
in: path
required: true
schema: *ref_35
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: hash
in: path
required: true
schema: *ref_39
- name: with_starred_info
in: query
schema:
type: boolean
responses:
'200':
description: script details
content:
application/json:
schema:
type: object
properties: *ref_37
required: *ref_38
/w/{workspace}/scripts/raw/h/{path}:
get:
summary: raw script by hash
operationId: rawScriptByHash
tags:
- script
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: hash
in: path
required: true
schema: *ref_39
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
- 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
- name: skip_preprocessor
description: skip the preprocessor
in: query
schema:
type: boolean
- 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: &ref_46
type: string
format: uuid
- name: tag
description: Override the tag to use
in: query
schema: &ref_48
type: string
- name: cache_ttl
description: >-
Override the cache time to live (in seconds). Can not be used to
disable caching, only override with a new cache ttl
in: query
schema: &ref_49
type: string
- name: job_id
description: >-
The job id to assign to the created job. if missing, job is chosen
randomly using the ULID scheme. If a job id already exists in the
queue or as a completed job, the request to create one will fail
(Bad Request)
in: query
schema: &ref_47
type: string
format: uuid
- 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:
type: object
additionalProperties: *ref_18
responses:
'201':
description: job created
content:
text/plain:
schema:
type: string
format: uuid
/w/{workspace}/jobs/openai_sync/p/{path}:
post:
summary: run script by path in openai format
operationId: openaiSyncScriptByPath
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
- 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: *ref_46
- name: job_id
description: >-
The job id to assign to the created job. if missing, job is chosen
randomly using the ULID scheme. If a job id already exists in the
queue or as a completed job, the request to create one will fail
(Bad Request)
in: query
schema: *ref_47
- 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: &ref_50
type: string
- name: queue_limit
description: >
The maximum size of the queue for which the request would get
rejected if that job would push it above that limit
in: query
schema: &ref_51
type: string
requestBody:
description: script args
required: true
content:
application/json:
schema:
type: object
additionalProperties: *ref_18
responses:
'200':
description: job result
content:
application/json:
schema: {}
/w/{workspace}/jobs/run_wait_result/p/{path}:
post:
summary: run script by path
operationId: runWaitResultScriptByPath
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
- 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: *ref_46
- name: tag
description: Override the tag to use
in: query
schema: *ref_48
- name: cache_ttl
description: >-
Override the cache time to live (in seconds). Can not be used to
disable caching, only override with a new cache ttl
in: query
schema: *ref_49
- name: job_id
description: >-
The job id to assign to the created job. if missing, job is chosen
randomly using the ULID scheme. If a job id already exists in the
queue or as a completed job, the request to create one will fail
(Bad Request)
in: query
schema: *ref_47
- 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: *ref_50
- name: queue_limit
description: >
The maximum size of the queue for which the request would get
rejected if that job would push it above that limit
in: query
schema: *ref_51
requestBody:
description: script args
required: true
content:
application/json:
schema:
type: object
additionalProperties: *ref_18
responses:
'200':
description: job result
content:
application/json:
schema: {}
get:
summary: run script by path with get
operationId: runWaitResultScriptByPathGet
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
- 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: *ref_46
- name: tag
description: Override the tag to use
in: query
schema: *ref_48
- name: cache_ttl
description: >-
Override the cache time to live (in seconds). Can not be used to
disable caching, only override with a new cache ttl
in: query
schema: *ref_49
- name: job_id
description: >-
The job id to assign to the created job. if missing, job is chosen
randomly using the ULID scheme. If a job id already exists in the
queue or as a completed job, the request to create one will fail
(Bad Request)
in: query
schema: *ref_47
- 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: *ref_50
- name: queue_limit
description: >
The maximum size of the queue for which the request would get
rejected if that job would push it above that limit
in: query
schema: *ref_51
- name: payload
description: >
The base64 encoded payload that has been encoded as a JSON. e.g how
to encode such payload encodeURIComponent
`encodeURIComponent(btoa(JSON.stringify({a: 2})))`
in: query
schema: &ref_94
type: string
responses:
'200':
description: job result
content:
application/json:
schema: {}
/w/{workspace}/jobs/openai_sync/f/{path}:
post:
summary: run flow by path and wait until completion in openai format
operationId: openaiSyncFlowByPath
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
- 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: *ref_50
- name: queue_limit
description: >
The maximum size of the queue for which the request would get
rejected if that job would push it above that limit
in: query
schema: *ref_51
- name: job_id
description: >-
The job id to assign to the created job. if missing, job is chosen
randomly using the ULID scheme. If a job id already exists in the
queue or as a completed job, the request to create one will fail
(Bad Request)
in: query
schema: *ref_47
requestBody:
description: script args
required: true
content:
application/json:
schema:
type: object
additionalProperties: *ref_18
responses:
'200':
description: job result
content:
application/json:
schema: {}
/w/{workspace}/jobs/run_wait_result/f/{path}:
post:
summary: run flow by path and wait until completion
operationId: runWaitResultFlowByPath
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
- 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: *ref_50
- name: queue_limit
description: >
The maximum size of the queue for which the request would get
rejected if that job would push it above that limit
in: query
schema: *ref_51
- name: job_id
description: >-
The job id to assign to the created job. if missing, job is chosen
randomly using the ULID scheme. If a job id already exists in the
queue or as a completed job, the request to create one will fail
(Bad Request)
in: query
schema: *ref_47
requestBody:
description: script args
required: true
content:
application/json:
schema:
type: object
additionalProperties: *ref_18
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: flow_job_id
in: path
required: true
schema:
type: string
- name: node_id
in: path
required: true
schema:
type: string
responses:
'200':
description: job result
content:
application/json:
schema: {}
/w/{workspace}/flows/list_paths:
get:
summary: list all flow paths
operationId: listFlowPaths
tags:
- flow
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: list of flow paths
content:
text/plain:
schema:
type: array
items:
type: string
/w/{workspace}/flows/list_search:
get:
summary: list flows for search
operationId: listSearchFlow
tags:
- flow
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: flow list
content:
application/json:
schema:
type: array
items:
type: object
properties:
path:
type: string
value: {}
required:
- path
- value
/w/{workspace}/flows/list:
get:
summary: list all flows
operationId: listFlows
tags:
- flow
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
- name: order_desc
description: order by desc order (default true)
in: query
schema: *ref_52
- name: created_by
description: mask to filter exact matching user creator
in: query
schema: *ref_53
- 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 only 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
- name: include_draft_only
description: |
(default false)
include items that have no deployed version
in: query
schema:
type: boolean
- name: with_deployment_msg
description: |
(default false)
include deployment message
in: query
schema:
type: boolean
responses:
'200':
description: All flow
content:
application/json:
schema:
type: array
items:
allOf:
- allOf: &ref_58
- type: object
properties: *ref_54
required: *ref_55
- type: object
properties: &ref_190
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: &ref_189
type: boolean
starred:
type: boolean
draft_only:
type: boolean
tag:
type: string
ws_error_handler_muted:
type: boolean
priority:
type: integer
dedicated_worker:
type: boolean
timeout:
type: number
visible_to_runner_only:
type: boolean
required: &ref_191
- path
- edited_by
- edited_at
- archived
- extra_perms
- type: object
properties:
has_draft:
type: boolean
draft_only:
type: boolean
/w/{workspace}/flows/history/p/{path}:
get:
summary: get flow history by path
operationId: getFlowHistory
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
tags:
- flow
responses:
'200':
description: Flow history
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_56
id:
type: integer
created_at:
type: string
format: date-time
deployment_msg:
type: string
required: &ref_57
- id
- created_at
/w/{workspace}/flows/get_latest_version/{path}:
get:
summary: get flow's latest version
operationId: getFlowLatestVersion
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
tags:
- flow
responses:
'200':
description: Flow version
content:
application/json:
required: false
schema:
type: object
properties: *ref_56
required: *ref_57
/w/{workspace}/flows/get/v/{version}/p/{path}:
get:
summary: get flow version
operationId: getFlowVersion
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- type: string
name: version
in: path
required: true
schema:
type: number
- name: path
in: path
required: true
schema: *ref_35
tags:
- flow
responses:
'200':
description: flow details
content:
application/json:
schema:
allOf: *ref_58
/w/{workspace}/flows/history_update/v/{version}/p/{path}:
post:
summary: update flow history
operationId: updateFlowHistory
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- type: string
name: version
in: path
required: true
schema:
type: number
- name: path
in: path
required: true
schema: *ref_35
requestBody:
description: Flow deployment message
required: true
content:
application/json:
schema:
type: object
properties:
deployment_msg:
type: string
required:
- deployment_msg
tags:
- flow
responses:
'200':
description: success
content:
text/plain:
schema:
type: string
/w/{workspace}/flows/get/{path}:
get:
summary: get flow by path
operationId: getFlowByPath
tags:
- flow
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
- name: with_starred_info
in: query
schema:
type: boolean
responses:
'200':
description: flow details
content:
application/json:
schema:
allOf: *ref_58
/w/{workspace}/flows/get_triggers_count/{path}:
get:
summary: get triggers count of flow
operationId: getTriggersCountOfFlow
tags:
- flow
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
responses:
'200':
description: triggers count
content:
application/json:
schema:
type: object
properties: *ref_59
/w/{workspace}/flows/list_tokens/{path}:
get:
summary: get tokens with flow scope
operationId: listTokensOfFlow
tags:
- flow
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
responses:
'200':
description: tokens list
content:
application/json:
schema:
type: array
items:
type: object
properties: *ref_40
required: *ref_41
/w/{workspace}/flows/toggle_workspace_error_handler/{path}:
post:
summary: Toggle ON and OFF the workspace error handler for a given flow
operationId: toggleWorkspaceErrorHandlerForFlow
tags:
- flow
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
requestBody:
description: Workspace error handler enabled
required: true
content:
application/json:
schema:
type: object
properties:
muted:
type: boolean
responses:
'200':
description: error handler toggled
content:
text/plain:
schema:
type: string
/w/{workspace}/flows/get/draft/{path}:
get:
summary: get flow by path with draft
operationId: getFlowByPathWithDraft
tags:
- flow
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
responses:
'200':
description: flow details with draft
content:
application/json:
schema:
allOf:
- allOf: *ref_58
- type: object
properties:
draft:
allOf: *ref_58
/w/{workspace}/flows/exists/{path}:
get:
summary: exists flow by path
operationId: existsFlowByPath
tags:
- flow
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
responses:
'200':
description: flow details
content:
application/json:
schema:
type: boolean
/w/{workspace}/flows/create:
post:
summary: create flow
operationId: createFlow
tags:
- flow
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: Partially filled flow
required: true
content:
application/json:
schema:
allOf:
- allOf: &ref_60
- type: object
properties: *ref_54
required: *ref_55
- type: object
properties:
path:
type: string
tag:
type: string
ws_error_handler_muted:
type: boolean
priority:
type: integer
dedicated_worker:
type: boolean
timeout:
type: number
visible_to_runner_only:
type: boolean
required:
- path
- type: object
properties:
draft_only:
type: boolean
deployment_message:
type: string
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
requestBody:
description: Partially filled flow
required: true
content:
application/json:
schema:
allOf:
- allOf: *ref_60
- type: object
properties:
deployment_message:
type: string
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
requestBody:
description: archiveFlow
required: true
content:
application/json:
schema:
type: object
properties:
archived:
type: boolean
responses:
'200':
description: flow archived
content:
text/plain:
schema:
type: string
/w/{workspace}/flows/delete/{path}:
delete:
summary: delete flow by path
operationId: deleteFlowByPath
tags:
- flow
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
responses:
'200':
description: flow delete
content:
text/plain:
schema:
type: string
/w/{workspace}/raw_apps/list:
get:
summary: list all raw apps
operationId: listRawApps
tags:
- raw_app
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
- name: order_desc
description: order by desc order (default true)
in: query
schema: *ref_52
- name: created_by
description: mask to filter exact matching user creator
in: query
schema: *ref_53
- 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 raw apps
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_197
workspace_id:
type: string
path:
type: string
summary:
type: string
extra_perms:
type: object
additionalProperties:
type: boolean
starred:
type: boolean
version:
type: number
edited_at:
type: string
format: date-time
required: &ref_198
- workspace_id
- path
- summary
- extra_perms
- version
- edited_at
/w/{workspace}/raw_apps/exists/{path}:
get:
summary: does an app exisst at path
operationId: existsRawApp
tags:
- raw_app
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
responses:
'200':
description: app exists
content:
application/json:
schema:
type: boolean
/w/{workspace}/apps/get_data/{version}/{path}:
get:
summary: get app by path
operationId: getRawAppData
tags:
- raw_app
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: version
in: path
required: true
schema: &ref_125
type: number
- name: path
in: path
required: true
schema: *ref_35
responses:
'200':
description: app details
content:
text/javascript:
schema:
type: string
/w/{workspace}/apps/list_search:
get:
summary: list apps for search
operationId: listSearchApp
tags:
- app
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: app list
content:
application/json:
schema:
type: array
items:
type: object
properties:
path:
type: string
value: {}
required:
- path
- value
/w/{workspace}/apps/list:
get:
summary: list all apps
operationId: listApps
tags:
- app
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
- name: order_desc
description: order by desc order (default true)
in: query
schema: *ref_52
- name: created_by
description: mask to filter exact matching user creator
in: query
schema: *ref_53
- 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
- name: include_draft_only
description: |
(default false)
include items that have no deployed version
in: query
schema:
type: boolean
- name: with_deployment_msg
description: |
(default false)
include deployment message
in: query
schema:
type: boolean
responses:
'200':
description: All apps
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_195
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: &ref_196
- id
- workspace_id
- path
- summary
- version
- extra_perms
- edited_at
- execution_mode
/w/{workspace}/apps/create:
post:
summary: create app
operationId: createApp
tags:
- app
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: new app
required: true
content:
application/json:
schema:
type: object
properties:
path:
type: string
value: {}
summary:
type: string
policy:
type: object
properties: &ref_61
triggerables:
type: object
additionalProperties:
type: object
triggerables_v2:
type: object
additionalProperties:
type: object
s3_inputs:
type: array
items:
type: object
execution_mode:
type: string
enum:
- viewer
- publisher
- anonymous
on_behalf_of:
type: string
on_behalf_of_email:
type: string
draft_only:
type: boolean
deployment_message:
type: string
required:
- path
- value
- summary
- policy
responses:
'201':
description: app created
content:
text/plain:
schema:
type: string
/w/{workspace}/apps/exists/{path}:
get:
summary: does an app exisst at path
operationId: existsApp
tags:
- app
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
- name: with_starred_info
in: query
schema:
type: boolean
responses:
'200':
description: app details
content:
application/json:
schema:
type: object
properties: &ref_62
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:
type: object
policy:
type: object
properties: *ref_61
execution_mode:
type: string
enum:
- viewer
- publisher
- anonymous
extra_perms:
type: object
additionalProperties:
type: boolean
required: &ref_63
- id
- workspace_id
- path
- summary
- versions
- created_by
- created_at
- value
- policy
- execution_mode
- extra_perms
/w/{workspace}/apps/get/draft/{path}:
get:
summary: get app by path with draft
operationId: getAppByPathWithDraft
tags:
- app
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
responses:
'200':
description: app details with draft
content:
application/json:
schema:
allOf: &ref_199
- type: object
properties: *ref_62
required: *ref_63
- type: object
properties:
draft_only:
type: boolean
draft: {}
/w/{workspace}/apps/history/p/{path}:
get:
summary: get app history by path
operationId: getAppHistoryByPath
tags:
- app
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
responses:
'200':
description: app history
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_64
version:
type: integer
deployment_msg:
type: string
required: &ref_65
- version
/w/{workspace}/apps/get_latest_version/{path}:
get:
summary: get apps's latest version
operationId: getAppLatestVersion
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
tags:
- app
responses:
'200':
description: App version
content:
application/json:
required: false
schema:
type: object
properties: *ref_64
required: *ref_65
/w/{workspace}/apps/history_update/a/{id}/v/{version}:
post:
summary: update app history
operationId: updateAppHistory
tags:
- app
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_30
- name: version
in: path
required: true
schema: &ref_127
type: integer
requestBody:
description: App deployment message
required: true
content:
application/json:
schema:
type: object
properties:
deployment_msg:
type: string
responses:
'200':
description: success
content:
text/plain:
schema:
type: string
/w/{workspace}/apps_u/public_app/{path}:
get:
summary: get public app by secret
operationId: getPublicAppBySecret
tags:
- app
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
responses:
'200':
description: app details
content:
application/json:
schema:
type: object
properties: *ref_62
required: *ref_63
/w/{workspace}/apps_u/public_resource/{path}:
get:
summary: get public resource
operationId: get public resource
tags:
- app
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
responses:
'200':
description: resource value
content:
application/json:
schema: {}
/w/{workspace}/apps/secret_of/{path}:
get:
summary: get public secret of app
operationId: getPublicSecretOfApp
tags:
- app
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_30
responses:
'200':
description: app details
content:
application/json:
schema:
type: object
properties: *ref_62
required: *ref_63
/w/{workspace}/raw_apps/create:
post:
summary: create raw app
operationId: createRawApp
tags:
- raw_app
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: new raw app
required: true
content:
application/json:
schema:
type: object
properties:
path:
type: string
value:
type: string
summary:
type: string
required:
- path
- value
- summary
responses:
'201':
description: raw app created
content:
text/plain:
schema:
type: string
/w/{workspace}/raw_apps/update/{path}:
post:
summary: update app
operationId: updateRawApp
tags:
- raw_app
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
requestBody:
description: updateraw app
required: true
content:
application/json:
schema:
type: object
properties:
path:
type: string
summary:
type: string
value:
type: string
responses:
'200':
description: app updated
content:
text/plain:
schema:
type: string
/w/{workspace}/raw_apps/delete/{path}:
delete:
summary: delete raw app
operationId: deleteRawApp
tags:
- raw_app
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
responses:
'200':
description: app deleted
content:
text/plain:
schema:
type: string
/w/{workspace}/apps/delete/{path}:
delete:
summary: delete app
operationId: deleteApp
tags:
- app
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
requestBody:
description: update app
required: true
content:
application/json:
schema:
type: object
properties:
path:
type: string
summary:
type: string
value: {}
policy:
type: object
properties: *ref_61
deployment_message:
type: string
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
requestBody:
description: update app
required: true
content:
application/json:
schema:
type: object
properties:
component:
type: string
path:
type: string
args: {}
raw_code:
type: object
properties:
content:
type: string
language:
type: string
path:
type: string
lock:
type: string
cache_ttl:
type: integer
required:
- content
- language
force_viewer_static_fields:
type: object
force_viewer_one_of_fields:
type: object
force_viewer_allow_user_resources:
type: array
items:
type: string
required:
- args
- component
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_35
- 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
- name: skip_preprocessor
description: skip the preprocessor
in: query
schema:
type: boolean
- 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: *ref_46
- name: tag
description: Override the tag to use
in: query
schema: *ref_48
- name: job_id
description: >-
The job id to assign to the created job. if missing, job is chosen
randomly using the ULID scheme. If a job id already exists in the
queue or as a completed job, the request to create one will fail
(Bad Request)
in: query
schema: *ref_47
- 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: *ref_50
- 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:
type: object
additionalProperties: *ref_18
responses:
'201':
description: job created
content:
text/plain:
schema:
type: string
format: uuid
/w/{workspace}/jobs/restart/f/{id}/from/{step_id}/{branch_or_iteration_n}:
post:
summary: restart a completed flow at a given step
operationId: restartFlowAtStep
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: &ref_91
type: string
format: uuid
- name: step_id
description: step id to restart the flow from
required: true
in: path
schema:
type: string
- name: branch_or_iteration_n
description: >-
for branchall or loop, the iteration at which the flow should
restart
required: true
in: path
schema:
type: integer
- 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
- 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: *ref_46
- name: tag
description: Override the tag to use
in: query
schema: *ref_48
- name: job_id
description: >-
The job id to assign to the created job. if missing, job is chosen
randomly using the ULID scheme. If a job id already exists in the
queue or as a completed job, the request to create one will fail
(Bad Request)
in: query
schema: *ref_47
- 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: *ref_50
- 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:
type: object
additionalProperties: *ref_18
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: hash
in: path
required: true
schema: *ref_39
- 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
- name: skip_preprocessor
description: skip the preprocessor
in: query
schema:
type: boolean
- 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: *ref_46
- name: tag
description: Override the tag to use
in: query
schema: *ref_48
- name: cache_ttl
description: >-
Override the cache time to live (in seconds). Can not be used to
disable caching, only override with a new cache ttl
in: query
schema: *ref_49
- name: job_id
description: >-
The job id to assign to the created job. if missing, job is chosen
randomly using the ULID scheme. If a job id already exists in the
queue or as a completed job, the request to create one will fail
(Bad Request)
in: query
schema: *ref_47
- 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: *ref_50
- 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:
- name: workspace
in: path
required: true
schema: *ref_0
- 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: *ref_50
- name: invisible_to_owner
description: make the run invisible to the the script owner (default false)
in: query
schema:
type: boolean
- name: job_id
description: >-
The job id to assign to the created job. if missing, job is chosen
randomly using the ULID scheme. If a job id already exists in the
queue or as a completed job, the request to create one will fail
(Bad Request)
in: query
schema: *ref_47
requestBody:
description: preview
required: true
content:
application/json:
schema:
type: object
properties: &ref_156
content:
type: string
path:
type: string
args:
type: object
additionalProperties: *ref_18
language:
type: string
enum:
- python3
- deno
- go
- bash
- powershell
- postgresql
- mysql
- bigquery
- snowflake
- mssql
- graphql
- nativets
- bun
- php
- rust
- ansible
tag:
type: string
kind:
type: string
enum:
- code
- identity
- http
dedicated_worker:
type: boolean
lock:
type: string
required: &ref_157
- args
responses:
'201':
description: job created
content:
text/plain:
schema:
type: string
format: uuid
/w/{workspace}/jobs/workflow_as_code/{job_id}/{entrypoint}:
post:
summary: run code-workflow task
operationId: runCodeWorkflowTask
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: job_id
in: path
required: true
schema:
type: string
- name: entrypoint
in: path
required: true
schema:
type: string
requestBody:
description: preview
required: true
content:
application/json:
schema:
type: object
properties: &ref_158
args:
type: object
additionalProperties: *ref_18
required: &ref_159
- args
responses:
'201':
description: job created
content:
text/plain:
schema:
type: string
format: uuid
/w/{workspace}/jobs/run/dependencies:
post:
summary: run a one-off dependencies job
operationId: runRawScriptDependencies
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: raw script content
required: true
content:
application/json:
schema:
type: object
properties:
raw_scripts:
type: array
items:
type: object
properties: &ref_217
raw_code:
type: string
path:
type: string
language:
type: string
enum:
- python3
- deno
- go
- bash
- powershell
- postgresql
- mysql
- bigquery
- snowflake
- mssql
- graphql
- nativets
- bun
- php
- rust
- ansible
required: &ref_218
- raw_code
- path
- language
entrypoint:
type: string
required:
- entrypoint
- raw_scripts
responses:
'201':
description: dependency job result
content:
application/json:
schema:
type: object
properties:
lock:
type: string
required:
- lock
/w/{workspace}/jobs/run/preview_flow:
post:
summary: run flow preview
operationId: runFlowPreview
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- 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: *ref_50
- name: invisible_to_owner
description: make the run invisible to the the script owner (default false)
in: query
schema:
type: boolean
- name: job_id
description: >-
The job id to assign to the created job. if missing, job is chosen
randomly using the ULID scheme. If a job id already exists in the
queue or as a completed job, the request to create one will fail
(Bad Request)
in: query
schema: *ref_47
requestBody:
description: preview
required: true
content:
application/json:
schema:
type: object
properties: &ref_192
value:
type: object
properties: *ref_66
required: *ref_67
path:
type: string
args:
type: object
additionalProperties: *ref_18
tag:
type: string
restarted_from:
type: object
properties: &ref_194
flow_job_id:
type: string
format: uuid
step_id:
type: string
branch_or_iteration_n:
type: integer
required: &ref_193
- value
- content
- args
responses:
'201':
description: job created
content:
text/plain:
schema:
type: string
format: uuid
/w/{workspace}/jobs/queue/list:
get:
summary: list all queued jobs
operationId: listQueue
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: order_desc
description: order by desc order (default true)
in: query
schema: *ref_52
- name: created_by
description: mask to filter exact matching user creator
in: query
schema: *ref_53
- 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: *ref_46
- name: script_path_exact
description: mask to filter exact matching path
in: query
schema: &ref_70
type: string
- name: script_path_start
description: mask to filter matching starting path
in: query
schema: &ref_71
type: string
- name: schedule_path
description: mask to filter by schedule path
in: query
schema: &ref_72
type: string
- name: script_hash
description: mask to filter exact matching path
in: query
schema: &ref_73
type: string
- name: started_before
description: filter on started before (inclusive) timestamp
in: query
schema: &ref_74
type: string
format: date-time
- name: started_after
description: filter on started after (exclusive) timestamp
in: query
schema: &ref_75
type: string
format: date-time
- name: success
description: filter on successful jobs
in: query
schema: &ref_76
type: boolean
- name: scheduled_for_before_now
description: filter on jobs scheduled_for before now (hence waitinf for a worker)
in: query
schema: &ref_77
type: boolean
- name: job_kinds
description: >-
filter on job kind (values 'preview', 'script', 'dependencies',
'flow') separated by,
in: query
schema: &ref_78
type: string
- name: suspended
description: filter on suspended jobs
in: query
schema: &ref_79
type: boolean
- name: running
description: filter on running jobs
in: query
schema: &ref_80
type: boolean
- name: args
description: >-
filter on jobs containing those args as a json subset (@> in
postgres)
in: query
schema: &ref_81
type: string
- name: result
description: >-
filter on jobs containing those result as a json subset (@> in
postgres)
in: query
schema: &ref_82
type: string
- name: tag
description: filter on jobs with a given tag/worker group
in: query
schema: &ref_83
type: string
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
- name: all_workspaces
description: >-
get jobs from all workspaces (only valid if request come from the
`admins` workspace)
in: query
schema:
type: boolean
- name: is_not_schedule
description: is not a scheduled job
in: query
schema:
type: boolean
responses:
'200':
description: All queued jobs
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_89
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:
type: object
additionalProperties: *ref_18
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
- flowdependencies
- appdependencies
- flow
- flowpreview
- script_hub
- identity
- deploymentcallback
- singlescriptflow
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:
type: object
properties: &ref_84
step:
type: integer
modules:
type: array
items:
type: object
properties: &ref_68
type:
type: string
enum:
- WaitingForPriorSteps
- WaitingForEvents
- WaitingForExecutor
- InProgress
- Success
- Failure
id:
type: string
job:
type: string
format: uuid
count:
type: integer
progress:
type: integer
iterator:
type: object
properties:
index:
type: integer
itered:
type: array
items: {}
args: {}
flow_jobs:
type: array
items:
type: string
flow_jobs_success:
type: array
items:
type: boolean
branch_chosen:
type: object
properties:
type:
type: string
enum:
- branch
- default
branch:
type: integer
required:
- type
branchall:
type: object
properties:
branch:
type: integer
len:
type: integer
required:
- branch
- len
approvers:
type: array
items:
type: object
properties:
resume_id:
type: integer
approver:
type: string
required:
- resume_id
- approver
failed_retries:
type: array
items:
type: string
format: uuid
skipped:
type: boolean
required: &ref_69
- type
user_states:
additionalProperties: true
preprocessor_module:
allOf:
- type: object
properties: *ref_68
required: *ref_69
failure_module:
allOf:
- type: object
properties: *ref_68
required: *ref_69
- type: object
properties:
parent_module:
type: string
retry:
type: object
properties:
fail_count:
type: integer
failed_jobs:
type: array
items:
type: string
format: uuid
required: &ref_85
- step
- modules
- failure_module
raw_flow:
type: object
properties: *ref_66
required: *ref_67
is_flow_step:
type: boolean
language:
type: string
enum:
- python3
- deno
- go
- bash
- powershell
- postgresql
- mysql
- bigquery
- snowflake
- mssql
- graphql
- nativets
- bun
- php
- rust
- ansible
email:
type: string
visible_to_owner:
type: boolean
mem_peak:
type: integer
tag:
type: string
priority:
type: integer
self_wait_time_ms:
type: number
aggregate_wait_time_ms:
type: number
suspend:
type: number
required: &ref_90
- id
- running
- canceled
- job_kind
- permissioned_as
- is_flow_step
- email
- visible_to_owner
- tag
/w/{workspace}/jobs/queue/count:
get:
summary: get queue count
operationId: getQueueCount
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: all_workspaces
description: >-
get jobs from all workspaces (only valid if request come from the
`admins` workspace)
in: query
schema:
type: boolean
responses:
'200':
description: queue count
content:
application/json:
schema:
type: object
properties:
database_length:
type: integer
suspended:
type: integer
required:
- database_length
/w/{workspace}/jobs/completed/count:
get:
summary: get completed count
operationId: getCompletedCount
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
responses:
'200':
description: completed count
content:
application/json:
schema:
type: object
properties:
database_length:
type: integer
required:
- database_length
/w/{workspace}/jobs/queue/list_filtered_uuids:
get:
summary: get the ids of all jobs matching the given filters
operationId: listFilteredUuids
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: order_desc
description: order by desc order (default true)
in: query
schema: *ref_52
- name: created_by
description: mask to filter exact matching user creator
in: query
schema: *ref_53
- 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: *ref_46
- name: script_path_exact
description: mask to filter exact matching path
in: query
schema: *ref_70
- name: script_path_start
description: mask to filter matching starting path
in: query
schema: *ref_71
- name: schedule_path
description: mask to filter by schedule path
in: query
schema: *ref_72
- name: script_hash
description: mask to filter exact matching path
in: query
schema: *ref_73
- name: started_before
description: filter on started before (inclusive) timestamp
in: query
schema: *ref_74
- name: started_after
description: filter on started after (exclusive) timestamp
in: query
schema: *ref_75
- name: success
description: filter on successful jobs
in: query
schema: *ref_76
- name: scheduled_for_before_now
description: filter on jobs scheduled_for before now (hence waitinf for a worker)
in: query
schema: *ref_77
- name: job_kinds
description: >-
filter on job kind (values 'preview', 'script', 'dependencies',
'flow') separated by,
in: query
schema: *ref_78
- name: suspended
description: filter on suspended jobs
in: query
schema: *ref_79
- name: running
description: filter on running jobs
in: query
schema: *ref_80
- name: args
description: >-
filter on jobs containing those args as a json subset (@> in
postgres)
in: query
schema: *ref_81
- name: result
description: >-
filter on jobs containing those result as a json subset (@> in
postgres)
in: query
schema: *ref_82
- name: tag
description: filter on jobs with a given tag/worker group
in: query
schema: *ref_83
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
- name: concurrency_key
in: query
required: false
schema:
type: string
- name: all_workspaces
description: >-
get jobs from all workspaces (only valid if request come from the
`admins` workspace)
in: query
schema:
type: boolean
- name: is_not_schedule
description: is not a scheduled job
in: query
schema:
type: boolean
responses:
'200':
description: uuids of jobs
content:
application/json:
schema:
type: array
items:
type: string
/w/{workspace}/jobs/queue/cancel_selection:
post:
summary: cancel jobs based on the given uuids
operationId: cancelSelection
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: uuids of the jobs to cancel
required: true
content:
application/json:
schema:
type: array
items:
type: string
responses:
'200':
description: uuids of canceled jobs
content:
application/json:
schema:
type: array
items:
type: string
/w/{workspace}/jobs/completed/list:
get:
summary: list all completed jobs
operationId: listCompletedJobs
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: order_desc
description: order by desc order (default true)
in: query
schema: *ref_52
- name: created_by
description: mask to filter exact matching user creator
in: query
schema: *ref_53
- name: label
description: >-
mask to filter exact matching job's label (job labels are completed
jobs with as a result an object containing a string in the array at
key 'wm_labels')
in: query
schema: &ref_86
type: string
- 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: *ref_46
- name: script_path_exact
description: mask to filter exact matching path
in: query
schema: *ref_70
- name: script_path_start
description: mask to filter matching starting path
in: query
schema: *ref_71
- name: schedule_path
description: mask to filter by schedule path
in: query
schema: *ref_72
- name: script_hash
description: mask to filter exact matching path
in: query
schema: *ref_73
- name: started_before
description: filter on started before (inclusive) timestamp
in: query
schema: *ref_74
- name: started_after
description: filter on started after (exclusive) timestamp
in: query
schema: *ref_75
- name: success
description: filter on successful jobs
in: query
schema: *ref_76
- name: job_kinds
description: >-
filter on job kind (values 'preview', 'script', 'dependencies',
'flow') separated by,
in: query
schema: *ref_78
- name: args
description: >-
filter on jobs containing those args as a json subset (@> in
postgres)
in: query
schema: *ref_81
- name: result
description: >-
filter on jobs containing those result as a json subset (@> in
postgres)
in: query
schema: *ref_82
- name: tag
description: filter on jobs with a given tag/worker group
in: query
schema: *ref_83
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
- 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: has_null_parent
description: has null parent
in: query
schema:
type: boolean
- name: is_not_schedule
description: is not a scheduled job
in: query
schema:
type: boolean
responses:
'200':
description: All completed jobs
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_87
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:
type: object
additionalProperties: *ref_18
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
- flowdependencies
- appdependencies
- flowpreview
- script_hub
- identity
- deploymentcallback
- singlescriptflow
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:
type: object
properties: *ref_84
required: *ref_85
raw_flow:
type: object
properties: *ref_66
required: *ref_67
is_flow_step:
type: boolean
language:
type: string
enum:
- python3
- deno
- go
- bash
- powershell
- postgresql
- mysql
- bigquery
- snowflake
- mssql
- graphql
- nativets
- bun
- php
- rust
- ansible
is_skipped:
type: boolean
email:
type: string
visible_to_owner:
type: boolean
mem_peak:
type: integer
tag:
type: string
priority:
type: integer
labels:
type: array
items:
type: string
self_wait_time_ms:
type: number
aggregate_wait_time_ms:
type: number
required: &ref_88
- id
- created_by
- duration_ms
- created_at
- started_at
- success
- canceled
- job_kind
- permissioned_as
- is_flow_step
- is_skipped
- email
- visible_to_owner
- tag
/w/{workspace}/jobs/list:
get:
summary: list all jobs
operationId: listJobs
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: created_by
description: mask to filter exact matching user creator
in: query
schema: *ref_53
- name: label
description: >-
mask to filter exact matching job's label (job labels are completed
jobs with as a result an object containing a string in the array at
key 'wm_labels')
in: query
schema: *ref_86
- 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: *ref_46
- name: script_path_exact
description: mask to filter exact matching path
in: query
schema: *ref_70
- name: script_path_start
description: mask to filter matching starting path
in: query
schema: *ref_71
- name: schedule_path
description: mask to filter by schedule path
in: query
schema: *ref_72
- name: script_hash
description: mask to filter exact matching path
in: query
schema: *ref_73
- name: started_before
description: filter on started before (inclusive) timestamp
in: query
schema: *ref_74
- name: started_after
description: filter on started after (exclusive) timestamp
in: query
schema: *ref_75
- name: created_before
description: filter on created before (inclusive) timestamp
in: query
schema: &ref_128
type: string
format: date-time
- name: created_after
description: filter on created after (exclusive) timestamp
in: query
schema: &ref_129
type: string
format: date-time
- name: created_or_started_before
description: >-
filter on created_at for non non started job and started_at
otherwise before (inclusive) timestamp
in: query
schema: &ref_122
type: string
format: date-time
- name: running
description: filter on running jobs
in: query
schema: *ref_80
- name: scheduled_for_before_now
description: filter on jobs scheduled_for before now (hence waitinf for a worker)
in: query
schema: *ref_77
- name: created_or_started_after
description: >-
filter on created_at for non non started job and started_at
otherwise after (exclusive) timestamp
in: query
schema: &ref_123
type: string
format: date-time
- name: created_or_started_after_completed_jobs
description: >-
filter on created_at for non non started job and started_at
otherwise after (exclusive) timestamp but only for the completed
jobs
in: query
schema: &ref_124
type: string
format: date-time
- name: job_kinds
description: >-
filter on job kind (values 'preview', 'script', 'dependencies',
'flow') separated by,
in: query
schema: *ref_78
- name: suspended
description: filter on suspended jobs
in: query
schema: *ref_79
- name: args
description: >-
filter on jobs containing those args as a json subset (@> in
postgres)
in: query
schema: *ref_81
- name: tag
description: filter on jobs with a given tag/worker group
in: query
schema: *ref_83
- name: result
description: >-
filter on jobs containing those result as a json subset (@> in
postgres)
in: query
schema: *ref_82
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
- 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: has_null_parent
description: has null parent
in: query
schema:
type: boolean
- name: success
description: filter on successful jobs
in: query
schema:
type: boolean
- name: all_workspaces
description: >-
get jobs from all workspaces (only valid if request come from the
`admins` workspace)
in: query
schema:
type: boolean
- name: is_not_schedule
description: is not a scheduled job
in: query
schema:
type: boolean
responses:
'200':
description: All jobs
content:
application/json:
schema:
type: array
items:
oneOf: &ref_92
- allOf:
- type: object
properties: *ref_87
required: *ref_88
- type: object
properties:
type:
type: string
enum:
- CompletedJob
- allOf:
- type: object
properties: *ref_89
required: *ref_90
- type: object
properties:
type:
type: string
enum:
- QueuedJob
discriminator: &ref_93
propertyName: type
/jobs/db_clock:
get:
summary: get db clock
operationId: getDbClock
tags:
- job
responses:
'200':
description: the timestamp of the db that can be used to compute the drift
content:
application/json:
schema:
type: integer
/jobs/completed/count_by_tag:
get:
summary: Count jobs by tag
operationId: countJobsByTag
tags:
- job
parameters:
- name: horizon_secs
in: query
description: >-
Past Time horizon in seconds (when to start the count = now -
horizon) (default is 3600)
required: false
schema:
type: integer
- name: workspace_id
in: query
description: Specific workspace ID to filter results (optional)
required: false
schema:
type: string
responses:
'200':
description: Job counts by tag
content:
application/json:
schema:
type: array
items:
type: object
properties:
tag:
type: string
count:
type: integer
required:
- tag
- count
/w/{workspace}/jobs_u/get/{id}:
get:
summary: get job
operationId: getJob
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
- name: no_logs
in: query
schema:
type: boolean
responses:
'200':
description: job details
content:
application/json:
schema:
oneOf: *ref_92
discriminator: *ref_93
/w/{workspace}/jobs_u/get_root_job_id/{id}:
get:
summary: get root job id
operationId: getRootJobId
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
responses:
'200':
description: get root job id
content:
application/json:
schema:
type: string
/w/{workspace}/jobs_u/get_logs/{id}:
get:
summary: get job logs
operationId: getJob logs
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
responses:
'200':
description: job details
content:
text/plain:
schema:
type: string
/w/{workspace}/jobs_u/get_args/{id}:
get:
summary: get job args
operationId: getJobArgs
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
responses:
'200':
description: job args
content:
application/json:
schema: {}
/w/{workspace}/jobs_u/getupdate/{id}:
get:
summary: get job updates
operationId: getJobUpdates
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
- name: running
in: query
schema:
type: boolean
- name: log_offset
in: query
schema:
type: integer
- name: get_progress
in: query
schema:
type: boolean
responses:
'200':
description: job details
content:
application/json:
schema:
type: object
properties:
running:
type: boolean
completed:
type: boolean
new_logs:
type: string
log_offset:
type: integer
mem_peak:
type: integer
progress:
type: integer
flow_status:
type: object
additionalProperties: &ref_160
type: object
properties: &ref_161
scheduled_for:
type: string
format: date-time
started_at:
type: string
format: date-time
duration_ms:
type: number
name:
type: string
/w/{workspace}/jobs_u/get_log_file/{path}:
get:
summary: get log file from object store
operationId: getLogFileFromStore
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema:
type: string
responses:
'200':
description: job log
content:
text/plain:
type: string
/w/{workspace}/jobs_u/get_flow_debug_info/{id}:
get:
summary: get flow debug info
operationId: getFlowDebugInfo
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
responses:
'200':
description: flow debug info details
content:
application/json:
schema: {}
/w/{workspace}/jobs_u/completed/get/{id}:
get:
summary: get completed job
operationId: getCompletedJob
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
responses:
'200':
description: job details
content:
application/json:
schema:
type: object
properties: *ref_87
required: *ref_88
/w/{workspace}/jobs_u/completed/get_result/{id}:
get:
summary: get completed job result
operationId: getCompletedJobResult
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
- name: suspended_job
in: query
schema:
type: string
- name: resume_id
in: query
schema:
type: integer
- name: secret
in: query
schema:
type: string
- name: approver
in: query
schema:
type: string
responses:
'200':
description: result
content:
application/json:
schema: {}
/w/{workspace}/jobs_u/completed/get_result_maybe/{id}:
get:
summary: get completed job result if job is completed
operationId: getCompletedJobResultMaybe
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
- name: get_started
in: query
schema: &ref_135
type: boolean
responses:
'200':
description: result
content:
application/json:
schema:
type: object
properties:
completed:
type: boolean
result: {}
success:
type: boolean
started:
type: boolean
required:
- completed
- result
/w/{workspace}/jobs/completed/delete/{id}:
post:
summary: delete completed job (erase content but keep run id)
operationId: deleteCompletedJob
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
responses:
'200':
description: job details
content:
application/json:
schema:
type: object
properties: *ref_87
required: *ref_88
/w/{workspace}/jobs_u/queue/cancel/{id}:
post:
summary: cancel queued or running job
operationId: cancelQueuedJob
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
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_u/queue/cancel_persistent/{path}:
post:
summary: cancel all queued jobs for persistent script
operationId: cancelPersistentQueuedJobs
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
requestBody:
description: reason
required: true
content:
application/json:
schema:
type: object
properties:
reason:
type: string
responses:
'200':
description: persistent job scaled down to zero
content:
text/plain:
schema:
type: string
/w/{workspace}/jobs_u/queue/force_cancel/{id}:
post:
summary: force cancel queued job
operationId: forceCancelQueuedJob
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
- 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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
- 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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
- name: payload
description: >
The base64 encoded payload that has been encoded as a JSON. e.g how
to encode such payload encodeURIComponent
`encodeURIComponent(btoa(JSON.stringify({a: 2})))`
in: query
schema: *ref_94
- 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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
- 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/user_states/{id}/{key}:
post:
summary: set flow user state at a given key
operationId: setFlowUserState
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
- name: key
in: path
required: true
schema:
type: string
requestBody:
description: new value
required: true
content:
application/json:
schema: {}
responses:
'200':
description: flow user state updated
content:
text/plain:
schema:
type: string
get:
summary: get flow user state at a given key
operationId: getFlowUserState
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
- name: key
in: path
required: true
schema:
type: string
responses:
'200':
description: flow user state updated
content:
application/json:
schema: {}
/w/{workspace}/jobs/flow/resume/{id}:
post:
summary: resume a job for a suspended flow as an owner
operationId: resumeSuspendedFlowAsOwner
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
- 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 canceled
content:
text/plain:
schema:
type: string
post:
summary: cancel a job for a suspended flow
operationId: cancelSuspendedJobPost
tags:
- job
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
- 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 canceled
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
- 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:
oneOf: *ref_92
discriminator: *ref_93
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
timezone:
type: string
required:
- schedule
- timezone
responses:
'200':
description: List of 5 estimated upcoming execution events (in UTC)
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:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: new schedule
required: true
content:
application/json:
schema:
type: object
properties: &ref_171
path:
type: string
schedule:
type: string
timezone:
type: string
script_path:
type: string
is_flow:
type: boolean
args:
type: object
additionalProperties: *ref_18
enabled:
type: boolean
on_failure:
type: string
on_failure_times:
type: number
on_failure_exact:
type: boolean
on_failure_extra_args:
type: object
additionalProperties: *ref_18
on_recovery:
type: string
on_recovery_times:
type: number
on_recovery_extra_args:
type: object
additionalProperties: *ref_18
on_success:
type: string
on_success_extra_args:
type: object
additionalProperties: *ref_18
ws_error_handler_muted:
type: boolean
retry:
type: object
properties: *ref_95
no_flow_overlap:
type: boolean
summary:
type: string
tag:
type: string
paused_until:
type: string
format: date-time
required: &ref_172
- path
- schedule
- timezone
- script_path
- is_flow
- args
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
requestBody:
description: updated schedule
required: true
content:
application/json:
schema:
type: object
properties: &ref_173
schedule:
type: string
timezone:
type: string
args:
type: object
additionalProperties: *ref_18
on_failure:
type: string
on_failure_times:
type: number
on_failure_exact:
type: boolean
on_failure_extra_args:
type: object
additionalProperties: *ref_18
on_recovery:
type: string
on_recovery_times:
type: number
on_recovery_extra_args:
type: object
additionalProperties: *ref_18
on_success:
type: string
on_success_extra_args:
type: object
additionalProperties: *ref_18
ws_error_handler_muted:
type: boolean
retry:
type: object
properties: *ref_95
no_flow_overlap:
type: boolean
summary:
type: string
tag:
type: string
paused_until:
type: string
format: date-time
required: &ref_174
- schedule
- timezone
- script_path
- is_flow
- args
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
responses:
'200':
description: schedule deleted
content:
application/json:
schema:
type: object
properties: &ref_96
path:
type: string
edited_by:
type: string
edited_at:
type: string
format: date-time
schedule:
type: string
timezone:
type: string
enabled:
type: boolean
script_path:
type: string
is_flow:
type: boolean
args:
type: object
additionalProperties: *ref_18
extra_perms:
type: object
additionalProperties:
type: boolean
email:
type: string
error:
type: string
on_failure:
type: string
on_failure_times:
type: number
on_failure_exact:
type: boolean
on_failure_extra_args:
type: object
additionalProperties: *ref_18
on_recovery:
type: string
on_recovery_times:
type: number
on_recovery_extra_args:
type: object
additionalProperties: *ref_18
on_success:
type: string
on_success_extra_args:
type: object
additionalProperties: *ref_18
ws_error_handler_muted:
type: boolean
retry:
type: object
properties: *ref_95
summary:
type: string
no_flow_overlap:
type: boolean
tag:
type: string
paused_until:
type: string
format: date-time
required: &ref_97
- path
- edited_by
- edited_at
- schedule
- script_path
- timezone
- extra_perms
- is_flow
- enabled
- email
/w/{workspace}/schedules/exists/{path}:
get:
summary: does schedule exists
operationId: existsSchedule
tags:
- schedule
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
responses:
'200':
description: schedule exists
content:
application/json:
schema:
type: boolean
/w/{workspace}/schedules/list:
get:
summary: list schedules
operationId: listSchedules
tags:
- schedule
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
- name: args
description: >-
filter on jobs containing those args as a json subset (@> in
postgres)
in: query
schema: *ref_81
- name: path
description: filter by path
in: query
schema:
type: string
- name: is_flow
in: query
schema:
type: boolean
- name: path_start
in: query
schema:
type: string
responses:
'200':
description: schedule list
content:
application/json:
schema:
type: array
items:
type: object
properties: *ref_96
required: *ref_97
/w/{workspace}/schedules/list_with_jobs:
get:
summary: list schedules with last 20 jobs
operationId: listSchedulesWithJobs
tags:
- schedule
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
responses:
'200':
description: schedule list
content:
application/json:
schema:
type: array
items:
allOf: &ref_170
- type: object
properties: *ref_96
required: *ref_97
- type: object
properties:
jobs:
type: array
items:
type: object
properties:
id:
type: string
success:
type: boolean
duration_ms:
type: number
required:
- id
- success
- duration_ms
/w/{workspace}/schedules/setdefaulthandler:
post:
summary: Set default error or recoevery handler
operationId: setDefaultErrorOrRecoveryHandler
tags:
- schedule
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: Handler description
required: true
content:
application/json:
schema:
type: object
properties:
handler_type:
type: string
enum:
- error
- recovery
- success
override_existing:
type: boolean
path:
type: string
extra_args:
type: object
number_of_occurence:
type: integer
number_of_occurence_exact:
type: boolean
workspace_handler_muted:
type: boolean
required:
- handler_type
- override_existing
responses:
'201':
description: default error handler set
/w/{workspace}/http_triggers/create:
post:
summary: create http trigger
operationId: createHttpTrigger
tags:
- http_trigger
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: new http trigger
required: true
content:
application/json:
schema:
type: object
properties: &ref_175
path:
type: string
script_path:
type: string
route_path:
type: string
static_asset_config:
type: object
properties:
s3:
type: string
storage:
type: string
filename:
type: string
required:
- s3
is_flow:
type: boolean
http_method:
type: string
enum:
- get
- post
- put
- delete
- patch
is_async:
type: boolean
requires_auth:
type: boolean
required: &ref_176
- path
- script_path
- route_path
- is_flow
- is_async
- requires_auth
- http_method
responses:
'201':
description: http trigger created
content:
text/plain:
schema:
type: string
/w/{workspace}/http_triggers/update/{path}:
post:
summary: update http trigger
operationId: updateHttpTrigger
tags:
- http_trigger
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
requestBody:
description: updated trigger
required: true
content:
application/json:
schema:
type: object
properties: &ref_177
path:
type: string
script_path:
type: string
route_path:
type: string
static_asset_config:
type: object
properties:
s3:
type: string
storage:
type: string
filename:
type: string
required:
- s3
is_flow:
type: boolean
http_method:
type: string
enum:
- get
- post
- put
- delete
- patch
is_async:
type: boolean
requires_auth:
type: boolean
required: &ref_178
- path
- script_path
- is_flow
- kind
- is_async
- requires_auth
- http_method
responses:
'200':
description: http trigger updated
content:
text/plain:
schema:
type: string
/w/{workspace}/http_triggers/delete/{path}:
delete:
summary: delete http trigger
operationId: deleteHttpTrigger
tags:
- http_trigger
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
responses:
'200':
description: http trigger deleted
content:
text/plain:
schema:
type: string
/w/{workspace}/http_triggers/get/{path}:
get:
summary: get http trigger
operationId: getHttpTrigger
tags:
- http_trigger
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
responses:
'200':
description: http trigger deleted
content:
application/json:
schema:
type: object
properties: &ref_98
path:
type: string
edited_by:
type: string
edited_at:
type: string
format: date-time
script_path:
type: string
route_path:
type: string
static_asset_config:
type: object
properties:
s3:
type: string
storage:
type: string
filename:
type: string
required:
- s3
is_flow:
type: boolean
extra_perms:
type: object
additionalProperties:
type: boolean
email:
type: string
workspace_id:
type: string
http_method:
type: string
enum:
- get
- post
- put
- delete
- patch
is_async:
type: boolean
requires_auth:
type: boolean
required: &ref_99
- path
- edited_by
- edited_at
- script_path
- route_path
- extra_perms
- is_flow
- email
- workspace_id
- is_async
- requires_auth
- http_method
/w/{workspace}/http_triggers/list:
get:
summary: list http triggers
operationId: listHttpTriggers
tags:
- http_trigger
parameters:
- required: true
name: workspace
in: path
schema: *ref_0
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
- name: path
description: filter by path
in: query
schema:
type: string
- name: is_flow
in: query
schema:
type: boolean
- name: path_start
in: query
schema:
type: string
responses:
'200':
description: http trigger list
content:
application/json:
schema:
type: array
items:
type: object
properties: *ref_98
required: *ref_99
/w/{workspace}/http_triggers/exists/{path}:
get:
summary: does http trigger exists
operationId: existsHttpTrigger
tags:
- http_trigger
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
responses:
'200':
description: http trigger exists
content:
application/json:
schema:
type: boolean
/w/{workspace}/http_triggers/route_exists:
post:
summary: does route exists
operationId: existsRoute
tags:
- http_trigger
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: route exists request
required: true
content:
application/json:
schema:
type: object
properties:
route_path:
type: string
http_method:
type: string
enum:
- get
- post
- put
- delete
- patch
required:
- kind
- route_path
- http_method
responses:
'200':
description: route exists
content:
application/json:
schema:
type: boolean
/w/{workspace}/websocket_triggers/create:
post:
summary: create websocket trigger
operationId: createWebsocketTrigger
tags:
- websocket_trigger
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: new websocket trigger
required: true
content:
application/json:
schema:
type: object
properties: &ref_179
path:
type: string
script_path:
type: string
is_flow:
type: boolean
url:
type: string
enabled:
type: boolean
filters:
type: array
items:
type: object
properties:
key:
type: string
value: {}
required:
- key
- value
initial_messages:
type: array
items:
anyOf: &ref_100
- type: object
properties:
raw_message:
type: string
required:
- raw_message
- type: object
properties:
runnable_result:
type: object
properties:
path:
type: string
args:
type: object
additionalProperties: *ref_18
is_flow:
type: boolean
required:
- path
- args
- is_flow
required:
- runnable_result
url_runnable_args:
type: object
additionalProperties: *ref_18
required: &ref_180
- path
- script_path
- url
- is_flow
- filters
- initial_messages
- url_runnable_args
responses:
'201':
description: websocket trigger created
content:
text/plain:
schema:
type: string
/w/{workspace}/websocket_triggers/update/{path}:
post:
summary: update websocket trigger
operationId: updateWebsocketTrigger
tags:
- websocket_trigger
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
requestBody:
description: updated trigger
required: true
content:
application/json:
schema:
type: object
properties: &ref_181
url:
type: string
path:
type: string
script_path:
type: string
is_flow:
type: boolean
filters:
type: array
items:
type: object
properties:
key:
type: string
value: {}
required:
- key
- value
initial_messages:
type: array
items:
anyOf: *ref_100
url_runnable_args:
type: object
additionalProperties: *ref_18
required: &ref_182
- path
- script_path
- url
- is_flow
- filters
- initial_messages
- url_runnable_args
responses:
'200':
description: websocket trigger updated
content:
text/plain:
schema:
type: string
/w/{workspace}/websocket_triggers/delete/{path}:
delete:
summary: delete websocket trigger
operationId: deleteWebsocketTrigger
tags:
- websocket_trigger
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
responses:
'200':
description: websocket trigger deleted
content:
text/plain:
schema:
type: string
/w/{workspace}/websocket_triggers/get/{path}:
get:
summary: get websocket trigger
operationId: getWebsocketTrigger
tags:
- websocket_trigger
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
responses:
'200':
description: websocket trigger deleted
content:
application/json:
schema:
type: object
properties: &ref_101
path:
type: string
edited_by:
type: string
edited_at:
type: string
format: date-time
script_path:
type: string
url:
type: string
is_flow:
type: boolean
extra_perms:
type: object
additionalProperties:
type: boolean
email:
type: string
workspace_id:
type: string
server_id:
type: string
last_server_ping:
type: string
format: date-time
error:
type: string
enabled:
type: boolean
filters:
type: array
items:
type: object
properties:
key:
type: string
value: {}
required:
- key
- value
initial_messages:
type: array
items:
anyOf: *ref_100
url_runnable_args:
type: object
additionalProperties: *ref_18
required: &ref_102
- path
- edited_by
- edited_at
- script_path
- url
- extra_perms
- is_flow
- email
- workspace_id
- enabled
- filters
- initial_messages
- url_runnable_args
/w/{workspace}/websocket_triggers/list:
get:
summary: list websocket triggers
operationId: listWebsocketTriggers
tags:
- websocket_trigger
parameters:
- required: true
name: workspace
in: path
schema: *ref_0
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
- name: path
description: filter by path
in: query
schema:
type: string
- name: is_flow
in: query
schema:
type: boolean
- name: path_start
in: query
schema:
type: string
responses:
'200':
description: websocket trigger list
content:
application/json:
schema:
type: array
items:
type: object
properties: *ref_101
required: *ref_102
/w/{workspace}/websocket_triggers/exists/{path}:
get:
summary: does websocket trigger exists
operationId: existsWebsocketTrigger
tags:
- websocket_trigger
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
responses:
'200':
description: websocket trigger exists
content:
application/json:
schema:
type: boolean
/w/{workspace}/websocket_triggers/setenabled/{path}:
post:
summary: set enabled websocket trigger
operationId: setWebsocketTriggerEnabled
tags:
- websocket_trigger
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
requestBody:
description: updated websocket trigger enable
required: true
content:
application/json:
schema:
type: object
properties:
enabled:
type: boolean
required:
- enabled
responses:
'200':
description: websocket trigger enabled set
content:
text/plain:
schema:
type: string
/groups/list:
get:
summary: list instance groups
operationId: listInstanceGroups
tags:
- group
responses:
'200':
description: instance group list
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_104
name:
type: string
summary:
type: string
emails:
type: array
items:
type: string
required: &ref_105
- name
/groups/get/{name}:
get:
summary: get instance group
operationId: getInstanceGroup
tags:
- group
parameters:
- name: name
in: path
required: true
schema: *ref_103
responses:
'200':
description: instance group
content:
application/json:
schema:
type: object
properties: *ref_104
required: *ref_105
/groups/create:
post:
summary: create instance group
operationId: createInstanceGroup
tags:
- group
requestBody:
description: create instance group
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
summary:
type: string
required:
- name
responses:
'200':
description: instance group created
content:
text/plain:
schema:
type: string
/groups/update/{name}:
post:
summary: update instance group
operationId: updateInstanceGroup
tags:
- group
parameters:
- name: name
in: path
required: true
schema: *ref_103
requestBody:
description: update instance group
required: true
content:
application/json:
schema:
type: object
properties:
new_summary:
type: string
required:
- new_summary
responses:
'200':
description: instance group updated
content:
text/plain:
schema:
type: string
/groups/delete/{name}:
delete:
summary: delete instance group
operationId: deleteInstanceGroup
tags:
- group
parameters:
- name: name
in: path
required: true
schema: *ref_103
responses:
'200':
description: instance group deleted
content:
text/plain:
schema:
type: string
/groups/adduser/{name}:
post:
summary: add user to instance group
operationId: addUserToInstanceGroup
tags:
- group
parameters:
- name: name
in: path
required: true
schema: *ref_103
requestBody:
description: user to add to instance group
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
required:
- email
responses:
'200':
description: user added to instance group
content:
text/plain:
schema:
type: string
/groups/removeuser/{name}:
post:
summary: remove user from instance group
operationId: removeUserFromInstanceGroup
tags:
- group
parameters:
- name: name
in: path
required: true
schema: *ref_103
requestBody:
description: user to remove from instance group
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
required:
- email
responses:
'200':
description: user removed from instance group
content:
text/plain:
schema:
type: string
/groups/export:
get:
summary: export instance groups
operationId: exportInstanceGroups
tags:
- group
responses:
'200':
description: exported instance groups
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_106
name:
type: string
summary:
type: string
emails:
type: array
items:
type: string
id:
type: string
scim_display_name:
type: string
external_id:
type: string
required: &ref_107
- name
/groups/overwrite:
post:
summary: overwrite instance groups
operationId: overwriteInstanceGroups
tags:
- group
requestBody:
description: overwrite instance groups
required: true
content:
application/json:
schema:
type: array
items:
type: object
properties: *ref_106
required: *ref_107
responses:
'200':
description: success message
content:
text/plain:
schema:
type: string
/w/{workspace}/groups/list:
get:
summary: list groups
operationId: listGroups
tags:
- group
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
responses:
'200':
description: group list
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_108
name:
type: string
summary:
type: string
members:
type: array
items:
type: string
extra_perms:
type: object
additionalProperties:
type: boolean
required: &ref_109
- name
/w/{workspace}/groups/listnames:
get:
summary: list group names
operationId: listGroupNames
tags:
- group
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- 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:
- name: workspace
in: path
required: true
schema: *ref_0
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: name
in: path
required: true
schema: *ref_103
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: name
in: path
required: true
schema: *ref_103
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: name
in: path
required: true
schema: *ref_103
responses:
'200':
description: group
content:
application/json:
schema:
type: object
properties: *ref_108
required: *ref_109
/w/{workspace}/groups/adduser/{name}:
post:
summary: add user to group
operationId: addUserToGroup
tags:
- group
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: name
in: path
required: true
schema: *ref_103
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: name
in: path
required: true
schema: *ref_103
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
responses:
'200':
description: folder list
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_110
name:
type: string
owners:
type: array
items:
type: string
extra_perms:
type: object
additionalProperties:
type: boolean
summary:
type: string
created_by:
type: string
edited_at:
type: string
format: date-time
required: &ref_111
- name
- owners
- extra_perms
/w/{workspace}/folders/listnames:
get:
summary: list folder names
operationId: listFolderNames
tags:
- folder
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- 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:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: create folder
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
summary:
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: name
in: path
required: true
schema: *ref_103
requestBody:
description: update folder
required: true
content:
application/json:
schema:
type: object
properties:
summary:
type: string
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: name
in: path
required: true
schema: *ref_103
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: name
in: path
required: true
schema: *ref_103
responses:
'200':
description: folder
content:
application/json:
schema:
type: object
properties: *ref_110
required: *ref_111
/w/{workspace}/folders/getusage/{name}:
get:
summary: get folder usage
operationId: getFolderUsage
tags:
- folder
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: name
in: path
required: true
schema: *ref_103
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: name
in: path
required: true
schema: *ref_103
requestBody:
description: owner user to folder
required: true
content:
application/json:
schema:
type: object
properties:
owner:
type: string
required:
- owner
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: name
in: path
required: true
schema: *ref_103
requestBody:
description: added owner to folder
required: true
content:
application/json:
schema:
type: object
properties:
owner:
type: string
write:
type: boolean
required:
- owner
responses:
'200':
description: owner removed from folder
content:
text/plain:
schema:
type: string
/workers/list:
get:
summary: list workers
operationId: listWorkers
tags:
- worker
parameters:
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
- name: ping_since
in: query
required: false
description: >-
number of seconds the worker must have had a last ping more recent
of (default to 300)
schema:
type: integer
responses:
'200':
description: a list of workers
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_183
worker:
type: string
worker_instance:
type: string
last_ping:
type: number
started_at:
type: string
format: date-time
ip:
type: string
jobs_executed:
type: integer
custom_tags:
type: array
items:
type: string
worker_group:
type: string
wm_version:
type: string
last_job_id:
type: string
last_job_workspace_id:
type: string
occupancy_rate:
type: number
occupancy_rate_15s:
type: number
occupancy_rate_5m:
type: number
occupancy_rate_30m:
type: number
memory:
type: number
vcpus:
type: number
memory_usage:
type: number
wm_memory_usage:
type: number
required: &ref_184
- worker
- worker_instance
- ping_at
- started_at
- ip
- jobs_executed
- worker_group
- wm_version
/workers/exists_worker_with_tag:
get:
summary: exists worker with tag
operationId: existsWorkerWithTag
tags:
- worker
parameters:
- name: tag
in: query
required: true
schema:
type: string
responses:
'200':
description: whether a worker with the tag exists
content:
application/json:
schema:
type: boolean
/workers/queue_metrics:
get:
summary: get queue metrics
operationId: getQueueMetrics
tags:
- worker
responses:
'200':
description: metrics
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
values:
type: array
items:
type: object
properties:
created_at:
type: string
value:
type: number
required:
- created_at
- value
required:
- id
- values
/workers/queue_counts:
get:
summary: get counts of jobs waiting for an executor per tag
operationId: getCountsOfJobsWaitingPerTag
tags:
- worker
responses:
'200':
description: queue counts
content:
application/json:
schema:
type: object
additionalProperties:
type: integer
/configs/list_worker_groups:
get:
summary: list worker groups
operationId: listWorkerGroups
tags:
- config
responses:
'200':
description: a list of worker group configs
content:
application/json:
schema:
type: array
items:
type: object
properties:
name:
type: string
config: {}
required:
- name
- config
/configs/get/{name}:
get:
summary: get config
operationId: get config
tags:
- config
parameters:
- name: name
in: path
required: true
schema: *ref_103
responses:
'200':
description: a config
content:
application/json:
schema: {}
/configs/update/{name}:
post:
summary: Update config
operationId: updateConfig
tags:
- config
parameters:
- name: name
in: path
required: true
schema: *ref_103
requestBody:
description: worker group
required: true
content:
application/json:
schema: {}
responses:
'200':
description: Update a worker group
content:
text/plain:
schema:
type: string
delete:
summary: Delete Config
operationId: deleteConfig
tags:
- config
parameters:
- name: name
in: path
required: true
schema: *ref_103
responses:
'200':
description: Delete config
content:
text/plain:
schema:
type: string
/configs/list:
get:
summary: list configs
operationId: listConfigs
tags:
- config
responses:
'200':
description: list of configs
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_225
name:
type: string
config:
type: object
required: &ref_226
- name
/configs/list_autoscaling_events/{worker_group}:
get:
summary: List autoscaling events
operationId: listAutoscalingEvents
tags:
- config
parameters:
- name: worker_group
in: path
required: true
schema:
type: string
responses:
'200':
description: List of autoscaling events
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_229
id:
type: integer
format: int64
worker_group:
type: string
event_type:
type: string
desired_workers:
type: integer
reason:
type: string
applied_at:
type: string
format: date-time
/w/{workspace}/acls/get/{kind}/{path}:
get:
summary: get granular acls
operationId: getGranularAcls
tags:
- granular_acl
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
- name: kind
in: path
required: true
schema:
type: string
enum:
- script
- group_
- resource
- schedule
- variable
- flow
- folder
- app
- raw_app
- http_trigger
- websocket_trigger
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
- name: kind
in: path
required: true
schema:
type: string
enum:
- script
- group_
- resource
- schedule
- variable
- flow
- folder
- app
- raw_app
- http_trigger
- websocket_trigger
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
- name: kind
in: path
required: true
schema:
type: string
enum:
- script
- group_
- resource
- schedule
- variable
- flow
- folder
- app
- raw_app
- http_trigger
- websocket_trigger
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:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
responses:
'204':
description: flow preview captured
/w/{workspace}/capture/{path}:
put:
summary: create flow preview capture
operationId: createCapture
tags:
- capture
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
responses:
'201':
description: flow preview capture created
get:
summary: get flow preview capture
operationId: getCapture
tags:
- capture
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
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:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
content:
application/json:
schema:
type: object
properties:
path:
type: string
favorite_kind:
type: string
enum:
- flow
- app
- script
- raw_app
responses:
'200':
description: star item
/w/{workspace}/favorites/unstar:
post:
summary: unstar item
operationId: unstar
tags:
- favorite
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
content:
application/json:
schema:
type: object
properties:
path:
type: string
favorite_kind:
type: string
enum:
- flow
- app
- script
- raw_app
responses:
'200':
description: unstar item
/w/{workspace}/inputs/history:
get:
summary: List Inputs used in previously completed jobs
operationId: getInputHistory
tags:
- input
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: runnable_id
in: query
schema: &ref_112
type: string
- name: runnable_type
in: query
schema: &ref_113
type: string
enum: &ref_142
- ScriptHash
- ScriptPath
- FlowPath
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
responses:
'200':
description: Input history for completed jobs
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_114
id:
type: string
name:
type: string
created_by:
type: string
created_at:
type: string
format: date-time
is_public:
type: boolean
success:
type: boolean
required: &ref_115
- id
- name
- args
- created_by
- created_at
- is_public
/w/{workspace}/inputs/{jobOrInputId}/args:
get:
summary: Get args from history or saved input
operationId: getArgsFromHistoryOrSavedInput
tags:
- input
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: jobOrInputId
in: path
required: true
schema:
type: string
- name: input
in: query
schema:
type: boolean
- name: allow_large
in: query
schema:
type: boolean
responses:
'200':
description: args
content:
application/json:
schema: {}
/w/{workspace}/inputs/list:
get:
summary: List saved Inputs for a Runnable
operationId: listInputs
tags:
- input
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: runnable_id
in: query
schema: *ref_112
- name: runnable_type
in: query
schema: *ref_113
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
responses:
'200':
description: Saved Inputs for a Runnable
content:
application/json:
schema:
type: array
items:
type: object
properties: *ref_114
required: *ref_115
/w/{workspace}/inputs/create:
post:
summary: Create an Input for future use in a script or flow
operationId: createInput
tags:
- input
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: runnable_id
in: query
schema: *ref_112
- name: runnable_type
in: query
schema: *ref_113
requestBody:
description: Input
required: true
content:
application/json:
schema:
type: object
properties: &ref_138
name:
type: string
args:
type: object
required: &ref_139
- name
- args
- created_by
responses:
'201':
description: Input created
content:
text/plain:
schema:
type: string
format: uuid
/w/{workspace}/inputs/update:
post:
summary: Update an Input
operationId: updateInput
tags:
- input
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: UpdateInput
required: true
content:
application/json:
schema:
type: object
properties: &ref_140
id:
type: string
name:
type: string
is_public:
type: boolean
required: &ref_141
- id
- name
- is_public
responses:
'201':
description: Input updated
content:
text/plain:
schema:
type: string
format: uuid
/w/{workspace}/inputs/delete/{input}:
post:
summary: Delete a Saved Input
operationId: deleteInput
tags:
- input
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: input
in: path
required: true
schema: &ref_134
type: string
responses:
'200':
description: Input deleted
content:
text/plain:
schema:
type: string
format: uuid
/w/{workspace}/job_helpers/duckdb_connection_settings:
post:
summary: >-
Converts an S3 resource to the set of instructions necessary to connect
DuckDB to an S3 bucket
operationId: duckdbConnectionSettings
tags:
- helpers
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: S3 resource to connect to
required: true
content:
application/json:
schema:
type: object
properties:
s3_resource:
type: object
properties: &ref_116
bucket:
type: string
region:
type: string
endPoint:
type: string
useSSL:
type: boolean
accessKey:
type: string
secretKey:
type: string
pathStyle:
type: boolean
required: &ref_117
- bucket
- region
- endPoint
- useSSL
- pathStyle
responses:
'200':
description: Connection settings
content:
application/json:
schema:
type: object
properties:
connection_settings_str:
type: string
/w/{workspace}/job_helpers/v2/duckdb_connection_settings:
post:
summary: >-
Converts an S3 resource to the set of instructions necessary to connect
DuckDB to an S3 bucket
operationId: duckdbConnectionSettingsV2
tags:
- helpers
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: >-
S3 resource path to use to generate the connection settings. If empty,
the S3 resource defined in the workspace settings will be used
required: true
content:
application/json:
schema:
type: object
properties:
s3_resource_path:
type: string
responses:
'200':
description: Connection settings
content:
application/json:
schema:
type: object
properties:
connection_settings_str:
type: string
required:
- connection_settings_str
/w/{workspace}/job_helpers/polars_connection_settings:
post:
summary: >-
Converts an S3 resource to the set of arguments necessary to connect
Polars to an S3 bucket
operationId: polarsConnectionSettings
tags:
- helpers
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: S3 resource to connect to
required: true
content:
application/json:
schema:
type: object
properties:
s3_resource:
type: object
properties: *ref_116
required: *ref_117
responses:
'200':
description: Connection settings
content:
application/json:
schema:
type: object
properties:
endpoint_url:
type: string
key:
type: string
secret:
type: string
use_ssl:
type: boolean
cache_regions:
type: boolean
client_kwargs:
type: object
properties: &ref_118
region_name:
type: string
required: &ref_119
- region_name
required:
- endpoint_url
- use_ssl
- cache_regions
- client_kwargs
/w/{workspace}/job_helpers/v2/polars_connection_settings:
post:
summary: >-
Converts an S3 resource to the set of arguments necessary to connect
Polars to an S3 bucket
operationId: polarsConnectionSettingsV2
tags:
- helpers
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: >-
S3 resource path to use to generate the connection settings. If empty,
the S3 resource defined in the workspace settings will be used
required: true
content:
application/json:
schema:
type: object
properties:
s3_resource_path:
type: string
responses:
'200':
description: Connection settings
content:
application/json:
schema:
type: object
properties:
s3fs_args:
type: object
properties:
endpoint_url:
type: string
key:
type: string
secret:
type: string
use_ssl:
type: boolean
cache_regions:
type: boolean
client_kwargs:
type: object
properties: *ref_118
required: *ref_119
required:
- endpoint_url
- use_ssl
- cache_regions
- client_kwargs
storage_options:
type: object
properties:
aws_endpoint_url:
type: string
aws_access_key_id:
type: string
aws_secret_access_key:
type: string
aws_region:
type: string
aws_allow_http:
type: string
required:
- aws_endpoint_url
- aws_region
- aws_allow_http
required:
- s3fs_args
- storage_options
/w/{workspace}/job_helpers/v2/s3_resource_info:
post:
summary: >-
Returns the s3 resource associated to the provided path, or the
workspace default S3 resource
operationId: s3ResourceInfo
tags:
- helpers
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
requestBody:
description: >-
S3 resource path to use. If empty, the S3 resource defined in the
workspace settings will be used
required: true
content:
application/json:
schema:
type: object
properties:
s3_resource_path:
type: string
responses:
'200':
description: Connection settings
content:
application/json:
schema:
type: object
properties: *ref_116
required: *ref_117
/w/{workspace}/job_helpers/test_connection:
get:
summary: Test connection to the workspace object storage
operationId: datasetStorageTestConnection
tags:
- helpers
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: storage
in: query
schema:
type: string
responses:
'200':
description: Connection settings
content:
application/json:
schema: {}
/w/{workspace}/job_helpers/list_stored_files:
get:
summary: List the file keys available in a workspace object storage
operationId: listStoredFiles
tags:
- helpers
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: max_keys
in: query
required: true
schema:
type: integer
- name: marker
in: query
schema:
type: string
- name: prefix
in: query
schema:
type: string
- name: storage
in: query
schema:
type: string
responses:
'200':
description: List of file keys
content:
application/json:
schema:
type: object
properties:
next_marker:
type: string
windmill_large_files:
type: array
items:
type: object
properties: &ref_202
s3:
type: string
required: &ref_203
- s3
restricted_access:
type: boolean
required:
- windmill_large_files
/w/{workspace}/job_helpers/load_file_metadata:
get:
summary: Load metadata of the file
operationId: loadFileMetadata
tags:
- helpers
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: file_key
in: query
required: true
schema:
type: string
- name: storage
in: query
schema:
type: string
responses:
'200':
description: FileMetadata
content:
application/json:
schema:
type: object
properties: &ref_204
mime_type:
type: string
size_in_bytes:
type: integer
last_modified:
type: string
format: date-time
expires:
type: string
format: date-time
version_id:
type: string
/w/{workspace}/job_helpers/load_file_preview:
get:
summary: Load a preview of the file
operationId: loadFilePreview
tags:
- helpers
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: file_key
in: query
required: true
schema:
type: string
- name: file_size_in_bytes
in: query
schema:
type: integer
- name: file_mime_type
in: query
schema:
type: string
- name: csv_separator
in: query
schema:
type: string
- name: csv_has_header
in: query
schema:
type: boolean
- name: read_bytes_from
in: query
schema:
type: integer
- name: read_bytes_length
in: query
schema:
type: integer
- name: storage
in: query
schema:
type: string
responses:
'200':
description: FilePreview
content:
application/json:
schema:
type: object
properties: &ref_205
msg:
type: string
content:
type: string
content_type:
type: string
enum:
- RawText
- Csv
- Parquet
- Unknown
required: &ref_206
- content_type
/w/{workspace}/job_helpers/load_parquet_preview/{path}:
get:
summary: Load a preview of a parquet file
operationId: loadParquetPreview
tags:
- helpers
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
- name: offset
in: query
schema:
type: number
- name: limit
in: query
schema:
type: number
- name: sort_col
in: query
schema:
type: string
- name: sort_desc
in: query
schema:
type: boolean
- name: search_col
in: query
schema:
type: string
- name: search_term
in: query
schema:
type: string
- name: storage
in: query
schema:
type: string
responses:
'200':
description: Parquet Preview
content:
application/json:
schema: {}
/w/{workspace}/job_helpers/load_table_count/{path}:
get:
summary: Load the table row count
operationId: loadTableRowCount
tags:
- helpers
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
- name: search_col
in: query
schema:
type: string
- name: search_term
in: query
schema:
type: string
- name: storage
in: query
schema:
type: string
responses:
'200':
description: Table count
content:
application/json:
schema:
type: object
properties:
count:
type: number
/w/{workspace}/job_helpers/load_csv_preview/{path}:
get:
summary: Load a preview of a csv file
operationId: loadCsvPreview
tags:
- helpers
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: path
in: path
required: true
schema: *ref_23
- name: offset
in: query
schema:
type: number
- name: limit
in: query
schema:
type: number
- name: sort_col
in: query
schema:
type: string
- name: sort_desc
in: query
schema:
type: boolean
- name: search_col
in: query
schema:
type: string
- name: search_term
in: query
schema:
type: string
- name: storage
in: query
schema:
type: string
- name: csv_separator
in: query
schema:
type: string
responses:
'200':
description: Csv Preview
content:
application/json:
schema: {}
/w/{workspace}/job_helpers/delete_s3_file:
delete:
summary: Permanently delete file from S3
operationId: deleteS3File
tags:
- helpers
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: file_key
in: query
required: true
schema:
type: string
- name: storage
in: query
schema:
type: string
responses:
'200':
description: Confirmation
content:
application/json:
schema: {}
/w/{workspace}/job_helpers/move_s3_file:
get:
summary: Move a S3 file from one path to the other within the same bucket
operationId: moveS3File
tags:
- helpers
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: src_file_key
in: query
required: true
schema:
type: string
- name: dest_file_key
in: query
required: true
schema:
type: string
- name: storage
in: query
schema:
type: string
responses:
'200':
description: Confirmation
content:
application/json:
schema: {}
/w/{workspace}/job_helpers/upload_s3_file:
post:
summary: Upload file to S3 bucket
operationId: fileUpload
tags:
- helpers
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: file_key
in: query
required: false
schema:
type: string
- name: file_extension
in: query
required: false
schema:
type: string
- name: s3_resource_path
in: query
required: false
schema:
type: string
- name: resource_type
in: query
required: false
schema:
type: string
- name: storage
in: query
schema:
type: string
- name: content_type
in: query
schema:
type: string
- name: content_disposition
in: query
schema:
type: string
requestBody:
description: File content
required: true
content:
application/octet-stream:
schema:
type: string
format: binary
responses:
'200':
description: File upload status
content:
application/json:
schema:
type: object
properties:
file_key:
type: string
required:
- file_key
/w/{workspace}/job_helpers/download_s3_file:
get:
summary: Download file to S3 bucket
operationId: fileDownload
tags:
- helpers
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: file_key
in: query
required: true
schema:
type: string
- name: s3_resource_path
in: query
required: false
schema:
type: string
- name: resource_type
in: query
required: false
schema:
type: string
- name: storage
in: query
schema:
type: string
responses:
'200':
description: Chunk of the downloaded file
content:
application/octet-stream:
schema:
type: string
format: binary
/w/{workspace}/job_helpers/download_s3_parquet_file_as_csv:
get:
summary: Download file to S3 bucket
operationId: fileDownloadParquetAsCsv
tags:
- helpers
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: file_key
in: query
required: true
schema:
type: string
- name: s3_resource_path
in: query
required: false
schema:
type: string
- name: resource_type
in: query
required: false
schema:
type: string
responses:
'200':
description: The downloaded file
content:
text/csv:
schema:
type: string
/w/{workspace}/job_metrics/get/{id}:
post:
summary: get job metrics
operationId: getJobMetrics
tags:
- metrics
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
requestBody:
description: parameters for statistics retrieval
required: true
content:
application/json:
schema:
type: object
properties:
timeseries_max_datapoints:
type: integer
from_timestamp:
type: string
format: date-time
to_timestamp:
type: string
format: date-time
responses:
'200':
description: job details
content:
application/json:
schema:
type: object
properties:
metrics_metadata:
type: array
items:
type: object
properties: &ref_209
id:
type: string
name:
type: string
required: &ref_210
- id
scalar_metrics:
type: array
items:
type: object
properties: &ref_211
metric_id:
type: string
value:
type: number
required: &ref_212
- id
- value
timeseries_metrics:
type: array
items:
type: object
properties: &ref_213
metric_id:
type: string
values:
type: array
items:
type: object
properties: &ref_215
timestamp:
type: string
format: date-time
value:
type: number
required: &ref_216
- timestamp
- value
required: &ref_214
- id
- values
/w/{workspace}/job_metrics/set_progress/{id}:
post:
summary: set job metrics
operationId: setJobProgress
tags:
- metrics
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
requestBody:
description: parameters for statistics retrieval
required: true
content:
application/json:
schema:
type: object
properties:
percent:
type: integer
flow_job_id:
type: string
format: uuid
responses:
'200':
description: Job progress updated
content:
application/json:
schema: {}
/w/{workspace}/job_metrics/get_progress/{id}:
get:
summary: get job progress
operationId: getJobProgress
tags:
- metrics
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: id
in: path
required: true
schema: *ref_91
responses:
'200':
description: job progress between 0 and 99
content:
application/json:
schema:
type: integer
/service_logs/list_files:
get:
summary: list log files ordered by timestamp
operationId: listLogFiles
tags:
- service_logs
parameters:
- name: before
description: filter on started before (inclusive) timestamp
in: query
schema: *ref_120
- name: after
description: filter on created after (exclusive) timestamp
in: query
schema: *ref_121
- name: with_error
in: query
required: false
schema:
type: boolean
responses:
'200':
description: time
content:
application/json:
schema:
type: array
items:
type: object
properties:
hostname:
type: string
mode:
type: string
worker_group:
type: string
log_ts:
type: string
format: date-time
file_path:
type: string
ok_lines:
type: integer
err_lines:
type: integer
json_fmt:
type: boolean
required:
- hostname
- mode
- log_ts
- file_path
- json_fmt
/service_logs/get_log_file/{path}:
get:
summary: get log file by path
operationId: getLogFile
tags:
- service_logs
parameters:
- name: path
in: path
required: true
schema: *ref_23
responses:
'200':
description: log stream
content:
text/plain:
schema:
type: string
/concurrency_groups/list:
get:
summary: List all concurrency groups
operationId: listConcurrencyGroups
tags:
- concurrencyGroups
responses:
'200':
description: all concurrency groups
content:
application/json:
schema:
type: array
items:
type: object
properties: &ref_219
concurrency_key:
type: string
total_running:
type: number
required: &ref_220
- concurrency_key
- total_running
/concurrency_groups/prune/{concurrency_id}:
delete:
summary: Delete concurrency group
operationId: deleteConcurrencyGroup
tags:
- concurrencyGroups
parameters:
- name: concurrency_id
in: path
required: true
schema: &ref_136
type: string
responses:
'200':
description: concurrency group removed
content:
application/json:
schema:
type: object
properties: {}
/concurrency_groups/{id}/key:
get:
summary: Get the concurrency key for a job that has concurrency limits enabled
operationId: getConcurrencyKey
tags:
- concurrencyGroups
parameters:
- name: id
in: path
required: true
schema: *ref_91
responses:
'200':
description: concurrency key for given job
content:
application/json:
schema:
type: string
/w/{workspace}/concurrency_groups/list_jobs:
get:
summary: Get intervals of job runtime concurrency
operationId: listExtendedJobs
tags:
- concurrencyGroups
- job
parameters:
- name: concurrency_key
in: query
required: false
schema:
type: string
- name: row_limit
in: query
required: false
schema:
type: number
- name: workspace
in: path
required: true
schema: *ref_0
- name: created_by
description: mask to filter exact matching user creator
in: query
schema: *ref_53
- name: label
description: >-
mask to filter exact matching job's label (job labels are completed
jobs with as a result an object containing a string in the array at
key 'wm_labels')
in: query
schema: *ref_86
- 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: *ref_46
- name: script_path_exact
description: mask to filter exact matching path
in: query
schema: *ref_70
- name: script_path_start
description: mask to filter matching starting path
in: query
schema: *ref_71
- name: schedule_path
description: mask to filter by schedule path
in: query
schema: *ref_72
- name: script_hash
description: mask to filter exact matching path
in: query
schema: *ref_73
- name: started_before
description: filter on started before (inclusive) timestamp
in: query
schema: *ref_74
- name: started_after
description: filter on started after (exclusive) timestamp
in: query
schema: *ref_75
- name: created_or_started_before
description: >-
filter on created_at for non non started job and started_at
otherwise before (inclusive) timestamp
in: query
schema: *ref_122
- name: running
description: filter on running jobs
in: query
schema: *ref_80
- name: scheduled_for_before_now
description: filter on jobs scheduled_for before now (hence waitinf for a worker)
in: query
schema: *ref_77
- name: created_or_started_after
description: >-
filter on created_at for non non started job and started_at
otherwise after (exclusive) timestamp
in: query
schema: *ref_123
- name: created_or_started_after_completed_jobs
description: >-
filter on created_at for non non started job and started_at
otherwise after (exclusive) timestamp but only for the completed
jobs
in: query
schema: *ref_124
- name: job_kinds
description: >-
filter on job kind (values 'preview', 'script', 'dependencies',
'flow') separated by,
in: query
schema: *ref_78
- name: args
description: >-
filter on jobs containing those args as a json subset (@> in
postgres)
in: query
schema: *ref_81
- name: tag
description: filter on jobs with a given tag/worker group
in: query
schema: *ref_83
- name: result
description: >-
filter on jobs containing those result as a json subset (@> in
postgres)
in: query
schema: *ref_82
- name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
- name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
- 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: has_null_parent
description: has null parent
in: query
schema:
type: boolean
- name: success
description: filter on successful jobs
in: query
schema:
type: boolean
- name: all_workspaces
description: >-
get jobs from all workspaces (only valid if request come from the
`admins` workspace)
in: query
schema:
type: boolean
- name: is_not_schedule
description: is not a scheduled job
in: query
schema:
type: boolean
responses:
'200':
description: time
content:
application/json:
schema:
type: object
properties: &ref_221
jobs:
type: array
items:
oneOf: *ref_92
discriminator: *ref_93
obscured_jobs:
type: array
items:
type: object
properties: &ref_143
typ:
type: string
started_at:
type: string
format: date-time
duration_ms:
type: number
omitted_obscured_jobs:
description: >-
Obscured jobs omitted for security because of too specific
filtering
type: boolean
required: &ref_222
- jobs
- obscured_jobs
/srch/w/{workspace}/index/search/job:
get:
summary: Search through jobs with a string query
operationId: searchJobsIndex
tags:
- indexSearch
parameters:
- name: workspace
in: path
required: true
schema: *ref_0
- name: search_query
in: query
required: true
schema:
type: string
responses:
'200':
description: search results
content:
application/json:
schema:
type: object
properties:
query_parse_errors:
description: >-
a list of the terms that couldn't be parsed (and thus
ignored)
type: array
items:
type: object
properties:
dancer:
type: string
hits:
description: the jobs that matched the query
type: array
items:
type: object
properties: &ref_227
dancer:
type: string
/srch/index/search/service_logs:
get:
summary: Search through service logs with a string query
operationId: searchLogsIndex
tags:
- indexSearch
parameters:
- name: search_query
in: query
required: true
schema:
type: string
- name: mode
in: query
required: true
schema:
type: string
- name: worker_group
in: query
required: false
schema:
type: string
- name: hostname
in: query
required: true
schema:
type: string
- name: min_ts
in: query
required: false
schema:
type: string
format: date-time
- name: max_ts
in: query
required: false
schema:
type: string
format: date-time
responses:
'200':
description: search results
content:
application/json:
schema:
type: object
properties:
query_parse_errors:
description: >-
a list of the terms that couldn't be parsed (and thus
ignored)
type: array
items:
type: string
hits:
description: log files that matched the query
type: array
items:
type: object
properties: &ref_228
dancer:
type: string
/srch/index/search/count_service_logs:
get:
summary: Search and count the log line hits on every provided host
operationId: countSearchLogsIndex
tags:
- indexSearch
parameters:
- name: search_query
in: query
required: true
schema:
type: string
- name: hosts
in: query
required: true
schema:
type: string
- name: min_ts
in: query
required: false
schema:
type: string
format: date-time
- name: max_ts
in: query
required: false
schema:
type: string
format: date-time
responses:
'200':
description: search results
content:
application/json:
schema:
type: object
properties:
query_parse_errors:
description: >-
a list of the terms that couldn't be parsed (and thus
ignored)
type: array
items:
type: string
count_per_host:
description: count of log lines that matched the query per hostname
type: object
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
cookieAuth:
type: apiKey
in: cookie
name: token
parameters:
Key:
name: key
in: path
required: true
schema: *ref_9
WorkspaceId:
name: workspace
in: path
required: true
schema: *ref_0
VersionId:
name: version
in: path
required: true
schema: *ref_125
Token:
name: token
in: path
required: true
schema: *ref_126
AccountId:
name: id
in: path
required: true
schema: *ref_27
ClientName:
name: client_name
in: path
required: true
schema: *ref_26
ScriptPath:
name: path
in: path
required: true
schema: *ref_35
ScriptHash:
name: hash
in: path
required: true
schema: *ref_39
JobId:
name: id
in: path
required: true
schema: *ref_91
Path:
name: path
in: path
required: true
schema: *ref_23
PathId:
name: id
in: path
required: true
schema: *ref_30
PathVersion:
name: version
in: path
required: true
schema: *ref_127
Name:
name: name
in: path
required: true
schema: *ref_103
Page:
name: page
description: which page to return (start at 1, default 1)
in: query
schema: *ref_5
PerPage:
name: per_page
description: number of items to return for a given page (default 30, max 100)
in: query
schema: *ref_6
OrderDesc:
name: order_desc
description: order by desc order (default true)
in: query
schema: *ref_52
CreatedBy:
name: created_by
description: mask to filter exact matching user creator
in: query
schema: *ref_53
Label:
name: label
description: >-
mask to filter exact matching job's label (job labels are completed jobs
with as a result an object containing a string in the array at key
'wm_labels')
in: query
schema: *ref_86
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: *ref_46
WorkerTag:
name: tag
description: Override the tag to use
in: query
schema: *ref_48
CacheTtl:
name: cache_ttl
description: >-
Override the cache time to live (in seconds). Can not be used to disable
caching, only override with a new cache ttl
in: query
schema: *ref_49
NewJobId:
name: job_id
description: >-
The job id to assign to the created job. if missing, job is chosen
randomly using the ULID scheme. If a job id already exists in the queue
or as a completed job, the request to create one will fail (Bad Request)
in: query
schema: *ref_47
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: *ref_50
QueueLimit:
name: queue_limit
description: >
The maximum size of the queue for which the request would get rejected
if that job would push it above that limit
in: query
schema: *ref_51
Payload:
name: payload
description: >
The base64 encoded payload that has been encoded as a JSON. e.g how to
encode such payload encodeURIComponent
`encodeURIComponent(btoa(JSON.stringify({a: 2})))`
in: query
schema: *ref_94
ScriptStartPath:
name: script_path_start
description: mask to filter matching starting path
in: query
schema: *ref_71
SchedulePath:
name: schedule_path
description: mask to filter by schedule path
in: query
schema: *ref_72
ScriptExactPath:
name: script_path_exact
description: mask to filter exact matching path
in: query
schema: *ref_70
ScriptExactHash:
name: script_hash
description: mask to filter exact matching path
in: query
schema: *ref_73
CreatedBefore:
name: created_before
description: filter on created before (inclusive) timestamp
in: query
schema: *ref_128
CreatedAfter:
name: created_after
description: filter on created after (exclusive) timestamp
in: query
schema: *ref_129
StartedBefore:
name: started_before
description: filter on started before (inclusive) timestamp
in: query
schema: *ref_74
StartedAfter:
name: started_after
description: filter on started after (exclusive) timestamp
in: query
schema: *ref_75
Before:
name: before
description: filter on started before (inclusive) timestamp
in: query
schema: *ref_120
CreatedOrStartedAfter:
name: created_or_started_after
description: >-
filter on created_at for non non started job and started_at otherwise
after (exclusive) timestamp
in: query
schema: *ref_123
CreatedOrStartedAfterCompletedJob:
name: created_or_started_after_completed_jobs
description: >-
filter on created_at for non non started job and started_at otherwise
after (exclusive) timestamp but only for the completed jobs
in: query
schema: *ref_124
CreatedOrStartedBefore:
name: created_or_started_before
description: >-
filter on created_at for non non started job and started_at otherwise
before (inclusive) timestamp
in: query
schema: *ref_122
Success:
name: success
description: filter on successful jobs
in: query
schema: *ref_76
ScheduledForBeforeNow:
name: scheduled_for_before_now
description: filter on jobs scheduled_for before now (hence waitinf for a worker)
in: query
schema: *ref_77
Suspended:
name: suspended
description: filter on suspended jobs
in: query
schema: *ref_79
Running:
name: running
description: filter on running jobs
in: query
schema: *ref_80
ArgsFilter:
name: args
description: filter on jobs containing those args as a json subset (@> in postgres)
in: query
schema: *ref_81
Tag:
name: tag
description: filter on jobs with a given tag/worker group
in: query
schema: *ref_83
ResultFilter:
name: result
description: filter on jobs containing those result as a json subset (@> in postgres)
in: query
schema: *ref_82
After:
name: after
description: filter on created after (exclusive) timestamp
in: query
schema: *ref_121
Username:
name: username
description: filter on exact username of user
in: query
schema: *ref_130
Operation:
name: operation
description: filter on exact or prefix name of operation
in: query
schema: *ref_131
ResourceName:
name: resource
description: filter on exact or prefix name of resource
in: query
schema: *ref_132
ActionKind:
name: action_kind
description: filter on type of operation
in: query
schema: *ref_133
JobKinds:
name: job_kinds
description: >-
filter on job kind (values 'preview', 'script', 'dependencies', 'flow')
separated by,
in: query
schema: *ref_78
RunnableId:
name: runnable_id
in: query
schema: *ref_112
RunnableTypeQuery:
name: runnable_type
in: query
schema: *ref_113
InputId:
name: input
in: path
required: true
schema: *ref_134
GetStarted:
name: get_started
in: query
schema: *ref_135
ConcurrencyId:
name: concurrency_id
in: path
required: true
schema: *ref_136
schemas:
AiResource:
type: object
properties: *ref_16
required: *ref_17
Script:
type: object
properties: *ref_37
required: *ref_38
NewScript:
type: object
properties: *ref_42
required: *ref_43
NewScriptWithDraft:
allOf: *ref_137
ScriptHistory:
type: object
properties: *ref_44
required: *ref_45
ScriptArgs:
type: object
additionalProperties: *ref_18
Input:
type: object
properties: *ref_114
required: *ref_115
CreateInput:
type: object
properties: *ref_138
required: *ref_139
UpdateInput:
type: object
properties: *ref_140
required: *ref_141
RunnableType:
type: string
enum: *ref_142
QueuedJob:
type: object
properties: *ref_89
required: *ref_90
CompletedJob:
type: object
properties: *ref_87
required: *ref_88
ObscuredJob:
type: object
properties: *ref_143
Job:
oneOf: *ref_92
discriminator: *ref_93
User:
type: object
properties: *ref_10
required: *ref_11
UserUsage:
type: object
properties: *ref_144
Login:
type: object
properties: *ref_145
required: *ref_146
EditWorkspaceUser:
type: object
properties: *ref_147
TruncatedToken:
type: object
properties: *ref_40
required: *ref_41
NewToken:
type: object
properties: *ref_148
NewTokenImpersonate:
type: object
properties: *ref_149
required: *ref_150
ListableVariable:
type: object
properties: *ref_24
required: *ref_25
ContextualVariable:
type: object
properties: *ref_151
required: *ref_152
CreateVariable:
type: object
properties: *ref_153
required: *ref_154
EditVariable:
type: object
properties: *ref_155
AuditLog:
type: object
properties: *ref_1
required: *ref_2
MainArgSignature:
type: object
properties:
type:
type: string
enum:
- Valid
- Invalid
error:
type: string
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
no_main_func:
type: boolean
nullable: true
has_preprocessor:
type: boolean
nullable: true
required:
- star_args
- start_kwargs
- args
- type
- error
- no_main_func
- has_preprocessor
Preview:
type: object
properties: *ref_156
required: *ref_157
WorkflowTask:
type: object
properties: *ref_158
required: *ref_159
WorkflowStatusRecord:
type: object
additionalProperties: *ref_160
WorkflowStatus:
type: object
properties: *ref_161
CreateResource:
type: object
properties: *ref_162
required: *ref_163
EditResource:
type: object
properties: *ref_164
Resource:
type: object
properties: *ref_165
required: *ref_166
ListableResource:
type: object
properties: *ref_167
required: *ref_168
ResourceType:
type: object
properties: *ref_28
required: *ref_29
EditResourceType:
type: object
properties: *ref_169
Schedule:
type: object
properties: *ref_96
required: *ref_97
ScheduleWJobs:
allOf: *ref_170
NewSchedule:
type: object
properties: *ref_171
required: *ref_172
EditSchedule:
type: object
properties: *ref_173
required: *ref_174
HttpTrigger:
type: object
properties: *ref_98
required: *ref_99
NewHttpTrigger:
type: object
properties: *ref_175
required: *ref_176
EditHttpTrigger:
type: object
properties: *ref_177
required: *ref_178
TriggersCount:
type: object
properties: *ref_59
WebsocketTrigger:
type: object
properties: *ref_101
required: *ref_102
NewWebsocketTrigger:
type: object
properties: *ref_179
required: *ref_180
EditWebsocketTrigger:
type: object
properties: *ref_181
required: *ref_182
WebsocketTriggerInitialMessage:
anyOf: *ref_100
Group:
type: object
properties: *ref_108
required: *ref_109
InstanceGroup:
type: object
properties: *ref_104
required: *ref_105
Folder:
type: object
properties: *ref_110
required: *ref_111
WorkerPing:
type: object
properties: *ref_183
required: *ref_184
UserWorkspaceList:
type: object
properties: *ref_185
required: *ref_186
CreateWorkspace:
type: object
properties: *ref_187
required: *ref_188
Workspace:
type: object
properties: *ref_7
required: *ref_8
WorkspaceInvite:
type: object
properties: *ref_14
required: *ref_15
GlobalUserInfo:
type: object
properties: *ref_12
required: *ref_13
Flow:
allOf: *ref_58
ExtraPerms:
type: object
additionalProperties: *ref_189
FlowMetadata:
type: object
properties: *ref_190
required: *ref_191
OpenFlowWPath:
allOf: *ref_60
FlowPreview:
type: object
properties: *ref_192
required: *ref_193
RestartedFrom:
type: object
properties: *ref_194
Policy:
type: object
properties: *ref_61
ListableApp:
type: object
properties: *ref_195
required: *ref_196
ListableRawApp:
type: object
properties: *ref_197
required: *ref_198
AppWithLastVersion:
type: object
properties: *ref_62
required: *ref_63
AppWithLastVersionWDraft:
allOf: *ref_199
AppHistory:
type: object
properties: *ref_64
required: *ref_65
FlowVersion:
type: object
properties: *ref_56
required: *ref_57
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: *ref_200
required: *ref_201
HubScriptKind:
name: kind
schema: *ref_36
PolarsClientKwargs:
type: object
properties: *ref_118
required: *ref_119
LargeFileStorage:
type: object
properties: *ref_19
WindmillLargeFile:
type: object
properties: *ref_202
required: *ref_203
WindmillFileMetadata:
type: object
properties: *ref_204
WindmillFilePreview:
type: object
properties: *ref_205
required: *ref_206
S3Resource:
type: object
properties: *ref_116
required: *ref_117
WorkspaceGitSyncSettings:
type: object
properties: *ref_20
WorkspaceDeployUISettings:
type: object
properties: *ref_21
WorkspaceDefaultScripts:
type: object
properties: *ref_22
GitRepositorySettings:
type: object
properties: *ref_207
required: *ref_208
UploadFilePart:
type: object
properties:
part_number:
type: integer
tag:
type: string
required:
- part_number
- tag
MetricMetadata:
type: object
properties: *ref_209
required: *ref_210
ScalarMetric:
type: object
properties: *ref_211
required: *ref_212
TimeseriesMetric:
type: object
properties: *ref_213
required: *ref_214
MetricDataPoint:
type: object
properties: *ref_215
required: *ref_216
RawScriptForDependencies:
type: object
properties: *ref_217
required: *ref_218
ConcurrencyGroup:
type: object
properties: *ref_219
required: *ref_220
ExtendedJobs:
type: object
properties: *ref_221
required: *ref_222
ExportedUser:
type: object
properties: *ref_3
required: *ref_4
GlobalSetting:
type: object
properties: *ref_223
required: *ref_224
Config:
type: object
properties: *ref_225
required: *ref_226
ExportedInstanceGroup:
type: object
properties: *ref_106
required: *ref_107
JobSearchHit:
type: object
properties: *ref_227
LogSearchHit:
type: object
properties: *ref_228
AutoscalingEvent:
type: object
properties: *ref_229
CriticalAlert:
type: object
properties: *ref_230
StaticTransform:
type: object
properties: *ref_231
required: *ref_232
JavascriptTransform:
type: object
properties: *ref_233
required: *ref_234
InputTransform:
oneOf: *ref_31
discriminator: *ref_32
RawScript:
type: object
properties: *ref_235
required: *ref_236
PathScript:
type: object
properties: *ref_237
required: *ref_238
PathFlow:
type: object
properties: *ref_239
required: *ref_240
FlowModule:
type: object
properties: *ref_33
required: *ref_34
ForloopFlow:
type: object
properties: *ref_241
required: *ref_242
WhileloopFlow:
type: object
properties: *ref_243
required: *ref_244
BranchOne:
type: object
properties: *ref_245
required: *ref_246
BranchAll:
type: object
properties: *ref_247
required: *ref_248
Identity:
type: object
properties: *ref_249
required: *ref_250
FlowModuleValue:
oneOf: *ref_251
discriminator: *ref_252
Retry:
type: object
properties: *ref_95
FlowValue:
type: object
properties: *ref_66
required: *ref_67
OpenFlow:
type: object
properties: *ref_54
required: *ref_55
FlowStatusModule:
type: object
properties: *ref_68
required: *ref_69
FlowStatus:
type: object
properties: *ref_84
required: *ref_85