30819 lines
950 KiB
YAML
30819 lines
950 KiB
YAML
openapi: 3.0.3
|
|
info:
|
|
version: 1.633.1
|
|
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
|
|
/health/status:
|
|
get:
|
|
summary: health status
|
|
description: >
|
|
Health status endpoint. Returns cached health status (database
|
|
connectivity, worker count).
|
|
|
|
Cache TTL is fixed at 5 seconds. Use force=true query parameter to
|
|
bypass cache.
|
|
|
|
Note: This endpoint is intentionally different from Kubernetes probes to
|
|
avoid confusion.
|
|
|
|
For k8s liveness/readiness probes, use /version endpoint.
|
|
operationId: getHealthStatus
|
|
tags:
|
|
- health
|
|
security: []
|
|
parameters:
|
|
- name: force
|
|
in: query
|
|
description: Force a fresh check, bypassing the cache
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
responses:
|
|
'200':
|
|
description: server is healthy or degraded
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: Health status response (cached with 5s TTL)
|
|
required: &ref_0
|
|
- status
|
|
- checked_at
|
|
- database_healthy
|
|
- workers_alive
|
|
properties: &ref_1
|
|
status:
|
|
type: string
|
|
enum:
|
|
- healthy
|
|
- degraded
|
|
- unhealthy
|
|
description: Overall health status
|
|
checked_at:
|
|
type: string
|
|
format: date-time
|
|
description: >-
|
|
Timestamp when the health check was actually performed
|
|
(not cache return time)
|
|
database_healthy:
|
|
type: boolean
|
|
description: Whether the database is reachable
|
|
workers_alive:
|
|
type: integer
|
|
format: int64
|
|
description: Number of workers that pinged within last 5 minutes
|
|
'503':
|
|
description: server is unhealthy (database unreachable)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: Health status response (cached with 5s TTL)
|
|
required: *ref_0
|
|
properties: *ref_1
|
|
/health/detailed:
|
|
get:
|
|
summary: detailed health status
|
|
description: >
|
|
Returns detailed health information including database pool stats,
|
|
worker details, and queue status.
|
|
|
|
Requires authentication. Use for monitoring dashboards and debugging.
|
|
|
|
This endpoint always returns fresh data (no caching).
|
|
operationId: getHealthDetailed
|
|
tags:
|
|
- health
|
|
responses:
|
|
'200':
|
|
description: server is healthy or degraded
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: Detailed health status response (always fresh, no caching)
|
|
required: &ref_2
|
|
- status
|
|
- checked_at
|
|
- version
|
|
- checks
|
|
properties: &ref_3
|
|
status:
|
|
type: string
|
|
enum:
|
|
- healthy
|
|
- degraded
|
|
- unhealthy
|
|
description: Overall health status
|
|
checked_at:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp when the health check was performed
|
|
version:
|
|
type: string
|
|
description: Server version (e.g., "EE 1.615.3")
|
|
checks:
|
|
type: object
|
|
description: Detailed health checks
|
|
required: &ref_308
|
|
- database
|
|
- readiness
|
|
properties: &ref_309
|
|
database:
|
|
type: object
|
|
description: Database health status
|
|
required: &ref_310
|
|
- healthy
|
|
- latency_ms
|
|
- pool
|
|
properties: &ref_311
|
|
healthy:
|
|
type: boolean
|
|
description: Whether the database is reachable
|
|
latency_ms:
|
|
type: integer
|
|
format: int64
|
|
description: Database query latency in milliseconds
|
|
pool:
|
|
type: object
|
|
description: Database connection pool statistics
|
|
required: &ref_312
|
|
- size
|
|
- idle
|
|
- max_connections
|
|
properties: &ref_313
|
|
size:
|
|
type: integer
|
|
description: Current number of connections in the pool
|
|
idle:
|
|
type: integer
|
|
description: Number of idle connections
|
|
max_connections:
|
|
type: integer
|
|
description: Maximum number of connections allowed
|
|
workers:
|
|
description: Workers health status
|
|
nullable: true
|
|
type: object
|
|
required: &ref_314
|
|
- healthy
|
|
- active_count
|
|
- worker_groups
|
|
- min_version
|
|
- versions
|
|
properties: &ref_315
|
|
healthy:
|
|
type: boolean
|
|
description: Whether any workers are active
|
|
active_count:
|
|
type: integer
|
|
format: int64
|
|
description: >-
|
|
Number of active workers (pinged in last 5
|
|
minutes)
|
|
worker_groups:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: List of active worker groups
|
|
min_version:
|
|
type: string
|
|
description: Minimum required worker version
|
|
versions:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: List of active worker versions
|
|
queue:
|
|
description: Job queue status
|
|
nullable: true
|
|
type: object
|
|
required: &ref_316
|
|
- pending_jobs
|
|
- running_jobs
|
|
properties: &ref_317
|
|
pending_jobs:
|
|
type: integer
|
|
format: int64
|
|
description: Number of pending jobs in the queue
|
|
running_jobs:
|
|
type: integer
|
|
format: int64
|
|
description: Number of currently running jobs
|
|
readiness:
|
|
type: object
|
|
description: Server readiness status
|
|
required: &ref_318
|
|
- healthy
|
|
properties: &ref_319
|
|
healthy:
|
|
type: boolean
|
|
description: Whether the server is ready to accept requests
|
|
'503':
|
|
description: server is unhealthy (database unreachable)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: Detailed health status response (always fresh, no caching)
|
|
required: *ref_2
|
|
properties: *ref_3
|
|
/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
|
|
/inkeep:
|
|
post:
|
|
summary: query Windmill AI documentation assistant (EE only)
|
|
operationId: queryDocumentation
|
|
x-mcp-tool: true
|
|
tags:
|
|
- documentation
|
|
requestBody:
|
|
description: query to send to the AI documentation assistant
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
query:
|
|
type: string
|
|
description: The documentation query to send to the AI assistant
|
|
required:
|
|
- query
|
|
responses:
|
|
'200':
|
|
description: AI documentation assistant response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: Response from Inkeep service
|
|
'403':
|
|
description: Enterprise Edition required
|
|
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_4
|
|
type: string
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: &ref_61
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: an audit log
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_5
|
|
workspace_id:
|
|
type: string
|
|
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
|
|
span:
|
|
type: string
|
|
required: &ref_6
|
|
- workspace_id
|
|
- 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_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: &ref_13
|
|
type: integer
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: &ref_14
|
|
type: integer
|
|
- name: before
|
|
description: filter on started before (inclusive) timestamp
|
|
in: query
|
|
schema: &ref_260
|
|
type: string
|
|
format: date-time
|
|
- name: after
|
|
description: filter on created after (exclusive) timestamp
|
|
in: query
|
|
schema: &ref_261
|
|
type: string
|
|
format: date-time
|
|
- name: username
|
|
description: filter on exact username of user
|
|
in: query
|
|
schema: &ref_269
|
|
type: string
|
|
- name: operation
|
|
description: filter on exact or prefix name of operation
|
|
in: query
|
|
schema: &ref_270
|
|
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_271
|
|
type: string
|
|
- name: action_kind
|
|
description: filter on type of operation
|
|
in: query
|
|
schema: &ref_272
|
|
type: string
|
|
enum:
|
|
- Create
|
|
- Update
|
|
- Delete
|
|
- Execute
|
|
- name: all_workspaces
|
|
in: query
|
|
description: get audit logs for all workspaces
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
'200':
|
|
description: a list of audit logs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: *ref_5
|
|
required: *ref_6
|
|
/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_357
|
|
email:
|
|
type: string
|
|
password:
|
|
type: string
|
|
required: &ref_358
|
|
- 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
|
|
/auth/is_smtp_configured:
|
|
get:
|
|
security: []
|
|
summary: check if SMTP is configured for password reset
|
|
operationId: isSmtpConfigured
|
|
tags:
|
|
- user
|
|
responses:
|
|
'200':
|
|
description: returns true if SMTP is configured
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
/auth/request_password_reset:
|
|
post:
|
|
security: []
|
|
summary: request password reset email
|
|
operationId: requestPasswordReset
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: email to send password reset link to
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- email
|
|
properties:
|
|
email:
|
|
type: string
|
|
format: email
|
|
responses:
|
|
'200':
|
|
description: password reset email sent (if user exists)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_7
|
|
message:
|
|
type: string
|
|
required: &ref_8
|
|
- message
|
|
'400':
|
|
description: SMTP not configured
|
|
/auth/reset_password:
|
|
post:
|
|
security: []
|
|
summary: reset password using token
|
|
operationId: resetPassword
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: token and new password
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- token
|
|
- new_password
|
|
properties:
|
|
token:
|
|
type: string
|
|
new_password:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: password reset successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_7
|
|
required: *ref_8
|
|
'400':
|
|
description: invalid or expired token
|
|
/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_4
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: user created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_26
|
|
email:
|
|
type: string
|
|
username:
|
|
type: string
|
|
is_admin:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
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
|
|
added_via:
|
|
nullable: true
|
|
allOf:
|
|
- type: object
|
|
properties: &ref_354
|
|
source:
|
|
type: string
|
|
enum:
|
|
- domain
|
|
- instance_group
|
|
- manual
|
|
description: How the user was added to the workspace
|
|
domain:
|
|
type: string
|
|
description: >-
|
|
The domain used for auto-invite (when source is
|
|
'domain')
|
|
group:
|
|
type: string
|
|
description: >-
|
|
The instance group name (when source is
|
|
'instance_group')
|
|
required: &ref_355
|
|
- source
|
|
required: &ref_27
|
|
- 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_4
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
description: new user
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_359
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: &ref_48
|
|
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
|
|
skip_email:
|
|
type: boolean
|
|
description: Skip sending email notifications to the user
|
|
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
|
|
is_devops:
|
|
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_9
|
|
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_10
|
|
- 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_9
|
|
required: *ref_10
|
|
/users/onboarding:
|
|
post:
|
|
summary: Submit user onboarding data
|
|
operationId: submitOnboardingData
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
touch_point:
|
|
type: string
|
|
use_case:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Onboarding data submitted successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
/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_4
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: delete user
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/users/convert_to_group/{username}:
|
|
post:
|
|
summary: convert manual user to group user (require admin privilege)
|
|
operationId: convertUserToGroup
|
|
tags:
|
|
- user
|
|
- admin
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: convert user to group user
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/github_app/connected_repositories:
|
|
get:
|
|
summary: get connected repositories
|
|
operationId: getGlobalConnectedRepositories
|
|
tags:
|
|
- Git Sync
|
|
parameters:
|
|
- name: page
|
|
in: query
|
|
description: Page number for pagination (default 1)
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
default: 1
|
|
responses:
|
|
'200':
|
|
description: connected repositories
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items: &ref_498
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
installation_id:
|
|
type: number
|
|
account_id:
|
|
type: string
|
|
repositories:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
url:
|
|
type: string
|
|
required:
|
|
- name
|
|
- url
|
|
total_count:
|
|
type: number
|
|
description: >-
|
|
Total number of repositories available for this
|
|
installation
|
|
per_page:
|
|
type: number
|
|
description: Number of repositories loaded per page
|
|
error:
|
|
type: string
|
|
description: Error message if token retrieval failed
|
|
required:
|
|
- installation_id
|
|
- account_id
|
|
- repositories
|
|
- total_count
|
|
- per_page
|
|
/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_11
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
owner:
|
|
type: string
|
|
domain:
|
|
type: string
|
|
color:
|
|
type: string
|
|
parent_workspace_id:
|
|
type: string
|
|
nullable: true
|
|
required: &ref_12
|
|
- id
|
|
- name
|
|
- owner
|
|
- created_at
|
|
/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_439
|
|
email:
|
|
type: string
|
|
workspaces:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
username:
|
|
type: string
|
|
color:
|
|
type: string
|
|
operator_settings:
|
|
nullable: true
|
|
type: object
|
|
required: &ref_28
|
|
- runs
|
|
- schedules
|
|
- resources
|
|
- assets
|
|
- variables
|
|
- triggers
|
|
- audit_logs
|
|
- groups
|
|
- folders
|
|
- workers
|
|
properties: &ref_29
|
|
runs:
|
|
type: boolean
|
|
description: Whether operators can view runs
|
|
schedules:
|
|
type: boolean
|
|
description: Whether operators can view schedules
|
|
resources:
|
|
type: boolean
|
|
description: Whether operators can view resources
|
|
variables:
|
|
type: boolean
|
|
description: Whether operators can view variables
|
|
assets:
|
|
type: boolean
|
|
description: Whether operators can view assets
|
|
audit_logs:
|
|
type: boolean
|
|
description: Whether operators can view audit logs
|
|
triggers:
|
|
type: boolean
|
|
description: Whether operators can view triggers
|
|
groups:
|
|
type: boolean
|
|
description: Whether operators can view groups page
|
|
folders:
|
|
type: boolean
|
|
description: Whether operators can view folders page
|
|
workers:
|
|
type: boolean
|
|
description: Whether operators can view workers page
|
|
parent_workspace_id:
|
|
type: string
|
|
nullable: true
|
|
created_by:
|
|
type: string
|
|
nullable: true
|
|
disabled:
|
|
type: boolean
|
|
required:
|
|
- id
|
|
- name
|
|
- username
|
|
- color
|
|
- disabled
|
|
required: &ref_440
|
|
- email
|
|
- workspaces
|
|
/w/{workspace}/workspaces/get_as_superadmin:
|
|
get:
|
|
summary: get workspace as super admin (require to be super admin)
|
|
operationId: getWorkspaceAsSuperAdmin
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: workspace
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_11
|
|
required: *ref_12
|
|
/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_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
responses:
|
|
'200':
|
|
description: workspaces
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: *ref_11
|
|
required: *ref_12
|
|
/workspaces/create:
|
|
post:
|
|
summary: create workspace
|
|
operationId: createWorkspace
|
|
tags:
|
|
- workspace
|
|
requestBody:
|
|
description: new token
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_441
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
username:
|
|
type: string
|
|
color:
|
|
type: string
|
|
required: &ref_442
|
|
- id
|
|
- name
|
|
responses:
|
|
'201':
|
|
description: token created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/workspaces/create_workspace_fork_branch:
|
|
post:
|
|
summary: create forked workspace branch with git sync
|
|
operationId: createWorkspaceForkGitBranch
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: new forked workspace
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_15
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
color:
|
|
type: string
|
|
required: &ref_16
|
|
- id
|
|
- name
|
|
- parent_workspace_id
|
|
responses:
|
|
'201':
|
|
description: forked workspace branch created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
/w/{workspace}/workspaces/create_fork:
|
|
post:
|
|
summary: create forked workspace
|
|
operationId: createWorkspaceFork
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: new forked workspace
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_15
|
|
required: *ref_16
|
|
responses:
|
|
'201':
|
|
description: forked workspace 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/refresh_custom_instance_user_pwd:
|
|
post:
|
|
summary: Refreshes the password for the custom_instance_user
|
|
operationId: refreshCustomInstanceUserPwd
|
|
tags:
|
|
- setting
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
/settings/list_custom_instance_pg_databases:
|
|
post:
|
|
summary: Returns the set-up statuses of custom instance pg databases
|
|
operationId: listCustomInstanceDbs
|
|
tags:
|
|
- setting
|
|
responses:
|
|
'200':
|
|
description: Statuses of all custom instance dbs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
required: &ref_19
|
|
- logs
|
|
- success
|
|
properties: &ref_20
|
|
logs:
|
|
type: object
|
|
properties: &ref_407
|
|
super_admin:
|
|
type: string
|
|
enum: &ref_17
|
|
- OK
|
|
- SKIP
|
|
- FAIL
|
|
database_credentials:
|
|
type: string
|
|
enum: *ref_17
|
|
valid_dbname:
|
|
type: string
|
|
enum: *ref_17
|
|
created_database:
|
|
type: string
|
|
enum: *ref_17
|
|
db_connect:
|
|
type: string
|
|
enum: *ref_17
|
|
grant_permissions:
|
|
type: string
|
|
enum: *ref_17
|
|
success:
|
|
type: boolean
|
|
description: Whether the operation completed successfully
|
|
example: true
|
|
error:
|
|
type: string
|
|
nullable: true
|
|
description: Error message if the operation failed
|
|
example: Connection timeout
|
|
tag:
|
|
type: string
|
|
enum: &ref_18
|
|
- ducklake
|
|
- datatable
|
|
/settings/setup_custom_instance_pg_database/{name}:
|
|
post:
|
|
summary: >-
|
|
Runs CREATE DATABASE on the Windmill Postgres and grants access to the
|
|
custom_instance_user
|
|
operationId: setupCustomInstanceDb
|
|
tags:
|
|
- setting
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
tag:
|
|
type: string
|
|
enum: *ref_18
|
|
parameters:
|
|
- in: path
|
|
name: name
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The name of the database to create
|
|
responses:
|
|
'200':
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: *ref_19
|
|
properties: *ref_20
|
|
/settings/global/{key}:
|
|
get:
|
|
summary: get global settings
|
|
operationId: getGlobal
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- name: key
|
|
in: path
|
|
required: true
|
|
schema: &ref_21
|
|
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_21
|
|
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: object
|
|
properties:
|
|
alerts:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_51
|
|
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
|
|
workspace_id:
|
|
type: string
|
|
nullable: true
|
|
description: >-
|
|
Workspace id if the alert is in the scope of a
|
|
workspace
|
|
total_rows:
|
|
type: integer
|
|
description: Total number of rows matching the query.
|
|
example: 100
|
|
total_pages:
|
|
type: integer
|
|
description: Total number of pages based on the page size.
|
|
example: 10
|
|
/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/get_stats:
|
|
get:
|
|
summary: get encrypted telemetry stats (EE only)
|
|
operationId: getStats
|
|
tags:
|
|
- setting
|
|
responses:
|
|
'200':
|
|
description: base64-encoded encrypted telemetry blob
|
|
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_481
|
|
name:
|
|
type: string
|
|
value: {}
|
|
required: &ref_482
|
|
- name
|
|
- value
|
|
/min_keep_alive_version:
|
|
get:
|
|
summary: get minimum worker versions required to stay alive
|
|
operationId: getMinKeepAliveVersion
|
|
tags:
|
|
- setting
|
|
responses:
|
|
'200':
|
|
description: minimum keep-alive versions for workers and agents
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- worker
|
|
- agent
|
|
properties:
|
|
worker:
|
|
type: string
|
|
description: minimum version for normal workers
|
|
agent:
|
|
type: string
|
|
description: minimum version for agent workers
|
|
/.well-known/jwks.json:
|
|
get:
|
|
summary: get JWKS for Vault JWT authentication
|
|
operationId: getJwks
|
|
tags:
|
|
- setting
|
|
responses:
|
|
'200':
|
|
description: JSON Web Key Set
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: &ref_331
|
|
- keys
|
|
properties: &ref_332
|
|
keys:
|
|
type: array
|
|
items:
|
|
type: object
|
|
additionalProperties: true
|
|
description: Array of JSON Web Keys for JWT verification
|
|
/settings/test_secret_backend:
|
|
post:
|
|
summary: test secret backend connection (HashiCorp Vault)
|
|
operationId: testSecretBackend
|
|
tags:
|
|
- setting
|
|
requestBody:
|
|
description: Vault settings to test
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: &ref_22
|
|
- address
|
|
- mount_path
|
|
properties: &ref_23
|
|
address:
|
|
type: string
|
|
description: >-
|
|
HashiCorp Vault server address (e.g.,
|
|
https://vault.company.com:8200)
|
|
mount_path:
|
|
type: string
|
|
description: KV v2 secrets engine mount path (e.g., windmill)
|
|
jwt_role:
|
|
type: string
|
|
description: >-
|
|
Vault JWT auth role name for Windmill (optional, if not
|
|
provided token auth is used)
|
|
namespace:
|
|
type: string
|
|
description: Vault Enterprise namespace (optional)
|
|
token:
|
|
type: string
|
|
description: >-
|
|
Static Vault token for testing/development (optional, if
|
|
provided this is used instead of JWT authentication)
|
|
responses:
|
|
'200':
|
|
description: connection successful
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/settings/migrate_secrets_to_vault:
|
|
post:
|
|
summary: migrate secrets from database to HashiCorp Vault
|
|
operationId: migrateSecretsToVault
|
|
tags:
|
|
- setting
|
|
requestBody:
|
|
description: Vault settings for migration target
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: *ref_22
|
|
properties: *ref_23
|
|
responses:
|
|
'200':
|
|
description: migration report
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: &ref_24
|
|
- total_secrets
|
|
- migrated_count
|
|
- failed_count
|
|
- failures
|
|
properties: &ref_25
|
|
total_secrets:
|
|
type: integer
|
|
format: int64
|
|
description: Total number of secrets found
|
|
migrated_count:
|
|
type: integer
|
|
format: int64
|
|
description: Number of secrets successfully migrated
|
|
failed_count:
|
|
type: integer
|
|
format: int64
|
|
description: Number of secrets that failed to migrate
|
|
failures:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required: &ref_329
|
|
- workspace_id
|
|
- path
|
|
- error
|
|
properties: &ref_330
|
|
workspace_id:
|
|
type: string
|
|
description: Workspace ID where the secret is located
|
|
path:
|
|
type: string
|
|
description: Path of the secret that failed to migrate
|
|
error:
|
|
type: string
|
|
description: Error message
|
|
description: Details of any failures encountered during migration
|
|
/settings/migrate_secrets_to_database:
|
|
post:
|
|
summary: migrate secrets from HashiCorp Vault to database
|
|
operationId: migrateSecretsToDatabase
|
|
tags:
|
|
- setting
|
|
requestBody:
|
|
description: Vault settings for migration source
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: *ref_22
|
|
properties: *ref_23
|
|
responses:
|
|
'200':
|
|
description: migration report
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: *ref_24
|
|
properties: *ref_25
|
|
/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
|
|
parameters:
|
|
- name: if_expiring_in_less_than_s
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: new token
|
|
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
|
|
skipped_all:
|
|
type: boolean
|
|
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
|
|
skipped_all:
|
|
type: boolean
|
|
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
|
|
summary:
|
|
type: string
|
|
description:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
required:
|
|
- workspace
|
|
- endpoint_async
|
|
- endpoint_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_30
|
|
email:
|
|
type: string
|
|
login_type:
|
|
type: string
|
|
enum:
|
|
- password
|
|
- github
|
|
super_admin:
|
|
type: boolean
|
|
devops:
|
|
type: boolean
|
|
verified:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
company:
|
|
type: string
|
|
username:
|
|
type: string
|
|
operator_only:
|
|
type: boolean
|
|
first_time_user:
|
|
type: boolean
|
|
required: &ref_31
|
|
- email
|
|
- login_type
|
|
- super_admin
|
|
- verified
|
|
- first_time_user
|
|
/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_32
|
|
workspace_id:
|
|
type: string
|
|
email:
|
|
type: string
|
|
is_admin:
|
|
type: boolean
|
|
operator:
|
|
type: boolean
|
|
parent_workspace_id:
|
|
type: string
|
|
nullable: true
|
|
required: &ref_33
|
|
- 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_4
|
|
responses:
|
|
'200':
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_26
|
|
required: *ref_27
|
|
/w/{workspace}/github_app/token:
|
|
post:
|
|
summary: get github app token
|
|
operationId: getGithubAppToken
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: jwt job token
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
job_token:
|
|
type: string
|
|
required:
|
|
- job_token
|
|
responses:
|
|
'200':
|
|
description: github app token
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
token:
|
|
type: string
|
|
required:
|
|
- token
|
|
/w/{workspace}/github_app/install_from_workspace:
|
|
post:
|
|
tags:
|
|
- Git Sync
|
|
summary: Install a GitHub installation from another workspace
|
|
operationId: installFromWorkspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
source_workspace_id:
|
|
type: string
|
|
description: The ID of the workspace containing the installation to copy
|
|
installation_id:
|
|
type: number
|
|
description: The ID of the GitHub installation to copy
|
|
required:
|
|
- source_workspace_id
|
|
- installation_id
|
|
responses:
|
|
'200':
|
|
description: Installation successfully copied
|
|
/w/{workspace}/github_app/installation/{installation_id}:
|
|
delete:
|
|
summary: Delete a GitHub installation from a workspace
|
|
operationId: deleteFromWorkspace
|
|
description: >-
|
|
Removes a GitHub installation from the specified workspace. Requires
|
|
admin privileges.
|
|
tags:
|
|
- Git Sync
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: installation_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
description: The ID of the GitHub installation to delete
|
|
responses:
|
|
'200':
|
|
description: Installation successfully deleted
|
|
/w/{workspace}/github_app/export/{installationId}:
|
|
get:
|
|
summary: Export GitHub installation JWT token
|
|
description: >-
|
|
Exports the JWT token for a specific GitHub installation in the
|
|
workspace
|
|
operationId: exportInstallation
|
|
tags:
|
|
- Git Sync
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: installationId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: Successfully exported the JWT token
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
jwt_token:
|
|
type: string
|
|
/w/{workspace}/github_app/import:
|
|
post:
|
|
summary: Import GitHub installation from JWT token
|
|
description: >-
|
|
Imports a GitHub installation from a JWT token exported from another
|
|
instance
|
|
operationId: importInstallation
|
|
tags:
|
|
- Git Sync
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- jwt_token
|
|
properties:
|
|
jwt_token:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Successfully imported the installation
|
|
/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_4
|
|
requestBody:
|
|
description: WorkspaceInvite
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
is_admin:
|
|
type: boolean
|
|
operator:
|
|
type: boolean
|
|
parent_workspace_id:
|
|
type: string
|
|
nullable: true
|
|
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_4
|
|
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_4
|
|
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_4
|
|
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_4
|
|
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_4
|
|
- name: only_delete_forks
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
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_4
|
|
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_4
|
|
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_4
|
|
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_4
|
|
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}/workspaces/change_workspace_color:
|
|
post:
|
|
summary: change workspace id
|
|
operationId: changeWorkspaceColor
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
color:
|
|
type: string
|
|
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_4
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_26
|
|
required: *ref_27
|
|
/w/{workspace}/workspaces/operator_settings:
|
|
post:
|
|
operationId: updateOperatorSettings
|
|
summary: Update operator settings for a workspace
|
|
description: >-
|
|
Updates the operator settings for a specific workspace. Requires
|
|
workspace admin privileges.
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
nullable: true
|
|
type: object
|
|
required: *ref_28
|
|
properties: *ref_29
|
|
responses:
|
|
'200':
|
|
description: Operator settings updated successfully
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/workspaces/compare/{target_workspace_id}:
|
|
get:
|
|
operationId: compareWorkspaces
|
|
summary: Compare two workspaces
|
|
description: >-
|
|
Compares the current workspace with a target workspace to find
|
|
differences in scripts, flows, apps, resources, and variables. Returns
|
|
information about items that are ahead, behind, or in conflict.
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: target_workspace_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The ID of the workspace to compare with
|
|
responses:
|
|
'200':
|
|
description: Workspace comparison results
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: &ref_490
|
|
- all_ahead_items_visible
|
|
- all_behind_items_visible
|
|
- skipped_comparison
|
|
- diffs
|
|
- summary
|
|
properties: &ref_491
|
|
all_ahead_items_visible:
|
|
type: boolean
|
|
description: >-
|
|
All items with changes ahead are visible by the user of
|
|
the request.
|
|
all_behind_items_visible:
|
|
type: boolean
|
|
description: >-
|
|
All items with changes behind are visible by the user of
|
|
the request.
|
|
skipped_comparison:
|
|
type: boolean
|
|
description: >-
|
|
Whether the comparison was skipped. This happens with old
|
|
forks that where not being kept track of
|
|
diffs:
|
|
type: array
|
|
description: List of differences found between workspaces
|
|
items:
|
|
type: object
|
|
required: &ref_492
|
|
- kind
|
|
- path
|
|
- ahead
|
|
- behind
|
|
- has_changes
|
|
- exists_in_source
|
|
- exists_in_fork
|
|
properties: &ref_493
|
|
kind:
|
|
type: string
|
|
enum:
|
|
- script
|
|
- flow
|
|
- app
|
|
- resource
|
|
- variable
|
|
- resource_type
|
|
description: Type of the item
|
|
path:
|
|
type: string
|
|
description: Path of the item in the workspace
|
|
ahead:
|
|
type: integer
|
|
description: Number of versions source is ahead of target
|
|
behind:
|
|
type: integer
|
|
description: Number of versions source is behind target
|
|
has_changes:
|
|
type: boolean
|
|
description: Whether the item has any differences
|
|
exists_in_source:
|
|
type: boolean
|
|
description: If the item exists in the source workspace
|
|
exists_in_fork:
|
|
type: boolean
|
|
description: If the item exists in the fork workspace
|
|
summary:
|
|
description: Summary statistics of the comparison
|
|
type: object
|
|
required: &ref_494
|
|
- total_diffs
|
|
- total_ahead
|
|
- total_behind
|
|
- scripts_changed
|
|
- flows_changed
|
|
- apps_changed
|
|
- resources_changed
|
|
- variables_changed
|
|
- resource_types_changed
|
|
- folders_changed
|
|
- conflicts
|
|
properties: &ref_495
|
|
total_diffs:
|
|
type: integer
|
|
description: Total number of items with differences
|
|
total_ahead:
|
|
type: integer
|
|
description: Total number of ahead changes
|
|
total_behind:
|
|
type: integer
|
|
description: Total number of behind changes
|
|
scripts_changed:
|
|
type: integer
|
|
description: Number of scripts with differences
|
|
flows_changed:
|
|
type: integer
|
|
description: Number of flows with differences
|
|
apps_changed:
|
|
type: integer
|
|
description: Number of apps with differences
|
|
resources_changed:
|
|
type: integer
|
|
description: Number of resources with differences
|
|
variables_changed:
|
|
type: integer
|
|
description: Number of variables with differences
|
|
resource_types_changed:
|
|
type: integer
|
|
description: Number of resource types with differences
|
|
folders_changed:
|
|
type: integer
|
|
description: Number of folders with differences
|
|
conflicts:
|
|
type: integer
|
|
description: >-
|
|
Number of items that are both ahead and behind
|
|
(conflicts)
|
|
/w/{workspace}/workspaces/reset_diff_tally/{fork_workspace_id}:
|
|
post:
|
|
operationId: resetDiffTally
|
|
summary: Resets the ahead and behind deployement counter after a deployement
|
|
description: This endpoint should be called after a fork deployement
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: fork_workspace_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The ID of the workspace to compare with
|
|
responses:
|
|
'200':
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
/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_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- 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_30
|
|
required: *ref_31
|
|
/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_4
|
|
responses:
|
|
'200':
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: *ref_32
|
|
required: *ref_33
|
|
/w/{workspace}/workspaces/get_settings:
|
|
get:
|
|
summary: get settings
|
|
operationId: getSettings
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
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
|
|
slack_oauth_client_id:
|
|
type: string
|
|
slack_oauth_client_secret:
|
|
type: string
|
|
teams_team_id:
|
|
type: string
|
|
teams_command_script:
|
|
type: string
|
|
teams_team_name:
|
|
type: string
|
|
teams_team_guid:
|
|
type: string
|
|
auto_invite:
|
|
type: object
|
|
description: Configuration for auto-inviting users to the workspace
|
|
properties: &ref_320
|
|
enabled:
|
|
type: boolean
|
|
default: false
|
|
domain:
|
|
type: string
|
|
operator:
|
|
type: boolean
|
|
default: false
|
|
description: >-
|
|
If true, auto-invited users are added as operators. If
|
|
false, they are added as developers.
|
|
mode:
|
|
type: string
|
|
enum:
|
|
- invite
|
|
- add
|
|
default: invite
|
|
instance_groups:
|
|
type: array
|
|
items:
|
|
type: string
|
|
instance_groups_roles:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
plan:
|
|
type: string
|
|
customer_id:
|
|
type: string
|
|
webhook:
|
|
type: string
|
|
deploy_to:
|
|
type: string
|
|
ai_config:
|
|
type: object
|
|
properties: &ref_37
|
|
providers:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
properties: &ref_340
|
|
resource_path:
|
|
type: string
|
|
models:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required: &ref_341
|
|
- resource_path
|
|
- models
|
|
default_model:
|
|
type: object
|
|
properties: &ref_34
|
|
model:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
enum: &ref_339
|
|
- openai
|
|
- azure_openai
|
|
- anthropic
|
|
- mistral
|
|
- deepseek
|
|
- googleai
|
|
- groq
|
|
- openrouter
|
|
- togetherai
|
|
- aws_bedrock
|
|
- customai
|
|
required: &ref_35
|
|
- model
|
|
- provider
|
|
code_completion_model:
|
|
type: object
|
|
properties: *ref_34
|
|
required: *ref_35
|
|
custom_prompts:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
max_tokens_per_model:
|
|
type: object
|
|
additionalProperties:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 2000000
|
|
error_handler:
|
|
type: object
|
|
description: Configuration for the workspace error handler
|
|
properties: &ref_321
|
|
path:
|
|
type: string
|
|
description: Path to the error handler script or flow
|
|
extra_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
muted_on_cancel:
|
|
type: boolean
|
|
default: false
|
|
muted_on_user_path:
|
|
type: boolean
|
|
default: false
|
|
success_handler:
|
|
type: object
|
|
description: Configuration for the workspace success handler
|
|
properties: &ref_322
|
|
path:
|
|
type: string
|
|
description: Path to the success handler script or flow
|
|
extra_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
large_file_storage:
|
|
type: object
|
|
properties: &ref_38
|
|
type:
|
|
type: string
|
|
enum:
|
|
- S3Storage
|
|
- AzureBlobStorage
|
|
- AzureWorkloadIdentity
|
|
- S3AwsOidc
|
|
- GoogleCloudStorage
|
|
s3_resource_path:
|
|
type: string
|
|
azure_blob_resource_path:
|
|
type: string
|
|
gcs_resource_path:
|
|
type: string
|
|
public_resource:
|
|
type: boolean
|
|
advanced_permissions:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_465
|
|
pattern:
|
|
type: string
|
|
allow:
|
|
type: string
|
|
required: &ref_466
|
|
- pattern
|
|
- allow
|
|
secondary_storage:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- S3Storage
|
|
- AzureBlobStorage
|
|
- AzureWorkloadIdentity
|
|
- S3AwsOidc
|
|
- GoogleCloudStorage
|
|
s3_resource_path:
|
|
type: string
|
|
azure_blob_resource_path:
|
|
type: string
|
|
gcs_resource_path:
|
|
type: string
|
|
public_resource:
|
|
type: boolean
|
|
ducklake:
|
|
type: object
|
|
required: &ref_39
|
|
- ducklakes
|
|
properties: &ref_40
|
|
ducklakes:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
required:
|
|
- catalog
|
|
- storage
|
|
properties:
|
|
catalog:
|
|
type: object
|
|
properties:
|
|
resource_type:
|
|
type: string
|
|
enum:
|
|
- postgresql
|
|
- mysql
|
|
- instance
|
|
resource_path:
|
|
type: string
|
|
required:
|
|
- resource_type
|
|
storage:
|
|
type: object
|
|
properties:
|
|
storage:
|
|
type: string
|
|
path:
|
|
type: string
|
|
required:
|
|
- path
|
|
extra_args:
|
|
type: string
|
|
datatable:
|
|
type: object
|
|
required: &ref_41
|
|
- datatables
|
|
properties: &ref_42
|
|
datatables:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
required:
|
|
- database
|
|
properties:
|
|
database:
|
|
type: object
|
|
properties:
|
|
resource_type:
|
|
type: string
|
|
enum:
|
|
- postgresql
|
|
- instance
|
|
resource_path:
|
|
type: string
|
|
required:
|
|
- resource_type
|
|
git_sync:
|
|
type: object
|
|
properties: &ref_43
|
|
repositories:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_44
|
|
script_path:
|
|
type: string
|
|
git_repo_resource_path:
|
|
type: string
|
|
use_individual_branch:
|
|
type: boolean
|
|
group_by_folder:
|
|
type: boolean
|
|
collapsed:
|
|
type: boolean
|
|
settings:
|
|
type: object
|
|
properties:
|
|
include_path:
|
|
type: array
|
|
items:
|
|
type: string
|
|
include_type:
|
|
type: array
|
|
items:
|
|
type: string
|
|
enum: &ref_36
|
|
- script
|
|
- flow
|
|
- app
|
|
- folder
|
|
- resource
|
|
- variable
|
|
- secret
|
|
- resourcetype
|
|
- schedule
|
|
- user
|
|
- group
|
|
- trigger
|
|
- settings
|
|
- key
|
|
exclude_path:
|
|
type: array
|
|
items:
|
|
type: string
|
|
extra_include_path:
|
|
type: array
|
|
items:
|
|
type: string
|
|
exclude_types_override:
|
|
type: array
|
|
items:
|
|
type: string
|
|
enum: *ref_36
|
|
required: &ref_45
|
|
- script_path
|
|
- git_repo_resource_path
|
|
deploy_ui:
|
|
type: object
|
|
properties: &ref_46
|
|
include_path:
|
|
type: array
|
|
items:
|
|
type: string
|
|
include_type:
|
|
type: array
|
|
items:
|
|
type: string
|
|
enum: *ref_36
|
|
default_app:
|
|
type: string
|
|
default_scripts:
|
|
type: object
|
|
properties: &ref_47
|
|
order:
|
|
type: array
|
|
items:
|
|
type: string
|
|
hidden:
|
|
type: array
|
|
items:
|
|
type: string
|
|
default_script_content:
|
|
additionalProperties:
|
|
type: string
|
|
mute_critical_alerts:
|
|
type: boolean
|
|
color:
|
|
type: string
|
|
operator_settings:
|
|
nullable: true
|
|
type: object
|
|
required: *ref_28
|
|
properties: *ref_29
|
|
public_app_execution_limit_per_minute:
|
|
type: integer
|
|
description: >-
|
|
Rate limit for public app executions per minute per
|
|
server. NULL or 0 means disabled.
|
|
/w/{workspace}/workspaces/get_deploy_to:
|
|
get:
|
|
summary: get deploy to
|
|
operationId: getDeployTo
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
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_4
|
|
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_4
|
|
- name: skip_subscription_fetch
|
|
in: query
|
|
description: skip fetching subscription status from stripe
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
'200':
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
premium:
|
|
type: boolean
|
|
usage:
|
|
type: number
|
|
owner:
|
|
type: string
|
|
status:
|
|
type: string
|
|
is_past_due:
|
|
type: boolean
|
|
max_tolerated_executions:
|
|
type: number
|
|
required:
|
|
- premium
|
|
- owner
|
|
- is_past_due
|
|
/w/{workspace}/workspaces/threshold_alert:
|
|
get:
|
|
summary: get threshold alert info
|
|
operationId: getThresholdAlert
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
threshold_alert_amount:
|
|
type: number
|
|
last_alert_sent:
|
|
type: string
|
|
format: date-time
|
|
post:
|
|
summary: set threshold alert info
|
|
operationId: setThresholdAlert
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: threshold alert info
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
threshold_alert_amount:
|
|
type: number
|
|
responses:
|
|
'200':
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/workspaces/rebuild_dependency_map:
|
|
post:
|
|
summary: rebuild dependency map
|
|
operationId: rebuildDependencyMap
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/workspaces/get_dependents/{imported_path}:
|
|
get:
|
|
summary: get dependents of an imported path
|
|
operationId: getDependents
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: imported_path
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The imported path to get dependents for
|
|
responses:
|
|
'200':
|
|
description: list of dependents
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_444
|
|
importer_path:
|
|
type: string
|
|
importer_kind:
|
|
type: string
|
|
enum:
|
|
- script
|
|
- flow
|
|
- app
|
|
importer_node_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
required: &ref_445
|
|
- importer_path
|
|
- importer_kind
|
|
/w/{workspace}/workspaces/get_dependents_amounts:
|
|
post:
|
|
summary: get dependents amounts for multiple imported paths
|
|
operationId: getDependentsAmounts
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: List of imported paths to get dependents counts for
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: list of dependents amounts
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_446
|
|
imported_path:
|
|
type: string
|
|
count:
|
|
type: integer
|
|
format: int64
|
|
required: &ref_447
|
|
- imported_path
|
|
- count
|
|
/w/{workspace}/workspaces/get_dependency_map:
|
|
get:
|
|
summary: get dependency map
|
|
operationId: getDependencyMap
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: dmap
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_443
|
|
workspace_id:
|
|
type: string
|
|
nullable: true
|
|
importer_path:
|
|
type: string
|
|
nullable: true
|
|
importer_kind:
|
|
type: string
|
|
nullable: true
|
|
imported_path:
|
|
type: string
|
|
nullable: true
|
|
importer_node_id:
|
|
type: string
|
|
nullable: true
|
|
/w/{workspace}/workspaces/edit_slack_command:
|
|
post:
|
|
summary: edit slack command
|
|
operationId: editSlackCommand
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
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/slack_oauth_config:
|
|
get:
|
|
summary: get workspace slack oauth config
|
|
operationId: getWorkspaceSlackOauthConfig
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: slack oauth config
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
slack_oauth_client_id:
|
|
type: string
|
|
nullable: true
|
|
slack_oauth_client_secret:
|
|
type: string
|
|
nullable: true
|
|
description: Masked with *** if set
|
|
post:
|
|
summary: set workspace slack oauth config
|
|
operationId: setWorkspaceSlackOauthConfig
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: Slack OAuth Configuration
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- slack_oauth_client_id
|
|
- slack_oauth_client_secret
|
|
properties:
|
|
slack_oauth_client_id:
|
|
type: string
|
|
slack_oauth_client_secret:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
delete:
|
|
summary: delete workspace slack oauth config
|
|
operationId: deleteWorkspaceSlackOauthConfig
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/workspaces/edit_teams_command:
|
|
post:
|
|
summary: edit teams command
|
|
operationId: editTeamsCommand
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
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/available_teams_ids:
|
|
get:
|
|
summary: list available teams ids
|
|
operationId: listAvailableTeamsIds
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: search
|
|
in: query
|
|
description: Search teams by name. If omitted, returns first page of all teams.
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: next_link
|
|
in: query
|
|
description: >-
|
|
Pagination cursor URL from previous response. Pass this to fetch the
|
|
next page of results.
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
teams:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
team_name:
|
|
type: string
|
|
team_id:
|
|
type: string
|
|
total_count:
|
|
type: integer
|
|
description: Total number of teams across all pages
|
|
per_page:
|
|
type: integer
|
|
description: >-
|
|
Number of teams per page (configurable via TEAMS_PER_PAGE
|
|
env var)
|
|
next_link:
|
|
type: string
|
|
nullable: true
|
|
description: URL to fetch next page of results. Null if no more pages.
|
|
/w/{workspace}/workspaces/available_teams_channels:
|
|
get:
|
|
summary: list available channels for a specific team
|
|
operationId: listAvailableTeamsChannels
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: team_id
|
|
in: query
|
|
description: Microsoft Teams team ID
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: List of channels for the specified team
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
channels:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
channel_name:
|
|
type: string
|
|
channel_id:
|
|
type: string
|
|
total_count:
|
|
type: integer
|
|
/w/{workspace}/workspaces/connect_teams:
|
|
post:
|
|
summary: connect teams
|
|
operationId: connectTeams
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: connect teams
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
team_id:
|
|
type: string
|
|
team_name:
|
|
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_4
|
|
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/run_teams_message_test_job:
|
|
post:
|
|
summary: run a job that sends a message to Teams
|
|
operationId: runTeamsMessageTestJob
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
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_4
|
|
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_4
|
|
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_instance_groups:
|
|
post:
|
|
summary: edit instance groups
|
|
operationId: editInstanceGroups
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: Instance Groups Configuration
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
groups:
|
|
type: array
|
|
items:
|
|
type: string
|
|
roles:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
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_4
|
|
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_4
|
|
requestBody:
|
|
description: WorkspaceCopilotConfig
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_37
|
|
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_4
|
|
responses:
|
|
'200':
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_37
|
|
/w/{workspace}/workspaces/edit_error_handler:
|
|
post:
|
|
summary: edit error handler
|
|
operationId: editErrorHandler
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: WorkspaceErrorHandler
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
description: >-
|
|
Request body for editing the workspace error handler. Accepts
|
|
both new grouped format and legacy flat format for backward
|
|
compatibility.
|
|
oneOf: &ref_323
|
|
- type: object
|
|
description: New grouped format for editing error handler
|
|
properties: &ref_324
|
|
path:
|
|
type: string
|
|
description: Path to the error handler script or flow
|
|
extra_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
muted_on_cancel:
|
|
type: boolean
|
|
default: false
|
|
muted_on_user_path:
|
|
type: boolean
|
|
default: false
|
|
- type: object
|
|
description: >-
|
|
Legacy flat format for editing error handler (deprecated,
|
|
use new format)
|
|
properties: &ref_325
|
|
error_handler:
|
|
type: string
|
|
description: Path to the error handler script or flow
|
|
error_handler_extra_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
error_handler_muted_on_cancel:
|
|
type: boolean
|
|
default: false
|
|
responses:
|
|
'200':
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/workspaces/edit_success_handler:
|
|
post:
|
|
summary: edit success handler
|
|
operationId: editSuccessHandler
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: WorkspaceSuccessHandler
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
description: >-
|
|
Request body for editing the workspace success handler. Accepts
|
|
both new grouped format and legacy flat format for backward
|
|
compatibility.
|
|
oneOf: &ref_326
|
|
- type: object
|
|
description: New grouped format for editing success handler
|
|
properties: &ref_327
|
|
path:
|
|
type: string
|
|
description: Path to the success handler script or flow
|
|
extra_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
- type: object
|
|
description: >-
|
|
Legacy flat format for editing success handler (deprecated,
|
|
use new format)
|
|
properties: &ref_328
|
|
success_handler:
|
|
type: string
|
|
description: Path to the success handler script or flow
|
|
success_handler_extra_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
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_4
|
|
requestBody:
|
|
description: LargeFileStorage info
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
large_file_storage:
|
|
type: object
|
|
properties: *ref_38
|
|
responses:
|
|
'200':
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
/w/{workspace}/workspaces/list_ducklakes:
|
|
get:
|
|
summary: list ducklakes
|
|
operationId: listDucklakes
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/w/{workspace}/workspaces/list_datatables:
|
|
get:
|
|
summary: list Datatables
|
|
operationId: listDataTables
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/w/{workspace}/workspaces/list_datatable_schemas:
|
|
get:
|
|
summary: list schemas of all connected Datatables
|
|
operationId: listDataTableSchemas
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: schemas of all datatables
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required: &ref_461
|
|
- datatable_name
|
|
- schemas
|
|
properties: &ref_462
|
|
datatable_name:
|
|
type: string
|
|
schemas:
|
|
type: object
|
|
description: >-
|
|
Hierarchical schema: schema_name -> table_name ->
|
|
column_name -> compact_type (e.g. 'int4', 'text?',
|
|
'int4?=0')
|
|
additionalProperties:
|
|
type: object
|
|
description: Tables in this schema
|
|
additionalProperties:
|
|
type: object
|
|
description: Columns in this table
|
|
additionalProperties:
|
|
type: string
|
|
description: >-
|
|
Compact type: 'type[?][=default]' where ? means
|
|
nullable
|
|
error:
|
|
type: string
|
|
/w/{workspace}/workspaces/edit_ducklake_config:
|
|
post:
|
|
summary: edit ducklake settings
|
|
operationId: editDucklakeConfig
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: Ducklake settings
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- settings
|
|
properties:
|
|
settings:
|
|
type: object
|
|
required: *ref_39
|
|
properties: *ref_40
|
|
responses:
|
|
'200':
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
/w/{workspace}/workspaces/edit_datatable_config:
|
|
post:
|
|
summary: edit datatable settings
|
|
operationId: editDataTableConfig
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: DataTable settings
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- settings
|
|
properties:
|
|
settings:
|
|
type: object
|
|
required: *ref_41
|
|
properties: *ref_42
|
|
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_4
|
|
requestBody:
|
|
description: Workspace Git sync settings
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
git_sync_settings:
|
|
type: object
|
|
properties: *ref_43
|
|
responses:
|
|
'200':
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
/w/{workspace}/workspaces/edit_git_sync_repository:
|
|
post:
|
|
summary: add or update individual git sync repository
|
|
operationId: editGitSyncRepository
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: Git sync repository settings to add or update
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
git_repo_resource_path:
|
|
type: string
|
|
description: The resource path of the git repository to update
|
|
repository:
|
|
type: object
|
|
properties: *ref_44
|
|
required: *ref_45
|
|
required:
|
|
- git_repo_resource_path
|
|
- repository
|
|
responses:
|
|
'200':
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
/w/{workspace}/workspaces/delete_git_sync_repository:
|
|
delete:
|
|
summary: delete individual git sync repository
|
|
operationId: deleteGitSyncRepository
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: Git sync repository to delete
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
git_repo_resource_path:
|
|
type: string
|
|
description: The resource path of the git repository to delete
|
|
required:
|
|
- git_repo_resource_path
|
|
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_4
|
|
requestBody:
|
|
description: Workspace deploy UI settings
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
deploy_ui_settings:
|
|
type: object
|
|
properties: *ref_46
|
|
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_4
|
|
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_4
|
|
requestBody:
|
|
description: Workspace default app
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_47
|
|
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_4
|
|
responses:
|
|
'200':
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_47
|
|
/w/{workspace}/workspaces/set_environment_variable:
|
|
post:
|
|
summary: set environment variable
|
|
operationId: setEnvironmentVariable
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
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_4
|
|
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_4
|
|
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_4
|
|
responses:
|
|
'200':
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
default_app_path:
|
|
type: string
|
|
/w/{workspace}/workspaces/usage:
|
|
get:
|
|
summary: get usage
|
|
operationId: getWorkspaceUsage
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
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_4
|
|
responses:
|
|
'200':
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
http_routes_used:
|
|
type: boolean
|
|
websocket_used:
|
|
type: boolean
|
|
kafka_used:
|
|
type: boolean
|
|
nats_used:
|
|
type: boolean
|
|
postgres_used:
|
|
type: boolean
|
|
mqtt_used:
|
|
type: boolean
|
|
gcp_used:
|
|
type: boolean
|
|
sqs_used:
|
|
type: boolean
|
|
email_used:
|
|
type: boolean
|
|
nextcloud_used:
|
|
type: boolean
|
|
required:
|
|
- http_routes_used
|
|
- websocket_used
|
|
- kafka_used
|
|
- nats_used
|
|
- postgres_used
|
|
- mqtt_used
|
|
- gcp_used
|
|
- sqs_used
|
|
- email_used
|
|
- nextcloud_used
|
|
/w/{workspace}/users/list:
|
|
get:
|
|
summary: list users
|
|
operationId: listUsers
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: *ref_26
|
|
required: *ref_27
|
|
/w/{workspace}/users/list_usage:
|
|
get:
|
|
summary: list users usage
|
|
operationId: listUsersUsage
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_356
|
|
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_4
|
|
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_4
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: email
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/tokens/list/scopes:
|
|
get:
|
|
summary: list of available scopes
|
|
operationId: ListAvailableScopes
|
|
tags:
|
|
- token
|
|
responses:
|
|
'200':
|
|
description: list of available scopes
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_456
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
nullable: true
|
|
scopes:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_454
|
|
value:
|
|
type: string
|
|
label:
|
|
type: string
|
|
description:
|
|
type: string
|
|
nullable: true
|
|
requires_resource_path:
|
|
type: boolean
|
|
required: &ref_455
|
|
- value
|
|
- label
|
|
- requires_resource_path
|
|
required: &ref_457
|
|
- name
|
|
- scopes
|
|
/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_360
|
|
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_361
|
|
label:
|
|
type: string
|
|
expiration:
|
|
type: string
|
|
format: date-time
|
|
impersonate_email:
|
|
type: string
|
|
workspace_id:
|
|
type: string
|
|
required: &ref_362
|
|
- 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_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
responses:
|
|
'200':
|
|
description: truncated token
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_82
|
|
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_83
|
|
- 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_4
|
|
- name: audience
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: expires_in
|
|
in: query
|
|
schema:
|
|
type: number
|
|
responses:
|
|
'200':
|
|
description: new oidc token
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/variables/create:
|
|
post:
|
|
summary: create variable
|
|
operationId: createVariable
|
|
x-mcp-tool: true
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: already_encrypted
|
|
description: whether the variable is already encrypted (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
requestBody:
|
|
description: new variable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_365
|
|
path:
|
|
type: string
|
|
description: The path to the variable
|
|
value:
|
|
type: string
|
|
description: The value of the variable
|
|
is_secret:
|
|
type: boolean
|
|
description: Whether the variable is a secret
|
|
description:
|
|
type: string
|
|
description: The description of the variable
|
|
account:
|
|
type: integer
|
|
description: The account identifier
|
|
is_oauth:
|
|
type: boolean
|
|
description: Whether the variable is an OAuth variable
|
|
expires_at:
|
|
type: string
|
|
description: The expiration date of the variable
|
|
format: date-time
|
|
required: &ref_366
|
|
- 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_4
|
|
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
|
|
x-mcp-tool: true
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: variable deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/variables/delete_bulk:
|
|
delete:
|
|
summary: delete variables in bulk
|
|
operationId: deleteVariablesBulk
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: paths to delete
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
paths:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- paths
|
|
responses:
|
|
'200':
|
|
description: deleted paths
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/w/{workspace}/variables/update/{path}:
|
|
post:
|
|
summary: update variable
|
|
operationId: updateVariable
|
|
x-mcp-tool: true
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
- name: already_encrypted
|
|
description: whether the variable is already encrypted (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
requestBody:
|
|
description: updated variable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_367
|
|
path:
|
|
type: string
|
|
description: The path to the variable
|
|
value:
|
|
type: string
|
|
description: The new value of the variable
|
|
is_secret:
|
|
type: boolean
|
|
description: Whether the variable is a secret
|
|
description:
|
|
type: string
|
|
description: The new description of the variable
|
|
responses:
|
|
'200':
|
|
description: variable updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/variables/get/{path}:
|
|
get:
|
|
summary: get variable
|
|
operationId: getVariable
|
|
x-mcp-tool: true
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
- 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_49
|
|
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_50
|
|
- 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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
- name: allow_cache
|
|
description: |
|
|
allow getting a cached value for improved performance
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: variable
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
/w/{workspace}/variables/list:
|
|
get:
|
|
summary: list variables
|
|
operationId: listVariable
|
|
x-mcp-tool: true
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path_start
|
|
description: filter variables by path prefix
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
responses:
|
|
'200':
|
|
description: variable list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: *ref_49
|
|
required: *ref_50
|
|
/w/{workspace}/variables/list_contextual:
|
|
get:
|
|
summary: list contextual variables
|
|
operationId: listContextualVariables
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: contextual variable list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_363
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
description:
|
|
type: string
|
|
is_custom:
|
|
type: boolean
|
|
required: &ref_364
|
|
- name
|
|
- value
|
|
- description
|
|
- is_custom
|
|
/w/{workspace}/workspaces/get_secondary_storage_names:
|
|
get:
|
|
summary: get secondary storage names
|
|
operationId: getSecondaryStorageNames
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: include_default
|
|
in: query
|
|
description: >-
|
|
If true, include "_default_" in the list if primary workspace
|
|
storage is set
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
responses:
|
|
'200':
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/w/{workspace}/workspaces/critical_alerts:
|
|
get:
|
|
summary: Get all critical alerts for this workspace
|
|
operationId: workspaceGetCriticalAlerts
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- 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: object
|
|
properties:
|
|
alerts:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: *ref_51
|
|
total_rows:
|
|
type: integer
|
|
description: Total number of rows matching the query.
|
|
example: 100
|
|
total_pages:
|
|
type: integer
|
|
description: Total number of pages based on the page size.
|
|
example: 10
|
|
/w/{workspace}/workspaces/critical_alerts/{id}/acknowledge:
|
|
post:
|
|
summary: Acknowledge a critical alert for this workspace
|
|
operationId: workspaceAcknowledgeCriticalAlert
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- 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
|
|
/w/{workspace}/workspaces/critical_alerts/acknowledge_all:
|
|
post:
|
|
summary: Acknowledge all unacknowledged critical alerts for this workspace
|
|
operationId: workspaceAcknowledgeAllCriticalAlerts
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: Successfully acknowledged all unacknowledged critical alerts.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
example: All unacknowledged critical alerts acknowledged
|
|
/w/{workspace}/workspaces/critical_alerts/mute:
|
|
post:
|
|
summary: Mute critical alert UI for this workspace
|
|
operationId: workspaceMuteCriticalAlertsUI
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: Boolean flag to mute critical alerts.
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mute_critical_alerts:
|
|
type: boolean
|
|
description: Whether critical alerts should be muted.
|
|
example: true
|
|
responses:
|
|
'200':
|
|
description: Successfully updated mute critical alert settings.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
example: >-
|
|
Updated mute critical alert UI settings for workspace:
|
|
workspace_id
|
|
/w/{workspace}/workspaces/protection_rules:
|
|
get:
|
|
summary: list all protection rules for a workspace
|
|
operationId: listProtectionRules
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: list of protection rules
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
description: >-
|
|
A workspace protection rule defining restrictions and bypass
|
|
permissions
|
|
required: &ref_499
|
|
- name
|
|
- rules
|
|
- bypass_groups
|
|
- bypass_users
|
|
properties: &ref_500
|
|
name:
|
|
type: string
|
|
description: Unique name for the protection rule
|
|
example: Production Protection
|
|
workspace_id:
|
|
type: string
|
|
rules:
|
|
type: array
|
|
description: Configuration of protection restrictions
|
|
items: &ref_52
|
|
type: string
|
|
enum: &ref_501
|
|
- DisableDirectDeployment
|
|
- DisableWorkspaceForking
|
|
bypass_groups:
|
|
type: array
|
|
description: Groups that can bypass this ruleset
|
|
items: &ref_53
|
|
type: string
|
|
bypass_users:
|
|
type: array
|
|
description: Users that can bypass this ruleset
|
|
items: &ref_54
|
|
type: string
|
|
post:
|
|
summary: create a new protection rule
|
|
operationId: createProtectionRule
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: New protection rule configuration
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- name
|
|
- rules
|
|
- bypass_groups
|
|
- bypass_users
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: Unique name for the protection rule
|
|
example: Production Protection
|
|
rules:
|
|
type: array
|
|
description: Configuration of protection restrictions
|
|
items: *ref_52
|
|
bypass_groups:
|
|
type: array
|
|
description: Groups that can bypass this ruleset
|
|
items: *ref_53
|
|
bypass_users:
|
|
type: array
|
|
description: Users that can bypass this ruleset
|
|
items: *ref_54
|
|
responses:
|
|
'200':
|
|
description: protection rule created successfully
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
'400':
|
|
description: rule with this name already exists
|
|
/w/{workspace}/workspaces/protection_rules/{rule_name}:
|
|
post:
|
|
summary: update an existing protection rule
|
|
operationId: updateProtectionRule
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: rule_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: Name of the protection rule to update
|
|
requestBody:
|
|
description: Updated protection rule configuration
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- rules
|
|
- bypass_groups
|
|
- bypass_users
|
|
properties:
|
|
rules:
|
|
type: array
|
|
description: Configuration of protection restrictions
|
|
items: *ref_52
|
|
bypass_groups:
|
|
type: array
|
|
description: Groups that can bypass this ruleset
|
|
items: *ref_53
|
|
bypass_users:
|
|
type: array
|
|
description: Users that can bypass this ruleset
|
|
items: *ref_54
|
|
responses:
|
|
'200':
|
|
description: protection rule updated successfully
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
'404':
|
|
description: protection rule not found
|
|
delete:
|
|
summary: delete a protection rule
|
|
operationId: deleteProtectionRule
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: rule_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: Name of the protection rule to delete
|
|
responses:
|
|
'200':
|
|
description: protection rule deleted successfully
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
'404':
|
|
description: protection rule not found
|
|
/w/{workspace}/workspaces/public_app_rate_limit:
|
|
post:
|
|
summary: Set public app rate limit for this workspace
|
|
operationId: setPublicAppRateLimit
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: Public app rate limit configuration
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
public_app_execution_limit_per_minute:
|
|
type: integer
|
|
description: >-
|
|
Rate limit for public app executions per minute per server.
|
|
NULL or 0 to disable.
|
|
example: 100
|
|
responses:
|
|
'200':
|
|
description: Successfully updated public app rate limit settings.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
example: 'Updated public app rate limit for workspace: workspace_id'
|
|
/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_55
|
|
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_4
|
|
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_55
|
|
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_56
|
|
access_token:
|
|
type: string
|
|
expires_in:
|
|
type: integer
|
|
refresh_token:
|
|
type: string
|
|
scope:
|
|
type: array
|
|
items:
|
|
type: string
|
|
grant_type:
|
|
type: string
|
|
required: &ref_57
|
|
- 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_4
|
|
requestBody:
|
|
description: code endpoint
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
refresh_token:
|
|
type: string
|
|
description: >-
|
|
OAuth refresh token. For authorization_code flow, this
|
|
contains the actual refresh token. For client_credentials
|
|
flow, this must be set to an empty string.
|
|
expires_in:
|
|
type: integer
|
|
client:
|
|
type: string
|
|
grant_type:
|
|
type: string
|
|
default: authorization_code
|
|
cc_client_id:
|
|
type: string
|
|
description: >-
|
|
OAuth client ID for resource-level credentials
|
|
(client_credentials flow only)
|
|
cc_client_secret:
|
|
type: string
|
|
description: >-
|
|
OAuth client secret for resource-level credentials
|
|
(client_credentials flow only)
|
|
cc_token_url:
|
|
type: string
|
|
description: >-
|
|
OAuth token URL override for resource-level authentication
|
|
(client_credentials flow only)
|
|
mcp_server_url:
|
|
type: string
|
|
description: MCP server URL for MCP OAuth token refresh
|
|
required:
|
|
- refresh_token
|
|
- expires_in
|
|
- client
|
|
responses:
|
|
'200':
|
|
description: account set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/oauth/connect_client_credentials/{client}:
|
|
post:
|
|
summary: connect OAuth using client credentials
|
|
operationId: connectClientCredentials
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- name: client
|
|
in: path
|
|
description: OAuth client name
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
description: client credentials flow parameters
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
scopes:
|
|
type: array
|
|
items:
|
|
type: string
|
|
cc_client_id:
|
|
type: string
|
|
description: OAuth client ID for resource-level authentication
|
|
cc_client_secret:
|
|
type: string
|
|
description: OAuth client secret for resource-level authentication
|
|
cc_token_url:
|
|
type: string
|
|
description: OAuth token URL override for resource-level authentication
|
|
required:
|
|
- cc_client_id
|
|
- cc_client_secret
|
|
responses:
|
|
'200':
|
|
description: OAuth token response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_56
|
|
required: *ref_57
|
|
/w/{workspace}/oauth/refresh_token/{id}:
|
|
post:
|
|
summary: refresh token
|
|
operationId: refreshToken
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: &ref_58
|
|
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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_58
|
|
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_4
|
|
responses:
|
|
'200':
|
|
description: disconnected slack
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/oauth/disconnect_teams:
|
|
post:
|
|
summary: disconnect teams
|
|
operationId: disconnectTeams
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: disconnected teams
|
|
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
|
|
grant_types:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/teams/activities:
|
|
post:
|
|
summary: send update to Microsoft Teams activity
|
|
description: Respond to a Microsoft Teams activity after a workspace command is run
|
|
operationId: sendMessageToConversation
|
|
tags:
|
|
- teams
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- conversation_id
|
|
- text
|
|
properties:
|
|
conversation_id:
|
|
type: string
|
|
description: The ID of the Teams conversation/activity
|
|
success:
|
|
type: boolean
|
|
description: Used for styling the card conditionally
|
|
default: true
|
|
text:
|
|
type: string
|
|
description: The message text to be sent in the Teams card
|
|
card_block:
|
|
type: object
|
|
description: The card block to be sent in the Teams card
|
|
responses:
|
|
'200':
|
|
description: Activity processed successfully
|
|
/w/{workspace}/resources/create:
|
|
post:
|
|
summary: create resource
|
|
operationId: createResource
|
|
x-mcp-tool: true
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: update_if_exists
|
|
description: update the resource if it already exists (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
requestBody:
|
|
description: new resource
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_372
|
|
path:
|
|
type: string
|
|
description: The path to the resource
|
|
value: {}
|
|
description:
|
|
type: string
|
|
description: The description of the resource
|
|
resource_type:
|
|
type: string
|
|
description: The resource_type associated with the resource
|
|
required: &ref_373
|
|
- 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
|
|
x-mcp-tool: true
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: resource deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/resources/delete_bulk:
|
|
delete:
|
|
summary: delete resources in bulk
|
|
operationId: deleteResourcesBulk
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: paths to delete
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
paths:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- paths
|
|
responses:
|
|
'200':
|
|
description: deleted paths
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/w/{workspace}/resources/update/{path}:
|
|
post:
|
|
summary: update resource
|
|
operationId: updateResource
|
|
x-mcp-tool: true
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: updated resource
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_374
|
|
path:
|
|
type: string
|
|
description: The path to the resource
|
|
description:
|
|
type: string
|
|
description: The new description of the resource
|
|
value: {}
|
|
resource_type:
|
|
type: string
|
|
description: The new resource_type to be associated with the resource
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
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
|
|
x-mcp-tool: true
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: resource
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_375
|
|
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_376
|
|
- 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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
- name: job_id
|
|
description: job id
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: allow_cache
|
|
description: allow getting a cached value for improved performance
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: resource value
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
/w/{workspace}/resources/git_commit_hash/{path}:
|
|
get:
|
|
summary: get git repository latest commit hash
|
|
operationId: getGitCommitHash
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
- name: git_ssh_identity
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: git commit hash
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
commit_hash:
|
|
type: string
|
|
description: Latest commit hash from git ls-remote
|
|
required:
|
|
- commit_hash
|
|
/w/{workspace}/resources/exists/{path}:
|
|
get:
|
|
summary: does resource exists
|
|
operationId: existsResource
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: does resource exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
/w/{workspace}/resources/list:
|
|
get:
|
|
summary: list resources
|
|
operationId: listResource
|
|
x-mcp-tool: true
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- 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
|
|
description: filter resources by path prefix
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: resource list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_377
|
|
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_378
|
|
- 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_4
|
|
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/mcp_tools/{path}:
|
|
get:
|
|
summary: get MCP tools from resource
|
|
operationId: getMcpTools
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: list of MCP tools
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
parameters:
|
|
type: object
|
|
required:
|
|
- name
|
|
- parameters
|
|
/w/{workspace}/resources/list_names/{name}:
|
|
get:
|
|
summary: list resource names
|
|
operationId: listResourceNames
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema: &ref_235
|
|
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_4
|
|
requestBody:
|
|
description: new resource_type
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_59
|
|
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_60
|
|
- 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_4
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: updated resource_type
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_379
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: resource_type deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_59
|
|
required: *ref_60
|
|
/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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
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
|
|
x-mcp-tool: true
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: resource_type list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: *ref_59
|
|
required: *ref_60
|
|
/w/{workspace}/resources/type/listnames:
|
|
get:
|
|
summary: list resource_types names
|
|
operationId: listResourceTypeNames
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: resource_type list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/w/{workspace}/npm_proxy/metadata/{package}:
|
|
get:
|
|
summary: get npm package metadata from private registry
|
|
operationId: getNpmPackageMetadata
|
|
tags:
|
|
- npm_proxy
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: package
|
|
description: npm package name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: package metadata
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
tags:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
versions:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/w/{workspace}/npm_proxy/resolve/{package}:
|
|
get:
|
|
summary: resolve npm package version from private registry
|
|
operationId: resolveNpmPackageVersion
|
|
tags:
|
|
- npm_proxy
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: package
|
|
description: npm package name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: tag
|
|
description: version tag or reference
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: resolved version
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
version:
|
|
type: string
|
|
nullable: true
|
|
/w/{workspace}/npm_proxy/filetree/{package}/{version}:
|
|
get:
|
|
summary: get npm package file tree from private registry
|
|
operationId: getNpmPackageFiletree
|
|
tags:
|
|
- npm_proxy
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: package
|
|
description: npm package name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: version
|
|
description: package version
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: package file tree
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
default:
|
|
type: string
|
|
files:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
/w/{workspace}/npm_proxy/file/{package}/{version}/{filepath}:
|
|
get:
|
|
summary: get specific file from npm package in private registry
|
|
operationId: getNpmPackageFile
|
|
tags:
|
|
- npm_proxy
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: package
|
|
description: npm package name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: version
|
|
description: package version
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: filepath
|
|
description: file path within package
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: file content
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
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_4
|
|
- 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_61
|
|
responses:
|
|
'200':
|
|
description: flow
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
flow:
|
|
type: object
|
|
description: >-
|
|
Top-level flow definition containing metadata,
|
|
configuration, and the flow structure
|
|
properties: &ref_98
|
|
summary:
|
|
type: string
|
|
description: Short description of what this flow does
|
|
description:
|
|
type: string
|
|
description: Detailed documentation for this flow
|
|
value:
|
|
type: object
|
|
description: >-
|
|
The flow structure containing modules and optional
|
|
preprocessor/failure handlers
|
|
properties: &ref_530
|
|
modules:
|
|
type: array
|
|
description: >-
|
|
Array of steps that execute in sequence. Each step
|
|
can be a script, subflow, loop, or branch
|
|
items:
|
|
type: object
|
|
description: >-
|
|
A single step in a flow. Can be a script,
|
|
subflow, loop, or branch
|
|
properties: &ref_64
|
|
id:
|
|
type: string
|
|
description: >-
|
|
Unique identifier for this step. Used to
|
|
reference results via 'results.step_id'.
|
|
Must be a valid identifier (alphanumeric,
|
|
underscore, hyphen)
|
|
value:
|
|
description: >-
|
|
The actual implementation of a flow step.
|
|
Can be a script (inline or referenced),
|
|
subflow, loop, branch, or special module
|
|
type
|
|
oneOf: &ref_70
|
|
- type: object
|
|
description: >-
|
|
Inline script with code defined directly
|
|
in the flow. Use 'bun' as default
|
|
language if unspecified. The script
|
|
receives arguments from input_transforms
|
|
properties: &ref_284
|
|
input_transforms:
|
|
type: object
|
|
description: >-
|
|
Map of parameter names to their values
|
|
(static or JavaScript expressions).
|
|
These become the script's input
|
|
arguments
|
|
additionalProperties:
|
|
description: >-
|
|
Maps input parameters for a step. Can be
|
|
a static value or a JavaScript
|
|
expression that references previous
|
|
results or flow inputs
|
|
oneOf: &ref_62
|
|
- type: object
|
|
description: >-
|
|
Static value passed directly to the
|
|
step. Use for hardcoded values or
|
|
resource references like
|
|
'$res:path/to/resource'
|
|
properties: &ref_114
|
|
value:
|
|
description: >-
|
|
The static value. For resources, use
|
|
format '$res:path/to/resource'
|
|
type:
|
|
type: string
|
|
enum:
|
|
- static
|
|
required: &ref_115
|
|
- type
|
|
- type: object
|
|
description: >-
|
|
JavaScript expression evaluated at
|
|
runtime. Can reference previous step
|
|
results via 'results.step_id' or flow
|
|
inputs via 'flow_input.property'. Inside
|
|
loops, use 'flow_input.iter.value' for
|
|
the current iteration value
|
|
properties: &ref_66
|
|
expr:
|
|
type: string
|
|
description: >-
|
|
JavaScript expression returning the
|
|
value. Available variables - results
|
|
(object with all previous step results),
|
|
flow_input (flow inputs),
|
|
flow_input.iter (in loops)
|
|
type:
|
|
type: string
|
|
enum:
|
|
- javascript
|
|
required: &ref_67
|
|
- expr
|
|
- type
|
|
- type: object
|
|
description: >-
|
|
Value resolved by the AI runtime for
|
|
this input. The AI engine decides how to
|
|
satisfy the parameter.
|
|
properties: &ref_68
|
|
type:
|
|
type: string
|
|
enum:
|
|
- ai
|
|
required: &ref_69
|
|
- type
|
|
discriminator: &ref_63
|
|
propertyName: type
|
|
mapping:
|
|
static: >-
|
|
#/components/schemas/schemas-StaticTransform
|
|
javascript: >-
|
|
#/components/schemas/schemas-JavascriptTransform
|
|
ai: '#/components/schemas/schemas-AiTransform'
|
|
content:
|
|
type: string
|
|
description: >-
|
|
The script source code. Should export a
|
|
'main' function
|
|
language:
|
|
type: string
|
|
description: Programming language for this script
|
|
enum:
|
|
- deno
|
|
- bun
|
|
- python3
|
|
- go
|
|
- bash
|
|
- powershell
|
|
- postgresql
|
|
- mysql
|
|
- bigquery
|
|
- snowflake
|
|
- mssql
|
|
- oracledb
|
|
- graphql
|
|
- nativets
|
|
- php
|
|
- rust
|
|
- ansible
|
|
- csharp
|
|
- nu
|
|
- java
|
|
- ruby
|
|
- duckdb
|
|
path:
|
|
type: string
|
|
description: Optional path for saving this script
|
|
lock:
|
|
type: string
|
|
description: Lock file content for dependencies
|
|
type:
|
|
type: string
|
|
enum:
|
|
- rawscript
|
|
tag:
|
|
type: string
|
|
description: Worker group tag for execution routing
|
|
concurrent_limit:
|
|
type: number
|
|
description: >-
|
|
Maximum concurrent executions of this
|
|
script
|
|
concurrency_time_window_s:
|
|
type: number
|
|
description: Time window for concurrent_limit
|
|
custom_concurrency_key:
|
|
type: string
|
|
description: >-
|
|
Custom key for grouping concurrent
|
|
executions
|
|
is_trigger:
|
|
type: boolean
|
|
description: >-
|
|
If true, this script is a trigger that
|
|
can start the flow
|
|
assets:
|
|
type: array
|
|
description: >-
|
|
External resources this script accesses
|
|
(S3 objects, resources, etc.)
|
|
items:
|
|
type: object
|
|
required:
|
|
- path
|
|
- kind
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: Path to the asset
|
|
kind:
|
|
type: string
|
|
description: Type of asset
|
|
enum:
|
|
- s3object
|
|
- resource
|
|
- ducklake
|
|
- datatable
|
|
access_type:
|
|
type: string
|
|
nullable: true
|
|
description: Access level for this asset
|
|
enum:
|
|
- r
|
|
- w
|
|
- rw
|
|
alt_access_type:
|
|
type: string
|
|
nullable: true
|
|
description: Alternative access level
|
|
enum:
|
|
- r
|
|
- w
|
|
- rw
|
|
required: &ref_285
|
|
- type
|
|
- content
|
|
- language
|
|
- input_transforms
|
|
- type: object
|
|
description: >-
|
|
Reference to an existing script by path.
|
|
Use this when calling a previously saved
|
|
script instead of writing inline code
|
|
properties: &ref_286
|
|
input_transforms:
|
|
type: object
|
|
description: >-
|
|
Map of parameter names to their values
|
|
(static or JavaScript expressions).
|
|
These become the script's input
|
|
arguments
|
|
additionalProperties:
|
|
description: >-
|
|
Maps input parameters for a step. Can be
|
|
a static value or a JavaScript
|
|
expression that references previous
|
|
results or flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
path:
|
|
type: string
|
|
description: >-
|
|
Path to the script in the workspace
|
|
(e.g., 'f/scripts/send_email')
|
|
hash:
|
|
type: string
|
|
description: >-
|
|
Optional specific version hash of the
|
|
script to use
|
|
type:
|
|
type: string
|
|
enum:
|
|
- script
|
|
tag_override:
|
|
type: string
|
|
description: >-
|
|
Override the script's default worker
|
|
group tag
|
|
is_trigger:
|
|
type: boolean
|
|
description: >-
|
|
If true, this script is a trigger that
|
|
can start the flow
|
|
required: &ref_287
|
|
- type
|
|
- path
|
|
- input_transforms
|
|
- type: object
|
|
description: >-
|
|
Reference to an existing flow by path.
|
|
Use this to call another flow as a
|
|
subflow
|
|
properties: &ref_288
|
|
input_transforms:
|
|
type: object
|
|
description: >-
|
|
Map of parameter names to their values
|
|
(static or JavaScript expressions).
|
|
These become the subflow's input
|
|
arguments
|
|
additionalProperties:
|
|
description: >-
|
|
Maps input parameters for a step. Can be
|
|
a static value or a JavaScript
|
|
expression that references previous
|
|
results or flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
path:
|
|
type: string
|
|
description: >-
|
|
Path to the flow in the workspace (e.g.,
|
|
'f/flows/process_user')
|
|
type:
|
|
type: string
|
|
enum:
|
|
- flow
|
|
required: &ref_289
|
|
- type
|
|
- path
|
|
- input_transforms
|
|
- type: object
|
|
description: >-
|
|
Executes nested modules in a loop over
|
|
an iterator. Inside the loop, use
|
|
'flow_input.iter.value' to access the
|
|
current iteration value, and
|
|
'flow_input.iter.index' for the index.
|
|
Supports parallel execution for better
|
|
performance on I/O-bound operations
|
|
properties: &ref_290
|
|
modules:
|
|
type: array
|
|
description: >-
|
|
Steps to execute for each iteration.
|
|
These can reference the iteration value
|
|
via 'flow_input.iter.value'
|
|
items:
|
|
type: object
|
|
description: >-
|
|
A single step in a flow. Can be a
|
|
script, subflow, loop, or branch
|
|
properties: *ref_64
|
|
required: &ref_65
|
|
- value
|
|
- id
|
|
iterator:
|
|
description: >-
|
|
Maps input parameters for a step. Can be
|
|
a static value or a JavaScript
|
|
expression that references previous
|
|
results or flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
skip_failures:
|
|
type: boolean
|
|
description: >-
|
|
If true, iteration failures don't stop
|
|
the loop. Failed iterations return null
|
|
type:
|
|
type: string
|
|
enum:
|
|
- forloopflow
|
|
parallel:
|
|
type: boolean
|
|
description: >-
|
|
If true, iterations run concurrently
|
|
(faster for I/O-bound operations). Use
|
|
with parallelism to control concurrency
|
|
parallelism:
|
|
description: >-
|
|
Maps input parameters for a step. Can be
|
|
a static value or a JavaScript
|
|
expression that references previous
|
|
results or flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
squash:
|
|
type: boolean
|
|
required: &ref_291
|
|
- modules
|
|
- iterator
|
|
- skip_failures
|
|
- type
|
|
- type: object
|
|
description: >-
|
|
Executes nested modules repeatedly while
|
|
a condition is true. The loop checks the
|
|
condition after each iteration. Use
|
|
stop_after_if on modules to control loop
|
|
termination
|
|
properties: &ref_292
|
|
modules:
|
|
type: array
|
|
description: >-
|
|
Steps to execute in each iteration. Use
|
|
stop_after_if to control when the loop
|
|
ends
|
|
items:
|
|
type: object
|
|
description: >-
|
|
A single step in a flow. Can be a
|
|
script, subflow, loop, or branch
|
|
properties: *ref_64
|
|
required: *ref_65
|
|
skip_failures:
|
|
type: boolean
|
|
description: >-
|
|
If true, iteration failures don't stop
|
|
the loop. Failed iterations return null
|
|
type:
|
|
type: string
|
|
enum:
|
|
- whileloopflow
|
|
parallel:
|
|
type: boolean
|
|
description: >-
|
|
If true, iterations run concurrently
|
|
(use with caution in while loops)
|
|
parallelism:
|
|
description: >-
|
|
Maps input parameters for a step. Can be
|
|
a static value or a JavaScript
|
|
expression that references previous
|
|
results or flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
squash:
|
|
type: boolean
|
|
required: &ref_293
|
|
- modules
|
|
- skip_failures
|
|
- type
|
|
- type: object
|
|
description: >-
|
|
Conditional branching where only the
|
|
first matching branch executes. Branches
|
|
are evaluated in order, and the first
|
|
one with a true expression runs. If no
|
|
branches match, the default branch
|
|
executes
|
|
properties: &ref_294
|
|
branches:
|
|
type: array
|
|
description: >-
|
|
Array of branches to evaluate in order.
|
|
The first branch with expr evaluating to
|
|
true executes
|
|
items:
|
|
type: object
|
|
properties:
|
|
summary:
|
|
type: string
|
|
description: >-
|
|
Short description of this branch
|
|
condition
|
|
expr:
|
|
type: string
|
|
description: >-
|
|
JavaScript expression that returns
|
|
boolean. Can use 'results.step_id' or
|
|
'flow_input'. First true expr wins
|
|
modules:
|
|
type: array
|
|
description: >-
|
|
Steps to execute if this branch's expr
|
|
is true
|
|
items:
|
|
type: object
|
|
description: >-
|
|
A single step in a flow. Can be a
|
|
script, subflow, loop, or branch
|
|
properties: *ref_64
|
|
required: *ref_65
|
|
required:
|
|
- modules
|
|
- expr
|
|
default:
|
|
type: array
|
|
description: >-
|
|
Steps to execute if no branch
|
|
expressions match
|
|
items:
|
|
type: object
|
|
description: >-
|
|
A single step in a flow. Can be a
|
|
script, subflow, loop, or branch
|
|
properties: *ref_64
|
|
required: *ref_65
|
|
type:
|
|
type: string
|
|
enum:
|
|
- branchone
|
|
required: &ref_295
|
|
- branches
|
|
- default
|
|
- type
|
|
- type: object
|
|
description: >-
|
|
Parallel branching where all branches
|
|
execute simultaneously. Unlike
|
|
BranchOne, all branches run regardless
|
|
of conditions. Useful for executing
|
|
independent tasks concurrently
|
|
properties: &ref_296
|
|
branches:
|
|
type: array
|
|
description: >-
|
|
Array of branches that all execute
|
|
(either in parallel or sequentially)
|
|
items:
|
|
type: object
|
|
properties:
|
|
summary:
|
|
type: string
|
|
description: >-
|
|
Short description of this branch's
|
|
purpose
|
|
skip_failure:
|
|
type: boolean
|
|
description: >-
|
|
If true, failure in this branch doesn't
|
|
fail the entire flow
|
|
modules:
|
|
type: array
|
|
description: Steps to execute in this branch
|
|
items:
|
|
type: object
|
|
description: >-
|
|
A single step in a flow. Can be a
|
|
script, subflow, loop, or branch
|
|
properties: *ref_64
|
|
required: *ref_65
|
|
required:
|
|
- modules
|
|
type:
|
|
type: string
|
|
enum:
|
|
- branchall
|
|
parallel:
|
|
type: boolean
|
|
description: >-
|
|
If true, all branches execute
|
|
concurrently. If false, they execute
|
|
sequentially
|
|
required: &ref_297
|
|
- branches
|
|
- type
|
|
- type: object
|
|
description: >-
|
|
Pass-through module that returns its
|
|
input unchanged. Useful for flow
|
|
structure or as a placeholder
|
|
properties: &ref_298
|
|
type:
|
|
type: string
|
|
enum:
|
|
- identity
|
|
flow:
|
|
type: boolean
|
|
description: >-
|
|
If true, marks this as a flow identity
|
|
(special handling)
|
|
required: &ref_299
|
|
- type
|
|
- type: object
|
|
description: >-
|
|
AI agent step that can use tools to
|
|
accomplish tasks. The agent receives
|
|
inputs and can call any of its
|
|
configured tools to complete the task
|
|
properties: &ref_300
|
|
input_transforms:
|
|
type: object
|
|
description: >-
|
|
Input parameters for the AI agent mapped
|
|
to their values
|
|
properties:
|
|
provider:
|
|
description: >-
|
|
Provider configuration - can be static
|
|
(ProviderConfig), JavaScript expression,
|
|
or AI-determined
|
|
oneOf: &ref_302
|
|
- type: object
|
|
description: >-
|
|
Static provider configuration passed
|
|
directly to the AI agent
|
|
properties: &ref_515
|
|
value:
|
|
type: object
|
|
description: >-
|
|
Complete AI provider configuration with
|
|
resource reference and model selection
|
|
properties: &ref_513
|
|
kind:
|
|
type: string
|
|
description: Supported AI provider types
|
|
enum: &ref_277
|
|
- openai
|
|
- azure_openai
|
|
- anthropic
|
|
- mistral
|
|
- deepseek
|
|
- googleai
|
|
- groq
|
|
- openrouter
|
|
- togetherai
|
|
- customai
|
|
- aws_bedrock
|
|
resource:
|
|
type: string
|
|
description: >-
|
|
Resource reference in format
|
|
'$res:{resource_path}' pointing to
|
|
provider credentials
|
|
model:
|
|
type: string
|
|
description: >-
|
|
Model identifier (e.g., 'gpt-4',
|
|
'claude-3-opus-20240229', 'gemini-pro')
|
|
required: &ref_514
|
|
- kind
|
|
- resource
|
|
- model
|
|
type:
|
|
type: string
|
|
enum:
|
|
- static
|
|
required: &ref_516
|
|
- type
|
|
- value
|
|
- type: object
|
|
description: >-
|
|
JavaScript expression evaluated at
|
|
runtime. Can reference previous step
|
|
results via 'results.step_id' or flow
|
|
inputs via 'flow_input.property'. Inside
|
|
loops, use 'flow_input.iter.value' for
|
|
the current iteration value
|
|
properties: *ref_66
|
|
required: *ref_67
|
|
- type: object
|
|
description: >-
|
|
Value resolved by the AI runtime for
|
|
this input. The AI engine decides how to
|
|
satisfy the parameter.
|
|
properties: *ref_68
|
|
required: *ref_69
|
|
discriminator: &ref_303
|
|
propertyName: type
|
|
mapping:
|
|
static: >-
|
|
#/components/schemas/StaticProviderTransform
|
|
javascript: >-
|
|
#/components/schemas/schemas-JavascriptTransform
|
|
ai: '#/components/schemas/schemas-AiTransform'
|
|
output_type:
|
|
allOf:
|
|
- description: >-
|
|
Maps input parameters for a step. Can be
|
|
a static value or a JavaScript
|
|
expression that references previous
|
|
results or flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
description: >
|
|
Output format type.
|
|
|
|
Valid values: 'text' (default) - plain
|
|
text response, 'image' - image
|
|
generation
|
|
user_message:
|
|
allOf:
|
|
- description: >-
|
|
Maps input parameters for a step. Can be
|
|
a static value or a JavaScript
|
|
expression that references previous
|
|
results or flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
description: >-
|
|
The user's prompt/message to the AI
|
|
agent. Supports variable interpolation
|
|
with flow.input syntax.
|
|
system_prompt:
|
|
allOf:
|
|
- description: >-
|
|
Maps input parameters for a step. Can be
|
|
a static value or a JavaScript
|
|
expression that references previous
|
|
results or flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
description: >-
|
|
System instructions that guide the AI's
|
|
behavior, persona, and response style.
|
|
Optional.
|
|
streaming:
|
|
allOf:
|
|
- description: >-
|
|
Maps input parameters for a step. Can be
|
|
a static value or a JavaScript
|
|
expression that references previous
|
|
results or flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
description: >
|
|
Boolean. If true, stream the AI response
|
|
incrementally.
|
|
|
|
Streaming events include: token_delta,
|
|
tool_call, tool_call_arguments,
|
|
tool_execution, tool_result
|
|
memory:
|
|
description: >-
|
|
Memory configuration - can be static
|
|
(MemoryConfig), JavaScript expression,
|
|
or AI-determined
|
|
oneOf: &ref_304
|
|
- type: object
|
|
description: >-
|
|
Static memory configuration passed
|
|
directly to the AI agent
|
|
properties: &ref_521
|
|
value:
|
|
description: Conversation memory configuration
|
|
oneOf: &ref_519
|
|
- type: object
|
|
description: No conversation memory/context
|
|
properties: &ref_278
|
|
kind:
|
|
type: string
|
|
enum:
|
|
- 'off'
|
|
required: &ref_279
|
|
- kind
|
|
- type: object
|
|
description: Automatic context management
|
|
properties: &ref_280
|
|
kind:
|
|
type: string
|
|
enum:
|
|
- auto
|
|
context_length:
|
|
type: integer
|
|
description: >-
|
|
Maximum number of messages to retain in
|
|
context
|
|
memory_id:
|
|
type: string
|
|
description: >-
|
|
Identifier for persistent memory across
|
|
agent invocations
|
|
required: &ref_281
|
|
- kind
|
|
- type: object
|
|
description: Explicit message history
|
|
properties: &ref_282
|
|
kind:
|
|
type: string
|
|
enum:
|
|
- manual
|
|
messages:
|
|
type: array
|
|
items:
|
|
type: object
|
|
description: A single message in conversation history
|
|
properties: &ref_517
|
|
role:
|
|
type: string
|
|
enum:
|
|
- user
|
|
- assistant
|
|
- system
|
|
content:
|
|
type: string
|
|
required: &ref_518
|
|
- role
|
|
- content
|
|
required: &ref_283
|
|
- kind
|
|
- messages
|
|
discriminator: &ref_520
|
|
propertyName: kind
|
|
mapping:
|
|
'off': '#/components/schemas/MemoryOff'
|
|
auto: '#/components/schemas/MemoryAuto'
|
|
manual: '#/components/schemas/MemoryManual'
|
|
type:
|
|
type: string
|
|
enum:
|
|
- static
|
|
required: &ref_522
|
|
- type
|
|
- value
|
|
- type: object
|
|
description: >-
|
|
JavaScript expression evaluated at
|
|
runtime. Can reference previous step
|
|
results via 'results.step_id' or flow
|
|
inputs via 'flow_input.property'. Inside
|
|
loops, use 'flow_input.iter.value' for
|
|
the current iteration value
|
|
properties: *ref_66
|
|
required: *ref_67
|
|
- type: object
|
|
description: >-
|
|
Value resolved by the AI runtime for
|
|
this input. The AI engine decides how to
|
|
satisfy the parameter.
|
|
properties: *ref_68
|
|
required: *ref_69
|
|
discriminator: &ref_305
|
|
propertyName: type
|
|
mapping:
|
|
static: >-
|
|
#/components/schemas/StaticMemoryTransform
|
|
javascript: >-
|
|
#/components/schemas/schemas-JavascriptTransform
|
|
ai: '#/components/schemas/schemas-AiTransform'
|
|
output_schema:
|
|
allOf:
|
|
- description: >-
|
|
Maps input parameters for a step. Can be
|
|
a static value or a JavaScript
|
|
expression that references previous
|
|
results or flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
description: >
|
|
JSON Schema object defining structured
|
|
output format. Used when you need the AI
|
|
to return data in a specific shape.
|
|
|
|
Supports standard JSON Schema
|
|
properties: type, properties, required,
|
|
items, enum, pattern, minLength,
|
|
maxLength, minimum, maximum, etc.
|
|
|
|
Example: { type: 'object', properties: {
|
|
name: { type: 'string' }, age: { type:
|
|
'integer' } }, required: ['name'] }
|
|
user_images:
|
|
allOf:
|
|
- description: >-
|
|
Maps input parameters for a step. Can be
|
|
a static value or a JavaScript
|
|
expression that references previous
|
|
results or flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
description: >
|
|
Array of image references for
|
|
vision-capable models.
|
|
|
|
Format: Array<{ bucket: string, key:
|
|
string }> - S3 object references
|
|
|
|
Example: [{ bucket: 'my-bucket', key:
|
|
'images/photo.jpg' }]
|
|
max_completion_tokens:
|
|
allOf:
|
|
- description: >-
|
|
Maps input parameters for a step. Can be
|
|
a static value or a JavaScript
|
|
expression that references previous
|
|
results or flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
description: >
|
|
Integer. Maximum number of tokens the AI
|
|
will generate in its response.
|
|
|
|
Range: 1 to 4,294,967,295. Typical
|
|
values: 256-4096 for most use cases.
|
|
temperature:
|
|
allOf:
|
|
- description: >-
|
|
Maps input parameters for a step. Can be
|
|
a static value or a JavaScript
|
|
expression that references previous
|
|
results or flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
description: >
|
|
Float. Controls randomness/creativity of
|
|
responses.
|
|
|
|
Range: 0.0 to 2.0 (provider-dependent)
|
|
|
|
- 0.0 = deterministic, focused responses
|
|
|
|
- 0.7 = balanced (common default)
|
|
|
|
- 1.0+ = more creative/random
|
|
required:
|
|
- provider
|
|
- user_message
|
|
- output_type
|
|
tools:
|
|
type: array
|
|
description: >-
|
|
Array of tools the agent can use. The
|
|
agent decides which tools to call based
|
|
on the task
|
|
items:
|
|
type: object
|
|
description: >-
|
|
A tool available to an AI agent. Can be
|
|
a flow module or an external MCP (Model
|
|
Context Protocol) tool
|
|
properties: &ref_306
|
|
id:
|
|
type: string
|
|
description: >-
|
|
Unique identifier for this tool. Cannot
|
|
contain spaces - use underscores instead
|
|
(e.g., 'get_user_data' not 'get user
|
|
data')
|
|
summary:
|
|
type: string
|
|
description: >-
|
|
Short description of what this tool does
|
|
(shown to the AI)
|
|
value:
|
|
description: >-
|
|
The implementation of a tool. Can be a
|
|
flow module (script/flow) or an MCP tool
|
|
reference
|
|
oneOf: &ref_528
|
|
- description: >-
|
|
A tool implemented as a flow module
|
|
(script, flow, etc.). The AI can call
|
|
this like any other flow module
|
|
allOf: &ref_523
|
|
- type: object
|
|
properties:
|
|
tool_type:
|
|
type: string
|
|
enum:
|
|
- flowmodule
|
|
required:
|
|
- tool_type
|
|
- description: >-
|
|
The actual implementation of a flow
|
|
step. Can be a script (inline or
|
|
referenced), subflow, loop, branch, or
|
|
special module type
|
|
oneOf: *ref_70
|
|
discriminator: &ref_71
|
|
propertyName: type
|
|
mapping:
|
|
rawscript: '#/components/schemas/schemas-RawScript'
|
|
script: '#/components/schemas/schemas-PathScript'
|
|
flow: '#/components/schemas/schemas-PathFlow'
|
|
forloopflow: '#/components/schemas/schemas-ForloopFlow'
|
|
whileloopflow: >-
|
|
#/components/schemas/schemas-WhileloopFlow
|
|
branchone: '#/components/schemas/schemas-BranchOne'
|
|
branchall: '#/components/schemas/schemas-BranchAll'
|
|
identity: '#/components/schemas/schemas-Identity'
|
|
aiagent: '#/components/schemas/schemas-AiAgent'
|
|
- type: object
|
|
description: >-
|
|
Reference to an external MCP (Model
|
|
Context Protocol) tool. The AI can call
|
|
tools from MCP servers
|
|
properties: &ref_524
|
|
tool_type:
|
|
type: string
|
|
enum:
|
|
- mcp
|
|
resource_path:
|
|
type: string
|
|
description: >-
|
|
Path to the MCP resource/server
|
|
configuration
|
|
include_tools:
|
|
type: array
|
|
description: >-
|
|
Whitelist of specific tools to include
|
|
from this MCP server
|
|
items:
|
|
type: string
|
|
exclude_tools:
|
|
type: array
|
|
description: >-
|
|
Blacklist of tools to exclude from this
|
|
MCP server
|
|
items:
|
|
type: string
|
|
required: &ref_525
|
|
- tool_type
|
|
- resource_path
|
|
- type: object
|
|
description: >-
|
|
A tool implemented as a websearch tool.
|
|
The AI can call this like any other
|
|
websearch tool
|
|
properties: &ref_526
|
|
tool_type:
|
|
type: string
|
|
enum:
|
|
- websearch
|
|
required: &ref_527
|
|
- tool_type
|
|
discriminator: &ref_529
|
|
propertyName: tool_type
|
|
mapping:
|
|
flowmodule: '#/components/schemas/FlowModuleTool'
|
|
mcp: '#/components/schemas/McpToolValue'
|
|
websearch: '#/components/schemas/WebsearchToolValue'
|
|
required: &ref_307
|
|
- id
|
|
- value
|
|
type:
|
|
type: string
|
|
enum:
|
|
- aiagent
|
|
parallel:
|
|
type: boolean
|
|
description: >-
|
|
If true, the agent can execute multiple
|
|
tool calls in parallel
|
|
required: &ref_301
|
|
- tools
|
|
- type
|
|
- input_transforms
|
|
discriminator: *ref_71
|
|
stop_after_if:
|
|
description: Early termination condition for a module
|
|
type: object
|
|
properties: &ref_72
|
|
skip_if_stopped:
|
|
type: boolean
|
|
description: >-
|
|
If true, following steps are skipped
|
|
when this condition triggers
|
|
expr:
|
|
type: string
|
|
description: >-
|
|
JavaScript expression evaluated after
|
|
the module runs. Can use 'result'
|
|
(step's result) or 'flow_input'. Return
|
|
true to stop
|
|
error_message:
|
|
type: string
|
|
description: Custom error message shown when stopping
|
|
required: &ref_73
|
|
- expr
|
|
stop_after_all_iters_if:
|
|
description: Early termination condition for a module
|
|
type: object
|
|
properties: *ref_72
|
|
required: *ref_73
|
|
skip_if:
|
|
type: object
|
|
description: >-
|
|
Conditionally skip this step based on
|
|
previous results or flow inputs
|
|
properties:
|
|
expr:
|
|
type: string
|
|
description: >-
|
|
JavaScript expression that returns true
|
|
to skip. Can use 'flow_input' or
|
|
'results.<step_id>'
|
|
required:
|
|
- expr
|
|
sleep:
|
|
description: >-
|
|
Maps input parameters for a step. Can be a
|
|
static value or a JavaScript expression that
|
|
references previous results or flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
cache_ttl:
|
|
type: number
|
|
description: >-
|
|
Cache duration in seconds for this step's
|
|
results
|
|
cache_ignore_s3_path:
|
|
type: boolean
|
|
timeout:
|
|
description: >-
|
|
Maps input parameters for a step. Can be a
|
|
static value or a JavaScript expression that
|
|
references previous results or flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
delete_after_use:
|
|
type: boolean
|
|
description: >-
|
|
If true, this step's result is deleted after
|
|
use to save memory
|
|
summary:
|
|
type: string
|
|
description: Short description of what this step does
|
|
mock:
|
|
type: object
|
|
description: >-
|
|
Mock configuration for testing without
|
|
executing the actual step
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
description: >-
|
|
If true, return mock value instead of
|
|
executing
|
|
return_value:
|
|
description: Value to return when mocked
|
|
suspend:
|
|
type: object
|
|
description: >-
|
|
Configuration for approval/resume steps that
|
|
wait for user input
|
|
properties:
|
|
required_events:
|
|
type: integer
|
|
description: >-
|
|
Number of approvals required before
|
|
continuing
|
|
timeout:
|
|
type: integer
|
|
description: >-
|
|
Timeout in seconds before
|
|
auto-continuing or canceling
|
|
resume_form:
|
|
type: object
|
|
description: >-
|
|
Form schema for collecting input when
|
|
resuming
|
|
properties:
|
|
schema:
|
|
type: object
|
|
description: JSON Schema for the resume form
|
|
user_auth_required:
|
|
type: boolean
|
|
description: >-
|
|
If true, only authenticated users can
|
|
approve
|
|
user_groups_required:
|
|
description: >-
|
|
Maps input parameters for a step. Can be
|
|
a static value or a JavaScript
|
|
expression that references previous
|
|
results or flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
self_approval_disabled:
|
|
type: boolean
|
|
description: >-
|
|
If true, the user who started the flow
|
|
cannot approve
|
|
hide_cancel:
|
|
type: boolean
|
|
description: >-
|
|
If true, hide the cancel button on the
|
|
approval form
|
|
continue_on_disapprove_timeout:
|
|
type: boolean
|
|
description: >-
|
|
If true, continue flow on timeout
|
|
instead of canceling
|
|
priority:
|
|
type: number
|
|
description: >-
|
|
Execution priority for this step (higher
|
|
numbers run first)
|
|
continue_on_error:
|
|
type: boolean
|
|
description: >-
|
|
If true, flow continues even if this step
|
|
fails
|
|
retry:
|
|
description: >-
|
|
Retry configuration for failed module
|
|
executions
|
|
type: object
|
|
properties: &ref_276
|
|
constant:
|
|
type: object
|
|
description: >-
|
|
Retry with constant delay between
|
|
attempts
|
|
properties:
|
|
attempts:
|
|
type: integer
|
|
description: Number of retry attempts
|
|
seconds:
|
|
type: integer
|
|
description: Seconds to wait between retries
|
|
exponential:
|
|
type: object
|
|
description: >-
|
|
Retry with exponential backoff (delay
|
|
doubles each time)
|
|
properties:
|
|
attempts:
|
|
type: integer
|
|
description: Number of retry attempts
|
|
multiplier:
|
|
type: integer
|
|
description: Multiplier for exponential backoff
|
|
seconds:
|
|
type: integer
|
|
minimum: 1
|
|
description: Initial delay in seconds
|
|
random_factor:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 100
|
|
description: >-
|
|
Random jitter percentage (0-100) to
|
|
avoid thundering herd
|
|
retry_if:
|
|
type: object
|
|
description: >-
|
|
Conditional retry based on error or
|
|
result
|
|
properties: &ref_167
|
|
expr:
|
|
type: string
|
|
description: >-
|
|
JavaScript expression that returns true
|
|
to retry. Has access to 'result' and
|
|
'error' variables
|
|
required: &ref_168
|
|
- expr
|
|
required: *ref_65
|
|
failure_module:
|
|
description: >-
|
|
A single step in a flow. Can be a script, subflow,
|
|
loop, or branch
|
|
type: object
|
|
properties: *ref_64
|
|
required: *ref_65
|
|
preprocessor_module:
|
|
description: >-
|
|
A single step in a flow. Can be a script, subflow,
|
|
loop, or branch
|
|
type: object
|
|
properties: *ref_64
|
|
required: *ref_65
|
|
same_worker:
|
|
type: boolean
|
|
description: >-
|
|
If true, all steps run on the same worker for
|
|
better performance
|
|
concurrent_limit:
|
|
type: number
|
|
description: >-
|
|
Maximum number of concurrent executions of this
|
|
flow
|
|
concurrency_key:
|
|
type: string
|
|
description: >-
|
|
Expression to group concurrent executions (e.g.,
|
|
by user ID)
|
|
concurrency_time_window_s:
|
|
type: number
|
|
description: Time window in seconds for concurrent_limit
|
|
debounce_delay_s:
|
|
type: number
|
|
description: Delay in seconds to debounce flow executions
|
|
debounce_key:
|
|
type: string
|
|
description: Expression to group debounced executions
|
|
debounce_args_to_accumulate:
|
|
type: array
|
|
description: >-
|
|
Arguments to accumulate across debounced
|
|
executions
|
|
items:
|
|
type: string
|
|
max_total_debouncing_time:
|
|
type: number
|
|
description: >-
|
|
Maximum total time in seconds that a job can be
|
|
debounced
|
|
max_total_debounces_amount:
|
|
type: number
|
|
description: Maximum number of times a job can be debounced
|
|
skip_expr:
|
|
type: string
|
|
description: >-
|
|
JavaScript expression to conditionally skip the
|
|
entire flow
|
|
cache_ttl:
|
|
type: number
|
|
description: Cache duration in seconds for flow results
|
|
cache_ignore_s3_path:
|
|
type: boolean
|
|
flow_env:
|
|
type: object
|
|
description: Environment variables available to all steps
|
|
additionalProperties:
|
|
type: string
|
|
priority:
|
|
type: number
|
|
description: Execution priority (higher numbers run first)
|
|
early_return:
|
|
type: string
|
|
description: >-
|
|
JavaScript expression to return early from the
|
|
flow
|
|
chat_input_enabled:
|
|
type: boolean
|
|
description: Whether this flow accepts chat-style input
|
|
notes:
|
|
type: array
|
|
description: Sticky notes attached to the flow
|
|
items:
|
|
type: object
|
|
description: >-
|
|
A sticky note attached to a flow for
|
|
documentation and annotation
|
|
properties: &ref_120
|
|
id:
|
|
type: string
|
|
description: Unique identifier for the note
|
|
text:
|
|
type: string
|
|
description: Content of the note
|
|
position:
|
|
type: object
|
|
description: Position of the note in the flow editor
|
|
properties:
|
|
x:
|
|
type: number
|
|
description: X coordinate
|
|
'y':
|
|
type: number
|
|
description: Y coordinate
|
|
required:
|
|
- x
|
|
- 'y'
|
|
size:
|
|
type: object
|
|
description: Size of the note in the flow editor
|
|
properties:
|
|
width:
|
|
type: number
|
|
description: Width in pixels
|
|
height:
|
|
type: number
|
|
description: Height in pixels
|
|
required:
|
|
- width
|
|
- height
|
|
color:
|
|
type: string
|
|
description: >-
|
|
Color of the note (e.g., "yellow",
|
|
"#ffff00")
|
|
type:
|
|
type: string
|
|
enum:
|
|
- free
|
|
- group
|
|
description: >-
|
|
Type of note - 'free' for standalone notes,
|
|
'group' for notes that group other nodes
|
|
locked:
|
|
type: boolean
|
|
default: false
|
|
description: >-
|
|
Whether the note is locked and cannot be
|
|
edited or moved
|
|
contained_node_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: >-
|
|
For group notes, the IDs of nodes contained
|
|
within this group
|
|
required: &ref_121
|
|
- id
|
|
- text
|
|
- color
|
|
- type
|
|
required: &ref_531
|
|
- modules
|
|
schema:
|
|
type: object
|
|
description: >-
|
|
JSON Schema for flow inputs. Use this to define input
|
|
parameters, their types, defaults, and validation. For
|
|
resource inputs, set type to 'object' and format to
|
|
'resource-<type>' (e.g., 'resource-stripe')
|
|
on_behalf_of_email:
|
|
type: string
|
|
description: >-
|
|
The flow will be run with the permissions of the user
|
|
with this email.
|
|
required: &ref_99
|
|
- 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_61
|
|
responses:
|
|
'200':
|
|
description: app
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
app:
|
|
type: object
|
|
properties:
|
|
summary:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- summary
|
|
- value
|
|
required:
|
|
- app
|
|
/apps/hub/get_raw/{id}:
|
|
get:
|
|
summary: get hub raw app by id
|
|
operationId: getHubRawAppById
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_61
|
|
responses:
|
|
'200':
|
|
description: raw app
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
app:
|
|
type: object
|
|
properties:
|
|
summary:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- summary
|
|
- value
|
|
required:
|
|
- app
|
|
/apps_u/public_app_by_custom_path/{custom_path}:
|
|
get:
|
|
summary: get public app by custom path
|
|
operationId: getPublicAppByCustomPath
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- name: custom_path
|
|
in: path
|
|
required: true
|
|
schema: &ref_111
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: app details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf:
|
|
- type: object
|
|
properties: &ref_106
|
|
id:
|
|
type: integer
|
|
workspace_id:
|
|
type: string
|
|
path:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
versions:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
created_by:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
value: {}
|
|
policy:
|
|
type: object
|
|
properties: &ref_105
|
|
triggerables:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
triggerables_v2:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
s3_inputs:
|
|
type: array
|
|
items:
|
|
type: object
|
|
allowed_s3_keys:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
s3_path:
|
|
type: string
|
|
resource:
|
|
type: string
|
|
execution_mode:
|
|
type: string
|
|
enum:
|
|
- viewer
|
|
- publisher
|
|
- anonymous
|
|
on_behalf_of:
|
|
type: string
|
|
on_behalf_of_email:
|
|
type: string
|
|
execution_mode:
|
|
type: string
|
|
enum:
|
|
- viewer
|
|
- publisher
|
|
- anonymous
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
custom_path:
|
|
type: string
|
|
raw_app:
|
|
type: boolean
|
|
bundle_secret:
|
|
type: string
|
|
required: &ref_107
|
|
- id
|
|
- workspace_id
|
|
- path
|
|
- summary
|
|
- versions
|
|
- created_by
|
|
- created_at
|
|
- value
|
|
- policy
|
|
- execution_mode
|
|
- extra_perms
|
|
- raw_app
|
|
- type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
/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_74
|
|
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_74
|
|
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/pick/{path}:
|
|
get:
|
|
summary: record hub script pick
|
|
operationId: pickHubScriptByPath
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
responses:
|
|
'200':
|
|
description: script pick recorded
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- success
|
|
/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:
|
|
type: string
|
|
enum: &ref_75
|
|
- 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:
|
|
type: string
|
|
enum: *ref_75
|
|
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_4
|
|
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
|
|
x-mcp-tool: true
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- name: order_desc
|
|
description: order by desc order (default true)
|
|
in: query
|
|
schema: &ref_96
|
|
type: boolean
|
|
- name: created_by
|
|
description: mask to filter exact matching user creator
|
|
in: query
|
|
schema: &ref_97
|
|
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
|
|
- name: languages
|
|
in: query
|
|
description: |
|
|
Filter to only include scripts written in the given languages.
|
|
Accepts multiple values as a comma-separated list.
|
|
schema:
|
|
type: string
|
|
- name: without_description
|
|
in: query
|
|
description: |
|
|
(default false)
|
|
If true, the description field will be omitted from the response.
|
|
schema:
|
|
type: boolean
|
|
- name: dedicated_worker
|
|
in: query
|
|
description: |
|
|
(default regardless)
|
|
If true, show only scripts with dedicated_worker enabled.
|
|
If false, show only scripts with dedicated_worker disabled.
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
'200':
|
|
description: All scripts
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_79
|
|
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: &ref_76
|
|
- python3
|
|
- deno
|
|
- go
|
|
- bash
|
|
- powershell
|
|
- postgresql
|
|
- mysql
|
|
- bigquery
|
|
- snowflake
|
|
- mssql
|
|
- oracledb
|
|
- graphql
|
|
- nativets
|
|
- bun
|
|
- php
|
|
- rust
|
|
- ansible
|
|
- csharp
|
|
- nu
|
|
- java
|
|
- ruby
|
|
- duckdb
|
|
- bunnative
|
|
kind:
|
|
type: string
|
|
enum:
|
|
- script
|
|
- failure
|
|
- trigger
|
|
- command
|
|
- approval
|
|
- preprocessor
|
|
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
|
|
debounce_key:
|
|
type: string
|
|
debounce_delay_s:
|
|
type: integer
|
|
debounce_args_to_accumulate:
|
|
type: array
|
|
items:
|
|
type: string
|
|
max_total_debouncing_time:
|
|
type: integer
|
|
max_total_debounces_amount:
|
|
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
|
|
visible_to_runner_only:
|
|
type: boolean
|
|
no_main_func:
|
|
type: boolean
|
|
codebase:
|
|
type: string
|
|
has_preprocessor:
|
|
type: boolean
|
|
on_behalf_of_email:
|
|
type: string
|
|
required: &ref_80
|
|
- 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_4
|
|
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_4
|
|
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_4
|
|
- name: kind
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- script
|
|
- flow
|
|
- app
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
responses:
|
|
'200':
|
|
description: draft deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/scripts/create:
|
|
post:
|
|
summary: create script
|
|
operationId: createScript
|
|
x-mcp-tool: true
|
|
x-mcp-instructions: >-
|
|
To create a script, specify the path (e.g., 'f/my_folder/my_script'),
|
|
the content (source code), and the language. For TypeScript, use 'bun'
|
|
unless deno-specific APIs are needed.
|
|
x-mcp-tool-include-fields:
|
|
- path
|
|
- content
|
|
- language
|
|
- summary
|
|
- description
|
|
- kind
|
|
- tag
|
|
- deployment_message
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: Partially filled script
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_84
|
|
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: *ref_76
|
|
kind:
|
|
type: string
|
|
enum:
|
|
- script
|
|
- failure
|
|
- trigger
|
|
- command
|
|
- approval
|
|
- preprocessor
|
|
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
|
|
cache_ignore_s3_path:
|
|
type: boolean
|
|
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
|
|
debounce_key:
|
|
type: string
|
|
debounce_delay_s:
|
|
type: integer
|
|
debounce_args_to_accumulate:
|
|
type: array
|
|
items:
|
|
type: string
|
|
max_total_debouncing_time:
|
|
type: integer
|
|
max_total_debounces_amount:
|
|
type: integer
|
|
visible_to_runner_only:
|
|
type: boolean
|
|
no_main_func:
|
|
type: boolean
|
|
codebase:
|
|
type: string
|
|
has_preprocessor:
|
|
type: boolean
|
|
on_behalf_of_email:
|
|
type: string
|
|
assets:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- path
|
|
- kind
|
|
properties:
|
|
path:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
enum: &ref_262
|
|
- s3object
|
|
- resource
|
|
- ducklake
|
|
- datatable
|
|
access_type:
|
|
type: string
|
|
enum:
|
|
- r
|
|
- w
|
|
- rw
|
|
alt_access_type:
|
|
type: string
|
|
enum:
|
|
- r
|
|
- w
|
|
- rw
|
|
required: &ref_85
|
|
- 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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
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
|
|
parameters:
|
|
- name: show_workspace_restriction
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
required: false
|
|
responses:
|
|
'200':
|
|
description: list of custom tags
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/w/{workspace}/workers/custom_tags:
|
|
get:
|
|
summary: get custom tags available for this workspace
|
|
operationId: getCustomTagsForWorkspace
|
|
tags:
|
|
- worker
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: list of custom tags for workspace
|
|
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}/workspace_dependencies/create:
|
|
post:
|
|
summary: create workspace dependencies
|
|
operationId: createWorkspaceDependencies
|
|
tags:
|
|
- workspace_dependencies
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: New workspace dependencies
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_345
|
|
workspace_id:
|
|
type: string
|
|
language:
|
|
type: string
|
|
enum: *ref_76
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
content:
|
|
type: string
|
|
required: &ref_346
|
|
- workspace_id
|
|
- language
|
|
- content
|
|
responses:
|
|
'201':
|
|
description: workspace dependencies created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/workspace_dependencies/archive/{language}:
|
|
post:
|
|
summary: archive workspace dependencies (require admin)
|
|
operationId: archiveWorkspaceDependencies
|
|
tags:
|
|
- workspace_dependencies
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: language
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: *ref_76
|
|
- name: name
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
/w/{workspace}/workspace_dependencies/delete/{language}:
|
|
post:
|
|
summary: delete workspace dependencies (require admin)
|
|
operationId: deleteWorkspaceDependencies
|
|
tags:
|
|
- workspace_dependencies
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: language
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: *ref_76
|
|
- name: name
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
/w/{workspace}/workspace_dependencies/list:
|
|
get:
|
|
summary: list all workspace dependencies
|
|
operationId: listWorkspaceDependencies
|
|
tags:
|
|
- workspace_dependencies
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: All workspace dependencies
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_77
|
|
id:
|
|
type: integer
|
|
archived:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
content:
|
|
type: string
|
|
language:
|
|
type: string
|
|
enum: *ref_76
|
|
workspace_id:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
required: &ref_78
|
|
- workspace_id
|
|
- language
|
|
- created_at
|
|
- content
|
|
- id
|
|
- archived
|
|
/w/{workspace}/workspace_dependencies/get_latest/{language}:
|
|
get:
|
|
summary: get latest workspace dependencies by language and name
|
|
operationId: getLatestWorkspaceDependencies
|
|
tags:
|
|
- workspace_dependencies
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: language
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: *ref_76
|
|
- name: name
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Latest workspace dependencies
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_77
|
|
required: *ref_78
|
|
/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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
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_4
|
|
- name: hash
|
|
in: path
|
|
required: true
|
|
schema: &ref_81
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_79
|
|
required: *ref_80
|
|
/w/{workspace}/scripts/delete/h/{hash}:
|
|
post:
|
|
summary: delete script by hash (erase content but keep hash, require admin)
|
|
operationId: deleteScriptByHash
|
|
x-mcp-tool: true
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: hash
|
|
in: path
|
|
required: true
|
|
schema: *ref_81
|
|
responses:
|
|
'200':
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_79
|
|
required: *ref_80
|
|
/w/{workspace}/scripts/delete/p/{path}:
|
|
post:
|
|
summary: delete script at a given path (require admin)
|
|
operationId: deleteScriptByPath
|
|
x-mcp-tool: true
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
- name: keep_captures
|
|
description: keep captures
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
'200':
|
|
description: script path
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/scripts/delete_bulk:
|
|
delete:
|
|
summary: delete scripts in bulk
|
|
operationId: deleteScriptsBulk
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: paths to delete
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
paths:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- paths
|
|
responses:
|
|
'200':
|
|
description: deleted paths
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/w/{workspace}/scripts/get/p/{path}:
|
|
get:
|
|
summary: get script by path
|
|
operationId: getScriptByPath
|
|
x-mcp-tool: true
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
- name: with_starred_info
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
'200':
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_79
|
|
required: *ref_80
|
|
/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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
responses:
|
|
'200':
|
|
description: triggers count
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_103
|
|
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
|
|
default_email_count:
|
|
type: number
|
|
websocket_count:
|
|
type: number
|
|
postgres_count:
|
|
type: number
|
|
kafka_count:
|
|
type: number
|
|
nats_count:
|
|
type: number
|
|
mqtt_count:
|
|
type: number
|
|
gcp_count:
|
|
type: number
|
|
sqs_count:
|
|
type: number
|
|
nextcloud_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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
responses:
|
|
'200':
|
|
description: tokens list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: *ref_82
|
|
required: *ref_83
|
|
/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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
responses:
|
|
'200':
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf: &ref_347
|
|
- type: object
|
|
properties: *ref_84
|
|
required: *ref_85
|
|
- type: object
|
|
properties:
|
|
draft:
|
|
type: object
|
|
properties: *ref_84
|
|
required: *ref_85
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
responses:
|
|
'200':
|
|
description: script history
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_86
|
|
script_hash:
|
|
type: string
|
|
deployment_msg:
|
|
type: string
|
|
required: &ref_87
|
|
- script_hash
|
|
/w/{workspace}/scripts/list_paths_from_workspace_runnable/{path}:
|
|
get:
|
|
summary: list script paths using provided script as a relative import
|
|
operationId: listScriptPathsFromWorkspaceRunnable
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
responses:
|
|
'200':
|
|
description: list of script paths
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
tags:
|
|
- script
|
|
responses:
|
|
'200':
|
|
description: Script version/hash
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_86
|
|
required: *ref_87
|
|
/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_4
|
|
- name: hash
|
|
in: path
|
|
required: true
|
|
schema: *ref_81
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
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_4
|
|
- name: token
|
|
in: path
|
|
required: true
|
|
schema: &ref_266
|
|
type: string
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
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_4
|
|
- name: hash
|
|
in: path
|
|
required: true
|
|
schema: *ref_81
|
|
- name: with_starred_info
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: authed
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
'200':
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_79
|
|
required: *ref_80
|
|
/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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
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_4
|
|
- name: hash
|
|
in: path
|
|
required: true
|
|
schema: *ref_81
|
|
responses:
|
|
'200':
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
lock:
|
|
type: string
|
|
lock_error_logs:
|
|
type: string
|
|
job_id:
|
|
type: string
|
|
format: uuid
|
|
/w/{workspace}/jobs/list_selected_job_groups:
|
|
post:
|
|
summary: list selected jobs script/flow schemas grouped by (kind, path)
|
|
operationId: listSelectedJobGroups
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: script args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: result
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
kind:
|
|
type: string
|
|
enum:
|
|
- script
|
|
- flow
|
|
script_path:
|
|
type: string
|
|
latest_schema:
|
|
type: object
|
|
schemas:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
schema:
|
|
type: object
|
|
script_hash:
|
|
type: string
|
|
job_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- schema
|
|
- script_hash
|
|
- job_ids
|
|
required:
|
|
- kind
|
|
- script_path
|
|
- latest_schema
|
|
- schemas
|
|
/w/{workspace}/jobs/run/p/{path}:
|
|
post:
|
|
summary: run script by path
|
|
operationId: runScriptByPath
|
|
x-mcp-tool: true
|
|
x-mcp-instructions: >-
|
|
You should first use getScriptByPath to retrieve the script's schema and
|
|
understand what arguments are expected.
|
|
x-mcp-tool-include-query-params: []
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
- 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_88
|
|
type: string
|
|
format: uuid
|
|
- name: tag
|
|
description: Override the tag to use
|
|
in: query
|
|
schema: &ref_89
|
|
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_90
|
|
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_91
|
|
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
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
responses:
|
|
'201':
|
|
description: job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
/w/{workspace}/jobs/run_wait_result/p/{path}:
|
|
post:
|
|
summary: run script by path
|
|
operationId: runWaitResultScriptByPath
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
- 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_88
|
|
- name: tag
|
|
description: Override the tag to use
|
|
in: query
|
|
schema: *ref_89
|
|
- 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_90
|
|
- 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_91
|
|
- 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_92
|
|
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_93
|
|
type: string
|
|
- name: skip_preprocessor
|
|
description: skip the preprocessor
|
|
in: query
|
|
schema: &ref_94
|
|
type: boolean
|
|
requestBody:
|
|
description: script args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
- 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_88
|
|
- name: tag
|
|
description: Override the tag to use
|
|
in: query
|
|
schema: *ref_89
|
|
- 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_90
|
|
- 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_91
|
|
- 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_92
|
|
- 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_93
|
|
- 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_95
|
|
type: string
|
|
- name: skip_preprocessor
|
|
description: skip the preprocessor
|
|
in: query
|
|
schema: *ref_94
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
- 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_92
|
|
- 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_93
|
|
- 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_91
|
|
- name: skip_preprocessor
|
|
description: skip the preprocessor
|
|
in: query
|
|
schema: *ref_94
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
description: script args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
responses:
|
|
'200':
|
|
description: job result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
/w/{workspace}/jobs/run_wait_result/fv/{version}:
|
|
post:
|
|
summary: run flow by version and wait until completion
|
|
operationId: runWaitResultFlowByVersion
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: version
|
|
description: flow version ID
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- 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_92
|
|
- 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_93
|
|
- 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_91
|
|
- name: skip_preprocessor
|
|
description: skip the preprocessor
|
|
in: query
|
|
schema: *ref_94
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
description: script args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
responses:
|
|
'200':
|
|
description: job result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
get:
|
|
summary: run flow by version with GET and wait until completion
|
|
operationId: runWaitResultFlowByVersionGet
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: version
|
|
description: flow version ID
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- 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_92
|
|
- 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_93
|
|
- 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_95
|
|
- 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_91
|
|
- name: skip_preprocessor
|
|
description: skip the preprocessor
|
|
in: query
|
|
schema: *ref_94
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: job result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
/w/{workspace}/jobs/run_and_stream/f/{path}:
|
|
post:
|
|
summary: run flow by path and stream updates via SSE
|
|
operationId: runAndStreamFlowByPath
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
- 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_92
|
|
- 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_93
|
|
- 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_91
|
|
- name: skip_preprocessor
|
|
description: skip the preprocessor
|
|
in: query
|
|
schema: *ref_94
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: poll_delay_ms
|
|
description: delay between polling for job updates in milliseconds
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
requestBody:
|
|
description: flow args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
responses:
|
|
'200':
|
|
description: server-sent events stream of job updates
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
type: string
|
|
get:
|
|
summary: run flow by path with GET and stream updates via SSE
|
|
operationId: runAndStreamFlowByPathGet
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
- 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_92
|
|
- 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_93
|
|
- 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_95
|
|
- 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_91
|
|
- name: skip_preprocessor
|
|
description: skip the preprocessor
|
|
in: query
|
|
schema: *ref_94
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: poll_delay_ms
|
|
description: delay between polling for job updates in milliseconds
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
responses:
|
|
'200':
|
|
description: server-sent events stream of job updates
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/jobs/run_and_stream/fv/{version}:
|
|
post:
|
|
summary: run flow by version and stream updates via SSE
|
|
operationId: runAndStreamFlowByVersion
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: version
|
|
description: flow version ID
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- 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_92
|
|
- 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_93
|
|
- 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_91
|
|
- name: skip_preprocessor
|
|
description: skip the preprocessor
|
|
in: query
|
|
schema: *ref_94
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: poll_delay_ms
|
|
description: delay between polling for job updates in milliseconds
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
requestBody:
|
|
description: flow args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
responses:
|
|
'200':
|
|
description: server-sent events stream of job updates
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
type: string
|
|
get:
|
|
summary: run flow by version with GET and stream updates via SSE
|
|
operationId: runAndStreamFlowByVersionGet
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: version
|
|
description: flow version ID
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- 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_92
|
|
- 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_93
|
|
- 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_95
|
|
- 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_91
|
|
- name: skip_preprocessor
|
|
description: skip the preprocessor
|
|
in: query
|
|
schema: *ref_94
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: poll_delay_ms
|
|
description: delay between polling for job updates in milliseconds
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
responses:
|
|
'200':
|
|
description: server-sent events stream of job updates
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/jobs/run_and_stream/p/{path}:
|
|
post:
|
|
summary: run script by path and stream updates via SSE
|
|
operationId: runAndStreamScriptByPath
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
- 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_88
|
|
- name: tag
|
|
description: Override the tag to use
|
|
in: query
|
|
schema: *ref_89
|
|
- 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_90
|
|
- 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_91
|
|
- 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_92
|
|
- 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_93
|
|
- name: skip_preprocessor
|
|
description: skip the preprocessor
|
|
in: query
|
|
schema: *ref_94
|
|
- name: poll_delay_ms
|
|
description: delay between polling for job updates in milliseconds
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
requestBody:
|
|
description: script args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
responses:
|
|
'200':
|
|
description: server-sent events stream of job updates
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
type: string
|
|
get:
|
|
summary: run script by path with GET and stream updates via SSE
|
|
operationId: runAndStreamScriptByPathGet
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
- 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_88
|
|
- name: tag
|
|
description: Override the tag to use
|
|
in: query
|
|
schema: *ref_89
|
|
- 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_90
|
|
- 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_91
|
|
- 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_92
|
|
- 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_93
|
|
- 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_95
|
|
- name: skip_preprocessor
|
|
description: skip the preprocessor
|
|
in: query
|
|
schema: *ref_94
|
|
- name: poll_delay_ms
|
|
description: delay between polling for job updates in milliseconds
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
responses:
|
|
'200':
|
|
description: server-sent events stream of job updates
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/jobs/run_and_stream/h/{hash}:
|
|
post:
|
|
summary: run script by hash and stream updates via SSE
|
|
operationId: runAndStreamScriptByHash
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: hash
|
|
in: path
|
|
required: true
|
|
schema:
|
|
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_88
|
|
- name: tag
|
|
description: Override the tag to use
|
|
in: query
|
|
schema: *ref_89
|
|
- 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_90
|
|
- 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_91
|
|
- 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_92
|
|
- 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_93
|
|
- name: skip_preprocessor
|
|
description: skip the preprocessor
|
|
in: query
|
|
schema: *ref_94
|
|
- name: poll_delay_ms
|
|
description: delay between polling for job updates in milliseconds
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
requestBody:
|
|
description: script args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
responses:
|
|
'200':
|
|
description: server-sent events stream of job updates
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
type: string
|
|
get:
|
|
summary: run script by hash with GET and stream updates via SSE
|
|
operationId: runAndStreamScriptByHashGet
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: hash
|
|
in: path
|
|
required: true
|
|
schema:
|
|
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_88
|
|
- name: tag
|
|
description: Override the tag to use
|
|
in: query
|
|
schema: *ref_89
|
|
- 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_90
|
|
- 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_91
|
|
- 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_92
|
|
- 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_93
|
|
- 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_95
|
|
- name: skip_preprocessor
|
|
description: skip the preprocessor
|
|
in: query
|
|
schema: *ref_94
|
|
- name: poll_delay_ms
|
|
description: delay between polling for job updates in milliseconds
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
responses:
|
|
'200':
|
|
description: server-sent events stream of job updates
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
type: string
|
|
/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_4
|
|
- 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_4
|
|
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_4
|
|
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
|
|
x-mcp-tool: true
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- name: order_desc
|
|
description: order by desc order (default true)
|
|
in: query
|
|
schema: *ref_96
|
|
- name: created_by
|
|
description: mask to filter exact matching user creator
|
|
in: query
|
|
schema: *ref_97
|
|
- 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
|
|
- name: without_description
|
|
in: query
|
|
description: |
|
|
(default false)
|
|
If true, the description field will be omitted from the response.
|
|
schema:
|
|
type: boolean
|
|
- name: dedicated_worker
|
|
in: query
|
|
description: |
|
|
(default regardless)
|
|
If true, show only flows with dedicated_worker enabled.
|
|
If false, show only flows with dedicated_worker disabled.
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
'200':
|
|
description: All flow
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
allOf:
|
|
- allOf: &ref_102
|
|
- type: object
|
|
description: >-
|
|
Top-level flow definition containing metadata,
|
|
configuration, and the flow structure
|
|
properties: *ref_98
|
|
required: *ref_99
|
|
- type: object
|
|
properties: &ref_449
|
|
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_448
|
|
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
|
|
on_behalf_of_email:
|
|
type: string
|
|
required: &ref_450
|
|
- path
|
|
- edited_by
|
|
- edited_at
|
|
- archived
|
|
- extra_perms
|
|
- type: object
|
|
properties:
|
|
lock_error_logs:
|
|
type: string
|
|
version_id:
|
|
type: number
|
|
- 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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
tags:
|
|
- flow
|
|
responses:
|
|
'200':
|
|
description: Flow history
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_100
|
|
id:
|
|
type: integer
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
deployment_msg:
|
|
type: string
|
|
required: &ref_101
|
|
- 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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
tags:
|
|
- flow
|
|
responses:
|
|
'200':
|
|
description: Flow version
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_100
|
|
required: *ref_101
|
|
/w/{workspace}/flows/list_paths_from_workspace_runnable/{runnable_kind}/{path}:
|
|
get:
|
|
summary: list flow paths from workspace runnable
|
|
operationId: listFlowPathsFromWorkspaceRunnable
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: runnable_kind
|
|
in: path
|
|
required: true
|
|
schema: &ref_110
|
|
type: string
|
|
enum:
|
|
- script
|
|
- flow
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
- name: match_path_start
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
'200':
|
|
description: list of flow paths
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/w/{workspace}/flows/get/v/{version}:
|
|
get:
|
|
summary: get flow version
|
|
operationId: getFlowVersion
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: version
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
tags:
|
|
- flow
|
|
responses:
|
|
'200':
|
|
description: flow details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf: *ref_102
|
|
/w/{workspace}/flows/history_update/v/{version}:
|
|
post:
|
|
summary: update flow history
|
|
operationId: updateFlowHistory
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: version
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
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
|
|
x-mcp-tool: true
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
- name: with_starred_info
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
'200':
|
|
description: flow details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf: *ref_102
|
|
/w/{workspace}/flows/deployment_status/p/{path}:
|
|
get:
|
|
summary: get flow deployment status
|
|
operationId: getFlowDeploymentStatus
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
responses:
|
|
'200':
|
|
description: flow status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
lock_error_logs:
|
|
type: string
|
|
job_id:
|
|
type: string
|
|
format: uuid
|
|
/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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
responses:
|
|
'200':
|
|
description: triggers count
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_103
|
|
/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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
responses:
|
|
'200':
|
|
description: tokens list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: *ref_82
|
|
required: *ref_83
|
|
/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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
responses:
|
|
'200':
|
|
description: flow details with draft
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf:
|
|
- allOf: *ref_102
|
|
- type: object
|
|
properties:
|
|
draft:
|
|
allOf: *ref_102
|
|
/w/{workspace}/flows/exists/{path}:
|
|
get:
|
|
summary: exists flow by path
|
|
operationId: existsFlowByPath
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
responses:
|
|
'200':
|
|
description: flow details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
/w/{workspace}/flows/create:
|
|
post:
|
|
summary: create flow
|
|
operationId: createFlow
|
|
x-mcp-tool: true
|
|
x-mcp-tool-include-fields:
|
|
- path
|
|
- summary
|
|
- description
|
|
- value
|
|
- schema
|
|
- tag
|
|
- deployment_message
|
|
x-mcp-tool-opaque-fields:
|
|
- value
|
|
- schema
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: Partially filled flow
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf:
|
|
- allOf: &ref_104
|
|
- type: object
|
|
description: >-
|
|
Top-level flow definition containing metadata,
|
|
configuration, and the flow structure
|
|
properties: *ref_98
|
|
required: *ref_99
|
|
- 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
|
|
on_behalf_of_email:
|
|
type: string
|
|
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
|
|
x-mcp-tool: true
|
|
x-mcp-tool-include-fields:
|
|
- path
|
|
- summary
|
|
- description
|
|
- value
|
|
- schema
|
|
- tag
|
|
- deployment_message
|
|
x-mcp-tool-opaque-fields:
|
|
- value
|
|
- schema
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
requestBody:
|
|
description: Partially filled flow
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf:
|
|
- allOf: *ref_104
|
|
- 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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
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
|
|
x-mcp-tool: true
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
- name: keep_captures
|
|
description: keep captures
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
'200':
|
|
description: flow delete
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/flow_conversations/list:
|
|
get:
|
|
summary: list flow conversations
|
|
operationId: listFlowConversations
|
|
tags:
|
|
- flow_conversation
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- name: flow_path
|
|
description: filter conversations by flow path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: flow conversations list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required: &ref_333
|
|
- id
|
|
- workspace_id
|
|
- flow_path
|
|
- created_at
|
|
- updated_at
|
|
- created_by
|
|
properties: &ref_334
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
description: Unique identifier for the conversation
|
|
workspace_id:
|
|
type: string
|
|
description: The workspace ID where the conversation belongs
|
|
flow_path:
|
|
type: string
|
|
description: Path of the flow this conversation is for
|
|
title:
|
|
type: string
|
|
description: Optional title for the conversation
|
|
nullable: true
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
description: When the conversation was created
|
|
updated_at:
|
|
type: string
|
|
format: date-time
|
|
description: When the conversation was last updated
|
|
created_by:
|
|
type: string
|
|
description: Username who created the conversation
|
|
/w/{workspace}/flow_conversations/delete/{conversation_id}:
|
|
delete:
|
|
summary: delete flow conversation
|
|
operationId: deleteFlowConversation
|
|
tags:
|
|
- flow_conversation
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: conversation_id
|
|
description: conversation id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: flow conversation deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/flow_conversations/{conversation_id}/messages:
|
|
get:
|
|
summary: list conversation messages
|
|
operationId: listConversationMessages
|
|
tags:
|
|
- flow_conversation
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- name: conversation_id
|
|
description: conversation id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: after_id
|
|
description: id to fetch only the messages after that id
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: conversation messages
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required: &ref_335
|
|
- id
|
|
- conversation_id
|
|
- message_type
|
|
- content
|
|
- created_at
|
|
properties: &ref_336
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
description: Unique identifier for the message
|
|
conversation_id:
|
|
type: string
|
|
format: uuid
|
|
description: The conversation this message belongs to
|
|
message_type:
|
|
type: string
|
|
enum:
|
|
- user
|
|
- assistant
|
|
- system
|
|
- tool
|
|
description: Type of the message
|
|
content:
|
|
type: string
|
|
description: The message content
|
|
job_id:
|
|
type: string
|
|
format: uuid
|
|
nullable: true
|
|
description: Associated job ID if this message came from a flow run
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
description: When the message was created
|
|
step_name:
|
|
type: string
|
|
description: The step name that produced that message
|
|
success:
|
|
type: boolean
|
|
description: Whether the message is a success
|
|
/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_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- name: order_desc
|
|
description: order by desc order (default true)
|
|
in: query
|
|
schema: *ref_96
|
|
- name: created_by
|
|
description: mask to filter exact matching user creator
|
|
in: query
|
|
schema: *ref_97
|
|
- 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_458
|
|
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_459
|
|
- workspace_id
|
|
- path
|
|
- summary
|
|
- extra_perms
|
|
- version
|
|
- edited_at
|
|
/w/{workspace}/apps/get_data/v/{secretWithExtension}:
|
|
get:
|
|
summary: get raw app data by
|
|
operationId: getRawAppData
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: secretWithExtension
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
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_4
|
|
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_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- name: order_desc
|
|
description: order by desc order (default true)
|
|
in: query
|
|
schema: *ref_96
|
|
- name: created_by
|
|
description: mask to filter exact matching user creator
|
|
in: query
|
|
schema: *ref_97
|
|
- 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_452
|
|
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
|
|
raw_app:
|
|
type: boolean
|
|
required: &ref_453
|
|
- id
|
|
- workspace_id
|
|
- path
|
|
- summary
|
|
- version
|
|
- extra_perms
|
|
- edited_at
|
|
- execution_mode
|
|
/w/{workspace}/apps/create:
|
|
post:
|
|
summary: create app
|
|
operationId: createApp
|
|
x-mcp-tool: true
|
|
x-mcp-tool-include-fields:
|
|
- path
|
|
- value
|
|
- summary
|
|
- policy
|
|
- deployment_message
|
|
x-mcp-tool-opaque-fields:
|
|
- value
|
|
- policy
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
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_105
|
|
draft_only:
|
|
type: boolean
|
|
deployment_message:
|
|
type: string
|
|
custom_path:
|
|
type: string
|
|
required:
|
|
- path
|
|
- value
|
|
- summary
|
|
- policy
|
|
responses:
|
|
'201':
|
|
description: app created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/apps/create_raw:
|
|
post:
|
|
summary: create app raw
|
|
operationId: createAppRaw
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: new app
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
app:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
value: {}
|
|
summary:
|
|
type: string
|
|
policy:
|
|
type: object
|
|
properties: *ref_105
|
|
draft_only:
|
|
type: boolean
|
|
deployment_message:
|
|
type: string
|
|
custom_path:
|
|
type: string
|
|
required:
|
|
- path
|
|
- value
|
|
- summary
|
|
- policy
|
|
js:
|
|
type: string
|
|
css:
|
|
type: string
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
- name: with_starred_info
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
'200':
|
|
description: app details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_106
|
|
required: *ref_107
|
|
/w/{workspace}/apps/get/lite/{path}:
|
|
get:
|
|
summary: get app lite by path
|
|
operationId: getAppLiteByPath
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
responses:
|
|
'200':
|
|
description: app lite details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_106
|
|
required: *ref_107
|
|
/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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
responses:
|
|
'200':
|
|
description: app details with draft
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf: &ref_460
|
|
- type: object
|
|
properties: *ref_106
|
|
required: *ref_107
|
|
- 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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
responses:
|
|
'200':
|
|
description: app history
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_108
|
|
version:
|
|
type: integer
|
|
deployment_msg:
|
|
type: string
|
|
required: &ref_109
|
|
- 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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
tags:
|
|
- app
|
|
responses:
|
|
'200':
|
|
description: App version
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_108
|
|
required: *ref_109
|
|
/w/{workspace}/apps/list_paths_from_workspace_runnable/{runnable_kind}/{path}:
|
|
get:
|
|
summary: list app paths from workspace runnable
|
|
operationId: listAppPathsFromWorkspaceRunnable
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: runnable_kind
|
|
in: path
|
|
required: true
|
|
schema: *ref_110
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
responses:
|
|
'200':
|
|
description: list of app paths
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_61
|
|
- name: version
|
|
in: path
|
|
required: true
|
|
schema: &ref_267
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: app details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_106
|
|
required: *ref_107
|
|
/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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: app secret
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/apps/secret_of_latest_version/{path}:
|
|
get:
|
|
summary: get public secret of latest version of an app bundle
|
|
operationId: getPublicSecretOfLatestVersionOfApp
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_61
|
|
responses:
|
|
'200':
|
|
description: app details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_106
|
|
required: *ref_107
|
|
/w/{workspace}/apps/delete/{path}:
|
|
delete:
|
|
summary: delete app
|
|
operationId: deleteApp
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: app deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/apps/update/{path}:
|
|
post:
|
|
summary: update app
|
|
operationId: updateApp
|
|
x-mcp-tool: true
|
|
x-mcp-tool-include-fields:
|
|
- path
|
|
- value
|
|
- summary
|
|
- policy
|
|
- deployment_message
|
|
x-mcp-tool-opaque-fields:
|
|
- value
|
|
- policy
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
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_105
|
|
deployment_message:
|
|
type: string
|
|
custom_path:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: app updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/apps/update_raw/{path}:
|
|
post:
|
|
summary: update app
|
|
operationId: updateAppRaw
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
requestBody:
|
|
description: update app
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
app:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
value: {}
|
|
policy:
|
|
type: object
|
|
properties: *ref_105
|
|
deployment_message:
|
|
type: string
|
|
custom_path:
|
|
type: string
|
|
js:
|
|
type: string
|
|
css:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: app updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/apps/custom_path_exists/{custom_path}:
|
|
get:
|
|
summary: check if custom path exists
|
|
operationId: customPathExists
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: custom_path
|
|
in: path
|
|
required: true
|
|
schema: *ref_111
|
|
responses:
|
|
'200':
|
|
description: custom path exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
/w/{workspace}/apps/sign_s3_objects:
|
|
post:
|
|
summary: sign s3 objects, to be used by anonymous users in public apps
|
|
operationId: signS3Objects
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: s3 objects to sign
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
s3_objects:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_112
|
|
s3:
|
|
type: string
|
|
filename:
|
|
type: string
|
|
storage:
|
|
type: string
|
|
presigned:
|
|
type: string
|
|
required: &ref_113
|
|
- s3
|
|
required:
|
|
- s3_objects
|
|
responses:
|
|
'200':
|
|
description: signed s3 objects
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: *ref_112
|
|
required: *ref_113
|
|
/w/{workspace}/apps_u/execute_component/{path}:
|
|
post:
|
|
summary: executeComponent
|
|
operationId: executeComponent
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
requestBody:
|
|
description: update app
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
component:
|
|
type: string
|
|
path:
|
|
type: string
|
|
version:
|
|
type: integer
|
|
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
|
|
id:
|
|
type: integer
|
|
force_viewer_static_fields:
|
|
type: object
|
|
force_viewer_one_of_fields:
|
|
type: object
|
|
force_viewer_allow_user_resources:
|
|
type: array
|
|
items:
|
|
type: string
|
|
run_query_params:
|
|
type: object
|
|
description: Runnable query parameters
|
|
required:
|
|
- args
|
|
- component
|
|
responses:
|
|
'200':
|
|
description: job uuid
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/apps_u/upload_s3_file/{path}:
|
|
post:
|
|
summary: upload s3 file from app
|
|
operationId: uploadS3FileFromApp
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
- 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 uploaded
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
file_key:
|
|
type: string
|
|
delete_token:
|
|
type: string
|
|
required:
|
|
- file_key
|
|
- delete_token
|
|
/w/{workspace}/apps_u/delete_s3_file:
|
|
delete:
|
|
summary: delete s3 file from app
|
|
operationId: deleteS3FileFromApp
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: delete_token
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: file deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/jobs/run/f/{path}:
|
|
post:
|
|
summary: run flow by path
|
|
operationId: runFlowByPath
|
|
x-mcp-tool: true
|
|
x-mcp-instructions: >-
|
|
You should first use getFlowByPath to retrieve the flow's schema and
|
|
understand what arguments are expected.
|
|
x-mcp-tool-include-query-params: []
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
- 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: *ref_94
|
|
- 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_88
|
|
- name: tag
|
|
description: Override the tag to use
|
|
in: query
|
|
schema: *ref_89
|
|
- 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_91
|
|
- 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_92
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the flow owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
description: flow args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
responses:
|
|
'201':
|
|
description: job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
/w/{workspace}/jobs/run/fv/{version}:
|
|
post:
|
|
summary: run flow by version
|
|
operationId: runFlowByVersion
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: version
|
|
description: flow version ID
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- 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: *ref_94
|
|
- 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_88
|
|
- name: tag
|
|
description: Override the tag to use
|
|
in: query
|
|
schema: *ref_89
|
|
- 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_91
|
|
- 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_92
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the flow owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
description: flow args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
responses:
|
|
'201':
|
|
description: job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
/w/{workspace}/jobs/run/batch_rerun_jobs:
|
|
post:
|
|
summary: re-run multiple jobs
|
|
operationId: batchReRunJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: list of job ids to re run and arg tranforms
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- job_ids
|
|
- script_options_by_path
|
|
- flow_options_by_path
|
|
properties:
|
|
job_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
script_options_by_path:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
properties:
|
|
input_transforms:
|
|
type: object
|
|
additionalProperties:
|
|
description: >-
|
|
Maps input parameters for a step. Can be a static
|
|
value or a JavaScript expression that references
|
|
previous results or flow inputs
|
|
oneOf: &ref_116
|
|
- type: object
|
|
description: >-
|
|
Static value passed directly to the step. Use
|
|
for hardcoded values or resource references like
|
|
'$res:path/to/resource'
|
|
properties: *ref_114
|
|
required: *ref_115
|
|
- type: object
|
|
description: >-
|
|
JavaScript expression evaluated at runtime. Can
|
|
reference previous step results via
|
|
'results.step_id' or flow inputs via
|
|
'flow_input.property'. Inside loops, use
|
|
'flow_input.iter.value' for the current
|
|
iteration value
|
|
properties: *ref_66
|
|
required: *ref_67
|
|
- type: object
|
|
description: >-
|
|
Value resolved by the AI runtime for this input.
|
|
The AI engine decides how to satisfy the
|
|
parameter.
|
|
properties: *ref_68
|
|
required: *ref_69
|
|
discriminator: &ref_117
|
|
propertyName: type
|
|
mapping:
|
|
static: '#/components/schemas/schemas-StaticTransform'
|
|
javascript: '#/components/schemas/schemas-JavascriptTransform'
|
|
ai: '#/components/schemas/schemas-AiTransform'
|
|
use_latest_version:
|
|
type: boolean
|
|
flow_options_by_path:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
properties:
|
|
input_transforms:
|
|
type: object
|
|
additionalProperties:
|
|
description: >-
|
|
Maps input parameters for a step. Can be a static
|
|
value or a JavaScript expression that references
|
|
previous results or flow inputs
|
|
oneOf: *ref_116
|
|
discriminator: *ref_117
|
|
use_latest_version:
|
|
type: boolean
|
|
responses:
|
|
'201':
|
|
description: >-
|
|
stream of created job uuids separated by \n. Lines may start with
|
|
'Error:'
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/jobs/restart/f/{id}:
|
|
post:
|
|
summary: restart a completed flow at a given step
|
|
operationId: restartFlowAtStep
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: &ref_144
|
|
type: string
|
|
format: uuid
|
|
- 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_88
|
|
- name: tag
|
|
description: Override the tag to use
|
|
in: query
|
|
schema: *ref_89
|
|
- 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_91
|
|
- 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_92
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the flow owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
requestBody:
|
|
description: restart flow parameters
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- step_id
|
|
properties:
|
|
step_id:
|
|
type: string
|
|
description: step id to restart the flow from
|
|
branch_or_iteration_n:
|
|
type: integer
|
|
description: >-
|
|
for branchall or loop, the iteration at which the flow
|
|
should restart (optional)
|
|
flow_version:
|
|
type: integer
|
|
description: >-
|
|
specific flow version to use for restart (optional, uses
|
|
current version if not specified)
|
|
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_4
|
|
- name: hash
|
|
in: path
|
|
required: true
|
|
schema: *ref_81
|
|
- 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: *ref_94
|
|
- 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_88
|
|
- name: tag
|
|
description: Override the tag to use
|
|
in: query
|
|
schema: *ref_89
|
|
- 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_90
|
|
- 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_91
|
|
- 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_92
|
|
- 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_4
|
|
- 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_92
|
|
- 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_91
|
|
requestBody:
|
|
description: preview
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_118
|
|
content:
|
|
type: string
|
|
description: The code to run
|
|
path:
|
|
type: string
|
|
description: The path to the script
|
|
script_hash:
|
|
type: string
|
|
description: The hash of the script
|
|
args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
language:
|
|
type: string
|
|
enum: *ref_76
|
|
tag:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
enum:
|
|
- code
|
|
- identity
|
|
- http
|
|
dedicated_worker:
|
|
type: boolean
|
|
lock:
|
|
type: string
|
|
required: &ref_119
|
|
- args
|
|
responses:
|
|
'201':
|
|
description: job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
/w/{workspace}/jobs/run_inline/preview:
|
|
post:
|
|
summary: run script preview without starting a new job
|
|
operationId: runScriptPreviewInline
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: preview
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_368
|
|
content:
|
|
type: string
|
|
description: The code to run
|
|
args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
language:
|
|
type: string
|
|
enum: *ref_76
|
|
required: &ref_369
|
|
- content
|
|
- args
|
|
- language
|
|
responses:
|
|
'200':
|
|
description: script result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
/w/{workspace}/jobs/run_wait_result/preview:
|
|
post:
|
|
summary: run script preview and wait for result
|
|
operationId: runScriptPreviewAndWaitResult
|
|
x-mcp-tool: true
|
|
x-mcp-instructions: >-
|
|
Allows testing a script before deploying it. For typescript code, the
|
|
language to send is either bun or deno. By default, send bun if no deno
|
|
specific code is detected.
|
|
x-mcp-required-fields:
|
|
- content
|
|
- language
|
|
- args
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: preview
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_118
|
|
required: *ref_119
|
|
responses:
|
|
'200':
|
|
description: job result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
/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_4
|
|
- 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_370
|
|
args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
required: &ref_371
|
|
- 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_4
|
|
requestBody:
|
|
description: raw script content
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
raw_scripts:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_475
|
|
raw_code:
|
|
type: string
|
|
path:
|
|
type: string
|
|
language:
|
|
type: string
|
|
enum: *ref_76
|
|
required: &ref_476
|
|
- 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_4
|
|
- 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_92
|
|
- 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_91
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
description: preview
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_122
|
|
value:
|
|
type: object
|
|
description: >-
|
|
The flow structure containing modules and optional
|
|
preprocessor/failure handlers
|
|
properties: &ref_126
|
|
modules:
|
|
type: array
|
|
description: >-
|
|
Array of steps that execute in sequence. Each step can
|
|
be a script, subflow, loop, or branch
|
|
items:
|
|
type: object
|
|
description: >-
|
|
A single step in a flow. Can be a script, subflow,
|
|
loop, or branch
|
|
properties: *ref_64
|
|
required: *ref_65
|
|
failure_module:
|
|
description: >-
|
|
A single step in a flow. Can be a script, subflow, loop,
|
|
or branch
|
|
type: object
|
|
properties: *ref_64
|
|
required: *ref_65
|
|
preprocessor_module:
|
|
description: >-
|
|
A single step in a flow. Can be a script, subflow, loop,
|
|
or branch
|
|
type: object
|
|
properties: *ref_64
|
|
required: *ref_65
|
|
same_worker:
|
|
type: boolean
|
|
description: >-
|
|
If true, all steps run on the same worker for better
|
|
performance
|
|
concurrent_limit:
|
|
type: number
|
|
description: Maximum number of concurrent executions of this flow
|
|
concurrency_key:
|
|
type: string
|
|
description: >-
|
|
Expression to group concurrent executions (e.g., by user
|
|
ID)
|
|
concurrency_time_window_s:
|
|
type: number
|
|
description: Time window in seconds for concurrent_limit
|
|
debounce_delay_s:
|
|
type: number
|
|
description: Delay in seconds to debounce flow executions
|
|
debounce_key:
|
|
type: string
|
|
description: Expression to group debounced executions
|
|
debounce_args_to_accumulate:
|
|
type: array
|
|
description: Arguments to accumulate across debounced executions
|
|
items:
|
|
type: string
|
|
max_total_debouncing_time:
|
|
type: number
|
|
description: >-
|
|
Maximum total time in seconds that a job can be
|
|
debounced
|
|
max_total_debounces_amount:
|
|
type: number
|
|
description: Maximum number of times a job can be debounced
|
|
skip_expr:
|
|
type: string
|
|
description: >-
|
|
JavaScript expression to conditionally skip the entire
|
|
flow
|
|
cache_ttl:
|
|
type: number
|
|
description: Cache duration in seconds for flow results
|
|
cache_ignore_s3_path:
|
|
type: boolean
|
|
flow_env:
|
|
type: object
|
|
description: Environment variables available to all steps
|
|
additionalProperties:
|
|
type: string
|
|
priority:
|
|
type: number
|
|
description: Execution priority (higher numbers run first)
|
|
early_return:
|
|
type: string
|
|
description: JavaScript expression to return early from the flow
|
|
chat_input_enabled:
|
|
type: boolean
|
|
description: Whether this flow accepts chat-style input
|
|
notes:
|
|
type: array
|
|
description: Sticky notes attached to the flow
|
|
items:
|
|
type: object
|
|
description: >-
|
|
A sticky note attached to a flow for documentation and
|
|
annotation
|
|
properties: *ref_120
|
|
required: *ref_121
|
|
required: &ref_127
|
|
- modules
|
|
path:
|
|
type: string
|
|
args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
tag:
|
|
type: string
|
|
restarted_from:
|
|
type: object
|
|
properties: &ref_451
|
|
flow_job_id:
|
|
type: string
|
|
format: uuid
|
|
step_id:
|
|
type: string
|
|
branch_or_iteration_n:
|
|
type: integer
|
|
flow_version:
|
|
type: integer
|
|
required: &ref_123
|
|
- value
|
|
- content
|
|
- args
|
|
responses:
|
|
'201':
|
|
description: job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
/w/{workspace}/jobs/run_wait_result/preview_flow:
|
|
post:
|
|
summary: run flow preview and wait for result
|
|
operationId: runFlowPreviewAndWaitResult
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: memory_id
|
|
description: memory ID for chat-enabled flows
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
description: preview
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_122
|
|
required: *ref_123
|
|
responses:
|
|
'200':
|
|
description: job result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
/w/{workspace}/jobs/run/dynamic_select:
|
|
post:
|
|
summary: run dynamic select helper function
|
|
operationId: runDynamicSelect
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: dynamic select request
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_463
|
|
entrypoint_function:
|
|
type: string
|
|
description: Name of the function to execute for dynamic select
|
|
args:
|
|
type: object
|
|
description: Arguments to pass to the function
|
|
runnable_ref:
|
|
type: object
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
source:
|
|
type: string
|
|
enum:
|
|
- deployed
|
|
path:
|
|
type: string
|
|
description: Path to the deployed script or flow
|
|
runnable_kind:
|
|
type: string
|
|
enum: &ref_172
|
|
- script
|
|
- flow
|
|
required:
|
|
- source
|
|
- path
|
|
- runnable_kind
|
|
- type: object
|
|
properties:
|
|
source:
|
|
type: string
|
|
enum:
|
|
- inline
|
|
code:
|
|
type: string
|
|
description: Code content for inline execution
|
|
language:
|
|
type: string
|
|
enum: *ref_76
|
|
required:
|
|
- source
|
|
- code
|
|
required: &ref_464
|
|
- entrypoint_function
|
|
- runnable_ref
|
|
responses:
|
|
'201':
|
|
description: dynamic select job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
/w/{workspace}/jobs/queue/list:
|
|
get:
|
|
summary: list all queued jobs
|
|
operationId: listQueue
|
|
x-mcp-tool: true
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: order_desc
|
|
description: order by desc order (default true)
|
|
in: query
|
|
schema: *ref_96
|
|
- name: created_by
|
|
description: mask to filter exact matching user creator
|
|
in: query
|
|
schema: *ref_97
|
|
- 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_88
|
|
- name: worker
|
|
description: worker this job was ran on
|
|
in: query
|
|
schema: &ref_128
|
|
type: string
|
|
- name: script_path_exact
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema: &ref_129
|
|
type: string
|
|
- name: script_path_start
|
|
description: mask to filter matching starting path
|
|
in: query
|
|
schema: &ref_130
|
|
type: string
|
|
- name: schedule_path
|
|
description: mask to filter by schedule path
|
|
in: query
|
|
schema: &ref_131
|
|
type: string
|
|
- name: trigger_path
|
|
description: mask to filter by trigger path
|
|
in: query
|
|
schema: &ref_268
|
|
type: string
|
|
- name: trigger_kind
|
|
description: trigger kind (schedule, http, websocket...)
|
|
in: query
|
|
schema: &ref_160
|
|
description: job trigger kind (schedule, http, websocket...)
|
|
type: string
|
|
enum: &ref_145
|
|
- webhook
|
|
- default_email
|
|
- email
|
|
- schedule
|
|
- http
|
|
- websocket
|
|
- postgres
|
|
- kafka
|
|
- nats
|
|
- mqtt
|
|
- sqs
|
|
- gcp
|
|
- name: script_hash
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema: &ref_132
|
|
type: string
|
|
- name: started_before
|
|
description: filter on started before (inclusive) timestamp
|
|
in: query
|
|
schema: &ref_133
|
|
type: string
|
|
format: date-time
|
|
- name: started_after
|
|
description: filter on started after (exclusive) timestamp
|
|
in: query
|
|
schema: &ref_134
|
|
type: string
|
|
format: date-time
|
|
- name: success
|
|
description: filter on successful jobs
|
|
in: query
|
|
schema: &ref_142
|
|
type: boolean
|
|
- name: scheduled_for_before_now
|
|
description: filter on jobs scheduled_for before now (hence waitinf for a worker)
|
|
in: query
|
|
schema: &ref_136
|
|
type: boolean
|
|
- name: job_kinds
|
|
description: >-
|
|
filter on job kind (values 'preview', 'script', 'dependencies',
|
|
'flow') separated by,
|
|
in: query
|
|
schema: &ref_137
|
|
type: string
|
|
- name: suspended
|
|
description: filter on suspended jobs
|
|
in: query
|
|
schema: &ref_138
|
|
type: boolean
|
|
- name: running
|
|
description: filter on running jobs
|
|
in: query
|
|
schema: &ref_135
|
|
type: boolean
|
|
- name: args
|
|
description: >-
|
|
filter on jobs containing those args as a json subset (@> in
|
|
postgres)
|
|
in: query
|
|
schema: &ref_139
|
|
type: string
|
|
- name: result
|
|
description: >-
|
|
filter on jobs containing those result as a json subset (@> in
|
|
postgres)
|
|
in: query
|
|
schema: &ref_141
|
|
type: string
|
|
- name: allow_wildcards
|
|
description: allow wildcards (*) in the filter of label, tag, worker
|
|
in: query
|
|
schema: &ref_143
|
|
type: boolean
|
|
- name: tag
|
|
description: filter on jobs with a given tag/worker group
|
|
in: query
|
|
schema: &ref_140
|
|
type: string
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- 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_163
|
|
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
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
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
|
|
- singlestepflow
|
|
- flowscript
|
|
- flownode
|
|
- appscript
|
|
- aiagent
|
|
- unassigned_script
|
|
- unassigned_flow
|
|
- unassigned_singlestepflow
|
|
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_147
|
|
step:
|
|
type: integer
|
|
modules:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_124
|
|
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: {}
|
|
itered_len:
|
|
type: integer
|
|
args: {}
|
|
flow_jobs:
|
|
type: array
|
|
items:
|
|
type: string
|
|
flow_jobs_success:
|
|
type: array
|
|
items:
|
|
type: boolean
|
|
flow_jobs_duration:
|
|
type: object
|
|
properties:
|
|
started_at:
|
|
type: array
|
|
items:
|
|
type: string
|
|
duration_ms:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
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
|
|
agent_actions:
|
|
type: array
|
|
items:
|
|
type: object
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
job_id:
|
|
type: string
|
|
format: uuid
|
|
function_name:
|
|
type: string
|
|
type:
|
|
type: string
|
|
enum:
|
|
- tool_call
|
|
module_id:
|
|
type: string
|
|
required:
|
|
- job_id
|
|
- function_name
|
|
- type
|
|
- module_id
|
|
- type: object
|
|
properties:
|
|
call_id:
|
|
type: string
|
|
format: uuid
|
|
function_name:
|
|
type: string
|
|
resource_path:
|
|
type: string
|
|
type:
|
|
type: string
|
|
enum:
|
|
- mcp_tool_call
|
|
arguments:
|
|
type: object
|
|
required:
|
|
- call_id
|
|
- function_name
|
|
- resource_path
|
|
- type
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- web_search
|
|
required:
|
|
- type
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- message
|
|
required:
|
|
- content
|
|
- type
|
|
agent_actions_success:
|
|
type: array
|
|
items:
|
|
type: boolean
|
|
required: &ref_125
|
|
- type
|
|
user_states:
|
|
additionalProperties: true
|
|
preprocessor_module:
|
|
allOf:
|
|
- type: object
|
|
properties: *ref_124
|
|
required: *ref_125
|
|
failure_module:
|
|
allOf:
|
|
- type: object
|
|
properties: *ref_124
|
|
required: *ref_125
|
|
- 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_148
|
|
- step
|
|
- modules
|
|
- failure_module
|
|
workflow_as_code_status:
|
|
type: object
|
|
properties: &ref_149
|
|
scheduled_for:
|
|
type: string
|
|
format: date-time
|
|
started_at:
|
|
type: string
|
|
format: date-time
|
|
duration_ms:
|
|
type: number
|
|
name:
|
|
type: string
|
|
raw_flow:
|
|
type: object
|
|
description: >-
|
|
The flow structure containing modules and optional
|
|
preprocessor/failure handlers
|
|
properties: *ref_126
|
|
required: *ref_127
|
|
is_flow_step:
|
|
type: boolean
|
|
language:
|
|
type: string
|
|
enum: *ref_76
|
|
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
|
|
preprocessed:
|
|
type: boolean
|
|
worker:
|
|
type: string
|
|
required: &ref_164
|
|
- 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_4
|
|
- 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_4
|
|
responses:
|
|
'200':
|
|
description: completed count
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
database_length:
|
|
type: integer
|
|
required:
|
|
- database_length
|
|
/w/{workspace}/jobs/completed/count_jobs:
|
|
get:
|
|
summary: count number of completed jobs with filter
|
|
operationId: countCompletedJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: completed_after_s_ago
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- name: success
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: tags
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: all_workspaces
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
'200':
|
|
description: Count of completed jobs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: integer
|
|
/w/{workspace}/jobs/list_filtered_uuids:
|
|
get:
|
|
summary: get the ids of all jobs matching the given filters
|
|
operationId: listFilteredJobsUuids
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: created_by
|
|
description: mask to filter exact matching user creator
|
|
in: query
|
|
schema: *ref_97
|
|
- 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_146
|
|
type: string
|
|
- name: worker
|
|
description: worker this job was ran on
|
|
in: query
|
|
schema: *ref_128
|
|
- 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_88
|
|
- name: script_path_exact
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema: *ref_129
|
|
- name: script_path_start
|
|
description: mask to filter matching starting path
|
|
in: query
|
|
schema: *ref_130
|
|
- name: schedule_path
|
|
description: mask to filter by schedule path
|
|
in: query
|
|
schema: *ref_131
|
|
- name: script_hash
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema: *ref_132
|
|
- name: started_before
|
|
description: filter on started before (inclusive) timestamp
|
|
in: query
|
|
schema: *ref_133
|
|
- name: started_after
|
|
description: filter on started after (exclusive) timestamp
|
|
in: query
|
|
schema: *ref_134
|
|
- name: created_before
|
|
description: filter on created before (inclusive) timestamp
|
|
in: query
|
|
schema: &ref_154
|
|
type: string
|
|
format: date-time
|
|
- name: created_after
|
|
description: filter on created after (exclusive) timestamp
|
|
in: query
|
|
schema: &ref_155
|
|
type: string
|
|
format: date-time
|
|
- name: completed_before
|
|
description: filter on started before (inclusive) timestamp
|
|
in: query
|
|
schema: &ref_156
|
|
type: string
|
|
format: date-time
|
|
- name: completed_after
|
|
description: filter on started after (exclusive) timestamp
|
|
in: query
|
|
schema: &ref_157
|
|
type: string
|
|
format: date-time
|
|
- name: created_before_queue
|
|
description: filter on jobs created before X for jobs in the queue only
|
|
in: query
|
|
schema: &ref_158
|
|
type: string
|
|
format: date-time
|
|
- name: created_after_queue
|
|
description: filter on jobs created after X for jobs in the queue only
|
|
in: query
|
|
schema: &ref_159
|
|
type: string
|
|
format: date-time
|
|
- name: running
|
|
description: filter on running jobs
|
|
in: query
|
|
schema: *ref_135
|
|
- name: scheduled_for_before_now
|
|
description: filter on jobs scheduled_for before now (hence waitinf for a worker)
|
|
in: query
|
|
schema: *ref_136
|
|
- name: job_kinds
|
|
description: >-
|
|
filter on job kind (values 'preview', 'script', 'dependencies',
|
|
'flow') separated by,
|
|
in: query
|
|
schema: *ref_137
|
|
- name: suspended
|
|
description: filter on suspended jobs
|
|
in: query
|
|
schema: *ref_138
|
|
- name: args
|
|
description: >-
|
|
filter on jobs containing those args as a json subset (@> in
|
|
postgres)
|
|
in: query
|
|
schema: *ref_139
|
|
- name: tag
|
|
description: filter on jobs with a given tag/worker group
|
|
in: query
|
|
schema: *ref_140
|
|
- name: result
|
|
description: >-
|
|
filter on jobs containing those result as a json subset (@> in
|
|
postgres)
|
|
in: query
|
|
schema: *ref_141
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- 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: uuids of jobs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/w/{workspace}/jobs/queue/list_filtered_uuids:
|
|
get:
|
|
summary: get the ids of all queued jobs matching the given filters
|
|
operationId: listFilteredQueueUuids
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: order_desc
|
|
description: order by desc order (default true)
|
|
in: query
|
|
schema: *ref_96
|
|
- name: created_by
|
|
description: mask to filter exact matching user creator
|
|
in: query
|
|
schema: *ref_97
|
|
- 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_88
|
|
- name: script_path_exact
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema: *ref_129
|
|
- name: script_path_start
|
|
description: mask to filter matching starting path
|
|
in: query
|
|
schema: *ref_130
|
|
- name: schedule_path
|
|
description: mask to filter by schedule path
|
|
in: query
|
|
schema: *ref_131
|
|
- name: script_hash
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema: *ref_132
|
|
- name: started_before
|
|
description: filter on started before (inclusive) timestamp
|
|
in: query
|
|
schema: *ref_133
|
|
- name: started_after
|
|
description: filter on started after (exclusive) timestamp
|
|
in: query
|
|
schema: *ref_134
|
|
- name: success
|
|
description: filter on successful jobs
|
|
in: query
|
|
schema: *ref_142
|
|
- name: scheduled_for_before_now
|
|
description: filter on jobs scheduled_for before now (hence waitinf for a worker)
|
|
in: query
|
|
schema: *ref_136
|
|
- name: job_kinds
|
|
description: >-
|
|
filter on job kind (values 'preview', 'script', 'dependencies',
|
|
'flow') separated by,
|
|
in: query
|
|
schema: *ref_137
|
|
- name: suspended
|
|
description: filter on suspended jobs
|
|
in: query
|
|
schema: *ref_138
|
|
- name: running
|
|
description: filter on running jobs
|
|
in: query
|
|
schema: *ref_135
|
|
- name: args
|
|
description: >-
|
|
filter on jobs containing those args as a json subset (@> in
|
|
postgres)
|
|
in: query
|
|
schema: *ref_139
|
|
- name: result
|
|
description: >-
|
|
filter on jobs containing those result as a json subset (@> in
|
|
postgres)
|
|
in: query
|
|
schema: *ref_141
|
|
- name: allow_wildcards
|
|
description: allow wildcards (*) in the filter of label, tag, worker
|
|
in: query
|
|
schema: *ref_143
|
|
- name: tag
|
|
description: filter on jobs with a given tag/worker group
|
|
in: query
|
|
schema: *ref_140
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- 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_4
|
|
- name: force_cancel
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
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/get_otel_traces/{id}:
|
|
get:
|
|
summary: get OpenTelemetry traces for a job
|
|
operationId: getJobOtelTraces
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
responses:
|
|
'200':
|
|
description: list of OTEL Span objects (compatible with OpenTelemetry Span proto)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
/w/{workspace}/trigger/{trigger_kind}/resume_suspended_trigger_jobs/{trigger_path}:
|
|
post:
|
|
summary: resume all suspended jobs for a specific trigger
|
|
operationId: resumeSuspendedTriggerJobs
|
|
tags:
|
|
- trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: trigger_kind
|
|
description: The kind of trigger
|
|
in: path
|
|
required: true
|
|
schema:
|
|
description: job trigger kind (schedule, http, websocket...)
|
|
type: string
|
|
enum: *ref_145
|
|
- name: trigger_path
|
|
description: The path of the trigger (can contain forward slashes)
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
style: simple
|
|
explode: false
|
|
requestBody:
|
|
description: Optional list of job IDs to reassign
|
|
required: false
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
job_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
description: >-
|
|
Optional list of specific job UUIDs to reassign. If not
|
|
provided, all suspended jobs for the trigger will be
|
|
reassigned.
|
|
responses:
|
|
'200':
|
|
description: confirmation message
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/trigger/{trigger_kind}/cancel_suspended_trigger_jobs/{trigger_path}:
|
|
post:
|
|
summary: cancel all suspended jobs for a specific trigger
|
|
operationId: cancelSuspendedTriggerJobs
|
|
tags:
|
|
- trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: trigger_kind
|
|
description: The kind of trigger
|
|
in: path
|
|
required: true
|
|
schema:
|
|
description: job trigger kind (schedule, http, websocket...)
|
|
type: string
|
|
enum: *ref_145
|
|
- name: trigger_path
|
|
description: The path of the trigger (can contain forward slashes)
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
style: simple
|
|
explode: false
|
|
requestBody:
|
|
description: Optional list of job IDs to cancel
|
|
required: false
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
job_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
description: >-
|
|
Optional list of specific job UUIDs to cancel. If not
|
|
provided, all suspended jobs for the trigger will be
|
|
canceled.
|
|
responses:
|
|
'200':
|
|
description: confirmation message
|
|
content:
|
|
application/json:
|
|
schema:
|
|
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_4
|
|
- name: order_desc
|
|
description: order by desc order (default true)
|
|
in: query
|
|
schema: *ref_96
|
|
- name: created_by
|
|
description: mask to filter exact matching user creator
|
|
in: query
|
|
schema: *ref_97
|
|
- 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_146
|
|
- name: worker
|
|
description: worker this job was ran on
|
|
in: query
|
|
schema: *ref_128
|
|
- 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_88
|
|
- name: script_path_exact
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema: *ref_129
|
|
- name: script_path_start
|
|
description: mask to filter matching starting path
|
|
in: query
|
|
schema: *ref_130
|
|
- name: schedule_path
|
|
description: mask to filter by schedule path
|
|
in: query
|
|
schema: *ref_131
|
|
- name: script_hash
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema: *ref_132
|
|
- name: started_before
|
|
description: filter on started before (inclusive) timestamp
|
|
in: query
|
|
schema: *ref_133
|
|
- name: started_after
|
|
description: filter on started after (exclusive) timestamp
|
|
in: query
|
|
schema: *ref_134
|
|
- name: success
|
|
description: filter on successful jobs
|
|
in: query
|
|
schema: *ref_142
|
|
- name: job_kinds
|
|
description: >-
|
|
filter on job kind (values 'preview', 'script', 'dependencies',
|
|
'flow') separated by,
|
|
in: query
|
|
schema: *ref_137
|
|
- name: args
|
|
description: >-
|
|
filter on jobs containing those args as a json subset (@> in
|
|
postgres)
|
|
in: query
|
|
schema: *ref_139
|
|
- name: result
|
|
description: >-
|
|
filter on jobs containing those result as a json subset (@> in
|
|
postgres)
|
|
in: query
|
|
schema: *ref_141
|
|
- name: allow_wildcards
|
|
description: allow wildcards (*) in the filter of label, tag, worker
|
|
in: query
|
|
schema: *ref_143
|
|
- name: tag
|
|
description: filter on jobs with a given tag/worker group
|
|
in: query
|
|
schema: *ref_140
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- 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_161
|
|
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
|
|
completed_at:
|
|
type: string
|
|
format: date-time
|
|
duration_ms:
|
|
type: integer
|
|
success:
|
|
type: boolean
|
|
script_path:
|
|
type: string
|
|
script_hash:
|
|
type: string
|
|
args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
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
|
|
- singlestepflow
|
|
- flowscript
|
|
- flownode
|
|
- appscript
|
|
- aiagent
|
|
- unassigned_script
|
|
- unassigned_flow
|
|
- unassigned_singlestepflow
|
|
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_147
|
|
required: *ref_148
|
|
workflow_as_code_status:
|
|
type: object
|
|
properties: *ref_149
|
|
raw_flow:
|
|
type: object
|
|
description: >-
|
|
The flow structure containing modules and optional
|
|
preprocessor/failure handlers
|
|
properties: *ref_126
|
|
required: *ref_127
|
|
is_flow_step:
|
|
type: boolean
|
|
language:
|
|
type: string
|
|
enum: *ref_76
|
|
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
|
|
preprocessed:
|
|
type: boolean
|
|
worker:
|
|
type: string
|
|
required: &ref_162
|
|
- 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/completed/export:
|
|
get:
|
|
summary: export all completed jobs for backup/migration
|
|
operationId: exportCompletedJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
responses:
|
|
'200':
|
|
description: All completed jobs exported
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
description: Completed job with full data for export/import operations
|
|
properties: &ref_150
|
|
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
|
|
completed_at:
|
|
type: string
|
|
format: date-time
|
|
duration_ms:
|
|
type: integer
|
|
script_path:
|
|
type: string
|
|
script_hash:
|
|
type: string
|
|
args:
|
|
type: object
|
|
description: Full job arguments without size restrictions
|
|
result:
|
|
type: object
|
|
description: Full job result without size restrictions
|
|
logs:
|
|
type: string
|
|
description: Complete job logs from v2_job table
|
|
raw_code:
|
|
type: string
|
|
raw_lock:
|
|
type: string
|
|
canceled_by:
|
|
type: string
|
|
canceled_reason:
|
|
type: string
|
|
job_kind:
|
|
type: string
|
|
enum:
|
|
- script
|
|
- preview
|
|
- dependencies
|
|
- flow
|
|
- flowdependencies
|
|
- appdependencies
|
|
- flowpreview
|
|
- script_hub
|
|
- identity
|
|
- deploymentcallback
|
|
- singlestepflow
|
|
- flowscript
|
|
- flownode
|
|
- appscript
|
|
- aiagent
|
|
- unassigned_script
|
|
- unassigned_flow
|
|
- unassigned_singlestepflow
|
|
trigger:
|
|
type: string
|
|
description: Trigger path for the job (replaces schedule_path)
|
|
trigger_kind:
|
|
type: string
|
|
enum:
|
|
- webhook
|
|
- http
|
|
- websocket
|
|
- kafka
|
|
- email
|
|
- nats
|
|
- schedule
|
|
- app
|
|
- ui
|
|
- postgres
|
|
- sqs
|
|
- gcp
|
|
permissioned_as:
|
|
type: string
|
|
permissioned_as_email:
|
|
type: string
|
|
flow_status:
|
|
type: object
|
|
description: Flow status from v2_job_status table
|
|
workflow_as_code_status:
|
|
type: object
|
|
raw_flow:
|
|
type: object
|
|
is_flow_step:
|
|
type: boolean
|
|
language:
|
|
type: string
|
|
enum: *ref_76
|
|
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
|
|
same_worker:
|
|
type: boolean
|
|
flow_step_id:
|
|
type: string
|
|
flow_innermost_root_job:
|
|
type: string
|
|
format: uuid
|
|
concurrent_limit:
|
|
type: integer
|
|
concurrency_time_window_s:
|
|
type: integer
|
|
timeout:
|
|
type: integer
|
|
cache_ttl:
|
|
type: integer
|
|
self_wait_time_ms:
|
|
type: integer
|
|
aggregate_wait_time_ms:
|
|
type: integer
|
|
preprocessed:
|
|
type: boolean
|
|
worker:
|
|
type: string
|
|
status:
|
|
type: string
|
|
description: Actual job status from database
|
|
required: &ref_151
|
|
- id
|
|
- created_by
|
|
- created_at
|
|
- job_kind
|
|
- permissioned_as
|
|
- email
|
|
- visible_to_owner
|
|
/w/{workspace}/jobs/completed/import:
|
|
post:
|
|
summary: import completed jobs from backup/migration
|
|
operationId: importCompletedJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
description: Completed job with full data for export/import operations
|
|
properties: *ref_150
|
|
required: *ref_151
|
|
responses:
|
|
'200':
|
|
description: Successfully imported completed jobs
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/jobs/queue/export:
|
|
get:
|
|
summary: export all queued jobs for backup/migration
|
|
operationId: exportQueuedJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
responses:
|
|
'200':
|
|
description: All queued jobs exported
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
description: Queued job with full data for export/import operations
|
|
properties: &ref_152
|
|
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
|
|
script_path:
|
|
type: string
|
|
script_hash:
|
|
type: string
|
|
args:
|
|
type: object
|
|
description: Full job arguments without size restrictions
|
|
logs:
|
|
type: string
|
|
description: Complete job logs from v2_job table
|
|
raw_code:
|
|
type: string
|
|
raw_lock:
|
|
type: string
|
|
canceled_by:
|
|
type: string
|
|
canceled_reason:
|
|
type: string
|
|
job_kind:
|
|
type: string
|
|
enum:
|
|
- script
|
|
- preview
|
|
- dependencies
|
|
- flowdependencies
|
|
- appdependencies
|
|
- flow
|
|
- flowpreview
|
|
- script_hub
|
|
- identity
|
|
- deploymentcallback
|
|
- singlestepflow
|
|
- flowscript
|
|
- flownode
|
|
- appscript
|
|
- aiagent
|
|
- unassigned_script
|
|
- unassigned_flow
|
|
- unassigned_singlestepflow
|
|
trigger:
|
|
type: string
|
|
description: Trigger path for the job (replaces schedule_path)
|
|
trigger_kind:
|
|
type: string
|
|
enum:
|
|
- webhook
|
|
- http
|
|
- websocket
|
|
- kafka
|
|
- email
|
|
- nats
|
|
- schedule
|
|
- app
|
|
- ui
|
|
- postgres
|
|
- sqs
|
|
- gcp
|
|
permissioned_as:
|
|
type: string
|
|
permissioned_as_email:
|
|
type: string
|
|
flow_status:
|
|
type: object
|
|
description: Flow status from v2_job_status table
|
|
workflow_as_code_status:
|
|
type: object
|
|
raw_flow:
|
|
type: object
|
|
is_flow_step:
|
|
type: boolean
|
|
language:
|
|
type: string
|
|
enum: *ref_76
|
|
email:
|
|
type: string
|
|
visible_to_owner:
|
|
type: boolean
|
|
mem_peak:
|
|
type: integer
|
|
tag:
|
|
type: string
|
|
priority:
|
|
type: integer
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
same_worker:
|
|
type: boolean
|
|
flow_step_id:
|
|
type: string
|
|
flow_innermost_root_job:
|
|
type: string
|
|
format: uuid
|
|
concurrent_limit:
|
|
type: integer
|
|
concurrency_time_window_s:
|
|
type: integer
|
|
timeout:
|
|
type: integer
|
|
cache_ttl:
|
|
type: integer
|
|
self_wait_time_ms:
|
|
type: integer
|
|
aggregate_wait_time_ms:
|
|
type: integer
|
|
preprocessed:
|
|
type: boolean
|
|
suspend:
|
|
type: integer
|
|
suspend_until:
|
|
type: string
|
|
format: date-time
|
|
required: &ref_153
|
|
- id
|
|
- created_by
|
|
- created_at
|
|
- job_kind
|
|
- permissioned_as
|
|
- email
|
|
- visible_to_owner
|
|
/w/{workspace}/jobs/queue/import:
|
|
post:
|
|
summary: import queued jobs from backup/migration
|
|
operationId: importQueuedJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
description: Queued job with full data for export/import operations
|
|
properties: *ref_152
|
|
required: *ref_153
|
|
responses:
|
|
'200':
|
|
description: Successfully imported queued jobs
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/jobs/delete:
|
|
post:
|
|
summary: delete jobs by IDs from all related tables
|
|
operationId: deleteJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: uuid
|
|
description: Array of job IDs to delete
|
|
responses:
|
|
'200':
|
|
description: Successfully deleted jobs
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
description: Summary of deleted jobs and rows
|
|
/w/{workspace}/jobs/list:
|
|
get:
|
|
summary: list all jobs
|
|
operationId: listJobs
|
|
x-mcp-tool: true
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: created_by
|
|
description: mask to filter exact matching user creator
|
|
in: query
|
|
schema: *ref_97
|
|
- 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_146
|
|
- name: worker
|
|
description: worker this job was ran on
|
|
in: query
|
|
schema: *ref_128
|
|
- 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_88
|
|
- name: script_path_exact
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema: *ref_129
|
|
- name: script_path_start
|
|
description: mask to filter matching starting path
|
|
in: query
|
|
schema: *ref_130
|
|
- name: schedule_path
|
|
description: mask to filter by schedule path
|
|
in: query
|
|
schema: *ref_131
|
|
- name: script_hash
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema: *ref_132
|
|
- name: started_before
|
|
description: filter on started before (inclusive) timestamp
|
|
in: query
|
|
schema: *ref_133
|
|
- name: started_after
|
|
description: filter on started after (exclusive) timestamp
|
|
in: query
|
|
schema: *ref_134
|
|
- name: created_before
|
|
description: filter on created before (inclusive) timestamp
|
|
in: query
|
|
schema: *ref_154
|
|
- name: created_after
|
|
description: filter on created after (exclusive) timestamp
|
|
in: query
|
|
schema: *ref_155
|
|
- name: completed_before
|
|
description: filter on started before (inclusive) timestamp
|
|
in: query
|
|
schema: *ref_156
|
|
- name: completed_after
|
|
description: filter on started after (exclusive) timestamp
|
|
in: query
|
|
schema: *ref_157
|
|
- name: created_before_queue
|
|
description: filter on jobs created before X for jobs in the queue only
|
|
in: query
|
|
schema: *ref_158
|
|
- name: created_after_queue
|
|
description: filter on jobs created after X for jobs in the queue only
|
|
in: query
|
|
schema: *ref_159
|
|
- name: running
|
|
description: filter on running jobs
|
|
in: query
|
|
schema: *ref_135
|
|
- name: scheduled_for_before_now
|
|
description: filter on jobs scheduled_for before now (hence waitinf for a worker)
|
|
in: query
|
|
schema: *ref_136
|
|
- name: job_kinds
|
|
description: >-
|
|
filter on job kind (values 'preview', 'script', 'dependencies',
|
|
'flow') separated by,
|
|
in: query
|
|
schema: *ref_137
|
|
- name: suspended
|
|
description: filter on suspended jobs
|
|
in: query
|
|
schema: *ref_138
|
|
- name: args
|
|
description: >-
|
|
filter on jobs containing those args as a json subset (@> in
|
|
postgres)
|
|
in: query
|
|
schema: *ref_139
|
|
- name: tag
|
|
description: filter on jobs with a given tag/worker group
|
|
in: query
|
|
schema: *ref_140
|
|
- name: result
|
|
description: >-
|
|
filter on jobs containing those result as a json subset (@> in
|
|
postgres)
|
|
in: query
|
|
schema: *ref_141
|
|
- name: allow_wildcards
|
|
description: allow wildcards (*) in the filter of label, tag, worker
|
|
in: query
|
|
schema: *ref_143
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- name: trigger_kind
|
|
description: trigger kind (schedule, http, websocket...)
|
|
in: query
|
|
schema: *ref_160
|
|
- 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_165
|
|
- allOf:
|
|
- type: object
|
|
properties: *ref_161
|
|
required: *ref_162
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- CompletedJob
|
|
- allOf:
|
|
- type: object
|
|
properties: *ref_163
|
|
required: *ref_164
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- QueuedJob
|
|
discriminator: &ref_166
|
|
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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
- name: no_logs
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: no_code
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
'200':
|
|
description: job details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
oneOf: *ref_165
|
|
discriminator: *ref_166
|
|
/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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
- name: remove_ansi_warnings
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
'200':
|
|
description: job details
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/jobs_u/get_completed_logs_tail/{id}:
|
|
get:
|
|
summary: get completed job logs tail
|
|
operationId: getCompletedJobLogsTail
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
responses:
|
|
'200':
|
|
description: completed job logs tail
|
|
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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
responses:
|
|
'200':
|
|
description: job args
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
/w/{workspace}/jobs_u/queue/get_started_at_by_ids:
|
|
post:
|
|
summary: get started at by ids
|
|
operationId: getStartedAtByIds
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: ids
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: started at by ids
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: date-time
|
|
/w/{workspace}/jobs_u/getupdate/{id}:
|
|
get:
|
|
summary: get job updates
|
|
operationId: getJobUpdates
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
- name: running
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: log_offset
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- name: stream_offset
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- name: get_progress
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: no_logs
|
|
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
|
|
stream_offset:
|
|
type: integer
|
|
new_result_stream:
|
|
type: string
|
|
flow_status:
|
|
type: object
|
|
properties: *ref_147
|
|
required: *ref_148
|
|
workflow_as_code_status:
|
|
type: object
|
|
properties: *ref_149
|
|
/w/{workspace}/jobs_u/getupdate_sse/{id}:
|
|
get:
|
|
summary: get job updates via server-sent events
|
|
operationId: getJobUpdatesSSE
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
- name: running
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: log_offset
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- name: stream_offset
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- name: get_progress
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: only_result
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: no_logs
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
'200':
|
|
description: server-sent events stream of job updates
|
|
content:
|
|
text/event-stream:
|
|
schema:
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: job log
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
responses:
|
|
'200':
|
|
description: job details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_161
|
|
required: *ref_162
|
|
/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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
- 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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
- name: get_started
|
|
in: query
|
|
schema: &ref_274
|
|
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_u/completed/get_timing/{id}:
|
|
get:
|
|
summary: get completed job timing
|
|
operationId: getCompletedJobTiming
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
responses:
|
|
'200':
|
|
description: job timing details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
started_at:
|
|
type: string
|
|
format: date-time
|
|
duration_ms:
|
|
type: integer
|
|
required:
|
|
- created_at
|
|
/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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
responses:
|
|
'200':
|
|
description: job details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_161
|
|
required: *ref_162
|
|
/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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
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/queue/position/{scheduled_for}:
|
|
get:
|
|
summary: get queue position for a job
|
|
operationId: getQueuePosition
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: scheduled_for
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
description: The scheduled for timestamp in milliseconds
|
|
responses:
|
|
'200':
|
|
description: queue position information
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
position:
|
|
type: integer
|
|
description: >-
|
|
The position in queue (1-based), null if not in queue or
|
|
already running
|
|
/w/{workspace}/jobs/queue/scheduled_for/{id}:
|
|
get:
|
|
summary: get scheduled for timestamp for a job
|
|
operationId: getScheduledFor
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
responses:
|
|
'200':
|
|
description: scheduled for timestamp
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: integer
|
|
/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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
- 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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: flow_level
|
|
in: query
|
|
description: >-
|
|
If true, generate resume URLs for the parent flow instead of the
|
|
specific step. This allows pre-approvals that can be consumed by any
|
|
later suspend step in the same flow.
|
|
schema:
|
|
type: boolean
|
|
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/slack_approval/{id}:
|
|
get:
|
|
summary: generate interactive slack approval for suspended job
|
|
operationId: getSlackApprovalPayload
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: message
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: slack_resource_path
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: channel_id
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: flow_step_id
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: default_args_json
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: dynamic_enums_json
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Interactive slack approval message sent successfully
|
|
/w/{workspace}/jobs/teams_approval/{id}:
|
|
get:
|
|
summary: generate interactive teams approval for suspended job
|
|
operationId: getTeamsApprovalPayload
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: message
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: team_name
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: channel_name
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: flow_step_id
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: default_args_json
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: dynamic_enums_json
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Interactive slack approval message sent successfully
|
|
/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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
- 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_95
|
|
- 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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
- 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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
- 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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
- 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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
- 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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
- 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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
- 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_165
|
|
discriminator: *ref_166
|
|
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
|
|
cron_version:
|
|
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
|
|
x-mcp-tool: true
|
|
x-mcp-instructions: >
|
|
Creates a new schedule.
|
|
|
|
The schedule should include seconds.
|
|
|
|
You should get the schema of the script or flow before creating the
|
|
schedule to correctly specify the arguments needed.
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: new schedule
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_381
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this schedule
|
|
schedule:
|
|
type: string
|
|
description: >-
|
|
Cron expression with 6 fields (seconds, minutes, hours, day
|
|
of month, month, day of week). Example '0 0 12 * * *' for
|
|
daily at noon
|
|
timezone:
|
|
type: string
|
|
description: >-
|
|
IANA timezone for the schedule (e.g., 'UTC', 'Europe/Paris',
|
|
'America/New_York')
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when triggered
|
|
is_flow:
|
|
type: boolean
|
|
description: >-
|
|
True if script_path points to a flow, false if it points to
|
|
a script
|
|
args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
enabled:
|
|
type: boolean
|
|
description: >-
|
|
Whether the schedule is currently active and will trigger
|
|
jobs
|
|
on_failure:
|
|
type: string
|
|
description: Path to a script or flow to run when the scheduled job fails
|
|
on_failure_times:
|
|
type: number
|
|
description: >-
|
|
Number of consecutive failures before the on_failure handler
|
|
is triggered (default 1)
|
|
on_failure_exact:
|
|
type: boolean
|
|
description: >-
|
|
If true, trigger on_failure handler only on exactly N
|
|
failures, not on every failure after N
|
|
on_failure_extra_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
on_recovery:
|
|
type: string
|
|
description: >-
|
|
Path to a script or flow to run when the schedule recovers
|
|
after failures
|
|
on_recovery_times:
|
|
type: number
|
|
description: >-
|
|
Number of consecutive successes before the on_recovery
|
|
handler is triggered (default 1)
|
|
on_recovery_extra_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
on_success:
|
|
type: string
|
|
description: >-
|
|
Path to a script or flow to run after each successful
|
|
execution
|
|
on_success_extra_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
ws_error_handler_muted:
|
|
type: boolean
|
|
description: >-
|
|
If true, the workspace-level error handler will not be
|
|
triggered for this schedule's failures
|
|
retry:
|
|
type: object
|
|
description: Retry configuration for failed module executions
|
|
properties: &ref_169
|
|
constant:
|
|
type: object
|
|
description: Retry with constant delay between attempts
|
|
properties:
|
|
attempts:
|
|
type: integer
|
|
description: Number of retry attempts
|
|
seconds:
|
|
type: integer
|
|
description: Seconds to wait between retries
|
|
exponential:
|
|
type: object
|
|
description: Retry with exponential backoff (delay doubles each time)
|
|
properties:
|
|
attempts:
|
|
type: integer
|
|
description: Number of retry attempts
|
|
multiplier:
|
|
type: integer
|
|
description: Multiplier for exponential backoff
|
|
seconds:
|
|
type: integer
|
|
minimum: 1
|
|
description: Initial delay in seconds
|
|
random_factor:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 100
|
|
description: >-
|
|
Random jitter percentage (0-100) to avoid thundering
|
|
herd
|
|
retry_if:
|
|
type: object
|
|
description: Conditional retry based on error or result
|
|
properties: *ref_167
|
|
required: *ref_168
|
|
no_flow_overlap:
|
|
type: boolean
|
|
description: >-
|
|
If true, skip this schedule's execution if the previous run
|
|
is still in progress (prevents concurrent runs)
|
|
summary:
|
|
type: string
|
|
description: Short summary describing the purpose of this schedule
|
|
description:
|
|
type: string
|
|
description: Detailed description of what this schedule does
|
|
tag:
|
|
type: string
|
|
description: Worker tag to route jobs to specific worker groups
|
|
paused_until:
|
|
type: string
|
|
format: date-time
|
|
description: >-
|
|
ISO 8601 datetime until which the schedule is paused.
|
|
Schedule resumes automatically after this time
|
|
cron_version:
|
|
type: string
|
|
description: >-
|
|
Cron parser version. Use 'v2' for extended syntax with
|
|
additional features
|
|
dynamic_skip:
|
|
type: string
|
|
description: >-
|
|
Path to a script that validates scheduled datetimes.
|
|
Receives scheduled_for datetime and returns boolean to skip
|
|
(true) or run (false)
|
|
required: &ref_382
|
|
- 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
|
|
x-mcp-tool: true
|
|
x-mcp-instructions: >
|
|
Updates a schedule.
|
|
|
|
The schedule should include seconds.
|
|
|
|
You should get the schema of the script or flow before updating the
|
|
schedule to correctly specify the arguments needed.
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: updated schedule
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_383
|
|
schedule:
|
|
type: string
|
|
description: >-
|
|
Cron expression with 6 fields (seconds, minutes, hours, day
|
|
of month, month, day of week). Example '0 0 12 * * *' for
|
|
daily at noon
|
|
timezone:
|
|
type: string
|
|
description: >-
|
|
IANA timezone for the schedule (e.g., 'UTC', 'Europe/Paris',
|
|
'America/New_York')
|
|
args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
on_failure:
|
|
type: string
|
|
description: Path to a script or flow to run when the scheduled job fails
|
|
on_failure_times:
|
|
type: number
|
|
description: >-
|
|
Number of consecutive failures before the on_failure handler
|
|
is triggered (default 1)
|
|
on_failure_exact:
|
|
type: boolean
|
|
description: >-
|
|
If true, trigger on_failure handler only on exactly N
|
|
failures, not on every failure after N
|
|
on_failure_extra_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
on_recovery:
|
|
type: string
|
|
description: >-
|
|
Path to a script or flow to run when the schedule recovers
|
|
after failures
|
|
on_recovery_times:
|
|
type: number
|
|
description: >-
|
|
Number of consecutive successes before the on_recovery
|
|
handler is triggered (default 1)
|
|
on_recovery_extra_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
on_success:
|
|
type: string
|
|
description: >-
|
|
Path to a script or flow to run after each successful
|
|
execution
|
|
on_success_extra_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
ws_error_handler_muted:
|
|
type: boolean
|
|
description: >-
|
|
If true, the workspace-level error handler will not be
|
|
triggered for this schedule's failures
|
|
retry:
|
|
type: object
|
|
description: Retry configuration for failed module executions
|
|
properties: *ref_169
|
|
no_flow_overlap:
|
|
type: boolean
|
|
description: >-
|
|
If true, skip this schedule's execution if the previous run
|
|
is still in progress (prevents concurrent runs)
|
|
summary:
|
|
type: string
|
|
description: Short summary describing the purpose of this schedule
|
|
description:
|
|
type: string
|
|
description: Detailed description of what this schedule does
|
|
tag:
|
|
type: string
|
|
description: Worker tag to route jobs to specific worker groups
|
|
paused_until:
|
|
type: string
|
|
format: date-time
|
|
description: >-
|
|
ISO 8601 datetime until which the schedule is paused.
|
|
Schedule resumes automatically after this time
|
|
cron_version:
|
|
type: string
|
|
description: >-
|
|
Cron parser version. Use 'v2' for extended syntax with
|
|
additional features
|
|
dynamic_skip:
|
|
type: string
|
|
description: >-
|
|
Path to a script that validates scheduled datetimes.
|
|
Receives scheduled_for datetime and returns boolean to skip
|
|
(true) or run (false)
|
|
required: &ref_384
|
|
- schedule
|
|
- timezone
|
|
- 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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
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
|
|
x-mcp-tool: true
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: schedule deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/schedules/get/{path}:
|
|
get:
|
|
summary: get schedule
|
|
operationId: getSchedule
|
|
x-mcp-tool: true
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: schedule deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_170
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this schedule
|
|
edited_by:
|
|
type: string
|
|
description: Username of the last person who edited this schedule
|
|
edited_at:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp of the last edit
|
|
schedule:
|
|
type: string
|
|
description: >-
|
|
Cron expression with 6 fields (seconds, minutes, hours,
|
|
day of month, month, day of week). Example '0 0 12 * * *'
|
|
for daily at noon
|
|
timezone:
|
|
type: string
|
|
description: >-
|
|
IANA timezone for the schedule (e.g., 'UTC',
|
|
'Europe/Paris', 'America/New_York')
|
|
enabled:
|
|
type: boolean
|
|
description: >-
|
|
Whether the schedule is currently active and will trigger
|
|
jobs
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when triggered
|
|
is_flow:
|
|
type: boolean
|
|
description: >-
|
|
True if script_path points to a flow, false if it points
|
|
to a script
|
|
args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
description: Additional permissions for this schedule
|
|
email:
|
|
type: string
|
|
description: >-
|
|
Email of the user who owns this schedule, used for
|
|
permissioned_as
|
|
error:
|
|
type: string
|
|
description: Last error message if the schedule failed to trigger
|
|
on_failure:
|
|
type: string
|
|
description: >-
|
|
Path to a script or flow to run when the scheduled job
|
|
fails
|
|
on_failure_times:
|
|
type: number
|
|
description: >-
|
|
Number of consecutive failures before the on_failure
|
|
handler is triggered (default 1)
|
|
on_failure_exact:
|
|
type: boolean
|
|
description: >-
|
|
If true, trigger on_failure handler only on exactly N
|
|
failures, not on every failure after N
|
|
on_failure_extra_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
on_recovery:
|
|
type: string
|
|
description: >-
|
|
Path to a script or flow to run when the schedule recovers
|
|
after failures
|
|
on_recovery_times:
|
|
type: number
|
|
description: >-
|
|
Number of consecutive successes before the on_recovery
|
|
handler is triggered (default 1)
|
|
on_recovery_extra_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
on_success:
|
|
type: string
|
|
description: >-
|
|
Path to a script or flow to run after each successful
|
|
execution
|
|
on_success_extra_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
ws_error_handler_muted:
|
|
type: boolean
|
|
description: >-
|
|
If true, the workspace-level error handler will not be
|
|
triggered for this schedule's failures
|
|
retry:
|
|
type: object
|
|
description: Retry configuration for failed module executions
|
|
properties: *ref_169
|
|
summary:
|
|
type: string
|
|
description: Short summary describing the purpose of this schedule
|
|
description:
|
|
type: string
|
|
description: Detailed description of what this schedule does
|
|
no_flow_overlap:
|
|
type: boolean
|
|
description: >-
|
|
If true, skip this schedule's execution if the previous
|
|
run is still in progress (prevents concurrent runs)
|
|
tag:
|
|
type: string
|
|
description: Worker tag to route jobs to specific worker groups
|
|
paused_until:
|
|
type: string
|
|
format: date-time
|
|
description: >-
|
|
ISO 8601 datetime until which the schedule is paused.
|
|
Schedule resumes automatically after this time
|
|
cron_version:
|
|
type: string
|
|
description: >-
|
|
Cron parser version. Use 'v2' for extended syntax with
|
|
additional features
|
|
dynamic_skip:
|
|
type: string
|
|
description: >-
|
|
Path to a script that validates scheduled datetimes.
|
|
Receives scheduled_for datetime and returns boolean to
|
|
skip (true) or run (false)
|
|
required: &ref_171
|
|
- 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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: schedule exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
/w/{workspace}/schedules/list:
|
|
get:
|
|
summary: list schedules
|
|
operationId: listSchedules
|
|
x-mcp-tool: true
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- name: args
|
|
description: >-
|
|
filter on jobs containing those args as a json subset (@> in
|
|
postgres)
|
|
in: query
|
|
schema: *ref_139
|
|
- name: path
|
|
description: filter by path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: is_flow
|
|
description: filter schedules by whether they target a flow
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: path_start
|
|
description: filter schedules by path prefix
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: schedule list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: *ref_170
|
|
required: *ref_171
|
|
/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_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
responses:
|
|
'200':
|
|
description: schedule list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
allOf: &ref_380
|
|
- type: object
|
|
properties: *ref_170
|
|
required: *ref_171
|
|
- 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_4
|
|
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}/openapi/generate:
|
|
post:
|
|
summary: generate openapi spec from http routes/webhook
|
|
operationId: generateOpenapiSpec
|
|
tags:
|
|
- openapi
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: openapi spec info and url
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_173
|
|
info:
|
|
type: object
|
|
properties: &ref_390
|
|
title:
|
|
type: string
|
|
version:
|
|
type: string
|
|
description:
|
|
type: string
|
|
terms_of_service:
|
|
type: string
|
|
contact:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
url:
|
|
type: string
|
|
email:
|
|
type: string
|
|
license:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
identifier:
|
|
type: string
|
|
url:
|
|
type: string
|
|
required:
|
|
- name
|
|
required: &ref_391
|
|
- title
|
|
- version
|
|
url:
|
|
type: string
|
|
openapi_spec_format:
|
|
type: string
|
|
enum: &ref_385
|
|
- yaml
|
|
- json
|
|
http_route_filters:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_386
|
|
folder_regex:
|
|
type: string
|
|
path_regex:
|
|
type: string
|
|
route_path_regex:
|
|
type: string
|
|
required: &ref_387
|
|
- folder_regex
|
|
- path_regex
|
|
- route_path_regex
|
|
webhook_filters:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_388
|
|
user_or_folder_regex:
|
|
type: string
|
|
enum:
|
|
- '*'
|
|
- u
|
|
- f
|
|
user_or_folder_regex_value:
|
|
type: string
|
|
path:
|
|
type: string
|
|
runnable_kind:
|
|
type: string
|
|
enum: *ref_172
|
|
required: &ref_389
|
|
- user_or_folder_regex
|
|
- user_or_folder_regex_value
|
|
- path
|
|
- runnable_kind
|
|
responses:
|
|
'200':
|
|
description: openapi spec
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/openapi/download:
|
|
post:
|
|
summary: Download the OpenAPI v3.1 spec as a file
|
|
operationId: DownloadOpenapiSpec
|
|
tags:
|
|
- openapi
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: openapi spec info and url
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_173
|
|
responses:
|
|
'200':
|
|
description: Downloaded OpenAPI spec
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
/w/{workspace}/http_triggers/create_many:
|
|
post:
|
|
summary: create many HTTP triggers
|
|
operationId: createHttpTriggers
|
|
tags:
|
|
- http_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: new http trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_174
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when triggered
|
|
route_path:
|
|
type: string
|
|
description: >-
|
|
The URL route path that will trigger this endpoint (e.g.,
|
|
'api/myendpoint'). Must NOT start with a /.
|
|
workspaced_route:
|
|
type: boolean
|
|
description: If true, the route includes the workspace ID in the path
|
|
summary:
|
|
type: string
|
|
description: Short summary describing the purpose of this trigger
|
|
description:
|
|
type: string
|
|
description: Detailed description of what this trigger does
|
|
static_asset_config:
|
|
type: object
|
|
description: >-
|
|
Configuration for serving static assets (s3 bucket,
|
|
storage path, filename)
|
|
properties:
|
|
s3:
|
|
type: string
|
|
description: S3 bucket path for static assets
|
|
storage:
|
|
type: string
|
|
description: Storage path for static assets
|
|
filename:
|
|
type: string
|
|
description: Filename for the static asset
|
|
required:
|
|
- s3
|
|
is_flow:
|
|
type: boolean
|
|
description: >-
|
|
True if script_path points to a flow, false if it points
|
|
to a script
|
|
http_method:
|
|
description: >-
|
|
HTTP method (get, post, put, delete, patch) that triggers
|
|
this endpoint
|
|
type: string
|
|
enum: &ref_176
|
|
- get
|
|
- post
|
|
- put
|
|
- delete
|
|
- patch
|
|
authentication_resource_path:
|
|
type: string
|
|
description: >-
|
|
Path to the resource containing authentication
|
|
configuration (for api_key, basic_http, custom_script,
|
|
signature methods)
|
|
is_async:
|
|
type: boolean
|
|
description: Deprecated, use request_type instead
|
|
request_type:
|
|
description: >-
|
|
How the request is handled - 'sync' waits for result,
|
|
'async' returns job ID immediately, 'sync_sse' streams
|
|
results via Server-Sent Events
|
|
type: string
|
|
enum: &ref_177
|
|
- sync
|
|
- async
|
|
- sync_sse
|
|
authentication_method:
|
|
description: >-
|
|
How requests are authenticated - 'none' (public),
|
|
'windmill' (Windmill token), 'api_key', 'basic_http',
|
|
'custom_script', 'signature'
|
|
type: string
|
|
enum: &ref_178
|
|
- none
|
|
- windmill
|
|
- api_key
|
|
- basic_http
|
|
- custom_script
|
|
- signature
|
|
is_static_website:
|
|
type: boolean
|
|
description: >-
|
|
If true, serves static files from S3/storage instead of
|
|
running a script
|
|
wrap_body:
|
|
type: boolean
|
|
description: If true, wraps the request body in a 'body' parameter
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: &ref_179
|
|
- enabled
|
|
- disabled
|
|
- suspended
|
|
raw_string:
|
|
type: boolean
|
|
description: >-
|
|
If true, passes the request body as a raw string instead
|
|
of parsing as JSON
|
|
error_handler_path:
|
|
type: string
|
|
description: >-
|
|
Path to a script or flow to run when the triggered job
|
|
fails
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_175
|
|
- path
|
|
- script_path
|
|
- route_path
|
|
- is_flow
|
|
- authentication_method
|
|
- http_method
|
|
- is_static_website
|
|
responses:
|
|
'201':
|
|
description: http trigger created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/http_triggers/create:
|
|
post:
|
|
summary: create http trigger
|
|
operationId: createHttpTrigger
|
|
tags:
|
|
- http_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: new http trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_174
|
|
required: *ref_175
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_392
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when triggered
|
|
route_path:
|
|
type: string
|
|
description: >-
|
|
The URL route path that will trigger this endpoint (e.g.,
|
|
'api/myendpoint'). Must NOT start with a /.
|
|
summary:
|
|
type: string
|
|
description: Short summary describing the purpose of this trigger
|
|
description:
|
|
type: string
|
|
description: Detailed description of what this trigger does
|
|
workspaced_route:
|
|
type: boolean
|
|
description: If true, the route includes the workspace ID in the path
|
|
static_asset_config:
|
|
type: object
|
|
description: >-
|
|
Configuration for serving static assets (s3 bucket, storage
|
|
path, filename)
|
|
properties:
|
|
s3:
|
|
type: string
|
|
description: S3 bucket path for static assets
|
|
storage:
|
|
type: string
|
|
description: Storage path for static assets
|
|
filename:
|
|
type: string
|
|
description: Filename for the static asset
|
|
required:
|
|
- s3
|
|
authentication_resource_path:
|
|
type: string
|
|
description: >-
|
|
Path to the resource containing authentication configuration
|
|
(for api_key, basic_http, custom_script, signature methods)
|
|
is_flow:
|
|
type: boolean
|
|
description: >-
|
|
True if script_path points to a flow, false if it points to
|
|
a script
|
|
http_method:
|
|
description: >-
|
|
HTTP method (get, post, put, delete, patch) that triggers
|
|
this endpoint
|
|
type: string
|
|
enum: *ref_176
|
|
is_async:
|
|
type: boolean
|
|
description: Deprecated, use request_type instead
|
|
request_type:
|
|
description: >-
|
|
How the request is handled - 'sync' waits for result,
|
|
'async' returns job ID immediately, 'sync_sse' streams
|
|
results via Server-Sent Events
|
|
type: string
|
|
enum: *ref_177
|
|
authentication_method:
|
|
description: >-
|
|
How requests are authenticated - 'none' (public), 'windmill'
|
|
(Windmill token), 'api_key', 'basic_http', 'custom_script',
|
|
'signature'
|
|
type: string
|
|
enum: *ref_178
|
|
is_static_website:
|
|
type: boolean
|
|
description: >-
|
|
If true, serves static files from S3/storage instead of
|
|
running a script
|
|
wrap_body:
|
|
type: boolean
|
|
description: If true, wraps the request body in a 'body' parameter
|
|
raw_string:
|
|
type: boolean
|
|
description: >-
|
|
If true, passes the request body as a raw string instead of
|
|
parsing as JSON
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_393
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- kind
|
|
- authentication_method
|
|
- http_method
|
|
- is_static_website
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: http trigger deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf: &ref_180
|
|
- type: object
|
|
properties: &ref_184
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: Path to the script or flow to execute when triggered
|
|
email:
|
|
type: string
|
|
description: >-
|
|
Email of the user who owns this trigger, used for
|
|
permissioned_as
|
|
extra_perms:
|
|
type: object
|
|
description: Additional permissions for this trigger
|
|
additionalProperties:
|
|
type: boolean
|
|
workspace_id:
|
|
type: string
|
|
description: The workspace this trigger belongs to
|
|
edited_by:
|
|
type: string
|
|
description: Username of the last person who edited this trigger
|
|
edited_at:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp of the last edit
|
|
is_flow:
|
|
type: boolean
|
|
description: >-
|
|
True if script_path points to a flow, false if it
|
|
points to a script
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
required: &ref_185
|
|
- path
|
|
- script_path
|
|
- email
|
|
- extra_perms
|
|
- workspace_id
|
|
- edited_by
|
|
- edited_at
|
|
- is_flow
|
|
- mode
|
|
type: object
|
|
properties: &ref_181
|
|
route_path:
|
|
type: string
|
|
description: >-
|
|
The URL route path that will trigger this endpoint (e.g.,
|
|
'api/myendpoint'). Must NOT start with a /.
|
|
static_asset_config:
|
|
type: object
|
|
description: >-
|
|
Configuration for serving static assets (s3 bucket,
|
|
storage path, filename)
|
|
properties:
|
|
s3:
|
|
type: string
|
|
description: S3 bucket path for static assets
|
|
storage:
|
|
type: string
|
|
description: Storage path for static assets
|
|
filename:
|
|
type: string
|
|
description: Filename for the static asset
|
|
required:
|
|
- s3
|
|
http_method:
|
|
description: >-
|
|
HTTP method (get, post, put, delete, patch) that triggers
|
|
this endpoint
|
|
type: string
|
|
enum: *ref_176
|
|
authentication_resource_path:
|
|
type: string
|
|
description: >-
|
|
Path to the resource containing authentication
|
|
configuration (for api_key, basic_http, custom_script,
|
|
signature methods)
|
|
summary:
|
|
type: string
|
|
description: Short summary describing the purpose of this trigger
|
|
description:
|
|
type: string
|
|
description: Detailed description of what this trigger does
|
|
request_type:
|
|
description: >-
|
|
How the request is handled - 'sync' waits for result,
|
|
'async' returns job ID immediately, 'sync_sse' streams
|
|
results via Server-Sent Events
|
|
type: string
|
|
enum: *ref_177
|
|
authentication_method:
|
|
description: >-
|
|
How requests are authenticated - 'none' (public),
|
|
'windmill' (Windmill token), 'api_key', 'basic_http',
|
|
'custom_script', 'signature'
|
|
type: string
|
|
enum: *ref_178
|
|
is_static_website:
|
|
type: boolean
|
|
description: >-
|
|
If true, serves static files from S3/storage instead of
|
|
running a script
|
|
workspaced_route:
|
|
type: boolean
|
|
description: If true, the route includes the workspace ID in the path
|
|
wrap_body:
|
|
type: boolean
|
|
description: If true, wraps the request body in a 'body' parameter
|
|
raw_string:
|
|
type: boolean
|
|
description: >-
|
|
If true, passes the request body as a raw string instead
|
|
of parsing as JSON
|
|
error_handler_path:
|
|
type: string
|
|
description: >-
|
|
Path to a script or flow to run when the triggered job
|
|
fails
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_182
|
|
- route_path
|
|
- request_type
|
|
- authentication_method
|
|
- http_method
|
|
- is_static_website
|
|
- workspaced_route
|
|
- wrap_body
|
|
- raw_string
|
|
/w/{workspace}/http_triggers/list:
|
|
get:
|
|
summary: list http triggers
|
|
operationId: listHttpTriggers
|
|
tags:
|
|
- http_trigger
|
|
parameters:
|
|
- required: true
|
|
name: workspace
|
|
in: path
|
|
schema: *ref_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- 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:
|
|
allOf: *ref_180
|
|
type: object
|
|
properties: *ref_181
|
|
required: *ref_182
|
|
/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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
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_4
|
|
requestBody:
|
|
description: route exists request
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
route_path:
|
|
type: string
|
|
http_method:
|
|
type: string
|
|
enum: *ref_176
|
|
trigger_path:
|
|
type: string
|
|
workspaced_route:
|
|
type: boolean
|
|
required:
|
|
- route_path
|
|
- http_method
|
|
responses:
|
|
'200':
|
|
description: route exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
/w/{workspace}/http_triggers/setmode/{path}:
|
|
post:
|
|
summary: enable/disable http trigger
|
|
operationId: setHttpTriggerMode
|
|
tags:
|
|
- http_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
required:
|
|
- mode
|
|
responses:
|
|
'200':
|
|
description: http trigger enable/disable
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/websocket_triggers/create:
|
|
post:
|
|
summary: create websocket trigger
|
|
operationId: createWebsocketTrigger
|
|
tags:
|
|
- websocket_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: new websocket trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_394
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: >-
|
|
Path to the script or flow to execute when a message is
|
|
received
|
|
is_flow:
|
|
type: boolean
|
|
description: >-
|
|
True if script_path points to a flow, false if it points to
|
|
a script
|
|
url:
|
|
type: string
|
|
description: >-
|
|
The WebSocket URL to connect to (can be a static URL or
|
|
computed by a runnable)
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
filters:
|
|
type: array
|
|
description: >-
|
|
Array of key-value filters to match incoming messages (only
|
|
matching messages trigger the script)
|
|
items:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- key
|
|
- value
|
|
initial_messages:
|
|
type: array
|
|
description: >-
|
|
Messages to send immediately after connecting (can be raw
|
|
strings or computed by runnables)
|
|
items:
|
|
anyOf: &ref_183
|
|
- type: object
|
|
properties:
|
|
raw_message:
|
|
type: string
|
|
required:
|
|
- raw_message
|
|
- type: object
|
|
properties:
|
|
runnable_result:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
is_flow:
|
|
type: boolean
|
|
required:
|
|
- path
|
|
- args
|
|
- is_flow
|
|
required:
|
|
- runnable_result
|
|
url_runnable_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
can_return_message:
|
|
type: boolean
|
|
description: >-
|
|
If true, the script can return a message to send back
|
|
through the WebSocket
|
|
can_return_error_result:
|
|
type: boolean
|
|
description: If true, error results are sent back through the WebSocket
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_395
|
|
- path
|
|
- script_path
|
|
- url
|
|
- is_flow
|
|
- filters
|
|
- can_return_message
|
|
- can_return_error_result
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_396
|
|
url:
|
|
type: string
|
|
description: >-
|
|
The WebSocket URL to connect to (can be a static URL or
|
|
computed by a runnable)
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: >-
|
|
Path to the script or flow to execute when a message is
|
|
received
|
|
is_flow:
|
|
type: boolean
|
|
description: >-
|
|
True if script_path points to a flow, false if it points to
|
|
a script
|
|
filters:
|
|
type: array
|
|
description: >-
|
|
Array of key-value filters to match incoming messages (only
|
|
matching messages trigger the script)
|
|
items:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- key
|
|
- value
|
|
initial_messages:
|
|
type: array
|
|
description: >-
|
|
Messages to send immediately after connecting (can be raw
|
|
strings or computed by runnables)
|
|
items:
|
|
anyOf: *ref_183
|
|
url_runnable_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
can_return_message:
|
|
type: boolean
|
|
description: >-
|
|
If true, the script can return a message to send back
|
|
through the WebSocket
|
|
can_return_error_result:
|
|
type: boolean
|
|
description: If true, error results are sent back through the WebSocket
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_397
|
|
- path
|
|
- script_path
|
|
- url
|
|
- is_flow
|
|
- filters
|
|
- can_return_message
|
|
- can_return_error_result
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: websocket trigger deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf: &ref_186
|
|
- type: object
|
|
properties: *ref_184
|
|
required: *ref_185
|
|
type: object
|
|
properties: &ref_187
|
|
url:
|
|
type: string
|
|
description: >-
|
|
The WebSocket URL to connect to (can be a static URL or
|
|
computed by a runnable)
|
|
server_id:
|
|
type: string
|
|
description: >-
|
|
ID of the server currently handling this trigger
|
|
(internal)
|
|
last_server_ping:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp of last server heartbeat (internal)
|
|
error:
|
|
type: string
|
|
description: Last error message if the trigger failed
|
|
filters:
|
|
type: array
|
|
description: >-
|
|
Array of key-value filters to match incoming messages
|
|
(only matching messages trigger the script)
|
|
items:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- key
|
|
- value
|
|
initial_messages:
|
|
type: array
|
|
description: >-
|
|
Messages to send immediately after connecting (can be raw
|
|
strings or computed by runnables)
|
|
items:
|
|
anyOf: *ref_183
|
|
url_runnable_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
can_return_message:
|
|
type: boolean
|
|
description: >-
|
|
If true, the script can return a message to send back
|
|
through the WebSocket
|
|
can_return_error_result:
|
|
type: boolean
|
|
description: If true, error results are sent back through the WebSocket
|
|
error_handler_path:
|
|
type: string
|
|
description: >-
|
|
Path to a script or flow to run when the triggered job
|
|
fails
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_188
|
|
- url
|
|
- filters
|
|
- can_return_message
|
|
- can_return_error_result
|
|
/w/{workspace}/websocket_triggers/list:
|
|
get:
|
|
summary: list websocket triggers
|
|
operationId: listWebsocketTriggers
|
|
tags:
|
|
- websocket_trigger
|
|
parameters:
|
|
- required: true
|
|
name: workspace
|
|
in: path
|
|
schema: *ref_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- 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:
|
|
allOf: *ref_186
|
|
type: object
|
|
properties: *ref_187
|
|
required: *ref_188
|
|
/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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: websocket trigger exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
/w/{workspace}/websocket_triggers/setmode/{path}:
|
|
post:
|
|
summary: set enabled websocket trigger
|
|
operationId: setWebsocketTriggerMode
|
|
tags:
|
|
- websocket_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: updated websocket trigger enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
required:
|
|
- mode
|
|
responses:
|
|
'200':
|
|
description: websocket trigger enabled set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/websocket_triggers/test:
|
|
post:
|
|
summary: test websocket connection
|
|
operationId: testWebsocketConnection
|
|
tags:
|
|
- websocket_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: test websocket connection
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
url:
|
|
type: string
|
|
url_runnable_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
can_return_message:
|
|
type: boolean
|
|
required:
|
|
- url
|
|
- can_return_message
|
|
responses:
|
|
'200':
|
|
description: successfuly connected to websocket
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/kafka_triggers/create:
|
|
post:
|
|
summary: create kafka trigger
|
|
operationId: createKafkaTrigger
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: new kafka trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_421
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: >-
|
|
Path to the script or flow to execute when a message is
|
|
received
|
|
is_flow:
|
|
type: boolean
|
|
description: >-
|
|
True if script_path points to a flow, false if it points to
|
|
a script
|
|
kafka_resource_path:
|
|
type: string
|
|
description: >-
|
|
Path to the Kafka resource containing connection
|
|
configuration
|
|
group_id:
|
|
type: string
|
|
description: Kafka consumer group ID for this trigger
|
|
topics:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Array of Kafka topic names to subscribe to
|
|
filters:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- key
|
|
- value
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_422
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- kafka_resource_path
|
|
- group_id
|
|
- topics
|
|
- filters
|
|
responses:
|
|
'201':
|
|
description: kafka trigger created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/kafka_triggers/update/{path}:
|
|
post:
|
|
summary: update kafka trigger
|
|
operationId: updateKafkaTrigger
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_423
|
|
kafka_resource_path:
|
|
type: string
|
|
description: >-
|
|
Path to the Kafka resource containing connection
|
|
configuration
|
|
group_id:
|
|
type: string
|
|
description: Kafka consumer group ID for this trigger
|
|
topics:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Array of Kafka topic names to subscribe to
|
|
filters:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- key
|
|
- value
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: >-
|
|
Path to the script or flow to execute when a message is
|
|
received
|
|
is_flow:
|
|
type: boolean
|
|
description: >-
|
|
True if script_path points to a flow, false if it points to
|
|
a script
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_424
|
|
- path
|
|
- script_path
|
|
- kafka_resource_path
|
|
- group_id
|
|
- topics
|
|
- filters
|
|
- is_flow
|
|
responses:
|
|
'200':
|
|
description: kafka trigger updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/kafka_triggers/delete/{path}:
|
|
delete:
|
|
summary: delete kafka trigger
|
|
operationId: deleteKafkaTrigger
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: kafka trigger deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/kafka_triggers/get/{path}:
|
|
get:
|
|
summary: get kafka trigger
|
|
operationId: getKafkaTrigger
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: kafka trigger deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf: &ref_189
|
|
- type: object
|
|
properties: *ref_184
|
|
required: *ref_185
|
|
type: object
|
|
properties: &ref_190
|
|
kafka_resource_path:
|
|
type: string
|
|
description: >-
|
|
Path to the Kafka resource containing connection
|
|
configuration
|
|
group_id:
|
|
type: string
|
|
description: Kafka consumer group ID for this trigger
|
|
topics:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Array of Kafka topic names to subscribe to
|
|
filters:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- key
|
|
- value
|
|
server_id:
|
|
type: string
|
|
description: >-
|
|
ID of the server currently handling this trigger
|
|
(internal)
|
|
last_server_ping:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp of last server heartbeat (internal)
|
|
error:
|
|
type: string
|
|
description: Last error message if the trigger failed
|
|
error_handler_path:
|
|
type: string
|
|
description: >-
|
|
Path to a script or flow to run when the triggered job
|
|
fails
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_191
|
|
- kafka_resource_path
|
|
- group_id
|
|
- topics
|
|
- filters
|
|
/w/{workspace}/kafka_triggers/list:
|
|
get:
|
|
summary: list kafka triggers
|
|
operationId: listKafkaTriggers
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- required: true
|
|
name: workspace
|
|
in: path
|
|
schema: *ref_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- 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: kafka trigger list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
allOf: *ref_189
|
|
type: object
|
|
properties: *ref_190
|
|
required: *ref_191
|
|
/w/{workspace}/kafka_triggers/exists/{path}:
|
|
get:
|
|
summary: does kafka trigger exists
|
|
operationId: existsKafkaTrigger
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: kafka trigger exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
/w/{workspace}/kafka_triggers/setmode/{path}:
|
|
post:
|
|
summary: set enabled kafka trigger
|
|
operationId: setKafkaTriggerMode
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: updated kafka trigger enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
required:
|
|
- mode
|
|
responses:
|
|
'200':
|
|
description: kafka trigger enabled set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/kafka_triggers/test:
|
|
post:
|
|
summary: test kafka connection
|
|
operationId: testKafkaConnection
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: test kafka connection
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
connection:
|
|
type: object
|
|
required:
|
|
- connection
|
|
responses:
|
|
'200':
|
|
description: successfuly connected to kafka brokers
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/nats_triggers/create:
|
|
post:
|
|
summary: create nats trigger
|
|
operationId: createNatsTrigger
|
|
tags:
|
|
- nats_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: new nats trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_425
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: >-
|
|
Path to the script or flow to execute when a message is
|
|
received
|
|
is_flow:
|
|
type: boolean
|
|
description: >-
|
|
True if script_path points to a flow, false if it points to
|
|
a script
|
|
nats_resource_path:
|
|
type: string
|
|
description: >-
|
|
Path to the NATS resource containing connection
|
|
configuration
|
|
use_jetstream:
|
|
type: boolean
|
|
description: If true, uses NATS JetStream for durable message delivery
|
|
stream_name:
|
|
type: string
|
|
description: JetStream stream name (required when use_jetstream is true)
|
|
consumer_name:
|
|
type: string
|
|
description: >-
|
|
JetStream consumer name (required when use_jetstream is
|
|
true)
|
|
subjects:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Array of NATS subjects to subscribe to
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_426
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- nats_resource_path
|
|
- use_jetstream
|
|
- subjects
|
|
responses:
|
|
'201':
|
|
description: nats trigger created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/nats_triggers/update/{path}:
|
|
post:
|
|
summary: update nats trigger
|
|
operationId: updateNatsTrigger
|
|
tags:
|
|
- nats_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_427
|
|
nats_resource_path:
|
|
type: string
|
|
description: >-
|
|
Path to the NATS resource containing connection
|
|
configuration
|
|
use_jetstream:
|
|
type: boolean
|
|
description: If true, uses NATS JetStream for durable message delivery
|
|
stream_name:
|
|
type: string
|
|
description: JetStream stream name (required when use_jetstream is true)
|
|
consumer_name:
|
|
type: string
|
|
description: >-
|
|
JetStream consumer name (required when use_jetstream is
|
|
true)
|
|
subjects:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Array of NATS subjects to subscribe to
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: >-
|
|
Path to the script or flow to execute when a message is
|
|
received
|
|
is_flow:
|
|
type: boolean
|
|
description: >-
|
|
True if script_path points to a flow, false if it points to
|
|
a script
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_428
|
|
- path
|
|
- script_path
|
|
- nats_resource_path
|
|
- use_jetstream
|
|
- subjects
|
|
- is_flow
|
|
responses:
|
|
'200':
|
|
description: nats trigger updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/nats_triggers/delete/{path}:
|
|
delete:
|
|
summary: delete nats trigger
|
|
operationId: deleteNatsTrigger
|
|
tags:
|
|
- nats_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: nats trigger deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/nats_triggers/get/{path}:
|
|
get:
|
|
summary: get nats trigger
|
|
operationId: getNatsTrigger
|
|
tags:
|
|
- nats_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: nats trigger deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf: &ref_192
|
|
- type: object
|
|
properties: *ref_184
|
|
required: *ref_185
|
|
type: object
|
|
properties: &ref_193
|
|
nats_resource_path:
|
|
type: string
|
|
description: >-
|
|
Path to the NATS resource containing connection
|
|
configuration
|
|
use_jetstream:
|
|
type: boolean
|
|
description: If true, uses NATS JetStream for durable message delivery
|
|
stream_name:
|
|
type: string
|
|
description: >-
|
|
JetStream stream name (required when use_jetstream is
|
|
true)
|
|
consumer_name:
|
|
type: string
|
|
description: >-
|
|
JetStream consumer name (required when use_jetstream is
|
|
true)
|
|
subjects:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Array of NATS subjects to subscribe to
|
|
server_id:
|
|
type: string
|
|
description: >-
|
|
ID of the server currently handling this trigger
|
|
(internal)
|
|
last_server_ping:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp of last server heartbeat (internal)
|
|
error:
|
|
type: string
|
|
description: Last error message if the trigger failed
|
|
error_handler_path:
|
|
type: string
|
|
description: >-
|
|
Path to a script or flow to run when the triggered job
|
|
fails
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_194
|
|
- nats_resource_path
|
|
- use_jetstream
|
|
- subjects
|
|
/w/{workspace}/nats_triggers/list:
|
|
get:
|
|
summary: list nats triggers
|
|
operationId: listNatsTriggers
|
|
tags:
|
|
- nats_trigger
|
|
parameters:
|
|
- required: true
|
|
name: workspace
|
|
in: path
|
|
schema: *ref_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- 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: nats trigger list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
allOf: *ref_192
|
|
type: object
|
|
properties: *ref_193
|
|
required: *ref_194
|
|
/w/{workspace}/nats_triggers/exists/{path}:
|
|
get:
|
|
summary: does nats trigger exists
|
|
operationId: existsNatsTrigger
|
|
tags:
|
|
- nats_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: nats trigger exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
/w/{workspace}/nats_triggers/setmode/{path}:
|
|
post:
|
|
summary: set enabled nats trigger
|
|
operationId: setNatsTriggerMode
|
|
tags:
|
|
- nats_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: updated nats trigger enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
required:
|
|
- mode
|
|
responses:
|
|
'200':
|
|
description: nats trigger enabled set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/nats_triggers/test:
|
|
post:
|
|
summary: test NATS connection
|
|
operationId: testNatsConnection
|
|
tags:
|
|
- nats_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: test nats connection
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
connection:
|
|
type: object
|
|
required:
|
|
- connection
|
|
responses:
|
|
'200':
|
|
description: successfuly connected to NATS servers
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/sqs_triggers/create:
|
|
post:
|
|
summary: create sqs trigger
|
|
operationId: createSqsTrigger
|
|
tags:
|
|
- sqs_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: new sqs trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_408
|
|
queue_url:
|
|
type: string
|
|
description: The full URL of the AWS SQS queue to poll for messages
|
|
aws_auth_resource_type:
|
|
description: >-
|
|
Authentication type - 'credentials' for access key/secret,
|
|
'oidc' for OpenID Connect
|
|
type: string
|
|
enum: &ref_195
|
|
- oidc
|
|
- credentials
|
|
aws_resource_path:
|
|
type: string
|
|
description: >-
|
|
Path to the AWS resource containing credentials or OIDC
|
|
configuration
|
|
message_attributes:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: >-
|
|
Array of SQS message attribute names to include with each
|
|
message
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: >-
|
|
Path to the script or flow to execute when a message is
|
|
received
|
|
is_flow:
|
|
type: boolean
|
|
description: >-
|
|
True if script_path points to a flow, false if it points to
|
|
a script
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_409
|
|
- queue_url
|
|
- aws_resource_path
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- aws_auth_resource_type
|
|
responses:
|
|
'201':
|
|
description: sqs trigger created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/sqs_triggers/update/{path}:
|
|
post:
|
|
summary: update sqs trigger
|
|
operationId: updateSqsTrigger
|
|
tags:
|
|
- sqs_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_410
|
|
queue_url:
|
|
type: string
|
|
description: The full URL of the AWS SQS queue to poll for messages
|
|
aws_auth_resource_type:
|
|
description: >-
|
|
Authentication type - 'credentials' for access key/secret,
|
|
'oidc' for OpenID Connect
|
|
type: string
|
|
enum: *ref_195
|
|
aws_resource_path:
|
|
type: string
|
|
description: >-
|
|
Path to the AWS resource containing credentials or OIDC
|
|
configuration
|
|
message_attributes:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: >-
|
|
Array of SQS message attribute names to include with each
|
|
message
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: >-
|
|
Path to the script or flow to execute when a message is
|
|
received
|
|
is_flow:
|
|
type: boolean
|
|
description: >-
|
|
True if script_path points to a flow, false if it points to
|
|
a script
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_411
|
|
- queue_url
|
|
- aws_resource_path
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- enabled
|
|
- aws_auth_resource_type
|
|
responses:
|
|
'200':
|
|
description: sqs trigger updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/sqs_triggers/delete/{path}:
|
|
delete:
|
|
summary: delete sqs trigger
|
|
operationId: deleteSqsTrigger
|
|
tags:
|
|
- sqs_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: sqs trigger deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/sqs_triggers/get/{path}:
|
|
get:
|
|
summary: get sqs trigger
|
|
operationId: getSqsTrigger
|
|
tags:
|
|
- sqs_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: sqs trigger deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf: &ref_196
|
|
- type: object
|
|
properties: *ref_184
|
|
required: *ref_185
|
|
type: object
|
|
properties: &ref_197
|
|
queue_url:
|
|
type: string
|
|
description: The full URL of the AWS SQS queue to poll for messages
|
|
aws_auth_resource_type:
|
|
description: >-
|
|
Authentication type - 'credentials' for access key/secret,
|
|
'oidc' for OpenID Connect
|
|
type: string
|
|
enum: *ref_195
|
|
aws_resource_path:
|
|
type: string
|
|
description: >-
|
|
Path to the AWS resource containing credentials or OIDC
|
|
configuration
|
|
message_attributes:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: >-
|
|
Array of SQS message attribute names to include with each
|
|
message
|
|
server_id:
|
|
type: string
|
|
description: >-
|
|
ID of the server currently handling this trigger
|
|
(internal)
|
|
last_server_ping:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp of last server heartbeat (internal)
|
|
error:
|
|
type: string
|
|
description: Last error message if the trigger failed
|
|
error_handler_path:
|
|
type: string
|
|
description: >-
|
|
Path to a script or flow to run when the triggered job
|
|
fails
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_198
|
|
- queue_url
|
|
- aws_resource_path
|
|
- aws_auth_resource_type
|
|
/w/{workspace}/sqs_triggers/list:
|
|
get:
|
|
summary: list sqs triggers
|
|
operationId: listSqsTriggers
|
|
tags:
|
|
- sqs_trigger
|
|
parameters:
|
|
- required: true
|
|
name: workspace
|
|
in: path
|
|
schema: *ref_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- 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: sqs trigger list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
allOf: *ref_196
|
|
type: object
|
|
properties: *ref_197
|
|
required: *ref_198
|
|
/w/{workspace}/sqs_triggers/exists/{path}:
|
|
get:
|
|
summary: does sqs trigger exists
|
|
operationId: existsSqsTrigger
|
|
tags:
|
|
- sqs_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: sqs trigger exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
/w/{workspace}/sqs_triggers/setmode/{path}:
|
|
post:
|
|
summary: set enabled sqs trigger
|
|
operationId: setSqsTriggerMode
|
|
tags:
|
|
- sqs_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: updated sqs trigger enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
required:
|
|
- mode
|
|
responses:
|
|
'200':
|
|
description: sqs trigger enabled set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/sqs_triggers/test:
|
|
post:
|
|
summary: test sqs connection
|
|
operationId: testSqsConnection
|
|
tags:
|
|
- sqs_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: test sqs connection
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
connection:
|
|
type: object
|
|
required:
|
|
- connection
|
|
responses:
|
|
'200':
|
|
description: successfuly connected to sqs
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/native_triggers/integrations/list:
|
|
get:
|
|
summary: list available native trigger services
|
|
operationId: listNativeTriggerServices
|
|
tags:
|
|
- workspace_integration
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: native trigger services list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_506
|
|
service_name:
|
|
type: string
|
|
enum: &ref_199
|
|
- nextcloud
|
|
oauth_data:
|
|
nullable: true
|
|
type: object
|
|
properties: &ref_200
|
|
client_id:
|
|
type: string
|
|
description: The OAuth client ID for the workspace
|
|
client_secret:
|
|
type: string
|
|
description: The OAuth client secret for the workspace
|
|
base_url:
|
|
type: string
|
|
format: uri
|
|
description: The base URL of the workspace
|
|
redirect_uri:
|
|
type: string
|
|
format: uri
|
|
description: The OAuth redirect URI
|
|
required: &ref_201
|
|
- client_id
|
|
- client_secret
|
|
- base_url
|
|
- redirect_uri
|
|
required: &ref_507
|
|
- service_name
|
|
/w/{workspace}/native_triggers/integrations/{service_name}/exists:
|
|
get:
|
|
summary: check if integrations for a particular service exists
|
|
operationId: checkIfNativeTriggersServiceExists
|
|
tags:
|
|
- workspace_integration
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: *ref_199
|
|
responses:
|
|
'200':
|
|
description: integration exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
/w/{workspace}/native_triggers/integrations/{service_name}/create:
|
|
post:
|
|
summary: create native trigger service
|
|
operationId: createNativeTriggerService
|
|
tags:
|
|
- workspace_integration
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: *ref_199
|
|
requestBody:
|
|
description: new native trigger service
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_200
|
|
required: *ref_201
|
|
responses:
|
|
'201':
|
|
description: native trigger service created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/native_triggers/integrations/{service_name}/generate_connect_url:
|
|
post:
|
|
summary: generate connect url for native trigger service
|
|
operationId: generateNativeTriggerServiceConnectUrl
|
|
tags:
|
|
- workspace_integration
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: *ref_199
|
|
requestBody:
|
|
description: redirect_uri
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_202
|
|
redirect_uri:
|
|
type: string
|
|
required: &ref_203
|
|
- redirect_uri
|
|
responses:
|
|
'200':
|
|
description: native trigger service connect url
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/native_triggers/integrations/{service_name}/delete:
|
|
delete:
|
|
summary: delete native trigger service
|
|
operationId: deleteNativeTriggerService
|
|
tags:
|
|
- workspace_integration
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: *ref_199
|
|
responses:
|
|
'200':
|
|
description: native trigger service deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/native_triggers/integrations/{service_name}/callback/{code}/{state}:
|
|
post:
|
|
summary: native trigger service oauth callback
|
|
operationId: nativeTriggerServiceCallback
|
|
tags:
|
|
- workspace_integration
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: *ref_199
|
|
- name: code
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: state
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
description: redirect_uri
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_202
|
|
required: *ref_203
|
|
responses:
|
|
'200':
|
|
description: native trigger service oauth completed
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/native_triggers/{service_name}/create:
|
|
post:
|
|
summary: create native trigger
|
|
description: >
|
|
Creates a new native trigger for the specified service.
|
|
|
|
Requires write access to the script or flow that the trigger will be
|
|
associated with.
|
|
operationId: createNativeTrigger
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: *ref_199
|
|
requestBody:
|
|
description: new native trigger configuration
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: Data for creating or updating a native trigger
|
|
properties: &ref_204
|
|
script_path:
|
|
type: string
|
|
description: The path to the script or flow that will be triggered
|
|
is_flow:
|
|
type: boolean
|
|
description: >-
|
|
Whether the trigger targets a flow (true) or a script
|
|
(false)
|
|
service_config:
|
|
type: object
|
|
description: Service-specific configuration (e.g., event types, filters)
|
|
additionalProperties: true
|
|
required: &ref_205
|
|
- script_path
|
|
- is_flow
|
|
- service_config
|
|
responses:
|
|
'201':
|
|
description: native trigger created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: Response returned when a native trigger is created
|
|
properties: &ref_509
|
|
external_id:
|
|
type: string
|
|
description: >-
|
|
The external ID of the created trigger from the external
|
|
service
|
|
required: &ref_510
|
|
- external_id
|
|
/w/{workspace}/native_triggers/{service_name}/update/{external_id}:
|
|
post:
|
|
summary: update native trigger
|
|
description: >
|
|
Updates an existing native trigger.
|
|
|
|
Requires write access to the script or flow that the trigger is
|
|
associated with.
|
|
operationId: updateNativeTrigger
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: *ref_199
|
|
- name: external_id
|
|
in: path
|
|
required: true
|
|
description: The external ID of the trigger from the external service
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
description: updated native trigger configuration
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: Data for creating or updating a native trigger
|
|
properties: *ref_204
|
|
required: *ref_205
|
|
responses:
|
|
'200':
|
|
description: native trigger updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/native_triggers/{service_name}/get/{external_id}:
|
|
get:
|
|
summary: get native trigger
|
|
description: >
|
|
Retrieves a native trigger by its external ID.
|
|
|
|
Requires write access to the script or flow that the trigger is
|
|
associated with.
|
|
operationId: getNativeTrigger
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: *ref_199
|
|
- name: external_id
|
|
in: path
|
|
required: true
|
|
description: The external ID of the trigger from the external service
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: native trigger with external configuration
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: >-
|
|
Full trigger response containing both Windmill data and
|
|
external service data
|
|
properties: &ref_504
|
|
external_id:
|
|
type: string
|
|
description: The unique identifier from the external service
|
|
workspace_id:
|
|
type: string
|
|
description: The workspace this trigger belongs to
|
|
service_name:
|
|
type: string
|
|
enum: *ref_199
|
|
script_path:
|
|
type: string
|
|
description: The path to the script or flow that will be triggered
|
|
is_flow:
|
|
type: boolean
|
|
description: >-
|
|
Whether the trigger targets a flow (true) or a script
|
|
(false)
|
|
service_config:
|
|
type: object
|
|
description: >-
|
|
Configuration for the trigger including event_type and
|
|
service_config
|
|
additionalProperties: true
|
|
error:
|
|
type: string
|
|
nullable: true
|
|
description: Error message if the trigger is in an error state
|
|
external_data:
|
|
type: object
|
|
description: Configuration data from the external service
|
|
additionalProperties: true
|
|
required: &ref_505
|
|
- external_id
|
|
- workspace_id
|
|
- service_name
|
|
- script_path
|
|
- is_flow
|
|
- service_config
|
|
- external_data
|
|
/w/{workspace}/native_triggers/{service_name}/delete/{external_id}:
|
|
delete:
|
|
summary: delete native trigger
|
|
description: >
|
|
Deletes a native trigger by its external ID.
|
|
|
|
Requires write access to the script or flow that the trigger is
|
|
associated with.
|
|
operationId: deleteNativeTrigger
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: *ref_199
|
|
- name: external_id
|
|
in: path
|
|
required: true
|
|
description: The external ID of the trigger from the external service
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: native trigger deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/native_triggers/{service_name}/list:
|
|
get:
|
|
summary: list native triggers
|
|
description: Lists all native triggers for the specified service in the workspace.
|
|
operationId: listNativeTriggers
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: *ref_199
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- name: path
|
|
description: filter by script path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: is_flow
|
|
description: filter by is_flow
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
'200':
|
|
description: native triggers list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
description: A native trigger stored in Windmill
|
|
properties: &ref_502
|
|
external_id:
|
|
type: string
|
|
description: The unique identifier from the external service
|
|
workspace_id:
|
|
type: string
|
|
description: The workspace this trigger belongs to
|
|
service_name:
|
|
type: string
|
|
enum: *ref_199
|
|
script_path:
|
|
type: string
|
|
description: The path to the script or flow that will be triggered
|
|
is_flow:
|
|
type: boolean
|
|
description: >-
|
|
Whether the trigger targets a flow (true) or a script
|
|
(false)
|
|
service_config:
|
|
type: object
|
|
description: >-
|
|
Configuration for the trigger including event_type and
|
|
service_config
|
|
additionalProperties: true
|
|
error:
|
|
type: string
|
|
nullable: true
|
|
description: Error message if the trigger is in an error state
|
|
required: &ref_503
|
|
- external_id
|
|
- workspace_id
|
|
- service_name
|
|
- script_path
|
|
- is_flow
|
|
- service_config
|
|
/w/{workspace}/native_triggers/{service_name}/exists/{external_id}:
|
|
get:
|
|
summary: check if native trigger exists
|
|
description: Checks if a native trigger with the given external ID exists.
|
|
operationId: existsNativeTrigger
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: *ref_199
|
|
- name: external_id
|
|
in: path
|
|
required: true
|
|
description: The external ID of the trigger from the external service
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: whether the native trigger exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
/w/{workspace}/native_triggers/{service_name}/sync:
|
|
post:
|
|
summary: sync native triggers with external service
|
|
operationId: syncNativeTriggers
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: *ref_199
|
|
responses:
|
|
'200':
|
|
description: sync completed successfully
|
|
/w/{workspace}/native_triggers/nextcloud/events:
|
|
get:
|
|
summary: list available NextCloud events
|
|
operationId: listNextCloudEvents
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: list of available NextCloud events
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_511
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
category:
|
|
type: string
|
|
path:
|
|
type: string
|
|
required: &ref_512
|
|
- id
|
|
- name
|
|
- path
|
|
/native_triggers/{service_name}/w/{workspace_id}/webhook/{internal_id}:
|
|
post:
|
|
summary: receive webhook from external native trigger service
|
|
operationId: nativeTriggerWebhook
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: *ref_199
|
|
- name: workspace_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: internal_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
description: The internal database ID of the trigger
|
|
requestBody:
|
|
description: webhook payload from external service
|
|
required: false
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties: true
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: webhook received successfully
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/mqtt_triggers/create:
|
|
post:
|
|
summary: create mqtt trigger
|
|
operationId: createMqttTrigger
|
|
tags:
|
|
- mqtt_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: new mqtt trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_399
|
|
mqtt_resource_path:
|
|
type: string
|
|
description: >-
|
|
Path to the MQTT resource containing broker connection
|
|
configuration
|
|
subscribe_topics:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_206
|
|
qos:
|
|
type: string
|
|
enum: &ref_398
|
|
- qos0
|
|
- qos1
|
|
- qos2
|
|
topic:
|
|
type: string
|
|
required: &ref_207
|
|
- qos
|
|
- topic
|
|
description: >-
|
|
Array of MQTT topics to subscribe to, each with topic name
|
|
and QoS level
|
|
client_id:
|
|
type: string
|
|
description: MQTT client ID for this connection
|
|
v3_config:
|
|
description: MQTT v3 specific configuration (clean_session)
|
|
type: object
|
|
properties: &ref_208
|
|
clean_session:
|
|
type: boolean
|
|
v5_config:
|
|
description: >-
|
|
MQTT v5 specific configuration (clean_start,
|
|
topic_alias_maximum, session_expiry_interval)
|
|
type: object
|
|
properties: &ref_209
|
|
clean_start:
|
|
type: boolean
|
|
topic_alias_maximum:
|
|
type: number
|
|
session_expiry_interval:
|
|
type: number
|
|
client_version:
|
|
description: MQTT protocol version ('v3' or 'v5')
|
|
type: string
|
|
enum: &ref_210
|
|
- v3
|
|
- v5
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: >-
|
|
Path to the script or flow to execute when a message is
|
|
received
|
|
is_flow:
|
|
type: boolean
|
|
description: >-
|
|
True if script_path points to a flow, false if it points to
|
|
a script
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_400
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- subscribe_topics
|
|
- mqtt_resource_path
|
|
responses:
|
|
'201':
|
|
description: mqtt trigger created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/mqtt_triggers/update/{path}:
|
|
post:
|
|
summary: update mqtt trigger
|
|
operationId: updateMqttTrigger
|
|
tags:
|
|
- mqtt_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_401
|
|
mqtt_resource_path:
|
|
type: string
|
|
description: >-
|
|
Path to the MQTT resource containing broker connection
|
|
configuration
|
|
subscribe_topics:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: *ref_206
|
|
required: *ref_207
|
|
description: >-
|
|
Array of MQTT topics to subscribe to, each with topic name
|
|
and QoS level
|
|
client_id:
|
|
type: string
|
|
description: MQTT client ID for this connection
|
|
v3_config:
|
|
description: MQTT v3 specific configuration (clean_session)
|
|
type: object
|
|
properties: *ref_208
|
|
v5_config:
|
|
description: >-
|
|
MQTT v5 specific configuration (clean_start,
|
|
topic_alias_maximum, session_expiry_interval)
|
|
type: object
|
|
properties: *ref_209
|
|
client_version:
|
|
description: MQTT protocol version ('v3' or 'v5')
|
|
type: string
|
|
enum: *ref_210
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: >-
|
|
Path to the script or flow to execute when a message is
|
|
received
|
|
is_flow:
|
|
type: boolean
|
|
description: >-
|
|
True if script_path points to a flow, false if it points to
|
|
a script
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_402
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- enabled
|
|
- subscribe_topics
|
|
- mqtt_resource_path
|
|
responses:
|
|
'200':
|
|
description: mqtt trigger updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/mqtt_triggers/delete/{path}:
|
|
delete:
|
|
summary: delete mqtt trigger
|
|
operationId: deleteMqttTrigger
|
|
tags:
|
|
- mqtt_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: mqtt trigger deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/mqtt_triggers/get/{path}:
|
|
get:
|
|
summary: get mqtt trigger
|
|
operationId: getMqttTrigger
|
|
tags:
|
|
- mqtt_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: mqtt trigger deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf: &ref_211
|
|
- type: object
|
|
properties: *ref_184
|
|
required: *ref_185
|
|
type: object
|
|
properties: &ref_212
|
|
mqtt_resource_path:
|
|
type: string
|
|
description: >-
|
|
Path to the MQTT resource containing broker connection
|
|
configuration
|
|
subscribe_topics:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: *ref_206
|
|
required: *ref_207
|
|
description: >-
|
|
Array of MQTT topics to subscribe to, each with topic name
|
|
and QoS level
|
|
v3_config:
|
|
description: MQTT v3 specific configuration (clean_session)
|
|
type: object
|
|
properties: *ref_208
|
|
v5_config:
|
|
description: >-
|
|
MQTT v5 specific configuration (clean_start,
|
|
topic_alias_maximum, session_expiry_interval)
|
|
type: object
|
|
properties: *ref_209
|
|
client_id:
|
|
type: string
|
|
description: MQTT client ID for this connection
|
|
client_version:
|
|
description: MQTT protocol version ('v3' or 'v5')
|
|
type: string
|
|
enum: *ref_210
|
|
server_id:
|
|
type: string
|
|
description: >-
|
|
ID of the server currently handling this trigger
|
|
(internal)
|
|
last_server_ping:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp of last server heartbeat (internal)
|
|
error:
|
|
type: string
|
|
description: Last error message if the trigger failed
|
|
error_handler_path:
|
|
type: string
|
|
description: >-
|
|
Path to a script or flow to run when the triggered job
|
|
fails
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_213
|
|
- subscribe_topics
|
|
- mqtt_resource_path
|
|
/w/{workspace}/mqtt_triggers/list:
|
|
get:
|
|
summary: list mqtt triggers
|
|
operationId: listMqttTriggers
|
|
tags:
|
|
- mqtt_trigger
|
|
parameters:
|
|
- required: true
|
|
name: workspace
|
|
in: path
|
|
schema: *ref_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- 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: mqtt trigger list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
allOf: *ref_211
|
|
type: object
|
|
properties: *ref_212
|
|
required: *ref_213
|
|
/w/{workspace}/mqtt_triggers/exists/{path}:
|
|
get:
|
|
summary: does mqtt trigger exists
|
|
operationId: existsMqttTrigger
|
|
tags:
|
|
- mqtt_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: mqtt trigger exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
/w/{workspace}/mqtt_triggers/setmode/{path}:
|
|
post:
|
|
summary: set enabled mqtt trigger
|
|
operationId: setMqttTriggerMode
|
|
tags:
|
|
- mqtt_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: updated mqtt trigger enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
required:
|
|
- mode
|
|
responses:
|
|
'200':
|
|
description: mqtt trigger enabled set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/mqtt_triggers/test:
|
|
post:
|
|
summary: test mqtt connection
|
|
operationId: testMqttConnection
|
|
tags:
|
|
- mqtt_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: test mqtt connection
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
connection:
|
|
type: object
|
|
required:
|
|
- connection
|
|
responses:
|
|
'200':
|
|
description: successfully connected to mqtt
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/gcp_triggers/create:
|
|
post:
|
|
summary: create gcp trigger
|
|
operationId: createGcpTrigger
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: new gcp trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: Data for creating or updating a Google Cloud Pub/Sub trigger.
|
|
properties: &ref_214
|
|
gcp_resource_path:
|
|
type: string
|
|
description: >-
|
|
Path to the GCP resource containing service account
|
|
credentials for authentication.
|
|
subscription_mode:
|
|
type: string
|
|
enum: &ref_219
|
|
- existing
|
|
- create_update
|
|
description: >-
|
|
The mode of subscription. 'existing' means using an existing
|
|
GCP subscription, while 'create_update' involves creating or
|
|
updating a new subscription.
|
|
topic_id:
|
|
type: string
|
|
description: Google Cloud Pub/Sub topic ID to subscribe to.
|
|
subscription_id:
|
|
type: string
|
|
description: Google Cloud Pub/Sub subscription ID.
|
|
base_endpoint:
|
|
type: string
|
|
description: Base URL for push delivery endpoint.
|
|
delivery_type:
|
|
type: string
|
|
enum: &ref_216
|
|
- push
|
|
- pull
|
|
description: >-
|
|
Delivery mode for messages. 'push' for HTTP push delivery
|
|
where messages are sent to a webhook endpoint, 'pull' for
|
|
polling where the trigger actively fetches messages.
|
|
delivery_config:
|
|
type: object
|
|
description: Configuration for push delivery mode.
|
|
properties: &ref_217
|
|
audience:
|
|
type: string
|
|
description: >-
|
|
The audience claim for OIDC tokens used in push
|
|
authentication.
|
|
authenticate:
|
|
type: boolean
|
|
description: >-
|
|
If true, push messages will include OIDC authentication
|
|
tokens.
|
|
required: &ref_218
|
|
- authenticate
|
|
- base_endpoint
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger.
|
|
script_path:
|
|
type: string
|
|
description: >-
|
|
Path to the script or flow to execute when a message is
|
|
received.
|
|
is_flow:
|
|
type: boolean
|
|
description: >-
|
|
True if script_path points to a flow, false if it points to
|
|
a script.
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
auto_acknowledge_msg:
|
|
type: boolean
|
|
description: >-
|
|
If true, automatically acknowledge messages after
|
|
processing.
|
|
ack_deadline:
|
|
type: integer
|
|
format: int32
|
|
minimum: 10
|
|
maximum: 600
|
|
description: >-
|
|
Time in seconds within which the message must be
|
|
acknowledged. If not provided, defaults to the
|
|
subscription's acknowledgment deadline (600 seconds).
|
|
error_handler_path:
|
|
type: string
|
|
description: >-
|
|
Path to a script or flow to run when the triggered job
|
|
fails.
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_215
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- gcp_resource_path
|
|
- topic_id
|
|
- subscription_mode
|
|
responses:
|
|
'201':
|
|
description: gcp trigger created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/gcp_triggers/update/{path}:
|
|
post:
|
|
summary: update gcp trigger
|
|
operationId: updateGcpTrigger
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: Data for creating or updating a Google Cloud Pub/Sub trigger.
|
|
properties: *ref_214
|
|
required: *ref_215
|
|
responses:
|
|
'200':
|
|
description: gcp trigger updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/gcp_triggers/delete/{path}:
|
|
delete:
|
|
summary: delete gcp trigger
|
|
operationId: deleteGcpTrigger
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: gcp trigger deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/gcp_triggers/get/{path}:
|
|
get:
|
|
summary: get gcp trigger
|
|
operationId: getGcpTrigger
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: gcp trigger deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf: &ref_220
|
|
- type: object
|
|
properties: *ref_184
|
|
required: *ref_185
|
|
type: object
|
|
description: >-
|
|
A Google Cloud Pub/Sub trigger that executes a script or flow
|
|
when messages are received.
|
|
properties: &ref_221
|
|
gcp_resource_path:
|
|
type: string
|
|
description: >-
|
|
Path to the GCP resource containing service account
|
|
credentials for authentication.
|
|
topic_id:
|
|
type: string
|
|
description: Google Cloud Pub/Sub topic ID to subscribe to.
|
|
subscription_id:
|
|
type: string
|
|
description: Google Cloud Pub/Sub subscription ID.
|
|
server_id:
|
|
type: string
|
|
description: >-
|
|
ID of the server currently handling this trigger (internal
|
|
use).
|
|
delivery_type:
|
|
type: string
|
|
enum: *ref_216
|
|
description: >-
|
|
Delivery mode for messages. 'push' for HTTP push delivery
|
|
where messages are sent to a webhook endpoint, 'pull' for
|
|
polling where the trigger actively fetches messages.
|
|
delivery_config:
|
|
type: object
|
|
description: Configuration for push delivery mode.
|
|
properties: *ref_217
|
|
required: *ref_218
|
|
subscription_mode:
|
|
type: string
|
|
enum: *ref_219
|
|
description: >-
|
|
The mode of subscription. 'existing' means using an
|
|
existing GCP subscription, while 'create_update' involves
|
|
creating or updating a new subscription.
|
|
last_server_ping:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp of last server heartbeat (internal use).
|
|
error:
|
|
type: string
|
|
description: Last error message if the trigger failed.
|
|
error_handler_path:
|
|
type: string
|
|
description: >-
|
|
Path to a script or flow to run when the triggered job
|
|
fails.
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_222
|
|
- gcp_resource_path
|
|
- topic_id
|
|
- subscription_id
|
|
- delivery_type
|
|
- subscription_mode
|
|
/w/{workspace}/gcp_triggers/list:
|
|
get:
|
|
summary: list gcp triggers
|
|
operationId: listGcpTriggers
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- required: true
|
|
name: workspace
|
|
in: path
|
|
schema: *ref_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- 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: gcp trigger list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
allOf: *ref_220
|
|
type: object
|
|
description: >-
|
|
A Google Cloud Pub/Sub trigger that executes a script or
|
|
flow when messages are received.
|
|
properties: *ref_221
|
|
required: *ref_222
|
|
/w/{workspace}/gcp_triggers/exists/{path}:
|
|
get:
|
|
summary: does gcp trigger exists
|
|
operationId: existsGcpTrigger
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: gcp trigger exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
/w/{workspace}/gcp_triggers/setmode/{path}:
|
|
post:
|
|
summary: set enabled gcp trigger
|
|
operationId: setGcpTriggerMode
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: updated gcp trigger enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
required:
|
|
- mode
|
|
responses:
|
|
'200':
|
|
description: gcp trigger enabled set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/gcp_triggers/test:
|
|
post:
|
|
summary: test gcp connection
|
|
operationId: testGcpConnection
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: test gcp connection
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
connection:
|
|
type: object
|
|
required:
|
|
- connection
|
|
responses:
|
|
'200':
|
|
description: try to connect to a gcp broker
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/gcp_triggers/subscriptions/delete/{path}:
|
|
delete:
|
|
summary: delete gcp trigger
|
|
operationId: deleteGcpSubscription
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: args to delete subscription from google cloud
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_405
|
|
subscription_id:
|
|
type: string
|
|
required: &ref_406
|
|
- subscription_id
|
|
responses:
|
|
'200':
|
|
description: gcp trigger deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/gcp_triggers/topics/list/{path}:
|
|
get:
|
|
summary: list all topics of google cloud service
|
|
operationId: listGoogleTopics
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: get all google topics
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/w/{workspace}/gcp_triggers/subscriptions/list/{path}:
|
|
post:
|
|
summary: list all subscription of a give topic from google cloud service
|
|
operationId: listAllTGoogleTopicSubscriptions
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: args to get subscription's topic from google cloud
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_403
|
|
topic_id:
|
|
type: string
|
|
required: &ref_404
|
|
- topic_id
|
|
responses:
|
|
'200':
|
|
description: get all google topic subscriptions name
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/w/{workspace}/postgres_triggers/postgres/version/{path}:
|
|
get:
|
|
summary: get postgres version
|
|
operationId: getPostgresVersion
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: postgres version
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/postgres_triggers/is_valid_postgres_configuration/{path}:
|
|
get:
|
|
summary: check if postgres configuration is set to logical
|
|
operationId: isValidPostgresConfiguration
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: boolean that indicates if postgres is set to logical level or not
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
/w/{workspace}/postgres_triggers/create_template_script:
|
|
post:
|
|
summary: create template script
|
|
operationId: createTemplateScript
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: template script
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_415
|
|
postgres_resource_path:
|
|
type: string
|
|
relations:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_224
|
|
schema_name:
|
|
type: string
|
|
table_to_track:
|
|
type: array
|
|
items: &ref_413
|
|
type: object
|
|
properties:
|
|
table_name:
|
|
type: string
|
|
columns_name:
|
|
type: array
|
|
items:
|
|
type: string
|
|
where_clause:
|
|
type: string
|
|
required:
|
|
- table_name
|
|
required: &ref_225
|
|
- schema_name
|
|
- table_to_track
|
|
language:
|
|
type: string
|
|
enum: &ref_414
|
|
- Typescript
|
|
required: &ref_416
|
|
- postgres_resource_path
|
|
- relations
|
|
- language
|
|
responses:
|
|
'200':
|
|
description: custom id to retrieve template script
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/postgres_triggers/get_template_script/{id}:
|
|
get:
|
|
summary: get template script
|
|
operationId: getTemplateScript
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: &ref_265
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: template script
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/postgres_triggers/slot/list/{path}:
|
|
get:
|
|
summary: list postgres replication slot
|
|
operationId: listPostgresReplicationSlot
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: list postgres slot
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_412
|
|
slot_name:
|
|
type: string
|
|
active:
|
|
type: boolean
|
|
/w/{workspace}/postgres_triggers/slot/create/{path}:
|
|
post:
|
|
summary: create replication slot for postgres
|
|
operationId: createPostgresReplicationSlot
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: new slot for postgres
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_223
|
|
name:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: slot created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/postgres_triggers/slot/delete/{path}:
|
|
delete:
|
|
summary: delete postgres replication slot
|
|
operationId: deletePostgresReplicationSlot
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: replication slot of postgres
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_223
|
|
responses:
|
|
'200':
|
|
description: postgres replication slot deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/postgres_triggers/publication/list/{path}:
|
|
get:
|
|
summary: list postgres publication
|
|
operationId: listPostgresPublication
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: database publication list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/w/{workspace}/postgres_triggers/publication/get/{publication}/{path}:
|
|
get:
|
|
summary: get postgres publication
|
|
operationId: getPostgresPublication
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
- name: publication
|
|
in: path
|
|
required: true
|
|
description: The name of the publication
|
|
schema: &ref_226
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: postgres publication get
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_227
|
|
table_to_track:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: *ref_224
|
|
required: *ref_225
|
|
transaction_to_track:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required: &ref_228
|
|
- transaction_to_track
|
|
/w/{workspace}/postgres_triggers/publication/create/{publication}/{path}:
|
|
post:
|
|
summary: create publication for postgres
|
|
operationId: createPostgresPublication
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
- name: publication
|
|
in: path
|
|
required: true
|
|
description: The name of the publication
|
|
schema: *ref_226
|
|
requestBody:
|
|
description: new publication for postgres
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_227
|
|
required: *ref_228
|
|
responses:
|
|
'201':
|
|
description: publication created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/postgres_triggers/publication/update/{publication}/{path}:
|
|
post:
|
|
summary: update publication for postgres
|
|
operationId: updatePostgresPublication
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
- name: publication
|
|
in: path
|
|
required: true
|
|
description: The name of the publication
|
|
schema: *ref_226
|
|
requestBody:
|
|
description: update publication for postgres
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_227
|
|
required: *ref_228
|
|
responses:
|
|
'201':
|
|
description: publication updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/postgres_triggers/publication/delete/{publication}/{path}:
|
|
delete:
|
|
summary: delete postgres publication
|
|
operationId: deletePostgresPublication
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
- name: publication
|
|
in: path
|
|
required: true
|
|
description: The name of the publication
|
|
schema: *ref_226
|
|
responses:
|
|
'200':
|
|
description: postgres publication deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/postgres_triggers/create:
|
|
post:
|
|
summary: create postgres trigger
|
|
operationId: createPostgresTrigger
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: new postgres trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_417
|
|
replication_slot_name:
|
|
type: string
|
|
description: Name of the PostgreSQL logical replication slot to use
|
|
publication_name:
|
|
type: string
|
|
description: >-
|
|
Name of the PostgreSQL publication to subscribe to for
|
|
change data capture
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: >-
|
|
Path to the script or flow to execute when database changes
|
|
are detected
|
|
is_flow:
|
|
type: boolean
|
|
description: >-
|
|
True if script_path points to a flow, false if it points to
|
|
a script
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
postgres_resource_path:
|
|
type: string
|
|
description: >-
|
|
Path to the PostgreSQL resource containing connection
|
|
configuration
|
|
publication:
|
|
description: >-
|
|
Configuration for creating/managing the publication (tables,
|
|
operations)
|
|
type: object
|
|
properties: *ref_227
|
|
required: *ref_228
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_418
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- enabled
|
|
- postgres_resource_path
|
|
responses:
|
|
'201':
|
|
description: postgres trigger created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/postgres_triggers/update/{path}:
|
|
post:
|
|
summary: update postgres trigger
|
|
operationId: updatePostgresTrigger
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_419
|
|
replication_slot_name:
|
|
type: string
|
|
description: Name of the PostgreSQL logical replication slot to use
|
|
publication_name:
|
|
type: string
|
|
description: >-
|
|
Name of the PostgreSQL publication to subscribe to for
|
|
change data capture
|
|
path:
|
|
type: string
|
|
description: The unique path identifier for this trigger
|
|
script_path:
|
|
type: string
|
|
description: >-
|
|
Path to the script or flow to execute when database changes
|
|
are detected
|
|
is_flow:
|
|
type: boolean
|
|
description: >-
|
|
True if script_path points to a flow, false if it points to
|
|
a script
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
postgres_resource_path:
|
|
type: string
|
|
description: >-
|
|
Path to the PostgreSQL resource containing connection
|
|
configuration
|
|
publication:
|
|
description: >-
|
|
Configuration for creating/managing the publication (tables,
|
|
operations)
|
|
type: object
|
|
properties: *ref_227
|
|
required: *ref_228
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_420
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- enabled
|
|
- postgres_resource_path
|
|
- publication_name
|
|
- replication_slot_name
|
|
responses:
|
|
'200':
|
|
description: postgres trigger updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/postgres_triggers/delete/{path}:
|
|
delete:
|
|
summary: delete postgres trigger
|
|
operationId: deletePostgresTrigger
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: postgres trigger deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/postgres_triggers/get/{path}:
|
|
get:
|
|
summary: get postgres trigger
|
|
operationId: getPostgresTrigger
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: get postgres trigger
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf: &ref_229
|
|
- type: object
|
|
properties: *ref_184
|
|
required: *ref_185
|
|
type: object
|
|
properties: &ref_230
|
|
postgres_resource_path:
|
|
type: string
|
|
description: >-
|
|
Path to the PostgreSQL resource containing connection
|
|
configuration
|
|
publication_name:
|
|
type: string
|
|
description: >-
|
|
Name of the PostgreSQL publication to subscribe to for
|
|
change data capture
|
|
server_id:
|
|
type: string
|
|
description: >-
|
|
ID of the server currently handling this trigger
|
|
(internal)
|
|
replication_slot_name:
|
|
type: string
|
|
description: Name of the PostgreSQL logical replication slot to use
|
|
error:
|
|
type: string
|
|
description: Last error message if the trigger failed
|
|
last_server_ping:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp of last server heartbeat (internal)
|
|
error_handler_path:
|
|
type: string
|
|
description: >-
|
|
Path to a script or flow to run when the triggered job
|
|
fails
|
|
error_handler_args:
|
|
description: The arguments to pass to the script or flow
|
|
type: object
|
|
additionalProperties: true
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_169
|
|
required: &ref_231
|
|
- postgres_resource_path
|
|
- replication_slot_name
|
|
- publication_name
|
|
/w/{workspace}/postgres_triggers/list:
|
|
get:
|
|
summary: list postgres triggers
|
|
operationId: listPostgresTriggers
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- required: true
|
|
name: workspace
|
|
in: path
|
|
schema: *ref_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- 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: postgres trigger list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
allOf: *ref_229
|
|
type: object
|
|
properties: *ref_230
|
|
required: *ref_231
|
|
/w/{workspace}/postgres_triggers/exists/{path}:
|
|
get:
|
|
summary: does postgres trigger exists
|
|
operationId: existsPostgresTrigger
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: postgres trigger exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
/w/{workspace}/postgres_triggers/setmode/{path}:
|
|
post:
|
|
summary: set enabled postgres trigger
|
|
operationId: setPostgresTriggerMode
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: updated postgres trigger enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
required:
|
|
- mode
|
|
responses:
|
|
'200':
|
|
description: postgres trigger enabled set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/postgres_triggers/test:
|
|
post:
|
|
summary: test postgres connection
|
|
operationId: testPostgresConnection
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: test postgres connection
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
database:
|
|
type: string
|
|
required:
|
|
- database
|
|
responses:
|
|
'200':
|
|
description: successfuly connected to postgres
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/email_triggers/create:
|
|
post:
|
|
summary: create email trigger
|
|
operationId: createEmailTrigger
|
|
tags:
|
|
- email_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: new email trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_429
|
|
path:
|
|
type: string
|
|
script_path:
|
|
type: string
|
|
local_part:
|
|
type: string
|
|
workspaced_local_part:
|
|
type: boolean
|
|
is_flow:
|
|
type: boolean
|
|
error_handler_path:
|
|
type: string
|
|
error_handler_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
retry:
|
|
type: object
|
|
description: Retry configuration for failed module executions
|
|
properties: *ref_169
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
required: &ref_430
|
|
- path
|
|
- script_path
|
|
- local_part
|
|
- is_flow
|
|
responses:
|
|
'201':
|
|
description: email trigger created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/email_triggers/update/{path}:
|
|
post:
|
|
summary: update email trigger
|
|
operationId: updateEmailTrigger
|
|
tags:
|
|
- email_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_431
|
|
path:
|
|
type: string
|
|
script_path:
|
|
type: string
|
|
local_part:
|
|
type: string
|
|
workspaced_local_part:
|
|
type: boolean
|
|
is_flow:
|
|
type: boolean
|
|
error_handler_path:
|
|
type: string
|
|
error_handler_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
retry:
|
|
type: object
|
|
description: Retry configuration for failed module executions
|
|
properties: *ref_169
|
|
required: &ref_432
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
responses:
|
|
'200':
|
|
description: email trigger updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/email_triggers/delete/{path}:
|
|
delete:
|
|
summary: delete email trigger
|
|
operationId: deleteEmailTrigger
|
|
tags:
|
|
- email_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: email trigger deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/email_triggers/get/{path}:
|
|
get:
|
|
summary: get email trigger
|
|
operationId: getEmailTrigger
|
|
tags:
|
|
- email_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: email trigger retrieved
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf: &ref_232
|
|
- type: object
|
|
properties: *ref_184
|
|
required: *ref_185
|
|
type: object
|
|
properties: &ref_233
|
|
local_part:
|
|
type: string
|
|
workspaced_local_part:
|
|
type: boolean
|
|
error_handler_path:
|
|
type: string
|
|
error_handler_args:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
retry:
|
|
type: object
|
|
description: Retry configuration for failed module executions
|
|
properties: *ref_169
|
|
required: &ref_234
|
|
- local_part
|
|
/w/{workspace}/email_triggers/list:
|
|
get:
|
|
summary: list email triggers
|
|
operationId: listEmailTriggers
|
|
tags:
|
|
- email_trigger
|
|
parameters:
|
|
- required: true
|
|
name: workspace
|
|
in: path
|
|
schema: *ref_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- 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: email trigger list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
allOf: *ref_232
|
|
type: object
|
|
properties: *ref_233
|
|
required: *ref_234
|
|
/w/{workspace}/email_triggers/exists/{path}:
|
|
get:
|
|
summary: does email trigger exists
|
|
operationId: existsEmailTrigger
|
|
tags:
|
|
- email_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: email trigger exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
/w/{workspace}/email_triggers/local_part_exists:
|
|
post:
|
|
summary: does email local part exists
|
|
operationId: existsEmailLocalPart
|
|
tags:
|
|
- email_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: email local part exists request
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
local_part:
|
|
type: string
|
|
workspaced_local_part:
|
|
type: boolean
|
|
trigger_path:
|
|
type: string
|
|
required:
|
|
- local_part
|
|
responses:
|
|
'200':
|
|
description: email local part exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
/w/{workspace}/email_triggers/setmode/{path}:
|
|
post:
|
|
summary: enable/disable email trigger
|
|
operationId: setEmailTriggerMode
|
|
tags:
|
|
- email_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
required:
|
|
- mode
|
|
responses:
|
|
'200':
|
|
description: email trigger enable/disable
|
|
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
|
|
required: &ref_236
|
|
- name
|
|
properties: &ref_237
|
|
name:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
emails:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/groups/list_with_workspaces:
|
|
get:
|
|
summary: list instance groups with workspace information
|
|
operationId: listInstanceGroupsWithWorkspaces
|
|
tags:
|
|
- group
|
|
responses:
|
|
'200':
|
|
description: instance group list with workspaces
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required: &ref_433
|
|
- name
|
|
properties: &ref_434
|
|
name:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
emails:
|
|
type: array
|
|
items:
|
|
type: string
|
|
workspaces:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_435
|
|
workspace_id:
|
|
type: string
|
|
workspace_name:
|
|
type: string
|
|
role:
|
|
type: string
|
|
required: &ref_436
|
|
- name
|
|
/groups/get/{name}:
|
|
get:
|
|
summary: get instance group
|
|
operationId: getInstanceGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema: *ref_235
|
|
responses:
|
|
'200':
|
|
description: instance group
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: *ref_236
|
|
properties: *ref_237
|
|
/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_235
|
|
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_235
|
|
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_235
|
|
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_235
|
|
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_238
|
|
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_239
|
|
- 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_238
|
|
required: *ref_239
|
|
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_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
responses:
|
|
'200':
|
|
description: group list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_240
|
|
name:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
members:
|
|
type: array
|
|
items:
|
|
type: string
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
required: &ref_241
|
|
- name
|
|
/w/{workspace}/groups/listnames:
|
|
get:
|
|
summary: list group names
|
|
operationId: listGroupNames
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- 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_4
|
|
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_4
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema: *ref_235
|
|
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_4
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema: *ref_235
|
|
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_4
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema: *ref_235
|
|
responses:
|
|
'200':
|
|
description: group
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_240
|
|
required: *ref_241
|
|
/w/{workspace}/groups/adduser/{name}:
|
|
post:
|
|
summary: add user to group
|
|
operationId: addUserToGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema: *ref_235
|
|
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_4
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema: *ref_235
|
|
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}/groups_history/get/{name}:
|
|
get:
|
|
summary: get group permission history
|
|
operationId: getGroupPermissionHistory
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema: *ref_235
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
responses:
|
|
'200':
|
|
description: group permission history
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
changed_by:
|
|
type: string
|
|
changed_at:
|
|
type: string
|
|
format: date-time
|
|
change_type:
|
|
type: string
|
|
member_affected:
|
|
type: string
|
|
nullable: true
|
|
/w/{workspace}/folders/list:
|
|
get:
|
|
summary: list folders
|
|
operationId: listFolders
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
responses:
|
|
'200':
|
|
description: folder list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_242
|
|
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_243
|
|
- 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_4
|
|
- 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_4
|
|
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_4
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema: *ref_235
|
|
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_4
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema: *ref_235
|
|
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_4
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema: *ref_235
|
|
responses:
|
|
'200':
|
|
description: folder
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_242
|
|
required: *ref_243
|
|
/w/{workspace}/folders/exists/{name}:
|
|
get:
|
|
summary: exists folder
|
|
operationId: existsFolder
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema: *ref_235
|
|
responses:
|
|
'200':
|
|
description: folder exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
/w/{workspace}/folders/getusage/{name}:
|
|
get:
|
|
summary: get folder usage
|
|
operationId: getFolderUsage
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema: *ref_235
|
|
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_4
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema: *ref_235
|
|
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_4
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema: *ref_235
|
|
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
|
|
/w/{workspace}/folders_history/get/{name}:
|
|
get:
|
|
summary: get folder permission history
|
|
operationId: getFolderPermissionHistory
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema: *ref_235
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
responses:
|
|
'200':
|
|
description: folder permission history
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
changed_by:
|
|
type: string
|
|
changed_at:
|
|
type: string
|
|
format: date-time
|
|
change_type:
|
|
type: string
|
|
affected:
|
|
type: string
|
|
nullable: true
|
|
/workers/list:
|
|
get:
|
|
summary: list workers
|
|
operationId: listWorkers
|
|
x-mcp-tool: true
|
|
tags:
|
|
- worker
|
|
parameters:
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- 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_437
|
|
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
|
|
job_isolation:
|
|
type: string
|
|
required: &ref_438
|
|
- worker
|
|
- worker_instance
|
|
- ping_at
|
|
- started_at
|
|
- ip
|
|
- jobs_executed
|
|
- worker_group
|
|
- wm_version
|
|
/workers/exists_workers_with_tags:
|
|
get:
|
|
summary: exists workers with tags
|
|
operationId: existsWorkersWithTags
|
|
tags:
|
|
- worker
|
|
parameters:
|
|
- name: tags
|
|
in: query
|
|
required: true
|
|
description: comma separated list of tags
|
|
schema:
|
|
type: string
|
|
- name: workspace
|
|
in: query
|
|
required: false
|
|
description: >-
|
|
workspace to filter tags visibility (required when
|
|
TAGS_ARE_SENSITIVE is enabled for non-superadmins)
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: map of tags to whether at least one worker with the tag exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
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
|
|
/workers/queue_running_counts:
|
|
get:
|
|
summary: get counts of currently running jobs per tag
|
|
operationId: getCountsOfRunningJobsPerTag
|
|
tags:
|
|
- worker
|
|
responses:
|
|
'200':
|
|
description: queue running 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_235
|
|
responses:
|
|
'200':
|
|
description: a config
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
nullable: true
|
|
properties: &ref_344
|
|
alerts:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_342
|
|
name:
|
|
type: string
|
|
tags_to_monitor:
|
|
type: array
|
|
items:
|
|
type: string
|
|
jobs_num_threshold:
|
|
type: integer
|
|
alert_cooldown_seconds:
|
|
type: integer
|
|
alert_time_threshold_seconds:
|
|
type: integer
|
|
required: &ref_343
|
|
- name
|
|
- tags_to_monitor
|
|
- jobs_num_threshold
|
|
- alert_cooldown_seconds
|
|
- alert_time_threshold_seconds
|
|
/configs/update/{name}:
|
|
post:
|
|
summary: Update config
|
|
operationId: updateConfig
|
|
tags:
|
|
- config
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema: *ref_235
|
|
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_235
|
|
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_483
|
|
name:
|
|
type: string
|
|
config:
|
|
type: object
|
|
required: &ref_484
|
|
- 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
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
responses:
|
|
'200':
|
|
description: List of autoscaling events
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_487
|
|
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
|
|
/configs/native_kubernetes_autoscaling_healthcheck:
|
|
get:
|
|
summary: Check Kubernetes autoscaling health for a worker group
|
|
operationId: nativeKubernetesAutoscalingHealthcheck
|
|
tags:
|
|
- config
|
|
responses:
|
|
'200':
|
|
description: Kubernetes autoscaling is healthy
|
|
'400':
|
|
description: Error
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/configs/list_available_python_versions:
|
|
get:
|
|
summary: Get currently available python versions provided by UV.
|
|
operationId: listAvailablePythonVersions
|
|
tags:
|
|
- config
|
|
responses:
|
|
'200':
|
|
description: List of python versions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
/agent_workers/create_agent_token:
|
|
post:
|
|
summary: create agent token
|
|
operationId: createAgentToken
|
|
tags:
|
|
- agent_workers
|
|
requestBody:
|
|
description: agent token
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
worker_group:
|
|
type: string
|
|
tags:
|
|
type: array
|
|
items:
|
|
type: string
|
|
exp:
|
|
type: integer
|
|
required:
|
|
- worker_group
|
|
- tags
|
|
- exp
|
|
responses:
|
|
'200':
|
|
description: agent token created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
/agent_workers/blacklist_token:
|
|
post:
|
|
summary: blacklist agent token (requires super admin)
|
|
operationId: blacklistAgentToken
|
|
tags:
|
|
- agent_workers
|
|
requestBody:
|
|
description: token to blacklist
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
token:
|
|
type: string
|
|
description: The agent token to blacklist
|
|
expires_at:
|
|
type: string
|
|
format: date-time
|
|
description: Optional expiration date for the blacklist entry
|
|
required:
|
|
- token
|
|
responses:
|
|
'200':
|
|
description: token blacklisted successfully
|
|
/agent_workers/remove_blacklist_token:
|
|
post:
|
|
summary: remove agent token from blacklist (requires super admin)
|
|
operationId: removeBlacklistAgentToken
|
|
tags:
|
|
- agent_workers
|
|
requestBody:
|
|
description: token to remove from blacklist
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
token:
|
|
type: string
|
|
description: The agent token to remove from blacklist
|
|
required:
|
|
- token
|
|
responses:
|
|
'200':
|
|
description: token removed from blacklist successfully
|
|
/agent_workers/list_blacklisted_tokens:
|
|
get:
|
|
summary: list blacklisted agent tokens (requires super admin)
|
|
operationId: listBlacklistedAgentTokens
|
|
tags:
|
|
- agent_workers
|
|
parameters:
|
|
- name: include_expired
|
|
in: query
|
|
description: Whether to include expired blacklisted tokens
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
responses:
|
|
'200':
|
|
description: list of blacklisted tokens
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
token:
|
|
type: string
|
|
description: The blacklisted token (without prefix)
|
|
expires_at:
|
|
type: string
|
|
format: date-time
|
|
description: When the blacklist entry expires
|
|
blacklisted_at:
|
|
type: string
|
|
format: date-time
|
|
description: When the token was blacklisted
|
|
blacklisted_by:
|
|
type: string
|
|
description: Email of the user who blacklisted the token
|
|
required:
|
|
- token
|
|
- expires_at
|
|
- blacklisted_at
|
|
- blacklisted_by
|
|
/agent_workers/get_min_version:
|
|
get:
|
|
summary: get minimum worker version across all workers
|
|
operationId: getMinVersion
|
|
tags:
|
|
- agent_workers
|
|
responses:
|
|
'200':
|
|
description: minimum worker version
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
description: Minimum semantic version across all workers (e.g. "1.583.0")
|
|
/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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
- name: kind
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- script
|
|
- group_
|
|
- resource
|
|
- schedule
|
|
- variable
|
|
- flow
|
|
- folder
|
|
- app
|
|
- raw_app
|
|
- http_trigger
|
|
- websocket_trigger
|
|
- kafka_trigger
|
|
- nats_trigger
|
|
- postgres_trigger
|
|
- mqtt_trigger
|
|
- gcp_trigger
|
|
- sqs_trigger
|
|
- email_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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
- name: kind
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- script
|
|
- group_
|
|
- resource
|
|
- schedule
|
|
- variable
|
|
- flow
|
|
- folder
|
|
- app
|
|
- raw_app
|
|
- http_trigger
|
|
- websocket_trigger
|
|
- kafka_trigger
|
|
- nats_trigger
|
|
- postgres_trigger
|
|
- mqtt_trigger
|
|
- gcp_trigger
|
|
- sqs_trigger
|
|
- email_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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
- name: kind
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- script
|
|
- group_
|
|
- resource
|
|
- schedule
|
|
- variable
|
|
- flow
|
|
- folder
|
|
- app
|
|
- raw_app
|
|
- http_trigger
|
|
- websocket_trigger
|
|
- kafka_trigger
|
|
- nats_trigger
|
|
- postgres_trigger
|
|
- mqtt_trigger
|
|
- gcp_trigger
|
|
- sqs_trigger
|
|
- email_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/set_config:
|
|
post:
|
|
summary: set capture config
|
|
operationId: setCaptureConfig
|
|
tags:
|
|
- capture
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: capture config
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
trigger_kind:
|
|
type: string
|
|
enum: &ref_244
|
|
- webhook
|
|
- http
|
|
- websocket
|
|
- kafka
|
|
- default_email
|
|
- nats
|
|
- postgres
|
|
- sqs
|
|
- mqtt
|
|
- gcp
|
|
- email
|
|
path:
|
|
type: string
|
|
is_flow:
|
|
type: boolean
|
|
trigger_config:
|
|
type: object
|
|
required:
|
|
- trigger_kind
|
|
- path
|
|
- is_flow
|
|
responses:
|
|
'200':
|
|
description: capture config set
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
/w/{workspace}/capture/ping_config/{trigger_kind}/{runnable_kind}/{path}:
|
|
post:
|
|
summary: ping capture config
|
|
operationId: pingCaptureConfig
|
|
tags:
|
|
- capture
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: trigger_kind
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: *ref_244
|
|
- name: runnable_kind
|
|
in: path
|
|
required: true
|
|
schema: *ref_110
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: capture config pinged
|
|
/w/{workspace}/capture/get_configs/{runnable_kind}/{path}:
|
|
get:
|
|
summary: get capture configs for a script or flow
|
|
operationId: getCaptureConfigs
|
|
tags:
|
|
- capture
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: runnable_kind
|
|
in: path
|
|
required: true
|
|
schema: *ref_110
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
responses:
|
|
'200':
|
|
description: capture configs for a script or flow
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_488
|
|
trigger_config: {}
|
|
trigger_kind:
|
|
type: string
|
|
enum: *ref_244
|
|
error:
|
|
type: string
|
|
last_server_ping:
|
|
type: string
|
|
format: date-time
|
|
required: &ref_489
|
|
- trigger_kind
|
|
/w/{workspace}/capture/list/{runnable_kind}/{path}:
|
|
get:
|
|
summary: list captures for a script or flow
|
|
operationId: listCaptures
|
|
tags:
|
|
- capture
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: runnable_kind
|
|
in: path
|
|
required: true
|
|
schema: *ref_110
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
- name: trigger_kind
|
|
in: query
|
|
schema:
|
|
type: string
|
|
enum: *ref_244
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
responses:
|
|
'200':
|
|
description: list of captures for a script or flow
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_245
|
|
trigger_kind:
|
|
type: string
|
|
enum: *ref_244
|
|
main_args: {}
|
|
preprocessor_args: {}
|
|
id:
|
|
type: integer
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
required: &ref_246
|
|
- trigger_kind
|
|
- main_args
|
|
- preprocessor_args
|
|
- id
|
|
- created_at
|
|
/w/{workspace}/capture/move/{runnable_kind}/{path}:
|
|
post:
|
|
summary: move captures and configs for a script or flow
|
|
operationId: moveCapturesAndConfigs
|
|
tags:
|
|
- capture
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: runnable_kind
|
|
in: path
|
|
required: true
|
|
schema: *ref_110
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
requestBody:
|
|
description: move captures and configs to a new path
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
new_path:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: captures and configs moved
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/capture/{id}:
|
|
get:
|
|
summary: get a capture
|
|
operationId: getCapture
|
|
tags:
|
|
- capture
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: capture
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_245
|
|
required: *ref_246
|
|
delete:
|
|
summary: delete a capture
|
|
operationId: deleteCapture
|
|
tags:
|
|
- capture
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: capture deleted
|
|
/w/{workspace}/favorites/star:
|
|
post:
|
|
summary: star item
|
|
operationId: star
|
|
tags:
|
|
- favorite
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
favorite_kind:
|
|
type: string
|
|
enum:
|
|
- flow
|
|
- app
|
|
- script
|
|
- raw_app
|
|
- asset
|
|
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_4
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
favorite_kind:
|
|
type: string
|
|
enum:
|
|
- flow
|
|
- app
|
|
- script
|
|
- raw_app
|
|
- asset
|
|
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_4
|
|
- name: runnable_id
|
|
in: query
|
|
schema: &ref_247
|
|
type: string
|
|
- name: runnable_type
|
|
in: query
|
|
schema: &ref_248
|
|
type: string
|
|
enum: &ref_352
|
|
- ScriptHash
|
|
- ScriptPath
|
|
- FlowPath
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- name: args
|
|
description: >-
|
|
filter on jobs containing those args as a json subset (@> in
|
|
postgres)
|
|
in: query
|
|
schema: *ref_139
|
|
- name: include_preview
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
'200':
|
|
description: Input history for completed jobs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_249
|
|
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_250
|
|
- 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_4
|
|
- 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_4
|
|
- name: runnable_id
|
|
in: query
|
|
schema: *ref_247
|
|
- name: runnable_type
|
|
in: query
|
|
schema: *ref_248
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
responses:
|
|
'200':
|
|
description: Saved Inputs for a Runnable
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: *ref_249
|
|
required: *ref_250
|
|
/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_4
|
|
- name: runnable_id
|
|
in: query
|
|
schema: *ref_247
|
|
- name: runnable_type
|
|
in: query
|
|
schema: *ref_248
|
|
requestBody:
|
|
description: Input
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_348
|
|
name:
|
|
type: string
|
|
args:
|
|
type: object
|
|
required: &ref_349
|
|
- 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_4
|
|
requestBody:
|
|
description: UpdateInput
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: &ref_350
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
is_public:
|
|
type: boolean
|
|
required: &ref_351
|
|
- 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_4
|
|
- name: input
|
|
in: path
|
|
required: true
|
|
schema: &ref_273
|
|
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_4
|
|
requestBody:
|
|
description: S3 resource to connect to
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
s3_resource:
|
|
type: object
|
|
properties: &ref_251
|
|
bucket:
|
|
type: string
|
|
region:
|
|
type: string
|
|
endPoint:
|
|
type: string
|
|
useSSL:
|
|
type: boolean
|
|
accessKey:
|
|
type: string
|
|
secretKey:
|
|
type: string
|
|
pathStyle:
|
|
type: boolean
|
|
required: &ref_252
|
|
- 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_4
|
|
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
|
|
azure_container_path:
|
|
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_4
|
|
requestBody:
|
|
description: S3 resource to connect to
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
s3_resource:
|
|
type: object
|
|
properties: *ref_251
|
|
required: *ref_252
|
|
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_253
|
|
region_name:
|
|
type: string
|
|
required: &ref_254
|
|
- 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_4
|
|
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_253
|
|
required: *ref_254
|
|
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_4
|
|
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_251
|
|
required: *ref_252
|
|
/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_4
|
|
- 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_4
|
|
- 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_255
|
|
s3:
|
|
type: string
|
|
required: &ref_256
|
|
- 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_4
|
|
- 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_259
|
|
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_4
|
|
- 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_257
|
|
msg:
|
|
type: string
|
|
content:
|
|
type: string
|
|
content_type:
|
|
type: string
|
|
enum:
|
|
- RawText
|
|
- Csv
|
|
- Parquet
|
|
- Unknown
|
|
required: &ref_258
|
|
- content_type
|
|
/w/{workspace}/job_helpers/list_git_repo_files:
|
|
get:
|
|
summary: >-
|
|
List the file keys available in instance object storage with
|
|
resource-based access control
|
|
operationId: listGitRepoFiles
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: max_keys
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: marker
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: prefix
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: Must follow format gitrepos/{workspace_id}/{resource_path}/...
|
|
- 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_255
|
|
required: *ref_256
|
|
restricted_access:
|
|
type: boolean
|
|
required:
|
|
- windmill_large_files
|
|
/w/{workspace}/job_helpers/load_git_repo_file_preview:
|
|
get:
|
|
summary: >-
|
|
Load a preview of a file from instance storage with resource-based
|
|
access control
|
|
operationId: loadGitRepoFilePreview
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: file_key
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: Must follow format gitrepos/{workspace_id}/{resource_path}/...
|
|
- 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_257
|
|
required: *ref_258
|
|
/w/{workspace}/job_helpers/load_git_repo_file_metadata:
|
|
get:
|
|
summary: >-
|
|
Load file metadata from instance storage with resource-based access
|
|
control
|
|
operationId: loadGitRepoFileMetadata
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: file_key
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: Must follow format gitrepos/{workspace_id}/{resource_path}/...
|
|
- name: storage
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: FileMetadata
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties: *ref_259
|
|
/w/{workspace}/job_helpers/check_s3_folder_exists:
|
|
get:
|
|
summary: Check if S3 path exists and is a folder
|
|
operationId: checkS3FolderExists
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: file_key
|
|
description: >-
|
|
S3 file key to check (e.g.,
|
|
gitrepos/{workspace_id}/u/user/resource/{commit_hash})
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: S3 folder existence check result
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
exists:
|
|
type: boolean
|
|
description: Whether the path exists
|
|
is_folder:
|
|
type: boolean
|
|
description: Whether the path is a folder (true) or file (false)
|
|
required:
|
|
- exists
|
|
- is_folder
|
|
/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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
- 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: {}
|
|
/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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
- 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_4
|
|
- name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
- 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: {}
|
|
/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_4
|
|
- 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_4
|
|
- 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_4
|
|
- 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/upload_git_repo_file_to_instance_storage:
|
|
post:
|
|
summary: Upload a file to the instance storage gitrepos section for viewing
|
|
operationId: gitRepoViewerFileUpload
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- 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 from S3 bucket
|
|
operationId: fileDownload
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- 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_4
|
|
- 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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
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_467
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
required: &ref_468
|
|
- id
|
|
scalar_metrics:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_469
|
|
metric_id:
|
|
type: string
|
|
value:
|
|
type: number
|
|
required: &ref_470
|
|
- id
|
|
- value
|
|
timeseries_metrics:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_471
|
|
metric_id:
|
|
type: string
|
|
values:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_473
|
|
timestamp:
|
|
type: string
|
|
format: date-time
|
|
value:
|
|
type: number
|
|
required: &ref_474
|
|
- timestamp
|
|
- value
|
|
required: &ref_472
|
|
- 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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
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_4
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
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_260
|
|
- name: after
|
|
description: filter on created after (exclusive) timestamp
|
|
in: query
|
|
schema: *ref_261
|
|
- 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_48
|
|
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_477
|
|
concurrency_key:
|
|
type: string
|
|
total_running:
|
|
type: number
|
|
required: &ref_478
|
|
- 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_275
|
|
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_144
|
|
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_4
|
|
- name: created_by
|
|
description: mask to filter exact matching user creator
|
|
in: query
|
|
schema: *ref_97
|
|
- 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_146
|
|
- 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_88
|
|
- name: script_path_exact
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema: *ref_129
|
|
- name: script_path_start
|
|
description: mask to filter matching starting path
|
|
in: query
|
|
schema: *ref_130
|
|
- name: schedule_path
|
|
description: mask to filter by schedule path
|
|
in: query
|
|
schema: *ref_131
|
|
- name: script_hash
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema: *ref_132
|
|
- name: started_before
|
|
description: filter on started before (inclusive) timestamp
|
|
in: query
|
|
schema: *ref_133
|
|
- name: started_after
|
|
description: filter on started after (exclusive) timestamp
|
|
in: query
|
|
schema: *ref_134
|
|
- name: running
|
|
description: filter on running jobs
|
|
in: query
|
|
schema: *ref_135
|
|
- name: scheduled_for_before_now
|
|
description: filter on jobs scheduled_for before now (hence waitinf for a worker)
|
|
in: query
|
|
schema: *ref_136
|
|
- name: completed_before
|
|
description: filter on started before (inclusive) timestamp
|
|
in: query
|
|
schema: *ref_156
|
|
- name: completed_after
|
|
description: filter on started after (exclusive) timestamp
|
|
in: query
|
|
schema: *ref_157
|
|
- name: created_before_queue
|
|
description: filter on jobs created before X for jobs in the queue only
|
|
in: query
|
|
schema: *ref_158
|
|
- name: created_after_queue
|
|
description: filter on jobs created after X for jobs in the queue only
|
|
in: query
|
|
schema: *ref_159
|
|
- name: job_kinds
|
|
description: >-
|
|
filter on job kind (values 'preview', 'script', 'dependencies',
|
|
'flow') separated by,
|
|
in: query
|
|
schema: *ref_137
|
|
- name: args
|
|
description: >-
|
|
filter on jobs containing those args as a json subset (@> in
|
|
postgres)
|
|
in: query
|
|
schema: *ref_139
|
|
- name: tag
|
|
description: filter on jobs with a given tag/worker group
|
|
in: query
|
|
schema: *ref_140
|
|
- name: result
|
|
description: >-
|
|
filter on jobs containing those result as a json subset (@> in
|
|
postgres)
|
|
in: query
|
|
schema: *ref_141
|
|
- name: allow_wildcards
|
|
description: allow wildcards (*) in the filter of label, tag, worker
|
|
in: query
|
|
schema: *ref_143
|
|
- name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
- name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
- name: trigger_kind
|
|
description: trigger kind (schedule, http, websocket...)
|
|
in: query
|
|
schema: *ref_160
|
|
- 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_479
|
|
jobs:
|
|
type: array
|
|
items:
|
|
oneOf: *ref_165
|
|
discriminator: *ref_166
|
|
obscured_jobs:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_353
|
|
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_480
|
|
- 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_4
|
|
- name: search_query
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: pagination_offset
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
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: the jobs that matched the query
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties: &ref_485
|
|
dancer:
|
|
type: string
|
|
hit_count:
|
|
description: how many jobs matched in total
|
|
type: number
|
|
index_metadata:
|
|
description: Metadata about the index current state
|
|
type: object
|
|
properties:
|
|
indexed_until:
|
|
description: Datetime of the most recently indexed job
|
|
type: string
|
|
format: date-time
|
|
lost_lock_ownership:
|
|
description: Is the current indexer service being replaced
|
|
type: boolean
|
|
/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_486
|
|
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: 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
|
|
/srch/index/delete/{idx_name}:
|
|
delete:
|
|
summary: Restart container and delete the index to recreate it.
|
|
operationId: clearIndex
|
|
tags:
|
|
- indexSearch
|
|
parameters:
|
|
- name: idx_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- JobIndex
|
|
- ServiceLogIndex
|
|
responses:
|
|
'200':
|
|
description: idx to be deleted and container restarting
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/w/{workspace}/assets/list:
|
|
get:
|
|
summary: List all assets in the workspace with cursor pagination
|
|
operationId: listAssets
|
|
tags:
|
|
- asset
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
- name: per_page
|
|
in: query
|
|
description: Number of items per page (max 1000, default 50)
|
|
schema:
|
|
type: integer
|
|
default: 50
|
|
minimum: 1
|
|
maximum: 1000
|
|
- name: cursor_created_at
|
|
in: query
|
|
description: >-
|
|
Cursor timestamp for pagination (created_at of last item from
|
|
previous page)
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
- name: cursor_id
|
|
in: query
|
|
description: Cursor ID for pagination (id of last item from previous page)
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- name: asset_path
|
|
in: query
|
|
description: Filter by asset path (case-insensitive partial match)
|
|
schema:
|
|
type: string
|
|
- name: usage_path
|
|
in: query
|
|
description: Filter by usage path (case-insensitive partial match)
|
|
schema:
|
|
type: string
|
|
- name: asset_kinds
|
|
in: query
|
|
description: Filter by asset kinds (multiple values allowed)
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: paginated assets in the workspace
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- assets
|
|
properties:
|
|
assets:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- path
|
|
- kind
|
|
- usages
|
|
properties:
|
|
path:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
enum: *ref_262
|
|
usages:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- path
|
|
- kind
|
|
properties:
|
|
path:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
enum: &ref_264
|
|
- script
|
|
- flow
|
|
- job
|
|
access_type:
|
|
type: string
|
|
enum: &ref_263
|
|
- r
|
|
- w
|
|
- rw
|
|
nullable: true
|
|
columns:
|
|
type: object
|
|
description: The columns used (for tables)
|
|
additionalProperties:
|
|
type: string
|
|
enum: *ref_263
|
|
nullable: true
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
description: When the asset was detected
|
|
metadata:
|
|
type: object
|
|
properties:
|
|
runnable_path:
|
|
type: string
|
|
description: >-
|
|
The path of the script/flow that was run
|
|
(only present when kind is 'job')
|
|
job_kind:
|
|
type: string
|
|
description: >-
|
|
The kind of job (script, flow, preview,
|
|
etc.) (only present when kind is 'job')
|
|
metadata:
|
|
type: object
|
|
properties:
|
|
resource_type:
|
|
type: string
|
|
description: >-
|
|
The type of the resource (only present when kind
|
|
is 'resource')
|
|
next_cursor:
|
|
type: object
|
|
description: Cursor for the next page (null if no more pages)
|
|
nullable: true
|
|
properties:
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
description: Timestamp to use for next page
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
description: ID to use for next page
|
|
/w/{workspace}/assets/list_by_usages:
|
|
post:
|
|
summary: List all assets used by given usages paths
|
|
operationId: listAssetsByUsage
|
|
tags:
|
|
- asset
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
requestBody:
|
|
description: list assets by usages
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- usages
|
|
properties:
|
|
usages:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- path
|
|
- kind
|
|
properties:
|
|
path:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
enum: *ref_264
|
|
responses:
|
|
'200':
|
|
description: all assets used by the given usage paths, in the same order
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- path
|
|
- kind
|
|
properties:
|
|
path:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
enum: *ref_262
|
|
access_type:
|
|
type: string
|
|
enum: *ref_263
|
|
nullable: true
|
|
/w/{workspace}/assets/list_favorites:
|
|
get:
|
|
summary: List all favorite assets for the authenticated user
|
|
operationId: listFavoriteAssets
|
|
tags:
|
|
- asset
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: list of favorite assets
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- path
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: The asset path
|
|
/mcp/w/{workspace}/list_tools:
|
|
get:
|
|
summary: list available MCP tools
|
|
operationId: listMcpTools
|
|
tags:
|
|
- mcp
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
responses:
|
|
'200':
|
|
description: list of MCP tools available for the workspace
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required: &ref_337
|
|
- name
|
|
- description
|
|
- instructions
|
|
- path
|
|
- method
|
|
properties: &ref_338
|
|
name:
|
|
type: string
|
|
description: The tool name/operation ID
|
|
description:
|
|
type: string
|
|
description: Short description of the tool
|
|
instructions:
|
|
type: string
|
|
description: Detailed instructions for using the tool
|
|
path:
|
|
type: string
|
|
description: API endpoint path
|
|
method:
|
|
type: string
|
|
description: HTTP method (GET, POST, etc.)
|
|
path_params_schema:
|
|
type: object
|
|
description: JSON schema for path parameters
|
|
nullable: true
|
|
query_params_schema:
|
|
type: object
|
|
description: JSON schema for query parameters
|
|
nullable: true
|
|
body_schema:
|
|
type: object
|
|
description: JSON schema for request body
|
|
nullable: true
|
|
/mcp/oauth/discover:
|
|
post:
|
|
summary: discover MCP server OAuth metadata
|
|
operationId: discoverMcpOAuth
|
|
tags:
|
|
- mcp_oauth
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- mcp_server_url
|
|
properties:
|
|
mcp_server_url:
|
|
type: string
|
|
description: URL of the MCP server to discover OAuth metadata from
|
|
responses:
|
|
'200':
|
|
description: OAuth metadata from MCP server
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
scopes_supported:
|
|
type: array
|
|
items:
|
|
type: string
|
|
authorization_endpoint:
|
|
type: string
|
|
token_endpoint:
|
|
type: string
|
|
registration_endpoint:
|
|
type: string
|
|
supports_dynamic_registration:
|
|
type: boolean
|
|
/mcp/oauth/start:
|
|
get:
|
|
summary: start MCP OAuth popup flow
|
|
description: >-
|
|
Opens in a popup, discovers OAuth metadata, registers client, and
|
|
redirects to OAuth provider
|
|
operationId: startMcpOAuthPopup
|
|
tags:
|
|
- mcp_oauth
|
|
parameters:
|
|
- name: mcp_server_url
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: URL of the MCP server to connect to
|
|
- name: scopes
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
description: Comma-separated list of OAuth scopes to request
|
|
responses:
|
|
'302':
|
|
description: Redirect to OAuth provider authorization URL
|
|
/mcp/oauth/callback:
|
|
get:
|
|
security: []
|
|
summary: MCP OAuth callback
|
|
description: >-
|
|
Handles OAuth callback, exchanges code for tokens, returns HTML that
|
|
posts message to opener
|
|
operationId: mcpOAuthCallback
|
|
tags:
|
|
- mcp_oauth
|
|
parameters:
|
|
- name: code
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: OAuth authorization code
|
|
- name: state
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: CSRF state token
|
|
responses:
|
|
'200':
|
|
description: >-
|
|
HTML page with JavaScript that posts tokens to opener window and
|
|
closes
|
|
content:
|
|
text/html:
|
|
schema:
|
|
type: string
|
|
components:
|
|
securitySchemes:
|
|
bearerAuth:
|
|
type: http
|
|
scheme: bearer
|
|
cookieAuth:
|
|
type: apiKey
|
|
in: cookie
|
|
name: token
|
|
parameters:
|
|
Id:
|
|
name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_265
|
|
Key:
|
|
name: key
|
|
in: path
|
|
required: true
|
|
schema: *ref_21
|
|
WorkspaceId:
|
|
name: workspace
|
|
in: path
|
|
required: true
|
|
schema: *ref_4
|
|
PublicationName:
|
|
name: publication
|
|
in: path
|
|
required: true
|
|
description: The name of the publication
|
|
schema: *ref_226
|
|
VersionId:
|
|
name: version
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
Token:
|
|
name: token
|
|
in: path
|
|
required: true
|
|
schema: *ref_266
|
|
AccountId:
|
|
name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_58
|
|
ClientName:
|
|
name: client_name
|
|
in: path
|
|
required: true
|
|
schema: *ref_55
|
|
ScriptPath:
|
|
name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_74
|
|
ScriptHash:
|
|
name: hash
|
|
in: path
|
|
required: true
|
|
schema: *ref_81
|
|
JobId:
|
|
name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_144
|
|
Path:
|
|
name: path
|
|
in: path
|
|
required: true
|
|
schema: *ref_48
|
|
CustomPath:
|
|
name: custom_path
|
|
in: path
|
|
required: true
|
|
schema: *ref_111
|
|
PathId:
|
|
name: id
|
|
in: path
|
|
required: true
|
|
schema: *ref_61
|
|
PathVersion:
|
|
name: version
|
|
in: path
|
|
required: true
|
|
schema: *ref_267
|
|
Name:
|
|
name: name
|
|
in: path
|
|
required: true
|
|
schema: *ref_235
|
|
Page:
|
|
name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema: *ref_13
|
|
PerPage:
|
|
name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema: *ref_14
|
|
JobTriggerKind:
|
|
name: trigger_kind
|
|
description: trigger kind (schedule, http, websocket...)
|
|
in: query
|
|
schema: *ref_160
|
|
OrderDesc:
|
|
name: order_desc
|
|
description: order by desc order (default true)
|
|
in: query
|
|
schema: *ref_96
|
|
CreatedBy:
|
|
name: created_by
|
|
description: mask to filter exact matching user creator
|
|
in: query
|
|
schema: *ref_97
|
|
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_146
|
|
Worker:
|
|
name: worker
|
|
description: worker this job was ran on
|
|
in: query
|
|
schema: *ref_128
|
|
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_88
|
|
WorkerTag:
|
|
name: tag
|
|
description: Override the tag to use
|
|
in: query
|
|
schema: *ref_89
|
|
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_90
|
|
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_91
|
|
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_92
|
|
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_93
|
|
SkipPreprocessor:
|
|
name: skip_preprocessor
|
|
description: skip the preprocessor
|
|
in: query
|
|
schema: *ref_94
|
|
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_95
|
|
ScriptStartPath:
|
|
name: script_path_start
|
|
description: mask to filter matching starting path
|
|
in: query
|
|
schema: *ref_130
|
|
SchedulePath:
|
|
name: schedule_path
|
|
description: mask to filter by schedule path
|
|
in: query
|
|
schema: *ref_131
|
|
TriggerPath:
|
|
name: trigger_path
|
|
description: mask to filter by trigger path
|
|
in: query
|
|
schema: *ref_268
|
|
ScriptExactPath:
|
|
name: script_path_exact
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema: *ref_129
|
|
ScriptExactHash:
|
|
name: script_hash
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema: *ref_132
|
|
CreatedBefore:
|
|
name: created_before
|
|
description: filter on created before (inclusive) timestamp
|
|
in: query
|
|
schema: *ref_154
|
|
CreatedAfter:
|
|
name: created_after
|
|
description: filter on created after (exclusive) timestamp
|
|
in: query
|
|
schema: *ref_155
|
|
StartedBefore:
|
|
name: started_before
|
|
description: filter on started before (inclusive) timestamp
|
|
in: query
|
|
schema: *ref_133
|
|
StartedAfter:
|
|
name: started_after
|
|
description: filter on started after (exclusive) timestamp
|
|
in: query
|
|
schema: *ref_134
|
|
Before:
|
|
name: before
|
|
description: filter on started before (inclusive) timestamp
|
|
in: query
|
|
schema: *ref_260
|
|
CompletedBefore:
|
|
name: completed_before
|
|
description: filter on started before (inclusive) timestamp
|
|
in: query
|
|
schema: *ref_156
|
|
CompletedAfter:
|
|
name: completed_after
|
|
description: filter on started after (exclusive) timestamp
|
|
in: query
|
|
schema: *ref_157
|
|
CreatedAfterQueue:
|
|
name: created_after_queue
|
|
description: filter on jobs created after X for jobs in the queue only
|
|
in: query
|
|
schema: *ref_159
|
|
CreatedBeforeQueue:
|
|
name: created_before_queue
|
|
description: filter on jobs created before X for jobs in the queue only
|
|
in: query
|
|
schema: *ref_158
|
|
Success:
|
|
name: success
|
|
description: filter on successful jobs
|
|
in: query
|
|
schema: *ref_142
|
|
ScheduledForBeforeNow:
|
|
name: scheduled_for_before_now
|
|
description: filter on jobs scheduled_for before now (hence waitinf for a worker)
|
|
in: query
|
|
schema: *ref_136
|
|
Suspended:
|
|
name: suspended
|
|
description: filter on suspended jobs
|
|
in: query
|
|
schema: *ref_138
|
|
Running:
|
|
name: running
|
|
description: filter on running jobs
|
|
in: query
|
|
schema: *ref_135
|
|
AllowWildcards:
|
|
name: allow_wildcards
|
|
description: allow wildcards (*) in the filter of label, tag, worker
|
|
in: query
|
|
schema: *ref_143
|
|
ArgsFilter:
|
|
name: args
|
|
description: filter on jobs containing those args as a json subset (@> in postgres)
|
|
in: query
|
|
schema: *ref_139
|
|
Tag:
|
|
name: tag
|
|
description: filter on jobs with a given tag/worker group
|
|
in: query
|
|
schema: *ref_140
|
|
ResultFilter:
|
|
name: result
|
|
description: filter on jobs containing those result as a json subset (@> in postgres)
|
|
in: query
|
|
schema: *ref_141
|
|
After:
|
|
name: after
|
|
description: filter on created after (exclusive) timestamp
|
|
in: query
|
|
schema: *ref_261
|
|
Username:
|
|
name: username
|
|
description: filter on exact username of user
|
|
in: query
|
|
schema: *ref_269
|
|
Operation:
|
|
name: operation
|
|
description: filter on exact or prefix name of operation
|
|
in: query
|
|
schema: *ref_270
|
|
ResourceName:
|
|
name: resource
|
|
description: filter on exact or prefix name of resource
|
|
in: query
|
|
schema: *ref_271
|
|
ActionKind:
|
|
name: action_kind
|
|
description: filter on type of operation
|
|
in: query
|
|
schema: *ref_272
|
|
JobKinds:
|
|
name: job_kinds
|
|
description: >-
|
|
filter on job kind (values 'preview', 'script', 'dependencies', 'flow')
|
|
separated by,
|
|
in: query
|
|
schema: *ref_137
|
|
RunnableId:
|
|
name: runnable_id
|
|
in: query
|
|
schema: *ref_247
|
|
RunnableTypeQuery:
|
|
name: runnable_type
|
|
in: query
|
|
schema: *ref_248
|
|
InputId:
|
|
name: input
|
|
in: path
|
|
required: true
|
|
schema: *ref_273
|
|
GetStarted:
|
|
name: get_started
|
|
in: query
|
|
schema: *ref_274
|
|
ConcurrencyId:
|
|
name: concurrency_id
|
|
in: path
|
|
required: true
|
|
schema: *ref_275
|
|
RunnableKind:
|
|
name: runnable_kind
|
|
in: path
|
|
required: true
|
|
schema: *ref_110
|
|
schemas:
|
|
OpenFlow:
|
|
type: object
|
|
description: >-
|
|
Top-level flow definition containing metadata, configuration, and the
|
|
flow structure
|
|
properties: *ref_98
|
|
required: *ref_99
|
|
FlowValue:
|
|
type: object
|
|
description: >-
|
|
The flow structure containing modules and optional preprocessor/failure
|
|
handlers
|
|
properties: *ref_126
|
|
required: *ref_127
|
|
Retry:
|
|
type: object
|
|
description: Retry configuration for failed module executions
|
|
properties: *ref_169
|
|
StopAfterIf:
|
|
type: object
|
|
description: Early termination condition for a module
|
|
properties:
|
|
skip_if_stopped:
|
|
type: boolean
|
|
description: If true, following steps are skipped when this condition triggers
|
|
expr:
|
|
type: string
|
|
description: >-
|
|
JavaScript expression evaluated after the module runs. Can use
|
|
'result' (step's result) or 'flow_input'. Return true to stop
|
|
error_message:
|
|
type: string
|
|
description: Custom error message shown when stopping
|
|
required:
|
|
- expr
|
|
FlowModule:
|
|
type: object
|
|
description: A single step in a flow. Can be a script, subflow, loop, or branch
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: >-
|
|
Unique identifier for this step. Used to reference results via
|
|
'results.step_id'. Must be a valid identifier (alphanumeric,
|
|
underscore, hyphen)
|
|
value:
|
|
description: >-
|
|
The actual implementation of a flow step. Can be a script (inline or
|
|
referenced), subflow, loop, branch, or special module type
|
|
oneOf: *ref_70
|
|
discriminator: *ref_71
|
|
stop_after_if:
|
|
description: Early termination condition for a module
|
|
type: object
|
|
properties: *ref_72
|
|
required: *ref_73
|
|
stop_after_all_iters_if:
|
|
description: Early termination condition for a module
|
|
type: object
|
|
properties: *ref_72
|
|
required: *ref_73
|
|
skip_if:
|
|
type: object
|
|
description: >-
|
|
Conditionally skip this step based on previous results or flow
|
|
inputs
|
|
properties:
|
|
expr:
|
|
type: string
|
|
description: >-
|
|
JavaScript expression that returns true to skip. Can use
|
|
'flow_input' or 'results.<step_id>'
|
|
required:
|
|
- expr
|
|
sleep:
|
|
description: >-
|
|
Maps input parameters for a step. Can be a static value or a
|
|
JavaScript expression that references previous results or flow
|
|
inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
cache_ttl:
|
|
type: number
|
|
description: Cache duration in seconds for this step's results
|
|
cache_ignore_s3_path:
|
|
type: boolean
|
|
timeout:
|
|
description: >-
|
|
Maps input parameters for a step. Can be a static value or a
|
|
JavaScript expression that references previous results or flow
|
|
inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
delete_after_use:
|
|
type: boolean
|
|
description: If true, this step's result is deleted after use to save memory
|
|
summary:
|
|
type: string
|
|
description: Short description of what this step does
|
|
mock:
|
|
type: object
|
|
description: Mock configuration for testing without executing the actual step
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
description: If true, return mock value instead of executing
|
|
return_value:
|
|
description: Value to return when mocked
|
|
suspend:
|
|
type: object
|
|
description: Configuration for approval/resume steps that wait for user input
|
|
properties:
|
|
required_events:
|
|
type: integer
|
|
description: Number of approvals required before continuing
|
|
timeout:
|
|
type: integer
|
|
description: Timeout in seconds before auto-continuing or canceling
|
|
resume_form:
|
|
type: object
|
|
description: Form schema for collecting input when resuming
|
|
properties:
|
|
schema:
|
|
type: object
|
|
description: JSON Schema for the resume form
|
|
user_auth_required:
|
|
type: boolean
|
|
description: If true, only authenticated users can approve
|
|
user_groups_required:
|
|
description: >-
|
|
Maps input parameters for a step. Can be a static value or a
|
|
JavaScript expression that references previous results or flow
|
|
inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
self_approval_disabled:
|
|
type: boolean
|
|
description: If true, the user who started the flow cannot approve
|
|
hide_cancel:
|
|
type: boolean
|
|
description: If true, hide the cancel button on the approval form
|
|
continue_on_disapprove_timeout:
|
|
type: boolean
|
|
description: If true, continue flow on timeout instead of canceling
|
|
priority:
|
|
type: number
|
|
description: Execution priority for this step (higher numbers run first)
|
|
continue_on_error:
|
|
type: boolean
|
|
description: If true, flow continues even if this step fails
|
|
retry:
|
|
description: Retry configuration for failed module executions
|
|
type: object
|
|
properties: *ref_276
|
|
required:
|
|
- value
|
|
- id
|
|
InputTransform:
|
|
description: >-
|
|
Maps input parameters for a step. Can be a static value or a JavaScript
|
|
expression that references previous results or flow inputs
|
|
oneOf: *ref_116
|
|
discriminator: *ref_117
|
|
StaticTransform:
|
|
type: object
|
|
description: >-
|
|
Static value passed directly to the step. Use for hardcoded values or
|
|
resource references like '$res:path/to/resource'
|
|
properties:
|
|
value:
|
|
description: The static value. For resources, use format '$res:path/to/resource'
|
|
type:
|
|
type: string
|
|
enum:
|
|
- static
|
|
required:
|
|
- type
|
|
JavascriptTransform:
|
|
type: object
|
|
description: >-
|
|
JavaScript expression evaluated at runtime. Can reference previous step
|
|
results via 'results.step_id' or flow inputs via 'flow_input.property'.
|
|
Inside loops, use 'flow_input.iter.value' for the current iteration
|
|
value
|
|
properties:
|
|
expr:
|
|
type: string
|
|
description: >-
|
|
JavaScript expression returning the value. Available variables -
|
|
results (object with all previous step results), flow_input (flow
|
|
inputs), flow_input.iter (in loops)
|
|
type:
|
|
type: string
|
|
enum:
|
|
- javascript
|
|
required:
|
|
- expr
|
|
- type
|
|
AiTransform:
|
|
type: object
|
|
description: >-
|
|
Value resolved by the AI runtime for this input. The AI engine decides
|
|
how to satisfy the parameter.
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- ai
|
|
required:
|
|
- type
|
|
ProviderConfig:
|
|
type: object
|
|
description: >-
|
|
Complete AI provider configuration with resource reference and model
|
|
selection
|
|
properties:
|
|
kind:
|
|
type: string
|
|
description: Supported AI provider types
|
|
enum: *ref_277
|
|
resource:
|
|
type: string
|
|
description: >-
|
|
Resource reference in format '$res:{resource_path}' pointing to
|
|
provider credentials
|
|
model:
|
|
type: string
|
|
description: >-
|
|
Model identifier (e.g., 'gpt-4', 'claude-3-opus-20240229',
|
|
'gemini-pro')
|
|
required:
|
|
- kind
|
|
- resource
|
|
- model
|
|
MemoryConfig:
|
|
description: Conversation memory configuration
|
|
oneOf:
|
|
- type: object
|
|
description: No conversation memory/context
|
|
properties: *ref_278
|
|
required: *ref_279
|
|
- type: object
|
|
description: Automatic context management
|
|
properties: *ref_280
|
|
required: *ref_281
|
|
- type: object
|
|
description: Explicit message history
|
|
properties: *ref_282
|
|
required: *ref_283
|
|
discriminator:
|
|
propertyName: kind
|
|
mapping:
|
|
'off': '#/components/schemas/MemoryOff'
|
|
auto: '#/components/schemas/MemoryAuto'
|
|
manual: '#/components/schemas/MemoryManual'
|
|
FlowModuleValue:
|
|
description: >-
|
|
The actual implementation of a flow step. Can be a script (inline or
|
|
referenced), subflow, loop, branch, or special module type
|
|
oneOf:
|
|
- type: object
|
|
description: >-
|
|
Inline script with code defined directly in the flow. Use 'bun' as
|
|
default language if unspecified. The script receives arguments from
|
|
input_transforms
|
|
properties: *ref_284
|
|
required: *ref_285
|
|
- type: object
|
|
description: >-
|
|
Reference to an existing script by path. Use this when calling a
|
|
previously saved script instead of writing inline code
|
|
properties: *ref_286
|
|
required: *ref_287
|
|
- type: object
|
|
description: >-
|
|
Reference to an existing flow by path. Use this to call another flow
|
|
as a subflow
|
|
properties: *ref_288
|
|
required: *ref_289
|
|
- type: object
|
|
description: >-
|
|
Executes nested modules in a loop over an iterator. Inside the loop,
|
|
use 'flow_input.iter.value' to access the current iteration value,
|
|
and 'flow_input.iter.index' for the index. Supports parallel
|
|
execution for better performance on I/O-bound operations
|
|
properties: *ref_290
|
|
required: *ref_291
|
|
- type: object
|
|
description: >-
|
|
Executes nested modules repeatedly while a condition is true. The
|
|
loop checks the condition after each iteration. Use stop_after_if on
|
|
modules to control loop termination
|
|
properties: *ref_292
|
|
required: *ref_293
|
|
- type: object
|
|
description: >-
|
|
Conditional branching where only the first matching branch executes.
|
|
Branches are evaluated in order, and the first one with a true
|
|
expression runs. If no branches match, the default branch executes
|
|
properties: *ref_294
|
|
required: *ref_295
|
|
- type: object
|
|
description: >-
|
|
Parallel branching where all branches execute simultaneously. Unlike
|
|
BranchOne, all branches run regardless of conditions. Useful for
|
|
executing independent tasks concurrently
|
|
properties: *ref_296
|
|
required: *ref_297
|
|
- type: object
|
|
description: >-
|
|
Pass-through module that returns its input unchanged. Useful for
|
|
flow structure or as a placeholder
|
|
properties: *ref_298
|
|
required: *ref_299
|
|
- type: object
|
|
description: >-
|
|
AI agent step that can use tools to accomplish tasks. The agent
|
|
receives inputs and can call any of its configured tools to complete
|
|
the task
|
|
properties: *ref_300
|
|
required: *ref_301
|
|
discriminator:
|
|
propertyName: type
|
|
mapping:
|
|
rawscript: '#/components/schemas/schemas-RawScript'
|
|
script: '#/components/schemas/schemas-PathScript'
|
|
flow: '#/components/schemas/schemas-PathFlow'
|
|
forloopflow: '#/components/schemas/schemas-ForloopFlow'
|
|
whileloopflow: '#/components/schemas/schemas-WhileloopFlow'
|
|
branchone: '#/components/schemas/schemas-BranchOne'
|
|
branchall: '#/components/schemas/schemas-BranchAll'
|
|
identity: '#/components/schemas/schemas-Identity'
|
|
aiagent: '#/components/schemas/schemas-AiAgent'
|
|
RawScript:
|
|
type: object
|
|
description: >-
|
|
Inline script with code defined directly in the flow. Use 'bun' as
|
|
default language if unspecified. The script receives arguments from
|
|
input_transforms
|
|
properties:
|
|
input_transforms:
|
|
type: object
|
|
description: >-
|
|
Map of parameter names to their values (static or JavaScript
|
|
expressions). These become the script's input arguments
|
|
additionalProperties:
|
|
description: >-
|
|
Maps input parameters for a step. Can be a static value or a
|
|
JavaScript expression that references previous results or flow
|
|
inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
content:
|
|
type: string
|
|
description: The script source code. Should export a 'main' function
|
|
language:
|
|
type: string
|
|
description: Programming language for this script
|
|
enum:
|
|
- deno
|
|
- bun
|
|
- python3
|
|
- go
|
|
- bash
|
|
- powershell
|
|
- postgresql
|
|
- mysql
|
|
- bigquery
|
|
- snowflake
|
|
- mssql
|
|
- oracledb
|
|
- graphql
|
|
- nativets
|
|
- php
|
|
- rust
|
|
- ansible
|
|
- csharp
|
|
- nu
|
|
- java
|
|
- ruby
|
|
- duckdb
|
|
path:
|
|
type: string
|
|
description: Optional path for saving this script
|
|
lock:
|
|
type: string
|
|
description: Lock file content for dependencies
|
|
type:
|
|
type: string
|
|
enum:
|
|
- rawscript
|
|
tag:
|
|
type: string
|
|
description: Worker group tag for execution routing
|
|
concurrent_limit:
|
|
type: number
|
|
description: Maximum concurrent executions of this script
|
|
concurrency_time_window_s:
|
|
type: number
|
|
description: Time window for concurrent_limit
|
|
custom_concurrency_key:
|
|
type: string
|
|
description: Custom key for grouping concurrent executions
|
|
is_trigger:
|
|
type: boolean
|
|
description: If true, this script is a trigger that can start the flow
|
|
assets:
|
|
type: array
|
|
description: >-
|
|
External resources this script accesses (S3 objects, resources,
|
|
etc.)
|
|
items:
|
|
type: object
|
|
required:
|
|
- path
|
|
- kind
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: Path to the asset
|
|
kind:
|
|
type: string
|
|
description: Type of asset
|
|
enum:
|
|
- s3object
|
|
- resource
|
|
- ducklake
|
|
- datatable
|
|
access_type:
|
|
type: string
|
|
nullable: true
|
|
description: Access level for this asset
|
|
enum:
|
|
- r
|
|
- w
|
|
- rw
|
|
alt_access_type:
|
|
type: string
|
|
nullable: true
|
|
description: Alternative access level
|
|
enum:
|
|
- r
|
|
- w
|
|
- rw
|
|
required:
|
|
- type
|
|
- content
|
|
- language
|
|
- input_transforms
|
|
PathScript:
|
|
type: object
|
|
description: >-
|
|
Reference to an existing script by path. Use this when calling a
|
|
previously saved script instead of writing inline code
|
|
properties:
|
|
input_transforms:
|
|
type: object
|
|
description: >-
|
|
Map of parameter names to their values (static or JavaScript
|
|
expressions). These become the script's input arguments
|
|
additionalProperties:
|
|
description: >-
|
|
Maps input parameters for a step. Can be a static value or a
|
|
JavaScript expression that references previous results or flow
|
|
inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
path:
|
|
type: string
|
|
description: Path to the script in the workspace (e.g., 'f/scripts/send_email')
|
|
hash:
|
|
type: string
|
|
description: Optional specific version hash of the script to use
|
|
type:
|
|
type: string
|
|
enum:
|
|
- script
|
|
tag_override:
|
|
type: string
|
|
description: Override the script's default worker group tag
|
|
is_trigger:
|
|
type: boolean
|
|
description: If true, this script is a trigger that can start the flow
|
|
required:
|
|
- type
|
|
- path
|
|
- input_transforms
|
|
PathFlow:
|
|
type: object
|
|
description: >-
|
|
Reference to an existing flow by path. Use this to call another flow as
|
|
a subflow
|
|
properties:
|
|
input_transforms:
|
|
type: object
|
|
description: >-
|
|
Map of parameter names to their values (static or JavaScript
|
|
expressions). These become the subflow's input arguments
|
|
additionalProperties:
|
|
description: >-
|
|
Maps input parameters for a step. Can be a static value or a
|
|
JavaScript expression that references previous results or flow
|
|
inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
path:
|
|
type: string
|
|
description: Path to the flow in the workspace (e.g., 'f/flows/process_user')
|
|
type:
|
|
type: string
|
|
enum:
|
|
- flow
|
|
required:
|
|
- type
|
|
- path
|
|
- input_transforms
|
|
ForloopFlow:
|
|
type: object
|
|
description: >-
|
|
Executes nested modules in a loop over an iterator. Inside the loop, use
|
|
'flow_input.iter.value' to access the current iteration value, and
|
|
'flow_input.iter.index' for the index. Supports parallel execution for
|
|
better performance on I/O-bound operations
|
|
properties:
|
|
modules:
|
|
type: array
|
|
description: >-
|
|
Steps to execute for each iteration. These can reference the
|
|
iteration value via 'flow_input.iter.value'
|
|
items:
|
|
type: object
|
|
description: A single step in a flow. Can be a script, subflow, loop, or branch
|
|
properties: *ref_64
|
|
required: *ref_65
|
|
iterator:
|
|
description: >-
|
|
Maps input parameters for a step. Can be a static value or a
|
|
JavaScript expression that references previous results or flow
|
|
inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
skip_failures:
|
|
type: boolean
|
|
description: >-
|
|
If true, iteration failures don't stop the loop. Failed iterations
|
|
return null
|
|
type:
|
|
type: string
|
|
enum:
|
|
- forloopflow
|
|
parallel:
|
|
type: boolean
|
|
description: >-
|
|
If true, iterations run concurrently (faster for I/O-bound
|
|
operations). Use with parallelism to control concurrency
|
|
parallelism:
|
|
description: >-
|
|
Maps input parameters for a step. Can be a static value or a
|
|
JavaScript expression that references previous results or flow
|
|
inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
squash:
|
|
type: boolean
|
|
required:
|
|
- modules
|
|
- iterator
|
|
- skip_failures
|
|
- type
|
|
WhileloopFlow:
|
|
type: object
|
|
description: >-
|
|
Executes nested modules repeatedly while a condition is true. The loop
|
|
checks the condition after each iteration. Use stop_after_if on modules
|
|
to control loop termination
|
|
properties:
|
|
modules:
|
|
type: array
|
|
description: >-
|
|
Steps to execute in each iteration. Use stop_after_if to control
|
|
when the loop ends
|
|
items:
|
|
type: object
|
|
description: A single step in a flow. Can be a script, subflow, loop, or branch
|
|
properties: *ref_64
|
|
required: *ref_65
|
|
skip_failures:
|
|
type: boolean
|
|
description: >-
|
|
If true, iteration failures don't stop the loop. Failed iterations
|
|
return null
|
|
type:
|
|
type: string
|
|
enum:
|
|
- whileloopflow
|
|
parallel:
|
|
type: boolean
|
|
description: >-
|
|
If true, iterations run concurrently (use with caution in while
|
|
loops)
|
|
parallelism:
|
|
description: >-
|
|
Maps input parameters for a step. Can be a static value or a
|
|
JavaScript expression that references previous results or flow
|
|
inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
squash:
|
|
type: boolean
|
|
required:
|
|
- modules
|
|
- skip_failures
|
|
- type
|
|
BranchOne:
|
|
type: object
|
|
description: >-
|
|
Conditional branching where only the first matching branch executes.
|
|
Branches are evaluated in order, and the first one with a true
|
|
expression runs. If no branches match, the default branch executes
|
|
properties:
|
|
branches:
|
|
type: array
|
|
description: >-
|
|
Array of branches to evaluate in order. The first branch with expr
|
|
evaluating to true executes
|
|
items:
|
|
type: object
|
|
properties:
|
|
summary:
|
|
type: string
|
|
description: Short description of this branch condition
|
|
expr:
|
|
type: string
|
|
description: >-
|
|
JavaScript expression that returns boolean. Can use
|
|
'results.step_id' or 'flow_input'. First true expr wins
|
|
modules:
|
|
type: array
|
|
description: Steps to execute if this branch's expr is true
|
|
items:
|
|
type: object
|
|
description: >-
|
|
A single step in a flow. Can be a script, subflow, loop, or
|
|
branch
|
|
properties: *ref_64
|
|
required: *ref_65
|
|
required:
|
|
- modules
|
|
- expr
|
|
default:
|
|
type: array
|
|
description: Steps to execute if no branch expressions match
|
|
items:
|
|
type: object
|
|
description: A single step in a flow. Can be a script, subflow, loop, or branch
|
|
properties: *ref_64
|
|
required: *ref_65
|
|
type:
|
|
type: string
|
|
enum:
|
|
- branchone
|
|
required:
|
|
- branches
|
|
- default
|
|
- type
|
|
BranchAll:
|
|
type: object
|
|
description: >-
|
|
Parallel branching where all branches execute simultaneously. Unlike
|
|
BranchOne, all branches run regardless of conditions. Useful for
|
|
executing independent tasks concurrently
|
|
properties:
|
|
branches:
|
|
type: array
|
|
description: >-
|
|
Array of branches that all execute (either in parallel or
|
|
sequentially)
|
|
items:
|
|
type: object
|
|
properties:
|
|
summary:
|
|
type: string
|
|
description: Short description of this branch's purpose
|
|
skip_failure:
|
|
type: boolean
|
|
description: If true, failure in this branch doesn't fail the entire flow
|
|
modules:
|
|
type: array
|
|
description: Steps to execute in this branch
|
|
items:
|
|
type: object
|
|
description: >-
|
|
A single step in a flow. Can be a script, subflow, loop, or
|
|
branch
|
|
properties: *ref_64
|
|
required: *ref_65
|
|
required:
|
|
- modules
|
|
type:
|
|
type: string
|
|
enum:
|
|
- branchall
|
|
parallel:
|
|
type: boolean
|
|
description: >-
|
|
If true, all branches execute concurrently. If false, they execute
|
|
sequentially
|
|
required:
|
|
- branches
|
|
- type
|
|
AiAgent:
|
|
type: object
|
|
description: >-
|
|
AI agent step that can use tools to accomplish tasks. The agent receives
|
|
inputs and can call any of its configured tools to complete the task
|
|
properties:
|
|
input_transforms:
|
|
type: object
|
|
description: Input parameters for the AI agent mapped to their values
|
|
properties:
|
|
provider:
|
|
description: >-
|
|
Provider configuration - can be static (ProviderConfig),
|
|
JavaScript expression, or AI-determined
|
|
oneOf: *ref_302
|
|
discriminator: *ref_303
|
|
output_type:
|
|
allOf:
|
|
- description: >-
|
|
Maps input parameters for a step. Can be a static value or a
|
|
JavaScript expression that references previous results or
|
|
flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
description: >
|
|
Output format type.
|
|
|
|
Valid values: 'text' (default) - plain text response, 'image' -
|
|
image generation
|
|
user_message:
|
|
allOf:
|
|
- description: >-
|
|
Maps input parameters for a step. Can be a static value or a
|
|
JavaScript expression that references previous results or
|
|
flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
description: >-
|
|
The user's prompt/message to the AI agent. Supports variable
|
|
interpolation with flow.input syntax.
|
|
system_prompt:
|
|
allOf:
|
|
- description: >-
|
|
Maps input parameters for a step. Can be a static value or a
|
|
JavaScript expression that references previous results or
|
|
flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
description: >-
|
|
System instructions that guide the AI's behavior, persona, and
|
|
response style. Optional.
|
|
streaming:
|
|
allOf:
|
|
- description: >-
|
|
Maps input parameters for a step. Can be a static value or a
|
|
JavaScript expression that references previous results or
|
|
flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
description: >
|
|
Boolean. If true, stream the AI response incrementally.
|
|
|
|
Streaming events include: token_delta, tool_call,
|
|
tool_call_arguments, tool_execution, tool_result
|
|
memory:
|
|
description: >-
|
|
Memory configuration - can be static (MemoryConfig), JavaScript
|
|
expression, or AI-determined
|
|
oneOf: *ref_304
|
|
discriminator: *ref_305
|
|
output_schema:
|
|
allOf:
|
|
- description: >-
|
|
Maps input parameters for a step. Can be a static value or a
|
|
JavaScript expression that references previous results or
|
|
flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
description: >
|
|
JSON Schema object defining structured output format. Used when
|
|
you need the AI to return data in a specific shape.
|
|
|
|
Supports standard JSON Schema properties: type, properties,
|
|
required, items, enum, pattern, minLength, maxLength, minimum,
|
|
maximum, etc.
|
|
|
|
Example: { type: 'object', properties: { name: { type: 'string'
|
|
}, age: { type: 'integer' } }, required: ['name'] }
|
|
user_images:
|
|
allOf:
|
|
- description: >-
|
|
Maps input parameters for a step. Can be a static value or a
|
|
JavaScript expression that references previous results or
|
|
flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
description: >
|
|
Array of image references for vision-capable models.
|
|
|
|
Format: Array<{ bucket: string, key: string }> - S3 object
|
|
references
|
|
|
|
Example: [{ bucket: 'my-bucket', key: 'images/photo.jpg' }]
|
|
max_completion_tokens:
|
|
allOf:
|
|
- description: >-
|
|
Maps input parameters for a step. Can be a static value or a
|
|
JavaScript expression that references previous results or
|
|
flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
description: >
|
|
Integer. Maximum number of tokens the AI will generate in its
|
|
response.
|
|
|
|
Range: 1 to 4,294,967,295. Typical values: 256-4096 for most use
|
|
cases.
|
|
temperature:
|
|
allOf:
|
|
- description: >-
|
|
Maps input parameters for a step. Can be a static value or a
|
|
JavaScript expression that references previous results or
|
|
flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
description: |
|
|
Float. Controls randomness/creativity of responses.
|
|
Range: 0.0 to 2.0 (provider-dependent)
|
|
- 0.0 = deterministic, focused responses
|
|
- 0.7 = balanced (common default)
|
|
- 1.0+ = more creative/random
|
|
required:
|
|
- provider
|
|
- user_message
|
|
- output_type
|
|
tools:
|
|
type: array
|
|
description: >-
|
|
Array of tools the agent can use. The agent decides which tools to
|
|
call based on the task
|
|
items:
|
|
type: object
|
|
description: >-
|
|
A tool available to an AI agent. Can be a flow module or an
|
|
external MCP (Model Context Protocol) tool
|
|
properties: *ref_306
|
|
required: *ref_307
|
|
type:
|
|
type: string
|
|
enum:
|
|
- aiagent
|
|
parallel:
|
|
type: boolean
|
|
description: If true, the agent can execute multiple tool calls in parallel
|
|
required:
|
|
- tools
|
|
- type
|
|
- input_transforms
|
|
Identity:
|
|
type: object
|
|
description: >-
|
|
Pass-through module that returns its input unchanged. Useful for flow
|
|
structure or as a placeholder
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- identity
|
|
flow:
|
|
type: boolean
|
|
description: If true, marks this as a flow identity (special handling)
|
|
required:
|
|
- type
|
|
FlowStatus:
|
|
type: object
|
|
properties: *ref_147
|
|
required: *ref_148
|
|
FlowStatusModule:
|
|
type: object
|
|
properties:
|
|
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: {}
|
|
itered_len:
|
|
type: integer
|
|
args: {}
|
|
flow_jobs:
|
|
type: array
|
|
items:
|
|
type: string
|
|
flow_jobs_success:
|
|
type: array
|
|
items:
|
|
type: boolean
|
|
flow_jobs_duration:
|
|
type: object
|
|
properties:
|
|
started_at:
|
|
type: array
|
|
items:
|
|
type: string
|
|
duration_ms:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
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
|
|
agent_actions:
|
|
type: array
|
|
items:
|
|
type: object
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
job_id:
|
|
type: string
|
|
format: uuid
|
|
function_name:
|
|
type: string
|
|
type:
|
|
type: string
|
|
enum:
|
|
- tool_call
|
|
module_id:
|
|
type: string
|
|
required:
|
|
- job_id
|
|
- function_name
|
|
- type
|
|
- module_id
|
|
- type: object
|
|
properties:
|
|
call_id:
|
|
type: string
|
|
format: uuid
|
|
function_name:
|
|
type: string
|
|
resource_path:
|
|
type: string
|
|
type:
|
|
type: string
|
|
enum:
|
|
- mcp_tool_call
|
|
arguments:
|
|
type: object
|
|
required:
|
|
- call_id
|
|
- function_name
|
|
- resource_path
|
|
- type
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- web_search
|
|
required:
|
|
- type
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- message
|
|
required:
|
|
- content
|
|
- type
|
|
agent_actions_success:
|
|
type: array
|
|
items:
|
|
type: boolean
|
|
required:
|
|
- type
|
|
FlowNote:
|
|
type: object
|
|
description: A sticky note attached to a flow for documentation and annotation
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: Unique identifier for the note
|
|
text:
|
|
type: string
|
|
description: Content of the note
|
|
position:
|
|
type: object
|
|
description: Position of the note in the flow editor
|
|
properties:
|
|
x:
|
|
type: number
|
|
description: X coordinate
|
|
'y':
|
|
type: number
|
|
description: Y coordinate
|
|
required:
|
|
- x
|
|
- 'y'
|
|
size:
|
|
type: object
|
|
description: Size of the note in the flow editor
|
|
properties:
|
|
width:
|
|
type: number
|
|
description: Width in pixels
|
|
height:
|
|
type: number
|
|
description: Height in pixels
|
|
required:
|
|
- width
|
|
- height
|
|
color:
|
|
type: string
|
|
description: Color of the note (e.g., "yellow", "#ffff00")
|
|
type:
|
|
type: string
|
|
enum:
|
|
- free
|
|
- group
|
|
description: >-
|
|
Type of note - 'free' for standalone notes, 'group' for notes that
|
|
group other nodes
|
|
locked:
|
|
type: boolean
|
|
default: false
|
|
description: Whether the note is locked and cannot be edited or moved
|
|
contained_node_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: For group notes, the IDs of nodes contained within this group
|
|
required:
|
|
- id
|
|
- text
|
|
- color
|
|
- type
|
|
HealthStatusResponse:
|
|
type: object
|
|
description: Health status response (cached with 5s TTL)
|
|
required: *ref_0
|
|
properties: *ref_1
|
|
DetailedHealthResponse:
|
|
type: object
|
|
description: Detailed health status response (always fresh, no caching)
|
|
required: *ref_2
|
|
properties: *ref_3
|
|
HealthChecks:
|
|
type: object
|
|
description: Detailed health checks
|
|
required: *ref_308
|
|
properties: *ref_309
|
|
DatabaseHealth:
|
|
type: object
|
|
description: Database health status
|
|
required: *ref_310
|
|
properties: *ref_311
|
|
PoolStats:
|
|
type: object
|
|
description: Database connection pool statistics
|
|
required: *ref_312
|
|
properties: *ref_313
|
|
WorkersHealth:
|
|
type: object
|
|
description: Workers health status
|
|
required: *ref_314
|
|
properties: *ref_315
|
|
QueueHealth:
|
|
type: object
|
|
description: Job queue status
|
|
required: *ref_316
|
|
properties: *ref_317
|
|
ReadinessHealth:
|
|
type: object
|
|
description: Server readiness status
|
|
required: *ref_318
|
|
properties: *ref_319
|
|
AutoInviteConfig:
|
|
type: object
|
|
description: Configuration for auto-inviting users to the workspace
|
|
properties: *ref_320
|
|
ErrorHandlerConfig:
|
|
type: object
|
|
description: Configuration for the workspace error handler
|
|
properties: *ref_321
|
|
SuccessHandlerConfig:
|
|
type: object
|
|
description: Configuration for the workspace success handler
|
|
properties: *ref_322
|
|
EditErrorHandler:
|
|
description: >-
|
|
Request body for editing the workspace error handler. Accepts both new
|
|
grouped format and legacy flat format for backward compatibility.
|
|
oneOf: *ref_323
|
|
EditErrorHandlerNew:
|
|
type: object
|
|
description: New grouped format for editing error handler
|
|
properties: *ref_324
|
|
EditErrorHandlerLegacy:
|
|
type: object
|
|
description: >-
|
|
Legacy flat format for editing error handler (deprecated, use new
|
|
format)
|
|
properties: *ref_325
|
|
EditSuccessHandler:
|
|
description: >-
|
|
Request body for editing the workspace success handler. Accepts both new
|
|
grouped format and legacy flat format for backward compatibility.
|
|
oneOf: *ref_326
|
|
EditSuccessHandlerNew:
|
|
type: object
|
|
description: New grouped format for editing success handler
|
|
properties: *ref_327
|
|
EditSuccessHandlerLegacy:
|
|
type: object
|
|
description: >-
|
|
Legacy flat format for editing success handler (deprecated, use new
|
|
format)
|
|
properties: *ref_328
|
|
VaultSettings:
|
|
type: object
|
|
required: *ref_22
|
|
properties: *ref_23
|
|
SecretMigrationFailure:
|
|
type: object
|
|
required: *ref_329
|
|
properties: *ref_330
|
|
SecretMigrationReport:
|
|
type: object
|
|
required: *ref_24
|
|
properties: *ref_25
|
|
JwksResponse:
|
|
type: object
|
|
required: *ref_331
|
|
properties: *ref_332
|
|
FlowConversation:
|
|
type: object
|
|
required: *ref_333
|
|
properties: *ref_334
|
|
FlowConversationMessage:
|
|
type: object
|
|
required: *ref_335
|
|
properties: *ref_336
|
|
EndpointTool:
|
|
type: object
|
|
required: *ref_337
|
|
properties: *ref_338
|
|
AIProvider:
|
|
type: string
|
|
enum: *ref_339
|
|
GitSyncObjectType:
|
|
type: string
|
|
enum: *ref_36
|
|
AIProviderModel:
|
|
type: object
|
|
properties: *ref_34
|
|
required: *ref_35
|
|
AIProviderConfig:
|
|
type: object
|
|
properties: *ref_340
|
|
required: *ref_341
|
|
AIConfig:
|
|
type: object
|
|
properties: *ref_37
|
|
Alert:
|
|
type: object
|
|
properties: *ref_342
|
|
required: *ref_343
|
|
Configs:
|
|
type: object
|
|
nullable: true
|
|
properties: *ref_344
|
|
WorkspaceDependencies:
|
|
type: object
|
|
properties: *ref_77
|
|
required: *ref_78
|
|
NewWorkspaceDependencies:
|
|
type: object
|
|
properties: *ref_345
|
|
required: *ref_346
|
|
Script:
|
|
type: object
|
|
properties: *ref_79
|
|
required: *ref_80
|
|
NewScript:
|
|
type: object
|
|
properties: *ref_84
|
|
required: *ref_85
|
|
NewScriptWithDraft:
|
|
allOf: *ref_347
|
|
ScriptHistory:
|
|
type: object
|
|
properties: *ref_86
|
|
required: *ref_87
|
|
ScriptArgs:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
Input:
|
|
type: object
|
|
properties: *ref_249
|
|
required: *ref_250
|
|
CreateInput:
|
|
type: object
|
|
properties: *ref_348
|
|
required: *ref_349
|
|
UpdateInput:
|
|
type: object
|
|
properties: *ref_350
|
|
required: *ref_351
|
|
RunnableType:
|
|
type: string
|
|
enum: *ref_352
|
|
QueuedJob:
|
|
type: object
|
|
properties: *ref_163
|
|
required: *ref_164
|
|
CompletedJob:
|
|
type: object
|
|
properties: *ref_161
|
|
required: *ref_162
|
|
ExportableCompletedJob:
|
|
type: object
|
|
description: Completed job with full data for export/import operations
|
|
properties: *ref_150
|
|
required: *ref_151
|
|
ExportableQueuedJob:
|
|
type: object
|
|
description: Queued job with full data for export/import operations
|
|
properties: *ref_152
|
|
required: *ref_153
|
|
ObscuredJob:
|
|
type: object
|
|
properties: *ref_353
|
|
Job:
|
|
oneOf: *ref_165
|
|
discriminator: *ref_166
|
|
User:
|
|
type: object
|
|
properties: *ref_26
|
|
required: *ref_27
|
|
UserSource:
|
|
type: object
|
|
properties: *ref_354
|
|
required: *ref_355
|
|
UserUsage:
|
|
type: object
|
|
properties: *ref_356
|
|
Login:
|
|
type: object
|
|
properties: *ref_357
|
|
required: *ref_358
|
|
PasswordResetResponse:
|
|
type: object
|
|
properties: *ref_7
|
|
required: *ref_8
|
|
EditWorkspaceUser:
|
|
type: object
|
|
properties: *ref_359
|
|
TruncatedToken:
|
|
type: object
|
|
properties: *ref_82
|
|
required: *ref_83
|
|
NewToken:
|
|
type: object
|
|
properties: *ref_360
|
|
NewTokenImpersonate:
|
|
type: object
|
|
properties: *ref_361
|
|
required: *ref_362
|
|
ListableVariable:
|
|
type: object
|
|
properties: *ref_49
|
|
required: *ref_50
|
|
ContextualVariable:
|
|
type: object
|
|
properties: *ref_363
|
|
required: *ref_364
|
|
CreateVariable:
|
|
type: object
|
|
properties: *ref_365
|
|
required: *ref_366
|
|
EditVariable:
|
|
type: object
|
|
properties: *ref_367
|
|
AuditLog:
|
|
type: object
|
|
properties: *ref_5
|
|
required: *ref_6
|
|
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: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
props:
|
|
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
|
|
ScriptLang:
|
|
type: string
|
|
enum: *ref_76
|
|
Preview:
|
|
type: object
|
|
properties: *ref_118
|
|
required: *ref_119
|
|
PreviewInline:
|
|
type: object
|
|
properties: *ref_368
|
|
required: *ref_369
|
|
WorkflowTask:
|
|
type: object
|
|
properties: *ref_370
|
|
required: *ref_371
|
|
WorkflowStatusRecord:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
properties: *ref_149
|
|
WorkflowStatus:
|
|
type: object
|
|
properties: *ref_149
|
|
CreateResource:
|
|
type: object
|
|
properties: *ref_372
|
|
required: *ref_373
|
|
EditResource:
|
|
type: object
|
|
properties: *ref_374
|
|
Resource:
|
|
type: object
|
|
properties: *ref_375
|
|
required: *ref_376
|
|
ListableResource:
|
|
type: object
|
|
properties: *ref_377
|
|
required: *ref_378
|
|
ResourceType:
|
|
type: object
|
|
properties: *ref_59
|
|
required: *ref_60
|
|
EditResourceType:
|
|
type: object
|
|
properties: *ref_379
|
|
Schedule:
|
|
type: object
|
|
properties: *ref_170
|
|
required: *ref_171
|
|
ScheduleWJobs:
|
|
allOf: *ref_380
|
|
ErrorHandler:
|
|
type: string
|
|
enum:
|
|
- custom
|
|
- slack
|
|
- teams
|
|
- email
|
|
NewSchedule:
|
|
type: object
|
|
properties: *ref_381
|
|
required: *ref_382
|
|
EditSchedule:
|
|
type: object
|
|
properties: *ref_383
|
|
required: *ref_384
|
|
JobTriggerKind:
|
|
description: job trigger kind (schedule, http, websocket...)
|
|
type: string
|
|
enum: *ref_145
|
|
TriggerMode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum: *ref_179
|
|
TriggerExtraProperty:
|
|
type: object
|
|
properties: *ref_184
|
|
required: *ref_185
|
|
AuthenticationMethod:
|
|
type: string
|
|
enum: *ref_178
|
|
RunnableKind:
|
|
type: string
|
|
enum: *ref_172
|
|
OpenapiSpecFormat:
|
|
type: string
|
|
enum: *ref_385
|
|
OpenapiHttpRouteFilters:
|
|
type: object
|
|
properties: *ref_386
|
|
required: *ref_387
|
|
WebhookFilters:
|
|
type: object
|
|
properties: *ref_388
|
|
required: *ref_389
|
|
OpenapiV3Info:
|
|
type: object
|
|
properties: *ref_390
|
|
required: *ref_391
|
|
GenerateOpenapiSpec:
|
|
type: object
|
|
properties: *ref_173
|
|
HttpMethod:
|
|
type: string
|
|
enum: *ref_176
|
|
HttpRequestType:
|
|
type: string
|
|
enum: *ref_177
|
|
HttpTrigger:
|
|
allOf: *ref_180
|
|
type: object
|
|
properties: *ref_181
|
|
required: *ref_182
|
|
NewHttpTrigger:
|
|
type: object
|
|
properties: *ref_174
|
|
required: *ref_175
|
|
EditHttpTrigger:
|
|
type: object
|
|
properties: *ref_392
|
|
required: *ref_393
|
|
TriggersCount:
|
|
type: object
|
|
properties: *ref_103
|
|
WebsocketTrigger:
|
|
allOf: *ref_186
|
|
type: object
|
|
properties: *ref_187
|
|
required: *ref_188
|
|
NewWebsocketTrigger:
|
|
type: object
|
|
properties: *ref_394
|
|
required: *ref_395
|
|
EditWebsocketTrigger:
|
|
type: object
|
|
properties: *ref_396
|
|
required: *ref_397
|
|
WebsocketTriggerInitialMessage:
|
|
anyOf: *ref_183
|
|
MqttQoS:
|
|
type: string
|
|
enum: *ref_398
|
|
MqttV3Config:
|
|
type: object
|
|
properties: *ref_208
|
|
MqttV5Config:
|
|
type: object
|
|
properties: *ref_209
|
|
MqttSubscribeTopic:
|
|
type: object
|
|
properties: *ref_206
|
|
required: *ref_207
|
|
MqttClientVersion:
|
|
type: string
|
|
enum: *ref_210
|
|
MqttTrigger:
|
|
allOf: *ref_211
|
|
type: object
|
|
properties: *ref_212
|
|
required: *ref_213
|
|
NewMqttTrigger:
|
|
type: object
|
|
properties: *ref_399
|
|
required: *ref_400
|
|
EditMqttTrigger:
|
|
type: object
|
|
properties: *ref_401
|
|
required: *ref_402
|
|
DeliveryType:
|
|
type: string
|
|
enum: *ref_216
|
|
description: >-
|
|
Delivery mode for messages. 'push' for HTTP push delivery where messages
|
|
are sent to a webhook endpoint, 'pull' for polling where the trigger
|
|
actively fetches messages.
|
|
PushConfig:
|
|
type: object
|
|
description: Configuration for push delivery mode.
|
|
properties: *ref_217
|
|
required: *ref_218
|
|
GcpTrigger:
|
|
allOf: *ref_220
|
|
type: object
|
|
description: >-
|
|
A Google Cloud Pub/Sub trigger that executes a script or flow when
|
|
messages are received.
|
|
properties: *ref_221
|
|
required: *ref_222
|
|
SubscriptionMode:
|
|
type: string
|
|
enum: *ref_219
|
|
description: >-
|
|
The mode of subscription. 'existing' means using an existing GCP
|
|
subscription, while 'create_update' involves creating or updating a new
|
|
subscription.
|
|
GcpTriggerData:
|
|
type: object
|
|
description: Data for creating or updating a Google Cloud Pub/Sub trigger.
|
|
properties: *ref_214
|
|
required: *ref_215
|
|
GetAllTopicSubscription:
|
|
type: object
|
|
properties: *ref_403
|
|
required: *ref_404
|
|
DeleteGcpSubscription:
|
|
type: object
|
|
properties: *ref_405
|
|
required: *ref_406
|
|
AwsAuthResourceType:
|
|
type: string
|
|
enum: *ref_195
|
|
SqsTrigger:
|
|
allOf: *ref_196
|
|
type: object
|
|
properties: *ref_197
|
|
required: *ref_198
|
|
LoggedWizardStatus:
|
|
type: string
|
|
enum: *ref_17
|
|
CustomInstanceDbLogs:
|
|
type: object
|
|
properties: *ref_407
|
|
CustomInstanceDbTag:
|
|
type: string
|
|
enum: *ref_18
|
|
CustomInstanceDb:
|
|
type: object
|
|
required: *ref_19
|
|
properties: *ref_20
|
|
NewSqsTrigger:
|
|
type: object
|
|
properties: *ref_408
|
|
required: *ref_409
|
|
EditSqsTrigger:
|
|
type: object
|
|
properties: *ref_410
|
|
required: *ref_411
|
|
Slot:
|
|
type: object
|
|
properties: *ref_223
|
|
SlotList:
|
|
type: object
|
|
properties: *ref_412
|
|
PublicationData:
|
|
type: object
|
|
properties: *ref_227
|
|
required: *ref_228
|
|
TableToTrack:
|
|
type: array
|
|
items: *ref_413
|
|
Relations:
|
|
type: object
|
|
properties: *ref_224
|
|
required: *ref_225
|
|
Language:
|
|
type: string
|
|
enum: *ref_414
|
|
TemplateScript:
|
|
type: object
|
|
properties: *ref_415
|
|
required: *ref_416
|
|
PostgresTrigger:
|
|
allOf: *ref_229
|
|
type: object
|
|
properties: *ref_230
|
|
required: *ref_231
|
|
NewPostgresTrigger:
|
|
type: object
|
|
properties: *ref_417
|
|
required: *ref_418
|
|
EditPostgresTrigger:
|
|
type: object
|
|
properties: *ref_419
|
|
required: *ref_420
|
|
KafkaTrigger:
|
|
allOf: *ref_189
|
|
type: object
|
|
properties: *ref_190
|
|
required: *ref_191
|
|
NewKafkaTrigger:
|
|
type: object
|
|
properties: *ref_421
|
|
required: *ref_422
|
|
EditKafkaTrigger:
|
|
type: object
|
|
properties: *ref_423
|
|
required: *ref_424
|
|
NatsTrigger:
|
|
allOf: *ref_192
|
|
type: object
|
|
properties: *ref_193
|
|
required: *ref_194
|
|
NewNatsTrigger:
|
|
type: object
|
|
properties: *ref_425
|
|
required: *ref_426
|
|
EditNatsTrigger:
|
|
type: object
|
|
properties: *ref_427
|
|
required: *ref_428
|
|
EmailTrigger:
|
|
allOf: *ref_232
|
|
type: object
|
|
properties: *ref_233
|
|
required: *ref_234
|
|
NewEmailTrigger:
|
|
type: object
|
|
properties: *ref_429
|
|
required: *ref_430
|
|
EditEmailTrigger:
|
|
type: object
|
|
properties: *ref_431
|
|
required: *ref_432
|
|
Group:
|
|
type: object
|
|
properties: *ref_240
|
|
required: *ref_241
|
|
InstanceGroup:
|
|
type: object
|
|
required: *ref_236
|
|
properties: *ref_237
|
|
InstanceGroupWithWorkspaces:
|
|
type: object
|
|
required: *ref_433
|
|
properties: *ref_434
|
|
WorkspaceInfo:
|
|
type: object
|
|
properties: *ref_435
|
|
required: *ref_436
|
|
Folder:
|
|
type: object
|
|
properties: *ref_242
|
|
required: *ref_243
|
|
WorkerPing:
|
|
type: object
|
|
properties: *ref_437
|
|
required: *ref_438
|
|
UserWorkspaceList:
|
|
type: object
|
|
properties: *ref_439
|
|
required: *ref_440
|
|
CreateWorkspace:
|
|
type: object
|
|
properties: *ref_441
|
|
required: *ref_442
|
|
CreateWorkspaceFork:
|
|
type: object
|
|
properties: *ref_15
|
|
required: *ref_16
|
|
Workspace:
|
|
type: object
|
|
properties: *ref_11
|
|
required: *ref_12
|
|
DependencyMap:
|
|
type: object
|
|
properties: *ref_443
|
|
DependencyDependent:
|
|
type: object
|
|
properties: *ref_444
|
|
required: *ref_445
|
|
DependentsAmount:
|
|
type: object
|
|
properties: *ref_446
|
|
required: *ref_447
|
|
WorkspaceInvite:
|
|
type: object
|
|
properties: *ref_32
|
|
required: *ref_33
|
|
GlobalUserInfo:
|
|
type: object
|
|
properties: *ref_30
|
|
required: *ref_31
|
|
Flow:
|
|
allOf: *ref_102
|
|
ExtraPerms:
|
|
type: object
|
|
additionalProperties: *ref_448
|
|
FlowMetadata:
|
|
type: object
|
|
properties: *ref_449
|
|
required: *ref_450
|
|
OpenFlowWPath:
|
|
allOf: *ref_104
|
|
FlowPreview:
|
|
type: object
|
|
properties: *ref_122
|
|
required: *ref_123
|
|
RestartedFrom:
|
|
type: object
|
|
properties: *ref_451
|
|
Policy:
|
|
type: object
|
|
properties: *ref_105
|
|
ListableApp:
|
|
type: object
|
|
properties: *ref_452
|
|
required: *ref_453
|
|
ScopeDefinition:
|
|
type: object
|
|
properties: *ref_454
|
|
required: *ref_455
|
|
ScopeDomain:
|
|
type: object
|
|
properties: *ref_456
|
|
required: *ref_457
|
|
ListableRawApp:
|
|
type: object
|
|
properties: *ref_458
|
|
required: *ref_459
|
|
AppWithLastVersion:
|
|
type: object
|
|
properties: *ref_106
|
|
required: *ref_107
|
|
AppWithLastVersionWDraft:
|
|
allOf: *ref_460
|
|
AppHistory:
|
|
type: object
|
|
properties: *ref_108
|
|
required: *ref_109
|
|
FlowVersion:
|
|
type: object
|
|
properties: *ref_100
|
|
required: *ref_101
|
|
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_56
|
|
required: *ref_57
|
|
HubScriptKind:
|
|
type: string
|
|
enum: *ref_75
|
|
PolarsClientKwargs:
|
|
type: object
|
|
properties: *ref_253
|
|
required: *ref_254
|
|
LargeFileStorage:
|
|
type: object
|
|
properties: *ref_38
|
|
DucklakeSettings:
|
|
type: object
|
|
required: *ref_39
|
|
properties: *ref_40
|
|
DataTableSettings:
|
|
type: object
|
|
required: *ref_41
|
|
properties: *ref_42
|
|
DataTableSchema:
|
|
type: object
|
|
required: *ref_461
|
|
properties: *ref_462
|
|
DynamicInputData:
|
|
type: object
|
|
properties: *ref_463
|
|
required: *ref_464
|
|
WindmillLargeFile:
|
|
type: object
|
|
properties: *ref_255
|
|
required: *ref_256
|
|
WindmillFileMetadata:
|
|
type: object
|
|
properties: *ref_259
|
|
WindmillFilePreview:
|
|
type: object
|
|
properties: *ref_257
|
|
required: *ref_258
|
|
S3Resource:
|
|
type: object
|
|
properties: *ref_251
|
|
required: *ref_252
|
|
WorkspaceGitSyncSettings:
|
|
type: object
|
|
properties: *ref_43
|
|
WorkspaceDeployUISettings:
|
|
type: object
|
|
properties: *ref_46
|
|
WorkspaceDefaultScripts:
|
|
type: object
|
|
properties: *ref_47
|
|
S3PermissionRule:
|
|
type: object
|
|
properties: *ref_465
|
|
required: *ref_466
|
|
GitRepositorySettings:
|
|
type: object
|
|
properties: *ref_44
|
|
required: *ref_45
|
|
MetricMetadata:
|
|
type: object
|
|
properties: *ref_467
|
|
required: *ref_468
|
|
ScalarMetric:
|
|
type: object
|
|
properties: *ref_469
|
|
required: *ref_470
|
|
TimeseriesMetric:
|
|
type: object
|
|
properties: *ref_471
|
|
required: *ref_472
|
|
MetricDataPoint:
|
|
type: object
|
|
properties: *ref_473
|
|
required: *ref_474
|
|
RawScriptForDependencies:
|
|
type: object
|
|
properties: *ref_475
|
|
required: *ref_476
|
|
ConcurrencyGroup:
|
|
type: object
|
|
properties: *ref_477
|
|
required: *ref_478
|
|
ExtendedJobs:
|
|
type: object
|
|
properties: *ref_479
|
|
required: *ref_480
|
|
ExportedUser:
|
|
type: object
|
|
properties: *ref_9
|
|
required: *ref_10
|
|
GlobalSetting:
|
|
type: object
|
|
properties: *ref_481
|
|
required: *ref_482
|
|
Config:
|
|
type: object
|
|
properties: *ref_483
|
|
required: *ref_484
|
|
ExportedInstanceGroup:
|
|
type: object
|
|
properties: *ref_238
|
|
required: *ref_239
|
|
JobSearchHit:
|
|
type: object
|
|
properties: *ref_485
|
|
LogSearchHit:
|
|
type: object
|
|
properties: *ref_486
|
|
AutoscalingEvent:
|
|
type: object
|
|
properties: *ref_487
|
|
CriticalAlert:
|
|
type: object
|
|
properties: *ref_51
|
|
CaptureTriggerKind:
|
|
type: string
|
|
enum: *ref_244
|
|
Capture:
|
|
type: object
|
|
properties: *ref_245
|
|
required: *ref_246
|
|
CaptureConfig:
|
|
type: object
|
|
properties: *ref_488
|
|
required: *ref_489
|
|
OperatorSettings:
|
|
nullable: true
|
|
type: object
|
|
required: *ref_28
|
|
properties: *ref_29
|
|
WorkspaceComparison:
|
|
type: object
|
|
required: *ref_490
|
|
properties: *ref_491
|
|
WorkspaceItemDiff:
|
|
type: object
|
|
required: *ref_492
|
|
properties: *ref_493
|
|
CompareSummary:
|
|
type: object
|
|
required: *ref_494
|
|
properties: *ref_495
|
|
TeamInfo:
|
|
type: object
|
|
required:
|
|
- team_id
|
|
- team_name
|
|
- channels
|
|
properties:
|
|
team_id:
|
|
type: string
|
|
description: The unique identifier of the Microsoft Teams team
|
|
example: 19:abc123def456@thread.tacv2
|
|
team_name:
|
|
type: string
|
|
description: The display name of the Microsoft Teams team
|
|
example: Engineering Team
|
|
channels:
|
|
type: array
|
|
description: List of channels within the team
|
|
items:
|
|
type: object
|
|
required: &ref_496
|
|
- channel_id
|
|
- channel_name
|
|
- tenant_id
|
|
- service_url
|
|
properties: &ref_497
|
|
channel_id:
|
|
type: string
|
|
description: The unique identifier of the channel
|
|
example: 19:channel123@thread.tacv2
|
|
channel_name:
|
|
type: string
|
|
description: The display name of the channel
|
|
example: General
|
|
tenant_id:
|
|
type: string
|
|
description: The Microsoft Teams tenant identifier
|
|
example: 12345678-1234-1234-1234-123456789012
|
|
service_url:
|
|
type: string
|
|
description: The service URL for the channel
|
|
example: >-
|
|
https://smba.trafficmanager.net/amer/12345678-1234-1234-1234-123456789012/
|
|
ChannelInfo:
|
|
type: object
|
|
required: *ref_496
|
|
properties: *ref_497
|
|
GithubInstallations:
|
|
type: array
|
|
items: *ref_498
|
|
WorkspaceGithubInstallation:
|
|
type: object
|
|
properties:
|
|
account_id:
|
|
type: string
|
|
installation_id:
|
|
type: number
|
|
required:
|
|
- account_id
|
|
- installation_id
|
|
S3Object:
|
|
type: object
|
|
properties: *ref_112
|
|
required: *ref_113
|
|
TeamsChannel:
|
|
type: object
|
|
required:
|
|
- team_id
|
|
- team_name
|
|
- channel_id
|
|
- channel_name
|
|
properties:
|
|
team_id:
|
|
type: string
|
|
description: Microsoft Teams team ID
|
|
minLength: 1
|
|
team_name:
|
|
type: string
|
|
description: Microsoft Teams team name
|
|
minLength: 1
|
|
channel_id:
|
|
type: string
|
|
description: Microsoft Teams channel ID
|
|
minLength: 1
|
|
channel_name:
|
|
type: string
|
|
description: Microsoft Teams channel name
|
|
minLength: 1
|
|
AssetUsageKind:
|
|
type: string
|
|
enum: *ref_264
|
|
AssetUsageAccessType:
|
|
type: string
|
|
enum: *ref_263
|
|
nullable: true
|
|
AssetKind:
|
|
type: string
|
|
enum: *ref_262
|
|
Asset:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
enum: *ref_262
|
|
required:
|
|
- path
|
|
- kind
|
|
ProtectionRuleset:
|
|
type: object
|
|
description: A workspace protection rule defining restrictions and bypass permissions
|
|
required: *ref_499
|
|
properties: *ref_500
|
|
ProtectionRules:
|
|
type: array
|
|
description: Configuration of protection restrictions
|
|
items: *ref_52
|
|
ProtectionRuleKind:
|
|
type: string
|
|
enum: *ref_501
|
|
RuleBypasserGroups:
|
|
type: array
|
|
description: Groups that can bypass this ruleset
|
|
items: *ref_53
|
|
RuleBypasserUsers:
|
|
type: array
|
|
description: Users that can bypass this ruleset
|
|
items: *ref_54
|
|
NativeServiceName:
|
|
type: string
|
|
enum: *ref_199
|
|
NativeTrigger:
|
|
type: object
|
|
description: A native trigger stored in Windmill
|
|
properties: *ref_502
|
|
required: *ref_503
|
|
NativeTriggerWithExternal:
|
|
type: object
|
|
description: >-
|
|
Full trigger response containing both Windmill data and external service
|
|
data
|
|
properties: *ref_504
|
|
required: *ref_505
|
|
WorkspaceIntegrations:
|
|
type: object
|
|
properties: *ref_506
|
|
required: *ref_507
|
|
WorkspaceOAuthConfig:
|
|
type: object
|
|
properties: *ref_200
|
|
required: *ref_201
|
|
WebhookEvent:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- webhook
|
|
request_type:
|
|
type: string
|
|
description: The type of webhook request (define possible values here)
|
|
enum: &ref_508
|
|
- async
|
|
- sync
|
|
required:
|
|
- type
|
|
- request_type
|
|
WebhookRequestType:
|
|
type: string
|
|
description: The type of webhook request (define possible values here)
|
|
enum: *ref_508
|
|
RedirectUri:
|
|
type: object
|
|
properties: *ref_202
|
|
required: *ref_203
|
|
NativeTriggerData:
|
|
type: object
|
|
description: Data for creating or updating a native trigger
|
|
properties: *ref_204
|
|
required: *ref_205
|
|
CreateTriggerResponse:
|
|
type: object
|
|
description: Response returned when a native trigger is created
|
|
properties: *ref_509
|
|
required: *ref_510
|
|
SyncResult:
|
|
type: object
|
|
properties:
|
|
already_in_sync:
|
|
type: boolean
|
|
added_count:
|
|
type: integer
|
|
added_triggers:
|
|
type: array
|
|
items:
|
|
type: string
|
|
total_external:
|
|
type: integer
|
|
total_windmill:
|
|
type: integer
|
|
required:
|
|
- already_in_sync
|
|
- added_count
|
|
- added_triggers
|
|
- total_external
|
|
- total_windmill
|
|
NextCloudEventType:
|
|
type: object
|
|
properties: *ref_511
|
|
required: *ref_512
|
|
schemas-StaticTransform:
|
|
type: object
|
|
description: >-
|
|
Static value passed directly to the step. Use for hardcoded values or
|
|
resource references like '$res:path/to/resource'
|
|
properties: *ref_114
|
|
required: *ref_115
|
|
schemas-JavascriptTransform:
|
|
type: object
|
|
description: >-
|
|
JavaScript expression evaluated at runtime. Can reference previous step
|
|
results via 'results.step_id' or flow inputs via 'flow_input.property'.
|
|
Inside loops, use 'flow_input.iter.value' for the current iteration
|
|
value
|
|
properties: *ref_66
|
|
required: *ref_67
|
|
schemas-AiTransform:
|
|
type: object
|
|
description: >-
|
|
Value resolved by the AI runtime for this input. The AI engine decides
|
|
how to satisfy the parameter.
|
|
properties: *ref_68
|
|
required: *ref_69
|
|
schemas-InputTransform:
|
|
description: >-
|
|
Maps input parameters for a step. Can be a static value or a JavaScript
|
|
expression that references previous results or flow inputs
|
|
oneOf: *ref_62
|
|
discriminator: *ref_63
|
|
schemas-RawScript:
|
|
type: object
|
|
description: >-
|
|
Inline script with code defined directly in the flow. Use 'bun' as
|
|
default language if unspecified. The script receives arguments from
|
|
input_transforms
|
|
properties: *ref_284
|
|
required: *ref_285
|
|
schemas-PathScript:
|
|
type: object
|
|
description: >-
|
|
Reference to an existing script by path. Use this when calling a
|
|
previously saved script instead of writing inline code
|
|
properties: *ref_286
|
|
required: *ref_287
|
|
schemas-PathFlow:
|
|
type: object
|
|
description: >-
|
|
Reference to an existing flow by path. Use this to call another flow as
|
|
a subflow
|
|
properties: *ref_288
|
|
required: *ref_289
|
|
schemas-FlowModule:
|
|
type: object
|
|
description: A single step in a flow. Can be a script, subflow, loop, or branch
|
|
properties: *ref_64
|
|
required: *ref_65
|
|
schemas-ForloopFlow:
|
|
type: object
|
|
description: >-
|
|
Executes nested modules in a loop over an iterator. Inside the loop, use
|
|
'flow_input.iter.value' to access the current iteration value, and
|
|
'flow_input.iter.index' for the index. Supports parallel execution for
|
|
better performance on I/O-bound operations
|
|
properties: *ref_290
|
|
required: *ref_291
|
|
schemas-WhileloopFlow:
|
|
type: object
|
|
description: >-
|
|
Executes nested modules repeatedly while a condition is true. The loop
|
|
checks the condition after each iteration. Use stop_after_if on modules
|
|
to control loop termination
|
|
properties: *ref_292
|
|
required: *ref_293
|
|
schemas-BranchOne:
|
|
type: object
|
|
description: >-
|
|
Conditional branching where only the first matching branch executes.
|
|
Branches are evaluated in order, and the first one with a true
|
|
expression runs. If no branches match, the default branch executes
|
|
properties: *ref_294
|
|
required: *ref_295
|
|
schemas-BranchAll:
|
|
type: object
|
|
description: >-
|
|
Parallel branching where all branches execute simultaneously. Unlike
|
|
BranchOne, all branches run regardless of conditions. Useful for
|
|
executing independent tasks concurrently
|
|
properties: *ref_296
|
|
required: *ref_297
|
|
schemas-Identity:
|
|
type: object
|
|
description: >-
|
|
Pass-through module that returns its input unchanged. Useful for flow
|
|
structure or as a placeholder
|
|
properties: *ref_298
|
|
required: *ref_299
|
|
AIProviderKind:
|
|
type: string
|
|
description: Supported AI provider types
|
|
enum: *ref_277
|
|
schemas-ProviderConfig:
|
|
type: object
|
|
description: >-
|
|
Complete AI provider configuration with resource reference and model
|
|
selection
|
|
properties: *ref_513
|
|
required: *ref_514
|
|
StaticProviderTransform:
|
|
type: object
|
|
description: Static provider configuration passed directly to the AI agent
|
|
properties: *ref_515
|
|
required: *ref_516
|
|
ProviderTransform:
|
|
description: >-
|
|
Provider configuration - can be static (ProviderConfig), JavaScript
|
|
expression, or AI-determined
|
|
oneOf: *ref_302
|
|
discriminator: *ref_303
|
|
MemoryOff:
|
|
type: object
|
|
description: No conversation memory/context
|
|
properties: *ref_278
|
|
required: *ref_279
|
|
MemoryAuto:
|
|
type: object
|
|
description: Automatic context management
|
|
properties: *ref_280
|
|
required: *ref_281
|
|
MemoryMessage:
|
|
type: object
|
|
description: A single message in conversation history
|
|
properties: *ref_517
|
|
required: *ref_518
|
|
MemoryManual:
|
|
type: object
|
|
description: Explicit message history
|
|
properties: *ref_282
|
|
required: *ref_283
|
|
schemas-MemoryConfig:
|
|
description: Conversation memory configuration
|
|
oneOf: *ref_519
|
|
discriminator: *ref_520
|
|
StaticMemoryTransform:
|
|
type: object
|
|
description: Static memory configuration passed directly to the AI agent
|
|
properties: *ref_521
|
|
required: *ref_522
|
|
MemoryTransform:
|
|
description: >-
|
|
Memory configuration - can be static (MemoryConfig), JavaScript
|
|
expression, or AI-determined
|
|
oneOf: *ref_304
|
|
discriminator: *ref_305
|
|
schemas-FlowModuleValue:
|
|
description: >-
|
|
The actual implementation of a flow step. Can be a script (inline or
|
|
referenced), subflow, loop, branch, or special module type
|
|
oneOf: *ref_70
|
|
discriminator: *ref_71
|
|
FlowModuleTool:
|
|
description: >-
|
|
A tool implemented as a flow module (script, flow, etc.). The AI can
|
|
call this like any other flow module
|
|
allOf: *ref_523
|
|
McpToolValue:
|
|
type: object
|
|
description: >-
|
|
Reference to an external MCP (Model Context Protocol) tool. The AI can
|
|
call tools from MCP servers
|
|
properties: *ref_524
|
|
required: *ref_525
|
|
WebsearchToolValue:
|
|
type: object
|
|
description: >-
|
|
A tool implemented as a websearch tool. The AI can call this like any
|
|
other websearch tool
|
|
properties: *ref_526
|
|
required: *ref_527
|
|
ToolValue:
|
|
description: >-
|
|
The implementation of a tool. Can be a flow module (script/flow) or an
|
|
MCP tool reference
|
|
oneOf: *ref_528
|
|
discriminator: *ref_529
|
|
AgentTool:
|
|
type: object
|
|
description: >-
|
|
A tool available to an AI agent. Can be a flow module or an external MCP
|
|
(Model Context Protocol) tool
|
|
properties: *ref_306
|
|
required: *ref_307
|
|
schemas-AiAgent:
|
|
type: object
|
|
description: >-
|
|
AI agent step that can use tools to accomplish tasks. The agent receives
|
|
inputs and can call any of its configured tools to complete the task
|
|
properties: *ref_300
|
|
required: *ref_301
|
|
schemas-StopAfterIf:
|
|
type: object
|
|
description: Early termination condition for a module
|
|
properties: *ref_72
|
|
required: *ref_73
|
|
RetryIf:
|
|
type: object
|
|
description: Conditional retry based on error or result
|
|
properties: *ref_167
|
|
required: *ref_168
|
|
schemas-Retry:
|
|
type: object
|
|
description: Retry configuration for failed module executions
|
|
properties: *ref_276
|
|
schemas-FlowNote:
|
|
type: object
|
|
description: A sticky note attached to a flow for documentation and annotation
|
|
properties: *ref_120
|
|
required: *ref_121
|
|
schemas-FlowValue:
|
|
type: object
|
|
description: >-
|
|
The flow structure containing modules and optional preprocessor/failure
|
|
handlers
|
|
properties: *ref_530
|
|
required: *ref_531
|
|
schemas-FlowStatusModule:
|
|
type: object
|
|
properties: *ref_124
|
|
required: *ref_125
|