Execution
class resources.execution.Execution
Base class: Activity
An automation (flow, script, or connection) which is or was running.
See the corresponding Flow Api class at Execution
| Property | Description | Type | Import/Export | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| activity_type | Enum('EXECUTION', 'MESSAGE', 'PROCESS', name='activitytype') | neither | ||||||||||||||||
| break | A flag to control if the execution should pause on the next line. | Boolean() | neither | |||||||||||||||
| breakpoints | The breakpoints of the execution. | ARRAY(SmallInteger()) | import only | |||||||||||||||
| bundle_id | Reference to the bundle this record is associated with. Allowed for BUNDLE_REPOSITORY, CONNECTOR, CUSTOM_OBJECT, DASHBOARD, DEVOLUTIONS_CONFIG, EXECUTION, FILE, FLOW, LDAP_CONFIG, MCP_USER_TOOL, MESSAGE, OBJECT_TEMPLATE, PLUGIN, PYTHON_MODULE, ROLE, SCHEDULE, SCHEDULER, SCHEMA, SECRET, SETTING, SYNC_CONFIG, TAG, VAULT_CONFIG, WEBHOOK, WRAPPER. Not allowed for BUNDLE, ORGANIZATION, PROCESS, PROJECT, USER, WORKSPACE. Mutually exclusive with project_id | UUID(as_uuid=False) | both | |||||||||||||||
| bundle_name | The name of the bundle. Will look up the bundle and set bundle_id. | String(length=128) | import only | |||||||||||||||
| children | Subrecords to create in the SAME transaction as the record, as a mapping of {subrecord_type: [ {column: value, ...}, ... ]}. A generic, schema-derived create-with-children: a key is accepted iff it names a subrecord type whose parent is one of this record's ancestor tables — e.g. an object_template with object_template_attribute rows, a role with role_permission rows, or a flow with resource_wrapper rows. The parent foreign key (<parent>_id) is auto-wired to the new record; each child is validated by its own subrecord create-path. Passing children inline makes the record and its subrecords atomic (any child failure rolls the whole create/update back), replacing a create-then-add-N sequence with one round-trip. Exposed identically on REST create/update bodies and the GraphQL create_<type>/update_<type> mutation input (as an arbitrary-JSON scalar), and via MCP create_record/update_record, since it is a single schema-derived column with no per-surface code. Accepted on both create and update. Nesting to arbitrary depth IS supported: a child entry may itself carry a children key, validated recursively against THAT child subrecord type's own ancestor tables and created depth-first in the same transaction. (Under the current subrecord model the only externally-creatable chains happen to be one level deep — subrecords are not record-backed, so e.g. a record_metadata cannot be nested under an object_template_attribute — but the recursion is applied generically so any deeper externally-creatable chain works with no per-type code.) On read the children are exposed via their subrecord lists, not this field. | JSONEncodedData() | neither | |||||||||||||||
| comment_count | Denormalized count of record_comment rows attached to this record. Server-maintained on comment create/delete; read-only to clients. | Integer() | neither | |||||||||||||||
| commit_message | The commit message for this change. | Text() | import only | |||||||||||||||
| connector_dispatched_at | Set once, committed, immediately before a connector execution is handed to the connector thread. Because it is persisted it survives a hard process crash (e.g. an OOM SIGKILL that skips graceful shutdown), so after the resumer re-queues the still-AT_ENGINE execution into a fresh process the engine can tell "already dispatched once" apart from "never dispatched" and refuse to re-run a non-idempotent connector (at-most-once guard). See engine.run_execution_connection. Output only. | DateTime(timezone=True) | neither | |||||||||||||||
| connector_id | The ID of the connector record the execution is using. | UUID(as_uuid=False) | both | |||||||||||||||
| connector_name | The name of the connector. Only used for type CONNECTION | String(length=128) | neither | |||||||||||||||
| connector_type | The type of the connector / the type of the remote system. | Enum('AWS', 'AZURE', 'AZUREAI', 'CLAUDE', 'FTP', 'GIT', 'GOOGLE', 'HTTP', 'IMAP', 'JSONRPC', 'K8S', 'LDAP', 'MYSQL', 'OPENAI', 'OVH', 'PS', 'REDIS', 'REST', 'SCP', 'SFTP', 'SMB', 'SMTP', 'SOAP', 'SQLMSSQL', 'SQLORACLE', 'SQLPG', 'SSH', 'VAULT', 'WEBDAV', 'XMLRPC', name='connectortype') | both | |||||||||||||||
| created_at | DateTime(timezone=True) | export only | ||||||||||||||||
| created_by | UUID(as_uuid=False) | export only | ||||||||||||||||
| custom_object_id | If this execution was created by the on_create, on_update, or on_delete hook of an object template, this field contains the reference to the custom object. | UUID(as_uuid=False) | both | |||||||||||||||
| deleted_at | When the record was moved to the trashbin. Null while the record is active. | DateTime(timezone=True) | import only | |||||||||||||||
| deleted_by | UUID(as_uuid=False) | import only | ||||||||||||||||
| dependency_id | The ID of the dependency record the execution is currently waiting for. | UUID(as_uuid=False) | export only | |||||||||||||||
| description | A multiline description of what this record is and does. | Text() | both | |||||||||||||||
| end_status | Enum('WAITING_DEPENDENCY', 'WAITING_LOCK', 'WAITING_RECORD', 'WAITING_ENGINE', 'WAITING_RESPONSE', 'AT_ENGINE', 'ENDED_SUCCESS', 'ENDED_ERROR', 'ENDED_CANCELLED', 'PAUSED', 'SCHEDULED', name='executionstatus') | neither | ||||||||||||||||
| ended_at | The timestamp when the execution ended. | DateTime(timezone=True) | export only | |||||||||||||||
| expected_flow_version | Optimistic-concurrency guard for approve-then-run flow integrity (type FLOW). Pass the flow record_version token you last read (e.g. the version you reviewed); if the flow was modified since, execution creation is refused with HTTP 409 so a silent post-review edit cannot slip through. Ignored when an inline script is supplied (that path runs the snapshot travelling with the request, so concurrent edits are deliberately irrelevant). Omit to keep the existing no-guard behaviour. Input only. | Text() | neither | |||||||||||||||
| flow_id | The ID of the flow record the execution is processing. | UUID(as_uuid=False) | both | |||||||||||||||
| flow_name | The name of the flow. Only used for type FLOW | String(length=128) | neither | |||||||||||||||
| id | UUID(as_uuid=False) | neither | ||||||||||||||||
| identity_type | Enum('EXECUTION', 'LDAP_CONFIG', 'SCHEDULE', 'SYNC_CONFIG', 'USER', 'WEBHOOK', 'WORKSPACE', name='identitytype') | neither | ||||||||||||||||
| input_schema | The schema of the data the execution accepts in input_value. | JSONEncodedData() | both | |||||||||||||||
| input_value | The data which was passed to the execution. | JSONEncodedData() | both | |||||||||||||||
| input_value_size_bytes | The size of the input value in bytes. | BigInteger() | export only | |||||||||||||||
| is_bundle_readonly | Boolean() | neither | ||||||||||||||||
| is_deleted | Whether the record has been permanently deleted. Records in the trashbin are indicated by deleted_at instead. | Boolean() | export only | |||||||||||||||
| is_hidden | Boolean() | neither | ||||||||||||||||
| is_paused | A flag to control if the execution should be processed. | Boolean() | export only | |||||||||||||||
| is_productive | A flag to control if the execution runs in productive mode. | Boolean() | both | |||||||||||||||
| is_project_readonly | Boolean() | neither | ||||||||||||||||
| is_queued | If set, the execution is waiting to be processed. | Boolean() | export only | |||||||||||||||
| is_readonly | A flag to control if the record can be modified. Allowed for BUNDLE, BUNDLE_REPOSITORY, CONNECTOR, CUSTOM_OBJECT, DASHBOARD, DEVOLUTIONS_CONFIG, FILE, FLOW, MCP_USER_TOOL, OBJECT_TEMPLATE, PLUGIN, PROJECT, PYTHON_MODULE, ROLE, SCHEDULE, SCHEDULER, SCHEMA, SECRET, SETTING, SYNC_CONFIG, TAG, VAULT_CONFIG, WEBHOOK, WRAPPER. Not allowed for EXECUTION, LDAP_CONFIG, MESSAGE, ORGANIZATION, PROCESS, USER, WORKSPACE | Boolean() | both | |||||||||||||||
| is_remote_processed | A flag to control if the execution is processed in a remote workspace. | Boolean() | export only | |||||||||||||||
| last_activity | The last time the identity was active in Cloudomation. Output only. | DateTime(timezone=True) | neither | |||||||||||||||
| last_command | The flow_api command which is currently executed. | String(length=128) | export only | |||||||||||||||
| last_sync | Timestamp of when the execution was last synced with a workspace sync_config. | DateTime(timezone=True) | export only | |||||||||||||||
| lineno | The line number of the script which is currently executed. | SmallInteger() | export only | |||||||||||||||
| location_inheritance | Controls the project/bundle association of a newly created record when no project_id/project_name/bundle_id/bundle_name is specified in the create request. Depending on the record type different options are available:
| String(length=128) | import only | |||||||||||||||
| lock_priority | Optional acquire priority for a setting lock (operator-task-extend-lock-functionality, Phase 2). Stamped from the acquire() priority argument when the execution starts waiting; Engine.wait_lock grants a freed lock to the highest-priority waiter, tie-broken by lock_wait_seq (best-effort FIFO). Higher value = acquired first. NULL sorts lowest (default), so a lock with no priorities reduces exactly to best-effort FIFO. NULL when not waiting on a lock or acquired without a priority. | Integer() | neither | |||||||||||||||
| lock_wait_seq | Monotonic arrival counter (nextval of the lock_wait_seq sequence) stamped when the execution starts waiting to acquire a setting lock; Engine.wait_lock grants a freed lock to the smallest-seq waiter for best-effort FIFO fairness. NULL when not waiting on a lock. | BigInteger() | neither | |||||||||||||||
| max_runtime_minutes | The maximum runtime of the execution in minutes. If set to 0, there is no limit. | Integer() | both | |||||||||||||||
| mcp_user_tool_id | The associated MCP user tool for this execution | UUID(as_uuid=False) | both | |||||||||||||||
| message | A status message. | Text() | export only | |||||||||||||||
| message_id | The ID of the message record the execution is currently awaiting a response from. | UUID(as_uuid=False) | export only | |||||||||||||||
| modified_at | DateTime(timezone=True) | neither | ||||||||||||||||
| modified_by | UUID(as_uuid=False) | neither | ||||||||||||||||
| name | The name of this record. Must be unique across a workspace. | String(length=255) | both | |||||||||||||||
| operation_id | UUID(as_uuid=False) | neither | ||||||||||||||||
| organization_id | UUID(as_uuid=False) | export only | ||||||||||||||||
| origin_flow_id | The id of the nearest ancestor flow that spawned this execution (the "calling flow"). Resolved once at creation from the parent execution's flow_id/origin_flow_id, so it is O(1). Used to correlate runtime statistics to the call site. NULL for top-level executions. | UUID(as_uuid=False) | export only | |||||||||||||||
| origin_lineno | The source line in the calling flow at which the call chain that spawned this execution started (the this.connect/flow/script/child call site). Resolved O(1) at creation together with origin_flow_id: the parent lineno when the parent is a real flow, else the inherited origin_lineno of the parent so wrappers/scripts stay transparent to runtime-stats correlation. NULL for top-level executions. | SmallInteger() | export only | |||||||||||||||
| orphan | If set, the child execution will be disconnected from the execution tree | Boolean() | neither | |||||||||||||||
| output_schema | The schema of the data the execution produces in output_value. | JSONEncodedData() | both | |||||||||||||||
| output_value | The data returned by the execution | JSONEncodedData() | export only | |||||||||||||||
| output_value_size_bytes | The size of the output value in bytes. | BigInteger() | export only | |||||||||||||||
| parent_execution_id | The ID of the execution which created this execution. | UUID(as_uuid=False) | export only | |||||||||||||||
| pending_delete_commit | Boolean() | neither | ||||||||||||||||
| pending_delete_identity_id | UUID(as_uuid=False) | neither | ||||||||||||||||
| pending_operation_id | UUID(as_uuid=False) | neither | ||||||||||||||||
| pending_restore_commit | Boolean() | neither | ||||||||||||||||
| pending_restore_identity_id | UUID(as_uuid=False) | neither | ||||||||||||||||
| pending_trash_commit | Boolean() | neither | ||||||||||||||||
| pending_trash_identity_id | UUID(as_uuid=False) | neither | ||||||||||||||||
| plugin_action_id | Reference to the plugin_action this execution was started by. | UUID(as_uuid=False) | both | |||||||||||||||
| priority | The priority of the execution. Higher priority executions will be processed first. Executions with the same priority are processed in the order they were created. | SmallInteger() | both | |||||||||||||||
| process_id | UUID(as_uuid=False) | export only | ||||||||||||||||
| project_id | Reference to the project this record is associated with. Allowed for CONNECTOR, CUSTOM_OBJECT, DASHBOARD, DEVOLUTIONS_CONFIG, EXECUTION, FILE, FLOW, MCP_USER_TOOL, MESSAGE, OBJECT_TEMPLATE, PLUGIN, PYTHON_MODULE, SCHEDULE, SCHEDULER, SCHEMA, SECRET, SETTING, SYNC_CONFIG, TAG, VAULT_CONFIG, WEBHOOK, WRAPPER. Not allowed for BUNDLE, BUNDLE_REPOSITORY, LDAP_CONFIG, ORGANIZATION, PROCESS, PROJECT, ROLE, USER, WORKSPACE. Mutually exclusive with bundle_id. | UUID(as_uuid=False) | both | |||||||||||||||
| project_name | The name of the project. Will look up the project and set project_id. | String(length=128) | import only | |||||||||||||||
| provisioning_type | If this execution was created by the on_create, on_update, or on_delete hook of an object template. | String(length=128) | export only | |||||||||||||||
| record_metadata | Record metadata to attach in the SAME transaction as the record create/update, as a mapping of {key: data} (key: string up to 128 chars, data: arbitrary JSON). Each entry is written as a record_metadata subrecord, upserted by (record_id, key). This removes the create-then-add race: without it a flow/API must first create the record and then add its metadata in a second call, leaving a window where the record exists un-marked (and may already be committed to git before the marker lands). Passing record_metadata inline makes the record and its metadata atomic. Accepted (and applied) on both create and update. On read the metadata is exposed via the record_metadata subrecord list, not this field. | JSONEncodedData() | neither | |||||||||||||||
| record_type | Enum('EXECUTION', 'MESSAGE', 'PROCESS', 'BUNDLE', 'BUNDLE_REPOSITORY', 'CONNECTOR', 'CUSTOM_OBJECT', 'DASHBOARD', 'DEVOLUTIONS_CONFIG', 'FILE', 'FLOW', 'LDAP_CONFIG', 'MCP_USER_TOOL', 'OBJECT_TEMPLATE', 'ORGANIZATION', 'PLUGIN', 'PROJECT', 'PYTHON_MODULE', 'ROLE', 'SCHEDULE', 'SCHEDULER', 'SCHEMA', 'SECRET', 'SETTING', 'SYNC_CONFIG', 'TAG', 'USER', 'VAULT_CONFIG', 'WEBHOOK', 'WORKSPACE', 'WRAPPER', name='recordtype') | neither | ||||||||||||||||
| record_version | Optimistic-concurrency version token. Read-only, computed on read from modified_at at full (microsecond) precision (request it by name; not in the default summary). Pass the value you last read back as expected_version on update to guard against lost updates: if the record changed meanwhile the write is rejected with HTTP 409 (StaleWrite) carrying the current record and token. Not stored; not exported. | Text() | neither | |||||||||||||||
| recurse_pending_delete | Boolean() | neither | ||||||||||||||||
| recurse_pending_restore | Boolean() | neither | ||||||||||||||||
| recurse_pending_trash | Boolean() | neither | ||||||||||||||||
| remote_workspace_name | The name of the workspace where this execution is remotely running | String(length=128) | neither | |||||||||||||||
| repository_path | The path to the storing repository, relative to GIT_REPOSITORY_SAVE_PATH | String(length=256) | neither | |||||||||||||||
| resolved_icon | The record's resolved display icon: the concrete subtype's own icon column (dashboard/project/bundle/object_template/workspace/user/plugin_action) when set, otherwise a per-record-type default glyph (a curated mdi:<key> reference) owned by the backend, so every consumer -- REST/MCP/agents, not only the Console -- gets a sensible icon for an iconless record. NULL only for record types that have no default. Read-only, computed on read (request it by name; not in the default summary); not stored, not exported. Lets the polymorphic base record expose a per-record icon (sidebar quick-access, quick-search, generic record lists) without shadowing the subtype icon columns. Named resolved_icon, not icon, for the same reason record_version is not version: a base virtual column named icon would override the subtype icon columns in their own all_columns (ancestors overwrite descendants), turning them read-only and non-exporting. | Text() | neither | |||||||||||||||
| roles | The roles this identity has. | JSONEncodedData() | import only | |||||||||||||||
| runtime_key | Optional caller-supplied runtime-statistics bucket key (e.g. this.flow(..., runtime_key="markdown_summary")). Groups this execution's runtime samples in a GLOBAL namespace shared across every flow that passes the same key, so a reusable flow called the same way from many call sites aggregates into one clean estimate. Overrides the automatic parent-flow/call-site tiers when its bucket is hot. Inherited transparently through wrapper/script parents; not inherited across a real-flow boundary. NULL means the automatic tiers apply (default). | String(length=256) | export only | |||||||||||||||
| savepoint_retention | Controls which savepoints are retained during execution (e.g. LAST, ALL) | Enum('ALL', 'LAST', name='savepointretention') | both | |||||||||||||||
| schedule_id | The associated schedule for this execution | UUID(as_uuid=False) | both | |||||||||||||||
| schedule_name | The name of the schedule. Only used for type SCHEDULE | String(length=128) | neither | |||||||||||||||
| scheduled_for | The timestamp when the execution will continue. This field is also used for timeouts. | DateTime(timezone=True) | export only | |||||||||||||||
| schema_version | String(length=128) | both | ||||||||||||||||
| script | The script the execution is processing. | Text() | both | |||||||||||||||
| secret_outputs | An optional list of secret_outputs selector paths (see common.secret_paths) into this execution's output_value. At output finalization the engine wraps the selected leaf(s) into a Secret so they are masked everywhere the output is serialized (logs, output_value column, live view, records, git-sync). Set at child creation via connect()/script()/flow().run() secret_outputs=; NULL means no output masking. | JSONEncodedData() | both | |||||||||||||||
| setting_id | The ID of the setting record the execution is currently trying to acquire a lock from. | UUID(as_uuid=False) | export only | |||||||||||||||
| started_at | The timestamp when the execution started. | DateTime(timezone=True) | export only | |||||||||||||||
| status | The status of the execution. Output only. | Enum('WAITING_DEPENDENCY', 'WAITING_LOCK', 'WAITING_RECORD', 'WAITING_ENGINE', 'WAITING_RESPONSE', 'AT_ENGINE', 'ENDED_SUCCESS', 'ENDED_ERROR', 'ENDED_CANCELLED', 'PAUSED', 'SCHEDULED', name='executionstatus') | export only | |||||||||||||||
| sync_config_id | The ID of the workspace sync_config the execution is associated with. | UUID(as_uuid=False) | both | |||||||||||||||
| top_execution_id | The ID of the top-most execution which created this execution. | UUID(as_uuid=False) | export only | |||||||||||||||
| track_in_git | Should new records automatically be tracked in git. | Boolean() | both | |||||||||||||||
| type | The type of the execution. | Enum('FLOW', 'SCRIPT', 'CONNECTION', 'SCHEDULE', 'WRAPPER', name='executiontype') | both | |||||||||||||||
| unwrapped | If set, static wrappers which are registered on the flow are not used. Dynamically added wrappers and wrappers which are explicitly added using the wrappers field are still used. | Boolean() | neither | |||||||||||||||
| use_breakpoints | A flag to control if the execution will stop at breakpoints. | Boolean() | both | |||||||||||||||
| use_only_explicit_breakpoints | Should only explicitly defined breakpoints be used, this disables the step-through feature. | Boolean() | both | |||||||||||||||
| wait_record_id | The ID of the record the execution is waiting for a trash, restore, or delete operation to complete. | UUID(as_uuid=False) | neither | |||||||||||||||
| wait_record_notify | The notify channel prefix (record_deleted, record_restored, or record_trashed) for wait_record_id. | Text() | neither | |||||||||||||||
| webhook_id | The associated webhook for this execution | UUID(as_uuid=False) | both | |||||||||||||||
| workspace_id | UUID(as_uuid=False) | export only | ||||||||||||||||
| wrapper_id | The ID of the wrapper record the execution is processing. | UUID(as_uuid=False) | both | |||||||||||||||
| wrapper_name | The name of the wrapper. Only used for type WRAPPER | String(length=128) | neither | |||||||||||||||
| wrappers | A list of dynamic wrappers to apply around the execution. Provide a list of objects in the form [{"wrapper_id": ..., "params": {...}}]. | JSONEncodedData() | neither |