* fix Signed-off-by: pyranota <pyra@duck.com> * reduce tests Signed-off-by: pyranota <pyra@duck.com> * update Signed-off-by: pyranota <pyra@duck.com> * fix Signed-off-by: pyranota <pyra@duck.com> * update Signed-off-by: pyranota <pyra@duck.com> * WIP: stash changes after merge with origin/main * Delete backend/parsers/windmill-parser-wasm/Cargo.lock * reset cargo.toml * feat(cli): integrate dependency tree into generate-metadata command - Add isDirectlyStale field to DependencyNode for staleness tracking - Update addScript to accept itemType, folder, isRawApp, isDirectlyStale - Update propagateStaleness to use isDirectlyStale field instead of parameter - Handlers now determine staleness and pass it to tree.addScript - generate-metadata calls propagateStaleness() and populates staleItems from tree - Pass legacyBehaviour=false and tree to handlers during generation phase 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(cli): store originalPath in tree for correct handler invocation Scripts need the path with extension to be passed to the handler. Added originalPath field to DependencyNode to track this. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix parsers Signed-off-by: pyranota <pyra@duck.com> * rever sqlx removal * update sqlx * feat: make py-imports parser WASM-compatible and add as separate WASM package Gate heavy deps (sqlx, windmill-common, async-recursion, toml, pep440_rs, tracing) behind cfg(not(wasm32)). Make parse_code_for_imports, parse_relative_imports, NImport, and ImportPin public. Remove duplicate import_parser from parser-py (reset to origin/main). Add py-imports-parser feature to windmill-parser-wasm and py-imports target to build.nu. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * safer return * update * fix: CLI metadata fixes - folder filter, staleness detection, WASM py-imports setup - Fix lazy_static cfg gating for WASM compatibility (split into separate blocks) - Fix folder argument filter to match specific file paths (not just directories) - Fix staleness detection to use checkHash with conf (includes module hashes) - Convert relative_imports_skip tests from Deno to bun APIs - Add windmill-parser-wasm-py-imports to CLI and build-npm dependencies - Relax module stale test to not require per-module change detail in output Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: restore temp_script_refs parameter in parse_python_imports Re-adds the temp_script_refs parameter that was lost when resetting py-imports crate to origin/main. This enables resolving relative imports from not-yet-deployed scripts during CLI lock generation. * fixes * extend testsuit * update ee repo ref * fix: diff endpoint bytea cast, upload only mismatched scripts - Add POST /scripts/raw_temp/diff endpoint to batch-compare local content hashes against deployed versions using Postgres sha256() - Use convert_to(content, 'UTF8') instead of content::bytea to avoid failure on scripts containing backslash sequences (e.g. \n) - CLI now diffs all scripts against deployed, uploads only mismatched ones - propagateStaleness no longer deletes non-stale nodes (needed for diff) - Suppress verbose log.info messages during metadata generation - Add E2E tests for locally modified and unpushed helper scripts Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * rework * sqlx * fixes * add index * expand tests * fix flows * archive script before executing * disable tests for ci * skip Python-dependent E2E tests on CI Tests requiring the python backend feature are skipped when CI_MINIMAL_FEATURES=true since CI builds with zip-only features. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: make flow fixture lock optional and reset nonDottedPaths after tests Flow fixtures no longer emit an empty lock file by default. The lockContent parameter controls whether a lock: "!inline ..." line appears in flow.yaml. This prevents flows from appearing "up-to-date" when they should be processed by generate-metadata. Also adds afterAll to reset setNonDottedPaths(false) so global state doesn't leak between test files when run together. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * debug: add error logging in withTestBackend to diagnose CI failures Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * debug: add --bail 1 to CI test runner to show full error on first failure Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * debug: include CLI stdout/stderr in assertion message for workspace deps test Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: set WMDEBUG_FORCE_V0_WORKSPACE_DEPENDENCIES in test backend The workspace deps feature requires workers to report their version, but in test/CI there are no separate workers (standalone mode). The version check fails because workers haven't had time to ping yet. Setting this env var bypasses the version check. Also reverts --bail 1 from CI workflow now that the root cause is fixed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * debug: add --bail 1 to Windows CI and assertion messages for Windows failure diagnosis Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: replace TEMP_SCRIPT_REFS_PLACEHOLDER in bun builder tests The loader.bun.js now includes a TEMP_SCRIPT_REFS_PLACEHOLDER that must be replaced before execution. The builder tests were missing this replacement, causing all 6 bun_builder_tests to fail. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: use cdirFwd in Windows loader filterLoad regex Raw cdir (with backslashes) interpolated into RegExp causes \r to become carriage return and \w to become word-char, so filterLoad never matches main.ts. This prevents replaceRelativeImports from running, leaving bare relative imports like "./script_b" in the bundled output, which scanImports then misparses as package ".". Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: Windows filterLoad regex + graceful fallback for old backends - Fix filterLoad in loader.bun.windows.js to match both native backslash and forward-slash paths from Bun's resolver by escaping cdir for regex - Wrap uploadScripts in try/catch so generate-metadata degrades gracefully when the backend lacks /raw_temp endpoints (locks use deployed versions) - Add TODO for missing TEMP_SCRIPT_REFS support in Windows loader Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * debug: add loader/builder debug logging for Windows CI diagnosis Temporary console.log statements to understand: - What path Bun passes to onLoad for main.ts - Whether filterLoad regex matches - Whether replaceRelativeImports fires - What the bundled output contains - What imports scanImports extracts Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: trigger CI for cli path Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: trigger CI via workflow file change Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Add TEMP_SCRIPT_REFS to Windows loader, use .ts extensions in test imports - Add TEMP_SCRIPT_REFS_PLACEHOLDER support to loader.bun.windows.js (mirrors loader.bun.js) so CLI lock generation can resolve imports from locally-modified scripts on Windows - Use .ts extensions in all test relative imports to work around the Windows filterLoad regex bug (replaceRelativeImports doesn't fire on Windows, so extensionless imports fail) - Remove unused uploadSucceeded variable Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Remove debug logging from loader_builder.bun.js Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Remove windmill-parser-wasm-py-imports from frontend package.json This dependency is only needed by the CLI, not the frontend. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * debug: add temp_script_refs logging for Windows CI investigation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * ci: remove --bail 1 from Windows CLI tests Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: normalize backslashes in folder filter treePath lookup (Windows) On Windows, item.path (originalPath) uses backslashes but tree keys use forward slashes. The isRelevant filter's touchesFolder call passed the unnormalized path to traverseTransitive, which couldn't find the node. This caused cross-folder importers to be excluded from generate-metadata when a folder argument was specified. Also removes debug logging from previous commit. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Update cli-tests.yml * fix: normalize backslashes in strict-folder-boundaries warning message (Windows) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: update ee-repo-ref to fe8f0d1d7448464c98474d994e6492c0a45e8e38 This commit updates the EE repository reference after PR #467 was merged in windmill-ee-private. Previous ee-repo-ref: 03e6eaf950776c96b9581848a583af9ad735be60 New ee-repo-ref: fe8f0d1d7448464c98474d994e6492c0a45e8e38 Automated by sync-ee-ref workflow. * revert cli-tests.yml --------- Signed-off-by: pyranota <pyra@duck.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
24829 lines
684 KiB
YAML
24829 lines
684 KiB
YAML
openapi: "3.0.3"
|
|
|
|
info:
|
|
version: 1.662.0
|
|
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:
|
|
$ref: "#/components/schemas/HealthStatusResponse"
|
|
"503":
|
|
description: server is unhealthy (database unreachable)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/HealthStatusResponse"
|
|
|
|
/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:
|
|
$ref: "#/components/schemas/DetailedHealthResponse"
|
|
"503":
|
|
description: server is unhealthy (database unreachable)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DetailedHealthResponse"
|
|
|
|
/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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/PathId"
|
|
responses:
|
|
"200":
|
|
description: an audit log
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AuditLog"
|
|
|
|
/w/{workspace}/audit/list:
|
|
get:
|
|
summary: list audit logs (requires admin privilege)
|
|
operationId: listAuditLogs
|
|
tags:
|
|
- audit
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/Before"
|
|
- $ref: "#/components/parameters/After"
|
|
- $ref: "#/components/parameters/Username"
|
|
- $ref: "#/components/parameters/Operation"
|
|
- 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
|
|
- $ref: "#/components/parameters/ResourceName"
|
|
- $ref: "#/components/parameters/ActionKind"
|
|
- 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:
|
|
$ref: "#/components/schemas/AuditLog"
|
|
|
|
/auth/login:
|
|
post:
|
|
security: []
|
|
summary: login with password
|
|
operationId: login
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: credentials
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Login"
|
|
|
|
responses:
|
|
"200":
|
|
description: >
|
|
Successfully authenticated. The session ID is returned in a cookie
|
|
named `token` and as plaintext response. Preferred method of
|
|
authorization is through the bearer token. The cookie is only for
|
|
browser convenience.
|
|
|
|
headers:
|
|
Set-Cookie:
|
|
schema:
|
|
type: string
|
|
example: token=abcde12345; Path=/; HttpOnly
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/auth/logout:
|
|
post:
|
|
security: []
|
|
summary: logout
|
|
operationId: logout
|
|
tags:
|
|
- user
|
|
|
|
responses:
|
|
"200":
|
|
description: clear cookies and clear token (if applicable)
|
|
headers:
|
|
Set-Cookie:
|
|
schema:
|
|
type: string
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/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:
|
|
$ref: "#/components/schemas/PasswordResetResponse"
|
|
"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:
|
|
$ref: "#/components/schemas/PasswordResetResponse"
|
|
"400":
|
|
description: invalid or expired token
|
|
|
|
/w/{workspace}/users/get/{username}:
|
|
get:
|
|
summary: get user (require admin privilege)
|
|
operationId: getUser
|
|
tags:
|
|
- user
|
|
- admin
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: user created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/User"
|
|
|
|
/w/{workspace}/users/update/{username}:
|
|
post:
|
|
summary: update user (require admin privilege)
|
|
operationId: updateUser
|
|
tags:
|
|
- user
|
|
- admin
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
description: new user
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditWorkspaceUser"
|
|
responses:
|
|
"200":
|
|
description: edited user
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/users/is_owner/{path}:
|
|
get:
|
|
summary: is owner of path
|
|
operationId: isOwnerOfPath
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: is owner
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/users/setpassword:
|
|
post:
|
|
summary: set password
|
|
operationId: setPassword
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: set password
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
password:
|
|
type: string
|
|
required:
|
|
- password
|
|
responses:
|
|
"200":
|
|
description: password set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/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:
|
|
$ref: "#/components/schemas/ExportedUser"
|
|
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:
|
|
$ref: "#/components/schemas/ExportedUser"
|
|
|
|
/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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
$ref: "#/components/schemas/GithubInstallations"
|
|
|
|
/workspaces/list:
|
|
get:
|
|
summary: list all workspaces visible to me
|
|
operationId: listWorkspaces
|
|
tags:
|
|
- workspace
|
|
responses:
|
|
"200":
|
|
description: all workspaces
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Workspace"
|
|
|
|
/workspaces/allowed_domain_auto_invite:
|
|
get:
|
|
summary: is domain allowed for auto invi
|
|
operationId: isDomainAllowed
|
|
tags:
|
|
- workspace
|
|
responses:
|
|
"200":
|
|
description: domain allowed or not
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/workspaces/users:
|
|
get:
|
|
summary: list all workspaces visible to me with user info
|
|
operationId: listUserWorkspaces
|
|
tags:
|
|
- workspace
|
|
responses:
|
|
"200":
|
|
description: workspace with associated username
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UserWorkspaceList"
|
|
|
|
/w/{workspace}/workspaces/get_as_superadmin:
|
|
get:
|
|
summary: get workspace as super admin (require to be super admin)
|
|
operationId: getWorkspaceAsSuperAdmin
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: workspace
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Workspace"
|
|
|
|
/workspaces/list_as_superadmin:
|
|
get:
|
|
summary: list all workspaces as super admin (require to be super admin)
|
|
operationId: listWorkspacesAsSuperAdmin
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: workspaces
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Workspace"
|
|
|
|
/workspaces/create:
|
|
post:
|
|
summary: create workspace
|
|
operationId: createWorkspace
|
|
tags:
|
|
- workspace
|
|
requestBody:
|
|
description: new token
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateWorkspace"
|
|
responses:
|
|
"201":
|
|
description: token created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/create_workspace_fork_branch:
|
|
post:
|
|
summary: create forked workspace branch with git sync
|
|
operationId: createWorkspaceForkGitBranch
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new forked workspace
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateWorkspaceFork"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new forked workspace
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateWorkspaceFork"
|
|
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:
|
|
$ref: "#/components/schemas/CustomInstanceDb"
|
|
|
|
/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:
|
|
$ref: "#/components/schemas/CustomInstanceDbTag"
|
|
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:
|
|
$ref: "#/components/schemas/CustomInstanceDb"
|
|
|
|
/settings/global/{key}:
|
|
get:
|
|
summary: get global settings
|
|
operationId: getGlobal
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- $ref: "#/components/parameters/Key"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
post:
|
|
summary: post global settings
|
|
operationId: setGlobal
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- $ref: "#/components/parameters/Key"
|
|
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:
|
|
$ref: "#/components/schemas/CriticalAlert"
|
|
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
|
|
|
|
# pub use_ssl: Option<bool>,
|
|
# #[serde(rename = "accountName")]
|
|
# pub account_name: String,
|
|
# #[serde(rename = "tenantId")]
|
|
# pub tenant_id: Option<String>,
|
|
# #[serde(rename = "clientId")]
|
|
# pub client_id: Option<String>,
|
|
# #[serde(rename = "containerName")]
|
|
# pub container_name: String,
|
|
# #[serde(rename = "accessKey")]
|
|
# pub access_key: Option<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 telemetry stats with HMAC signature (EE only)
|
|
operationId: getStats
|
|
tags:
|
|
- setting
|
|
responses:
|
|
"200":
|
|
description: telemetry stats JSON with signature
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
signature:
|
|
type: string
|
|
data:
|
|
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:
|
|
$ref: "#/components/schemas/GlobalSetting"
|
|
|
|
/settings/instance_config:
|
|
get:
|
|
summary: get full instance config (global settings + worker configs)
|
|
operationId: getInstanceConfig
|
|
tags:
|
|
- setting
|
|
responses:
|
|
"200":
|
|
description: full instance configuration
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/InstanceConfig"
|
|
put:
|
|
summary: update instance config (bulk upsert, no deletes). Empty or missing global_settings/worker_configs are skipped.
|
|
operationId: setInstanceConfig
|
|
tags:
|
|
- setting
|
|
requestBody:
|
|
description: full instance configuration to apply
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/InstanceConfig"
|
|
responses:
|
|
"200":
|
|
description: instance config updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/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:
|
|
$ref: "#/components/schemas/JwksResponse"
|
|
|
|
/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:
|
|
$ref: "#/components/schemas/VaultSettings"
|
|
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:
|
|
$ref: "#/components/schemas/VaultSettings"
|
|
responses:
|
|
"200":
|
|
description: migration report
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SecretMigrationReport"
|
|
|
|
/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:
|
|
$ref: "#/components/schemas/VaultSettings"
|
|
responses:
|
|
"200":
|
|
description: migration report
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SecretMigrationReport"
|
|
|
|
/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:
|
|
$ref: "#/components/schemas/GlobalUserInfo"
|
|
|
|
/users/list_invites:
|
|
get:
|
|
summary: list all workspace invites
|
|
operationId: listWorkspaceInvites
|
|
tags:
|
|
- user
|
|
responses:
|
|
"200":
|
|
description: list all workspace invites
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WorkspaceInvite"
|
|
|
|
/w/{workspace}/users/whoami:
|
|
get:
|
|
summary: whoami
|
|
operationId: whoami
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/User"
|
|
|
|
/w/{workspace}/github_app/token:
|
|
post:
|
|
summary: get github app token
|
|
operationId: getGithubAppToken
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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
|
|
|
|
/w/{workspace}/github_app/ghes_installation_callback:
|
|
post:
|
|
summary: GHES installation callback
|
|
description: Register a self-managed GitHub App installation from GitHub Enterprise Server
|
|
operationId: ghesInstallationCallback
|
|
tags:
|
|
- Git Sync
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- installation_id
|
|
properties:
|
|
installation_id:
|
|
type: integer
|
|
format: int64
|
|
description: The GitHub App installation ID from GHES
|
|
responses:
|
|
"200":
|
|
description: GHES installation registered successfully
|
|
|
|
/github_app/ghes_config:
|
|
get:
|
|
summary: Get GHES app config
|
|
description: Returns the GitHub Enterprise Server app configuration (without private key) for constructing the installation URL
|
|
operationId: getGhesConfig
|
|
tags:
|
|
- Git Sync
|
|
responses:
|
|
"200":
|
|
description: GHES app configuration
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
base_url:
|
|
type: string
|
|
app_slug:
|
|
type: string
|
|
client_id:
|
|
type: string
|
|
required:
|
|
- base_url
|
|
- app_slug
|
|
- client_id
|
|
|
|
/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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceInvite
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
is_admin:
|
|
type: boolean
|
|
operator:
|
|
type: boolean
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceInvite
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
is_admin:
|
|
type: boolean
|
|
username:
|
|
type: string
|
|
operator:
|
|
type: boolean
|
|
required:
|
|
- email
|
|
- is_admin
|
|
- operator
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/delete_invite:
|
|
post:
|
|
summary: delete user invite
|
|
operationId: delete invite
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceInvite
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
is_admin:
|
|
type: boolean
|
|
operator:
|
|
type: boolean
|
|
required:
|
|
- email
|
|
- is_admin
|
|
- operator
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/archive:
|
|
post:
|
|
summary: archive workspace
|
|
operationId: archiveWorkspace
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/workspaces/unarchive/{workspace}:
|
|
post:
|
|
summary: unarchive workspace
|
|
operationId: unarchiveWorkspace
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/workspaces/delete/{workspace}:
|
|
delete:
|
|
summary: delete workspace (require super admin)
|
|
operationId: deleteWorkspace
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/User"
|
|
|
|
/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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/OperatorSettings"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
$ref: "#/components/schemas/WorkspaceComparison"
|
|
|
|
/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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: active_only
|
|
in: query
|
|
description: filter only active users
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/GlobalUserInfo"
|
|
|
|
/w/{workspace}/workspaces/list_pending_invites:
|
|
get:
|
|
summary: list pending invites for a workspace
|
|
operationId: listPendingInvites
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WorkspaceInvite"
|
|
|
|
/w/{workspace}/workspaces/get_settings:
|
|
get:
|
|
summary: get settings
|
|
operationId: getSettings
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
slack_name:
|
|
type: string
|
|
slack_team_id:
|
|
type: string
|
|
slack_command_script:
|
|
type: string
|
|
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:
|
|
$ref: "#/components/schemas/AutoInviteConfig"
|
|
plan:
|
|
type: string
|
|
customer_id:
|
|
type: string
|
|
webhook:
|
|
type: string
|
|
deploy_to:
|
|
type: string
|
|
ai_config:
|
|
$ref: "#/components/schemas/AIConfig"
|
|
error_handler:
|
|
$ref: "#/components/schemas/ErrorHandlerConfig"
|
|
success_handler:
|
|
$ref: "#/components/schemas/SuccessHandlerConfig"
|
|
large_file_storage:
|
|
$ref: "#/components/schemas/LargeFileStorage"
|
|
ducklake:
|
|
$ref: "#/components/schemas/DucklakeSettings"
|
|
datatable:
|
|
$ref: "#/components/schemas/DataTableSettings"
|
|
git_sync:
|
|
$ref: "#/components/schemas/WorkspaceGitSyncSettings"
|
|
deploy_ui:
|
|
$ref: "#/components/schemas/WorkspaceDeployUISettings"
|
|
default_app:
|
|
type: string
|
|
default_scripts:
|
|
$ref: "#/components/schemas/WorkspaceDefaultScripts"
|
|
mute_critical_alerts:
|
|
type: boolean
|
|
color:
|
|
type: string
|
|
operator_settings:
|
|
$ref: "#/components/schemas/OperatorSettings"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
$ref: "#/components/schemas/DependencyDependent"
|
|
|
|
/w/{workspace}/workspaces/get_dependents_amounts:
|
|
post:
|
|
summary: get dependents amounts for multiple imported paths
|
|
operationId: getDependentsAmounts
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
$ref: "#/components/schemas/DependentsAmount"
|
|
|
|
/w/{workspace}/workspaces/get_dependency_map:
|
|
get:
|
|
summary: get dependency map
|
|
operationId: getDependencyMap
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: dmap
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/DependencyMap"
|
|
|
|
/w/{workspace}/workspaces/edit_slack_command:
|
|
post:
|
|
summary: edit slack command
|
|
operationId: editSlackCommand
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceInvite
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
slack_command_script:
|
|
type: string
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/slack_oauth_config:
|
|
get:
|
|
summary: get workspace slack oauth config
|
|
operationId: getWorkspaceSlackOauthConfig
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceInvite
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
slack_command_script:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/workspaces/available_teams_ids:
|
|
get:
|
|
summary: list available teams ids
|
|
operationId: listAvailableTeamsIds
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceCopilotConfig
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AIConfig"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AIConfig"
|
|
|
|
/w/{workspace}/workspaces/edit_error_handler:
|
|
post:
|
|
summary: edit error handler
|
|
operationId: editErrorHandler
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceErrorHandler
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditErrorHandler"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: WorkspaceSuccessHandler
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditSuccessHandler"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: LargeFileStorage info
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
large_file_storage:
|
|
$ref: "#/components/schemas/LargeFileStorage"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/workspaces/list_ducklakes:
|
|
get:
|
|
summary: list ducklakes
|
|
operationId: listDucklakes
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: schemas of all datatables
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/DataTableSchema"
|
|
|
|
/w/{workspace}/workspaces/edit_ducklake_config:
|
|
post:
|
|
summary: edit ducklake settings
|
|
operationId: editDucklakeConfig
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Ducklake settings
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: [settings]
|
|
properties:
|
|
settings:
|
|
$ref: "#/components/schemas/DucklakeSettings"
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/workspaces/edit_datatable_config:
|
|
post:
|
|
summary: edit datatable settings
|
|
operationId: editDataTableConfig
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: DataTable settings
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: [settings]
|
|
properties:
|
|
settings:
|
|
$ref: "#/components/schemas/DataTableSettings"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Workspace Git sync settings
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
git_sync_settings:
|
|
$ref: "#/components/schemas/WorkspaceGitSyncSettings"
|
|
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
$ref: "#/components/schemas/GitRepositorySettings"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Workspace deploy UI settings
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
deploy_ui_settings:
|
|
$ref: "#/components/schemas/WorkspaceDeployUISettings"
|
|
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Workspace default app
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkspaceDefaultScripts"
|
|
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
get:
|
|
summary: get default scripts for workspace
|
|
operationId: get default scripts
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: status
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkspaceDefaultScripts"
|
|
|
|
/w/{workspace}/workspaces/set_environment_variable:
|
|
post:
|
|
summary: set environment variable
|
|
operationId: setEnvironmentVariable
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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
|
|
google_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
|
|
- google_used
|
|
/w/{workspace}/users/list:
|
|
get:
|
|
summary: list users
|
|
operationId: listUsers
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/User"
|
|
|
|
/w/{workspace}/users/list_usage:
|
|
get:
|
|
summary: list users usage
|
|
operationId: listUsersUsage
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/UserUsage"
|
|
|
|
/w/{workspace}/users/list_usernames:
|
|
get:
|
|
summary: list usernames
|
|
operationId: listUsernames
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: user
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/users/username_to_email/{username}:
|
|
get:
|
|
summary: get email from username
|
|
operationId: usernameToEmail
|
|
tags:
|
|
- user
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
$ref: "#/components/schemas/ScopeDomain"
|
|
|
|
/users/tokens/create:
|
|
post:
|
|
summary: create token
|
|
operationId: createToken
|
|
tags:
|
|
- user
|
|
requestBody:
|
|
description: new token
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewToken"
|
|
responses:
|
|
"201":
|
|
description: token created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/users/tokens/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:
|
|
$ref: "#/components/schemas/NewTokenImpersonate"
|
|
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
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: truncated token
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/TruncatedToken"
|
|
|
|
/w/{workspace}/oidc/token/{audience}:
|
|
post:
|
|
summary: get OIDC token (ee only)
|
|
operationId: getOidcToken
|
|
tags:
|
|
- oidc
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
$ref: "#/components/schemas/CreateVariable"
|
|
responses:
|
|
"201":
|
|
description: variable created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/variables/encrypt:
|
|
post:
|
|
summary: encrypt value
|
|
operationId: encryptValue
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- 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:
|
|
$ref: "#/components/schemas/EditVariable"
|
|
responses:
|
|
"200":
|
|
description: variable updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/variables/get/{path}:
|
|
get:
|
|
summary: get variable
|
|
operationId: getVariable
|
|
x-mcp-tool: true
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: decrypt_secret
|
|
description: |
|
|
ask to decrypt secret if this variable is secret
|
|
(if not secret no effect, default: true)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- 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:
|
|
$ref: "#/components/schemas/ListableVariable"
|
|
|
|
/w/{workspace}/variables/get_value/{path}:
|
|
get:
|
|
summary: get variable value
|
|
operationId: getVariableValue
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: variable
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/variables/list:
|
|
get:
|
|
summary: list variables
|
|
operationId: listVariable
|
|
x-mcp-tool: true
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: path_start
|
|
description: filter variables by path prefix
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: path
|
|
description: exact path match filter
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: description
|
|
description: pattern match filter for description field (case-insensitive)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: value
|
|
description: pattern match filter for non-secret variable values (case-insensitive)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: broad_filter
|
|
description: broad search across multiple fields (case-insensitive substring match)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: variable list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ListableVariable"
|
|
|
|
/w/{workspace}/variables/list_contextual:
|
|
get:
|
|
summary: list contextual variables
|
|
operationId: listContextualVariables
|
|
tags:
|
|
- variable
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: contextual variable list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ContextualVariable"
|
|
|
|
/w/{workspace}/workspaces/get_secondary_storage_names:
|
|
get:
|
|
summary: get secondary storage names
|
|
operationId: getSecondaryStorageNames
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
$ref: "#/components/schemas/CriticalAlert"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: list of protection rules
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ProtectionRuleset"
|
|
post:
|
|
summary: create a new protection rule
|
|
operationId: createProtectionRule
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
$ref: "#/components/schemas/ProtectionRules"
|
|
bypass_groups:
|
|
$ref: "#/components/schemas/RuleBypasserGroups"
|
|
bypass_users:
|
|
$ref: "#/components/schemas/RuleBypasserUsers"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
$ref: "#/components/schemas/ProtectionRules"
|
|
bypass_groups:
|
|
$ref: "#/components/schemas/RuleBypasserGroups"
|
|
bypass_users:
|
|
$ref: "#/components/schemas/RuleBypasserUsers"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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/log_chat:
|
|
post:
|
|
summary: log AI chat message
|
|
operationId: logAiChat
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- session_id
|
|
- provider
|
|
- model
|
|
- mode
|
|
properties:
|
|
session_id:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
model:
|
|
type: string
|
|
mode:
|
|
type: string
|
|
responses:
|
|
"204":
|
|
description: logged
|
|
|
|
/w/{workspace}/workspaces/cloud_quotas:
|
|
get:
|
|
summary: get cloud quota usage and limits for workspace
|
|
operationId: getCloudQuotas
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: cloud quota usage and limits
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
scripts:
|
|
$ref: "#/components/schemas/QuotaInfo"
|
|
flows:
|
|
$ref: "#/components/schemas/QuotaInfo"
|
|
apps:
|
|
$ref: "#/components/schemas/QuotaInfo"
|
|
variables:
|
|
$ref: "#/components/schemas/QuotaInfo"
|
|
resources:
|
|
$ref: "#/components/schemas/QuotaInfo"
|
|
required:
|
|
- scripts
|
|
- flows
|
|
- apps
|
|
- variables
|
|
- resources
|
|
|
|
/w/{workspace}/workspaces/prune_versions:
|
|
post:
|
|
summary: prune old versions of scripts, flows, or apps
|
|
operationId: pruneVersions
|
|
tags:
|
|
- workspace
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
resource_type:
|
|
type: string
|
|
enum:
|
|
- scripts
|
|
- flows
|
|
- apps
|
|
required:
|
|
- resource_type
|
|
responses:
|
|
"200":
|
|
description: number of pruned versions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
pruned:
|
|
type: integer
|
|
required:
|
|
- pruned
|
|
|
|
/w/{workspace}/workspaces/public_app_rate_limit:
|
|
post:
|
|
summary: Set public app rate limit for this workspace
|
|
operationId: setPublicAppRateLimit
|
|
tags:
|
|
- setting
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/ClientName"
|
|
requestBody:
|
|
description: Partially filled script
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
state:
|
|
type: string
|
|
|
|
responses:
|
|
"200":
|
|
description: >
|
|
Successfully authenticated. The session ID is returned in a cookie
|
|
named `token` and as plaintext response. Preferred method of
|
|
authorization is through the bearer token. The cookie is only for
|
|
browser convenience.
|
|
|
|
headers:
|
|
Set-Cookie:
|
|
schema:
|
|
type: string
|
|
example: token=abcde12345; Path=/; HttpOnly
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/oauth/connect_slack_callback:
|
|
post:
|
|
summary: connect slack callback
|
|
operationId: connectSlackCallback
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: code endpoint
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
state:
|
|
type: string
|
|
required:
|
|
- code
|
|
- state
|
|
responses:
|
|
"200":
|
|
description: slack token
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/oauth/connect_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:
|
|
- $ref: "#/components/parameters/ClientName"
|
|
requestBody:
|
|
description: code endpoint
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
state:
|
|
type: string
|
|
required:
|
|
- code
|
|
- state
|
|
responses:
|
|
"200":
|
|
description: oauth token
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TokenResponse"
|
|
|
|
/w/{workspace}/oauth/create_account:
|
|
post:
|
|
summary: create OAuth account
|
|
operationId: createAccount
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: code endpoint
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
refresh_token:
|
|
type: string
|
|
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:
|
|
$ref: "#/components/schemas/TokenResponse"
|
|
|
|
/w/{workspace}/oauth/refresh_token/{id}:
|
|
post:
|
|
summary: refresh token
|
|
operationId: refreshToken
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/AccountId"
|
|
requestBody:
|
|
description: variable path
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
required:
|
|
- path
|
|
responses:
|
|
"200":
|
|
description: token refreshed
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/oauth/disconnect/{id}:
|
|
post:
|
|
summary: disconnect account
|
|
operationId: disconnectAccount
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/AccountId"
|
|
responses:
|
|
"200":
|
|
description: disconnected client
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/oauth/disconnect_slack:
|
|
post:
|
|
summary: disconnect slack
|
|
operationId: disconnectSlack
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: disconnected slack
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/oauth/disconnect_teams:
|
|
post:
|
|
summary: disconnect teams
|
|
operationId: disconnectTeams
|
|
tags:
|
|
- oauth
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
$ref: "#/components/schemas/CreateResource"
|
|
responses:
|
|
"201":
|
|
description: resource created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/delete/{path}:
|
|
delete:
|
|
summary: delete resource
|
|
operationId: deleteResource
|
|
x-mcp-tool: true
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: resource deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/delete_bulk:
|
|
delete:
|
|
summary: delete resources in bulk
|
|
operationId: deleteResourcesBulk
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated resource
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditResource"
|
|
responses:
|
|
"200":
|
|
description: resource updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/update_value/{path}:
|
|
post:
|
|
summary: update resource value
|
|
operationId: updateResourceValue
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated resource
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
value: {}
|
|
responses:
|
|
"200":
|
|
description: resource value updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/get/{path}:
|
|
get:
|
|
summary: get resource
|
|
operationId: getResource
|
|
x-mcp-tool: true
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: resource
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Resource"
|
|
|
|
/w/{workspace}/resources/get_value_interpolated/{path}:
|
|
get:
|
|
summary: get resource interpolated (variables and resources are fully unrolled)
|
|
operationId: getResourceValueInterpolated
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: does resource exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/resources/list:
|
|
get:
|
|
summary: list resources
|
|
operationId: listResource
|
|
x-mcp-tool: true
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- name: resource_type
|
|
description: resource_types to list from, separated by ',',
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: resource_type_exclude
|
|
description: resource_types to not list from, separated by ',',
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: path_start
|
|
description: filter resources by path prefix
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: path
|
|
description: exact path match filter
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: description
|
|
description: pattern match filter for description field (case-insensitive)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: value
|
|
description: JSONB subset match filter using base64 encoded JSON
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: broad_filter
|
|
description: broad search across multiple fields (case-insensitive substring match)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: resource list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ListableResource"
|
|
|
|
/w/{workspace}/resources/list_search:
|
|
get:
|
|
summary: list resources for search
|
|
operationId: listSearchResource
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new resource_type
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ResourceType"
|
|
responses:
|
|
"201":
|
|
description: resource_type created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/file_resource_type_to_file_ext_map:
|
|
get:
|
|
summary: get map from resource type to format extension
|
|
operationId: fileResourceTypeToFileExtMap
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: map from resource type to file resource info
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
properties:
|
|
format_extension:
|
|
type: string
|
|
nullable: true
|
|
is_fileset:
|
|
type: boolean
|
|
|
|
/w/{workspace}/resources/type/delete/{path}:
|
|
delete:
|
|
summary: delete resource_type
|
|
operationId: deleteResourceType
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: resource_type deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/type/update/{path}:
|
|
post:
|
|
summary: update resource_type
|
|
operationId: updateResourceType
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated resource_type
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditResourceType"
|
|
responses:
|
|
"200":
|
|
description: resource_type updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/resources/type/get/{path}:
|
|
get:
|
|
summary: get resource_type
|
|
operationId: getResourceType
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: resource_type deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ResourceType"
|
|
|
|
/w/{workspace}/resources/type/exists/{path}:
|
|
get:
|
|
summary: does resource_type exists
|
|
operationId: existsResourceType
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: does resource_type exist
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/resources/type/list:
|
|
get:
|
|
summary: list resource_types
|
|
operationId: listResourceType
|
|
x-mcp-tool: true
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: resource_type list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ResourceType"
|
|
|
|
/w/{workspace}/resources/type/listnames:
|
|
get:
|
|
summary: list resource_types names
|
|
operationId: listResourceTypeNames
|
|
tags:
|
|
- resource
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: resource_type list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/npm_proxy/metadata/{package}:
|
|
get:
|
|
summary: get npm package metadata from private registry
|
|
operationId: getNpmPackageMetadata
|
|
tags:
|
|
- npm_proxy
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/PathId"
|
|
responses:
|
|
"200":
|
|
description: flow
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
flow:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/OpenFlow"
|
|
|
|
/apps/hub/list:
|
|
get:
|
|
summary: list all hub apps
|
|
operationId: listHubApps
|
|
tags:
|
|
- app
|
|
responses:
|
|
"200":
|
|
description: hub apps list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
apps:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: number
|
|
app_id:
|
|
type: number
|
|
summary:
|
|
type: string
|
|
apps:
|
|
type: array
|
|
items:
|
|
type: string
|
|
approved:
|
|
type: boolean
|
|
votes:
|
|
type: number
|
|
required:
|
|
- id
|
|
- app_id
|
|
- summary
|
|
- apps
|
|
- approved
|
|
- votes
|
|
|
|
/apps/hub/get/{id}:
|
|
get:
|
|
summary: get hub app by id
|
|
operationId: getHubAppById
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/PathId"
|
|
responses:
|
|
"200":
|
|
description: app
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
app:
|
|
type: object
|
|
properties:
|
|
summary:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- summary
|
|
- value
|
|
required:
|
|
- app
|
|
|
|
/apps/hub/get_raw/{id}:
|
|
get:
|
|
summary: get hub raw app by id
|
|
operationId: getHubRawAppById
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/PathId"
|
|
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:
|
|
- $ref: "#/components/parameters/CustomPath"
|
|
responses:
|
|
"200":
|
|
description: app details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf:
|
|
- $ref: "#/components/schemas/AppWithLastVersion"
|
|
- type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
|
|
/scripts/hub/get/{path}:
|
|
get:
|
|
summary: get hub script content by path
|
|
operationId: getHubScriptContentByPath
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/scripts/hub/get_full/{path}:
|
|
get:
|
|
summary: get full hub script by path
|
|
operationId: getHubScriptByPath
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
content:
|
|
type: string
|
|
lockfile:
|
|
type: string
|
|
schema: {}
|
|
language:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
required:
|
|
- content
|
|
- language
|
|
|
|
/scripts/hub/pick/{path}:
|
|
get:
|
|
summary: record hub script pick
|
|
operationId: pickHubScriptByPath
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
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:
|
|
$ref: "#/components/schemas/HubScriptKind"
|
|
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:
|
|
$ref: "#/components/schemas/HubScriptKind"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/OrderDesc"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- name: path_start
|
|
description: mask to filter matching starting path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: path_exact
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: first_parent_hash
|
|
description: mask to filter scripts whom first direct parent has exact hash
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: last_parent_hash
|
|
description: |
|
|
mask to filter scripts whom last parent in the chain has exact hash.
|
|
Beware that each script stores only a limited number of parents. Hence
|
|
the last parent hash for a script is not necessarily its top-most parent.
|
|
To find the top-most parent you will have to jump from last to last hash
|
|
until finding the parent
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: parent_hash
|
|
description: |
|
|
is the hash present in the array of stored parent hashes for this script.
|
|
The same warning applies than for last_parent_hash. A script only store a
|
|
limited number of direct parent
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: show_archived
|
|
description: |
|
|
(default false)
|
|
show 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:
|
|
$ref: "#/components/schemas/Script"
|
|
|
|
/w/{workspace}/scripts/list_paths:
|
|
get:
|
|
summary: list all scripts paths
|
|
operationId: listScriptPaths
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: list of script paths
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/drafts/create:
|
|
post:
|
|
summary: create draft
|
|
operationId: createDraft
|
|
tags:
|
|
- draft
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: kind
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- script
|
|
- flow
|
|
- app
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Partially filled script
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewScript"
|
|
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: New workspace dependencies
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewWorkspaceDependencies"
|
|
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: language
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: language
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: All workspace dependencies
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WorkspaceDependencies"
|
|
|
|
/w/{workspace}/workspace_dependencies/get_latest/{language}:
|
|
get:
|
|
summary: get latest workspace dependencies by language and name
|
|
operationId: getLatestWorkspaceDependencies
|
|
tags:
|
|
- workspace_dependencies
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: language
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
- name: name
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Latest workspace dependencies
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkspaceDependencies"
|
|
|
|
/w/{workspace}/scripts/archive/p/{path}:
|
|
post:
|
|
summary: archive script by path
|
|
operationId: archiveScriptByPath
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script archived
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/scripts/archive/h/{hash}:
|
|
post:
|
|
summary: archive script by hash
|
|
operationId: archiveScriptByHash
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptHash"
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Script"
|
|
|
|
/w/{workspace}/scripts/delete/h/{hash}:
|
|
post:
|
|
summary: delete script by hash (erase content but keep hash, require admin)
|
|
operationId: deleteScriptByHash
|
|
x-mcp-tool: true
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptHash"
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Script"
|
|
|
|
/w/{workspace}/scripts/delete/p/{path}:
|
|
post:
|
|
summary: delete script at a given path (require admin)
|
|
operationId: deleteScriptByPath
|
|
x-mcp-tool: true
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- name: with_starred_info
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Script"
|
|
|
|
/w/{workspace}/scripts/get_triggers_count/{path}:
|
|
get:
|
|
summary: get triggers count of script
|
|
operationId: getTriggersCountOfScript
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: triggers count
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TriggersCount"
|
|
|
|
/w/{workspace}/scripts/list_tokens/{path}:
|
|
get:
|
|
summary: get tokens with script scope
|
|
operationId: listTokensOfScript
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: tokens list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/TruncatedToken"
|
|
|
|
/w/{workspace}/scripts/get/draft/{path}:
|
|
get:
|
|
summary: get script by path with draft
|
|
operationId: getScriptByPathWithDraft
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewScriptWithDraft"
|
|
|
|
/w/{workspace}/scripts/history/p/{path}:
|
|
get:
|
|
summary: get history of a script by path
|
|
operationId: getScriptHistoryByPath
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script history
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ScriptHistory"
|
|
|
|
/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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
tags:
|
|
- script
|
|
responses:
|
|
"200":
|
|
description: Script version/hash
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptHistory"
|
|
|
|
/w/{workspace}/scripts/history_update/h/{hash}/p/{path}:
|
|
post:
|
|
summary: update history of a script
|
|
operationId: updateScriptHistory
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptHash"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Token"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script content
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/scripts/exists/p/{path}:
|
|
get:
|
|
summary: exists script by path
|
|
operationId: existsScriptByPath
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: does it exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/scripts/get/h/{hash}:
|
|
get:
|
|
summary: get script by hash
|
|
operationId: getScriptByHash
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptHash"
|
|
- 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:
|
|
$ref: "#/components/schemas/Script"
|
|
|
|
/w/{workspace}/scripts/raw/h/{path}:
|
|
get:
|
|
summary: raw script by hash
|
|
operationId: rawScriptByHash
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: script content
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/scripts/deployment_status/h/{hash}:
|
|
get:
|
|
summary: get script deployment status
|
|
operationId: getScriptDeploymentStatus
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptHash"
|
|
responses:
|
|
"200":
|
|
description: script details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
lock:
|
|
type: string
|
|
lock_error_logs:
|
|
type: string
|
|
job_id:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/scripts/raw_temp/store:
|
|
post:
|
|
summary: store raw script content temporarily for CLI lock generation
|
|
operationId: storeRawScriptTemp
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: script content to store
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: hash of stored content
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/scripts/raw_temp/diff:
|
|
post:
|
|
summary: diff local script hashes against deployed versions
|
|
operationId: diffRawScriptsWithDeployed
|
|
tags:
|
|
- script
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: scripts and workspace deps to diff against deployed versions
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- scripts
|
|
properties:
|
|
scripts:
|
|
description: map of script path to SHA256 content hash
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
workspace_deps:
|
|
description: workspace dependencies to diff
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- path
|
|
- language
|
|
- hash
|
|
properties:
|
|
path:
|
|
description: CLI path (e.g. dependencies/package.json)
|
|
type: string
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
name:
|
|
description: named workspace dependency (null for default)
|
|
type: string
|
|
hash:
|
|
description: SHA256 content hash
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: list of paths that differ from deployed versions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/list_selected_job_groups:
|
|
# We use post because sending a huge array as a query param can produce
|
|
# URLs that may be too long
|
|
post:
|
|
summary: list selected jobs script/flow schemas grouped by (kind, path)
|
|
operationId: listSelectedJobGroups
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- name: scheduled_for
|
|
description: when to schedule this job (leave empty for immediate run)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
- name: scheduled_in_secs
|
|
description: schedule the script to execute in the number of seconds starting now
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- name: skip_preprocessor
|
|
description: skip the preprocessor
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/CacheTtl"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the script owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
requestBody:
|
|
description: script args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
responses:
|
|
"201":
|
|
description: job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/jobs/run_wait_result/p/{path}:
|
|
post:
|
|
summary: run script by path
|
|
operationId: runWaitResultScriptByPath
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/CacheTtl"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
|
|
requestBody:
|
|
description: script args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
responses:
|
|
"200":
|
|
description: job result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
get:
|
|
summary: run script by path with get
|
|
operationId: runWaitResultScriptByPathGet
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/CacheTtl"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/Payload"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- 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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: version
|
|
description: flow version ID
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- 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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: version
|
|
description: flow version ID
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/Payload"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- 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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/Payload"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: version
|
|
description: flow version ID
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- 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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: version
|
|
description: flow version ID
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/Payload"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/CacheTtl"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- 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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/CacheTtl"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/Payload"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: hash
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/CacheTtl"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- 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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: hash
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/CacheTtl"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- $ref: "#/components/parameters/QueueLimit"
|
|
- $ref: "#/components/parameters/Payload"
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: flow_job_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: node_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/OrderDesc"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- name: path_start
|
|
description: mask to filter matching starting path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: path_exact
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: show_archived
|
|
description: |
|
|
(default false)
|
|
show 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:
|
|
- $ref: "#/components/schemas/Flow"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
tags:
|
|
- flow
|
|
responses:
|
|
"200":
|
|
description: Flow history
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/FlowVersion"
|
|
|
|
/w/{workspace}/flows/get_latest_version/{path}:
|
|
get:
|
|
summary: get flow's latest version
|
|
operationId: getFlowLatestVersion
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
tags:
|
|
- flow
|
|
responses:
|
|
"200":
|
|
description: Flow version
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/FlowVersion"
|
|
|
|
/w/{workspace}/flows/list_paths_from_workspace_runnable/{runnable_kind}/{path}:
|
|
get:
|
|
summary: list flow paths from workspace runnable
|
|
operationId: listFlowPathsFromWorkspaceRunnable
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/RunnableKind"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: version
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
tags:
|
|
- flow
|
|
responses:
|
|
"200":
|
|
description: flow details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Flow"
|
|
|
|
/w/{workspace}/flows/history_update/v/{version}:
|
|
post:
|
|
summary: update flow history
|
|
operationId: updateFlowHistory
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- name: with_starred_info
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: flow details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Flow"
|
|
|
|
/w/{workspace}/flows/deployment_status/p/{path}:
|
|
get:
|
|
summary: get flow deployment status
|
|
operationId: getFlowDeploymentStatus
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: triggers count
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TriggersCount"
|
|
|
|
/w/{workspace}/flows/list_tokens/{path}:
|
|
get:
|
|
summary: get tokens with flow scope
|
|
operationId: listTokensOfFlow
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: tokens list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/TruncatedToken"
|
|
|
|
/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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: flow details with draft
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf:
|
|
- $ref: "#/components/schemas/Flow"
|
|
- type: object
|
|
properties:
|
|
draft:
|
|
$ref: "#/components/schemas/Flow"
|
|
|
|
/w/{workspace}/flows/exists/{path}:
|
|
get:
|
|
summary: exists flow by path
|
|
operationId: existsFlowByPath
|
|
tags:
|
|
- flow
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: flow details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/flows/create:
|
|
post:
|
|
summary: create flow
|
|
operationId: createFlow
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: Partially filled flow
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf:
|
|
- $ref: "#/components/schemas/OpenFlowWPath"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
requestBody:
|
|
description: Partially filled flow
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
allOf:
|
|
- $ref: "#/components/schemas/OpenFlowWPath"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- 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:
|
|
$ref: "#/components/schemas/FlowConversation"
|
|
|
|
/w/{workspace}/flow_conversations/delete/{conversation_id}:
|
|
delete:
|
|
summary: delete flow conversation
|
|
operationId: deleteFlowConversation
|
|
tags:
|
|
- flow_conversation
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- 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:
|
|
$ref: "#/components/schemas/FlowConversationMessage"
|
|
|
|
/w/{workspace}/raw_apps/list:
|
|
get:
|
|
summary: list all raw apps
|
|
operationId: listRawApps
|
|
tags:
|
|
- raw_app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/OrderDesc"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- name: path_start
|
|
description: mask to filter matching starting path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: path_exact
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: starred_only
|
|
description: |
|
|
(default false)
|
|
show only the starred items
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: All raw apps
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ListableRawApp"
|
|
|
|
/w/{workspace}/apps/get_data/v/{secretWithExtension}:
|
|
get:
|
|
summary: get raw app data by
|
|
operationId: getRawAppData
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/OrderDesc"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- name: path_start
|
|
description: mask to filter matching starting path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: path_exact
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: starred_only
|
|
description: |
|
|
(default false)
|
|
show only the starred items
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- 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:
|
|
$ref: "#/components/schemas/ListableApp"
|
|
|
|
/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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new app
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
value: {}
|
|
summary:
|
|
type: string
|
|
policy:
|
|
$ref: "#/components/schemas/Policy"
|
|
draft_only:
|
|
type: boolean
|
|
deployment_message:
|
|
type: string
|
|
custom_path:
|
|
type: string
|
|
preserve_on_behalf_of:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of value in the policy instead of overwriting it."
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
$ref: "#/components/schemas/Policy"
|
|
draft_only:
|
|
type: boolean
|
|
deployment_message:
|
|
type: string
|
|
custom_path:
|
|
type: string
|
|
preserve_on_behalf_of:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of value in the policy instead of overwriting it."
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: app exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/apps/get/p/{path}:
|
|
get:
|
|
summary: get app by path
|
|
operationId: getAppByPath
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- name: with_starred_info
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: app details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppWithLastVersion"
|
|
|
|
/w/{workspace}/apps/get/lite/{path}:
|
|
get:
|
|
summary: get app lite by path
|
|
operationId: getAppLiteByPath
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: app lite details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppWithLastVersion"
|
|
|
|
/w/{workspace}/apps/get/draft/{path}:
|
|
get:
|
|
summary: get app by path with draft
|
|
operationId: getAppByPathWithDraft
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: app details with draft
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppWithLastVersionWDraft"
|
|
|
|
/w/{workspace}/apps/history/p/{path}:
|
|
get:
|
|
summary: get app history by path
|
|
operationId: getAppHistoryByPath
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
responses:
|
|
"200":
|
|
description: app history
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/AppHistory"
|
|
|
|
/w/{workspace}/apps/get_latest_version/{path}:
|
|
get:
|
|
summary: get apps's latest version
|
|
operationId: getAppLatestVersion
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
tags:
|
|
- app
|
|
responses:
|
|
"200":
|
|
description: App version
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppHistory"
|
|
/w/{workspace}/apps/list_paths_from_workspace_runnable/{runnable_kind}/{path}:
|
|
get:
|
|
summary: list app paths from workspace runnable
|
|
operationId: listAppPathsFromWorkspaceRunnable
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/RunnableKind"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/PathId"
|
|
- $ref: "#/components/parameters/PathVersion"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: app details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppWithLastVersion"
|
|
|
|
/w/{workspace}/apps_u/public_resource/{path}:
|
|
get:
|
|
summary: get public resource
|
|
operationId: get public resource
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: app secret
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/apps/get/v/{id}:
|
|
get:
|
|
summary: get app by version
|
|
operationId: getAppByVersion
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/PathId"
|
|
responses:
|
|
"200":
|
|
description: app details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppWithLastVersion"
|
|
|
|
/w/{workspace}/apps/delete/{path}:
|
|
delete:
|
|
summary: delete app
|
|
operationId: deleteApp
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: app deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/apps/update/{path}:
|
|
post:
|
|
summary: update app
|
|
operationId: updateApp
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
requestBody:
|
|
description: update app
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
value: {}
|
|
policy:
|
|
$ref: "#/components/schemas/Policy"
|
|
deployment_message:
|
|
type: string
|
|
custom_path:
|
|
type: string
|
|
preserve_on_behalf_of:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of value in the policy instead of overwriting it."
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
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:
|
|
$ref: "#/components/schemas/Policy"
|
|
deployment_message:
|
|
type: string
|
|
custom_path:
|
|
type: string
|
|
preserve_on_behalf_of:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of value in the policy instead of overwriting it."
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/CustomPath"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: s3 objects to sign
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
s3_objects:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/S3Object"
|
|
required:
|
|
- s3_objects
|
|
responses:
|
|
"200":
|
|
description: signed s3 objects
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/S3Object"
|
|
|
|
/w/{workspace}/apps_u/execute_component/{path}:
|
|
post:
|
|
summary: executeComponent
|
|
operationId: executeComponent
|
|
tags:
|
|
- app
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
requestBody:
|
|
description: update app
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
component:
|
|
type: string
|
|
#script: script/<path>
|
|
#flow: flow/<path>
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
- name: scheduled_for
|
|
description: when to schedule this job (leave empty for immediate run)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
- name: scheduled_in_secs
|
|
description: schedule the script to execute in the number of seconds starting now
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the flow owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- 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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the flow owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- 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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
$ref: "#/components/schemas/InputTransform"
|
|
use_latest_version:
|
|
type: boolean
|
|
flow_options_by_path:
|
|
type: object
|
|
additionalProperties:
|
|
type: object
|
|
properties:
|
|
input_transforms:
|
|
type: object
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/InputTransform"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: scheduled_for
|
|
description: when to schedule this job (leave empty for immediate run)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
- name: scheduled_in_secs
|
|
description: schedule the script to execute in the number of seconds starting now
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the flow owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
|
|
requestBody:
|
|
description: 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptHash"
|
|
- name: scheduled_for
|
|
description: when to schedule this job (leave empty for immediate run)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
- name: scheduled_in_secs
|
|
description: schedule the script to execute in the number of seconds starting now
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- $ref: "#/components/parameters/SkipPreprocessor"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/WorkerTag"
|
|
- $ref: "#/components/parameters/CacheTtl"
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the script owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
requestBody:
|
|
description: Partially filled args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
|
|
responses:
|
|
"201":
|
|
description: job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/jobs/run/preview:
|
|
post:
|
|
summary: run script preview
|
|
operationId: runScriptPreview
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the script owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
|
|
requestBody:
|
|
description: preview
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Preview"
|
|
|
|
responses:
|
|
"201":
|
|
description: job created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
|
|
/w/{workspace}/jobs/run_inline/preview:
|
|
post:
|
|
summary: run script preview without starting a new job
|
|
operationId: runScriptPreviewInline
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: preview
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PreviewInline"
|
|
|
|
responses:
|
|
"200":
|
|
description: script result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/jobs/run_inline/p/{path}:
|
|
post:
|
|
summary: run script by path without starting a new job
|
|
operationId: runScriptByPathInline
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptPath"
|
|
requestBody:
|
|
description: script args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/InlineScriptArgs"
|
|
|
|
responses:
|
|
"200":
|
|
description: script result
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
|
|
/w/{workspace}/jobs/run_inline/h/{hash}:
|
|
post:
|
|
summary: run script by hash without starting a new job
|
|
operationId: runScriptByHashInline
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/ScriptHash"
|
|
requestBody:
|
|
description: script args
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/InlineScriptArgs"
|
|
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
|
|
requestBody:
|
|
description: preview
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Preview"
|
|
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
|
|
- 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:
|
|
$ref: "#/components/schemas/WorkflowTask"
|
|
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
|
|
requestBody:
|
|
description: raw script content
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
raw_scripts:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/RawScriptForDependencies"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/IncludeHeader"
|
|
- name: invisible_to_owner
|
|
description: make the run invisible to the the script owner (default false)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- $ref: "#/components/parameters/NewJobId"
|
|
- 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:
|
|
$ref: "#/components/schemas/FlowPreview"
|
|
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
$ref: "#/components/schemas/FlowPreview"
|
|
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: dynamic select request
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DynamicInputData"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/OrderDesc"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/Worker"
|
|
- $ref: "#/components/parameters/ScriptExactPath"
|
|
- $ref: "#/components/parameters/ScriptStartPath"
|
|
- $ref: "#/components/parameters/SchedulePath"
|
|
- $ref: "#/components/parameters/TriggerPath"
|
|
- $ref: "#/components/parameters/JobTriggerKind"
|
|
- $ref: "#/components/parameters/ScriptExactHash"
|
|
- $ref: "#/components/parameters/StartedBefore"
|
|
- $ref: "#/components/parameters/StartedAfter"
|
|
- $ref: "#/components/parameters/Success"
|
|
- $ref: "#/components/parameters/ScheduledForBeforeNow"
|
|
- $ref: "#/components/parameters/JobKinds"
|
|
- $ref: "#/components/parameters/Suspended"
|
|
- $ref: "#/components/parameters/Running"
|
|
- $ref: "#/components/parameters/ArgsFilter"
|
|
- $ref: "#/components/parameters/ResultFilter"
|
|
- $ref: "#/components/parameters/AllowWildcards"
|
|
- $ref: "#/components/parameters/Tag"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- 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:
|
|
$ref: "#/components/schemas/QueuedJob"
|
|
|
|
/w/{workspace}/jobs/queue/count:
|
|
get:
|
|
summary: get queue count
|
|
operationId: getQueueCount
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- $ref: "#/components/parameters/Label"
|
|
- $ref: "#/components/parameters/Worker"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/ScriptExactPath"
|
|
- $ref: "#/components/parameters/ScriptStartPath"
|
|
- $ref: "#/components/parameters/SchedulePath"
|
|
- $ref: "#/components/parameters/ScriptExactHash"
|
|
- $ref: "#/components/parameters/StartedBefore"
|
|
- $ref: "#/components/parameters/StartedAfter"
|
|
- $ref: "#/components/parameters/CreatedBefore"
|
|
- $ref: "#/components/parameters/CreatedAfter"
|
|
- $ref: "#/components/parameters/CompletedBefore"
|
|
- $ref: "#/components/parameters/CompletedAfter"
|
|
- $ref: "#/components/parameters/CreatedBeforeQueue"
|
|
- $ref: "#/components/parameters/CreatedAfterQueue"
|
|
- $ref: "#/components/parameters/Running"
|
|
- $ref: "#/components/parameters/ScheduledForBeforeNow"
|
|
- $ref: "#/components/parameters/JobKinds"
|
|
- $ref: "#/components/parameters/Suspended"
|
|
- $ref: "#/components/parameters/ArgsFilter"
|
|
- $ref: "#/components/parameters/Tag"
|
|
- $ref: "#/components/parameters/ResultFilter"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/OrderDesc"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/ScriptExactPath"
|
|
- $ref: "#/components/parameters/ScriptStartPath"
|
|
- $ref: "#/components/parameters/SchedulePath"
|
|
- $ref: "#/components/parameters/ScriptExactHash"
|
|
- $ref: "#/components/parameters/StartedBefore"
|
|
- $ref: "#/components/parameters/StartedAfter"
|
|
- $ref: "#/components/parameters/Success"
|
|
- $ref: "#/components/parameters/ScheduledForBeforeNow"
|
|
- $ref: "#/components/parameters/JobKinds"
|
|
- $ref: "#/components/parameters/Suspended"
|
|
- $ref: "#/components/parameters/Running"
|
|
- $ref: "#/components/parameters/ArgsFilter"
|
|
- $ref: "#/components/parameters/ResultFilter"
|
|
- $ref: "#/components/parameters/AllowWildcards"
|
|
- $ref: "#/components/parameters/Tag"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: trigger_kind
|
|
description: The kind of trigger
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/JobTriggerKind"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: trigger_kind
|
|
description: The kind of trigger
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/JobTriggerKind"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/OrderDesc"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- $ref: "#/components/parameters/Label"
|
|
- $ref: "#/components/parameters/Worker"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/ScriptExactPath"
|
|
- $ref: "#/components/parameters/ScriptStartPath"
|
|
- $ref: "#/components/parameters/SchedulePath"
|
|
- $ref: "#/components/parameters/ScriptExactHash"
|
|
- $ref: "#/components/parameters/StartedBefore"
|
|
- $ref: "#/components/parameters/StartedAfter"
|
|
- $ref: "#/components/parameters/Success"
|
|
- $ref: "#/components/parameters/JobKinds"
|
|
- $ref: "#/components/parameters/ArgsFilter"
|
|
- $ref: "#/components/parameters/ResultFilter"
|
|
- $ref: "#/components/parameters/AllowWildcards"
|
|
- $ref: "#/components/parameters/Tag"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- 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:
|
|
$ref: "#/components/schemas/CompletedJob"
|
|
|
|
/w/{workspace}/jobs/completed/export:
|
|
get:
|
|
summary: export all completed jobs for backup/migration
|
|
operationId: exportCompletedJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: All completed jobs exported
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ExportableCompletedJob"
|
|
|
|
/w/{workspace}/jobs/completed/import:
|
|
post:
|
|
summary: import completed jobs from backup/migration
|
|
operationId: importCompletedJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ExportableCompletedJob"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: All queued jobs exported
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ExportableQueuedJob"
|
|
|
|
/w/{workspace}/jobs/queue/import:
|
|
post:
|
|
summary: import queued jobs from backup/migration
|
|
operationId: importQueuedJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ExportableQueuedJob"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- $ref: "#/components/parameters/Label"
|
|
- $ref: "#/components/parameters/Worker"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/ScriptExactPath"
|
|
- $ref: "#/components/parameters/ScriptStartPath"
|
|
- $ref: "#/components/parameters/SchedulePath"
|
|
- $ref: "#/components/parameters/ScriptExactHash"
|
|
- $ref: "#/components/parameters/StartedBefore"
|
|
- $ref: "#/components/parameters/StartedAfter"
|
|
- $ref: "#/components/parameters/CreatedBefore"
|
|
- $ref: "#/components/parameters/CreatedAfter"
|
|
- $ref: "#/components/parameters/CompletedBefore"
|
|
- $ref: "#/components/parameters/CompletedAfter"
|
|
- $ref: "#/components/parameters/CreatedBeforeQueue"
|
|
- $ref: "#/components/parameters/CreatedAfterQueue"
|
|
- $ref: "#/components/parameters/Running"
|
|
- $ref: "#/components/parameters/ScheduledForBeforeNow"
|
|
- $ref: "#/components/parameters/JobKinds"
|
|
- $ref: "#/components/parameters/Suspended"
|
|
- $ref: "#/components/parameters/ArgsFilter"
|
|
- $ref: "#/components/parameters/Tag"
|
|
- $ref: "#/components/parameters/ResultFilter"
|
|
- $ref: "#/components/parameters/AllowWildcards"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/JobTriggerKind"
|
|
- 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
|
|
- name: broad_filter
|
|
description: broad search across multiple fields (case-insensitive substring match on path, tag, schedule path, trigger kind, label)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: All jobs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Job"
|
|
|
|
/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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- 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:
|
|
$ref: "#/components/schemas/Job"
|
|
|
|
/w/{workspace}/jobs_u/get_root_job_id/{id}:
|
|
get:
|
|
summary: get root job id
|
|
operationId: getRootJobId
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- 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:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowStatus"
|
|
workflow_as_code_status:
|
|
$ref: "#/components/schemas/WorkflowStatus"
|
|
|
|
/w/{workspace}/jobs_u/getupdate_sse/{id}:
|
|
get:
|
|
summary: get job updates via server-sent events
|
|
operationId: getJobUpdatesSSE
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: running
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
- name: log_offset
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
responses:
|
|
"200":
|
|
description: job details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CompletedJob"
|
|
|
|
/w/{workspace}/jobs_u/completed/get_result/{id}:
|
|
get:
|
|
summary: get completed job result
|
|
operationId: getCompletedJobResult
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- $ref: "#/components/parameters/GetStarted"
|
|
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
responses:
|
|
"200":
|
|
description: job details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CompletedJob"
|
|
|
|
/w/{workspace}/jobs_u/queue/cancel/{id}:
|
|
post:
|
|
summary: cancel queued or running job
|
|
operationId: cancelQueuedJob
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
requestBody:
|
|
description: reason
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
reason:
|
|
type: string
|
|
|
|
responses:
|
|
"200":
|
|
description: job canceled
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs_u/queue/cancel_persistent/{path}:
|
|
post:
|
|
summary: cancel all queued jobs for persistent script
|
|
operationId: cancelPersistentQueuedJobs
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
requestBody:
|
|
description: reason
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
reason:
|
|
type: string
|
|
|
|
responses:
|
|
"200":
|
|
description: job canceled
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/queue/position/{scheduled_for}:
|
|
get:
|
|
summary: get queue position for a job
|
|
operationId: getQueuePosition
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: job signature
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/resume_urls/{id}/{resume_id}:
|
|
get:
|
|
summary: get resume urls given a job_id, resume_id and a nonce to resume a flow
|
|
operationId: getResumeUrls
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- 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
|
|
- name: resume_button_text
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: cancel_button_text
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- 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
|
|
- name: resume_button_text
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: cancel_button_text
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- $ref: "#/components/parameters/Payload"
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: signature
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"201":
|
|
description: job resumed
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
post:
|
|
summary: resume a job for a suspended flow
|
|
operationId: resumeSuspendedJobPost
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: signature
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
responses:
|
|
"201":
|
|
description: job resumed
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs/flow/user_states/{id}/{key}:
|
|
post:
|
|
summary: set flow user state at a given key
|
|
operationId: setFlowUserState
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
responses:
|
|
"201":
|
|
description: job resumed
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/jobs_u/cancel/{id}/{resume_id}/{signature}:
|
|
get:
|
|
summary: cancel a job for a suspended flow
|
|
operationId: cancelSuspendedJobGet
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: signature
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"201":
|
|
description: job canceled
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
post:
|
|
summary: cancel a job for a suspended flow
|
|
operationId: cancelSuspendedJobPost
|
|
tags:
|
|
- job
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: signature
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
responses:
|
|
"201":
|
|
description: job 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
- name: resume_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
- name: signature
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: approver
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: parent flow details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
job:
|
|
$ref: "#/components/schemas/Job"
|
|
approvers:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
resume_id:
|
|
type: integer
|
|
approver:
|
|
type: string
|
|
required:
|
|
- resume_id
|
|
- approver
|
|
required:
|
|
- job
|
|
- approvers
|
|
|
|
/schedules/preview:
|
|
post:
|
|
summary: preview schedule
|
|
operationId: previewSchedule
|
|
tags:
|
|
- schedule
|
|
requestBody:
|
|
description: schedule
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
schedule:
|
|
type: string
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new schedule
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewSchedule"
|
|
responses:
|
|
"201":
|
|
description: schedule created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/schedules/update/{path}:
|
|
post:
|
|
summary: update schedule
|
|
operationId: updateSchedule
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated schedule
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditSchedule"
|
|
responses:
|
|
"200":
|
|
description: schedule updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/schedules/setenabled/{path}:
|
|
post:
|
|
summary: set enabled schedule
|
|
operationId: setScheduleEnabled
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated schedule enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
required:
|
|
- enabled
|
|
|
|
responses:
|
|
"200":
|
|
description: schedule enabled set
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/schedules/delete/{path}:
|
|
delete:
|
|
summary: delete schedule
|
|
operationId: deleteSchedule
|
|
x-mcp-tool: true
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: schedule deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/schedules/get/{path}:
|
|
get:
|
|
summary: get schedule
|
|
operationId: getSchedule
|
|
x-mcp-tool: true
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: schedule deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Schedule"
|
|
|
|
/w/{workspace}/schedules/exists/{path}:
|
|
get:
|
|
summary: does schedule exists
|
|
operationId: existsSchedule
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: schedule exists
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/schedules/list:
|
|
get:
|
|
summary: list schedules
|
|
operationId: listSchedules
|
|
x-mcp-tool: true
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/ArgsFilter"
|
|
- name: path
|
|
description: filter by path (script 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
|
|
- name: schedule_path
|
|
description: exact match on the schedule's path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: description
|
|
description: pattern match filter for description field (case-insensitive)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: summary
|
|
description: pattern match filter for summary field (case-insensitive)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
- name: broad_filter
|
|
description: broad search across multiple fields (case-insensitive substring match)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: schedule list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Schedule"
|
|
|
|
/w/{workspace}/schedules/list_with_jobs:
|
|
get:
|
|
summary: list schedules with last 20 jobs
|
|
operationId: listSchedulesWithJobs
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: schedule list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ScheduleWJobs"
|
|
|
|
/w/{workspace}/schedules/setdefaulthandler:
|
|
post:
|
|
summary: Set default error or recoevery handler
|
|
operationId: setDefaultErrorOrRecoveryHandler
|
|
tags:
|
|
- schedule
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: openapi spec info and url
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/GenerateOpenapiSpec"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: openapi spec info and url
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/GenerateOpenapiSpec"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new http trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/NewHttpTrigger"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new http trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewHttpTrigger"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditHttpTrigger"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: http trigger deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/HttpTrigger"
|
|
|
|
/w/{workspace}/http_triggers/list:
|
|
get:
|
|
summary: list http triggers
|
|
operationId: listHttpTriggers
|
|
tags:
|
|
- http_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
required: true
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- 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:
|
|
$ref: "#/components/schemas/HttpTrigger"
|
|
|
|
/w/{workspace}/http_triggers/exists/{path}:
|
|
get:
|
|
summary: does http trigger exists
|
|
operationId: existsHttpTrigger
|
|
tags:
|
|
- http_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: route exists request
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
route_path:
|
|
type: string
|
|
http_method:
|
|
$ref: "#/components/schemas/HttpMethod"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new websocket trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewWebsocketTrigger"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditWebsocketTrigger"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: websocket trigger deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WebsocketTrigger"
|
|
|
|
/w/{workspace}/websocket_triggers/list:
|
|
get:
|
|
summary: list websocket triggers
|
|
operationId: listWebsocketTriggers
|
|
tags:
|
|
- websocket_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
required: true
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- 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:
|
|
$ref: "#/components/schemas/WebsocketTrigger"
|
|
|
|
/w/{workspace}/websocket_triggers/exists/{path}:
|
|
get:
|
|
summary: does websocket trigger exists
|
|
operationId: existsWebsocketTrigger
|
|
tags:
|
|
- websocket_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated websocket trigger enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: test websocket connection
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
url:
|
|
type: string
|
|
url_runnable_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new kafka trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewKafkaTrigger"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditKafkaTrigger"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: kafka trigger deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/KafkaTrigger"
|
|
|
|
/w/{workspace}/kafka_triggers/list:
|
|
get:
|
|
summary: list kafka triggers
|
|
operationId: listKafkaTriggers
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
required: true
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- 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:
|
|
$ref: "#/components/schemas/KafkaTrigger"
|
|
|
|
/w/{workspace}/kafka_triggers/exists/{path}:
|
|
get:
|
|
summary: does kafka trigger exists
|
|
operationId: existsKafkaTrigger
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated kafka trigger enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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}/kafka_triggers/reset_offsets/{path}:
|
|
post:
|
|
summary: reset kafka trigger offsets to earliest
|
|
operationId: resetKafkaOffsets
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: kafka trigger offsets reset successfully
|
|
|
|
/w/{workspace}/kafka_triggers/commit_offsets/{path}:
|
|
post:
|
|
summary: commit kafka offsets for a specific trigger
|
|
operationId: commitKafkaOffsets
|
|
tags:
|
|
- kafka_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: offsets to commit
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
topic:
|
|
type: string
|
|
partition:
|
|
type: integer
|
|
format: int32
|
|
offset:
|
|
type: integer
|
|
format: int64
|
|
required:
|
|
- topic
|
|
- partition
|
|
- offset
|
|
responses:
|
|
"200":
|
|
description: kafka offsets committed successfully
|
|
|
|
/w/{workspace}/nats_triggers/create:
|
|
post:
|
|
summary: create nats trigger
|
|
operationId: createNatsTrigger
|
|
tags:
|
|
- nats_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new nats trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewNatsTrigger"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditNatsTrigger"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: nats trigger deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NatsTrigger"
|
|
|
|
/w/{workspace}/nats_triggers/list:
|
|
get:
|
|
summary: list nats triggers
|
|
operationId: listNatsTriggers
|
|
tags:
|
|
- nats_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
required: true
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- 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:
|
|
$ref: "#/components/schemas/NatsTrigger"
|
|
|
|
/w/{workspace}/nats_triggers/exists/{path}:
|
|
get:
|
|
summary: does nats trigger exists
|
|
operationId: existsNatsTrigger
|
|
tags:
|
|
- nats_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated nats trigger enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new sqs trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewSqsTrigger"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditSqsTrigger"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: sqs trigger deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/SqsTrigger"
|
|
|
|
/w/{workspace}/sqs_triggers/list:
|
|
get:
|
|
summary: list sqs triggers
|
|
operationId: listSqsTriggers
|
|
tags:
|
|
- sqs_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
required: true
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- 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:
|
|
$ref: "#/components/schemas/SqsTrigger"
|
|
|
|
/w/{workspace}/sqs_triggers/exists/{path}:
|
|
get:
|
|
summary: does sqs trigger exists
|
|
operationId: existsSqsTrigger
|
|
tags:
|
|
- sqs_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated sqs trigger enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: native trigger services list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WorkspaceIntegrations"
|
|
|
|
/w/{workspace}/native_triggers/integrations/{service_name}/exists:
|
|
get:
|
|
summary: check if integrations for a particular service exists
|
|
operationId: checkIfNativeTriggersServiceExists
|
|
tags:
|
|
- workspace_integration
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
requestBody:
|
|
description: new native trigger service
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkspaceOAuthConfig"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
requestBody:
|
|
description: redirect_uri
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/RedirectUri"
|
|
responses:
|
|
"200":
|
|
description: native trigger service connect url
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/native_triggers/integrations/{service_name}/instance_sharing_available:
|
|
get:
|
|
summary: check if instance-level credential sharing is available for a service
|
|
operationId: checkInstanceSharingAvailable
|
|
tags:
|
|
- workspace_integration
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
responses:
|
|
"200":
|
|
description: whether instance sharing is available
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: boolean
|
|
|
|
/w/{workspace}/native_triggers/integrations/{service_name}/generate_instance_connect_url:
|
|
post:
|
|
summary: generate connect url using instance-level credentials
|
|
operationId: generateInstanceConnectUrl
|
|
tags:
|
|
- workspace_integration
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
requestBody:
|
|
description: redirect_uri
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/RedirectUri"
|
|
responses:
|
|
"200":
|
|
description: authorization URL using instance credentials
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
responses:
|
|
"200":
|
|
description: native trigger service deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/native_triggers/integrations/{service_name}/callback:
|
|
post:
|
|
summary: native trigger service oauth callback
|
|
operationId: nativeTriggerServiceCallback
|
|
tags:
|
|
- workspace_integration
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
requestBody:
|
|
description: OAuth callback data
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
state:
|
|
type: string
|
|
redirect_uri:
|
|
type: string
|
|
resource_path:
|
|
type: string
|
|
required:
|
|
- code
|
|
- state
|
|
- redirect_uri
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
requestBody:
|
|
description: new native trigger configuration
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NativeTriggerData"
|
|
responses:
|
|
"201":
|
|
description: native trigger created
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateTriggerResponse"
|
|
|
|
/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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
- 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:
|
|
$ref: "#/components/schemas/NativeTriggerData"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
- 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:
|
|
$ref: "#/components/schemas/NativeTriggerWithExternal"
|
|
|
|
/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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- 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:
|
|
$ref: "#/components/schemas/NativeTrigger"
|
|
|
|
/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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: service_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
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:
|
|
$ref: "#/components/schemas/NextCloudEventType"
|
|
|
|
/w/{workspace}/native_triggers/google/calendars:
|
|
get:
|
|
summary: list Google Calendars for the authenticated user
|
|
operationId: listGoogleCalendars
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: list of Google Calendars
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/GoogleCalendarEntry"
|
|
|
|
/w/{workspace}/native_triggers/google/drive/files:
|
|
get:
|
|
summary: list or search Google Drive files
|
|
operationId: listGoogleDriveFiles
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: q
|
|
in: query
|
|
description: search query to filter files by name
|
|
schema:
|
|
type: string
|
|
- name: parent_id
|
|
in: query
|
|
description: folder ID to list children of
|
|
schema:
|
|
type: string
|
|
- name: page_token
|
|
in: query
|
|
description: token for next page of results
|
|
schema:
|
|
type: string
|
|
- name: shared_with_me
|
|
in: query
|
|
description: if true, list files shared with the user
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
responses:
|
|
"200":
|
|
description: list of Google Drive files
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/GoogleDriveFilesResponse"
|
|
|
|
/w/{workspace}/native_triggers/google/drive/shared_drives:
|
|
get:
|
|
summary: list shared drives accessible to the user
|
|
operationId: listGoogleSharedDrives
|
|
tags:
|
|
- native_trigger
|
|
parameters:
|
|
- name: workspace
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: list of shared drives
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/SharedDriveEntry"
|
|
|
|
/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:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new mqtt trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewMqttTrigger"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditMqttTrigger"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: mqtt trigger deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/MqttTrigger"
|
|
|
|
/w/{workspace}/mqtt_triggers/list:
|
|
get:
|
|
summary: list mqtt triggers
|
|
operationId: listMqttTriggers
|
|
tags:
|
|
- mqtt_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
required: true
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- 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:
|
|
$ref: "#/components/schemas/MqttTrigger"
|
|
|
|
/w/{workspace}/mqtt_triggers/exists/{path}:
|
|
get:
|
|
summary: does mqtt trigger exists
|
|
operationId: existsMqttTrigger
|
|
tags:
|
|
- mqtt_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated mqtt trigger enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new gcp trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/GcpTriggerData"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/GcpTriggerData"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: gcp trigger deleted
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/GcpTrigger"
|
|
|
|
/w/{workspace}/gcp_triggers/list:
|
|
get:
|
|
summary: list gcp triggers
|
|
operationId: listGcpTriggers
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
required: true
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- 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:
|
|
$ref: "#/components/schemas/GcpTrigger"
|
|
|
|
/w/{workspace}/gcp_triggers/exists/{path}:
|
|
get:
|
|
summary: does gcp trigger exists
|
|
operationId: existsGcpTrigger
|
|
tags:
|
|
- gcp_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated gcp trigger enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: args to delete subscription from google cloud
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DeleteGcpSubscription"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: args to get subscription's topic from google cloud
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/GetAllTopicSubscription"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: template script
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TemplateScript"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Id"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: list postgres slot
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/SlotList"
|
|
|
|
/w/{workspace}/postgres_triggers/slot/create/{path}:
|
|
post:
|
|
summary: create replication slot for postgres
|
|
operationId: createPostgresReplicationSlot
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: new slot for postgres
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Slot"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: replication slot of postgres
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Slot"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- $ref: "#/components/parameters/PublicationName"
|
|
responses:
|
|
"200":
|
|
description: postgres publication get
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PublicationData"
|
|
|
|
/w/{workspace}/postgres_triggers/publication/create/{publication}/{path}:
|
|
post:
|
|
summary: create publication for postgres
|
|
operationId: createPostgresPublication
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- $ref: "#/components/parameters/PublicationName"
|
|
requestBody:
|
|
description: new publication for postgres
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PublicationData"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- $ref: "#/components/parameters/PublicationName"
|
|
requestBody:
|
|
description: update publication for postgres
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PublicationData"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- $ref: "#/components/parameters/PublicationName"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new postgres trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewPostgresTrigger"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditPostgresTrigger"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: get postgres trigger
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/PostgresTrigger"
|
|
|
|
/w/{workspace}/postgres_triggers/list:
|
|
get:
|
|
summary: list postgres triggers
|
|
operationId: listPostgresTriggers
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
required: true
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- 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:
|
|
$ref: "#/components/schemas/PostgresTrigger"
|
|
|
|
/w/{workspace}/postgres_triggers/exists/{path}:
|
|
get:
|
|
summary: does postgres trigger exists
|
|
operationId: existsPostgresTrigger
|
|
tags:
|
|
- postgres_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated postgres trigger enable
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: new email trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NewEmailTrigger"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
description: updated trigger
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EditEmailTrigger"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: email trigger retrieved
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EmailTrigger"
|
|
|
|
/w/{workspace}/email_triggers/list:
|
|
get:
|
|
summary: list email triggers
|
|
operationId: listEmailTriggers
|
|
tags:
|
|
- email_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
required: true
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- 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:
|
|
$ref: "#/components/schemas/EmailTrigger"
|
|
|
|
/w/{workspace}/email_triggers/exists/{path}:
|
|
get:
|
|
summary: does email trigger exists
|
|
operationId: existsEmailTrigger
|
|
tags:
|
|
- email_trigger
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
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:
|
|
$ref: "#/components/schemas/InstanceGroup"
|
|
/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:
|
|
$ref: "#/components/schemas/InstanceGroupWithWorkspaces"
|
|
|
|
/groups/get/{name}:
|
|
get:
|
|
summary: get instance group
|
|
operationId: getInstanceGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: instance group
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/InstanceGroupWithWorkspaces"
|
|
|
|
/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:
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: update instance group
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
new_summary:
|
|
type: string
|
|
instance_role:
|
|
type: string
|
|
nullable: true
|
|
description: "Instance-level role for group members. 'superadmin', 'devops', 'user' or empty to clear."
|
|
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:
|
|
- $ref: "#/components/parameters/Name"
|
|
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:
|
|
- $ref: "#/components/parameters/Name"
|
|
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:
|
|
- $ref: "#/components/parameters/Name"
|
|
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:
|
|
$ref: "#/components/schemas/ExportedInstanceGroup"
|
|
|
|
/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:
|
|
$ref: "#/components/schemas/ExportedInstanceGroup"
|
|
responses:
|
|
"200":
|
|
description: success message
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/groups/list:
|
|
get:
|
|
summary: list groups
|
|
operationId: listGroups
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: group list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Group"
|
|
|
|
/w/{workspace}/groups/listnames:
|
|
get:
|
|
summary: list group names
|
|
operationId: listGroupNames
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: only_member_of
|
|
in: query
|
|
description: only list the groups the user is member of (default false)
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: group list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/groups/create:
|
|
post:
|
|
summary: create group
|
|
operationId: createGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: create group
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
required:
|
|
- name
|
|
responses:
|
|
"200":
|
|
description: group created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/groups/update/{name}:
|
|
post:
|
|
summary: update group
|
|
operationId: updateGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: updated group
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
summary:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: group updated
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/groups/delete/{name}:
|
|
delete:
|
|
summary: delete group
|
|
operationId: deleteGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: group deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/groups/get/{name}:
|
|
get:
|
|
summary: get group
|
|
operationId: getGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: group
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Group"
|
|
|
|
/w/{workspace}/groups/adduser/{name}:
|
|
post:
|
|
summary: add user to group
|
|
operationId: addUserToGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: added user to group
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
username:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: user added to group
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/groups/removeuser/{name}:
|
|
post:
|
|
summary: remove user to group
|
|
operationId: removeUserToGroup
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: added user to group
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
username:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: user removed from group
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/groups_history/get/{name}:
|
|
get:
|
|
summary: get group permission history
|
|
operationId: getGroupPermissionHistory
|
|
tags:
|
|
- group
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: folder list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Folder"
|
|
|
|
/w/{workspace}/folders/listnames:
|
|
get:
|
|
summary: list folder names
|
|
operationId: listFolderNames
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: only_member_of
|
|
in: query
|
|
description: only list the folders the user is member of (default false)
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: folder list
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
/w/{workspace}/folders/create:
|
|
post:
|
|
summary: create folder
|
|
operationId: createFolder
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: create folder
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: folder deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/folders/get/{name}:
|
|
get:
|
|
summary: get folder
|
|
operationId: getFolder
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: folder
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Folder"
|
|
|
|
/w/{workspace}/folders/exists/{name}:
|
|
get:
|
|
summary: exists folder
|
|
operationId: existsFolder
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: folder
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
scripts:
|
|
type: number
|
|
flows:
|
|
type: number
|
|
apps:
|
|
type: number
|
|
resources:
|
|
type: number
|
|
variables:
|
|
type: number
|
|
schedules:
|
|
type: number
|
|
required:
|
|
- scripts
|
|
- flows
|
|
- apps
|
|
- resources
|
|
- variables
|
|
- schedules
|
|
|
|
/w/{workspace}/folders/addowner/{name}:
|
|
post:
|
|
summary: add owner to folder
|
|
operationId: addOwnerToFolder
|
|
tags:
|
|
- folder
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: owner user to folder
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
owner:
|
|
type: string
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
requestBody:
|
|
description: added owner to folder
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
owner:
|
|
type: string
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Name"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
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:
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- 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:
|
|
$ref: "#/components/schemas/WorkerPing"
|
|
|
|
/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:
|
|
- $ref: "#/components/parameters/Name"
|
|
responses:
|
|
"200":
|
|
description: a config
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Configs"
|
|
|
|
/configs/update/{name}:
|
|
post:
|
|
summary: Update config
|
|
operationId: updateConfig
|
|
tags:
|
|
- config
|
|
parameters:
|
|
- $ref: "#/components/parameters/Name"
|
|
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:
|
|
- $ref: "#/components/parameters/Name"
|
|
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:
|
|
$ref: "#/components/schemas/Config"
|
|
|
|
/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
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: List of autoscaling events
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/AutoscalingEvent"
|
|
|
|
/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
|
|
# parameters:
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: kind
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum:
|
|
[
|
|
script,
|
|
group_,
|
|
resource,
|
|
schedule,
|
|
variable,
|
|
flow,
|
|
folder,
|
|
app,
|
|
raw_app,
|
|
http_trigger,
|
|
websocket_trigger,
|
|
kafka_trigger,
|
|
nats_trigger,
|
|
postgres_trigger,
|
|
mqtt_trigger,
|
|
gcp_trigger,
|
|
sqs_trigger,
|
|
email_trigger,
|
|
volume,
|
|
]
|
|
responses:
|
|
"200":
|
|
description: acls
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
|
|
/w/{workspace}/acls/add/{kind}/{path}:
|
|
post:
|
|
summary: add granular acls
|
|
operationId: addGranularAcls
|
|
tags:
|
|
- granular_acl
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: kind
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum:
|
|
[
|
|
script,
|
|
group_,
|
|
resource,
|
|
schedule,
|
|
variable,
|
|
flow,
|
|
folder,
|
|
app,
|
|
raw_app,
|
|
http_trigger,
|
|
websocket_trigger,
|
|
kafka_trigger,
|
|
nats_trigger,
|
|
postgres_trigger,
|
|
mqtt_trigger,
|
|
gcp_trigger,
|
|
sqs_trigger,
|
|
email_trigger,
|
|
volume,
|
|
]
|
|
requestBody:
|
|
description: acl to add
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
owner:
|
|
type: string
|
|
write:
|
|
type: boolean
|
|
required: [owner]
|
|
responses:
|
|
"200":
|
|
description: granular acl added
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/acls/remove/{kind}/{path}:
|
|
post:
|
|
summary: remove granular acls
|
|
operationId: removeGranularAcls
|
|
tags:
|
|
- granular_acl
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: kind
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum:
|
|
[
|
|
script,
|
|
group_,
|
|
resource,
|
|
schedule,
|
|
variable,
|
|
flow,
|
|
folder,
|
|
app,
|
|
raw_app,
|
|
http_trigger,
|
|
websocket_trigger,
|
|
kafka_trigger,
|
|
nats_trigger,
|
|
postgres_trigger,
|
|
mqtt_trigger,
|
|
gcp_trigger,
|
|
sqs_trigger,
|
|
email_trigger,
|
|
volume,
|
|
]
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: capture config
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
trigger_kind:
|
|
$ref: "#/components/schemas/CaptureTriggerKind"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: trigger_kind
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/CaptureTriggerKind"
|
|
- $ref: "#/components/parameters/RunnableKind"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/RunnableKind"
|
|
- $ref: "#/components/parameters/Path"
|
|
responses:
|
|
"200":
|
|
description: capture configs for a script or flow
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/CaptureConfig"
|
|
|
|
/w/{workspace}/capture/list/{runnable_kind}/{path}:
|
|
get:
|
|
summary: list captures for a script or flow
|
|
operationId: listCaptures
|
|
tags:
|
|
- capture
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/RunnableKind"
|
|
- $ref: "#/components/parameters/Path"
|
|
- name: trigger_kind
|
|
in: query
|
|
schema:
|
|
$ref: "#/components/schemas/CaptureTriggerKind"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: list of captures for a script or flow
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Capture"
|
|
|
|
/w/{workspace}/capture/move/{runnable_kind}/{path}:
|
|
post:
|
|
summary: move captures and configs for a script or flow
|
|
operationId: moveCapturesAndConfigs
|
|
tags:
|
|
- capture
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/RunnableKind"
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: capture
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Capture"
|
|
delete:
|
|
summary: delete a capture
|
|
operationId: deleteCapture
|
|
tags:
|
|
- capture
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/RunnableId"
|
|
- $ref: "#/components/parameters/RunnableTypeQuery"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/ArgsFilter"
|
|
- name: include_preview
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: Input history for completed jobs
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Input"
|
|
|
|
/w/{workspace}/inputs/{jobOrInputId}/args:
|
|
get:
|
|
summary: Get args from history or saved input
|
|
operationId: getArgsFromHistoryOrSavedInput
|
|
tags:
|
|
- input
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/RunnableId"
|
|
- $ref: "#/components/parameters/RunnableTypeQuery"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
responses:
|
|
"200":
|
|
description: Saved Inputs for a Runnable
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Input"
|
|
|
|
/w/{workspace}/inputs/create:
|
|
post:
|
|
summary: Create an Input for future use in a script or flow
|
|
operationId: createInput
|
|
tags:
|
|
- input
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/RunnableId"
|
|
- $ref: "#/components/parameters/RunnableTypeQuery"
|
|
requestBody:
|
|
description: Input
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CreateInput"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: UpdateInput
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UpdateInput"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/InputId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: S3 resource to connect to
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
s3_resource:
|
|
$ref: "#/components/schemas/S3Resource"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
description: S3 resource to connect to
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
s3_resource:
|
|
$ref: "#/components/schemas/S3Resource"
|
|
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:
|
|
$ref: "#/components/schemas/PolarsClientKwargs"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
$ref: "#/components/schemas/PolarsClientKwargs"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
$ref: "#/components/schemas/S3Resource"
|
|
|
|
/w/{workspace}/job_helpers/test_connection:
|
|
get:
|
|
summary: Test connection to the workspace object storage
|
|
operationId: datasetStorageTestConnection
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
$ref: "#/components/schemas/WindmillLargeFile"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
$ref: "#/components/schemas/WindmillFileMetadata"
|
|
|
|
/w/{workspace}/job_helpers/load_file_preview:
|
|
get:
|
|
summary: Load a preview of the file
|
|
operationId: loadFilePreview
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
$ref: "#/components/schemas/WindmillFilePreview"
|
|
|
|
/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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
$ref: "#/components/schemas/WindmillLargeFile"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
$ref: "#/components/schemas/WindmillFilePreview"
|
|
|
|
/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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
$ref: "#/components/schemas/WindmillFileMetadata"
|
|
|
|
/w/{workspace}/job_helpers/check_s3_folder_exists:
|
|
get:
|
|
summary: Check if S3 path exists and is a folder
|
|
operationId: checkS3FolderExists
|
|
tags:
|
|
- helpers
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/Path"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
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:
|
|
$ref: "#/components/schemas/MetricMetadata"
|
|
scalar_metrics:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ScalarMetric"
|
|
timeseries_metrics:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/TimeseriesMetric"
|
|
|
|
/w/{workspace}/job_metrics/set_progress/{id}:
|
|
post:
|
|
summary: set job metrics
|
|
operationId: setJobProgress
|
|
tags:
|
|
- metrics
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/JobId"
|
|
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:
|
|
- $ref: "#/components/parameters/Before"
|
|
- $ref: "#/components/parameters/After"
|
|
- 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:
|
|
- $ref: "#/components/parameters/Path"
|
|
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:
|
|
$ref: "#/components/schemas/ConcurrencyGroup"
|
|
/concurrency_groups/prune/{concurrency_id}:
|
|
delete:
|
|
summary: Delete concurrency group
|
|
operationId: deleteConcurrencyGroup
|
|
tags:
|
|
- concurrencyGroups
|
|
parameters:
|
|
- $ref: "#/components/parameters/ConcurrencyId"
|
|
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:
|
|
- $ref: "#/components/parameters/JobId"
|
|
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
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- $ref: "#/components/parameters/CreatedBy"
|
|
- $ref: "#/components/parameters/Label"
|
|
- $ref: "#/components/parameters/ParentJob"
|
|
- $ref: "#/components/parameters/ScriptExactPath"
|
|
- $ref: "#/components/parameters/ScriptStartPath"
|
|
- $ref: "#/components/parameters/SchedulePath"
|
|
- $ref: "#/components/parameters/ScriptExactHash"
|
|
- $ref: "#/components/parameters/StartedBefore"
|
|
- $ref: "#/components/parameters/StartedAfter"
|
|
- $ref: "#/components/parameters/Running"
|
|
- $ref: "#/components/parameters/ScheduledForBeforeNow"
|
|
- $ref: "#/components/parameters/CompletedBefore"
|
|
- $ref: "#/components/parameters/CompletedAfter"
|
|
- $ref: "#/components/parameters/CreatedBeforeQueue"
|
|
- $ref: "#/components/parameters/CreatedAfterQueue"
|
|
- $ref: "#/components/parameters/JobKinds"
|
|
- $ref: "#/components/parameters/ArgsFilter"
|
|
- $ref: "#/components/parameters/Tag"
|
|
- $ref: "#/components/parameters/ResultFilter"
|
|
- $ref: "#/components/parameters/AllowWildcards"
|
|
- $ref: "#/components/parameters/Page"
|
|
- $ref: "#/components/parameters/PerPage"
|
|
- $ref: "#/components/parameters/JobTriggerKind"
|
|
- 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:
|
|
$ref: "#/components/schemas/ExtendedJobs"
|
|
|
|
/srch/w/{workspace}/index/search/job:
|
|
get:
|
|
summary: Search through jobs with a string query
|
|
operationId: searchJobsIndex
|
|
tags:
|
|
- indexSearch
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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:
|
|
$ref: "#/components/schemas/JobSearchHit"
|
|
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
|
|
max_index_time_window_secs:
|
|
description: Maximum time window in seconds for indexing
|
|
type: number
|
|
|
|
/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:
|
|
$ref: "#/components/schemas/LogSearchHit"
|
|
|
|
/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
|
|
|
|
/indexer/delete/{idx_name}:
|
|
delete:
|
|
summary: Clear an index and restart the indexer.
|
|
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 indexer restarting
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/indexer/storage:
|
|
get:
|
|
summary: Get index storage sizes (disk and S3).
|
|
operationId: getIndexStorageSizes
|
|
tags:
|
|
- indexSearch
|
|
responses:
|
|
"200":
|
|
description: storage sizes for each index
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
job_index:
|
|
type: object
|
|
properties:
|
|
disk_size_bytes:
|
|
type: integer
|
|
nullable: true
|
|
s3_size_bytes:
|
|
type: integer
|
|
nullable: true
|
|
service_log_index:
|
|
type: object
|
|
properties:
|
|
disk_size_bytes:
|
|
type: integer
|
|
nullable: true
|
|
s3_size_bytes:
|
|
type: integer
|
|
nullable: true
|
|
|
|
/indexer/status:
|
|
get:
|
|
summary: Get indexer status including liveness and storage sizes.
|
|
operationId: getIndexerStatus
|
|
tags:
|
|
- indexSearch
|
|
responses:
|
|
"200":
|
|
description: indexer status for each index
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
job_indexer:
|
|
type: object
|
|
properties:
|
|
is_alive:
|
|
type: boolean
|
|
last_locked_at:
|
|
type: string
|
|
format: date-time
|
|
nullable: true
|
|
owner:
|
|
type: string
|
|
nullable: true
|
|
storage:
|
|
type: object
|
|
properties:
|
|
disk_size_bytes:
|
|
type: integer
|
|
nullable: true
|
|
s3_size_bytes:
|
|
type: integer
|
|
nullable: true
|
|
log_indexer:
|
|
type: object
|
|
properties:
|
|
is_alive:
|
|
type: boolean
|
|
last_locked_at:
|
|
type: string
|
|
format: date-time
|
|
nullable: true
|
|
owner:
|
|
type: string
|
|
nullable: true
|
|
storage:
|
|
type: object
|
|
properties:
|
|
disk_size_bytes:
|
|
type: integer
|
|
nullable: true
|
|
s3_size_bytes:
|
|
type: integer
|
|
nullable: true
|
|
|
|
/w/{workspace}/assets/list:
|
|
get:
|
|
summary: List all assets in the workspace with cursor pagination
|
|
operationId: listAssets
|
|
tags:
|
|
- asset
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- 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
|
|
- name: path
|
|
in: query
|
|
description: exact path match filter
|
|
schema:
|
|
type: string
|
|
- name: columns
|
|
in: query
|
|
description: JSONB subset match filter for columns using base64 encoded JSON
|
|
schema:
|
|
type: string
|
|
- name: broad_filter
|
|
description: broad search across multiple fields (case-insensitive substring match)
|
|
in: query
|
|
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:
|
|
$ref: "#/components/schemas/AssetKind"
|
|
usages:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required: [path, kind]
|
|
properties:
|
|
path:
|
|
type: string
|
|
kind:
|
|
$ref: "#/components/schemas/AssetUsageKind"
|
|
access_type:
|
|
$ref: "#/components/schemas/AssetUsageAccessType"
|
|
columns:
|
|
type: object
|
|
description: The columns used (for tables)
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/AssetUsageAccessType"
|
|
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:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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:
|
|
$ref: "#/components/schemas/AssetUsageKind"
|
|
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:
|
|
$ref: "#/components/schemas/AssetKind"
|
|
access_type:
|
|
$ref: "#/components/schemas/AssetUsageAccessType"
|
|
|
|
/w/{workspace}/assets/list_favorites:
|
|
get:
|
|
summary: List all favorite assets for the authenticated user
|
|
operationId: listFavoriteAssets
|
|
tags:
|
|
- asset
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
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
|
|
|
|
|
|
/w/{workspace}/volumes/list:
|
|
get:
|
|
summary: List all volumes in the workspace
|
|
operationId: listVolumes
|
|
tags:
|
|
- volume
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: list of volumes
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Volume"
|
|
|
|
/w/{workspace}/volumes/storage:
|
|
get:
|
|
summary: Get the volume storage name (secondary storage) or null for primary
|
|
operationId: getVolumeStorage
|
|
tags:
|
|
- volume
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: volume storage name or null
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
nullable: true
|
|
|
|
/w/{workspace}/volumes/create:
|
|
post:
|
|
summary: Create a new volume
|
|
operationId: createVolume
|
|
tags:
|
|
- volume
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- name
|
|
properties:
|
|
name:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: volume created
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/w/{workspace}/volumes/delete/{name}:
|
|
delete:
|
|
summary: Delete a volume (admin only)
|
|
operationId: deleteVolume
|
|
tags:
|
|
- volume
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: volume deleted
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
|
|
/mcp/w/{workspace}/list_tools:
|
|
get:
|
|
summary: list available MCP tools
|
|
operationId: listMcpTools
|
|
tags:
|
|
- mcp
|
|
parameters:
|
|
- $ref: "#/components/parameters/WorkspaceId"
|
|
responses:
|
|
"200":
|
|
description: list of MCP tools available for the workspace
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/EndpointTool"
|
|
|
|
/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:
|
|
type: string
|
|
Key:
|
|
name: key
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
WorkspaceId:
|
|
name: workspace
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
PublicationName:
|
|
name: publication
|
|
in: path
|
|
required: true
|
|
description: The name of the publication
|
|
schema:
|
|
type: string
|
|
VersionId:
|
|
name: version
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
Token:
|
|
name: token
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
AccountId:
|
|
name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
ClientName:
|
|
name: client_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
ScriptPath:
|
|
name: path
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
ScriptHash:
|
|
name: hash
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
JobId:
|
|
name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
Path:
|
|
name: path
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
CustomPath:
|
|
name: custom_path
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
PathId:
|
|
name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
PathVersion:
|
|
name: version
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
Name:
|
|
name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
Page:
|
|
name: page
|
|
description: which page to return (start at 1, default 1)
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
PerPage:
|
|
name: per_page
|
|
description: number of items to return for a given page (default 30, max 100)
|
|
in: query
|
|
schema:
|
|
type: integer
|
|
JobTriggerKind:
|
|
name: trigger_kind
|
|
description: "filter by trigger kind. Supports comma-separated list (e.g. 'schedule,webhook') and negation by prefixing all values with '!' (e.g. '!schedule,!webhook')"
|
|
in: query
|
|
x-go-name: JobTriggerKindParam
|
|
schema:
|
|
type: string
|
|
OrderDesc:
|
|
name: order_desc
|
|
description: order by desc order (default true)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
CreatedBy:
|
|
name: created_by
|
|
description: "filter by exact matching user creator. Supports comma-separated list (e.g. 'alice,bob') and negation by prefixing all values with '!' (e.g. '!alice,!bob')"
|
|
in: query
|
|
schema:
|
|
type: string
|
|
Label:
|
|
name: label
|
|
description: "filter by exact matching job label. Supports comma-separated list (e.g. 'deploy,release') and negation by prefixing all values with '!' (e.g. '!deploy,!release')"
|
|
in: query
|
|
schema:
|
|
type: string
|
|
Worker:
|
|
name: worker
|
|
description: "filter by worker this job ran on. Supports comma-separated list (e.g. 'worker-1,worker-2') and negation by prefixing all values with '!' (e.g. '!worker-1,!worker-2')"
|
|
in: query
|
|
schema:
|
|
type: string
|
|
ParentJob:
|
|
name: parent_job
|
|
description:
|
|
The parent job that is at the origin and responsible for the execution
|
|
of this script if any
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
WorkerTag:
|
|
name: tag
|
|
description: Override the tag to use
|
|
in: query
|
|
schema:
|
|
type: string
|
|
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:
|
|
type: string
|
|
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:
|
|
type: string
|
|
format: uuid
|
|
IncludeHeader:
|
|
name: include_header
|
|
description: |
|
|
List of headers's keys (separated with ',') whove value are added to the args
|
|
Header's key lowercased and '-'' replaced to '_' such that 'Content-Type' becomes the 'content_type' arg key
|
|
in: query
|
|
schema:
|
|
type: string
|
|
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:
|
|
type: string
|
|
SkipPreprocessor:
|
|
name: skip_preprocessor
|
|
description: skip the preprocessor
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
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:
|
|
type: string
|
|
ScriptStartPath:
|
|
name: script_path_start
|
|
description: "filter by script path prefix. Supports comma-separated list (e.g. 'f/folder1,f/folder2') and negation by prefixing all values with '!' (e.g. '!f/folder1,!f/folder2')"
|
|
in: query
|
|
schema:
|
|
type: string
|
|
SchedulePath:
|
|
name: schedule_path
|
|
description: mask to filter by schedule path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
TriggerPath:
|
|
name: trigger_path
|
|
description: "filter by trigger path. Supports comma-separated list (e.g. 'f/trigger1,f/trigger2') and negation by prefixing all values with '!' (e.g. '!f/trigger1,!f/trigger2')"
|
|
in: query
|
|
schema:
|
|
type: string
|
|
ScriptExactPath:
|
|
name: script_path_exact
|
|
description: "filter by exact matching script path. Supports comma-separated list (e.g. 'f/script1,f/script2') and negation by prefixing all values with '!' (e.g. '!f/script1,!f/script2')"
|
|
in: query
|
|
schema:
|
|
type: string
|
|
ScriptExactHash:
|
|
name: script_hash
|
|
description: mask to filter exact matching path
|
|
in: query
|
|
schema:
|
|
type: string
|
|
CreatedBefore:
|
|
name: created_before
|
|
description: filter on created before (inclusive) timestamp
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
CreatedAfter:
|
|
name: created_after
|
|
description: filter on created after (exclusive) timestamp
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
StartedBefore:
|
|
name: started_before
|
|
description: filter on started before (inclusive) timestamp
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
StartedAfter:
|
|
name: started_after
|
|
description: filter on started after (exclusive) timestamp
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
Before:
|
|
name: before
|
|
description: filter on started before (inclusive) timestamp
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
|
|
CompletedBefore:
|
|
name: completed_before
|
|
description: filter on started before (inclusive) timestamp
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
CompletedAfter:
|
|
name: completed_after
|
|
description: filter on started after (exclusive) timestamp
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
|
|
CreatedAfterQueue:
|
|
name: created_after_queue
|
|
description: filter on jobs created after X for jobs in the queue only
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
|
|
CreatedBeforeQueue:
|
|
name: created_before_queue
|
|
description: filter on jobs created before X for jobs in the queue only
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
|
|
Success:
|
|
name: success
|
|
description: filter on successful jobs
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
ScheduledForBeforeNow:
|
|
name: scheduled_for_before_now
|
|
description: filter on jobs scheduled_for before now (hence waitinf for a worker)
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
Suspended:
|
|
name: suspended
|
|
description: filter on suspended jobs
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
Running:
|
|
name: running
|
|
description: filter on running jobs
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
AllowWildcards:
|
|
name: allow_wildcards
|
|
description: allow wildcards (*) in the filter of label, tag, worker
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
ArgsFilter:
|
|
name: args
|
|
description: filter on jobs containing those args as a json subset (@> in postgres)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
Tag:
|
|
name: tag
|
|
description: "filter by tag/worker group. Supports comma-separated list (e.g. 'gpu,highmem') and negation by prefixing all values with '!' (e.g. '!gpu,!highmem')"
|
|
in: query
|
|
schema:
|
|
type: string
|
|
ResultFilter:
|
|
name: result
|
|
description: filter on jobs containing those result as a json subset (@> in postgres)
|
|
in: query
|
|
schema:
|
|
type: string
|
|
After:
|
|
name: after
|
|
description: filter on created after (exclusive) timestamp
|
|
in: query
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
Username:
|
|
name: username
|
|
description: filter on exact username of user
|
|
in: query
|
|
schema:
|
|
type: string
|
|
Operation:
|
|
name: operation
|
|
description: filter on exact or prefix name of operation
|
|
in: query
|
|
schema:
|
|
type: string
|
|
ResourceName:
|
|
name: resource
|
|
description: filter on exact or prefix name of resource
|
|
in: query
|
|
schema:
|
|
type: string
|
|
ActionKind:
|
|
name: action_kind
|
|
description: filter on type of operation
|
|
in: query
|
|
schema:
|
|
type: string
|
|
enum: [Create, Update, Delete, Execute]
|
|
JobKinds:
|
|
name: job_kinds
|
|
description: "filter by job kind. Supports comma-separated list of values ('preview', 'script', 'dependencies', 'flow') and negation by prefixing all values with '!' (e.g. '!preview,!dependencies')"
|
|
in: query
|
|
schema:
|
|
type: string
|
|
# correct type is below but explode not supported by our codegen
|
|
# type: array
|
|
# items:
|
|
# type: string
|
|
# enum: ["preview", "script", "dependencies"]
|
|
# explode: false
|
|
RunnableId:
|
|
name: runnable_id
|
|
in: query
|
|
schema:
|
|
type: string
|
|
RunnableTypeQuery:
|
|
name: runnable_type
|
|
in: query
|
|
schema:
|
|
$ref: "#/components/schemas/RunnableType"
|
|
InputId:
|
|
name: input
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
GetStarted:
|
|
name: get_started
|
|
in: query
|
|
schema:
|
|
type: boolean
|
|
ConcurrencyId:
|
|
name: concurrency_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
RunnableKind:
|
|
name: runnable_kind
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum: [script, flow]
|
|
|
|
schemas:
|
|
# NOTE: Not so many generators and validators support this format:
|
|
# $ref: "../../openflow.openapi.yaml#/components/schemas"
|
|
# This is why it is better to inline each of schemas for better compat
|
|
# Do not change next line. It is used by python-client for pre-processing
|
|
# -- INLINE START --
|
|
OpenFlow:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/OpenFlow"
|
|
FlowValue:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowValue"
|
|
Retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
StopAfterIf:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/StopAfterIf"
|
|
FlowModule:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowModule"
|
|
InputTransform:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/InputTransform"
|
|
StaticTransform:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/StaticTransform"
|
|
JavascriptTransform:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/JavascriptTransform"
|
|
AiTransform:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/AiTransform"
|
|
ProviderConfig:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/ProviderConfig"
|
|
MemoryConfig:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/MemoryConfig"
|
|
FlowModuleValue:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowModuleValue"
|
|
RawScript:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/RawScript"
|
|
PathScript:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/PathScript"
|
|
PathFlow:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/PathFlow"
|
|
ForloopFlow:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/ForloopFlow"
|
|
WhileloopFlow:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/WhileloopFlow"
|
|
BranchOne:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/BranchOne"
|
|
BranchAll:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/BranchAll"
|
|
AiAgent:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/AiAgent"
|
|
Identity:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Identity"
|
|
FlowStatus:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowStatus"
|
|
FlowStatusModule:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowStatusModule"
|
|
FlowNote:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowNote"
|
|
# -- INLINE END --
|
|
# Do not change line above
|
|
|
|
HealthStatusResponse:
|
|
type: object
|
|
description: Health status response (cached with 5s TTL)
|
|
required:
|
|
- status
|
|
- checked_at
|
|
- database_healthy
|
|
- workers_alive
|
|
properties:
|
|
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
|
|
|
|
DetailedHealthResponse:
|
|
type: object
|
|
description: Detailed health status response (always fresh, no caching)
|
|
required:
|
|
- status
|
|
- checked_at
|
|
- version
|
|
- checks
|
|
properties:
|
|
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:
|
|
$ref: "#/components/schemas/HealthChecks"
|
|
|
|
HealthChecks:
|
|
type: object
|
|
description: Detailed health checks
|
|
required:
|
|
- database
|
|
- readiness
|
|
properties:
|
|
database:
|
|
$ref: "#/components/schemas/DatabaseHealth"
|
|
workers:
|
|
$ref: "#/components/schemas/WorkersHealth"
|
|
description: Worker status (null if database is unreachable)
|
|
nullable: true
|
|
queue:
|
|
$ref: "#/components/schemas/QueueHealth"
|
|
description: Queue status (null if database is unreachable)
|
|
nullable: true
|
|
readiness:
|
|
$ref: "#/components/schemas/ReadinessHealth"
|
|
|
|
DatabaseHealth:
|
|
type: object
|
|
description: Database health status
|
|
required:
|
|
- healthy
|
|
- latency_ms
|
|
- pool
|
|
properties:
|
|
healthy:
|
|
type: boolean
|
|
description: Whether the database is reachable
|
|
latency_ms:
|
|
type: integer
|
|
format: int64
|
|
description: Database query latency in milliseconds
|
|
pool:
|
|
$ref: "#/components/schemas/PoolStats"
|
|
|
|
PoolStats:
|
|
type: object
|
|
description: Database connection pool statistics
|
|
required:
|
|
- size
|
|
- idle
|
|
- max_connections
|
|
properties:
|
|
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
|
|
|
|
WorkersHealth:
|
|
type: object
|
|
description: Workers health status
|
|
required:
|
|
- healthy
|
|
- active_count
|
|
- worker_groups
|
|
- min_version
|
|
- versions
|
|
properties:
|
|
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
|
|
|
|
QueueHealth:
|
|
type: object
|
|
description: Job queue status
|
|
required:
|
|
- pending_jobs
|
|
- running_jobs
|
|
properties:
|
|
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
|
|
|
|
ReadinessHealth:
|
|
type: object
|
|
description: Server readiness status
|
|
required:
|
|
- healthy
|
|
properties:
|
|
healthy:
|
|
type: boolean
|
|
description: Whether the server is ready to accept requests
|
|
|
|
AutoInviteConfig:
|
|
type: object
|
|
description: Configuration for auto-inviting users to the workspace
|
|
properties:
|
|
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
|
|
|
|
ErrorHandlerConfig:
|
|
type: object
|
|
description: Configuration for the workspace error handler
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: Path to the error handler script or flow
|
|
extra_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
muted_on_cancel:
|
|
type: boolean
|
|
default: false
|
|
muted_on_user_path:
|
|
type: boolean
|
|
default: false
|
|
|
|
SuccessHandlerConfig:
|
|
type: object
|
|
description: Configuration for the workspace success handler
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: Path to the success handler script or flow
|
|
extra_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
EditErrorHandler:
|
|
description: Request body for editing the workspace error handler. Accepts both new grouped format and legacy flat format for backward compatibility.
|
|
oneOf:
|
|
- $ref: "#/components/schemas/EditErrorHandlerNew"
|
|
- $ref: "#/components/schemas/EditErrorHandlerLegacy"
|
|
|
|
EditErrorHandlerNew:
|
|
type: object
|
|
description: New grouped format for editing error handler
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: Path to the error handler script or flow
|
|
extra_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
muted_on_cancel:
|
|
type: boolean
|
|
default: false
|
|
muted_on_user_path:
|
|
type: boolean
|
|
default: false
|
|
|
|
EditErrorHandlerLegacy:
|
|
type: object
|
|
description: Legacy flat format for editing error handler (deprecated, use new format)
|
|
properties:
|
|
error_handler:
|
|
type: string
|
|
description: Path to the error handler script or flow
|
|
error_handler_extra_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
error_handler_muted_on_cancel:
|
|
type: boolean
|
|
default: false
|
|
|
|
EditSuccessHandler:
|
|
description: Request body for editing the workspace success handler. Accepts both new grouped format and legacy flat format for backward compatibility.
|
|
oneOf:
|
|
- $ref: "#/components/schemas/EditSuccessHandlerNew"
|
|
- $ref: "#/components/schemas/EditSuccessHandlerLegacy"
|
|
|
|
EditSuccessHandlerNew:
|
|
type: object
|
|
description: New grouped format for editing success handler
|
|
properties:
|
|
path:
|
|
type: string
|
|
description: Path to the success handler script or flow
|
|
extra_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
EditSuccessHandlerLegacy:
|
|
type: object
|
|
description: Legacy flat format for editing success handler (deprecated, use new format)
|
|
properties:
|
|
success_handler:
|
|
type: string
|
|
description: Path to the success handler script or flow
|
|
success_handler_extra_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
VaultSettings:
|
|
type: object
|
|
required:
|
|
- address
|
|
- mount_path
|
|
properties:
|
|
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)
|
|
|
|
SecretMigrationFailure:
|
|
type: object
|
|
required:
|
|
- workspace_id
|
|
- path
|
|
- error
|
|
properties:
|
|
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
|
|
|
|
SecretMigrationReport:
|
|
type: object
|
|
required:
|
|
- total_secrets
|
|
- migrated_count
|
|
- failed_count
|
|
- failures
|
|
properties:
|
|
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:
|
|
$ref: "#/components/schemas/SecretMigrationFailure"
|
|
description: Details of any failures encountered during migration
|
|
|
|
JwksResponse:
|
|
type: object
|
|
required:
|
|
- keys
|
|
properties:
|
|
keys:
|
|
type: array
|
|
items:
|
|
type: object
|
|
additionalProperties: true
|
|
description: Array of JSON Web Keys for JWT verification
|
|
|
|
FlowConversation:
|
|
type: object
|
|
required:
|
|
[id, workspace_id, flow_path, created_at, updated_at, created_by]
|
|
properties:
|
|
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
|
|
|
|
FlowConversationMessage:
|
|
type: object
|
|
required: [id, conversation_id, message_type, content, created_at]
|
|
properties:
|
|
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
|
|
|
|
EndpointTool:
|
|
type: object
|
|
required: [name, description, instructions, path, method]
|
|
properties:
|
|
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
|
|
|
|
AIProvider:
|
|
type: string
|
|
enum:
|
|
[
|
|
openai,
|
|
azure_openai,
|
|
anthropic,
|
|
mistral,
|
|
deepseek,
|
|
googleai,
|
|
groq,
|
|
openrouter,
|
|
togetherai,
|
|
aws_bedrock,
|
|
customai,
|
|
]
|
|
|
|
GitSyncObjectType:
|
|
type: string
|
|
enum:
|
|
- script
|
|
- flow
|
|
- app
|
|
- folder
|
|
- resource
|
|
- variable
|
|
- secret
|
|
- resourcetype
|
|
- schedule
|
|
- user
|
|
- group
|
|
- trigger
|
|
- settings
|
|
- key
|
|
- workspacedependencies
|
|
|
|
AIProviderModel:
|
|
type: object
|
|
properties:
|
|
model:
|
|
type: string
|
|
provider:
|
|
$ref: "#/components/schemas/AIProvider"
|
|
required:
|
|
- model
|
|
- provider
|
|
|
|
AIProviderConfig:
|
|
type: object
|
|
properties:
|
|
resource_path:
|
|
type: string
|
|
models:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- resource_path
|
|
- models
|
|
|
|
AIConfig:
|
|
type: object
|
|
properties:
|
|
providers:
|
|
type: object
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/AIProviderConfig"
|
|
default_model:
|
|
$ref: "#/components/schemas/AIProviderModel"
|
|
code_completion_model:
|
|
$ref: "#/components/schemas/AIProviderModel"
|
|
custom_prompts:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
max_tokens_per_model:
|
|
type: object
|
|
additionalProperties:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 2000000
|
|
|
|
Alert:
|
|
type: object
|
|
properties:
|
|
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:
|
|
- name
|
|
- tags_to_monitor
|
|
- jobs_num_threshold
|
|
- alert_cooldown_seconds
|
|
- alert_time_threshold_seconds
|
|
|
|
Configs:
|
|
type: object
|
|
nullable: true
|
|
properties:
|
|
alerts:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Alert"
|
|
|
|
WorkspaceDependencies:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
archived:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
content:
|
|
type: string
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
workspace_id:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
required:
|
|
- workspace_id
|
|
- language
|
|
- created_at
|
|
- content
|
|
- id
|
|
- archived
|
|
|
|
NewWorkspaceDependencies:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
content:
|
|
type: string
|
|
required:
|
|
- workspace_id
|
|
- language
|
|
- content
|
|
|
|
Script:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
hash:
|
|
type: string
|
|
path:
|
|
type: string
|
|
parent_hashes:
|
|
type: array
|
|
description: |
|
|
The first element is the direct parent of the script, the second is the parent of the first, etc
|
|
items:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
description:
|
|
type: string
|
|
content:
|
|
type: string
|
|
created_by:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
archived:
|
|
type: boolean
|
|
schema:
|
|
type: object
|
|
deleted:
|
|
type: boolean
|
|
is_template:
|
|
type: boolean
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
lock:
|
|
type: string
|
|
lock_error_logs:
|
|
type: string
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
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
|
|
auto_kind:
|
|
type: string
|
|
codebase:
|
|
type: string
|
|
has_preprocessor:
|
|
type: boolean
|
|
on_behalf_of_email:
|
|
type: string
|
|
modules:
|
|
type: object
|
|
nullable: true
|
|
description: "Additional script modules keyed by relative file path"
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/ScriptModule"
|
|
|
|
required:
|
|
- hash
|
|
- path
|
|
- summary
|
|
- description
|
|
- content
|
|
- created_by
|
|
- created_at
|
|
- archived
|
|
- deleted
|
|
- is_template
|
|
- extra_perms
|
|
- language
|
|
- kind
|
|
- starred
|
|
- has_preprocessor
|
|
|
|
NewScript:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
parent_hash:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
description:
|
|
type: string
|
|
content:
|
|
type: string
|
|
schema:
|
|
type: object
|
|
is_template:
|
|
type: boolean
|
|
lock:
|
|
type: string
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
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
|
|
auto_kind:
|
|
type: string
|
|
codebase:
|
|
type: string
|
|
has_preprocessor:
|
|
type: boolean
|
|
on_behalf_of_email:
|
|
type: string
|
|
preserve_on_behalf_of:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of_email value instead of overwriting it."
|
|
assets:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- path
|
|
- kind
|
|
properties:
|
|
path:
|
|
type: string
|
|
kind:
|
|
$ref: "#/components/schemas/AssetKind"
|
|
access_type:
|
|
type: string
|
|
enum: [r, w, rw]
|
|
alt_access_type:
|
|
type: string
|
|
enum: [r, w, rw]
|
|
modules:
|
|
type: object
|
|
nullable: true
|
|
description: "Additional script modules keyed by relative file path"
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/ScriptModule"
|
|
|
|
required:
|
|
- path
|
|
- summary
|
|
- content
|
|
- language
|
|
|
|
NewScriptWithDraft:
|
|
allOf:
|
|
- $ref: "#/components/schemas/NewScript"
|
|
- type: object
|
|
properties:
|
|
draft:
|
|
$ref: "#/components/schemas/NewScript"
|
|
hash:
|
|
type: string
|
|
required:
|
|
- hash
|
|
|
|
ScriptHistory:
|
|
type: object
|
|
properties:
|
|
script_hash:
|
|
type: string
|
|
deployment_msg:
|
|
type: string
|
|
required:
|
|
- script_hash
|
|
|
|
ScriptArgs:
|
|
type: object
|
|
description: The arguments to pass to the script or flow
|
|
additionalProperties: true
|
|
|
|
Input:
|
|
type: object
|
|
properties:
|
|
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:
|
|
- id
|
|
- name
|
|
- args
|
|
- created_by
|
|
- created_at
|
|
- is_public
|
|
|
|
CreateInput:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
args:
|
|
type: object
|
|
required:
|
|
- name
|
|
- args
|
|
- created_by
|
|
|
|
UpdateInput:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
is_public:
|
|
type: boolean
|
|
required:
|
|
- id
|
|
- name
|
|
- is_public
|
|
|
|
RunnableType:
|
|
type: string
|
|
enum: ["ScriptHash", "ScriptPath", "FlowPath"]
|
|
|
|
QueuedJob:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
parent_job:
|
|
type: string
|
|
format: uuid
|
|
created_by:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
started_at:
|
|
type: string
|
|
format: date-time
|
|
scheduled_for:
|
|
type: string
|
|
format: date-time
|
|
running:
|
|
type: boolean
|
|
script_path:
|
|
type: string
|
|
script_hash:
|
|
type: string
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
logs:
|
|
type: string
|
|
raw_code:
|
|
type: string
|
|
canceled:
|
|
type: boolean
|
|
canceled_by:
|
|
type: string
|
|
canceled_reason:
|
|
type: string
|
|
last_ping:
|
|
type: string
|
|
format: date-time
|
|
job_kind:
|
|
type: string
|
|
enum:
|
|
[
|
|
"script",
|
|
"preview",
|
|
"dependencies",
|
|
"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:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowStatus"
|
|
workflow_as_code_status:
|
|
$ref: "#/components/schemas/WorkflowStatus"
|
|
raw_flow:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowValue"
|
|
is_flow_step:
|
|
type: boolean
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
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:
|
|
- id
|
|
- running
|
|
- canceled
|
|
- job_kind
|
|
- permissioned_as
|
|
- is_flow_step
|
|
- email
|
|
- visible_to_owner
|
|
- tag
|
|
|
|
CompletedJob:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
parent_job:
|
|
type: string
|
|
format: uuid
|
|
created_by:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
started_at:
|
|
type: string
|
|
format: date-time
|
|
completed_at:
|
|
type: string
|
|
format: date-time
|
|
duration_ms:
|
|
type: integer
|
|
success:
|
|
type: boolean
|
|
script_path:
|
|
type: string
|
|
script_hash:
|
|
type: string
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
result: {}
|
|
logs:
|
|
type: string
|
|
deleted:
|
|
type: boolean
|
|
raw_code:
|
|
type: string
|
|
canceled:
|
|
type: boolean
|
|
canceled_by:
|
|
type: string
|
|
canceled_reason:
|
|
type: string
|
|
job_kind:
|
|
type: string
|
|
enum:
|
|
[
|
|
"script",
|
|
"preview",
|
|
"dependencies",
|
|
"flow",
|
|
"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:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowStatus"
|
|
workflow_as_code_status:
|
|
$ref: "#/components/schemas/WorkflowStatus"
|
|
raw_flow:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowValue"
|
|
is_flow_step:
|
|
type: boolean
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
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:
|
|
- 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
|
|
|
|
ExportableCompletedJob:
|
|
type: object
|
|
description: Completed job with full data for export/import operations
|
|
properties:
|
|
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:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
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:
|
|
- id
|
|
- created_by
|
|
- created_at
|
|
- job_kind
|
|
- permissioned_as
|
|
- email
|
|
- visible_to_owner
|
|
|
|
ExportableQueuedJob:
|
|
type: object
|
|
description: Queued job with full data for export/import operations
|
|
properties:
|
|
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:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
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:
|
|
- id
|
|
- created_by
|
|
- created_at
|
|
- job_kind
|
|
- permissioned_as
|
|
- email
|
|
- visible_to_owner
|
|
|
|
ObscuredJob:
|
|
type: object
|
|
properties:
|
|
typ:
|
|
type: string
|
|
started_at:
|
|
type: string
|
|
format: date-time
|
|
duration_ms:
|
|
type: number
|
|
Job:
|
|
oneOf:
|
|
- allOf:
|
|
- $ref: "#/components/schemas/CompletedJob"
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum: [CompletedJob]
|
|
- allOf:
|
|
- $ref: "#/components/schemas/QueuedJob"
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum: [QueuedJob]
|
|
discriminator:
|
|
propertyName: type
|
|
|
|
User:
|
|
type: object
|
|
properties:
|
|
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:
|
|
- $ref: "#/components/schemas/UserSource"
|
|
required:
|
|
- email
|
|
- username
|
|
- is_admin
|
|
- is_super_admin
|
|
- created_at
|
|
- operator
|
|
- disabled
|
|
- folders
|
|
- folders_owners
|
|
|
|
UserSource:
|
|
type: object
|
|
properties:
|
|
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:
|
|
- source
|
|
|
|
UserUsage:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
executions:
|
|
type: number
|
|
|
|
Login:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
password:
|
|
type: string
|
|
required:
|
|
- email
|
|
- password
|
|
|
|
PasswordResetResponse:
|
|
type: object
|
|
properties:
|
|
message:
|
|
type: string
|
|
required:
|
|
- message
|
|
|
|
EditWorkspaceUser:
|
|
type: object
|
|
properties:
|
|
is_admin:
|
|
type: boolean
|
|
operator:
|
|
type: boolean
|
|
disabled:
|
|
type: boolean
|
|
|
|
TruncatedToken:
|
|
type: object
|
|
properties:
|
|
label:
|
|
type: string
|
|
expiration:
|
|
type: string
|
|
format: date-time
|
|
token_prefix:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
last_used_at:
|
|
type: string
|
|
format: date-time
|
|
scopes:
|
|
type: array
|
|
items:
|
|
type: string
|
|
email:
|
|
type: string
|
|
required:
|
|
- token_prefix
|
|
- created_at
|
|
- last_used_at
|
|
|
|
NewToken:
|
|
type: object
|
|
properties:
|
|
label:
|
|
type: string
|
|
expiration:
|
|
type: string
|
|
format: date-time
|
|
scopes:
|
|
type: array
|
|
items:
|
|
type: string
|
|
workspace_id:
|
|
type: string
|
|
|
|
NewTokenImpersonate:
|
|
type: object
|
|
properties:
|
|
label:
|
|
type: string
|
|
expiration:
|
|
type: string
|
|
format: date-time
|
|
impersonate_email:
|
|
type: string
|
|
workspace_id:
|
|
type: string
|
|
required:
|
|
- impersonate_email
|
|
|
|
ListableVariable:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
path:
|
|
type: string
|
|
value:
|
|
type: string
|
|
is_secret:
|
|
type: boolean
|
|
description:
|
|
type: string
|
|
account:
|
|
type: integer
|
|
is_oauth:
|
|
type: boolean
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
is_expired:
|
|
type: boolean
|
|
refresh_error:
|
|
type: string
|
|
is_linked:
|
|
type: boolean
|
|
is_refreshed:
|
|
type: boolean
|
|
expires_at:
|
|
type: string
|
|
format: date-time
|
|
required:
|
|
- workspace_id
|
|
- path
|
|
- is_secret
|
|
- extra_perms
|
|
|
|
ContextualVariable:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
description:
|
|
type: string
|
|
is_custom:
|
|
type: boolean
|
|
required:
|
|
- name
|
|
- value
|
|
- description
|
|
- is_custom
|
|
|
|
CreateVariable:
|
|
type: object
|
|
properties:
|
|
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:
|
|
- path
|
|
- value
|
|
- is_secret
|
|
- description
|
|
|
|
EditVariable:
|
|
type: object
|
|
properties:
|
|
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
|
|
|
|
AuditLog:
|
|
type: object
|
|
properties:
|
|
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:
|
|
- workspace_id
|
|
- id
|
|
- timestamp
|
|
- username
|
|
- operation
|
|
- action_kind
|
|
|
|
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
|
|
auto_kind:
|
|
type: string
|
|
nullable: true
|
|
has_preprocessor:
|
|
type: boolean
|
|
nullable: true
|
|
required:
|
|
- star_args
|
|
- start_kwargs
|
|
- args
|
|
- type
|
|
- error
|
|
- auto_kind
|
|
- has_preprocessor
|
|
|
|
ScriptLang:
|
|
type: string
|
|
enum: [
|
|
python3,
|
|
deno,
|
|
go,
|
|
bash,
|
|
powershell,
|
|
postgresql,
|
|
mysql,
|
|
bigquery,
|
|
snowflake,
|
|
mssql,
|
|
oracledb,
|
|
graphql,
|
|
nativets,
|
|
bun,
|
|
php,
|
|
rust,
|
|
ansible,
|
|
csharp,
|
|
nu,
|
|
java,
|
|
ruby,
|
|
duckdb,
|
|
bunnative,
|
|
# for related places search: ADD_NEW_LANG
|
|
]
|
|
|
|
ScriptModule:
|
|
type: object
|
|
description: "An additional module file associated with a script"
|
|
properties:
|
|
content:
|
|
type: string
|
|
description: "The source code content of this module"
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
lock:
|
|
type: string
|
|
nullable: true
|
|
description: "Lock file content for this module's dependencies"
|
|
required:
|
|
- content
|
|
- language
|
|
|
|
Preview:
|
|
type: object
|
|
properties:
|
|
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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
tag:
|
|
type: string
|
|
kind:
|
|
type: string
|
|
enum: [code, identity, http]
|
|
dedicated_worker:
|
|
type: boolean
|
|
lock:
|
|
type: string
|
|
flow_path:
|
|
type: string
|
|
modules:
|
|
type: object
|
|
nullable: true
|
|
description: "Additional script modules keyed by relative file path"
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/ScriptModule"
|
|
required:
|
|
- args
|
|
|
|
PreviewInline:
|
|
type: object
|
|
properties:
|
|
content:
|
|
type: string
|
|
description: The code to run
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
required: [content, args, language]
|
|
|
|
InlineScriptArgs:
|
|
type: object
|
|
properties:
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
|
|
WorkflowTask:
|
|
type: object
|
|
properties:
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
required:
|
|
- args
|
|
|
|
WorkflowStatusRecord:
|
|
type: object
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/WorkflowStatus"
|
|
|
|
WorkflowStatus:
|
|
type: object
|
|
properties:
|
|
scheduled_for:
|
|
type: string
|
|
format: date-time
|
|
started_at:
|
|
type: string
|
|
format: date-time
|
|
duration_ms:
|
|
type: number
|
|
name:
|
|
type: string
|
|
|
|
CreateResource:
|
|
type: object
|
|
properties:
|
|
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:
|
|
- path
|
|
- value
|
|
- resource_type
|
|
|
|
EditResource:
|
|
type: object
|
|
properties:
|
|
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
|
|
|
|
Resource:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
path:
|
|
type: string
|
|
description:
|
|
type: string
|
|
resource_type:
|
|
type: string
|
|
value: {}
|
|
is_oauth:
|
|
type: boolean
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
created_by:
|
|
type: string
|
|
edited_at:
|
|
type: string
|
|
format: date-time
|
|
required:
|
|
- path
|
|
- resource_type
|
|
- is_oauth
|
|
|
|
ListableResource:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
path:
|
|
type: string
|
|
description:
|
|
type: string
|
|
resource_type:
|
|
type: string
|
|
value: {}
|
|
is_oauth:
|
|
type: boolean
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
is_expired:
|
|
type: boolean
|
|
refresh_error:
|
|
type: string
|
|
is_linked:
|
|
type: boolean
|
|
is_refreshed:
|
|
type: boolean
|
|
account:
|
|
type: number
|
|
created_by:
|
|
type: string
|
|
edited_at:
|
|
type: string
|
|
format: date-time
|
|
required:
|
|
- path
|
|
- resource_type
|
|
- is_oauth
|
|
- is_linked
|
|
- is_refreshed
|
|
|
|
ResourceType:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
schema: {}
|
|
description:
|
|
type: string
|
|
created_by:
|
|
type: string
|
|
edited_at:
|
|
type: string
|
|
format: date-time
|
|
format_extension:
|
|
type: string
|
|
is_fileset:
|
|
type: boolean
|
|
required:
|
|
- name
|
|
|
|
EditResourceType:
|
|
type: object
|
|
properties:
|
|
schema: {}
|
|
description:
|
|
type: string
|
|
is_fileset:
|
|
type: boolean
|
|
|
|
Schedule:
|
|
type: object
|
|
properties:
|
|
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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
nullable: 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
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this schedule runs as (e.g., 'u/admin' or 'g/mygroup')
|
|
error:
|
|
type: string
|
|
nullable: true
|
|
description: Last error message if the schedule failed to trigger
|
|
on_failure:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script or flow to run when the scheduled job fails
|
|
on_failure_times:
|
|
type: number
|
|
nullable: true
|
|
description: Number of consecutive failures before the on_failure handler is triggered (default 1)
|
|
on_failure_exact:
|
|
type: boolean
|
|
nullable: true
|
|
description: If true, trigger on_failure handler only on exactly N failures, not on every failure after N
|
|
on_failure_extra_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
nullable: true
|
|
on_recovery:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script or flow to run when the schedule recovers after failures
|
|
on_recovery_times:
|
|
type: number
|
|
nullable: true
|
|
description: Number of consecutive successes before the on_recovery handler is triggered (default 1)
|
|
on_recovery_extra_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
nullable: true
|
|
on_success:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script or flow to run after each successful execution
|
|
on_success_extra_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
nullable: 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:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
nullable: true
|
|
summary:
|
|
type: string
|
|
nullable: true
|
|
description: Short summary describing the purpose of this schedule
|
|
description:
|
|
type: string
|
|
nullable: true
|
|
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
|
|
nullable: true
|
|
description: Worker tag to route jobs to specific worker groups
|
|
paused_until:
|
|
type: string
|
|
format: date-time
|
|
nullable: true
|
|
description: ISO 8601 datetime until which the schedule is paused. Schedule resumes automatically after this time
|
|
cron_version:
|
|
type: string
|
|
nullable: true
|
|
description: Cron parser version. Use 'v2' for extended syntax with additional features
|
|
dynamic_skip:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script that validates scheduled datetimes. Receives scheduled_for datetime and returns boolean to skip (true) or run (false)
|
|
required:
|
|
- path
|
|
- edited_by
|
|
- edited_at
|
|
- schedule
|
|
- script_path
|
|
- timezone
|
|
- extra_perms
|
|
- is_flow
|
|
- enabled
|
|
- email
|
|
- permissioned_as
|
|
|
|
ScheduleWJobs:
|
|
allOf:
|
|
- $ref: "#/components/schemas/Schedule"
|
|
- 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
|
|
|
|
ErrorHandler:
|
|
type: string
|
|
enum:
|
|
- custom
|
|
- slack
|
|
- teams
|
|
- email
|
|
|
|
NewSchedule:
|
|
type: object
|
|
properties:
|
|
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:
|
|
nullable: true
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
enabled:
|
|
type: boolean
|
|
description: Whether the schedule is currently active and will trigger jobs
|
|
on_failure:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script or flow to run when the scheduled job fails
|
|
on_failure_times:
|
|
type: number
|
|
nullable: true
|
|
description: Number of consecutive failures before the on_failure handler is triggered (default 1)
|
|
on_failure_exact:
|
|
type: boolean
|
|
nullable: true
|
|
description: If true, trigger on_failure handler only on exactly N failures, not on every failure after N
|
|
on_failure_extra_args:
|
|
nullable: true
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
on_recovery:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script or flow to run when the schedule recovers after failures
|
|
on_recovery_times:
|
|
type: number
|
|
nullable: true
|
|
description: Number of consecutive successes before the on_recovery handler is triggered (default 1)
|
|
on_recovery_extra_args:
|
|
nullable: true
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
on_success:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script or flow to run after each successful execution
|
|
on_success_extra_args:
|
|
nullable: true
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
ws_error_handler_muted:
|
|
type: boolean
|
|
description: If true, the workspace-level error handler will not be triggered for this schedule's failures
|
|
retry:
|
|
nullable: true
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
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
|
|
nullable: true
|
|
description: Short summary describing the purpose of this schedule
|
|
description:
|
|
type: string
|
|
nullable: true
|
|
description: Detailed description of what this schedule does
|
|
tag:
|
|
type: string
|
|
nullable: true
|
|
description: Worker tag to route jobs to specific worker groups
|
|
paused_until:
|
|
type: string
|
|
nullable: true
|
|
format: date-time
|
|
description: ISO 8601 datetime until which the schedule is paused. Schedule resumes automatically after this time
|
|
cron_version:
|
|
type: string
|
|
nullable: true
|
|
description: Cron parser version. Use 'v2' for extended syntax with additional features
|
|
dynamic_skip:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script that validates scheduled datetimes. Receives scheduled_for datetime and returns boolean to skip (true) or run (false)
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this schedule runs as. Used during deployment to preserve the original schedule owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
required:
|
|
- path
|
|
- schedule
|
|
- timezone
|
|
- script_path
|
|
- is_flow
|
|
- args
|
|
|
|
EditSchedule:
|
|
type: object
|
|
properties:
|
|
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:
|
|
nullable: true
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
on_failure:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script or flow to run when the scheduled job fails
|
|
on_failure_times:
|
|
type: number
|
|
nullable: true
|
|
description: Number of consecutive failures before the on_failure handler is triggered (default 1)
|
|
on_failure_exact:
|
|
type: boolean
|
|
nullable: true
|
|
description: If true, trigger on_failure handler only on exactly N failures, not on every failure after N
|
|
on_failure_extra_args:
|
|
nullable: true
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
on_recovery:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script or flow to run when the schedule recovers after failures
|
|
on_recovery_times:
|
|
type: number
|
|
nullable: true
|
|
description: Number of consecutive successes before the on_recovery handler is triggered (default 1)
|
|
on_recovery_extra_args:
|
|
nullable: true
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
on_success:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script or flow to run after each successful execution
|
|
on_success_extra_args:
|
|
nullable: true
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
ws_error_handler_muted:
|
|
type: boolean
|
|
description: If true, the workspace-level error handler will not be triggered for this schedule's failures
|
|
retry:
|
|
nullable: true
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
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
|
|
nullable: true
|
|
description: Short summary describing the purpose of this schedule
|
|
description:
|
|
type: string
|
|
nullable: true
|
|
description: Detailed description of what this schedule does
|
|
tag:
|
|
type: string
|
|
nullable: true
|
|
description: Worker tag to route jobs to specific worker groups
|
|
paused_until:
|
|
type: string
|
|
nullable: true
|
|
format: date-time
|
|
description: ISO 8601 datetime until which the schedule is paused. Schedule resumes automatically after this time
|
|
cron_version:
|
|
type: string
|
|
nullable: true
|
|
description: Cron parser version. Use 'v2' for extended syntax with additional features
|
|
dynamic_skip:
|
|
type: string
|
|
nullable: true
|
|
description: Path to a script that validates scheduled datetimes. Receives scheduled_for datetime and returns boolean to skip (true) or run (false)
|
|
permissioned_as:
|
|
type: string
|
|
nullable: true
|
|
description: "The user or group this schedule runs as (e.g., 'u/admin' or 'g/mygroup'). Only admins and wm_deployers can set this via preserve_permissioned_as."
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
nullable: true
|
|
description: "If true and user is admin/wm_deployers, preserve the provided permissioned_as instead of using the deploying user's identity"
|
|
required:
|
|
- schedule
|
|
- timezone
|
|
- args
|
|
|
|
JobTriggerKind:
|
|
description: job trigger kind (schedule, http, websocket...)
|
|
type: string
|
|
enum:
|
|
- webhook
|
|
- default_email
|
|
- email
|
|
- schedule
|
|
- http
|
|
- websocket
|
|
- postgres
|
|
- kafka
|
|
- nats
|
|
- mqtt
|
|
- sqs
|
|
- gcp
|
|
- google
|
|
|
|
TriggerMode:
|
|
description: job trigger mode
|
|
type: string
|
|
enum:
|
|
- enabled
|
|
- disabled
|
|
- suspended
|
|
|
|
TriggerExtraProperty:
|
|
type: object
|
|
properties:
|
|
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
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as (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:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
description: Trigger mode (enabled/disabled)
|
|
required:
|
|
- path
|
|
- script_path
|
|
- permissioned_as
|
|
- extra_perms
|
|
- workspace_id
|
|
- edited_by
|
|
- edited_at
|
|
- is_flow
|
|
- mode
|
|
|
|
AuthenticationMethod:
|
|
type: string
|
|
enum:
|
|
- none
|
|
- windmill
|
|
- api_key
|
|
- basic_http
|
|
- custom_script
|
|
- signature
|
|
|
|
RunnableKind:
|
|
type: string
|
|
enum:
|
|
- script
|
|
- flow
|
|
|
|
OpenapiSpecFormat:
|
|
type: string
|
|
enum:
|
|
- yaml
|
|
- json
|
|
|
|
OpenapiHttpRouteFilters:
|
|
type: object
|
|
properties:
|
|
folder_regex:
|
|
type: string
|
|
path_regex:
|
|
type: string
|
|
route_path_regex:
|
|
type: string
|
|
required:
|
|
- folder_regex
|
|
- path_regex
|
|
- route_path_regex
|
|
|
|
WebhookFilters:
|
|
type: object
|
|
properties:
|
|
user_or_folder_regex:
|
|
type: string
|
|
enum:
|
|
- "*"
|
|
- u
|
|
- f
|
|
user_or_folder_regex_value:
|
|
type: string
|
|
path:
|
|
type: string
|
|
runnable_kind:
|
|
$ref: "#/components/schemas/RunnableKind"
|
|
required:
|
|
- user_or_folder_regex
|
|
- user_or_folder_regex_value
|
|
- path
|
|
- runnable_kind
|
|
|
|
OpenapiV3Info:
|
|
type: object
|
|
properties:
|
|
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:
|
|
- title
|
|
- version
|
|
|
|
GenerateOpenapiSpec:
|
|
type: object
|
|
properties:
|
|
info:
|
|
$ref: "#/components/schemas/OpenapiV3Info"
|
|
url:
|
|
type: string
|
|
openapi_spec_format:
|
|
$ref: "#/components/schemas/OpenapiSpecFormat"
|
|
http_route_filters:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/OpenapiHttpRouteFilters"
|
|
webhook_filters:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WebhookFilters"
|
|
|
|
HttpMethod:
|
|
type: string
|
|
enum:
|
|
- get
|
|
- post
|
|
- put
|
|
- delete
|
|
- patch
|
|
|
|
HttpRequestType:
|
|
type: string
|
|
enum:
|
|
- sync
|
|
- async
|
|
- sync_sse
|
|
|
|
HttpTrigger:
|
|
allOf:
|
|
- $ref: "#/components/schemas/TriggerExtraProperty"
|
|
type: object
|
|
properties:
|
|
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
|
|
nullable: true
|
|
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:
|
|
$ref: "#/components/schemas/HttpMethod"
|
|
description: HTTP method (get, post, put, delete, patch) that triggers this endpoint
|
|
authentication_resource_path:
|
|
type: string
|
|
nullable: true
|
|
description: Path to the resource containing authentication configuration (for api_key, basic_http, custom_script, signature methods)
|
|
summary:
|
|
type: string
|
|
nullable: true
|
|
description: Short summary describing the purpose of this trigger
|
|
description:
|
|
type: string
|
|
nullable: true
|
|
description: Detailed description of what this trigger does
|
|
request_type:
|
|
$ref: "#/components/schemas/HttpRequestType"
|
|
description: "How the request is handled - 'sync' waits for result, 'async' returns job ID immediately, 'sync_sse' streams results via Server-Sent Events"
|
|
authentication_method:
|
|
$ref: "#/components/schemas/AuthenticationMethod"
|
|
description: "How requests are authenticated - 'none' (public), 'windmill' (Windmill token), '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
|
|
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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
|
|
required:
|
|
- route_path
|
|
- request_type
|
|
- authentication_method
|
|
- http_method
|
|
- is_static_website
|
|
- workspaced_route
|
|
- wrap_body
|
|
- raw_string
|
|
|
|
NewHttpTrigger:
|
|
type: object
|
|
properties:
|
|
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
|
|
nullable: true
|
|
description: Short summary describing the purpose of this trigger
|
|
description:
|
|
type: string
|
|
nullable: true
|
|
description: Detailed description of what this trigger does
|
|
static_asset_config:
|
|
type: object
|
|
nullable: true
|
|
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:
|
|
$ref: "#/components/schemas/HttpMethod"
|
|
description: HTTP method (get, post, put, delete, patch) that triggers this endpoint
|
|
authentication_resource_path:
|
|
type: string
|
|
nullable: true
|
|
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:
|
|
$ref: "#/components/schemas/HttpRequestType"
|
|
description: "How the request is handled - 'sync' waits for result, 'async' returns job ID immediately, 'sync_sse' streams results via Server-Sent Events"
|
|
authentication_method:
|
|
$ref: "#/components/schemas/AuthenticationMethod"
|
|
description: "How requests are authenticated - 'none' (public), 'windmill' (Windmill token), '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:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
|
|
required:
|
|
- path
|
|
- script_path
|
|
- route_path
|
|
- is_flow
|
|
- authentication_method
|
|
- http_method
|
|
- is_static_website
|
|
|
|
EditHttpTrigger:
|
|
type: object
|
|
properties:
|
|
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
|
|
nullable: true
|
|
description: Short summary describing the purpose of this trigger
|
|
description:
|
|
type: string
|
|
nullable: true
|
|
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
|
|
nullable: true
|
|
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
|
|
nullable: true
|
|
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:
|
|
$ref: "#/components/schemas/HttpMethod"
|
|
description: HTTP method (get, post, put, delete, patch) that triggers this endpoint
|
|
is_async:
|
|
type: boolean
|
|
description: Deprecated, use request_type instead
|
|
request_type:
|
|
$ref: "#/components/schemas/HttpRequestType"
|
|
description: "How the request is handled - 'sync' waits for result, 'async' returns job ID immediately, 'sync_sse' streams results via Server-Sent Events"
|
|
authentication_method:
|
|
$ref: "#/components/schemas/AuthenticationMethod"
|
|
description: "How requests are authenticated - 'none' (public), 'windmill' (Windmill token), '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
|
|
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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
required:
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- kind
|
|
- authentication_method
|
|
- http_method
|
|
- is_static_website
|
|
|
|
TriggersCount:
|
|
type: object
|
|
properties:
|
|
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
|
|
google_count:
|
|
type: number
|
|
|
|
WebsocketTrigger:
|
|
allOf:
|
|
- $ref: "#/components/schemas/TriggerExtraProperty"
|
|
type: object
|
|
properties:
|
|
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
|
|
nullable: true
|
|
description: Messages to send immediately after connecting (can be raw strings or computed by runnables)
|
|
items:
|
|
$ref: "#/components/schemas/WebsocketTriggerInitialMessage"
|
|
url_runnable_args:
|
|
description: Arguments to pass to the script/flow that computes the WebSocket URL
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
nullable: 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: Arguments to pass to the error handler
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
retry:
|
|
description: Retry configuration for failed executions
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
|
|
required:
|
|
- url
|
|
- filters
|
|
- can_return_message
|
|
- can_return_error_result
|
|
|
|
NewWebsocketTrigger:
|
|
type: object
|
|
properties:
|
|
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:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
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
|
|
nullable: true
|
|
description: Messages to send immediately after connecting (can be raw strings or computed by runnables)
|
|
items:
|
|
$ref: "#/components/schemas/WebsocketTriggerInitialMessage"
|
|
url_runnable_args:
|
|
description: Arguments to pass to the script/flow that computes the WebSocket URL
|
|
nullable: true
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
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: Arguments to pass to the error handler
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
retry:
|
|
description: Retry configuration for failed executions
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
|
|
required:
|
|
- path
|
|
- script_path
|
|
- url
|
|
- is_flow
|
|
- filters
|
|
- can_return_message
|
|
- can_return_error_result
|
|
|
|
EditWebsocketTrigger:
|
|
type: object
|
|
properties:
|
|
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
|
|
nullable: true
|
|
description: Messages to send immediately after connecting (can be raw strings or computed by runnables)
|
|
items:
|
|
$ref: "#/components/schemas/WebsocketTriggerInitialMessage"
|
|
url_runnable_args:
|
|
description: Arguments to pass to the script/flow that computes the WebSocket URL
|
|
nullable: true
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
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: Arguments to pass to the error handler
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
retry:
|
|
description: Retry configuration for failed executions
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
|
|
required:
|
|
- path
|
|
- script_path
|
|
- url
|
|
- is_flow
|
|
- filters
|
|
- can_return_message
|
|
- can_return_error_result
|
|
WebsocketTriggerInitialMessage:
|
|
anyOf:
|
|
- type: object
|
|
properties:
|
|
raw_message:
|
|
type: string
|
|
required:
|
|
- raw_message
|
|
- type: object
|
|
properties:
|
|
runnable_result:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
is_flow:
|
|
type: boolean
|
|
required:
|
|
- path
|
|
- args
|
|
- is_flow
|
|
required:
|
|
- runnable_result
|
|
|
|
MqttQoS:
|
|
type: string
|
|
enum: ["qos0", "qos1", "qos2"]
|
|
|
|
MqttV3Config:
|
|
type: object
|
|
properties:
|
|
clean_session:
|
|
type: boolean
|
|
|
|
MqttV5Config:
|
|
type: object
|
|
properties:
|
|
clean_start:
|
|
type: boolean
|
|
topic_alias_maximum:
|
|
type: number
|
|
session_expiry_interval:
|
|
type: number
|
|
|
|
MqttSubscribeTopic:
|
|
type: object
|
|
properties:
|
|
qos:
|
|
$ref: "#/components/schemas/MqttQoS"
|
|
topic:
|
|
type: string
|
|
required:
|
|
- qos
|
|
- topic
|
|
|
|
MqttClientVersion:
|
|
type: string
|
|
enum: ["v3", "v5"]
|
|
|
|
MqttTrigger:
|
|
allOf:
|
|
- $ref: "#/components/schemas/TriggerExtraProperty"
|
|
type: object
|
|
properties:
|
|
mqtt_resource_path:
|
|
type: string
|
|
description: Path to the MQTT resource containing broker connection configuration
|
|
subscribe_topics:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MqttSubscribeTopic"
|
|
description: Array of MQTT topics to subscribe to, each with topic name and QoS level
|
|
v3_config:
|
|
$ref: "#/components/schemas/MqttV3Config"
|
|
nullable: true
|
|
description: MQTT v3 specific configuration (clean_session)
|
|
v5_config:
|
|
$ref: "#/components/schemas/MqttV5Config"
|
|
nullable: true
|
|
description: MQTT v5 specific configuration (clean_start, topic_alias_maximum, session_expiry_interval)
|
|
client_id:
|
|
type: string
|
|
nullable: true
|
|
description: MQTT client ID for this connection
|
|
client_version:
|
|
$ref: "#/components/schemas/MqttClientVersion"
|
|
nullable: true
|
|
description: MQTT protocol version ('v3' or 'v5')
|
|
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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
required:
|
|
- subscribe_topics
|
|
- mqtt_resource_path
|
|
|
|
NewMqttTrigger:
|
|
type: object
|
|
properties:
|
|
mqtt_resource_path:
|
|
type: string
|
|
description: Path to the MQTT resource containing broker connection configuration
|
|
subscribe_topics:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MqttSubscribeTopic"
|
|
description: Array of MQTT topics to subscribe to, each with topic name and QoS level
|
|
client_id:
|
|
type: string
|
|
nullable: true
|
|
description: MQTT client ID for this connection
|
|
v3_config:
|
|
nullable: true
|
|
$ref: "#/components/schemas/MqttV3Config"
|
|
description: MQTT v3 specific configuration (clean_session)
|
|
v5_config:
|
|
nullable: true
|
|
$ref: "#/components/schemas/MqttV5Config"
|
|
description: MQTT v5 specific configuration (clean_start, topic_alias_maximum, session_expiry_interval)
|
|
client_version:
|
|
nullable: true
|
|
$ref: "#/components/schemas/MqttClientVersion"
|
|
description: MQTT protocol version ('v3' or '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:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
required:
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- subscribe_topics
|
|
- mqtt_resource_path
|
|
|
|
EditMqttTrigger:
|
|
type: object
|
|
properties:
|
|
mqtt_resource_path:
|
|
type: string
|
|
description: Path to the MQTT resource containing broker connection configuration
|
|
subscribe_topics:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MqttSubscribeTopic"
|
|
description: Array of MQTT topics to subscribe to, each with topic name and QoS level
|
|
client_id:
|
|
type: string
|
|
nullable: true
|
|
description: MQTT client ID for this connection
|
|
v3_config:
|
|
nullable: true
|
|
$ref: "#/components/schemas/MqttV3Config"
|
|
description: MQTT v3 specific configuration (clean_session)
|
|
v5_config:
|
|
nullable: true
|
|
$ref: "#/components/schemas/MqttV5Config"
|
|
description: MQTT v5 specific configuration (clean_start, topic_alias_maximum, session_expiry_interval)
|
|
client_version:
|
|
nullable: true
|
|
$ref: "#/components/schemas/MqttClientVersion"
|
|
description: MQTT protocol version ('v3' or '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:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
required:
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- enabled
|
|
- subscribe_topics
|
|
- mqtt_resource_path
|
|
|
|
DeliveryType:
|
|
type: string
|
|
enum:
|
|
- 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."
|
|
|
|
PushConfig:
|
|
type: object
|
|
description: "Configuration for push delivery mode."
|
|
properties:
|
|
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:
|
|
- authenticate
|
|
- base_endpoint
|
|
|
|
GcpTrigger:
|
|
allOf:
|
|
- $ref: "#/components/schemas/TriggerExtraProperty"
|
|
type: object
|
|
description: "A Google Cloud Pub/Sub trigger that executes a script or flow when messages are received."
|
|
properties:
|
|
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:
|
|
$ref: "#/components/schemas/DeliveryType"
|
|
delivery_config:
|
|
$ref: "#/components/schemas/PushConfig"
|
|
nullable: true
|
|
subscription_mode:
|
|
$ref: "#/components/schemas/SubscriptionMode"
|
|
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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: "Arguments to pass to the error handler."
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: "Retry configuration for failed executions."
|
|
required:
|
|
- gcp_resource_path
|
|
- topic_id
|
|
- subscription_id
|
|
- delivery_type
|
|
- subscription_mode
|
|
|
|
SubscriptionMode:
|
|
type: string
|
|
enum:
|
|
- 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."
|
|
|
|
GcpTriggerData:
|
|
type: object
|
|
description: "Data for creating or updating a Google Cloud Pub/Sub trigger."
|
|
properties:
|
|
gcp_resource_path:
|
|
type: string
|
|
description: "Path to the GCP resource containing service account credentials for authentication."
|
|
subscription_mode:
|
|
$ref: "#/components/schemas/SubscriptionMode"
|
|
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:
|
|
$ref: "#/components/schemas/DeliveryType"
|
|
delivery_config:
|
|
nullable: true
|
|
$ref: "#/components/schemas/PushConfig"
|
|
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:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: "Arguments to pass to the error handler."
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: "Retry configuration for failed executions."
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
required:
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- gcp_resource_path
|
|
- topic_id
|
|
- subscription_mode
|
|
|
|
GetAllTopicSubscription:
|
|
type: object
|
|
properties:
|
|
topic_id:
|
|
type: string
|
|
required:
|
|
- topic_id
|
|
|
|
DeleteGcpSubscription:
|
|
type: object
|
|
properties:
|
|
subscription_id:
|
|
type: string
|
|
required:
|
|
- subscription_id
|
|
|
|
AwsAuthResourceType:
|
|
type: string
|
|
enum:
|
|
- oidc
|
|
- credentials
|
|
|
|
SqsTrigger:
|
|
allOf:
|
|
- $ref: "#/components/schemas/TriggerExtraProperty"
|
|
type: object
|
|
properties:
|
|
queue_url:
|
|
type: string
|
|
description: The full URL of the AWS SQS queue to poll for messages
|
|
aws_auth_resource_type:
|
|
$ref: "#/components/schemas/AwsAuthResourceType"
|
|
description: Authentication type - 'credentials' for access key/secret, 'oidc' for OpenID Connect
|
|
aws_resource_path:
|
|
type: string
|
|
description: Path to the AWS resource containing credentials or OIDC configuration
|
|
message_attributes:
|
|
type: array
|
|
nullable: true
|
|
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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
|
|
required:
|
|
- queue_url
|
|
- aws_resource_path
|
|
- aws_auth_resource_type
|
|
|
|
LoggedWizardStatus:
|
|
type: string
|
|
enum:
|
|
- OK
|
|
- SKIP
|
|
- FAIL
|
|
|
|
CustomInstanceDbLogs:
|
|
type: object
|
|
properties:
|
|
super_admin:
|
|
$ref: "#/components/schemas/LoggedWizardStatus"
|
|
database_credentials:
|
|
$ref: "#/components/schemas/LoggedWizardStatus"
|
|
valid_dbname:
|
|
$ref: "#/components/schemas/LoggedWizardStatus"
|
|
created_database:
|
|
$ref: "#/components/schemas/LoggedWizardStatus"
|
|
db_connect:
|
|
$ref: "#/components/schemas/LoggedWizardStatus"
|
|
grant_permissions:
|
|
$ref: "#/components/schemas/LoggedWizardStatus"
|
|
|
|
CustomInstanceDbTag:
|
|
type: string
|
|
enum:
|
|
- ducklake
|
|
- datatable
|
|
|
|
CustomInstanceDb:
|
|
type: object
|
|
required:
|
|
- logs
|
|
- success
|
|
properties:
|
|
logs:
|
|
$ref: "#/components/schemas/CustomInstanceDbLogs"
|
|
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:
|
|
$ref: "#/components/schemas/CustomInstanceDbTag"
|
|
|
|
NewSqsTrigger:
|
|
type: object
|
|
properties:
|
|
queue_url:
|
|
type: string
|
|
description: The full URL of the AWS SQS queue to poll for messages
|
|
aws_auth_resource_type:
|
|
$ref: "#/components/schemas/AwsAuthResourceType"
|
|
description: Authentication type - 'credentials' for access key/secret, 'oidc' for OpenID Connect
|
|
aws_resource_path:
|
|
type: string
|
|
description: Path to the AWS resource containing credentials or OIDC configuration
|
|
message_attributes:
|
|
type: array
|
|
nullable: true
|
|
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:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
required:
|
|
- queue_url
|
|
- aws_resource_path
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- aws_auth_resource_type
|
|
|
|
EditSqsTrigger:
|
|
type: object
|
|
properties:
|
|
queue_url:
|
|
type: string
|
|
description: The full URL of the AWS SQS queue to poll for messages
|
|
aws_auth_resource_type:
|
|
$ref: "#/components/schemas/AwsAuthResourceType"
|
|
description: Authentication type - 'credentials' for access key/secret, 'oidc' for OpenID Connect
|
|
aws_resource_path:
|
|
type: string
|
|
description: Path to the AWS resource containing credentials or OIDC configuration
|
|
message_attributes:
|
|
type: array
|
|
nullable: true
|
|
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:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
required:
|
|
- queue_url
|
|
- aws_resource_path
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- enabled
|
|
- aws_auth_resource_type
|
|
|
|
Slot:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
|
|
SlotList:
|
|
type: object
|
|
properties:
|
|
slot_name:
|
|
type: string
|
|
active:
|
|
type: boolean
|
|
|
|
PublicationData:
|
|
type: object
|
|
properties:
|
|
table_to_track:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Relations"
|
|
transaction_to_track:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- transaction_to_track
|
|
|
|
TableToTrack:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
table_name:
|
|
type: string
|
|
columns_name:
|
|
type: array
|
|
items:
|
|
type: string
|
|
where_clause:
|
|
type: string
|
|
required:
|
|
- table_name
|
|
|
|
Relations:
|
|
type: object
|
|
properties:
|
|
schema_name:
|
|
type: string
|
|
table_to_track:
|
|
$ref: "#/components/schemas/TableToTrack"
|
|
required:
|
|
- schema_name
|
|
- table_to_track
|
|
|
|
Language:
|
|
type: string
|
|
enum:
|
|
- Typescript
|
|
|
|
TemplateScript:
|
|
type: object
|
|
properties:
|
|
postgres_resource_path:
|
|
type: string
|
|
relations:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Relations"
|
|
language:
|
|
$ref: "#/components/schemas/Language"
|
|
required:
|
|
- postgres_resource_path
|
|
- relations
|
|
- language
|
|
|
|
PostgresTrigger:
|
|
allOf:
|
|
- $ref: "#/components/schemas/TriggerExtraProperty"
|
|
type: object
|
|
properties:
|
|
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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
required:
|
|
- postgres_resource_path
|
|
- replication_slot_name
|
|
- publication_name
|
|
|
|
NewPostgresTrigger:
|
|
type: object
|
|
properties:
|
|
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:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
postgres_resource_path:
|
|
type: string
|
|
description: Path to the PostgreSQL resource containing connection configuration
|
|
publication:
|
|
$ref: "#/components/schemas/PublicationData"
|
|
description: Configuration for creating/managing the publication (tables, operations)
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
required:
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- enabled
|
|
- postgres_resource_path
|
|
|
|
EditPostgresTrigger:
|
|
type: object
|
|
properties:
|
|
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:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
postgres_resource_path:
|
|
type: string
|
|
description: Path to the PostgreSQL resource containing connection configuration
|
|
publication:
|
|
$ref: "#/components/schemas/PublicationData"
|
|
description: Configuration for creating/managing the publication (tables, operations)
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
required:
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- enabled
|
|
- postgres_resource_path
|
|
- publication_name
|
|
- replication_slot_name
|
|
|
|
KafkaTrigger:
|
|
allOf:
|
|
- $ref: "#/components/schemas/TriggerExtraProperty"
|
|
type: object
|
|
properties:
|
|
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
|
|
auto_offset_reset:
|
|
type: string
|
|
enum:
|
|
- latest
|
|
- earliest
|
|
default: latest
|
|
description: "Initial offset behavior when consumer group has no committed offset. 'latest' starts from new messages only, 'earliest' starts from the beginning."
|
|
auto_commit:
|
|
type: boolean
|
|
default: true
|
|
description: "When true (default), offsets are committed automatically after receiving each message. When false, you must manually commit offsets using the commit_offsets endpoint."
|
|
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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
|
|
required:
|
|
- kafka_resource_path
|
|
- group_id
|
|
- topics
|
|
- filters
|
|
|
|
NewKafkaTrigger:
|
|
type: object
|
|
properties:
|
|
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
|
|
auto_offset_reset:
|
|
type: string
|
|
enum:
|
|
- latest
|
|
- earliest
|
|
default: latest
|
|
description: "Initial offset behavior when consumer group has no committed offset."
|
|
auto_commit:
|
|
type: boolean
|
|
default: true
|
|
description: "When true (default), offsets are committed automatically after receiving each message. When false, you must manually commit offsets using the commit_offsets endpoint."
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
|
|
required:
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- kafka_resource_path
|
|
- group_id
|
|
- topics
|
|
- filters
|
|
|
|
EditKafkaTrigger:
|
|
type: object
|
|
properties:
|
|
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
|
|
auto_offset_reset:
|
|
type: string
|
|
enum:
|
|
- latest
|
|
- earliest
|
|
default: latest
|
|
description: "Initial offset behavior when consumer group has no committed offset."
|
|
auto_commit:
|
|
type: boolean
|
|
default: true
|
|
description: "When true (default), offsets are committed automatically after receiving each message. When false, you must manually commit offsets using the commit_offsets 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
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
|
|
required:
|
|
- path
|
|
- script_path
|
|
- kafka_resource_path
|
|
- group_id
|
|
- topics
|
|
- filters
|
|
- is_flow
|
|
|
|
NatsTrigger:
|
|
allOf:
|
|
- $ref: "#/components/schemas/TriggerExtraProperty"
|
|
type: object
|
|
properties:
|
|
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
|
|
nullable: true
|
|
description: JetStream stream name (required when use_jetstream is true)
|
|
consumer_name:
|
|
type: string
|
|
nullable: true
|
|
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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
|
|
required:
|
|
- nats_resource_path
|
|
- use_jetstream
|
|
- subjects
|
|
|
|
NewNatsTrigger:
|
|
type: object
|
|
properties:
|
|
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
|
|
nullable: true
|
|
description: JetStream stream name (required when use_jetstream is true)
|
|
consumer_name:
|
|
type: string
|
|
nullable: true
|
|
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:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
error_handler_path:
|
|
type: string
|
|
description: Path to a script or flow to run when the triggered job fails
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
|
|
required:
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
- nats_resource_path
|
|
- use_jetstream
|
|
- subjects
|
|
|
|
EditNatsTrigger:
|
|
type: object
|
|
properties:
|
|
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
|
|
nullable: true
|
|
description: JetStream stream name (required when use_jetstream is true)
|
|
consumer_name:
|
|
type: string
|
|
nullable: true
|
|
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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
description: Arguments to pass to the error handler
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
description: Retry configuration for failed executions
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
required:
|
|
- path
|
|
- script_path
|
|
- nats_resource_path
|
|
- use_jetstream
|
|
- subjects
|
|
- is_flow
|
|
|
|
EmailTrigger:
|
|
allOf:
|
|
- $ref: "#/components/schemas/TriggerExtraProperty"
|
|
type: object
|
|
properties:
|
|
local_part:
|
|
type: string
|
|
workspaced_local_part:
|
|
type: boolean
|
|
error_handler_path:
|
|
type: string
|
|
error_handler_args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
|
|
required:
|
|
- local_part
|
|
|
|
NewEmailTrigger:
|
|
type: object
|
|
properties:
|
|
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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
mode:
|
|
$ref: "#/components/schemas/TriggerMode"
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
|
|
required:
|
|
- path
|
|
- script_path
|
|
- local_part
|
|
- is_flow
|
|
|
|
EditEmailTrigger:
|
|
type: object
|
|
properties:
|
|
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:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
retry:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/Retry"
|
|
permissioned_as:
|
|
type: string
|
|
description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
|
|
preserve_permissioned_as:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it."
|
|
required:
|
|
- path
|
|
- script_path
|
|
- is_flow
|
|
|
|
Group:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
members:
|
|
type: array
|
|
items:
|
|
type: string
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
required:
|
|
- name
|
|
|
|
InstanceGroup:
|
|
type: object
|
|
required:
|
|
- name
|
|
properties:
|
|
name:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
emails:
|
|
type: array
|
|
items:
|
|
type: string
|
|
instance_role:
|
|
type: string
|
|
nullable: true
|
|
enum:
|
|
- superadmin
|
|
- devops
|
|
|
|
InstanceGroupWithWorkspaces:
|
|
type: object
|
|
required:
|
|
- name
|
|
properties:
|
|
name:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
emails:
|
|
type: array
|
|
items:
|
|
type: string
|
|
instance_role:
|
|
type: string
|
|
nullable: true
|
|
enum:
|
|
- superadmin
|
|
- devops
|
|
workspaces:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WorkspaceInfo"
|
|
|
|
WorkspaceInfo:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
workspace_name:
|
|
type: string
|
|
role:
|
|
type: string
|
|
required:
|
|
- name
|
|
|
|
Folder:
|
|
type: object
|
|
properties:
|
|
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:
|
|
- name
|
|
- owners
|
|
- extra_perms
|
|
|
|
WorkerPing:
|
|
type: object
|
|
properties:
|
|
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
|
|
native_mode:
|
|
type: boolean
|
|
required:
|
|
- worker
|
|
- worker_instance
|
|
- ping_at
|
|
- started_at
|
|
- ip
|
|
- jobs_executed
|
|
- worker_group
|
|
- wm_version
|
|
UserWorkspaceList:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
workspaces:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
username:
|
|
type: string
|
|
color:
|
|
type: string
|
|
operator_settings:
|
|
$ref: "#/components/schemas/OperatorSettings"
|
|
parent_workspace_id:
|
|
type: string
|
|
nullable: true
|
|
created_by:
|
|
type: string
|
|
nullable: true
|
|
disabled:
|
|
type: boolean
|
|
required:
|
|
- id
|
|
- name
|
|
- username
|
|
- color
|
|
- disabled
|
|
required:
|
|
- email
|
|
- workspaces
|
|
|
|
CreateWorkspace:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
username:
|
|
type: string
|
|
color:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
|
|
CreateWorkspaceFork:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
color:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- parent_workspace_id
|
|
|
|
Workspace:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
owner:
|
|
type: string
|
|
domain:
|
|
type: string
|
|
color:
|
|
type: string
|
|
parent_workspace_id:
|
|
type: string
|
|
nullable: true
|
|
required:
|
|
- id
|
|
- name
|
|
- owner
|
|
- created_at
|
|
|
|
DependencyMap:
|
|
type: object
|
|
properties:
|
|
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
|
|
|
|
DependencyDependent:
|
|
type: object
|
|
properties:
|
|
importer_path:
|
|
type: string
|
|
importer_kind:
|
|
type: string
|
|
enum:
|
|
- script
|
|
- flow
|
|
- app
|
|
importer_node_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
nullable: true
|
|
required:
|
|
- importer_path
|
|
- importer_kind
|
|
|
|
DependentsAmount:
|
|
type: object
|
|
properties:
|
|
imported_path:
|
|
type: string
|
|
count:
|
|
type: integer
|
|
format: int64
|
|
required:
|
|
- imported_path
|
|
- count
|
|
|
|
WorkspaceInvite:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
email:
|
|
type: string
|
|
is_admin:
|
|
type: boolean
|
|
operator:
|
|
type: boolean
|
|
parent_workspace_id:
|
|
type: string
|
|
nullable: true
|
|
required:
|
|
- workspace_id
|
|
- email
|
|
- is_admin
|
|
- operator
|
|
|
|
GlobalUserInfo:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
login_type:
|
|
type: string
|
|
enum: ["password", "github"]
|
|
super_admin:
|
|
type: boolean
|
|
devops:
|
|
type: boolean
|
|
verified:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
company:
|
|
type: string
|
|
username:
|
|
type: string
|
|
operator_only:
|
|
type: boolean
|
|
first_time_user:
|
|
type: boolean
|
|
role_source:
|
|
type: string
|
|
enum: ["manual", "instance_group"]
|
|
|
|
required:
|
|
- email
|
|
- login_type
|
|
- super_admin
|
|
- verified
|
|
- first_time_user
|
|
- role_source
|
|
|
|
Flow:
|
|
allOf:
|
|
- $ref: "../../openflow.openapi.yaml#/components/schemas/OpenFlow"
|
|
- $ref: "#/components/schemas/FlowMetadata"
|
|
- type: object
|
|
properties:
|
|
lock_error_logs:
|
|
type: string
|
|
version_id:
|
|
type: number
|
|
|
|
ExtraPerms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
|
|
FlowMetadata:
|
|
type: object
|
|
properties:
|
|
workspace_id:
|
|
type: string
|
|
path:
|
|
type: string
|
|
edited_by:
|
|
type: string
|
|
edited_at:
|
|
type: string
|
|
format: date-time
|
|
archived:
|
|
type: boolean
|
|
extra_perms:
|
|
$ref: "#/components/schemas/ExtraPerms"
|
|
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:
|
|
- path
|
|
- edited_by
|
|
- edited_at
|
|
- archived
|
|
- extra_perms
|
|
|
|
OpenFlowWPath:
|
|
allOf:
|
|
- $ref: "../../openflow.openapi.yaml#/components/schemas/OpenFlow"
|
|
- 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
|
|
preserve_on_behalf_of:
|
|
type: boolean
|
|
description: "When true and the caller is a member of the 'wm_deployers' group, preserves the original on_behalf_of_email value instead of overwriting it."
|
|
required:
|
|
- path
|
|
|
|
FlowPreview:
|
|
type: object
|
|
properties:
|
|
value:
|
|
$ref: "../../openflow.openapi.yaml#/components/schemas/FlowValue"
|
|
path:
|
|
type: string
|
|
args:
|
|
$ref: "#/components/schemas/ScriptArgs"
|
|
tag:
|
|
type: string
|
|
restarted_from:
|
|
$ref: "#/components/schemas/RestartedFrom"
|
|
|
|
required:
|
|
- value
|
|
- content
|
|
- args
|
|
|
|
RestartedFrom:
|
|
type: object
|
|
properties:
|
|
flow_job_id:
|
|
type: string
|
|
format: uuid
|
|
step_id:
|
|
type: string
|
|
branch_or_iteration_n:
|
|
type: integer
|
|
flow_version:
|
|
type: integer
|
|
|
|
Policy:
|
|
type: object
|
|
properties:
|
|
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
|
|
|
|
ListableApp:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
workspace_id:
|
|
type: string
|
|
path:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
version:
|
|
type: integer
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
starred:
|
|
type: boolean
|
|
edited_at:
|
|
type: string
|
|
format: date-time
|
|
execution_mode:
|
|
type: string
|
|
enum: [viewer, publisher, anonymous]
|
|
raw_app:
|
|
type: boolean
|
|
required:
|
|
- id
|
|
- workspace_id
|
|
- path
|
|
- summary
|
|
- version
|
|
- extra_perms
|
|
- edited_at
|
|
- execution_mode
|
|
|
|
ScopeDefinition:
|
|
type: object
|
|
properties:
|
|
value:
|
|
type: string
|
|
label:
|
|
type: string
|
|
description:
|
|
type: string
|
|
nullable: true
|
|
requires_resource_path:
|
|
type: boolean
|
|
required:
|
|
- value
|
|
- label
|
|
- requires_resource_path
|
|
|
|
ScopeDomain:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
nullable: true
|
|
scopes:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ScopeDefinition"
|
|
required:
|
|
- name
|
|
- scopes
|
|
|
|
ListableRawApp:
|
|
type: object
|
|
properties:
|
|
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:
|
|
- workspace_id
|
|
- path
|
|
- summary
|
|
- extra_perms
|
|
- version
|
|
- edited_at
|
|
|
|
AppWithLastVersion:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
workspace_id:
|
|
type: string
|
|
path:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
versions:
|
|
type: array
|
|
items:
|
|
type: integer
|
|
created_by:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
value: {}
|
|
policy:
|
|
$ref: "#/components/schemas/Policy"
|
|
execution_mode:
|
|
type: string
|
|
enum: [viewer, publisher, anonymous]
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties:
|
|
type: boolean
|
|
custom_path:
|
|
type: string
|
|
raw_app:
|
|
type: boolean
|
|
bundle_secret:
|
|
type: string
|
|
required:
|
|
- id
|
|
- workspace_id
|
|
- path
|
|
- summary
|
|
- versions
|
|
- created_by
|
|
- created_at
|
|
- value
|
|
- policy
|
|
- execution_mode
|
|
- extra_perms
|
|
- raw_app
|
|
|
|
AppWithLastVersionWDraft:
|
|
allOf:
|
|
- $ref: "#/components/schemas/AppWithLastVersion"
|
|
- type: object
|
|
properties:
|
|
draft_only:
|
|
type: boolean
|
|
draft: {}
|
|
|
|
AppHistory:
|
|
type: object
|
|
properties:
|
|
version:
|
|
type: integer
|
|
deployment_msg:
|
|
type: string
|
|
required:
|
|
- version
|
|
|
|
FlowVersion:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
deployment_msg:
|
|
type: string
|
|
required:
|
|
- id
|
|
- created_at
|
|
|
|
SlackToken:
|
|
type: object
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
team_id:
|
|
type: string
|
|
team_name:
|
|
type: string
|
|
bot:
|
|
type: object
|
|
properties:
|
|
bot_access_token:
|
|
type: string
|
|
required:
|
|
- access_token
|
|
- team_id
|
|
- team_name
|
|
- bot
|
|
|
|
TokenResponse:
|
|
type: object
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
expires_in:
|
|
type: integer
|
|
refresh_token:
|
|
type: string
|
|
scope:
|
|
type: array
|
|
items:
|
|
type: string
|
|
grant_type:
|
|
type: string
|
|
|
|
required:
|
|
- access_token
|
|
|
|
HubScriptKind:
|
|
type: string
|
|
enum: [script, failure, trigger, approval]
|
|
|
|
PolarsClientKwargs:
|
|
type: object
|
|
properties:
|
|
region_name:
|
|
type: string
|
|
required:
|
|
- region_name
|
|
|
|
LargeFileStorage:
|
|
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
|
|
advanced_permissions:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/S3PermissionRule"
|
|
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
|
|
|
|
DucklakeSettings:
|
|
type: object
|
|
required: [ducklakes]
|
|
properties:
|
|
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
|
|
|
|
DataTableSettings:
|
|
type: object
|
|
required: [datatables]
|
|
properties:
|
|
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
|
|
|
|
DataTableSchema:
|
|
type: object
|
|
required: [datatable_name, schemas]
|
|
properties:
|
|
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
|
|
|
|
DynamicInputData:
|
|
type: object
|
|
properties:
|
|
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:
|
|
$ref: "#/components/schemas/RunnableKind"
|
|
required:
|
|
- source
|
|
- path
|
|
- runnable_kind
|
|
- type: object
|
|
properties:
|
|
source:
|
|
type: string
|
|
enum: [inline]
|
|
code:
|
|
type: string
|
|
description: Code content for inline execution
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
required:
|
|
- source
|
|
- code
|
|
required:
|
|
- entrypoint_function
|
|
- runnable_ref
|
|
|
|
WindmillLargeFile:
|
|
type: object
|
|
properties:
|
|
s3:
|
|
type: string
|
|
required:
|
|
- s3
|
|
|
|
WindmillFileMetadata:
|
|
type: object
|
|
properties:
|
|
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
|
|
|
|
WindmillFilePreview:
|
|
type: object
|
|
properties:
|
|
msg:
|
|
type: string
|
|
content:
|
|
type: string
|
|
content_type:
|
|
type: string
|
|
enum: ["RawText", "Csv", "Parquet", "Unknown"]
|
|
required:
|
|
- content_type
|
|
|
|
S3Resource:
|
|
type: object
|
|
properties:
|
|
bucket:
|
|
type: string
|
|
region:
|
|
type: string
|
|
endPoint:
|
|
type: string
|
|
useSSL:
|
|
type: boolean
|
|
accessKey:
|
|
type: string
|
|
secretKey:
|
|
type: string
|
|
pathStyle:
|
|
type: boolean
|
|
required:
|
|
- bucket
|
|
- region
|
|
- endPoint
|
|
- useSSL
|
|
- pathStyle
|
|
|
|
WorkspaceGitSyncSettings:
|
|
type: object
|
|
properties:
|
|
repositories:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/GitRepositorySettings"
|
|
|
|
WorkspaceDeployUISettings:
|
|
type: object
|
|
properties:
|
|
include_path:
|
|
type: array
|
|
items:
|
|
type: string
|
|
include_type:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/GitSyncObjectType"
|
|
|
|
WorkspaceDefaultScripts:
|
|
type: object
|
|
properties:
|
|
order:
|
|
type: array
|
|
items:
|
|
type: string
|
|
hidden:
|
|
type: array
|
|
items:
|
|
type: string
|
|
default_script_content:
|
|
additionalProperties:
|
|
type: string
|
|
|
|
S3PermissionRule:
|
|
type: object
|
|
properties:
|
|
pattern:
|
|
type: string
|
|
allow:
|
|
type: string # comma separated permissions : "read,write,delete,list"
|
|
required: ["pattern", "allow"]
|
|
|
|
GitRepositorySettings:
|
|
type: object
|
|
properties:
|
|
script_path:
|
|
type: string
|
|
git_repo_resource_path:
|
|
type: string
|
|
use_individual_branch:
|
|
type: boolean
|
|
group_by_folder:
|
|
type: boolean
|
|
force_branch:
|
|
type: string
|
|
collapsed:
|
|
type: boolean
|
|
settings:
|
|
type: object
|
|
properties:
|
|
include_path:
|
|
type: array
|
|
items:
|
|
type: string
|
|
include_type:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/GitSyncObjectType"
|
|
exclude_path:
|
|
type: array
|
|
items:
|
|
type: string
|
|
extra_include_path:
|
|
type: array
|
|
items:
|
|
type: string
|
|
exclude_types_override:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/GitSyncObjectType"
|
|
required:
|
|
- git_repo_resource_path
|
|
|
|
MetricMetadata:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
required:
|
|
- id
|
|
|
|
ScalarMetric:
|
|
type: object
|
|
properties:
|
|
metric_id:
|
|
type: string
|
|
value:
|
|
type: number
|
|
required:
|
|
- id
|
|
- value
|
|
|
|
TimeseriesMetric:
|
|
type: object
|
|
properties:
|
|
metric_id:
|
|
type: string
|
|
values:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MetricDataPoint"
|
|
required:
|
|
- id
|
|
- values
|
|
|
|
MetricDataPoint:
|
|
type: object
|
|
properties:
|
|
timestamp:
|
|
type: string
|
|
format: date-time
|
|
value:
|
|
type: number
|
|
required:
|
|
- timestamp
|
|
- value
|
|
|
|
RawScriptForDependencies:
|
|
type: object
|
|
properties:
|
|
raw_code:
|
|
type: string
|
|
path:
|
|
type: string
|
|
language:
|
|
$ref: "#/components/schemas/ScriptLang"
|
|
required:
|
|
- raw_code
|
|
- path
|
|
- language
|
|
|
|
ConcurrencyGroup:
|
|
type: object
|
|
properties:
|
|
concurrency_key:
|
|
type: string
|
|
total_running:
|
|
type: number
|
|
required:
|
|
- concurrency_key
|
|
- total_running
|
|
|
|
ExtendedJobs:
|
|
type: object
|
|
properties:
|
|
jobs:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Job"
|
|
obscured_jobs:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ObscuredJob"
|
|
omitted_obscured_jobs:
|
|
description: "Obscured jobs omitted for security because of too specific filtering"
|
|
type: boolean
|
|
required:
|
|
- jobs
|
|
- obscured_jobs
|
|
|
|
ExportedUser:
|
|
type: object
|
|
properties:
|
|
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:
|
|
- email
|
|
- super_admin
|
|
- verified
|
|
- first_time_user
|
|
|
|
GlobalSetting:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
value: {}
|
|
required:
|
|
- name
|
|
- value
|
|
|
|
InstanceConfig:
|
|
type: object
|
|
description: Unified instance configuration combining global settings and worker group configs
|
|
properties:
|
|
global_settings:
|
|
type: object
|
|
description: >
|
|
Global settings keyed by setting name. Known fields include base_url,
|
|
license_key, retention_period_secs, smtp_settings, otel, etc.
|
|
Unknown fields are preserved as-is.
|
|
additionalProperties: true
|
|
worker_configs:
|
|
type: object
|
|
description: >
|
|
Worker group configurations keyed by group name (e.g. "default", "gpu").
|
|
Each value contains worker_tags, init_bash, autoscaling, etc.
|
|
additionalProperties:
|
|
type: object
|
|
additionalProperties: true
|
|
|
|
Config:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
config:
|
|
type: object
|
|
required:
|
|
- name
|
|
|
|
ExportedInstanceGroup:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
emails:
|
|
type: array
|
|
items:
|
|
type: string
|
|
id:
|
|
type: string
|
|
scim_display_name:
|
|
type: string
|
|
external_id:
|
|
type: string
|
|
instance_role:
|
|
type: string
|
|
nullable: true
|
|
enum:
|
|
- superadmin
|
|
- devops
|
|
required:
|
|
- name
|
|
|
|
JobSearchHit:
|
|
type: object
|
|
properties:
|
|
dancer:
|
|
type: string
|
|
|
|
LogSearchHit:
|
|
type: object
|
|
properties:
|
|
dancer:
|
|
type: string
|
|
|
|
AutoscalingEvent:
|
|
type: object
|
|
properties:
|
|
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
|
|
|
|
CriticalAlert:
|
|
type: object
|
|
properties:
|
|
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
|
|
|
|
CaptureTriggerKind:
|
|
type: string
|
|
enum:
|
|
[
|
|
webhook,
|
|
http,
|
|
websocket,
|
|
kafka,
|
|
default_email,
|
|
nats,
|
|
postgres,
|
|
sqs,
|
|
mqtt,
|
|
gcp,
|
|
email,
|
|
]
|
|
|
|
Capture:
|
|
type: object
|
|
properties:
|
|
trigger_kind:
|
|
$ref: "#/components/schemas/CaptureTriggerKind"
|
|
main_args: {}
|
|
preprocessor_args: {}
|
|
id:
|
|
type: integer
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
required:
|
|
- trigger_kind
|
|
- main_args
|
|
- preprocessor_args
|
|
- id
|
|
- created_at
|
|
CaptureConfig:
|
|
type: object
|
|
properties:
|
|
trigger_config: {}
|
|
trigger_kind:
|
|
$ref: "#/components/schemas/CaptureTriggerKind"
|
|
error:
|
|
type: string
|
|
last_server_ping:
|
|
type: string
|
|
format: date-time
|
|
required:
|
|
- trigger_kind
|
|
|
|
OperatorSettings:
|
|
nullable: true
|
|
type: object
|
|
required:
|
|
- runs
|
|
- schedules
|
|
- resources
|
|
- assets
|
|
- variables
|
|
- triggers
|
|
- audit_logs
|
|
- groups
|
|
- folders
|
|
- workers
|
|
properties:
|
|
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
|
|
|
|
WorkspaceComparison:
|
|
type: object
|
|
required:
|
|
- all_ahead_items_visible
|
|
- all_behind_items_visible
|
|
- skipped_comparison
|
|
- diffs
|
|
- summary
|
|
properties:
|
|
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:
|
|
$ref: "#/components/schemas/WorkspaceItemDiff"
|
|
summary:
|
|
$ref: "#/components/schemas/CompareSummary"
|
|
description: Summary statistics of the comparison
|
|
|
|
WorkspaceItemDiff:
|
|
type: object
|
|
required:
|
|
- kind
|
|
- path
|
|
- ahead
|
|
- behind
|
|
- has_changes
|
|
- exists_in_source
|
|
- exists_in_fork
|
|
properties:
|
|
kind:
|
|
type: string
|
|
enum:
|
|
["script", "flow", "app", "raw_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
|
|
|
|
CompareSummary:
|
|
type: object
|
|
required:
|
|
- total_diffs
|
|
- total_ahead
|
|
- total_behind
|
|
- scripts_changed
|
|
- flows_changed
|
|
- apps_changed
|
|
- resources_changed
|
|
- variables_changed
|
|
- resource_types_changed
|
|
- folders_changed
|
|
- conflicts
|
|
properties:
|
|
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)
|
|
|
|
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:
|
|
$ref: "#/components/schemas/ChannelInfo"
|
|
|
|
ChannelInfo:
|
|
type: object
|
|
required:
|
|
- channel_id
|
|
- channel_name
|
|
- tenant_id
|
|
- service_url
|
|
properties:
|
|
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/"
|
|
|
|
GithubInstallations:
|
|
type: array
|
|
items:
|
|
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
|
|
|
|
WorkspaceGithubInstallation:
|
|
type: object
|
|
properties:
|
|
account_id:
|
|
type: string
|
|
installation_id:
|
|
type: number
|
|
required:
|
|
- account_id
|
|
- installation_id
|
|
|
|
S3Object:
|
|
type: object
|
|
properties:
|
|
s3:
|
|
type: string
|
|
filename:
|
|
type: string
|
|
storage:
|
|
type: string
|
|
presigned:
|
|
type: string
|
|
required:
|
|
- s3
|
|
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:
|
|
- script
|
|
- flow
|
|
- job
|
|
AssetUsageAccessType:
|
|
type: string
|
|
enum: [r, w, rw]
|
|
nullable: true
|
|
AssetKind:
|
|
type: string
|
|
enum:
|
|
- s3object
|
|
- resource
|
|
- ducklake
|
|
- datatable
|
|
- volume
|
|
Asset:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
kind:
|
|
$ref: "#/components/schemas/AssetKind"
|
|
required: [path, kind]
|
|
Volume:
|
|
type: object
|
|
required:
|
|
- name
|
|
- size_bytes
|
|
- file_count
|
|
- created_at
|
|
- created_by
|
|
properties:
|
|
name:
|
|
type: string
|
|
size_bytes:
|
|
type: integer
|
|
format: int64
|
|
file_count:
|
|
type: integer
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
created_by:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
format: date-time
|
|
nullable: true
|
|
last_used_at:
|
|
type: string
|
|
format: date-time
|
|
nullable: true
|
|
extra_perms:
|
|
type: object
|
|
additionalProperties: true
|
|
ProtectionRuleset:
|
|
type: object
|
|
description: A workspace protection rule defining restrictions and bypass permissions
|
|
required:
|
|
- name
|
|
- rules
|
|
- bypass_groups
|
|
- bypass_users
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: Unique name for the protection rule
|
|
example: "Production Protection"
|
|
workspace_id:
|
|
type: string
|
|
rules:
|
|
$ref: "#/components/schemas/ProtectionRules"
|
|
bypass_groups:
|
|
$ref: "#/components/schemas/RuleBypasserGroups"
|
|
bypass_users:
|
|
$ref: "#/components/schemas/RuleBypasserUsers"
|
|
ProtectionRules:
|
|
type: array
|
|
description: Configuration of protection restrictions
|
|
items:
|
|
$ref: "#/components/schemas/ProtectionRuleKind"
|
|
ProtectionRuleKind:
|
|
type: string
|
|
enum:
|
|
- DisableDirectDeployment
|
|
- DisableWorkspaceForking
|
|
RuleBypasserGroups:
|
|
type: array
|
|
description: Groups that can bypass this ruleset
|
|
items:
|
|
type: string
|
|
RuleBypasserUsers:
|
|
type: array
|
|
description: Users that can bypass this ruleset
|
|
items:
|
|
type: string
|
|
QuotaInfo:
|
|
type: object
|
|
properties:
|
|
used:
|
|
type: integer
|
|
limit:
|
|
type: integer
|
|
prunable:
|
|
type: integer
|
|
required:
|
|
- used
|
|
- limit
|
|
- prunable
|
|
NativeServiceName:
|
|
type: string
|
|
enum:
|
|
- nextcloud
|
|
- google
|
|
|
|
NativeTrigger:
|
|
type: object
|
|
description: A native trigger stored in Windmill
|
|
properties:
|
|
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:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
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:
|
|
- external_id
|
|
- workspace_id
|
|
- service_name
|
|
- script_path
|
|
- is_flow
|
|
- service_config
|
|
|
|
NativeTriggerWithExternal:
|
|
type: object
|
|
description: Full trigger response containing both Windmill data and external service data
|
|
properties:
|
|
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:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
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:
|
|
- external_id
|
|
- workspace_id
|
|
- service_name
|
|
- script_path
|
|
- is_flow
|
|
- service_config
|
|
- external_data
|
|
|
|
WorkspaceIntegrations:
|
|
type: object
|
|
properties:
|
|
service_name:
|
|
$ref: "#/components/schemas/NativeServiceName"
|
|
oauth_data:
|
|
nullable: true
|
|
$ref: "#/components/schemas/WorkspaceOAuthConfig"
|
|
resource_path:
|
|
type: string
|
|
nullable: true
|
|
description: Path to the resource storing the OAuth token
|
|
required:
|
|
- service_name
|
|
|
|
WorkspaceOAuthConfig:
|
|
type: object
|
|
properties:
|
|
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:
|
|
- client_id
|
|
- client_secret
|
|
- base_url
|
|
- redirect_uri
|
|
|
|
WebhookEvent:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum: [webhook]
|
|
request_type:
|
|
$ref: "#/components/schemas/WebhookRequestType"
|
|
required:
|
|
- type
|
|
- request_type
|
|
|
|
WebhookRequestType:
|
|
type: string
|
|
description: The type of webhook request (define possible values here)
|
|
enum:
|
|
- async
|
|
- sync
|
|
|
|
RedirectUri:
|
|
type: object
|
|
properties:
|
|
redirect_uri:
|
|
type: string
|
|
required:
|
|
- redirect_uri
|
|
|
|
NativeTriggerData:
|
|
type: object
|
|
description: Data for creating or updating a native trigger
|
|
properties:
|
|
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:
|
|
- script_path
|
|
- is_flow
|
|
- service_config
|
|
|
|
CreateTriggerResponse:
|
|
type: object
|
|
description: Response returned when a native trigger is created
|
|
properties:
|
|
external_id:
|
|
type: string
|
|
description: The external ID of the created trigger from the external service
|
|
required:
|
|
- external_id
|
|
|
|
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:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
category:
|
|
type: string
|
|
path:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- path
|
|
|
|
GoogleCalendarEntry:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
summary:
|
|
type: string
|
|
primary:
|
|
type: boolean
|
|
default: false
|
|
required:
|
|
- id
|
|
- summary
|
|
|
|
GoogleDriveFile:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
mime_type:
|
|
type: string
|
|
is_folder:
|
|
type: boolean
|
|
default: false
|
|
required:
|
|
- id
|
|
- name
|
|
- mime_type
|
|
|
|
GoogleDriveFilesResponse:
|
|
type: object
|
|
properties:
|
|
files:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/GoogleDriveFile"
|
|
next_page_token:
|
|
type: string
|
|
required:
|
|
- files
|
|
|
|
SharedDriveEntry:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|