Files
windmill/backend/windmill-api/openapi-deref.json
2026-02-12 17:12:44 +00:00

39172 lines
1.0 MiB

{
"openapi": "3.0.3",
"info": {
"version": "1.633.1",
"title": "Windmill API",
"contact": {
"name": "Windmill Team",
"email": "contact@windmill.dev",
"url": "https://windmill.dev"
},
"license": {
"name": "Apache 2.0",
"url": "https://www.apache.org/licenses/LICENSE-2.0.html"
},
"x-logo": {
"url": "https://windmill.dev/img/windmill.svg"
}
},
"externalDocs": {
"description": "documentation portal",
"url": "https://windmill.dev"
},
"servers": [
{
"url": "/api"
}
],
"security": [
{
"bearerAuth": []
},
{
"cookieAuth": []
}
],
"paths": {
"/version": {
"get": {
"summary": "get backend version",
"operationId": "backendVersion",
"tags": [
"settings"
],
"responses": {
"200": {
"description": "git version of backend",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/health/status": {
"get": {
"summary": "health status",
"description": "Health status endpoint. Returns cached health status (database connectivity, worker count).\nCache TTL is fixed at 5 seconds. Use force=true query parameter to bypass cache.\nNote: This endpoint is intentionally different from Kubernetes probes to avoid confusion.\nFor k8s liveness/readiness probes, use /version endpoint.\n",
"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.\nRequires authentication. Use for monitoring dashboards and debugging.\nThis endpoint always returns fresh data (no caching).\n",
"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.\n",
"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"
}
}
}
}
}
}
},
"/settings/test_object_storage_config": {
"post": {
"summary": "test object storage config",
"operationId": "testObjectStorageConfig",
"tags": [
"setting"
],
"requestBody": {
"description": "test object storage config",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
},
"responses": {
"200": {
"description": "status",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/settings/send_stats": {
"post": {
"summary": "send stats",
"operationId": "sendStats",
"tags": [
"setting"
],
"responses": {
"200": {
"description": "status",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/settings/get_stats": {
"get": {
"summary": "get encrypted telemetry stats (EE only)",
"operationId": "getStats",
"tags": [
"setting"
],
"responses": {
"200": {
"description": "base64-encoded encrypted telemetry blob",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/settings/latest_key_renewal_attempt": {
"get": {
"summary": "get latest key renewal attempt",
"operationId": "getLatestKeyRenewalAttempt",
"tags": [
"setting"
],
"responses": {
"200": {
"description": "status",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"result": {
"type": "string"
},
"attempted_at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"result",
"attempted_at"
],
"nullable": true
}
}
}
}
}
}
},
"/settings/renew_license_key": {
"post": {
"summary": "renew license key",
"operationId": "renewLicenseKey",
"tags": [
"setting"
],
"parameters": [
{
"name": "license_key",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "status",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/settings/customer_portal": {
"post": {
"summary": "create customer portal session",
"operationId": "createCustomerPortalSession",
"tags": [
"setting"
],
"parameters": [
{
"name": "license_key",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "url to portal",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/saml/test_metadata": {
"post": {
"summary": "test metadata",
"operationId": "testMetadata",
"tags": [
"setting"
],
"requestBody": {
"description": "test metadata",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "string"
}
}
}
},
"responses": {
"200": {
"description": "status",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/settings/list_global": {
"get": {
"summary": "list global settings",
"operationId": "listGlobalSettings",
"tags": [
"setting"
],
"responses": {
"200": {
"description": "list of settings",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/GlobalSetting"
}
}
}
}
}
}
}
},
"/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"
}
}
}
},
"/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"
}
},
"required": [
"http_routes_used",
"websocket_used",
"kafka_used",
"nats_used",
"postgres_used",
"mqtt_used",
"gcp_used",
"sqs_used",
"email_used",
"nextcloud_used"
]
}
}
}
}
}
}
},
"/w/{workspace}/users/list": {
"get": {
"summary": "list users",
"operationId": "listUsers",
"tags": [
"user"
],
"parameters": [
{
"$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\n(if not secret no effect, default: true)\n",
"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)\n",
"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\n",
"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"
}
},
{
"$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/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.\n",
"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"
}
}
],
"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 ext",
"content": {
"application/json": {
"schema": {}
}
}
}
}
}
},
"/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": "#/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.\nBeware that each script stores only a limited number of parents. Hence\nthe last parent hash for a script is not necessarily its top-most parent.\nTo find the top-most parent you will have to jump from last to last hash\n until finding the parent\n",
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "parent_hash",
"description": "is the hash present in the array of stored parent hashes for this script.\nThe same warning applies than for last_parent_hash. A script only store a\nlimited number of direct parent\n",
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "show_archived",
"description": "(default false)\nshow only the archived files.\nwhen multiple archived hash share the same path, only the ones with the latest create_at\nare\ned.\n",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "include_without_main",
"description": "(default false)\ninclude scripts without an exported main function\n",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "include_draft_only",
"description": "(default false)\ninclude scripts that have no deployed version\n",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "is_template",
"description": "(default regardless)\nif true show only the templates\nif false show only the non templates\nif not defined, show all regardless of if the script is a template\n",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "kinds",
"description": "(default regardless)\nscript kinds to filter, split by comma\n",
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "starred_only",
"description": "(default false)\nshow only the starred items\n",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "with_deployment_msg",
"description": "(default false)\ninclude deployment message\n",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "languages",
"in": "query",
"description": "Filter to only include scripts written in the given languages.\nAccepts multiple values as a comma-separated list.\n",
"schema": {
"type": "string"
}
},
{
"name": "without_description",
"in": "query",
"description": "(default false)\nIf true, the description field will be omitted from the response.\n",
"schema": {
"type": "boolean"
}
},
{
"name": "dedicated_worker",
"in": "query",
"description": "(default regardless)\nIf true, show only scripts with dedicated_worker enabled.\nIf false, show only scripts with dedicated_worker disabled.\n",
"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}/jobs/list_selected_job_groups": {
"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)\nshow only the archived files.\nwhen multiple archived hash share the same path, only the ones with the latest create_at\nare displayed.\n",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "starred_only",
"description": "(default false)\nshow only the starred items\n",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "include_draft_only",
"description": "(default false)\ninclude items that have no deployed version\n",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "with_deployment_msg",
"description": "(default false)\ninclude deployment message\n",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "without_description",
"in": "query",
"description": "(default false)\nIf true, the description field will be omitted from the response.\n",
"schema": {
"type": "boolean"
}
},
{
"name": "dedicated_worker",
"in": "query",
"description": "(default regardless)\nIf true, show only flows with dedicated_worker enabled.\nIf false, show only flows with dedicated_worker disabled.\n",
"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)\nshow only the starred items\n",
"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)\nshow only the starred items\n",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "include_draft_only",
"description": "(default false)\ninclude items that have no deployed version\n",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "with_deployment_msg",
"description": "(default false)\ninclude deployment message\n",
"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"
}
},
"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"
}
},
"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"
}
}
}
}
}
},
"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"
}
}
},
"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"
},
"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_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"
}
}
],
"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": "#/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"
}
}
],
"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"
}
}
],
"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.\nThe schedule should include seconds.\nYou should get the schema of the script or flow before creating the schedule to correctly specify the arguments needed.\n",
"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.\nThe schedule should include seconds.\nYou should get the schema of the script or flow before updating the schedule to correctly specify the arguments needed.\n",
"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",
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "is_flow",
"description": "filter schedules by whether they target a flow",
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "path_start",
"description": "filter schedules by path prefix",
"in": "query",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "schedule list",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$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}/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}/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/{code}/{state}": {
"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"
}
},
{
"name": "code",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "state",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "redirect_uri",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RedirectUri"
}
}
}
},
"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.\nRequires write access to the script or flow that the trigger will be associated with.\n",
"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.\nRequires write access to the script or flow that the trigger is associated with.\n",
"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.\nRequires write access to the script or flow that the trigger is associated with.\n",
"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.\nRequires write access to the script or flow that the trigger is associated with.\n",
"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"
}
}
}
}
}
}
}
},
"/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/InstanceGroup"
}
}
}
}
}
}
},
"/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"
}
},
"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"
],
"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"
]
}
}
],
"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"
]
}
}
],
"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"
]
}
}
],
"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"
}
}
}
}
}
}
}
}
}
}
},
"/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"
}
}
}
}
}
}
}
}
},
"/srch/index/delete/{idx_name}": {
"delete": {
"summary": "Restart container and delete the index to recreate it.",
"operationId": "clearIndex",
"tags": [
"indexSearch"
],
"parameters": [
{
"name": "idx_name",
"in": "path",
"required": true,
"schema": {
"type": "string",
"enum": [
"JobIndex",
"ServiceLogIndex"
]
}
}
],
"responses": {
"200": {
"description": "idx to be deleted and container restarting",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/w/{workspace}/assets/list": {
"get": {
"summary": "List all assets in the workspace with cursor pagination",
"operationId": "listAssets",
"tags": [
"asset"
],
"parameters": [
{
"$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"
}
}
],
"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"
}
}
}
}
}
}
}
}
}
},
"/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": "trigger kind (schedule, http, websocket...)",
"in": "query",
"schema": {
"$ref": "#/components/schemas/JobTriggerKind"
}
},
"OrderDesc": {
"name": "order_desc",
"description": "order by desc order (default true)",
"in": "query",
"schema": {
"type": "boolean"
}
},
"CreatedBy": {
"name": "created_by",
"description": "mask to filter exact matching user creator",
"in": "query",
"schema": {
"type": "string"
}
},
"Label": {
"name": "label",
"description": "mask to filter exact matching job's label (job labels are completed jobs with as a result an object containing a string in the array at key 'wm_labels')",
"in": "query",
"schema": {
"type": "string"
}
},
"Worker": {
"name": "worker",
"description": "worker this job was ran on",
"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\nHeader's key lowercased and '-'' replaced to '_' such that 'Content-Type' becomes the 'content_type' arg key\n",
"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\n",
"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\n`encodeURIComponent(btoa(JSON.stringify({a: 2})))`\n",
"in": "query",
"schema": {
"type": "string"
}
},
"ScriptStartPath": {
"name": "script_path_start",
"description": "mask to filter matching starting path",
"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": "mask to filter by trigger path",
"in": "query",
"schema": {
"type": "string"
}
},
"ScriptExactPath": {
"name": "script_path_exact",
"description": "mask to filter exact matching path",
"in": "query",
"schema": {
"type": "string"
}
},
"ScriptExactHash": {
"name": "script_hash",
"description": "mask to filter exact matching path",
"in": "query",
"schema": {
"type": "string"
}
},
"CreatedBefore": {
"name": "created_before",
"description": "filter on created before (inclusive) timestamp",
"in": "query",
"schema": {
"type": "string",
"format": "date-time"
}
},
"CreatedAfter": {
"name": "created_after",
"description": "filter on created after (exclusive) timestamp",
"in": "query",
"schema": {
"type": "string",
"format": "date-time"
}
},
"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 on jobs with a given tag/worker group",
"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 on job kind (values 'preview', 'script', 'dependencies', 'flow') separated by,",
"in": "query",
"schema": {
"type": "string"
}
},
"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": {
"OpenFlow": {
"type": "object",
"description": "Top-level flow definition containing metadata, configuration, and the flow structure",
"properties": {
"summary": {
"type": "string",
"description": "Short description of what this flow does"
},
"description": {
"type": "string",
"description": "Detailed documentation for this flow"
},
"value": {
"$ref": "#/components/schemas/schemas-FlowValue"
},
"schema": {
"type": "object",
"description": "JSON Schema for flow inputs. Use this to define input parameters, their types, defaults, and validation. For resource inputs, set type to 'object' and format to 'resource-<type>' (e.g., 'resource-stripe')"
},
"on_behalf_of_email": {
"type": "string",
"description": "The flow will be run with the permissions of the user with this email."
}
},
"required": [
"summary",
"value"
]
},
"FlowValue": {
"type": "object",
"description": "The flow structure containing modules and optional preprocessor/failure handlers",
"properties": {
"modules": {
"type": "array",
"description": "Array of steps that execute in sequence. Each step can be a script, subflow, loop, or branch",
"items": {
"$ref": "#/components/schemas/schemas-FlowModule"
}
},
"failure_module": {
"description": "Special module that executes when the flow fails. Receives error object with message, name, stack, and step_id. Must have id 'failure'. Only supports script/rawscript types",
"$ref": "#/components/schemas/schemas-FlowModule"
},
"preprocessor_module": {
"description": "Special module that runs before the first step on external triggers. Must have id 'preprocessor'. Only supports script/rawscript types. Cannot reference other step results",
"$ref": "#/components/schemas/schemas-FlowModule"
},
"same_worker": {
"type": "boolean",
"description": "If true, all steps run on the same worker for better performance"
},
"concurrent_limit": {
"type": "number",
"description": "Maximum number of concurrent executions of this flow"
},
"concurrency_key": {
"type": "string",
"description": "Expression to group concurrent executions (e.g., by user ID)"
},
"concurrency_time_window_s": {
"type": "number",
"description": "Time window in seconds for concurrent_limit"
},
"debounce_delay_s": {
"type": "number",
"description": "Delay in seconds to debounce flow executions"
},
"debounce_key": {
"type": "string",
"description": "Expression to group debounced executions"
},
"debounce_args_to_accumulate": {
"type": "array",
"description": "Arguments to accumulate across debounced executions",
"items": {
"type": "string"
}
},
"max_total_debouncing_time": {
"type": "number",
"description": "Maximum total time in seconds that a job can be debounced"
},
"max_total_debounces_amount": {
"type": "number",
"description": "Maximum number of times a job can be debounced"
},
"skip_expr": {
"type": "string",
"description": "JavaScript expression to conditionally skip the entire flow"
},
"cache_ttl": {
"type": "number",
"description": "Cache duration in seconds for flow results"
},
"cache_ignore_s3_path": {
"type": "boolean"
},
"flow_env": {
"type": "object",
"description": "Environment variables available to all steps",
"additionalProperties": {
"type": "string"
}
},
"priority": {
"type": "number",
"description": "Execution priority (higher numbers run first)"
},
"early_return": {
"type": "string",
"description": "JavaScript expression to return early from the flow"
},
"chat_input_enabled": {
"type": "boolean",
"description": "Whether this flow accepts chat-style input"
},
"notes": {
"type": "array",
"description": "Sticky notes attached to the flow",
"items": {
"$ref": "#/components/schemas/schemas-FlowNote"
}
}
},
"required": [
"modules"
]
},
"Retry": {
"type": "object",
"description": "Retry configuration for failed module executions",
"properties": {
"constant": {
"type": "object",
"description": "Retry with constant delay between attempts",
"properties": {
"attempts": {
"type": "integer",
"description": "Number of retry attempts"
},
"seconds": {
"type": "integer",
"description": "Seconds to wait between retries"
}
}
},
"exponential": {
"type": "object",
"description": "Retry with exponential backoff (delay doubles each time)",
"properties": {
"attempts": {
"type": "integer",
"description": "Number of retry attempts"
},
"multiplier": {
"type": "integer",
"description": "Multiplier for exponential backoff"
},
"seconds": {
"type": "integer",
"minimum": 1,
"description": "Initial delay in seconds"
},
"random_factor": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Random jitter percentage (0-100) to avoid thundering herd"
}
}
},
"retry_if": {
"$ref": "#/components/schemas/RetryIf"
}
}
},
"StopAfterIf": {
"type": "object",
"description": "Early termination condition for a module",
"properties": {
"skip_if_stopped": {
"type": "boolean",
"description": "If true, following steps are skipped when this condition triggers"
},
"expr": {
"type": "string",
"description": "JavaScript expression evaluated after the module runs. Can use 'result' (step's result) or 'flow_input'. Return true to stop"
},
"error_message": {
"type": "string",
"description": "Custom error message shown when stopping"
}
},
"required": [
"expr"
]
},
"FlowModule": {
"type": "object",
"description": "A single step in a flow. Can be a script, subflow, loop, or branch",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for this step. Used to reference results via 'results.step_id'. Must be a valid identifier (alphanumeric, underscore, hyphen)"
},
"value": {
"$ref": "#/components/schemas/schemas-FlowModuleValue"
},
"stop_after_if": {
"description": "Early termination condition evaluated after this step completes",
"$ref": "#/components/schemas/schemas-StopAfterIf"
},
"stop_after_all_iters_if": {
"description": "For loops only - early termination condition evaluated after all iterations complete",
"$ref": "#/components/schemas/schemas-StopAfterIf"
},
"skip_if": {
"type": "object",
"description": "Conditionally skip this step based on previous results or flow inputs",
"properties": {
"expr": {
"type": "string",
"description": "JavaScript expression that returns true to skip. Can use 'flow_input' or 'results.<step_id>'"
}
},
"required": [
"expr"
]
},
"sleep": {
"description": "Delay before executing this step (in seconds or as expression)",
"$ref": "#/components/schemas/schemas-InputTransform"
},
"cache_ttl": {
"type": "number",
"description": "Cache duration in seconds for this step's results"
},
"cache_ignore_s3_path": {
"type": "boolean"
},
"timeout": {
"description": "Maximum execution time in seconds (static value or expression)",
"$ref": "#/components/schemas/schemas-InputTransform"
},
"delete_after_use": {
"type": "boolean",
"description": "If true, this step's result is deleted after use to save memory"
},
"summary": {
"type": "string",
"description": "Short description of what this step does"
},
"mock": {
"type": "object",
"description": "Mock configuration for testing without executing the actual step",
"properties": {
"enabled": {
"type": "boolean",
"description": "If true, return mock value instead of executing"
},
"return_value": {
"description": "Value to return when mocked"
}
}
},
"suspend": {
"type": "object",
"description": "Configuration for approval/resume steps that wait for user input",
"properties": {
"required_events": {
"type": "integer",
"description": "Number of approvals required before continuing"
},
"timeout": {
"type": "integer",
"description": "Timeout in seconds before auto-continuing or canceling"
},
"resume_form": {
"type": "object",
"description": "Form schema for collecting input when resuming",
"properties": {
"schema": {
"type": "object",
"description": "JSON Schema for the resume form"
}
}
},
"user_auth_required": {
"type": "boolean",
"description": "If true, only authenticated users can approve"
},
"user_groups_required": {
"description": "Expression or list of groups that can approve",
"$ref": "#/components/schemas/schemas-InputTransform"
},
"self_approval_disabled": {
"type": "boolean",
"description": "If true, the user who started the flow cannot approve"
},
"hide_cancel": {
"type": "boolean",
"description": "If true, hide the cancel button on the approval form"
},
"continue_on_disapprove_timeout": {
"type": "boolean",
"description": "If true, continue flow on timeout instead of canceling"
}
}
},
"priority": {
"type": "number",
"description": "Execution priority for this step (higher numbers run first)"
},
"continue_on_error": {
"type": "boolean",
"description": "If true, flow continues even if this step fails"
},
"retry": {
"description": "Retry configuration if this step fails",
"$ref": "#/components/schemas/schemas-Retry"
}
},
"required": [
"value",
"id"
]
},
"InputTransform": {
"description": "Maps input parameters for a step. Can be a static value or a JavaScript expression that references previous results or flow inputs",
"oneOf": [
{
"$ref": "#/components/schemas/schemas-StaticTransform"
},
{
"$ref": "#/components/schemas/schemas-JavascriptTransform"
},
{
"$ref": "#/components/schemas/schemas-AiTransform"
}
],
"discriminator": {
"propertyName": "type",
"mapping": {
"static": "#/components/schemas/schemas-StaticTransform",
"javascript": "#/components/schemas/schemas-JavascriptTransform",
"ai": "#/components/schemas/schemas-AiTransform"
}
}
},
"StaticTransform": {
"type": "object",
"description": "Static value passed directly to the step. Use for hardcoded values or resource references like '$res:path/to/resource'",
"properties": {
"value": {
"description": "The static value. For resources, use format '$res:path/to/resource'"
},
"type": {
"type": "string",
"enum": [
"static"
]
}
},
"required": [
"type"
]
},
"JavascriptTransform": {
"type": "object",
"description": "JavaScript expression evaluated at runtime. Can reference previous step results via 'results.step_id' or flow inputs via 'flow_input.property'. Inside loops, use 'flow_input.iter.value' for the current iteration value",
"properties": {
"expr": {
"type": "string",
"description": "JavaScript expression returning the value. Available variables - results (object with all previous step results), flow_input (flow inputs), flow_input.iter (in loops)"
},
"type": {
"type": "string",
"enum": [
"javascript"
]
}
},
"required": [
"expr",
"type"
]
},
"AiTransform": {
"type": "object",
"description": "Value resolved by the AI runtime for this input. The AI engine decides how to satisfy the parameter.",
"properties": {
"type": {
"type": "string",
"enum": [
"ai"
]
}
},
"required": [
"type"
]
},
"ProviderConfig": {
"type": "object",
"description": "Complete AI provider configuration with resource reference and model selection",
"properties": {
"kind": {
"$ref": "#/components/schemas/AIProviderKind"
},
"resource": {
"type": "string",
"description": "Resource reference in format '$res:{resource_path}' pointing to provider credentials"
},
"model": {
"type": "string",
"description": "Model identifier (e.g., 'gpt-4', 'claude-3-opus-20240229', 'gemini-pro')"
}
},
"required": [
"kind",
"resource",
"model"
]
},
"MemoryConfig": {
"description": "Conversation memory configuration",
"oneOf": [
{
"$ref": "#/components/schemas/MemoryOff"
},
{
"$ref": "#/components/schemas/MemoryAuto"
},
{
"$ref": "#/components/schemas/MemoryManual"
}
],
"discriminator": {
"propertyName": "kind",
"mapping": {
"off": "#/components/schemas/MemoryOff",
"auto": "#/components/schemas/MemoryAuto",
"manual": "#/components/schemas/MemoryManual"
}
}
},
"FlowModuleValue": {
"description": "The actual implementation of a flow step. Can be a script (inline or referenced), subflow, loop, branch, or special module type",
"oneOf": [
{
"$ref": "#/components/schemas/schemas-RawScript"
},
{
"$ref": "#/components/schemas/schemas-PathScript"
},
{
"$ref": "#/components/schemas/schemas-PathFlow"
},
{
"$ref": "#/components/schemas/schemas-ForloopFlow"
},
{
"$ref": "#/components/schemas/schemas-WhileloopFlow"
},
{
"$ref": "#/components/schemas/schemas-BranchOne"
},
{
"$ref": "#/components/schemas/schemas-BranchAll"
},
{
"$ref": "#/components/schemas/schemas-Identity"
},
{
"$ref": "#/components/schemas/schemas-AiAgent"
}
],
"discriminator": {
"propertyName": "type",
"mapping": {
"rawscript": "#/components/schemas/schemas-RawScript",
"script": "#/components/schemas/schemas-PathScript",
"flow": "#/components/schemas/schemas-PathFlow",
"forloopflow": "#/components/schemas/schemas-ForloopFlow",
"whileloopflow": "#/components/schemas/schemas-WhileloopFlow",
"branchone": "#/components/schemas/schemas-BranchOne",
"branchall": "#/components/schemas/schemas-BranchAll",
"identity": "#/components/schemas/schemas-Identity",
"aiagent": "#/components/schemas/schemas-AiAgent"
}
}
},
"RawScript": {
"type": "object",
"description": "Inline script with code defined directly in the flow. Use 'bun' as default language if unspecified. The script receives arguments from input_transforms",
"properties": {
"input_transforms": {
"type": "object",
"description": "Map of parameter names to their values (static or JavaScript expressions). These become the script's input arguments",
"additionalProperties": {
"$ref": "#/components/schemas/schemas-InputTransform"
}
},
"content": {
"type": "string",
"description": "The script source code. Should export a 'main' function"
},
"language": {
"type": "string",
"description": "Programming language for this script",
"enum": [
"deno",
"bun",
"python3",
"go",
"bash",
"powershell",
"postgresql",
"mysql",
"bigquery",
"snowflake",
"mssql",
"oracledb",
"graphql",
"nativets",
"php",
"rust",
"ansible",
"csharp",
"nu",
"java",
"ruby",
"duckdb"
]
},
"path": {
"type": "string",
"description": "Optional path for saving this script"
},
"lock": {
"type": "string",
"description": "Lock file content for dependencies"
},
"type": {
"type": "string",
"enum": [
"rawscript"
]
},
"tag": {
"type": "string",
"description": "Worker group tag for execution routing"
},
"concurrent_limit": {
"type": "number",
"description": "Maximum concurrent executions of this script"
},
"concurrency_time_window_s": {
"type": "number",
"description": "Time window for concurrent_limit"
},
"custom_concurrency_key": {
"type": "string",
"description": "Custom key for grouping concurrent executions"
},
"is_trigger": {
"type": "boolean",
"description": "If true, this script is a trigger that can start the flow"
},
"assets": {
"type": "array",
"description": "External resources this script accesses (S3 objects, resources, etc.)",
"items": {
"type": "object",
"required": [
"path",
"kind"
],
"properties": {
"path": {
"type": "string",
"description": "Path to the asset"
},
"kind": {
"type": "string",
"description": "Type of asset",
"enum": [
"s3object",
"resource",
"ducklake",
"datatable"
]
},
"access_type": {
"type": "string",
"nullable": true,
"description": "Access level for this asset",
"enum": [
"r",
"w",
"rw"
]
},
"alt_access_type": {
"type": "string",
"nullable": true,
"description": "Alternative access level",
"enum": [
"r",
"w",
"rw"
]
}
}
}
}
},
"required": [
"type",
"content",
"language",
"input_transforms"
]
},
"PathScript": {
"type": "object",
"description": "Reference to an existing script by path. Use this when calling a previously saved script instead of writing inline code",
"properties": {
"input_transforms": {
"type": "object",
"description": "Map of parameter names to their values (static or JavaScript expressions). These become the script's input arguments",
"additionalProperties": {
"$ref": "#/components/schemas/schemas-InputTransform"
}
},
"path": {
"type": "string",
"description": "Path to the script in the workspace (e.g., 'f/scripts/send_email')"
},
"hash": {
"type": "string",
"description": "Optional specific version hash of the script to use"
},
"type": {
"type": "string",
"enum": [
"script"
]
},
"tag_override": {
"type": "string",
"description": "Override the script's default worker group tag"
},
"is_trigger": {
"type": "boolean",
"description": "If true, this script is a trigger that can start the flow"
}
},
"required": [
"type",
"path",
"input_transforms"
]
},
"PathFlow": {
"type": "object",
"description": "Reference to an existing flow by path. Use this to call another flow as a subflow",
"properties": {
"input_transforms": {
"type": "object",
"description": "Map of parameter names to their values (static or JavaScript expressions). These become the subflow's input arguments",
"additionalProperties": {
"$ref": "#/components/schemas/schemas-InputTransform"
}
},
"path": {
"type": "string",
"description": "Path to the flow in the workspace (e.g., 'f/flows/process_user')"
},
"type": {
"type": "string",
"enum": [
"flow"
]
}
},
"required": [
"type",
"path",
"input_transforms"
]
},
"ForloopFlow": {
"type": "object",
"description": "Executes nested modules in a loop over an iterator. Inside the loop, use 'flow_input.iter.value' to access the current iteration value, and 'flow_input.iter.index' for the index. Supports parallel execution for better performance on I/O-bound operations",
"properties": {
"modules": {
"type": "array",
"description": "Steps to execute for each iteration. These can reference the iteration value via 'flow_input.iter.value'",
"items": {
"$ref": "#/components/schemas/schemas-FlowModule"
}
},
"iterator": {
"description": "JavaScript expression that returns an array to iterate over. Can reference 'results.step_id' or 'flow_input'",
"$ref": "#/components/schemas/schemas-InputTransform"
},
"skip_failures": {
"type": "boolean",
"description": "If true, iteration failures don't stop the loop. Failed iterations return null"
},
"type": {
"type": "string",
"enum": [
"forloopflow"
]
},
"parallel": {
"type": "boolean",
"description": "If true, iterations run concurrently (faster for I/O-bound operations). Use with parallelism to control concurrency"
},
"parallelism": {
"description": "Maximum number of concurrent iterations when parallel=true. Limits resource usage. Can be static number or expression",
"$ref": "#/components/schemas/schemas-InputTransform"
},
"squash": {
"type": "boolean"
}
},
"required": [
"modules",
"iterator",
"skip_failures",
"type"
]
},
"WhileloopFlow": {
"type": "object",
"description": "Executes nested modules repeatedly while a condition is true. The loop checks the condition after each iteration. Use stop_after_if on modules to control loop termination",
"properties": {
"modules": {
"type": "array",
"description": "Steps to execute in each iteration. Use stop_after_if to control when the loop ends",
"items": {
"$ref": "#/components/schemas/schemas-FlowModule"
}
},
"skip_failures": {
"type": "boolean",
"description": "If true, iteration failures don't stop the loop. Failed iterations return null"
},
"type": {
"type": "string",
"enum": [
"whileloopflow"
]
},
"parallel": {
"type": "boolean",
"description": "If true, iterations run concurrently (use with caution in while loops)"
},
"parallelism": {
"description": "Maximum number of concurrent iterations when parallel=true",
"$ref": "#/components/schemas/schemas-InputTransform"
},
"squash": {
"type": "boolean"
}
},
"required": [
"modules",
"skip_failures",
"type"
]
},
"BranchOne": {
"type": "object",
"description": "Conditional branching where only the first matching branch executes. Branches are evaluated in order, and the first one with a true expression runs. If no branches match, the default branch executes",
"properties": {
"branches": {
"type": "array",
"description": "Array of branches to evaluate in order. The first branch with expr evaluating to true executes",
"items": {
"type": "object",
"properties": {
"summary": {
"type": "string",
"description": "Short description of this branch condition"
},
"expr": {
"type": "string",
"description": "JavaScript expression that returns boolean. Can use 'results.step_id' or 'flow_input'. First true expr wins"
},
"modules": {
"type": "array",
"description": "Steps to execute if this branch's expr is true",
"items": {
"$ref": "#/components/schemas/schemas-FlowModule"
}
}
},
"required": [
"modules",
"expr"
]
}
},
"default": {
"type": "array",
"description": "Steps to execute if no branch expressions match",
"items": {
"$ref": "#/components/schemas/schemas-FlowModule"
}
},
"type": {
"type": "string",
"enum": [
"branchone"
]
}
},
"required": [
"branches",
"default",
"type"
]
},
"BranchAll": {
"type": "object",
"description": "Parallel branching where all branches execute simultaneously. Unlike BranchOne, all branches run regardless of conditions. Useful for executing independent tasks concurrently",
"properties": {
"branches": {
"type": "array",
"description": "Array of branches that all execute (either in parallel or sequentially)",
"items": {
"type": "object",
"properties": {
"summary": {
"type": "string",
"description": "Short description of this branch's purpose"
},
"skip_failure": {
"type": "boolean",
"description": "If true, failure in this branch doesn't fail the entire flow"
},
"modules": {
"type": "array",
"description": "Steps to execute in this branch",
"items": {
"$ref": "#/components/schemas/schemas-FlowModule"
}
}
},
"required": [
"modules"
]
}
},
"type": {
"type": "string",
"enum": [
"branchall"
]
},
"parallel": {
"type": "boolean",
"description": "If true, all branches execute concurrently. If false, they execute sequentially"
}
},
"required": [
"branches",
"type"
]
},
"AiAgent": {
"type": "object",
"description": "AI agent step that can use tools to accomplish tasks. The agent receives inputs and can call any of its configured tools to complete the task",
"properties": {
"input_transforms": {
"type": "object",
"description": "Input parameters for the AI agent mapped to their values",
"properties": {
"provider": {
"$ref": "#/components/schemas/ProviderTransform"
},
"output_type": {
"allOf": [
{
"$ref": "#/components/schemas/schemas-InputTransform"
}
],
"description": "Output format type.\nValid values: 'text' (default) - plain text response, 'image' - image generation\n"
},
"user_message": {
"allOf": [
{
"$ref": "#/components/schemas/schemas-InputTransform"
}
],
"description": "The user's prompt/message to the AI agent. Supports variable interpolation with flow.input syntax."
},
"system_prompt": {
"allOf": [
{
"$ref": "#/components/schemas/schemas-InputTransform"
}
],
"description": "System instructions that guide the AI's behavior, persona, and response style. Optional."
},
"streaming": {
"allOf": [
{
"$ref": "#/components/schemas/schemas-InputTransform"
}
],
"description": "Boolean. If true, stream the AI response incrementally.\nStreaming events include: token_delta, tool_call, tool_call_arguments, tool_execution, tool_result\n"
},
"memory": {
"$ref": "#/components/schemas/MemoryTransform"
},
"output_schema": {
"allOf": [
{
"$ref": "#/components/schemas/schemas-InputTransform"
}
],
"description": "JSON Schema object defining structured output format. Used when you need the AI to return data in a specific shape.\nSupports standard JSON Schema properties: type, properties, required, items, enum, pattern, minLength, maxLength, minimum, maximum, etc.\nExample: { type: 'object', properties: { name: { type: 'string' }, age: { type: 'integer' } }, required: ['name'] }\n"
},
"user_images": {
"allOf": [
{
"$ref": "#/components/schemas/schemas-InputTransform"
}
],
"description": "Array of image references for vision-capable models.\nFormat: Array<{ bucket: string, key: string }> - S3 object references\nExample: [{ bucket: 'my-bucket', key: 'images/photo.jpg' }]\n"
},
"max_completion_tokens": {
"allOf": [
{
"$ref": "#/components/schemas/schemas-InputTransform"
}
],
"description": "Integer. Maximum number of tokens the AI will generate in its response.\nRange: 1 to 4,294,967,295. Typical values: 256-4096 for most use cases.\n"
},
"temperature": {
"allOf": [
{
"$ref": "#/components/schemas/schemas-InputTransform"
}
],
"description": "Float. Controls randomness/creativity of responses.\nRange: 0.0 to 2.0 (provider-dependent)\n- 0.0 = deterministic, focused responses\n- 0.7 = balanced (common default)\n- 1.0+ = more creative/random\n"
}
},
"required": [
"provider",
"user_message",
"output_type"
]
},
"tools": {
"type": "array",
"description": "Array of tools the agent can use. The agent decides which tools to call based on the task",
"items": {
"$ref": "#/components/schemas/AgentTool"
}
},
"type": {
"type": "string",
"enum": [
"aiagent"
]
},
"parallel": {
"type": "boolean",
"description": "If true, the agent can execute multiple tool calls in parallel"
}
},
"required": [
"tools",
"type",
"input_transforms"
]
},
"Identity": {
"type": "object",
"description": "Pass-through module that returns its input unchanged. Useful for flow structure or as a placeholder",
"properties": {
"type": {
"type": "string",
"enum": [
"identity"
]
},
"flow": {
"type": "boolean",
"description": "If true, marks this as a flow identity (special handling)"
}
},
"required": [
"type"
]
},
"FlowStatus": {
"type": "object",
"properties": {
"step": {
"type": "integer"
},
"modules": {
"type": "array",
"items": {
"$ref": "#/components/schemas/schemas-FlowStatusModule"
}
},
"user_states": {
"additionalProperties": true
},
"preprocessor_module": {
"allOf": [
{
"$ref": "#/components/schemas/schemas-FlowStatusModule"
}
]
},
"failure_module": {
"allOf": [
{
"$ref": "#/components/schemas/schemas-FlowStatusModule"
},
{
"type": "object",
"properties": {
"parent_module": {
"type": "string"
}
}
}
]
},
"retry": {
"type": "object",
"properties": {
"fail_count": {
"type": "integer"
},
"failed_jobs": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
}
}
},
"required": [
"step",
"modules",
"failure_module"
]
},
"FlowStatusModule": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"WaitingForPriorSteps",
"WaitingForEvents",
"WaitingForExecutor",
"InProgress",
"Success",
"Failure"
]
},
"id": {
"type": "string"
},
"job": {
"type": "string",
"format": "uuid"
},
"count": {
"type": "integer"
},
"progress": {
"type": "integer"
},
"iterator": {
"type": "object",
"properties": {
"index": {
"type": "integer"
},
"itered": {
"type": "array",
"items": {}
},
"itered_len": {
"type": "integer"
},
"args": {}
}
},
"flow_jobs": {
"type": "array",
"items": {
"type": "string"
}
},
"flow_jobs_success": {
"type": "array",
"items": {
"type": "boolean"
}
},
"flow_jobs_duration": {
"type": "object",
"properties": {
"started_at": {
"type": "array",
"items": {
"type": "string"
}
},
"duration_ms": {
"type": "array",
"items": {
"type": "integer"
}
}
}
},
"branch_chosen": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"branch",
"default"
]
},
"branch": {
"type": "integer"
}
},
"required": [
"type"
]
},
"branchall": {
"type": "object",
"properties": {
"branch": {
"type": "integer"
},
"len": {
"type": "integer"
}
},
"required": [
"branch",
"len"
]
},
"approvers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"resume_id": {
"type": "integer"
},
"approver": {
"type": "string"
}
},
"required": [
"resume_id",
"approver"
]
}
},
"failed_retries": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"skipped": {
"type": "boolean"
},
"agent_actions": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"format": "uuid"
},
"function_name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"tool_call"
]
},
"module_id": {
"type": "string"
}
},
"required": [
"job_id",
"function_name",
"type",
"module_id"
]
},
{
"type": "object",
"properties": {
"call_id": {
"type": "string",
"format": "uuid"
},
"function_name": {
"type": "string"
},
"resource_path": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"mcp_tool_call"
]
},
"arguments": {
"type": "object"
}
},
"required": [
"call_id",
"function_name",
"resource_path",
"type"
]
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"web_search"
]
}
},
"required": [
"type"
]
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"message"
]
}
},
"required": [
"content",
"type"
]
}
]
}
},
"agent_actions_success": {
"type": "array",
"items": {
"type": "boolean"
}
}
},
"required": [
"type"
]
},
"FlowNote": {
"type": "object",
"description": "A sticky note attached to a flow for documentation and annotation",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for the note"
},
"text": {
"type": "string",
"description": "Content of the note"
},
"position": {
"type": "object",
"description": "Position of the note in the flow editor",
"properties": {
"x": {
"type": "number",
"description": "X coordinate"
},
"y": {
"type": "number",
"description": "Y coordinate"
}
},
"required": [
"x",
"y"
]
},
"size": {
"type": "object",
"description": "Size of the note in the flow editor",
"properties": {
"width": {
"type": "number",
"description": "Width in pixels"
},
"height": {
"type": "number",
"description": "Height in pixels"
}
},
"required": [
"width",
"height"
]
},
"color": {
"type": "string",
"description": "Color of the note (e.g., \"yellow\", \"#ffff00\")"
},
"type": {
"type": "string",
"enum": [
"free",
"group"
],
"description": "Type of note - 'free' for standalone notes, 'group' for notes that group other nodes"
},
"locked": {
"type": "boolean",
"default": false,
"description": "Whether the note is locked and cannot be edited or moved"
},
"contained_node_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "For group notes, the IDs of nodes contained within this group"
}
},
"required": [
"id",
"text",
"color",
"type"
]
},
"HealthStatusResponse": {
"type": "object",
"description": "Health status response (cached with 5s TTL)",
"required": [
"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"
]
},
"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\n",
"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"
},
"no_main_func": {
"type": "boolean"
},
"codebase": {
"type": "string"
},
"has_preprocessor": {
"type": "boolean"
},
"on_behalf_of_email": {
"type": "string"
}
},
"required": [
"hash",
"path",
"summary",
"description",
"content",
"created_by",
"created_at",
"archived",
"deleted",
"is_template",
"extra_perms",
"language",
"kind",
"starred",
"no_main_func",
"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"
},
"no_main_func": {
"type": "boolean"
},
"codebase": {
"type": "string"
},
"has_preprocessor": {
"type": "boolean"
},
"on_behalf_of_email": {
"type": "string"
},
"assets": {
"type": "array",
"items": {
"type": "object",
"required": [
"path",
"kind"
],
"properties": {
"path": {
"type": "string"
},
"kind": {
"$ref": "#/components/schemas/AssetKind"
},
"access_type": {
"type": "string",
"enum": [
"r",
"w",
"rw"
]
},
"alt_access_type": {
"type": "string",
"enum": [
"r",
"w",
"rw"
]
}
}
}
}
},
"required": [
"path",
"summary",
"description",
"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\nthe execution of this script will be permissioned_as and by extension its DT_TOKEN.\n"
},
"flow_status": {
"$ref": "#/components/schemas/FlowStatus"
},
"workflow_as_code_status": {
"$ref": "#/components/schemas/WorkflowStatus"
},
"raw_flow": {
"$ref": "#/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\nthe execution of this script will be permissioned_as and by extension its DT_TOKEN.\n"
},
"flow_status": {
"$ref": "#/components/schemas/FlowStatus"
},
"workflow_as_code_status": {
"$ref": "#/components/schemas/WorkflowStatus"
},
"raw_flow": {
"$ref": "#/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"
]
}
},
"no_main_func": {
"type": "boolean",
"nullable": true
},
"has_preprocessor": {
"type": "boolean",
"nullable": true
}
},
"required": [
"star_args",
"start_kwargs",
"args",
"type",
"error",
"no_main_func",
"has_preprocessor"
]
},
"ScriptLang": {
"type": "string",
"enum": [
"python3",
"deno",
"go",
"bash",
"powershell",
"postgresql",
"mysql",
"bigquery",
"snowflake",
"mssql",
"oracledb",
"graphql",
"nativets",
"bun",
"php",
"rust",
"ansible",
"csharp",
"nu",
"java",
"ruby",
"duckdb",
"bunnative"
]
},
"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"
}
},
"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"
]
},
"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"
}
},
"required": [
"name"
]
},
"EditResourceType": {
"type": "object",
"properties": {
"schema": {},
"description": {
"type": "string"
}
}
},
"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"
},
"extra_perms": {
"type": "object",
"additionalProperties": {
"type": "boolean"
},
"description": "Additional permissions for this schedule"
},
"email": {
"type": "string",
"description": "Email of the user who owns this schedule, used for permissioned_as"
},
"error": {
"type": "string",
"description": "Last error message if the schedule failed to trigger"
},
"on_failure": {
"type": "string",
"description": "Path to a script or flow to run when the scheduled job fails"
},
"on_failure_times": {
"type": "number",
"description": "Number of consecutive failures before the on_failure handler is triggered (default 1)"
},
"on_failure_exact": {
"type": "boolean",
"description": "If true, trigger on_failure handler only on exactly N failures, not on every failure after N"
},
"on_failure_extra_args": {
"$ref": "#/components/schemas/ScriptArgs"
},
"on_recovery": {
"type": "string",
"description": "Path to a script or flow to run when the schedule recovers after failures"
},
"on_recovery_times": {
"type": "number",
"description": "Number of consecutive successes before the on_recovery handler is triggered (default 1)"
},
"on_recovery_extra_args": {
"$ref": "#/components/schemas/ScriptArgs"
},
"on_success": {
"type": "string",
"description": "Path to a script or flow to run after each successful execution"
},
"on_success_extra_args": {
"$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": {
"$ref": "#/components/schemas/Retry"
},
"summary": {
"type": "string",
"description": "Short summary describing the purpose of this schedule"
},
"description": {
"type": "string",
"description": "Detailed description of what this schedule does"
},
"no_flow_overlap": {
"type": "boolean",
"description": "If true, skip this schedule's execution if the previous run is still in progress (prevents concurrent runs)"
},
"tag": {
"type": "string",
"description": "Worker tag to route jobs to specific worker groups"
},
"paused_until": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 datetime until which the schedule is paused. Schedule resumes automatically after this time"
},
"cron_version": {
"type": "string",
"description": "Cron parser version. Use 'v2' for extended syntax with additional features"
},
"dynamic_skip": {
"type": "string",
"description": "Path to a script that validates scheduled datetimes. Receives scheduled_for datetime and returns boolean to skip (true) or run (false)"
}
},
"required": [
"path",
"edited_by",
"edited_at",
"schedule",
"script_path",
"timezone",
"extra_perms",
"is_flow",
"enabled",
"email"
]
},
"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": {
"$ref": "#/components/schemas/ScriptArgs"
},
"enabled": {
"type": "boolean",
"description": "Whether the schedule is currently active and will trigger jobs"
},
"on_failure": {
"type": "string",
"description": "Path to a script or flow to run when the scheduled job fails"
},
"on_failure_times": {
"type": "number",
"description": "Number of consecutive failures before the on_failure handler is triggered (default 1)"
},
"on_failure_exact": {
"type": "boolean",
"description": "If true, trigger on_failure handler only on exactly N failures, not on every failure after N"
},
"on_failure_extra_args": {
"$ref": "#/components/schemas/ScriptArgs"
},
"on_recovery": {
"type": "string",
"description": "Path to a script or flow to run when the schedule recovers after failures"
},
"on_recovery_times": {
"type": "number",
"description": "Number of consecutive successes before the on_recovery handler is triggered (default 1)"
},
"on_recovery_extra_args": {
"$ref": "#/components/schemas/ScriptArgs"
},
"on_success": {
"type": "string",
"description": "Path to a script or flow to run after each successful execution"
},
"on_success_extra_args": {
"$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": {
"$ref": "#/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",
"description": "Short summary describing the purpose of this schedule"
},
"description": {
"type": "string",
"description": "Detailed description of what this schedule does"
},
"tag": {
"type": "string",
"description": "Worker tag to route jobs to specific worker groups"
},
"paused_until": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 datetime until which the schedule is paused. Schedule resumes automatically after this time"
},
"cron_version": {
"type": "string",
"description": "Cron parser version. Use 'v2' for extended syntax with additional features"
},
"dynamic_skip": {
"type": "string",
"description": "Path to a script that validates scheduled datetimes. Receives scheduled_for datetime and returns boolean to skip (true) or run (false)"
}
},
"required": [
"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": {
"$ref": "#/components/schemas/ScriptArgs"
},
"on_failure": {
"type": "string",
"description": "Path to a script or flow to run when the scheduled job fails"
},
"on_failure_times": {
"type": "number",
"description": "Number of consecutive failures before the on_failure handler is triggered (default 1)"
},
"on_failure_exact": {
"type": "boolean",
"description": "If true, trigger on_failure handler only on exactly N failures, not on every failure after N"
},
"on_failure_extra_args": {
"$ref": "#/components/schemas/ScriptArgs"
},
"on_recovery": {
"type": "string",
"description": "Path to a script or flow to run when the schedule recovers after failures"
},
"on_recovery_times": {
"type": "number",
"description": "Number of consecutive successes before the on_recovery handler is triggered (default 1)"
},
"on_recovery_extra_args": {
"$ref": "#/components/schemas/ScriptArgs"
},
"on_success": {
"type": "string",
"description": "Path to a script or flow to run after each successful execution"
},
"on_success_extra_args": {
"$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": {
"$ref": "#/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",
"description": "Short summary describing the purpose of this schedule"
},
"description": {
"type": "string",
"description": "Detailed description of what this schedule does"
},
"tag": {
"type": "string",
"description": "Worker tag to route jobs to specific worker groups"
},
"paused_until": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 datetime until which the schedule is paused. Schedule resumes automatically after this time"
},
"cron_version": {
"type": "string",
"description": "Cron parser version. Use 'v2' for extended syntax with additional features"
},
"dynamic_skip": {
"type": "string",
"description": "Path to a script that validates scheduled datetimes. Receives scheduled_for datetime and returns boolean to skip (true) or run (false)"
}
},
"required": [
"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"
]
},
"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"
},
"email": {
"type": "string",
"description": "Email of the user who owns this trigger, used for permissioned_as"
},
"extra_perms": {
"type": "object",
"description": "Additional permissions for this trigger",
"additionalProperties": {
"type": "boolean"
}
},
"workspace_id": {
"type": "string",
"description": "The workspace this trigger belongs to"
},
"edited_by": {
"type": "string",
"description": "Username of the last person who edited this trigger"
},
"edited_at": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last edit"
},
"is_flow": {
"type": "boolean",
"description": "True if script_path points to a flow, false if it points to a script"
},
"mode": {
"$ref": "#/components/schemas/TriggerMode",
"description": "Trigger mode (enabled/disabled)"
}
},
"required": [
"path",
"script_path",
"email",
"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",
"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",
"description": "Path to the resource containing authentication configuration (for api_key, basic_http, custom_script, signature methods)"
},
"summary": {
"type": "string",
"description": "Short summary describing the purpose of this trigger"
},
"description": {
"type": "string",
"description": "Detailed description of what this trigger does"
},
"request_type": {
"$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": "#/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",
"description": "Short summary describing the purpose of this trigger"
},
"description": {
"type": "string",
"description": "Detailed description of what this trigger does"
},
"static_asset_config": {
"type": "object",
"description": "Configuration for serving static assets (s3 bucket, storage path, filename)",
"properties": {
"s3": {
"type": "string",
"description": "S3 bucket path for static assets"
},
"storage": {
"type": "string",
"description": "Storage path for static assets"
},
"filename": {
"type": "string",
"description": "Filename for the static asset"
}
},
"required": [
"s3"
]
},
"is_flow": {
"type": "boolean",
"description": "True if script_path points to a flow, false if it points to a script"
},
"http_method": {
"$ref": "#/components/schemas/HttpMethod",
"description": "HTTP method (get, post, put, delete, patch) that triggers this endpoint"
},
"authentication_resource_path": {
"type": "string",
"description": "Path to the resource containing authentication configuration (for api_key, basic_http, custom_script, signature methods)"
},
"is_async": {
"type": "boolean",
"description": "Deprecated, use request_type instead"
},
"request_type": {
"$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": "#/components/schemas/Retry",
"description": "Retry configuration for failed executions"
}
},
"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",
"description": "Short summary describing the purpose of this trigger"
},
"description": {
"type": "string",
"description": "Detailed description of what this trigger does"
},
"workspaced_route": {
"type": "boolean",
"description": "If true, the route includes the workspace ID in the path"
},
"static_asset_config": {
"type": "object",
"description": "Configuration for serving static assets (s3 bucket, storage path, filename)",
"properties": {
"s3": {
"type": "string",
"description": "S3 bucket path for static assets"
},
"storage": {
"type": "string",
"description": "Storage path for static assets"
},
"filename": {
"type": "string",
"description": "Filename for the static asset"
}
},
"required": [
"s3"
]
},
"authentication_resource_path": {
"type": "string",
"description": "Path to the resource containing authentication configuration (for api_key, basic_http, custom_script, signature methods)"
},
"is_flow": {
"type": "boolean",
"description": "True if script_path points to a flow, false if it points to a script"
},
"http_method": {
"$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": "#/components/schemas/Retry",
"description": "Retry configuration for failed executions"
}
},
"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"
}
}
},
"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",
"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"
},
"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": "#/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",
"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"
},
"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": "#/components/schemas/Retry"
}
},
"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",
"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"
},
"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": "#/components/schemas/Retry"
}
},
"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",
"description": "MQTT v3 specific configuration (clean_session)"
},
"v5_config": {
"$ref": "#/components/schemas/MqttV5Config",
"description": "MQTT v5 specific configuration (clean_start, topic_alias_maximum, session_expiry_interval)"
},
"client_id": {
"type": "string",
"description": "MQTT client ID for this connection"
},
"client_version": {
"$ref": "#/components/schemas/MqttClientVersion",
"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": "#/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",
"description": "MQTT client ID for this connection"
},
"v3_config": {
"$ref": "#/components/schemas/MqttV3Config",
"description": "MQTT v3 specific configuration (clean_session)"
},
"v5_config": {
"$ref": "#/components/schemas/MqttV5Config",
"description": "MQTT v5 specific configuration (clean_start, topic_alias_maximum, session_expiry_interval)"
},
"client_version": {
"$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": "#/components/schemas/Retry",
"description": "Retry configuration for failed executions"
}
},
"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",
"description": "MQTT client ID for this connection"
},
"v3_config": {
"$ref": "#/components/schemas/MqttV3Config",
"description": "MQTT v3 specific configuration (clean_session)"
},
"v5_config": {
"$ref": "#/components/schemas/MqttV5Config",
"description": "MQTT v5 specific configuration (clean_start, topic_alias_maximum, session_expiry_interval)"
},
"client_version": {
"$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": "#/components/schemas/Retry",
"description": "Retry configuration for failed executions"
}
},
"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"
},
"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": "#/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": {
"$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": "#/components/schemas/Retry",
"description": "Retry configuration for failed executions."
}
},
"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",
"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": "#/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",
"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": "#/components/schemas/Retry",
"description": "Retry configuration for failed executions"
}
},
"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",
"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": "#/components/schemas/Retry",
"description": "Retry configuration for failed executions"
}
},
"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": "#/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": "#/components/schemas/Retry",
"description": "Retry configuration for failed executions"
}
},
"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": "#/components/schemas/Retry",
"description": "Retry configuration for failed executions"
}
},
"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"
]
}
},
"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": "#/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"
]
}
},
"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": "#/components/schemas/Retry",
"description": "Retry configuration for failed executions"
}
},
"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"
]
}
},
"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": "#/components/schemas/Retry",
"description": "Retry configuration for failed executions"
}
},
"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",
"description": "JetStream stream name (required when use_jetstream is true)"
},
"consumer_name": {
"type": "string",
"description": "JetStream consumer name (required when use_jetstream is true)"
},
"subjects": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of NATS subjects to subscribe to"
},
"server_id": {
"type": "string",
"description": "ID of the server currently handling this trigger (internal)"
},
"last_server_ping": {
"type": "string",
"format": "date-time",
"description": "Timestamp of last server heartbeat (internal)"
},
"error": {
"type": "string",
"description": "Last error message if the trigger failed"
},
"error_handler_path": {
"type": "string",
"description": "Path to a script or flow to run when the triggered job fails"
},
"error_handler_args": {
"$ref": "#/components/schemas/ScriptArgs",
"description": "Arguments to pass to the error handler"
},
"retry": {
"$ref": "#/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",
"description": "JetStream stream name (required when use_jetstream is true)"
},
"consumer_name": {
"type": "string",
"description": "JetStream consumer name (required when use_jetstream is true)"
},
"subjects": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of NATS subjects to subscribe to"
},
"mode": {
"$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": "#/components/schemas/Retry",
"description": "Retry configuration for failed executions"
}
},
"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",
"description": "JetStream stream name (required when use_jetstream is true)"
},
"consumer_name": {
"type": "string",
"description": "JetStream consumer name (required when use_jetstream is true)"
},
"subjects": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of NATS subjects to subscribe to"
},
"path": {
"type": "string",
"description": "The unique path identifier for this trigger"
},
"script_path": {
"type": "string",
"description": "Path to the script or flow to execute when a message is received"
},
"is_flow": {
"type": "boolean",
"description": "True if script_path points to a flow, false if it points to a script"
},
"error_handler_path": {
"type": "string",
"description": "Path to a script or flow to run when the triggered job fails"
},
"error_handler_args": {
"$ref": "#/components/schemas/ScriptArgs",
"description": "Arguments to pass to the error handler"
},
"retry": {
"$ref": "#/components/schemas/Retry",
"description": "Retry configuration for failed executions"
}
},
"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": "#/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": "#/components/schemas/Retry"
},
"mode": {
"$ref": "#/components/schemas/TriggerMode"
}
},
"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": "#/components/schemas/Retry"
}
},
"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"
}
}
}
},
"InstanceGroupWithWorkspaces": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
},
"summary": {
"type": "string"
},
"emails": {
"type": "array",
"items": {
"type": "string"
}
},
"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"
}
},
"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"
}
},
"required": [
"email",
"login_type",
"super_admin",
"verified",
"first_time_user"
]
},
"Flow": {
"allOf": [
{
"$ref": "#/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": "#/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"
}
},
"required": [
"path"
]
}
]
},
"FlowPreview": {
"type": "object",
"properties": {
"value": {
"$ref": "#/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"
}
},
"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"
},
"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": [
"script_path",
"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"
]
},
"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"
}
},
"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",
"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"
]
},
"Asset": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"kind": {
"$ref": "#/components/schemas/AssetKind"
}
},
"required": [
"path",
"kind"
]
},
"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"
}
},
"NativeServiceName": {
"type": "string",
"enum": [
"nextcloud"
]
},
"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"
}
},
"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"
]
},
"schemas-StaticTransform": {
"type": "object",
"description": "Static value passed directly to the step. Use for hardcoded values or resource references like '$res:path/to/resource'",
"properties": {
"value": {
"description": "The static value. For resources, use format '$res:path/to/resource'"
},
"type": {
"type": "string",
"enum": [
"static"
]
}
},
"required": [
"type"
]
},
"schemas-JavascriptTransform": {
"type": "object",
"description": "JavaScript expression evaluated at runtime. Can reference previous step results via 'results.step_id' or flow inputs via 'flow_input.property'. Inside loops, use 'flow_input.iter.value' for the current iteration value",
"properties": {
"expr": {
"type": "string",
"description": "JavaScript expression returning the value. Available variables - results (object with all previous step results), flow_input (flow inputs), flow_input.iter (in loops)"
},
"type": {
"type": "string",
"enum": [
"javascript"
]
}
},
"required": [
"expr",
"type"
]
},
"schemas-AiTransform": {
"type": "object",
"description": "Value resolved by the AI runtime for this input. The AI engine decides how to satisfy the parameter.",
"properties": {
"type": {
"type": "string",
"enum": [
"ai"
]
}
},
"required": [
"type"
]
},
"schemas-InputTransform": {
"description": "Maps input parameters for a step. Can be a static value or a JavaScript expression that references previous results or flow inputs",
"oneOf": [
{
"$ref": "#/components/schemas/schemas-StaticTransform"
},
{
"$ref": "#/components/schemas/schemas-JavascriptTransform"
},
{
"$ref": "#/components/schemas/schemas-AiTransform"
}
],
"discriminator": {
"propertyName": "type",
"mapping": {
"static": "#/components/schemas/schemas-StaticTransform",
"javascript": "#/components/schemas/schemas-JavascriptTransform",
"ai": "#/components/schemas/schemas-AiTransform"
}
}
},
"schemas-RawScript": {
"type": "object",
"description": "Inline script with code defined directly in the flow. Use 'bun' as default language if unspecified. The script receives arguments from input_transforms",
"properties": {
"input_transforms": {
"type": "object",
"description": "Map of parameter names to their values (static or JavaScript expressions). These become the script's input arguments",
"additionalProperties": {
"$ref": "#/components/schemas/schemas-InputTransform"
}
},
"content": {
"type": "string",
"description": "The script source code. Should export a 'main' function"
},
"language": {
"type": "string",
"description": "Programming language for this script",
"enum": [
"deno",
"bun",
"python3",
"go",
"bash",
"powershell",
"postgresql",
"mysql",
"bigquery",
"snowflake",
"mssql",
"oracledb",
"graphql",
"nativets",
"php",
"rust",
"ansible",
"csharp",
"nu",
"java",
"ruby",
"duckdb"
]
},
"path": {
"type": "string",
"description": "Optional path for saving this script"
},
"lock": {
"type": "string",
"description": "Lock file content for dependencies"
},
"type": {
"type": "string",
"enum": [
"rawscript"
]
},
"tag": {
"type": "string",
"description": "Worker group tag for execution routing"
},
"concurrent_limit": {
"type": "number",
"description": "Maximum concurrent executions of this script"
},
"concurrency_time_window_s": {
"type": "number",
"description": "Time window for concurrent_limit"
},
"custom_concurrency_key": {
"type": "string",
"description": "Custom key for grouping concurrent executions"
},
"is_trigger": {
"type": "boolean",
"description": "If true, this script is a trigger that can start the flow"
},
"assets": {
"type": "array",
"description": "External resources this script accesses (S3 objects, resources, etc.)",
"items": {
"type": "object",
"required": [
"path",
"kind"
],
"properties": {
"path": {
"type": "string",
"description": "Path to the asset"
},
"kind": {
"type": "string",
"description": "Type of asset",
"enum": [
"s3object",
"resource",
"ducklake",
"datatable"
]
},
"access_type": {
"type": "string",
"nullable": true,
"description": "Access level for this asset",
"enum": [
"r",
"w",
"rw"
]
},
"alt_access_type": {
"type": "string",
"nullable": true,
"description": "Alternative access level",
"enum": [
"r",
"w",
"rw"
]
}
}
}
}
},
"required": [
"type",
"content",
"language",
"input_transforms"
]
},
"schemas-PathScript": {
"type": "object",
"description": "Reference to an existing script by path. Use this when calling a previously saved script instead of writing inline code",
"properties": {
"input_transforms": {
"type": "object",
"description": "Map of parameter names to their values (static or JavaScript expressions). These become the script's input arguments",
"additionalProperties": {
"$ref": "#/components/schemas/schemas-InputTransform"
}
},
"path": {
"type": "string",
"description": "Path to the script in the workspace (e.g., 'f/scripts/send_email')"
},
"hash": {
"type": "string",
"description": "Optional specific version hash of the script to use"
},
"type": {
"type": "string",
"enum": [
"script"
]
},
"tag_override": {
"type": "string",
"description": "Override the script's default worker group tag"
},
"is_trigger": {
"type": "boolean",
"description": "If true, this script is a trigger that can start the flow"
}
},
"required": [
"type",
"path",
"input_transforms"
]
},
"schemas-PathFlow": {
"type": "object",
"description": "Reference to an existing flow by path. Use this to call another flow as a subflow",
"properties": {
"input_transforms": {
"type": "object",
"description": "Map of parameter names to their values (static or JavaScript expressions). These become the subflow's input arguments",
"additionalProperties": {
"$ref": "#/components/schemas/schemas-InputTransform"
}
},
"path": {
"type": "string",
"description": "Path to the flow in the workspace (e.g., 'f/flows/process_user')"
},
"type": {
"type": "string",
"enum": [
"flow"
]
}
},
"required": [
"type",
"path",
"input_transforms"
]
},
"schemas-FlowModule": {
"type": "object",
"description": "A single step in a flow. Can be a script, subflow, loop, or branch",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for this step. Used to reference results via 'results.step_id'. Must be a valid identifier (alphanumeric, underscore, hyphen)"
},
"value": {
"$ref": "#/components/schemas/schemas-FlowModuleValue"
},
"stop_after_if": {
"description": "Early termination condition evaluated after this step completes",
"$ref": "#/components/schemas/schemas-StopAfterIf"
},
"stop_after_all_iters_if": {
"description": "For loops only - early termination condition evaluated after all iterations complete",
"$ref": "#/components/schemas/schemas-StopAfterIf"
},
"skip_if": {
"type": "object",
"description": "Conditionally skip this step based on previous results or flow inputs",
"properties": {
"expr": {
"type": "string",
"description": "JavaScript expression that returns true to skip. Can use 'flow_input' or 'results.<step_id>'"
}
},
"required": [
"expr"
]
},
"sleep": {
"description": "Delay before executing this step (in seconds or as expression)",
"$ref": "#/components/schemas/schemas-InputTransform"
},
"cache_ttl": {
"type": "number",
"description": "Cache duration in seconds for this step's results"
},
"cache_ignore_s3_path": {
"type": "boolean"
},
"timeout": {
"description": "Maximum execution time in seconds (static value or expression)",
"$ref": "#/components/schemas/schemas-InputTransform"
},
"delete_after_use": {
"type": "boolean",
"description": "If true, this step's result is deleted after use to save memory"
},
"summary": {
"type": "string",
"description": "Short description of what this step does"
},
"mock": {
"type": "object",
"description": "Mock configuration for testing without executing the actual step",
"properties": {
"enabled": {
"type": "boolean",
"description": "If true, return mock value instead of executing"
},
"return_value": {
"description": "Value to return when mocked"
}
}
},
"suspend": {
"type": "object",
"description": "Configuration for approval/resume steps that wait for user input",
"properties": {
"required_events": {
"type": "integer",
"description": "Number of approvals required before continuing"
},
"timeout": {
"type": "integer",
"description": "Timeout in seconds before auto-continuing or canceling"
},
"resume_form": {
"type": "object",
"description": "Form schema for collecting input when resuming",
"properties": {
"schema": {
"type": "object",
"description": "JSON Schema for the resume form"
}
}
},
"user_auth_required": {
"type": "boolean",
"description": "If true, only authenticated users can approve"
},
"user_groups_required": {
"description": "Expression or list of groups that can approve",
"$ref": "#/components/schemas/schemas-InputTransform"
},
"self_approval_disabled": {
"type": "boolean",
"description": "If true, the user who started the flow cannot approve"
},
"hide_cancel": {
"type": "boolean",
"description": "If true, hide the cancel button on the approval form"
},
"continue_on_disapprove_timeout": {
"type": "boolean",
"description": "If true, continue flow on timeout instead of canceling"
}
}
},
"priority": {
"type": "number",
"description": "Execution priority for this step (higher numbers run first)"
},
"continue_on_error": {
"type": "boolean",
"description": "If true, flow continues even if this step fails"
},
"retry": {
"description": "Retry configuration if this step fails",
"$ref": "#/components/schemas/schemas-Retry"
}
},
"required": [
"value",
"id"
]
},
"schemas-ForloopFlow": {
"type": "object",
"description": "Executes nested modules in a loop over an iterator. Inside the loop, use 'flow_input.iter.value' to access the current iteration value, and 'flow_input.iter.index' for the index. Supports parallel execution for better performance on I/O-bound operations",
"properties": {
"modules": {
"type": "array",
"description": "Steps to execute for each iteration. These can reference the iteration value via 'flow_input.iter.value'",
"items": {
"$ref": "#/components/schemas/schemas-FlowModule"
}
},
"iterator": {
"description": "JavaScript expression that returns an array to iterate over. Can reference 'results.step_id' or 'flow_input'",
"$ref": "#/components/schemas/schemas-InputTransform"
},
"skip_failures": {
"type": "boolean",
"description": "If true, iteration failures don't stop the loop. Failed iterations return null"
},
"type": {
"type": "string",
"enum": [
"forloopflow"
]
},
"parallel": {
"type": "boolean",
"description": "If true, iterations run concurrently (faster for I/O-bound operations). Use with parallelism to control concurrency"
},
"parallelism": {
"description": "Maximum number of concurrent iterations when parallel=true. Limits resource usage. Can be static number or expression",
"$ref": "#/components/schemas/schemas-InputTransform"
},
"squash": {
"type": "boolean"
}
},
"required": [
"modules",
"iterator",
"skip_failures",
"type"
]
},
"schemas-WhileloopFlow": {
"type": "object",
"description": "Executes nested modules repeatedly while a condition is true. The loop checks the condition after each iteration. Use stop_after_if on modules to control loop termination",
"properties": {
"modules": {
"type": "array",
"description": "Steps to execute in each iteration. Use stop_after_if to control when the loop ends",
"items": {
"$ref": "#/components/schemas/schemas-FlowModule"
}
},
"skip_failures": {
"type": "boolean",
"description": "If true, iteration failures don't stop the loop. Failed iterations return null"
},
"type": {
"type": "string",
"enum": [
"whileloopflow"
]
},
"parallel": {
"type": "boolean",
"description": "If true, iterations run concurrently (use with caution in while loops)"
},
"parallelism": {
"description": "Maximum number of concurrent iterations when parallel=true",
"$ref": "#/components/schemas/schemas-InputTransform"
},
"squash": {
"type": "boolean"
}
},
"required": [
"modules",
"skip_failures",
"type"
]
},
"schemas-BranchOne": {
"type": "object",
"description": "Conditional branching where only the first matching branch executes. Branches are evaluated in order, and the first one with a true expression runs. If no branches match, the default branch executes",
"properties": {
"branches": {
"type": "array",
"description": "Array of branches to evaluate in order. The first branch with expr evaluating to true executes",
"items": {
"type": "object",
"properties": {
"summary": {
"type": "string",
"description": "Short description of this branch condition"
},
"expr": {
"type": "string",
"description": "JavaScript expression that returns boolean. Can use 'results.step_id' or 'flow_input'. First true expr wins"
},
"modules": {
"type": "array",
"description": "Steps to execute if this branch's expr is true",
"items": {
"$ref": "#/components/schemas/schemas-FlowModule"
}
}
},
"required": [
"modules",
"expr"
]
}
},
"default": {
"type": "array",
"description": "Steps to execute if no branch expressions match",
"items": {
"$ref": "#/components/schemas/schemas-FlowModule"
}
},
"type": {
"type": "string",
"enum": [
"branchone"
]
}
},
"required": [
"branches",
"default",
"type"
]
},
"schemas-BranchAll": {
"type": "object",
"description": "Parallel branching where all branches execute simultaneously. Unlike BranchOne, all branches run regardless of conditions. Useful for executing independent tasks concurrently",
"properties": {
"branches": {
"type": "array",
"description": "Array of branches that all execute (either in parallel or sequentially)",
"items": {
"type": "object",
"properties": {
"summary": {
"type": "string",
"description": "Short description of this branch's purpose"
},
"skip_failure": {
"type": "boolean",
"description": "If true, failure in this branch doesn't fail the entire flow"
},
"modules": {
"type": "array",
"description": "Steps to execute in this branch",
"items": {
"$ref": "#/components/schemas/schemas-FlowModule"
}
}
},
"required": [
"modules"
]
}
},
"type": {
"type": "string",
"enum": [
"branchall"
]
},
"parallel": {
"type": "boolean",
"description": "If true, all branches execute concurrently. If false, they execute sequentially"
}
},
"required": [
"branches",
"type"
]
},
"schemas-Identity": {
"type": "object",
"description": "Pass-through module that returns its input unchanged. Useful for flow structure or as a placeholder",
"properties": {
"type": {
"type": "string",
"enum": [
"identity"
]
},
"flow": {
"type": "boolean",
"description": "If true, marks this as a flow identity (special handling)"
}
},
"required": [
"type"
]
},
"AIProviderKind": {
"type": "string",
"description": "Supported AI provider types",
"enum": [
"openai",
"azure_openai",
"anthropic",
"mistral",
"deepseek",
"googleai",
"groq",
"openrouter",
"togetherai",
"customai",
"aws_bedrock"
]
},
"schemas-ProviderConfig": {
"type": "object",
"description": "Complete AI provider configuration with resource reference and model selection",
"properties": {
"kind": {
"$ref": "#/components/schemas/AIProviderKind"
},
"resource": {
"type": "string",
"description": "Resource reference in format '$res:{resource_path}' pointing to provider credentials"
},
"model": {
"type": "string",
"description": "Model identifier (e.g., 'gpt-4', 'claude-3-opus-20240229', 'gemini-pro')"
}
},
"required": [
"kind",
"resource",
"model"
]
},
"StaticProviderTransform": {
"type": "object",
"description": "Static provider configuration passed directly to the AI agent",
"properties": {
"value": {
"$ref": "#/components/schemas/schemas-ProviderConfig"
},
"type": {
"type": "string",
"enum": [
"static"
]
}
},
"required": [
"type",
"value"
]
},
"ProviderTransform": {
"description": "Provider configuration - can be static (ProviderConfig), JavaScript expression, or AI-determined",
"oneOf": [
{
"$ref": "#/components/schemas/StaticProviderTransform"
},
{
"$ref": "#/components/schemas/schemas-JavascriptTransform"
},
{
"$ref": "#/components/schemas/schemas-AiTransform"
}
],
"discriminator": {
"propertyName": "type",
"mapping": {
"static": "#/components/schemas/StaticProviderTransform",
"javascript": "#/components/schemas/schemas-JavascriptTransform",
"ai": "#/components/schemas/schemas-AiTransform"
}
}
},
"MemoryOff": {
"type": "object",
"description": "No conversation memory/context",
"properties": {
"kind": {
"type": "string",
"enum": [
"off"
]
}
},
"required": [
"kind"
]
},
"MemoryAuto": {
"type": "object",
"description": "Automatic context management",
"properties": {
"kind": {
"type": "string",
"enum": [
"auto"
]
},
"context_length": {
"type": "integer",
"description": "Maximum number of messages to retain in context"
},
"memory_id": {
"type": "string",
"description": "Identifier for persistent memory across agent invocations"
}
},
"required": [
"kind"
]
},
"MemoryMessage": {
"type": "object",
"description": "A single message in conversation history",
"properties": {
"role": {
"type": "string",
"enum": [
"user",
"assistant",
"system"
]
},
"content": {
"type": "string"
}
},
"required": [
"role",
"content"
]
},
"MemoryManual": {
"type": "object",
"description": "Explicit message history",
"properties": {
"kind": {
"type": "string",
"enum": [
"manual"
]
},
"messages": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MemoryMessage"
}
}
},
"required": [
"kind",
"messages"
]
},
"schemas-MemoryConfig": {
"description": "Conversation memory configuration",
"oneOf": [
{
"$ref": "#/components/schemas/MemoryOff"
},
{
"$ref": "#/components/schemas/MemoryAuto"
},
{
"$ref": "#/components/schemas/MemoryManual"
}
],
"discriminator": {
"propertyName": "kind",
"mapping": {
"off": "#/components/schemas/MemoryOff",
"auto": "#/components/schemas/MemoryAuto",
"manual": "#/components/schemas/MemoryManual"
}
}
},
"StaticMemoryTransform": {
"type": "object",
"description": "Static memory configuration passed directly to the AI agent",
"properties": {
"value": {
"$ref": "#/components/schemas/schemas-MemoryConfig"
},
"type": {
"type": "string",
"enum": [
"static"
]
}
},
"required": [
"type",
"value"
]
},
"MemoryTransform": {
"description": "Memory configuration - can be static (MemoryConfig), JavaScript expression, or AI-determined",
"oneOf": [
{
"$ref": "#/components/schemas/StaticMemoryTransform"
},
{
"$ref": "#/components/schemas/schemas-JavascriptTransform"
},
{
"$ref": "#/components/schemas/schemas-AiTransform"
}
],
"discriminator": {
"propertyName": "type",
"mapping": {
"static": "#/components/schemas/StaticMemoryTransform",
"javascript": "#/components/schemas/schemas-JavascriptTransform",
"ai": "#/components/schemas/schemas-AiTransform"
}
}
},
"schemas-FlowModuleValue": {
"description": "The actual implementation of a flow step. Can be a script (inline or referenced), subflow, loop, branch, or special module type",
"oneOf": [
{
"$ref": "#/components/schemas/schemas-RawScript"
},
{
"$ref": "#/components/schemas/schemas-PathScript"
},
{
"$ref": "#/components/schemas/schemas-PathFlow"
},
{
"$ref": "#/components/schemas/schemas-ForloopFlow"
},
{
"$ref": "#/components/schemas/schemas-WhileloopFlow"
},
{
"$ref": "#/components/schemas/schemas-BranchOne"
},
{
"$ref": "#/components/schemas/schemas-BranchAll"
},
{
"$ref": "#/components/schemas/schemas-Identity"
},
{
"$ref": "#/components/schemas/schemas-AiAgent"
}
],
"discriminator": {
"propertyName": "type",
"mapping": {
"rawscript": "#/components/schemas/schemas-RawScript",
"script": "#/components/schemas/schemas-PathScript",
"flow": "#/components/schemas/schemas-PathFlow",
"forloopflow": "#/components/schemas/schemas-ForloopFlow",
"whileloopflow": "#/components/schemas/schemas-WhileloopFlow",
"branchone": "#/components/schemas/schemas-BranchOne",
"branchall": "#/components/schemas/schemas-BranchAll",
"identity": "#/components/schemas/schemas-Identity",
"aiagent": "#/components/schemas/schemas-AiAgent"
}
}
},
"FlowModuleTool": {
"description": "A tool implemented as a flow module (script, flow, etc.). The AI can call this like any other flow module",
"allOf": [
{
"type": "object",
"properties": {
"tool_type": {
"type": "string",
"enum": [
"flowmodule"
]
}
},
"required": [
"tool_type"
]
},
{
"$ref": "#/components/schemas/schemas-FlowModuleValue"
}
]
},
"McpToolValue": {
"type": "object",
"description": "Reference to an external MCP (Model Context Protocol) tool. The AI can call tools from MCP servers",
"properties": {
"tool_type": {
"type": "string",
"enum": [
"mcp"
]
},
"resource_path": {
"type": "string",
"description": "Path to the MCP resource/server configuration"
},
"include_tools": {
"type": "array",
"description": "Whitelist of specific tools to include from this MCP server",
"items": {
"type": "string"
}
},
"exclude_tools": {
"type": "array",
"description": "Blacklist of tools to exclude from this MCP server",
"items": {
"type": "string"
}
}
},
"required": [
"tool_type",
"resource_path"
]
},
"WebsearchToolValue": {
"type": "object",
"description": "A tool implemented as a websearch tool. The AI can call this like any other websearch tool",
"properties": {
"tool_type": {
"type": "string",
"enum": [
"websearch"
]
}
},
"required": [
"tool_type"
]
},
"ToolValue": {
"description": "The implementation of a tool. Can be a flow module (script/flow) or an MCP tool reference",
"oneOf": [
{
"$ref": "#/components/schemas/FlowModuleTool"
},
{
"$ref": "#/components/schemas/McpToolValue"
},
{
"$ref": "#/components/schemas/WebsearchToolValue"
}
],
"discriminator": {
"propertyName": "tool_type",
"mapping": {
"flowmodule": "#/components/schemas/FlowModuleTool",
"mcp": "#/components/schemas/McpToolValue",
"websearch": "#/components/schemas/WebsearchToolValue"
}
}
},
"AgentTool": {
"type": "object",
"description": "A tool available to an AI agent. Can be a flow module or an external MCP (Model Context Protocol) tool",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for this tool. Cannot contain spaces - use underscores instead (e.g., 'get_user_data' not 'get user data')"
},
"summary": {
"type": "string",
"description": "Short description of what this tool does (shown to the AI)"
},
"value": {
"$ref": "#/components/schemas/ToolValue"
}
},
"required": [
"id",
"value"
]
},
"schemas-AiAgent": {
"type": "object",
"description": "AI agent step that can use tools to accomplish tasks. The agent receives inputs and can call any of its configured tools to complete the task",
"properties": {
"input_transforms": {
"type": "object",
"description": "Input parameters for the AI agent mapped to their values",
"properties": {
"provider": {
"$ref": "#/components/schemas/ProviderTransform"
},
"output_type": {
"allOf": [
{
"$ref": "#/components/schemas/schemas-InputTransform"
}
],
"description": "Output format type.\nValid values: 'text' (default) - plain text response, 'image' - image generation\n"
},
"user_message": {
"allOf": [
{
"$ref": "#/components/schemas/schemas-InputTransform"
}
],
"description": "The user's prompt/message to the AI agent. Supports variable interpolation with flow.input syntax."
},
"system_prompt": {
"allOf": [
{
"$ref": "#/components/schemas/schemas-InputTransform"
}
],
"description": "System instructions that guide the AI's behavior, persona, and response style. Optional."
},
"streaming": {
"allOf": [
{
"$ref": "#/components/schemas/schemas-InputTransform"
}
],
"description": "Boolean. If true, stream the AI response incrementally.\nStreaming events include: token_delta, tool_call, tool_call_arguments, tool_execution, tool_result\n"
},
"memory": {
"$ref": "#/components/schemas/MemoryTransform"
},
"output_schema": {
"allOf": [
{
"$ref": "#/components/schemas/schemas-InputTransform"
}
],
"description": "JSON Schema object defining structured output format. Used when you need the AI to return data in a specific shape.\nSupports standard JSON Schema properties: type, properties, required, items, enum, pattern, minLength, maxLength, minimum, maximum, etc.\nExample: { type: 'object', properties: { name: { type: 'string' }, age: { type: 'integer' } }, required: ['name'] }\n"
},
"user_images": {
"allOf": [
{
"$ref": "#/components/schemas/schemas-InputTransform"
}
],
"description": "Array of image references for vision-capable models.\nFormat: Array<{ bucket: string, key: string }> - S3 object references\nExample: [{ bucket: 'my-bucket', key: 'images/photo.jpg' }]\n"
},
"max_completion_tokens": {
"allOf": [
{
"$ref": "#/components/schemas/schemas-InputTransform"
}
],
"description": "Integer. Maximum number of tokens the AI will generate in its response.\nRange: 1 to 4,294,967,295. Typical values: 256-4096 for most use cases.\n"
},
"temperature": {
"allOf": [
{
"$ref": "#/components/schemas/schemas-InputTransform"
}
],
"description": "Float. Controls randomness/creativity of responses.\nRange: 0.0 to 2.0 (provider-dependent)\n- 0.0 = deterministic, focused responses\n- 0.7 = balanced (common default)\n- 1.0+ = more creative/random\n"
}
},
"required": [
"provider",
"user_message",
"output_type"
]
},
"tools": {
"type": "array",
"description": "Array of tools the agent can use. The agent decides which tools to call based on the task",
"items": {
"$ref": "#/components/schemas/AgentTool"
}
},
"type": {
"type": "string",
"enum": [
"aiagent"
]
},
"parallel": {
"type": "boolean",
"description": "If true, the agent can execute multiple tool calls in parallel"
}
},
"required": [
"tools",
"type",
"input_transforms"
]
},
"schemas-StopAfterIf": {
"type": "object",
"description": "Early termination condition for a module",
"properties": {
"skip_if_stopped": {
"type": "boolean",
"description": "If true, following steps are skipped when this condition triggers"
},
"expr": {
"type": "string",
"description": "JavaScript expression evaluated after the module runs. Can use 'result' (step's result) or 'flow_input'. Return true to stop"
},
"error_message": {
"type": "string",
"description": "Custom error message shown when stopping"
}
},
"required": [
"expr"
]
},
"RetryIf": {
"type": "object",
"description": "Conditional retry based on error or result",
"properties": {
"expr": {
"type": "string",
"description": "JavaScript expression that returns true to retry. Has access to 'result' and 'error' variables"
}
},
"required": [
"expr"
]
},
"schemas-Retry": {
"type": "object",
"description": "Retry configuration for failed module executions",
"properties": {
"constant": {
"type": "object",
"description": "Retry with constant delay between attempts",
"properties": {
"attempts": {
"type": "integer",
"description": "Number of retry attempts"
},
"seconds": {
"type": "integer",
"description": "Seconds to wait between retries"
}
}
},
"exponential": {
"type": "object",
"description": "Retry with exponential backoff (delay doubles each time)",
"properties": {
"attempts": {
"type": "integer",
"description": "Number of retry attempts"
},
"multiplier": {
"type": "integer",
"description": "Multiplier for exponential backoff"
},
"seconds": {
"type": "integer",
"minimum": 1,
"description": "Initial delay in seconds"
},
"random_factor": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Random jitter percentage (0-100) to avoid thundering herd"
}
}
},
"retry_if": {
"$ref": "#/components/schemas/RetryIf"
}
}
},
"schemas-FlowNote": {
"type": "object",
"description": "A sticky note attached to a flow for documentation and annotation",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for the note"
},
"text": {
"type": "string",
"description": "Content of the note"
},
"position": {
"type": "object",
"description": "Position of the note in the flow editor",
"properties": {
"x": {
"type": "number",
"description": "X coordinate"
},
"y": {
"type": "number",
"description": "Y coordinate"
}
},
"required": [
"x",
"y"
]
},
"size": {
"type": "object",
"description": "Size of the note in the flow editor",
"properties": {
"width": {
"type": "number",
"description": "Width in pixels"
},
"height": {
"type": "number",
"description": "Height in pixels"
}
},
"required": [
"width",
"height"
]
},
"color": {
"type": "string",
"description": "Color of the note (e.g., \"yellow\", \"#ffff00\")"
},
"type": {
"type": "string",
"enum": [
"free",
"group"
],
"description": "Type of note - 'free' for standalone notes, 'group' for notes that group other nodes"
},
"locked": {
"type": "boolean",
"default": false,
"description": "Whether the note is locked and cannot be edited or moved"
},
"contained_node_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "For group notes, the IDs of nodes contained within this group"
}
},
"required": [
"id",
"text",
"color",
"type"
]
},
"schemas-FlowValue": {
"type": "object",
"description": "The flow structure containing modules and optional preprocessor/failure handlers",
"properties": {
"modules": {
"type": "array",
"description": "Array of steps that execute in sequence. Each step can be a script, subflow, loop, or branch",
"items": {
"$ref": "#/components/schemas/schemas-FlowModule"
}
},
"failure_module": {
"description": "Special module that executes when the flow fails. Receives error object with message, name, stack, and step_id. Must have id 'failure'. Only supports script/rawscript types",
"$ref": "#/components/schemas/schemas-FlowModule"
},
"preprocessor_module": {
"description": "Special module that runs before the first step on external triggers. Must have id 'preprocessor'. Only supports script/rawscript types. Cannot reference other step results",
"$ref": "#/components/schemas/schemas-FlowModule"
},
"same_worker": {
"type": "boolean",
"description": "If true, all steps run on the same worker for better performance"
},
"concurrent_limit": {
"type": "number",
"description": "Maximum number of concurrent executions of this flow"
},
"concurrency_key": {
"type": "string",
"description": "Expression to group concurrent executions (e.g., by user ID)"
},
"concurrency_time_window_s": {
"type": "number",
"description": "Time window in seconds for concurrent_limit"
},
"debounce_delay_s": {
"type": "number",
"description": "Delay in seconds to debounce flow executions"
},
"debounce_key": {
"type": "string",
"description": "Expression to group debounced executions"
},
"debounce_args_to_accumulate": {
"type": "array",
"description": "Arguments to accumulate across debounced executions",
"items": {
"type": "string"
}
},
"max_total_debouncing_time": {
"type": "number",
"description": "Maximum total time in seconds that a job can be debounced"
},
"max_total_debounces_amount": {
"type": "number",
"description": "Maximum number of times a job can be debounced"
},
"skip_expr": {
"type": "string",
"description": "JavaScript expression to conditionally skip the entire flow"
},
"cache_ttl": {
"type": "number",
"description": "Cache duration in seconds for flow results"
},
"cache_ignore_s3_path": {
"type": "boolean"
},
"flow_env": {
"type": "object",
"description": "Environment variables available to all steps",
"additionalProperties": {
"type": "string"
}
},
"priority": {
"type": "number",
"description": "Execution priority (higher numbers run first)"
},
"early_return": {
"type": "string",
"description": "JavaScript expression to return early from the flow"
},
"chat_input_enabled": {
"type": "boolean",
"description": "Whether this flow accepts chat-style input"
},
"notes": {
"type": "array",
"description": "Sticky notes attached to the flow",
"items": {
"$ref": "#/components/schemas/schemas-FlowNote"
}
}
},
"required": [
"modules"
]
},
"schemas-FlowStatusModule": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"WaitingForPriorSteps",
"WaitingForEvents",
"WaitingForExecutor",
"InProgress",
"Success",
"Failure"
]
},
"id": {
"type": "string"
},
"job": {
"type": "string",
"format": "uuid"
},
"count": {
"type": "integer"
},
"progress": {
"type": "integer"
},
"iterator": {
"type": "object",
"properties": {
"index": {
"type": "integer"
},
"itered": {
"type": "array",
"items": {}
},
"itered_len": {
"type": "integer"
},
"args": {}
}
},
"flow_jobs": {
"type": "array",
"items": {
"type": "string"
}
},
"flow_jobs_success": {
"type": "array",
"items": {
"type": "boolean"
}
},
"flow_jobs_duration": {
"type": "object",
"properties": {
"started_at": {
"type": "array",
"items": {
"type": "string"
}
},
"duration_ms": {
"type": "array",
"items": {
"type": "integer"
}
}
}
},
"branch_chosen": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"branch",
"default"
]
},
"branch": {
"type": "integer"
}
},
"required": [
"type"
]
},
"branchall": {
"type": "object",
"properties": {
"branch": {
"type": "integer"
},
"len": {
"type": "integer"
}
},
"required": [
"branch",
"len"
]
},
"approvers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"resume_id": {
"type": "integer"
},
"approver": {
"type": "string"
}
},
"required": [
"resume_id",
"approver"
]
}
},
"failed_retries": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"skipped": {
"type": "boolean"
},
"agent_actions": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"format": "uuid"
},
"function_name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"tool_call"
]
},
"module_id": {
"type": "string"
}
},
"required": [
"job_id",
"function_name",
"type",
"module_id"
]
},
{
"type": "object",
"properties": {
"call_id": {
"type": "string",
"format": "uuid"
},
"function_name": {
"type": "string"
},
"resource_path": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"mcp_tool_call"
]
},
"arguments": {
"type": "object"
}
},
"required": [
"call_id",
"function_name",
"resource_path",
"type"
]
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"web_search"
]
}
},
"required": [
"type"
]
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"message"
]
}
},
"required": [
"content",
"type"
]
}
]
}
},
"agent_actions_success": {
"type": "array",
"items": {
"type": "boolean"
}
}
},
"required": [
"type"
]
}
}
}
}