39172 lines
1.0 MiB
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"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
} |