* feat: add variable and resource types to flow env variables Flow env variables can now reference workspace variables ($var:path) and resources ($res:path) that are resolved at runtime. Adds Variable and Resource type options to the flow env editor with ItemPicker and ResourcePicker components, and resolves references in both the flow worker (via transform_json) and the API fallback endpoint. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(frontend): use inline DollarSign icon for variable picker Replace the separate "Pick" button with the standard inline DollarSign icon overlay that appears on hover, matching the existing ArgInput pattern. Also add the icon to the string type input for quick variable linking from any string field. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: simplify flow env var resolution and json_path handling in API Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(frontend): always show flow env variables in property picker Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: update flow_env openapi type to allow any JSON value Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor(frontend): remove redundant variable type from env var dropdown Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(frontend): use Label component and fix alert text in flow env vars editor Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(frontend): avoid redundant stringify/parse roundtrip in env type switch Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: address PR review comments for flow env vars - Deduplicate db_authed in jobs.rs $var/$res resolution - Add warn logging on variable/resource resolution failures - Consolidate $effect blocks and remove auto-type-correction effect - Make linked variable text a clickable link to variable editor - Add hash-based variable editor opening on variables page Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * perf: avoid cloning entire FlowValue to resolve flow_env references Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
30818 lines
950 KiB
YAML
30818 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. Values can be strings, JSON values, or special references: '$var:path' (workspace variable) or '$res:path' (resource)."
|
|
additionalProperties: {}
|
|
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. Values can be strings, JSON values, or special references: '$var:path' (workspace variable) or '$res:path' (resource)."
|
|
additionalProperties: {}
|
|
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
|
|
x-go-name: JobTriggerKindParam
|
|
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
|