API reference

Every operation of the Nistor backend's HTTP API, by tag, generated from its OpenAPI document.

This page is generated from the backend's OpenAPI document (3.1.0): 843 operations of the open-source backend with every open-source tool installed. The document itself is docs/reference/openapi.json in the repository, and every release attaches it as openapi.json: load it in an OpenAPI viewer or a client generator.

The document declares no security scheme, so no operation lists one: requests authenticate through the deployment's identity front, as the operator guide's identity and access page describes.

Health#

Liveness, readiness, and database health probes.

Method Path Operation Summary Request Response
GET /api/v1/health health_check_api_v1_health_get Health check — 200: any
GET /api/v1/health/ health_check_api_v1_health__get Health check — 200: any
GET /api/v1/health/db health_check_db_api_v1_health_db_get Check database health — 200: any
POST /api/v1/health/db/create-tables create_database_tables_api_v1_health_db_create_tables_post Create database tables — 200: any
GET /api/v1/health/db/replica health_check_db_replica_api_v1_health_db_replica_get Check read replica health — 200: any
GET /api/v1/health/db/tables health_check_db_tables_api_v1_health_db_tables_get List database tables — 200: any
GET /api/v1/health/ready readiness_check_api_v1_health_ready_get Readiness check — 200: any
GET /api/v1/health/schema schema_revisions_api_v1_health_schema_get Database schema revisions, read live — 200: any
GET /api/v1/health/version backend_version_api_v1_health_version_get Running backend version — 200: any
GET /api/v1/installed api_installed_api_v1_installed_get What this image installs and activates — 200: any
GET /health/installed health_installed_health_installed_get Installed tools, their versions and core-API status (root) — 200: any
GET /health/installed/status health_installed_status_health_installed_status_get Whether the image is installed as its lock says (status only) — 200: any
GET /health/live health_live_health_live_get Liveness check (root, phase 2 boot test alias) — 200: any
GET /health/ready health_ready_health_ready_get Readiness check (root, phase 2 boot test alias) — 200: any

System Health#

Per-component uptime dashboard (live status, historical uptime %).

Method Path Operation Summary Request Response
GET /api/v1/system/health/history history_api_v1_system_health_history_get Bucketed time-series for one component — 200: any
GET /api/v1/system/health/idempotency idempotency_health_api_v1_system_health_idempotency_get Idempotency middleware fail-open counters — 200: any
GET /api/v1/system/health/latest latest_api_v1_system_health_latest_get Latest persisted sample per component — 200: any
GET /api/v1/system/health/live live_status_api_v1_system_health_live_get Live status of every monitored component — 200: any
GET /api/v1/system/health/overview overview_api_v1_system_health_overview_get Compact platform health verdict (agents, assistant) — 200: any
POST /api/v1/system/health/prune prune_samples_api_v1_system_health_prune_post Delete stale samples for selected components (admin) PruneBody 200: any
POST /api/v1/system/health/sample trigger_sample_api_v1_system_health_sample_post Sampler trigger (cron / admin) — 200: any
GET /api/v1/system/health/slo slo_window_api_v1_system_health_slo_get Synthetic-probe SLO compliance over a window — 200: any
GET /api/v1/system/health/summary summary_api_v1_system_health_summary_get Aggregated uptime over a period — 200: any
POST /api/v1/system/health/synthetic-sample trigger_synthetic_sample_api_v1_system_health_synthetic_sample_post Synthetic canary sampler trigger (cron / admin) — 200: any
GET /api/v1/system/health/ui-stream ui_stream_api_v1_system_health_ui_stream_get SSE stream of live status for the UI banner — 200: any

Configuration#

Application configuration and feature flags.

Method Path Operation Summary Request Response
GET /api/v1/action-definitions get_action_definitions_api_v1_action_definitions_get Get action definitions from plugins — 200: any
GET /api/v1/executor-types get_executor_types_api_v1_executor_types_get List registered executor types — 200: any
GET /api/v1/node-display-config get_node_display_config_api_v1_node_display_config_get Get node type display config — 200: any
GET /api/v1/parameter-schemas get_parameter_schemas_api_v1_parameter_schemas_get Get parameter schemas from plugins — 200: any

IAM#

Identity & Access Management — users, roles, and permissions.

Method Path Operation Summary Request Response
GET /api/v1/iam/access-reference get_access_reference_api_v1_iam_access_reference_get Permission catalog, role presets, and the caller's own access — 200: AccessReferenceResponse
GET /api/v1/iam/me get_current_user_info_api_v1_iam_me_get Get current user info — 200: CurrentUserResponse
GET /api/v1/iam/permissions list_permissions_api_v1_iam_permissions_get List all permissions — 200: array of PermissionResponse
GET /api/v1/iam/role-templates list_role_templates_api_v1_iam_role_templates_get List IAM role templates (permission presets) — 200: array of RoleTemplateResponse
POST /api/v1/iam/role-templates create_role_template_api_v1_iam_role_templates_post Create a permission preset RoleTemplateCreate 201: RoleTemplateResponse
DELETE /api/v1/iam/role-templates/{template_id} delete_role_template_api_v1_iam_role_templates__template_id__delete Delete a permission preset — 204
PATCH /api/v1/iam/role-templates/{template_id} update_role_template_api_v1_iam_role_templates__template_id__patch Update a permission preset RoleTemplateUpdate 200: RoleTemplateResponse
GET /api/v1/iam/users list_users_api_v1_iam_users_get List all users — 200: array of UserResponse
POST /api/v1/iam/users create_user_api_v1_iam_users_post Create user UserCreate 201: UserResponse
GET /api/v1/iam/users/search search_users_api_v1_iam_users_search_get Search users for @mention autocomplete — 200: any
DELETE /api/v1/iam/users/{email} delete_user_api_v1_iam_users__email__delete Delete user — 204
PATCH /api/v1/iam/users/{email} update_user_api_v1_iam_users__email__patch Update user details UserUpdate 200: UserResponse
POST /api/v1/iam/users/{email}/apply-template/{template_id} apply_role_template_api_v1_iam_users__email__apply_template__template_id__post Apply a role template to a user (replaces permissions) — 200: UserResponse
PUT /api/v1/iam/users/{email}/permissions update_user_permissions_api_v1_iam_users__email__permissions_put Update user permissions UserPermissionsUpdate 200: UserResponse

Audit Log#

Immutable audit trail of sensitive operations.

Method Path Operation Summary Request Response
GET /api/v1/audit-log/ get_audit_logs_api_v1_audit_log__get List audit log entries — 200: array of AuditLogResponse
GET /api/v1/audit-log/integrity verify_audit_log_integrity_api_v1_audit_log_integrity_get Verify audit-log tamper-evidence hash chain — 200: AuditChainIntegrityResponse

Page Views#

Page visit tracking for usage analytics.

Method Path Operation Summary Request Response
POST /api/v1/page-views/ create_page_view_api_v1_page_views__post Record a page view event PageViewCreate 202: any
POST /api/v1/page-views/recompute-popularity recompute_popularity_api_v1_page_views_recompute_popularity_post Recompute node popularity scores — 200: any
GET /api/v1/page-views/stats get_page_view_stats_api_v1_page_views_stats_get Get page view statistics — 200: PageViewStatsResponse
GET /api/v1/page-views/stats/user/{user_email} get_user_detail_stats_api_v1_page_views_stats_user__user_email__get Get user activity detail — 200: UserDetailResponse
GET /api/v1/page-views/stats/user/{user_email}/full get_user_detail_full_api_v1_page_views_stats_user__user_email__full_get Get full user activity detail — 200: UserDetailFullResponse

Feedback#

User feedback submission.

Method Path Operation Summary Request Response
GET /api/v1/feedback/ list_feedback_api_v1_feedback__get List all feedback — 200: array of FeedbackResponse
POST /api/v1/feedback/ submit_feedback_api_v1_feedback__post Submit feedback FeedbackCreate 201: FeedbackResponse
GET /api/v1/feedback/count get_feedback_count_api_v1_feedback_count_get Get feedback count — 200: any
GET /api/v1/feedback/{feedback_id} get_feedback_api_v1_feedback__feedback_id__get Get feedback by ID — 200: FeedbackResponse
DELETE /api/v1/feedback/{feedback_id} delete_feedback_api_v1_feedback__feedback_id__delete Delete feedback — 204
GET /api/v1/feedback/{feedback_id}/comments list_comments_api_v1_feedback__feedback_id__comments_get List comments for feedback — 200: array of FeedbackCommentResponse
POST /api/v1/feedback/{feedback_id}/comments add_comment_api_v1_feedback__feedback_id__comments_post Add comment to feedback FeedbackCommentCreate 201: FeedbackCommentResponse
DELETE /api/v1/feedback/{feedback_id}/comments/{comment_id} delete_comment_api_v1_feedback__feedback_id__comments__comment_id__delete Delete feedback comment — 204
PATCH /api/v1/feedback/{feedback_id}/status update_feedback_status_api_v1_feedback__feedback_id__status_patch Update feedback status FeedbackStatusUpdate 200: FeedbackResponse

Presence#

Real-time 'currently viewing' presence on resource pages.

Method Path Operation Summary Request Response
POST /api/v1/presence/heartbeat heartbeat_api_v1_presence_heartbeat_post Register the caller as viewing a resource and list other viewers PresenceHeartbeatRequest 200: PresenceHeartbeatResponse
POST /api/v1/presence/leave leave_api_v1_presence_leave_post Remove the caller's presence on a resource PresenceLeaveRequest 204

Agent Governance#

Govern / observe / audit the Nistor MCP/Agent API: register & revoke agents, edit per-agent policy & budgets, and review which agents called which tools, what they touched, and what policy decision applied.

Method Path Operation Summary Request Response
GET /api/v1/agent-governance/agents list_agents_api_v1_agent_governance_agents_get List registered agents (filter by enabled / owner) — 200: array of AgentRegistrationOut
POST /api/v1/agent-governance/agents register_agent_api_v1_agent_governance_agents_post Register a new MCP/Agent-API agent (returns the raw token once) AgentRegistrationCreate 201: AgentRegistrationCreated
GET /api/v1/agent-governance/agents/{agent_id} get_agent_api_v1_agent_governance_agents__agent_id__get Agent registration detail (incl. effective policy) — 200: AgentRegistrationOut
PATCH /api/v1/agent-governance/agents/{agent_id} update_agent_api_v1_agent_governance_agents__agent_id__patch Update an agent's name/description/policy/budget/enabled AgentRegistrationUpdate 200: AgentRegistrationOut
POST /api/v1/agent-governance/agents/{agent_id}/revoke revoke_agent_api_v1_agent_governance_agents__agent_id__revoke_post Revoke + disable an agent (token rejected on verify) — 200: AgentRegistrationOut
POST /api/v1/agent-governance/agents/{agent_id}/rotate-token rotate_agent_token_api_v1_agent_governance_agents__agent_id__rotate_token_post Rotate an agent's token (new jti+token, returned once) — 200: AgentRegistrationCreated
GET /api/v1/agent-governance/connection-info get_connection_info_api_v1_agent_governance_connection_info_get Hosted MCP gateway URL + environment for the connect-a-client flow — 200: ConnectionInfoOut

Reversible Operations#

Universal, time-boxed, audited undo for destructive data-platform operations: list/restore recorded operations and the two-person approval gate.

Method Path Operation Summary Request Response
GET /api/v1/operation-approvals/ list_approvals_api_v1_operation_approvals__get List approval requests — 200: array of OperationApprovalRead
POST /api/v1/operation-approvals/ request_approval_api_v1_operation_approvals__post Request a two-person approval for a destructive op OperationApprovalRequest 201: OperationApprovalRead
POST /api/v1/operation-approvals/{approval_id}/approve approve_approval_api_v1_operation_approvals__approval_id__approve_post Approve a pending request (approver must differ from requester) OperationApprovalApprove or null 200: OperationApprovalRead
GET /api/v1/reversible-operations/ list_operations_api_v1_reversible_operations__get List reversible operations — 200: array of ReversibleOperationRead
GET /api/v1/reversible-operations/{op_id} get_operation_api_v1_reversible_operations__op_id__get Get a reversible operation — 200: ReversibleOperationRead
POST /api/v1/reversible-operations/{op_id}/restore restore_operation_api_v1_reversible_operations__op_id__restore_post Restore (undo) a reversible operation — 200: RestoreResponse

Rules Scheduling#

CRUD for scheduling rules (triggers, conditions, actions).

Method Path Operation Summary Request Response
GET /api/v1/rules_scheduling/ get_rules_api_v1_rules_scheduling__get List rule scheduling configurations — 200: array of RuleSchedulingOut
POST /api/v1/rules_scheduling/ create_rule_api_v1_rules_scheduling__post Create rule RuleSchedulingCreate 201: RuleSchedulingResponse
POST /api/v1/rules_scheduling/blast_radius blast_radius_endpoint_api_v1_rules_scheduling_blast_radius_post Resolve an unsaved rule against the node graph, with per-node contest verdicts BlastRadiusRequest 200: BlastRadiusResponse
GET /api/v1/rules_scheduling/competing-refresh list_competing_refresh_api_v1_rules_scheduling_competing_refresh_get List cubes with competing/redundant refresh mechanisms — 200: any
GET /api/v1/rules_scheduling/executor-types get_executor_types_api_v1_rules_scheduling_executor_types_get List executor types — 200: any
GET /api/v1/rules_scheduling/executor-types/{executor_type} get_executor_type_by_id_api_v1_rules_scheduling_executor_types__executor_type__get Get executor type by ID — 200: any
GET /api/v1/rules_scheduling/match-decisions list_pending_match_decisions_api_v1_rules_scheduling_match_decisions_get Pending matches of gated rules, grouped by rule (oldest first) — 200: array of PendingRuleGroup
GET /api/v1/rules_scheduling/node-counts/batch get_node_counts_batch_api_v1_rules_scheduling_node_counts_batch_get Get batch node counts — 200: any
POST /api/v1/rules_scheduling/node-counts/batch get_node_counts_batch_post_api_v1_rules_scheduling_node_counts_batch_post Get batch node counts (body) NodeCountsBatchRequest 200: any
GET /api/v1/rules_scheduling/node/active_rule/{node_id} get_active_rule_for_node_api_v1_rules_scheduling_node_active_rule__node_id__get Get active rule for node — 200: RuleSchedulingResponse or null
GET /api/v1/rules_scheduling/node/active_rules/{node_id} get_active_rules_for_node_api_v1_rules_scheduling_node_active_rules__node_id__get List active rules for node — 200: array of RuleSchedulingResponse
GET /api/v1/rules_scheduling/node/{node_id} get_rules_for_node_api_v1_rules_scheduling_node__node_id__get List rules matching node — 200: array of RuleSchedulingResponse
GET /api/v1/rules_scheduling/node/{node_id}/rule/{rule_id}/barrier-state get_rule_barrier_state_api_v1_rules_scheduling_node__node_id__rule__rule_id__barrier_state_get Get live wait_for_all_ancestors barrier state (read-only) — 200: BarrierStateSummary
GET /api/v1/rules_scheduling/node/{node_id}/scheduler-summary get_node_scheduler_summary_api_v1_rules_scheduling_node__node_id__scheduler_summary_get Get node scheduler summary — 200: any
POST /api/v1/rules_scheduling/ownership/backfill backfill_ownership_api_v1_rules_scheduling_ownership_backfill_post Stamp Unassigned rules with the unique team of their targets (admin) — 200: object of integer
GET /api/v1/rules_scheduling/platform get_platform_rules_api_v1_rules_scheduling_platform_get List platform-job rules (admin) — 200: array of RuleSchedulingResponse
POST /api/v1/rules_scheduling/preflight run_batch_preflight_api_v1_rules_scheduling_preflight_post Run the permission preflight for a batch of rules object 200: any
POST /api/v1/rules_scheduling/preview_next_fires preview_next_fires_api_v1_rules_scheduling_preview_next_fires_post Preview the next N cron fires for a trigger (business-calendar aware) object 200: any
GET /api/v1/rules_scheduling/rules/{rule_id} get_nodes_for_rule_api_v1_rules_scheduling_rules__rule_id__get List nodes for rule — 200: array of Node
GET /api/v1/rules_scheduling/rules/{rule_id}/match-decisions list_rule_match_decisions_api_v1_rules_scheduling_rules__rule_id__match_decisions_get List a gated rule's match decisions — 200: array of MatchDecisionRead
POST /api/v1/rules_scheduling/rules/{rule_id}/match-decisions decide_rule_match_api_v1_rules_scheduling_rules__rule_id__match_decisions_post Approve or reject nodes matching a gated rule MatchDecisionWrite 200: MatchDecisionResult
POST /api/v1/rules_scheduling/simulate_past_fires simulate_past_fires_endpoint_api_v1_rules_scheduling_simulate_past_fires_post Replay a rule over a historical window and return when it would have fired SimulatePastFiresRequest 200: SimulatePastFiresResponse
POST /api/v1/rules_scheduling/validate validate_rules_batch_api_v1_rules_scheduling_validate_post Validate a batch of rules without persisting RuleBatchValidateRequest 200: RuleBatchValidateResponse
GET /api/v1/rules_scheduling/{rule_id} get_rule_api_v1_rules_scheduling__rule_id__get Get rule by ID — 200: RuleSchedulingOut
PUT /api/v1/rules_scheduling/{rule_id} update_rule_api_v1_rules_scheduling__rule_id__put Update rule RuleSchedulingUpdate 200: RuleSchedulingResponse
DELETE /api/v1/rules_scheduling/{rule_id} delete_rule_api_v1_rules_scheduling__rule_id__delete Delete rule — 200: any
GET /api/v1/rules_scheduling/{rule_id}/analytics get_rule_analytics_api_v1_rules_scheduling__rule_id__analytics_get Get rule analytics — 200: RuleAnalyticsSummary
GET /api/v1/rules_scheduling/{rule_id}/cost_by_node get_rule_cost_by_node_api_v1_rules_scheduling__rule_id__cost_by_node_get Per-impacted-node cost breakdown for a rule — 200: any
PUT /api/v1/rules_scheduling/{rule_id}/git-authorship update_rule_git_authorship_api_v1_rules_scheduling__rule_id__git_authorship_put Update git authorship (metadata-only, no version bump) RuleGitAuthorshipUpdate 200: RuleSchedulingResponse
GET /api/v1/rules_scheduling/{rule_id}/history get_rule_history_api_v1_rules_scheduling__rule_id__history_get Get rule version history — 200: array of RuleSchedulingHistoryResponse
GET /api/v1/rules_scheduling/{rule_id}/history/{version} get_rule_version_detail_api_v1_rules_scheduling__rule_id__history__version__get Get rule version detail — 200: RuleSchedulingHistoryResponse
GET /api/v1/rules_scheduling/{rule_id}/permissions get_rule_permissions_api_v1_rules_scheduling__rule_id__permissions_get Permission preflight findings for a rule — 200: any
POST /api/v1/rules_scheduling/{rule_id}/preflight run_rule_preflight_api_v1_rules_scheduling__rule_id__preflight_post Run the permission preflight for a rule now — 200: any
POST /api/v1/rules_scheduling/{rule_id}/rollback/{version} rollback_rule_api_v1_rules_scheduling__rule_id__rollback__version__post Rollback rule to a previous version — 200: RuleSchedulingResponse
POST /api/v1/rules_scheduling/{rule_id}/unlock unlock_rule_api_v1_rules_scheduling__rule_id__unlock_post Unlock code-managed rule — 200: RuleSchedulingResponse

Action Runs#

Execution records for triggered actions (Dataform, MicroStrategy, etc.).

Method Path Operation Summary Request Response
GET /api/v1/action_runs/ read_action_runs_api_v1_action_runs__get List action runs — 200: array of object
POST /api/v1/action_runs/ create_action_run_api_v1_action_runs__post Create action run ActionRunCreate 201: ActionRun
GET /api/v1/action_runs/action/{action} read_action_runs_by_action_api_v1_action_runs_action__action__get List runs by action name — 200: array of object
GET /api/v1/action_runs/aggregated/timeframe read_action_runs_sum_grouped_by_timeframe_api_v1_action_runs_aggregated_timeframe_get Get runs grouped by timeframe — 200: array of TimeframeStateCount
POST /api/v1/action_runs/bigquery-copy/check-permissions check_bigquery_copy_permissions_api_v1_action_runs_bigquery_copy_check_permissions_post Check BigQuery copy permissions object 200: any
POST /api/v1/action_runs/bigquery-copy/preview preview_bigquery_copy_api_v1_action_runs_bigquery_copy_preview_post Preview BigQuery copy operation object 200: any
POST /api/v1/action_runs/bigquery-export-gcs/estimate-cost estimate_export_cost_api_v1_action_runs_bigquery_export_gcs_estimate_cost_post Estimate cost for BigQuery export to GCS object 200: any
POST /api/v1/action_runs/bulk-replay bulk_replay_action_runs_api_v1_action_runs_bulk_replay_post Relaunch a batch of action runs, throttled BulkReplayRequest 202: BulkReplayResponse
POST /api/v1/action_runs/close_stranded_retries close_stranded_retry_runs_api_v1_action_runs_close_stranded_retries_post Close to_retry runs whose retry can no longer happen — 200: object
GET /api/v1/action_runs/counts/batch get_action_run_counts_batch_api_v1_action_runs_counts_batch_get Get batch action run counts — 200: object of object
POST /api/v1/action_runs/counts/batch get_action_run_counts_batch_post_api_v1_action_runs_counts_batch_post Get batch action run counts (body) ActionRunCountsBatchRequest 200: object of object
POST /api/v1/action_runs/dataform/check-permissions check_dataform_permissions_api_v1_action_runs_dataform_check_permissions_post Check Dataform write permissions object 200: any
GET /api/v1/action_runs/dataform/{action_run_id}/cost get_dataform_run_cost_api_v1_action_runs_dataform__action_run_id__cost_get Get Dataform run cost — 200: object
POST /api/v1/action_runs/dispatch begin_action_run_dispatch_api_v1_action_runs_dispatch_post Record a run before its launch (idempotent on idempotency_key) ActionRunDispatchRequest 200: ActionRunDispatchResponse
GET /api/v1/action_runs/dispatch/by-key/{idempotency_key} read_action_run_by_dispatch_key_api_v1_action_runs_dispatch_by_key__idempotency_key__get The run recorded under a dispatch key, read from the primary ([] when there is none) — 200: array of object
POST /api/v1/action_runs/dispatching/claim-stale claim_stale_action_run_dispatches_api_v1_action_runs_dispatching_claim_stale_post Lease dispatching runs whose lease lapsed (the scheduler's reclaimer) StaleDispatchClaimRequest 200: array of ActionRun
POST /api/v1/action_runs/dispatching/shorten-leases shorten_action_run_dispatch_leases_api_v1_action_runs_dispatching_shorten_leases_post Bring a draining instance's dispatch leases down to now + grace DispatchOwnersRequest 200: object of integer
GET /api/v1/action_runs/failed/ read_failed_action_runs_api_v1_action_runs_failed__get List failed action runs — 200: array of object
GET /api/v1/action_runs/filter/state-and-nodes read_action_runs_by_state_and_triggered_nodes_api_v1_action_runs_filter_state_and_nodes_get Filter runs by state and nodes — 200: array of object
POST /api/v1/action_runs/manual-node-run trigger_manual_node_run_api_v1_action_runs_manual_node_run_post Trigger manual node run object 200: any
POST /api/v1/action_runs/manual-rule-run trigger_manual_rule_run_api_v1_action_runs_manual_rule_run_post Manually run a scheduling rule's action (single or chain) ManualRuleRunRequest 200: ManualRuleRunResponse
POST /api/v1/action_runs/microstrategy/cancel-jobs cancel_microstrategy_jobs_api_v1_action_runs_microstrategy_cancel_jobs_post Cancel running MicroStrategy jobs (bypass cube lock) CancelMicrostrategyJobsRequest 200: any
GET /api/v1/action_runs/node/{node_id} read_action_runs_by_triggered_node_api_v1_action_runs_node__node_id__get List runs by triggered node — 200: array of object
GET /api/v1/action_runs/node/{node_id}/cost_usd/period/{period} get_node_cost_for_period_by_trigger_api_v1_action_runs_node__node_id__cost_usd_period__period__get Get rule-scoped cost (USD) of action runs for a trigger node over a period — 200: object
GET /api/v1/action_runs/node/{node_id}/run_count/period/{period} get_node_run_count_for_period_api_v1_action_runs_node__node_id__run_count_period__period__get Get rule-scoped action run count for a trigger node over a period — 200: object
POST /api/v1/action_runs/reap_stuck_dq reap_stuck_dq_action_runs_api_v1_action_runs_reap_stuck_dq_post Reap stuck data-quality runs — 200: object
GET /api/v1/action_runs/recovery list_unrecovered_action_runs_api_v1_action_runs_recovery_get Action runs that failed and nothing has since fixed — 200: RecoveryResponse
GET /api/v1/action_runs/rule/{rule_id} read_action_runs_by_rule_api_v1_action_runs_rule__rule_id__get List runs by rule ID — 200: array of object
GET /api/v1/action_runs/rules/{rules_id} read_action_runs_by_rule_with_datetime_filter_api_v1_action_runs_rules__rules_id__get List runs by rule with date filter — 200: array of object
GET /api/v1/action_runs/running read_running_action_runs_api_v1_action_runs_running_get List currently-running action runs for the Home live timeline — 200: object
GET /api/v1/action_runs/shadow-diff get_shadow_diff_api_v1_action_runs_shadow_diff_get Compare shadow vs live action runs — 200: object
GET /api/v1/action_runs/state/{state} read_action_runs_by_state_api_v1_action_runs_state__state__get List runs by state — 200: array of object
GET /api/v1/action_runs/summary/kpi-sparklines read_kpi_sparklines_api_v1_action_runs_summary_kpi_sparklines_get Dashboard KPI trend sparklines (24 hourly buckets) — 200: object
GET /api/v1/action_runs/summary/overview read_runs_overview_api_v1_action_runs_summary_overview_get Runs overview for agents: counts, grouped failures, late signals — 200: object
GET /api/v1/action_runs/summary/states read_action_run_state_summary_api_v1_action_runs_summary_states_get Get action run state counts — 200: object
GET /api/v1/action_runs/test/{is_test} read_test_action_runs_api_v1_action_runs_test__is_test__get List test or production runs — 200: array of object
GET /api/v1/action_runs/trigger/failsafe_window/{trigger_id} read_failsafe_window_state_api_v1_action_runs_trigger_failsafe_window__trigger_id__get Get failsafe window state — 200: object
GET /api/v1/action_runs/trigger/last_run/{trigger_id} read_last_action_run_by_trigger_api_v1_action_runs_trigger_last_run__trigger_id__get Get last run by trigger — 200: ActionRun
GET /api/v1/action_runs/trigger/resume_information/{trigger_id} read_action_run_resume_info_by_trigger_api_v1_action_runs_trigger_resume_information__trigger_id__get Get trigger resume information — 200: ActionRunResumeInfo
GET /api/v1/action_runs/trigger/{trigger_id} read_action_runs_by_trigger_api_v1_action_runs_trigger__trigger_id__get List runs by trigger ID — 200: array of object
GET /api/v1/action_runs/unified/ read_unified_action_runs_api_v1_action_runs_unified__get List unified action runs — 200: array of object
DELETE /api/v1/action_runs/{action_run_id}/dispatch abandon_action_run_dispatch_api_v1_action_runs__action_run_id__dispatch_delete Drop the caller's dispatching run: the executor decided no run was needed — 200: object of boolean
POST /api/v1/action_runs/{action_run_id}/dispatch-lease set_action_run_dispatch_lease_api_v1_action_runs__action_run_id__dispatch_lease_post Renew the caller's dispatch lease; lease_seconds=0 lapses it DispatchLeaseRequest 200: object of boolean
POST /api/v1/action_runs/{action_run_id}/finalize-dispatch finalize_action_run_dispatch_api_v1_action_runs__action_run_id__finalize_dispatch_post Move a dispatching run to its real state (its lease owner only) ActionRunFinalizeDispatch 200: ActionRun
GET /api/v1/action_runs/{id} read_action_run_api_v1_action_runs__id__get Get action run by ID — 200: ActionRun
PUT /api/v1/action_runs/{id} update_action_run_api_v1_action_runs__id__put Update action run ActionRunUpdate 200: ActionRun
DELETE /api/v1/action_runs/{id} delete_action_run_api_v1_action_runs__id__delete Delete action run — 200: ActionRun
POST /api/v1/action_runs/{id}/cancel cancel_action_run_api_v1_action_runs__id__cancel_post Cancel an ongoing action run — 200: any
GET /api/v1/action_runs/{id}/children read_action_run_children_api_v1_action_runs__id__children_get List child runs of an action run — 200: array of object
GET /api/v1/action_runs/{id}/dataform-actions read_dataform_node_results_api_v1_action_runs__id__dataform_actions_get Per-node results of a Dataform action run — 200: DataformNodeResults
POST /api/v1/action_runs/{id}/reconcile-dataform-activity reconcile_dataform_activity_api_v1_action_runs__id__reconcile_dataform_activity_post Backfill per-node Dataform activity states from a finalized run — 200: object
POST /api/v1/action_runs/{id}/replay replay_action_run_api_v1_action_runs__id__replay_post Replay an action run with one click — 200: any
POST /api/v1/action_runs/{id}/resolve resolve_action_run_api_v1_action_runs__id__resolve_post Correct the record of a stale active run ActionRunResolveRequest 200: ActionRun

Action Run Locks#

Distributed locks preventing concurrent runs of the same action.

Method Path Operation Summary Request Response
GET /api/v1/action_run_locks/ read_action_run_locks_api_v1_action_run_locks__get List active action run locks — 200: array of ActionRunLock
POST /api/v1/action_run_locks/cleanup/expired cleanup_expired_locks_api_v1_action_run_locks_cleanup_expired_post Clean up expired locks — 200: object
POST /api/v1/action_run_locks/lock lock_single_node_api_v1_action_run_locks_lock_post Lock a single node ActionRunLockCreate 200: ActionRunLock
POST /api/v1/action_run_locks/lock/bulk lock_multiple_nodes_api_v1_action_run_locks_lock_bulk_post Lock multiple nodes ActionRunLockBulkRequest 200: ActionRunLockBulkResponse
GET /api/v1/action_run_locks/status/bulk check_multiple_nodes_lock_status_api_v1_action_run_locks_status_bulk_get Check lock status for multiple nodes — 200: object
GET /api/v1/action_run_locks/status/{node_id} check_node_lock_status_api_v1_action_run_locks_status__node_id__get Check node lock status — 200: object
DELETE /api/v1/action_run_locks/unlock/bulk unlock_multiple_nodes_api_v1_action_run_locks_unlock_bulk_delete Unlock multiple nodes ActionRunUnlockBulkRequest 200: object
DELETE /api/v1/action_run_locks/unlock/{node_id} unlock_single_node_api_v1_action_run_locks_unlock__node_id__delete Unlock a single node — 200: object
GET /api/v1/action_run_locks/{lock_id} read_action_run_lock_api_v1_action_run_locks__lock_id__get Get lock by ID — 200: ActionRunLock
PUT /api/v1/action_run_locks/{lock_id} update_action_run_lock_api_v1_action_run_locks__lock_id__put Update an action run lock ActionRunLockUpdate 200: ActionRunLock
DELETE /api/v1/action_run_locks/{lock_id} delete_action_run_lock_api_v1_action_run_locks__lock_id__delete Delete an action run lock — 200: object

Action Run Lock History#

Historical log of lock acquisitions and releases.

Method Path Operation Summary Request Response
GET /api/v1/action_run_lock_history/ read_lock_history_api_v1_action_run_lock_history__get List lock history entries — 200: array of ActionRunLockHistory
GET /api/v1/action_run_lock_history/node/{node_id} read_lock_history_by_node_api_v1_action_run_lock_history_node__node_id__get Get lock history by node — 200: array of ActionRunLockHistory
GET /api/v1/action_run_lock_history/trigger/{trigger_node_id} read_lock_history_by_trigger_api_v1_action_run_lock_history_trigger__trigger_node_id__get Get lock history by trigger node — 200: array of ActionRunLockHistory
GET /api/v1/action_run_lock_history/{lock_history_id} read_lock_history_by_id_api_v1_action_run_lock_history__lock_history_id__get Get lock history entry by ID — 200: ActionRunLockHistory

Scheduler Actions#

Cloud Scheduler-triggered action endpoints.

Method Path Operation Summary Request Response
GET /api/v1/scheduler_actions/ read_scheduler_actions_api_v1_scheduler_actions__get List scheduler actions — 200: array of SchedulerAction
POST /api/v1/scheduler_actions/ create_scheduler_action_api_v1_scheduler_actions__post Create scheduler action SchedulerActionCreate 201: SchedulerAction
GET /api/v1/scheduler_actions/aggregated/ read_aggregated_scheduler_actions_api_v1_scheduler_actions_aggregated__get Aggregated scheduler action counts by time window — 200: AggregatedSchedulerActions
GET /api/v1/scheduler_actions/datetime-range/ read_scheduler_actions_by_datetime_range_api_v1_scheduler_actions_datetime_range__get List actions by datetime range — 200: array of SchedulerAction
GET /api/v1/scheduler_actions/node/{node_id} read_scheduler_actions_by_node_api_v1_scheduler_actions_node__node_id__get List actions by node — 200: array of SchedulerAction
GET /api/v1/scheduler_actions/rule/{rule_id} read_scheduler_actions_by_rule_api_v1_scheduler_actions_rule__rule_id__get List actions by rule — 200: array of SchedulerAction
GET /api/v1/scheduler_actions/source/{source_id} read_scheduler_actions_by_source_api_v1_scheduler_actions_source__source_id__get List actions by source — 200: array of SchedulerAction
GET /api/v1/scheduler_actions/source/{source_id}/node/{node_id} read_scheduler_actions_by_source_and_node_api_v1_scheduler_actions_source__source_id__node__node_id__get List actions by source and node — 200: array of SchedulerAction
GET /api/v1/scheduler_actions/{id} read_scheduler_action_api_v1_scheduler_actions__id__get Get scheduler action by ID — 200: SchedulerAction
PUT /api/v1/scheduler_actions/{id} update_scheduler_action_api_v1_scheduler_actions__id__put Update scheduler action SchedulerActionUpdate 200: SchedulerAction
DELETE /api/v1/scheduler_actions/{id} delete_scheduler_action_api_v1_scheduler_actions__id__delete Delete scheduler action — 200: SchedulerAction

On Hold Actions#

Actions paused or deferred, awaiting manual or automatic release.

Method Path Operation Summary Request Response
GET /api/v1/on_hold_actions/ read_on_hold_actions_api_v1_on_hold_actions__get List on-hold actions — 200: array of OnHoldAction
POST /api/v1/on_hold_actions/ create_on_hold_action_api_v1_on_hold_actions__post Create or update on-hold action OnHoldActionCreate 201: OnHoldAction
POST /api/v1/on_hold_actions/batch_check batch_check_on_hold_status_api_v1_on_hold_actions_batch_check_post Batch check on-hold status OnHoldBatchCheckRequest 200: OnHoldBatchCheckResponse
POST /api/v1/on_hold_actions/bulk/upsert bulk_upsert_on_hold_actions_api_v1_on_hold_actions_bulk_upsert_post Bulk upsert on-hold actions array of OnHoldActionCreate 200: array of OnHoldAction
POST /api/v1/on_hold_actions/claims/shorten shorten_on_hold_claims_api_v1_on_hold_actions_claims_shorten_post Bring a draining instance's on-hold claims down to now + grace OnHoldClaimsShortenRequest 200: object
GET /api/v1/on_hold_actions/due read_due_on_hold_actions_api_v1_on_hold_actions_due_get List due on-hold actions — 200: array of OnHoldAction
POST /api/v1/on_hold_actions/due/claim claim_due_on_hold_actions_api_v1_on_hold_actions_due_claim_post Claim due on-hold actions — 200: array of OnHoldAction
GET /api/v1/on_hold_actions/exceeded-retries read_actions_exceeding_max_retries_api_v1_on_hold_actions_exceeded_retries_get List actions exceeding max retries — 200: array of OnHoldAction
GET /api/v1/on_hold_actions/next-check-summary read_next_check_summary_api_v1_on_hold_actions_next_check_summary_get Get next-check summary for all actions — 200: array of NextCheckSummary
GET /api/v1/on_hold_actions/next-check-summary/due read_next_check_summary_due_api_v1_on_hold_actions_next_check_summary_due_get Get due next-check summary with retries — 200: array of NextCheckSummaryWithRetry
GET /api/v1/on_hold_actions/node/last_update/{node_id} read_last_update_by_node_api_v1_on_hold_actions_node_last_update__node_id__get Get latest on-hold action for node — 200: OnHoldAction
GET /api/v1/on_hold_actions/node/{node_id} read_on_hold_actions_by_node_api_v1_on_hold_actions_node__node_id__get List on-hold actions by node — 200: array of OnHoldAction
DELETE /api/v1/on_hold_actions/node/{node_id} delete_on_hold_actions_by_node_api_v1_on_hold_actions_node__node_id__delete Delete on-hold actions by node — 200: object
DELETE /api/v1/on_hold_actions/node/{node_id}/rule/{rule_id} delete_on_hold_action_by_node_and_rule_api_v1_on_hold_actions_node__node_id__rule__rule_id__delete Delete on-hold action by node and rule — 200: object
GET /api/v1/on_hold_actions/rule/{rule_id} read_on_hold_actions_by_rule_api_v1_on_hold_actions_rule__rule_id__get List on-hold actions by rule — 200: array of OnHoldAction
DELETE /api/v1/on_hold_actions/rule/{rule_id} delete_on_hold_actions_by_rule_api_v1_on_hold_actions_rule__rule_id__delete Delete on-hold actions by rule — 200: object
GET /api/v1/on_hold_actions/{id} read_on_hold_action_api_v1_on_hold_actions__id__get Get on-hold action by ID — 200: OnHoldAction
DELETE /api/v1/on_hold_actions/{id} delete_on_hold_action_api_v1_on_hold_actions__id__delete Delete on-hold action by ID — 200: OnHoldAction
POST /api/v1/on_hold_actions/{id}/claim-transfer transfer_on_hold_claim_api_v1_on_hold_actions__id__claim_transfer_post Hand the dispatcher's claim on one on-hold action to the worker processing it OnHoldClaimTransferRequest 200: object
DELETE /api/v1/on_hold_actions/{id}/claimed consume_claimed_on_hold_action_api_v1_on_hold_actions__id__claimed_delete Consume one on-hold action while the caller still holds its claim — 200: object
DELETE /api/v1/on_hold_actions/{id}/consume delete_on_hold_action_by_id_api_v1_on_hold_actions__id__consume_delete Consume (delete) a single on-hold action by ID — 200: object
POST /api/v1/on_hold_actions/{id}/increment-retry increment_retry_count_api_v1_on_hold_actions__id__increment_retry_post Increment retry count — 200: OnHoldAction
GET /api/v1/on_hold_actions/{id}/retry-status get_retry_status_api_v1_on_hold_actions__id__retry_status_get Check retry status — 200: object

Compilations#

Metadata compilation requests and status tracking.

Method Path Operation Summary Request Response
GET /api/v1/compilations/ get_compilations_api_v1_compilations__get List compilations — 200: array of CompilationResponse
POST /api/v1/compilations/ create_compilation_api_v1_compilations__post Create new compilation CompilationCreate 200: CompilationResponse
GET /api/v1/compilations/history get_compilation_history_api_v1_compilations_history_get Get compilation history for current environment — 200: array of CompilationResponse
GET /api/v1/compilations/history/cross-env get_compilation_history_cross_env_api_v1_compilations_history_cross_env_get Get compilation history for every configured environment — 200: CrossEnvCompilationHistoryResponse
GET /api/v1/compilations/last get_last_compilation_api_v1_compilations_last_get Get last compilation — 200: CompilationResponse
GET /api/v1/compilations/last/cross-env get_last_compilation_cross_env_api_v1_compilations_last_cross_env_get Get the last compilation in every configured environment — 200: CrossEnvCompilationResponse
POST /api/v1/compilations/trigger trigger_compilation_api_v1_compilations_trigger_post Trigger a compilation run CompilationTriggerRequest 202: any
GET /api/v1/compilations/triggers get_compilation_triggers_api_v1_compilations_triggers_get List recent compilation triggers — 200: array of CompilationTriggerCompatResponse
GET /api/v1/compilations/{id} read_compilation_api_v1_compilations__id__get Get compilation by ID — 200: CompilationResponse
PUT /api/v1/compilations/{id} update_compilation_api_v1_compilations__id__put Update a compilation CompilationUpdate 200: CompilationResponse
DELETE /api/v1/compilations/{id} delete_compilation_api_v1_compilations__id__delete Delete a compilation — 200: CompilationResponse

Dependencies#

Inter-action dependency graph management.

Method Path Operation Summary Request Response
GET /api/v1/dependencies/all-relations/{node_id} all_relations_api_v1_dependencies_all_relations__node_id__get Get all node relations — 200: object
GET /api/v1/dependencies/ancestors/{entity_id} ancestors_api_v1_dependencies_ancestors__entity_id__get Get all ancestors — 200: object
GET /api/v1/dependencies/column_lineage/{node_id} get_column_lineage_api_v1_dependencies_column_lineage__node_id__get Get column lineage for node — 200: object
GET /api/v1/dependencies/descendants/{entity_id} descendants_api_v1_dependencies_descendants__entity_id__get Get all descendants — 200: object
GET /api/v1/dependencies/first_ancestors/{entity_id} first_ancestors_api_v1_dependencies_first_ancestors__entity_id__get Get first ancestors — 200: object
GET /api/v1/dependencies/first_descendants/{entity_id} first_descendants_api_v1_dependencies_first_descendants__entity_id__get Get first descendants — 200: object
GET /api/v1/dependencies/insertable_ancestors/{node_id} insertable_ancestors_api_v1_dependencies_insertable_ancestors__node_id__get Get insertable ancestors — 200: array of any
GET /api/v1/dependencies/insertable_descendants/{node_id} insertable_descendants_api_v1_dependencies_insertable_descendants__node_id__get Get insertable descendants — 200: array of any
GET /api/v1/dependencies/list_node_ids list_node_ids_api_v1_dependencies_list_node_ids_get List all node IDs — 200: object
GET /api/v1/dependencies/list_nodes list_nodes_api_v1_dependencies_list_nodes_get List nodes with details — 200: object
GET /api/v1/dependencies/list_nodes/filter-options get_node_filter_options_api_v1_dependencies_list_nodes_filter_options_get Get node filter options — 200: object
GET /api/v1/dependencies/list_nodes/resume_information list_nodes_resume_information_api_v1_dependencies_list_nodes_resume_information_get List nodes resume info — 200: object
GET /api/v1/dependencies/list_nodes/resume_information/fts search_nodes_fts_api_v1_dependencies_list_nodes_resume_information_fts_get Full-text search nodes — 200: CatalogSearchResponse
GET /api/v1/dependencies/list_nodes/resume_information/search search_nodes_resume_information_api_v1_dependencies_list_nodes_resume_information_search_get Search nodes with regex — 200: object
GET /api/v1/dependencies/matching_nodes/{source_id} get_matching_nodes_api_v1_dependencies_matching_nodes__source_id__get Find nodes matching source ID — 200: array of object
GET /api/v1/dependencies/mstr_object_index mstr_object_index_api_v1_dependencies_mstr_object_index_get MicroStrategy object index for cost attribution — 200: object
GET /api/v1/dependencies/node_hierarchies get_node_hierarchies_api_v1_dependencies_node_hierarchies_get Get node type hierarchies — 200: object
GET /api/v1/dependencies/nodes/{node_id} node_api_v1_dependencies_nodes__node_id__get Get node by ID — 200: object
GET /api/v1/dependencies/object_types get_object_types_api_v1_dependencies_object_types_get List object types — 200: object
GET /api/v1/dependencies/object_types/counts get_object_type_counts_api_v1_dependencies_object_types_counts_get Get object type counts — 200: object
GET /api/v1/dependencies/readiness check_readiness_api_v1_dependencies_readiness_get Check compilation readiness — 200: any
POST /api/v1/dependencies/reload reload_compilation_api_v1_dependencies_reload_post Reload compilation data — 200: any
GET /api/v1/dependencies/resolve_node_pattern/{pattern} resolve_node_pattern_api_v1_dependencies_resolve_node_pattern__pattern__get Resolve node pattern to matches — 200: array of object
GET /api/v1/dependencies/scheduler/evaluate/{source_id} scheduler_evaluate_api_v1_dependencies_scheduler_evaluate__source_id__get Evaluate scheduler for source — 200: object
GET /api/v1/dependencies/status get_compilation_status_api_v1_dependencies_status_get Get compilation status — 200: any
POST /api/v1/dependencies/subgraph subgraph_api_v1_dependencies_subgraph_post Induced lineage subgraph for a set of nodes SubgraphRequest 200: object

Resource Patterns#

Resource pattern definitions for matching GCP assets.

Method Path Operation Summary Request Response
GET /api/v1/resource-patterns/ get_all_patterns_api_v1_resource_patterns__get List all resource patterns — 200: ResourcePatternList
PUT /api/v1/resource-patterns/ replace_all_patterns_api_v1_resource_patterns__put Replace all resource patterns array of ResourcePatternCreate 200: ResourcePatternList
POST /api/v1/resource-patterns/ create_pattern_api_v1_resource_patterns__post Create resource pattern ResourcePatternCreate 201: ResourcePattern
POST /api/v1/resource-patterns/bulk create_bulk_patterns_api_v1_resource_patterns_bulk_post Bulk create resource patterns array of ResourcePatternCreate 201: ResourcePatternList
GET /api/v1/resource-patterns/{pattern_name} get_pattern_api_v1_resource_patterns__pattern_name__get Get resource pattern by name — 200: ResourcePattern
PUT /api/v1/resource-patterns/{pattern_name} update_pattern_api_v1_resource_patterns__pattern_name__put Update resource pattern ResourcePatternUpdate 200: ResourcePattern
DELETE /api/v1/resource-patterns/{pattern_name} delete_pattern_api_v1_resource_patterns__pattern_name__delete Delete resource pattern — 200: Message

Compiler Config#

Compiler configuration for metadata extraction.

Method Path Operation Summary Request Response
GET /api/v1/compiler-config/ list_configs_api_v1_compiler_config__get List compiler configurations — 200: CompilerConfigList
PUT /api/v1/compiler-config/ replace_configs_api_v1_compiler_config__put Replace all compiler configurations array of CompilerConfigCreate 200: CompilerConfigList
POST /api/v1/compiler-config/ create_config_api_v1_compiler_config__post Create compiler configuration CompilerConfigCreate 201: CompilerConfigResponse
GET /api/v1/compiler-config/{environment} get_config_api_v1_compiler_config__environment__get Get config by environment — 200: CompilerConfigResponse
PUT /api/v1/compiler-config/{environment} upsert_config_api_v1_compiler_config__environment__put Upsert config for environment CompilerConfigCreate 200: CompilerConfigResponse

Environment Mappings#

Environment-to-project mapping definitions.

Method Path Operation Summary Request Response
GET /api/v1/environment-mappings get_environment_mappings_api_v1_environment_mappings_get Get environment mappings config — 200: EnvironmentMappingConfig
PUT /api/v1/environment-mappings update_environment_mappings_api_v1_environment_mappings_put Update environment mappings config EnvironmentMappingConfig 200: EnvironmentMappingConfig
GET /api/v1/environment-mappings/node/{node_id}/variants get_node_environment_variants_api_v1_environment_mappings_node__node_id__variants_get Get node environment variants — 200: NodeEnvironmentVariants
POST /api/v1/environment-mappings/test test_environment_mapping_api_v1_environment_mappings_test_post Test environment mapping pattern EnvironmentMappingTestRequest 200: EnvironmentMappingTestResponse

Input Logs#

Raw input log ingestion and querying.

Method Path Operation Summary Request Response
GET /api/v1/input_logs/ get_input_logs_api_v1_input_logs__get List input logs — 200: InputLogsListResponse
POST /api/v1/input_logs/ create_input_log_api_v1_input_logs__post Create input log InputLogsCreate 201: InputLogsResponse
GET /api/v1/input_logs/aggregated get_aggregated_input_logs_api_v1_input_logs_aggregated_get Get aggregated input logs — 200: InputLogsAggregatedResponse
GET /api/v1/input_logs/aggregated/timeframe get_input_logs_sum_grouped_by_timeframe_api_v1_input_logs_aggregated_timeframe_get Get logs grouped by timeframe — 200: array of TimeframeProjectCount
GET /api/v1/input_logs/correlation/{correlation_id} get_correlation_chain_api_v1_input_logs_correlation__correlation_id__get Get correlation chain — 200: any
GET /api/v1/input_logs/event-types get_event_types_api_v1_input_logs_event_types_get List log event types — 200: any
GET /api/v1/input_logs/mstr-node/{node_id} get_input_logs_by_mstr_node_api_v1_input_logs_mstr_node__node_id__get Get BigQuery events attributed to a MicroStrategy node — 200: any
GET /api/v1/input_logs/node/column_read_stats/{node_id} get_column_read_stats_by_node_api_v1_input_logs_node_column_read_stats__node_id__get Get column read stats for node — 200: ColumnReadStatsResponse
GET /api/v1/input_logs/node/queries_explorer/{node_id} get_queries_explorer_api_v1_input_logs_node_queries_explorer__node_id__get Explore queries for node — 200: QueriesExplorerResponse
POST /api/v1/input_logs/node/resume_information/batch get_input_logs_resume_information_batch_api_v1_input_logs_node_resume_information_batch_post Get resume information for multiple nodes object 200: any
GET /api/v1/input_logs/node/resume_information/{node_id} get_input_logs_resume_information_by_node_api_v1_input_logs_node_resume_information__node_id__get Get node resume information — 200: InputLogsResumeInformation
GET /api/v1/input_logs/node/{node_id} get_input_logs_by_node_api_v1_input_logs_node__node_id__get Get input logs by node — 200: InputLogsListResponse
GET /api/v1/input_logs/node/{node_id}/activity-summary get_node_activity_summary_api_v1_input_logs_node__node_id__activity_summary_get Get node activity summary — 200: any
GET /api/v1/input_logs/node/{node_id}/column/{column_name}/usage get_node_column_usage_api_v1_input_logs_node__node_id__column__column_name__usage_get Get usage of a single column on a node — 200: ColumnUsageResponse
GET /api/v1/input_logs/node/{node_id}/enrichment-backfill get_enrichment_backfill_endpoint_api_v1_input_logs_node__node_id__enrichment_backfill_get Latest enrichment-backfill job for a node (or null) — 200: EnrichmentBackfillRunResponse or null
POST /api/v1/input_logs/node/{node_id}/enrichment-backfill start_enrichment_backfill_endpoint_api_v1_input_logs_node__node_id__enrichment_backfill_post Start (or resume) a storage_delta enrichment backfill for a node window EnrichmentBackfillStart 202: EnrichmentBackfillRunResponse
GET /api/v1/input_logs/node/{node_id}/object-activity get_node_object_activity_api_v1_input_logs_node__node_id__object_activity_get Get object-level write activity (hot-map) for a node — 200: NodeObjectActivityResponse
GET /api/v1/input_logs/node/{node_id}/partition-activity get_node_partition_activity_api_v1_input_logs_node__node_id__partition_activity_get Per-partition BigQuery write activity for a node (heat-map data) — 200: NodePartitionActivityResponse
GET /api/v1/input_logs/node/{node_id}/readers get_node_readers_api_v1_input_logs_node__node_id__readers_get Get top readers of a node — 200: NodeReadersResponse
GET /api/v1/input_logs/node/{node_id}/self-cost get_node_self_cost_api_v1_input_logs_node__node_id__self_cost_get Get a node's own + generated BigQuery cost — 200: any
GET /api/v1/input_logs/node/{node_id}/touched-partitions get_node_touched_partitions_api_v1_input_logs_node__node_id__touched_partitions_get Recent BigQuery partitions touched on a node (from storage_delta enrichment) — 200: any
GET /api/v1/input_logs/node/{node_id}/writers get_node_writers_api_v1_input_logs_node__node_id__writers_get Get top writers of a node — 200: NodeWritersResponse
GET /api/v1/input_logs/platform/queries_explorer get_platform_queries_explorer_api_v1_input_logs_platform_queries_explorer_get Explore platform-wide queries — 200: PlatformQueriesExplorerResponse
GET /api/v1/input_logs/project/{project} get_input_logs_by_project_api_v1_input_logs_project__project__get Get input logs by project — 200: array of InputLogsResponse
GET /api/v1/input_logs/query query_input_logs_api_v1_input_logs_query_get Query input logs with filters — 200: InputLogsListResponse
POST /api/v1/input_logs/replay replay_dead_lettered_input_log_api_v1_input_logs_replay_post Replay a dead-lettered input log InputLogsCreate 200: InputLogReplayResponse
GET /api/v1/input_logs/row-counts/stats get_row_count_statistics_api_v1_input_logs_row_counts_stats_get Get row count statistics — 200: array of object
GET /api/v1/input_logs/search search_input_logs_api_v1_input_logs_search_get Search input logs — 200: InputLogsListResponse
GET /api/v1/input_logs/summary/counts get_input_logs_summary_counts_api_v1_input_logs_summary_counts_get Get input log summary counts — 200: any
GET /api/v1/input_logs/trigger/{trigger} get_input_logs_by_trigger_api_v1_input_logs_trigger__trigger__get Get input logs by trigger — 200: array of InputLogsResponse
GET /api/v1/input_logs/type/{log_type} get_input_logs_by_type_api_v1_input_logs_type__log_type__get Get input logs by type — 200: array of InputLogsResponse
GET /api/v1/input_logs/writer/{writer} get_input_logs_by_writer_api_v1_input_logs_writer__writer__get Get input logs by writer — 200: array of InputLogsResponse
GET /api/v1/input_logs/writers/list get_writers_list_api_v1_input_logs_writers_list_get List writers with counts — 200: array of object
GET /api/v1/input_logs/writers/{writer}/actions get_writer_actions_api_v1_input_logs_writers__writer__actions_get Get writer actions — 200: InputLogsListResponse
GET /api/v1/input_logs/writers/{writer}/resource_types get_writer_resource_types_api_v1_input_logs_writers__writer__resource_types_get Get writer node/action types — 200: object
GET /api/v1/input_logs/writers/{writer}/resources get_writer_resources_api_v1_input_logs_writers__writer__resources_get Get writer resources — 200: object
GET /api/v1/input_logs/writers/{writer}/stats get_writer_stats_api_v1_input_logs_writers__writer__stats_get Get writer statistics — 200: object
GET /api/v1/input_logs/{input_log_id}/enrichment get_enrichment_endpoint_api_v1_input_logs__input_log_id__enrichment_get Fetch (or lazily compute) enrichment payload for one input log event — 200: InputLogEnrichmentResponse
POST /api/v1/input_logs/{input_log_id}/enrichment upsert_enrichment_endpoint_api_v1_input_logs__input_log_id__enrichment_post Upsert enrichment payload (called by input-logs service) InputLogEnrichmentCreate 201: InputLogEnrichmentResponse
GET /api/v1/input_logs/{input_logs_id} get_input_log_api_v1_input_logs__input_logs_id__get Get input log by ID — 200: InputLogsResponse
PUT /api/v1/input_logs/{input_logs_id} update_input_log_api_v1_input_logs__input_logs_id__put Update input log InputLogsUpdate 200: InputLogsResponse
DELETE /api/v1/input_logs/{input_logs_id} delete_input_log_api_v1_input_logs__input_logs_id__delete Delete input log — 204

Input Logs Rollups#

Pre-aggregated input log summaries (daily/hourly).

Method Path Operation Summary Request Response
POST /api/v1/input-logs-rollups/internal/consolidation/run-now run_consolidation_now_scheduler_api_v1_input_logs_rollups_internal_consolidation_run_now_post Trigger input_logs consolidation (Cloud Scheduler) — 202: object
POST /api/v1/input-logs-rollups/rollups/consolidation/backfill backfill_consolidation_api_v1_input_logs_rollups_rollups_consolidation_backfill_post Backfill input_logs rollups (fast) — 200: any
GET /api/v1/input-logs-rollups/rollups/consolidation/health get_consolidation_health_api_v1_input_logs_rollups_rollups_consolidation_health_get Input logs rollup health — 200: any
POST /api/v1/input-logs-rollups/rollups/consolidation/run-now run_consolidation_now_api_v1_input_logs_rollups_rollups_consolidation_run_now_post Trigger input_logs consolidation — 200: any

Incidents#

Unified incident management across all action types.

Method Path Operation Summary Request Response
GET /api/v1/incidents/ read_incidents_api_v1_incidents__get List incidents — 200: array of IncidentOwned
POST /api/v1/incidents/ create_incident_api_v1_incidents__post Create incident IncidentCreate 201: Incident
GET /api/v1/incidents/action/{action} read_incidents_by_action_api_v1_incidents_action__action__get List incidents by action — 200: array of IncidentOwned
GET /api/v1/incidents/action_run/{action_run_id} read_incident_by_action_run_api_v1_incidents_action_run__action_run_id__get Get incident by action run — 200: Incident
POST /api/v1/incidents/admin/backfill-classification backfill_classification_endpoint_api_v1_incidents_admin_backfill_classification_post Backfill incident_class / response_tier on existing rows — 200: BackfillClassificationResponse
GET /api/v1/incidents/analytics/summary read_incident_analytics_summary_api_v1_incidents_analytics_summary_get Incident analytics over a trailing window: counts, daily trend, MTTA/MTTR medians, top nodes — 200: object
GET /api/v1/incidents/assignee/{assignee} read_incidents_by_assignee_api_v1_incidents_assignee__assignee__get List incidents by assignee — 200: array of IncidentOwned
POST /api/v1/incidents/auto-close auto_close_incident_api_v1_incidents_auto_close_post Auto-close incident on success AutoCloseRequest 200: Incident or null
POST /api/v1/incidents/bulk/accept bulk_accept_incidents_api_v1_incidents_bulk_accept_post Bulk accept incidents (out of triage) — 200: IncidentBulkActionResponse
POST /api/v1/incidents/bulk/action bulk_incident_action_api_v1_incidents_bulk_action_post Bulk action on incidents — 200: IncidentBulkActionResponse
POST /api/v1/incidents/bulk/assign bulk_assign_incidents_api_v1_incidents_bulk_assign_post Bulk assign incidents — 200: IncidentBulkSimpleResponse
POST /api/v1/incidents/bulk/close bulk_close_incidents_api_v1_incidents_bulk_close_post Bulk close incidents — 200: IncidentBulkActionResponse
POST /api/v1/incidents/bulk/comment bulk_add_incident_comment_api_v1_incidents_bulk_comment_post Bulk add comment to incidents — 200: IncidentBulkSimpleResponse
POST /api/v1/incidents/bulk/decline bulk_decline_incidents_api_v1_incidents_bulk_decline_post Bulk decline incidents (from triage) — 200: IncidentBulkActionResponse
POST /api/v1/incidents/bulk/mark-expected bulk_mark_incidents_expected_api_v1_incidents_bulk_mark_expected_post Bulk mark incidents as expected — 200: IncidentBulkActionResponse
POST /api/v1/incidents/bulk/merge bulk_merge_incidents_endpoint_api_v1_incidents_bulk_merge_post Bulk merge open incidents into a single target — 200: IncidentBulkMergeResponse
POST /api/v1/incidents/bulk/reopen bulk_reopen_incidents_api_v1_incidents_bulk_reopen_post Bulk reopen incidents — 200: IncidentBulkActionResponse
POST /api/v1/incidents/bulk/severity bulk_update_incident_severity_api_v1_incidents_bulk_severity_post Bulk change incident severity — 200: IncidentBulkSimpleResponse
POST /api/v1/incidents/bulk/snooze bulk_snooze_incidents_api_v1_incidents_bulk_snooze_post Bulk snooze incidents — 200: IncidentBulkActionResponse
POST /api/v1/incidents/by-nodes list_incidents_by_nodes_api_v1_incidents_by_nodes_post Batch: find incidents whose affected_nodes intersect a list IncidentsByNodesRequest 200: IncidentsByNodesResponse
POST /api/v1/incidents/check-heartbeat check_heartbeat_api_v1_incidents_check_heartbeat_post Run the loss-of-signal heartbeat sweep (cron / ops) — 200: HeartbeatCheckResponse
POST /api/v1/incidents/check-refresh-sla check_refresh_sla_api_v1_incidents_check_refresh_sla_post Run the rule refresh-SLA sweep (cron / ops); defaults to dry_run=true (reports only) — 200: RefreshSlaCheckResponse
POST /api/v1/incidents/check-rule-targets check_rule_targets_api_v1_incidents_check_rule_targets_post Run the rule target-resolution sweep (cron / ops); defaults to dry_run=true (reports only) — 200: RuleTargetCheckResponse
POST /api/v1/incidents/check-trigger-liveness check_trigger_liveness_api_v1_incidents_check_trigger_liveness_post Run the rule trigger-liveness sweep (cron / ops); defaults to dry_run=true (reports only) — 200: TriggerLivenessCheckResponse
GET /api/v1/incidents/cost-of-failure/summary get_estate_cost_of_failure_api_v1_incidents_cost_of_failure_summary_get Estate-wide wasted compute over a trailing window — 200: EstateCostOfFailureResponse
GET /api/v1/incidents/extraction/permissions get_extraction_permission_incidents_api_v1_incidents_extraction_permissions_get List extraction permission incidents — 200: array of IncidentOwned
POST /api/v1/incidents/find-open find_open_incident_api_v1_incidents_find_open_post Find open incident FindOpenIncidentRequest 200: Incident or null
POST /api/v1/incidents/groups/mark-expected mark_group_expected_endpoint_api_v1_incidents_groups_mark_expected_post Mark a whole fingerprint group expected (one suppression rule) — 200: GroupActionResponse
POST /api/v1/incidents/groups/{fingerprint}/snooze smart_snooze_group_api_v1_incidents_groups__fingerprint__snooze_post Smart-snooze a fingerprint group (time / occurrences / forecast) — 200: Incident
GET /api/v1/incidents/incident-types get_incident_types_endpoint_api_v1_incidents_incident_types_get List incident types — 200: any
GET /api/v1/incidents/incident-types/{incident_type} get_incident_type_by_id_api_v1_incidents_incident_types__incident_type__get Get incident type by ID — 200: any
POST /api/v1/incidents/internal/observe observe_incident_signal_api_v1_incidents_internal_observe_post Apply one incident observation (service-to-service) object 200: ObserveOutcomeResponse
POST /api/v1/incidents/internal/run-lifecycle sync_run_lifecycle_api_v1_incidents_internal_run_lifecycle_post Run the generic run-incident lifecycle for one resolved run (service-to-service) object 200: RunLifecycleOutcome
GET /api/v1/incidents/kinds list_incident_kinds_api_v1_incidents_kinds_get Registered incident kinds — 200: array of IncidentKindEntry
POST /api/v1/incidents/link-action-run link_action_run_to_incident_api_v1_incidents_link_action_run_post Link action run to incident LinkActionRunRequest 200: object
GET /api/v1/incidents/node/{node_id} read_incidents_by_node_api_v1_incidents_node__node_id__get Incidents by node — 200: array of IncidentOwned
GET /api/v1/incidents/overview read_incidents_overview_api_v1_incidents_overview_get Incident pool overview for agents: open by severity, age, team and SLA; window activity — 200: object
GET /api/v1/incidents/quality/rule-precision get_rule_precision_api_v1_incidents_quality_rule_precision_get Per-rule / per-class precision & actionability (feedback loop) — 200: RulePrecisionResponse
POST /api/v1/incidents/recompute-snoozes recompute_snoozes_endpoint_api_v1_incidents_recompute_snoozes_post Auto-unsnooze groups + recompute lineage inhibition (cron) — 200: RecomputeSnoozesResponse
GET /api/v1/incidents/registry get_incident_registry_api_v1_incidents_registry_get Incident kinds and sources — 200: IncidentRegistryResponse
GET /api/v1/incidents/reporter/{reporter} read_incidents_by_reporter_api_v1_incidents_reporter__reporter__get List incidents by reporter — 200: array of IncidentOwned
GET /api/v1/incidents/rule/{rule_id} read_incidents_by_rule_api_v1_incidents_rule__rule_id__get List incidents by rule — 200: array of IncidentOwned
GET /api/v1/incidents/scheduler/permissions get_scheduler_permission_incidents_api_v1_incidents_scheduler_permissions_get List scheduler permission incidents — 200: array of IncidentOwned
GET /api/v1/incidents/severity/{severity} read_incidents_by_severity_api_v1_incidents_severity__severity__get List incidents by severity — 200: array of IncidentOwned
GET /api/v1/incidents/sla/config list_sla_configs_api_v1_incidents_sla_config_get List SLA configurations — 200: array of SLAConfigResponse
PUT /api/v1/incidents/sla/config upsert_sla_config_api_v1_incidents_sla_config_put Upsert SLA configuration SLAConfigCreate 200: SLAConfigResponse
GET /api/v1/incidents/status/groups read_incident_groups_api_v1_incidents_status_groups_get List ongoing incidents grouped by dedup_fingerprint — 200: array of IncidentGroupOwned
GET /api/v1/incidents/status/inbox read_triage_inbox_api_v1_incidents_status_inbox_get Triage inbox — what needs a human now — 200: array of IncidentOwned
GET /api/v1/incidents/status/inbox/groups read_triage_inbox_groups_api_v1_incidents_status_inbox_groups_get Triage inbox, clustered by root cause — what needs a human now, collapsed — 200: array of IncidentGroupOwned
GET /api/v1/incidents/status/ongoing read_ongoing_incidents_api_v1_incidents_status_ongoing_get List ongoing incidents — 200: array of IncidentOwned
GET /api/v1/incidents/status/resolved read_resolved_incidents_api_v1_incidents_status_resolved_get List resolved incidents — 200: array of IncidentOwned
GET /api/v1/incidents/status/summary read_incident_status_summary_api_v1_incidents_status_summary_get One-call status summary — the single source of truth for every count — 200: IncidentStatusSummary
GET /api/v1/incidents/status/{status} read_incidents_by_status_api_v1_incidents_status__status__get List incidents by status — 200: array of IncidentOwned
GET /api/v1/incidents/watcher/{watcher} read_incidents_by_watcher_api_v1_incidents_watcher__watcher__get List incidents by watcher — 200: array of IncidentOwned
GET /api/v1/incidents/{id} read_incident_api_v1_incidents__id__get Get incident by ID — 200: IncidentOwned
PUT /api/v1/incidents/{id} update_incident_api_v1_incidents__id__put Update incident IncidentUpdate 200: Incident
DELETE /api/v1/incidents/{id} delete_incident_api_v1_incidents__id__delete Delete incident — 200: Incident
POST /api/v1/incidents/{id}/accept accept_incident_api_v1_incidents__id__accept_post Accept incident (out of triage) — 200: Incident
POST /api/v1/incidents/{id}/acknowledge acknowledge_incident_api_v1_incidents__id__acknowledge_post Acknowledge incident — 200: Incident
POST /api/v1/incidents/{id}/add-failure add_failure_to_incident_api_v1_incidents__id__add_failure_post Add failure to incident AddFailureRequest 200: Incident
GET /api/v1/incidents/{id}/alerts list_incident_alerts_api_v1_incidents__id__alerts_get List alerts sent for this incident — 200: array of AlertHistory
POST /api/v1/incidents/{id}/assign assign_incident_api_v1_incidents__id__assign_post Assign incident to user IncidentAssign 200: Incident
POST /api/v1/incidents/{id}/close close_incident_api_v1_incidents__id__close_post Close incident — 200: Incident
GET /api/v1/incidents/{id}/comments list_incident_comments_api_v1_incidents__id__comments_get List incident comments — 200: array of IncidentCommentResponse
POST /api/v1/incidents/{id}/comments add_incident_comment_api_v1_incidents__id__comments_post Add comment to incident — 201: IncidentCommentResponse
DELETE /api/v1/incidents/{id}/comments/{comment_id} delete_incident_comment_api_v1_incidents__id__comments__comment_id__delete Delete incident comment — 204
GET /api/v1/incidents/{id}/cost-of-failure get_incident_cost_of_failure_api_v1_incidents__id__cost_of_failure_get What this incident cost in wasted compute, and what its blast radius costs to rebuild — 200: IncidentCostOfFailureResponse
POST /api/v1/incidents/{id}/decline decline_incident_api_v1_incidents__id__decline_post Decline incident (close as not-an-incident) — 200: Incident
POST /api/v1/incidents/{id}/mark-expected mark_incident_expected_api_v1_incidents__id__mark_expected_post Mark incident as expected / known issue — 200: Incident
GET /api/v1/incidents/{id}/provenance get_incident_provenance_api_v1_incidents__id__provenance_get Get the resources behind an incident — 200: IncidentProvenanceResponse
GET /api/v1/incidents/{id}/related-dq-failures get_related_dq_failures_api_v1_incidents__id__related_dq_failures_get Get related DQ failures for an incident — 200: RelatedDQFailuresResponse
GET /api/v1/incidents/{id}/related-pipeline-failures get_related_pipeline_failures_api_v1_incidents__id__related_pipeline_failures_get Get related pipeline failures for a DQ incident — 200: RelatedPipelineFailuresResponse
POST /api/v1/incidents/{id}/reopen reopen_incident_api_v1_incidents__id__reopen_post Reopen incident — 200: Incident
POST /api/v1/incidents/{id}/reporters/add add_reporter_to_incident_api_v1_incidents__id__reporters_add_post Add reporter to incident IncidentAddReporter 200: Incident
POST /api/v1/incidents/{id}/reporters/remove remove_reporter_from_incident_api_v1_incidents__id__reporters_remove_post Remove reporter from incident IncidentRemoveReporter 200: Incident
POST /api/v1/incidents/{id}/resolve resolve_incident_api_v1_incidents__id__resolve_post Resolve incident — 200: Incident
GET /api/v1/incidents/{id}/sla get_incident_sla_api_v1_incidents__id__sla_get Get SLA metrics for an incident — 200: object
POST /api/v1/incidents/{id}/snooze snooze_incident_api_v1_incidents__id__snooze_post Snooze incident (hide from triage inbox) — 200: Incident
GET /api/v1/incidents/{id}/timeline get_incident_timeline_api_v1_incidents__id__timeline_get Get incident timeline — 200: IncidentTimelineResponse
POST /api/v1/incidents/{id}/unmark-expected unmark_incident_expected_api_v1_incidents__id__unmark_expected_post Un-mark incident as expected — 200: Incident
POST /api/v1/incidents/{id}/watchers/add add_watcher_to_incident_api_v1_incidents__id__watchers_add_post Add watcher to incident IncidentAddWatcher 200: Incident
POST /api/v1/incidents/{id}/watchers/remove remove_watcher_from_incident_api_v1_incidents__id__watchers_remove_post Remove watcher from incident IncidentRemoveWatcher 200: Incident
GET /api/v1/incidents/{incident_id}/root-cause get_root_cause_api_v1_incidents__incident_id__root_cause_get Get Root Cause — 200: RootCauseResponse

Incident History Rollups#

Pre-aggregated incident history summaries.

Method Path Operation Summary Request Response
POST /api/v1/incident-history-rollups/internal/consolidation/daily consolidate_daily_scheduler_api_v1_incident_history_rollups_internal_consolidation_daily_post Consolidate incident history daily (Cloud Scheduler) — 202: object
POST /api/v1/incident-history-rollups/rollups/consolidation/backfill backfill_api_v1_incident_history_rollups_rollups_consolidation_backfill_post Backfill incident history rollups — 200: any
POST /api/v1/incident-history-rollups/rollups/consolidation/daily consolidate_daily_api_v1_incident_history_rollups_rollups_consolidation_daily_post Consolidate incident history daily — 200: any
GET /api/v1/incident-history-rollups/rollups/consolidation/health health_api_v1_incident_history_rollups_rollups_consolidation_health_get Incident history consolidation health — 200: any
GET /api/v1/incident-history-rollups/rollups/daily get_daily_api_v1_incident_history_rollups_rollups_daily_get Query daily incident history rollups — 200: any

Reliability Metrics#

DORA-equivalent data reliability KPIs.

Method Path Operation Summary Request Response
GET /api/v1/reliability/reliability-metrics get_reliability_metrics_api_v1_reliability_reliability_metrics_get DORA-equivalent data reliability KPIs — 200: ReliabilityMetricsResponse

Attribution#

Deploy-to-Incident Attribution (data git-blame): rank the changes likely behind an incident, a commit's downstream incident blast-radius, and a node's change/incident/cost timeline.

Method Path Operation Summary Request Response
GET /api/v1/attribution/commits/{commit_sha} attribute_commit_api_v1_attribution_commits__commit_sha__get Forward blast-radius: incidents in a deploy commit's downstream — 200: CommitImpactRead
GET /api/v1/attribution/incidents/{incident_id} attribute_incident_api_v1_attribution_incidents__incident_id__get Rank the change events most likely to have caused an incident — 200: IncidentAttributionRead
GET /api/v1/attribution/timeline get_timeline_api_v1_attribution_timeline_get A node's interleaved change / incident / cost timeline — 200: TimelineRead

Explorer#

Interactive data lineage and metadata exploration.

Method Path Operation Summary Request Response
DELETE /api/v1/explorer/cache clear_explorer_cache_api_v1_explorer_cache_delete Clear explorer cache — 200: object
GET /api/v1/explorer/filter-options get_filter_options_api_v1_explorer_filter_options_get Get rule filter options — 200: object of array of string
GET /api/v1/explorer/nodes-summary get_nodes_explorer_summary_api_v1_explorer_nodes_summary_get Get nodes analytics summary — 200: array of object
GET /api/v1/explorer/rules-summary get_rules_explorer_summary_api_v1_explorer_rules_summary_get Get rules analytics summary — 200: array of object

Action Run Rollups#

Pre-aggregated action run statistics (daily/hourly).

Method Path Operation Summary Request Response
POST /api/v1/action-run-rollups/internal/consolidation/run-now run_consolidation_now_scheduler_api_v1_action_run_rollups_internal_consolidation_run_now_post Trigger action_run consolidation (Cloud Scheduler) — 202: object
GET /api/v1/action-run-rollups/rollups/15min get_15min_rollups_api_v1_action_run_rollups_rollups_15min_get Query 15-min action_run rollups — 200: array of ActionRunRollup15MinResponse
POST /api/v1/action-run-rollups/rollups/consolidation/backfill backfill_consolidation_api_v1_action_run_rollups_rollups_consolidation_backfill_post Backfill action_run rollups — 200: any
POST /api/v1/action-run-rollups/rollups/consolidation/daily consolidate_daily_api_v1_action_run_rollups_rollups_consolidation_daily_post Consolidate a specific date — 200: any
GET /api/v1/action-run-rollups/rollups/consolidation/health get_consolidation_health_api_v1_action_run_rollups_rollups_consolidation_health_get Consolidation health — 200: ActionRunConsolidationHealthResponse
POST /api/v1/action-run-rollups/rollups/consolidation/run-now run_consolidation_now_api_v1_action_run_rollups_rollups_consolidation_run_now_post Trigger action_run consolidation — 200: any
GET /api/v1/action-run-rollups/rollups/daily get_daily_rollups_api_v1_action_run_rollups_rollups_daily_get Query daily action_run rollups — 200: array of ActionRunRollupDailyResponse

Webhooks#

Webhook endpoints for external trigger integration (HMAC-authenticated).

Method Path Operation Summary Request Response
GET /api/v1/webhooks/ list_webhooks_api_v1_webhooks__get List webhook endpoints — 200: array of WebhookEndpointRead
POST /api/v1/webhooks/ create_webhook_api_v1_webhooks__post Create webhook endpoint WebhookEndpointCreate 201: WebhookEndpointWithSecret
GET /api/v1/webhooks/{webhook_id} get_webhook_api_v1_webhooks__webhook_id__get Get webhook endpoint — 200: WebhookEndpointRead
PUT /api/v1/webhooks/{webhook_id} update_webhook_api_v1_webhooks__webhook_id__put Update webhook endpoint WebhookEndpointUpdate 200: WebhookEndpointRead
DELETE /api/v1/webhooks/{webhook_id} delete_webhook_api_v1_webhooks__webhook_id__delete Delete webhook endpoint (soft) — 200: WebhookEndpointRead
POST /api/v1/webhooks/{webhook_id}/rotate-secret rotate_secret_api_v1_webhooks__webhook_id__rotate_secret_post Regenerate HMAC secret — 200: WebhookEndpointWithSecret
POST /api/v1/webhooks/{webhook_id}/test test_webhook_api_v1_webhooks__webhook_id__test_post Test webhook template (dry-run, no publish) WebhookTestRequest 200: WebhookTestResponse
POST /api/webhooks/{slug} receive_webhook_api_webhooks__slug__post Receive Webhook — 200: any

Custom Python#

Authored Python scripts run in a sandboxed subprocess: script registry, async-job store, and validate/test-run for the authoring UI.

Method Path Operation Summary Request Response
POST /api/v1/custom-python/jobs create_job_api_v1_custom_python_jobs_post Create a running custom_python async job CustomPythonJobCreate 201: CustomPythonJobRead
GET /api/v1/custom-python/jobs/{job_id} get_job_api_v1_custom_python_jobs__job_id__get Fetch a custom_python async job — 200: CustomPythonJobRead
PATCH /api/v1/custom-python/jobs/{job_id} update_job_api_v1_custom_python_jobs__job_id__patch Update a custom_python async job's terminal state CustomPythonJobUpdate 200: CustomPythonJobRead
POST /api/v1/custom-python/jobs/{job_id}/heartbeat heartbeat_job_api_v1_custom_python_jobs__job_id__heartbeat_post Stamp a running custom_python async job's liveness — 200: CustomPythonJobHeartbeat
GET /api/v1/custom-python/scripts list_scripts_api_v1_custom_python_scripts_get List registered custom_python scripts — 200: array of CustomPythonScriptRead
POST /api/v1/custom-python/scripts create_script_api_v1_custom_python_scripts_post Register a new custom_python script CustomPythonScriptCreate 201: CustomPythonScriptRead
GET /api/v1/custom-python/scripts/{script_id} get_script_api_v1_custom_python_scripts__script_id__get Resolve a script by id (scheduler reads this) — 200: CustomPythonScriptResolve
PUT /api/v1/custom-python/scripts/{script_id} update_script_api_v1_custom_python_scripts__script_id__put Update a custom_python script CustomPythonScriptUpdate 200: CustomPythonScriptRead
DELETE /api/v1/custom-python/scripts/{script_id} delete_script_api_v1_custom_python_scripts__script_id__delete Delete a custom_python script — 204
POST /api/v1/custom-python/test-run test_run_api_v1_custom_python_test_run_post Run custom_python source once in the sandbox (no persistence) TestRunRequest 200: SandboxResultSchema
POST /api/v1/custom-python/validate validate_api_v1_custom_python_validate_post Statically validate custom_python source ValidateRequest 200: ValidateResponse

Access#

Method Path Operation Summary Request Response
GET /api/v1/access/me my_access_api_v1_access_me_get My access: org standing, teams and enforcement — 200: MyAccess
GET /api/v1/access/nodes/{node_id} node_access_api_v1_access_nodes__node_id__get Who can use a permission on this asset, and why — 200: NodeAccessExplained
GET /api/v1/access/teams/{slug} team_access_api_v1_access_teams__slug__get Who can use a permission on this team's assets, and why — 200: TeamAccessExplained
GET /api/v1/access/troubleshoot troubleshoot_api_v1_access_troubleshoot_get Why a person can or cannot do something — 200: TroubleshootOut

Action Chains#

Method Path Operation Summary Request Response
GET /api/v1/action_chains/ list_chain_definitions_api_v1_action_chains__get List action chain definitions — 200: array of ActionChainDefinitionResponse
POST /api/v1/action_chains/ create_chain_definition_api_v1_action_chains__post Create a new action chain definition ActionChainDefinitionCreate 201: ActionChainDefinitionResponse
POST /api/v1/action_chains/from-rule execute_chain_from_rule_api_v1_action_chains_from_rule_post Create and execute a chain from rule-defined steps RuleChainExecuteRequest 202: RuleChainExecuteResponse
GET /api/v1/action_chains/{chain_def_id} get_chain_definition_api_v1_action_chains__chain_def_id__get Get an action chain definition — 200: ActionChainDefinitionResponse
PUT /api/v1/action_chains/{chain_def_id} update_chain_definition_api_v1_action_chains__chain_def_id__put Update an action chain definition ActionChainDefinitionUpdate 200: ActionChainDefinitionResponse
DELETE /api/v1/action_chains/{chain_def_id} archive_chain_definition_api_v1_action_chains__chain_def_id__delete Archive an action chain definition — 200: ActionChainDefinitionResponse
POST /api/v1/action_chains/{chain_def_id}/run execute_chain_api_v1_action_chains__chain_def_id__run_post Execute a chain ChainExecuteRequest 202: ChainRunResponse
GET /api/v1/action_chains/{chain_def_id}/runs list_chain_runs_api_v1_action_chains__chain_def_id__runs_get List chain runs for a definition — 200: array of ChainRunResponse
POST /api/v1/action_chains/{chain_def_id}/validate validate_chain_api_v1_action_chains__chain_def_id__validate_post Validate a chain spec without persisting — 200: any
GET /api/v1/chain_runs/ list_chain_runs_by_rule_api_v1_chain_runs__get List chain runs for a scheduling rule — 200: array of ChainRunResponse
GET /api/v1/chain_runs/run_count/period/{period} get_chain_run_count_for_period_api_v1_chain_runs_run_count_period__period__get Count chain runs launched by a rule over a calendar period — 200: object
GET /api/v1/chain_runs/{chain_run_id} get_chain_run_api_v1_chain_runs__chain_run_id__get Get chain run with steps — 200: ChainRunDetailResponse
POST /api/v1/chain_runs/{chain_run_id}/cancel cancel_chain_run_api_v1_chain_runs__chain_run_id__cancel_post Cancel a running chain — 200: ChainRunResponse
POST /api/v1/chain_runs/{chain_run_id}/retry retry_chain_run_api_v1_chain_runs__chain_run_id__retry_post Retry the failed steps of a terminal chain run, in place — 200: ChainRunResponse
GET /api/v1/chain_runs/{chain_run_id}/steps/{step_key}/attempts list_chain_step_attempts_api_v1_chain_runs__chain_run_id__steps__step_key__attempts_get List a chain step's attempts — 200: array of ChainStepAttemptResponse
POST /api/v1/chain_runs/{chain_run_id}/steps/{step_key}/cancel cancel_chain_step_api_v1_chain_runs__chain_run_id__steps__step_key__cancel_post Cancel a single in-flight chain step (stops the whole run) — 200: ChainRunResponse
POST /api/v1/chain_runs/{chain_run_id}/steps/{step_key}/retry retry_chain_step_api_v1_chain_runs__chain_run_id__steps__step_key__retry_post Retry one chain step, or resume the chain from it ChainStepRetryRequest 200: ChainRunResponse

Activity#

Method Path Operation Summary Request Response
POST /api/v1/activity/bulk bulk_activity_lookup_api_v1_activity_bulk_post Bulk lookup of activity (last run / next fire / downstream impact) for a page of nodes ActivityBulkRequest 200: ActivityBulkResponse

Admin#

Method Path Operation Summary Request Response
GET /api/v1/admin/extension-points list_extension_points_api_v1_admin_extension_points_get List every Nistor entry-point contribution (routers, ORM, DQ, …) — 200: object
GET /api/v1/admin/plugins list_plugins_api_v1_admin_plugins_get List loaded executor plugins — 200: PluginsListResponse

Alerts#

Method Path Operation Summary Request Response
GET /api/v1/alerts/channels list_channels_api_v1_alerts_channels_get List alert channels — 200: array of AlertChannel
POST /api/v1/alerts/channels create_channel_api_v1_alerts_channels_post Create alert channel AlertChannelCreate 201: AlertChannel
GET /api/v1/alerts/channels/summary channel_summary_api_v1_alerts_channels_summary_get What each channel receives, and what reached it — 200: AlertChannelSummaryResponse
GET /api/v1/alerts/channels/{channel_id} get_channel_api_v1_alerts_channels__channel_id__get Get alert channel — 200: AlertChannel
PUT /api/v1/alerts/channels/{channel_id} update_channel_api_v1_alerts_channels__channel_id__put Update alert channel AlertChannelUpdate 200: AlertChannel
DELETE /api/v1/alerts/channels/{channel_id} delete_channel_api_v1_alerts_channels__channel_id__delete Delete alert channel — 200: any
POST /api/v1/alerts/channels/{channel_id}/test test_channel_api_v1_alerts_channels__channel_id__test_post Test alert channel — 200: any
POST /api/v1/alerts/check-incident-aging check_incident_aging_api_v1_alerts_check_incident_aging_post Check for aging incidents — 200: any
GET /api/v1/alerts/delivery-defaults get_delivery_defaults_api_v1_alerts_delivery_defaults_get Platform defaults for alert delivery — 200: any
POST /api/v1/alerts/dispatch dispatch_event_api_v1_alerts_dispatch_post Dispatch alert event object 200: any
GET /api/v1/alerts/email-settings get_email_settings_api_v1_alerts_email_settings_get Get global email/SMTP settings — 200: any
PUT /api/v1/alerts/email-settings update_email_settings_api_v1_alerts_email_settings_put Update global email/SMTP settings EmailSettingsUpdate 200: any
POST /api/v1/alerts/email-settings/test test_email_settings_api_v1_alerts_email_settings_test_post Send a test email to verify SMTP settings — 200: any
GET /api/v1/alerts/history list_history_api_v1_alerts_history_get List alert history — 200: array of AlertHistory
GET /api/v1/alerts/policies list_policies_api_v1_alerts_policies_get List alert policies — 200: array of AlertPolicy
POST /api/v1/alerts/policies create_policy_api_v1_alerts_policies_post Create alert policy AlertPolicyCreate 201: AlertPolicy
GET /api/v1/alerts/policies/{policy_id} get_policy_api_v1_alerts_policies__policy_id__get Get alert policy — 200: AlertPolicy
PUT /api/v1/alerts/policies/{policy_id} update_policy_api_v1_alerts_policies__policy_id__put Update alert policy AlertPolicyUpdate 200: AlertPolicy
DELETE /api/v1/alerts/policies/{policy_id} delete_policy_api_v1_alerts_policies__policy_id__delete Delete alert policy — 200: any
POST /api/v1/alerts/process-batched process_batched_api_v1_alerts_process_batched_post Process batched alert deliveries — 200: any
POST /api/v1/alerts/process-digests process_digests_api_v1_alerts_process_digests_post Process digest alert deliveries — 200: any
POST /api/v1/alerts/process-retries process_retries_api_v1_alerts_process_retries_post Retry failed alert sends now — 202: any
POST /api/v1/alerts/retry/{history_id} retry_alert_api_v1_alerts_retry__history_id__post Retry failed alert — 200: any

Artifact Registry Deployments#

Method Path Operation Summary Request Response
GET /api/v1/artifact-registry/images/{node_id}/deployments get_image_deployments_api_v1_artifact_registry_images__node_id__deployments_get Configured vs. serving digest, drift, and usage by digest of an image — 200: ImageDeploymentsResponse

Artifact Registry Storage#

Method Path Operation Summary Request Response
GET /api/v1/artifact-registry/images/{node_id}/storage get_image_storage_api_v1_artifact_registry_images__node_id__storage_get Versions, logical size, share of the repository cost and history of an image — 200: ImageStorageResponse
GET /api/v1/artifact-registry/repositories/{node_id}/storage get_repository_storage_api_v1_artifact_registry_repositories__node_id__storage_get Billed size, estimated monthly cost, 90-day history and per-image sizes of a repository — 200: RepositoryStorageResponse

Assets#

Method Path Operation Summary Request Response
GET /api/v1/assets/ list_assets_api_v1_assets__get List assets in the core spine — 200: AssetPage
GET /api/v1/assets/{asset_id} get_asset_api_v1_assets__asset_id__get Get one asset by id — 200: AssetOut
GET /api/v1/assets/{asset_id}/observations list_asset_observations_api_v1_assets__asset_id__observations_get Latest observations recorded about one asset — 200: array of ObservationOut

Backfill#

Method Path Operation Summary Request Response
GET /api/v1/backfill/{backfill_run_id} get_backfill_api_v1_backfill__backfill_run_id__get Get backfill run with steps — 200: BackfillRunDetailResponse
POST /api/v1/backfill/{backfill_run_id}/cancel cancel_backfill_api_v1_backfill__backfill_run_id__cancel_post Cancel a running backfill — 200: BackfillRunResponse
POST /api/v1/rules/{rule_id}/backfill create_backfill_api_v1_rules__rule_id__backfill_post Create backfill or preview (dry-run) BackfillRequest 202: any
GET /api/v1/rules/{rule_id}/backfill/history get_backfill_history_api_v1_rules__rule_id__backfill_history_get List backfill runs for a rule — 200: array of BackfillRunResponse

BigQuery Table Metrics#

Method Path Operation Summary Request Response
GET /api/v1/bq-tables/{project}/{dataset}/{table}/metrics get_bq_table_metrics_endpoint_api_v1_bq_tables__project___dataset___table__metrics_get All five metric time series for one BigQuery table — 200: BqTableMetricsResponse
POST /api/v1/bq-tables/{project}/{dataset}/{table}/metrics/backfill backfill_bq_table_metrics_endpoint_api_v1_bq_tables__project___dataset___table__metrics_backfill_post Pull historical storage snapshots from INFORMATION_SCHEMA and upsert them — 200: BackfillResponse
POST /api/v1/bq-tables/{project}/{dataset}/{table}/metrics/refresh refresh_bq_table_metrics_endpoint_api_v1_bq_tables__project___dataset___table__metrics_refresh_post Append a live storage point computed from INFORMATION_SCHEMA — 200: BqTableMetricsResponse

Business Calendars#

Method Path Operation Summary Request Response
GET /api/v1/business_calendars/ list_business_calendars_api_v1_business_calendars__get List business calendars — 200: array of BusinessCalendarRead
POST /api/v1/business_calendars/ create_business_calendar_api_v1_business_calendars__post Create business calendar BusinessCalendarCreate 201: BusinessCalendarRead
GET /api/v1/business_calendars/by_name/{name} get_business_calendar_by_name_api_v1_business_calendars_by_name__name__get Get business calendar by name (for code-managed rules) — 200: BusinessCalendarRead
GET /api/v1/business_calendars/countries list_countries_api_v1_business_calendars_countries_get List supported country codes (from the business-calendar provider) — 200: array of CountryOption
GET /api/v1/business_calendars/{calendar_id} get_business_calendar_api_v1_business_calendars__calendar_id__get Get business calendar — 200: BusinessCalendarRead
PUT /api/v1/business_calendars/{calendar_id} update_business_calendar_api_v1_business_calendars__calendar_id__put Update business calendar BusinessCalendarUpdate 200: BusinessCalendarRead
DELETE /api/v1/business_calendars/{calendar_id} delete_business_calendar_api_v1_business_calendars__calendar_id__delete Delete business calendar (soft, blocked if in use) — 200: BusinessCalendarRead

Capabilities#

Method Path Operation Summary Request Response
GET /api/v1/capabilities list_capabilities_api_v1_capabilities_get List declared capabilities + activation state — 200: array of CapabilityOut
PATCH /api/v1/capabilities/{key} toggle_capability_api_v1_capabilities__key__patch Enable or disable a capability (admin) CapabilityToggle 200: CapabilityOut

Catalog#

Method Path Operation Summary Request Response
GET /api/v1/bq-write-visibility/summary get_write_visibility_summary_api_v1_bq_write_visibility_summary_get BigQuery tables written according to GCP but with no Nistor write event — 200: WriteVisibilitySummaryResponse
GET /api/v1/linked-datasets/watch-config get_watch_config_api_v1_linked_datasets_watch_config_get Get Watch Config — 200: LinkedWatchOverview
PUT /api/v1/linked-datasets/watch-config put_watch_config_api_v1_linked_datasets_watch_config_put Put Watch Config LinkedWatchConfigIn 200: LinkedWatchOverview
GET /api/v1/linked-datasets/watch-cost get_watch_cost_api_v1_linked_datasets_watch_cost_get Get Watch Cost — 200: CostEstimate
GET /api/v1/resource-watches/ list_watches_api_v1_resource_watches__get List watched resources — 200: WatchListResponse
POST /api/v1/resource-watches/claim claim_watches_api_v1_resource_watches_claim_post Lease the watches that are due for a probe ClaimRequest 200: ClaimResponse
GET /api/v1/resource-watches/health get_poller_health_api_v1_resource_watches_health_get Freshness poller liveness — 200: PollerHealthResponse
POST /api/v1/resource-watches/observations record_observations_api_v1_resource_watches_observations_post Report probe results and advance cursors ObservationsRequest 200: ObservationsResponse
GET /api/v1/table-metadata-history/{node_id} get_table_metadata_history_api_v1_table_metadata_history__node_id__get Daily BigQuery metadata observations for one table — 200: TableMetadataHistoryResponse

Cloud SQL Snapshots#

Method Path Operation Summary Request Response
GET /api/v1/cloud-sql/instances/{instance_node_id}/history get_instance_history_api_v1_cloud_sql_instances__instance_node_id__history_get Total instance storage over time — 200: CloudSqlInstanceHistoryResponse
GET /api/v1/cloud-sql/instances/{instance_node_id}/tables list_instance_tables_api_v1_cloud_sql_instances__instance_node_id__tables_get Per-table storage for a Cloud SQL instance (latest snapshot) — 200: CloudSqlInstanceTablesResponse
GET /api/v1/cloud-sql/instances/{instance_node_id}/tables/{database_name}/{schema_name}/{table_name}/history get_table_history_api_v1_cloud_sql_instances__instance_node_id__tables__database_name___schema_name___table_name__history_get Per-table storage time series — 200: CloudSqlTableHistoryResponse
POST /api/v1/cloud-sql/snapshots/ingest ingest_snapshot_api_v1_cloud_sql_snapshots_ingest_post Ingest pre-collected snapshot rows (Cloud Scheduler only) CloudSqlSnapshotIngestRequest 200: CloudSqlSnapshotIngestResponse

Collaboration#

Method Path Operation Summary Request Response
DELETE /api/v1/collab/comments/{comment_id} delete_comment_api_v1_collab_comments__comment_id__delete Delete a comment — 204
PATCH /api/v1/collab/comments/{comment_id} edit_comment_api_v1_collab_comments__comment_id__patch Edit a comment CollabCommentUpdate 200: CollabCommentResponse
POST /api/v1/collab/comments/{comment_id}/reopen reopen_comment_thread_api_v1_collab_comments__comment_id__reopen_post Reopen a resolved discussion thread — 200: CollabCommentResponse
POST /api/v1/collab/comments/{comment_id}/resolve resolve_comment_thread_api_v1_collab_comments__comment_id__resolve_post Mark a discussion thread as resolved — 200: CollabCommentResponse
GET /api/v1/collab/discussions list_discussions_api_v1_collab_discussions_get List discussion threads a user is involved in — 200: DiscussionThreadList
GET /api/v1/collab/my-waiting-discussions my_waiting_discussions_api_v1_collab_my_waiting_discussions_get Discussions awaiting the current user's reply (home-page card) — 200: WaitingDiscussionsResponse
GET /api/v1/collab/{entity_type}/{entity_id}/comments list_comments_api_v1_collab__entity_type___entity_id__comments_get List comments on an entity — 200: array of CollabCommentResponse
POST /api/v1/collab/{entity_type}/{entity_id}/comments add_comment_api_v1_collab__entity_type___entity_id__comments_post Add a comment to an entity CollabCommentCreate 201: CollabCommentResponse

Column Lineage#

Method Path Operation Summary Request Response
GET /api/v1/lineage/column_field_group/{node_id} get_column_field_group_api_v1_lineage_column_field_group__node_id__get Get same-field sibling columns for a node column — 200: ColumnFieldGroupResponse
GET /api/v1/lineage/columns get_column_derivations_api_v1_lineage_columns_get Get all column derivations for a node — 200: ColumnDerivationsResponse
GET /api/v1/lineage/erd/{node_id} get_erd_api_v1_lineage_erd__node_id__get Get the ERD (schema + lineage) bundle for a table and its 1-hop neighbours — 200: ErdResponse

Compiler Proxy#

Method Path Operation Summary Request Response
POST /api/v1/compiler-proxy/compile compile__api_v1_compiler_proxy_compile_post Trigger a test compilation (proxied) — 200: any
POST /api/v1/compiler-proxy/test/gcp test_gcp_api_v1_compiler_proxy_test_gcp_post Test a GCP connection (the connection's own test) — 200: object
GET /api/v1/compiler-proxy/test/gcp/dataform-repository test_dataform_repository_api_v1_compiler_proxy_test_gcp_dataform_repository_get Gone: a Dataform repository is not probed on its own any more — 200: object
GET /api/v1/compiler-proxy/test/gcp/project/{project_id} test_gcp_project_api_v1_compiler_proxy_test_gcp_project__project_id__get Gone: a GCP project is not probed on its own any more — 200: object
POST /api/v1/compiler-proxy/test/microstrategy test_microstrategy_api_v1_compiler_proxy_test_microstrategy_post Test a MicroStrategy connection (the connection's own test) — 200: object

Connections#

Method Path Operation Summary Request Response
GET /api/v1/connections list_connections_api_v1_connections_get List Connections — 200: array of ConnectionResponse
POST /api/v1/connections create_connection_api_v1_connections_post Create Connection ConnectionCreate 201: ConnectionResponse
GET /api/v1/connections/credentials list_credentials_api_v1_connections_credentials_get List Credentials — 200: array of ConnectionCredentialsResponse
GET /api/v1/connections/default/credentials get_default_credentials_api_v1_connections_default_credentials_get Get Default Credentials — 200: ConnectionCredentialsResponse
GET /api/v1/connections/resolve/credentials resolve_credentials_api_v1_connections_resolve_credentials_get Resolve Credentials — 200: ConnectionCredentialsResponse
POST /api/v1/connections/run-scheduled-tests run_scheduled_tests_endpoint_api_v1_connections_run_scheduled_tests_post Run Scheduled Tests Endpoint — 202: any
GET /api/v1/connections/tool-types list_tool_types_endpoint_api_v1_connections_tool_types_get List Tool Types Endpoint — 200: array of ToolTypeDescriptor
GET /api/v1/connections/{connection_id} get_connection_api_v1_connections__connection_id__get Get Connection — 200: ConnectionResponse
PUT /api/v1/connections/{connection_id} update_connection_api_v1_connections__connection_id__put Update Connection ConnectionUpdate 200: ConnectionResponse
DELETE /api/v1/connections/{connection_id} delete_connection_api_v1_connections__connection_id__delete Delete Connection — 204
GET /api/v1/connections/{connection_id}/credentials get_credentials_api_v1_connections__connection_id__credentials_get Get Credentials — 200: ConnectionCredentialsResponse
GET /api/v1/connections/{connection_id}/history get_connection_history_api_v1_connections__connection_id__history_get Get Connection History — 200: array of ConnectionTestHistoryEntry
POST /api/v1/connections/{connection_id}/secrets/rotate rotate_connection_secret_api_v1_connections__connection_id__secrets_rotate_post Rotate Connection Secret ConnectionSecretRotateRequest 200: ConnectionSecretRotateResponse
POST /api/v1/connections/{connection_id}/test test_connection_endpoint_api_v1_connections__connection_id__test_post Test Connection Endpoint — 200: ConnectionTestResponse
GET /api/v1/connections/{connection_id}/usage get_connection_usage_api_v1_connections__connection_id__usage_get Get Connection Usage — 200: array of ConnectionUsageEntry

Dashboard Taxonomy#

Method Path Operation Summary Request Response
GET /api/v1/dashboard-taxonomy get_dashboard_taxonomy_api_v1_dashboard_taxonomy_get Get the Dashboards curated-view taxonomy — 200: DashboardTaxonomyConfig
PUT /api/v1/dashboard-taxonomy update_dashboard_taxonomy_api_v1_dashboard_taxonomy_put Replace the Dashboards curated-view taxonomy DashboardTaxonomyConfig 200: DashboardTaxonomyConfig

Data Contracts#

Method Path Operation Summary Request Response
GET /api/v1/data-contracts list_contracts_api_v1_data_contracts_get List data contracts — 200: array of DataContractOut
POST /api/v1/data-contracts create_contract_api_v1_data_contracts_post Create a data contract DataContractCreate 201: DataContractOut
GET /api/v1/data-contracts/{contract_id} get_contract_api_v1_data_contracts__contract_id__get Get a data contract — 200: DataContractOut
PUT /api/v1/data-contracts/{contract_id} update_contract_api_v1_data_contracts__contract_id__put Update a data contract DataContractUpdate 200: DataContractOut
DELETE /api/v1/data-contracts/{contract_id} delete_contract_api_v1_data_contracts__contract_id__delete Deactivate a data contract — 200: object
POST /api/v1/data-contracts/{contract_id}/assets/{asset_id} attach_asset_api_v1_data_contracts__contract_id__assets__asset_id__post Attach an asset — 200: DataContractOut
DELETE /api/v1/data-contracts/{contract_id}/assets/{asset_id} detach_asset_api_v1_data_contracts__contract_id__assets__asset_id__delete Detach an asset — 200: DataContractOut
GET /api/v1/data-contracts/{contract_id}/breaches get_contract_breaches_api_v1_data_contracts__contract_id__breaches_get Contract breach history — 200: array of DataContractBreachOut
GET /api/v1/data-contracts/{contract_id}/compliance get_contract_compliance_api_v1_data_contracts__contract_id__compliance_get Contract compliance (read-only) — 200: ContractComplianceOut
GET /api/v1/data-contracts/{contract_id}/versions get_contract_versions_api_v1_data_contracts__contract_id__versions_get Contract spec version history — 200: ContractVersionsOut

Data Retention#

Method Path Operation Summary Request Response
GET /api/v1/data-retention list_retention_targets_api_v1_data_retention_get List retention targets — 200: array of RetentionTargetOut
GET /api/v1/data-retention/estimates list_retention_estimates_api_v1_data_retention_estimates_get Age distribution of every retention target, for the savings simulator — 200: array of RetentionEstimateOut
GET /api/v1/data-retention/history list_retention_history_api_v1_data_retention_history_get Each retention target's size over time (nightly snapshots) — 200: array of RetentionHistoryOut
PUT /api/v1/data-retention/{key} update_retention_policy_api_v1_data_retention__key__put Change a retention window or switch RetentionPolicyUpdate 200: RetentionTargetOut
POST /api/v1/data-retention/{key}/preview preview_retention_api_v1_data_retention__key__preview_post Count rows a window would delete RetentionPreviewRequest 200: RetentionPreviewOut

Data Trust#

Method Path Operation Summary Request Response
GET /api/v1/data-trust/activity get_activity_feed_api_v1_data_trust_activity_get Merged activity feed (state changes + alerts + incidents + audit) — 200: ActivityFeedResponse
GET /api/v1/data-trust/alerts list_alerts_api_v1_data_trust_alerts_get Unified alerts (open incidents + recent failed runs + stale assets) — 200: any
GET /api/v1/data-trust/assets list_assets_api_v1_data_trust_assets_get List monitored assets — 200: array of MonitoredAsset
POST /api/v1/data-trust/assets create_asset_api_v1_data_trust_assets_post Add monitored asset MonitoredAssetCreate 201: MonitoredAsset
GET /api/v1/data-trust/assets/by-node/{node_id}/slo-budget get_asset_slo_budget_api_v1_data_trust_assets_by_node__node_id__slo_budget_get Consolidated SLO + error-budget for the NodeDetail card, keyed by node_id — 200: AssetSloBudget
GET /api/v1/data-trust/assets/by-node/{node_id}/trust get_asset_trust_by_node_api_v1_data_trust_assets_by_node__node_id__trust_get Per-asset Trust Score + DQ breakdown, keyed by catalog node_id — 200: AssetTrustDetail
GET /api/v1/data-trust/assets/{asset_id} get_asset_api_v1_data_trust_assets__asset_id__get Get monitored asset — 200: MonitoredAsset
PUT /api/v1/data-trust/assets/{asset_id} update_asset_api_v1_data_trust_assets__asset_id__put Update monitored asset MonitoredAssetUpdate 200: MonitoredAsset
DELETE /api/v1/data-trust/assets/{asset_id} delete_asset_api_v1_data_trust_assets__asset_id__delete Deactivate monitored asset — 200: any
GET /api/v1/data-trust/assets/{asset_id}/burn get_asset_burn_api_v1_data_trust_assets__asset_id__burn_get Per-asset error-budget burn over rolling windows — 200: FreshnessBurnPayload
GET /api/v1/data-trust/assets/{asset_id}/graph get_asset_graph_api_v1_data_trust_assets__asset_id__graph_get Lineage graph for a monitored asset with health-status overlay — 200: AssetGraphPayload
GET /api/v1/data-trust/assets/{asset_id}/slo get_asset_slo_api_v1_data_trust_assets__asset_id__slo_get Get the per-asset SLO config (effective + whether overridden) — 200: AssetSLOResponse
PUT /api/v1/data-trust/assets/{asset_id}/slo update_asset_slo_api_v1_data_trust_assets__asset_id__slo_put Upsert per-asset SLO config (Pydantic-validated) AssetSLOConfig-Input 200: AssetSLOResponse
GET /api/v1/data-trust/digest/preview preview_digest_api_v1_data_trust_digest_preview_get Preview digest content — 200: any
POST /api/v1/data-trust/digest/run-now run_weekly_digest_api_v1_data_trust_digest_run_now_post Send the weekly team digest (Cloud Scheduler cron) — 200: any
POST /api/v1/data-trust/digest/send send_digest_api_v1_data_trust_digest_send_post Send digest now — 200: any
GET /api/v1/data-trust/favorite-groups list_favorite_groups_api_v1_data_trust_favorite_groups_get List favorite groups + membership for an environment — 200: FavoriteGroupsState
POST /api/v1/data-trust/favorite-groups create_favorite_group_api_v1_data_trust_favorite_groups_post Create a favorite group FavoriteGroupCreate 201: FavoriteGroupOut
PUT /api/v1/data-trust/favorite-groups/membership assign_favorite_group_membership_api_v1_data_trust_favorite_groups_membership_put Assign a node to a favorite group (or ungroup it) FavoriteGroupAssign 200: any
PUT /api/v1/data-trust/favorite-groups/{group_id} update_favorite_group_api_v1_data_trust_favorite_groups__group_id__put Update a favorite group FavoriteGroupUpdate 200: FavoriteGroupOut
DELETE /api/v1/data-trust/favorite-groups/{group_id} delete_favorite_group_api_v1_data_trust_favorite_groups__group_id__delete Delete a favorite group (members fall back to ungrouped) — 200: any
GET /api/v1/data-trust/freshness-forecasts list_freshness_forecasts_api_v1_data_trust_freshness_forecasts_get Latest predictive-freshness forecast per asset (Data Weather) — 200: FreshnessForecastSummary
GET /api/v1/data-trust/freshness-forecasts/node/{node_id} get_node_freshness_forecasts_api_v1_data_trust_freshness_forecasts_node__node_id__get Predictive-freshness forecast history for one node — 200: array of FreshnessForecastOut
GET /api/v1/data-trust/groups list_groups_api_v1_data_trust_groups_get List health groups — 200: array of HealthGroupOut
POST /api/v1/data-trust/groups create_group_api_v1_data_trust_groups_post Create health group HealthGroupCreate 201: HealthGroupOut
GET /api/v1/data-trust/groups/{group_id} get_group_api_v1_data_trust_groups__group_id__get Get health group — 200: HealthGroupOut
PUT /api/v1/data-trust/groups/{group_id} update_group_api_v1_data_trust_groups__group_id__put Update health group HealthGroupUpdate 200: HealthGroupOut
DELETE /api/v1/data-trust/groups/{group_id} delete_group_api_v1_data_trust_groups__group_id__delete Delete health group — 200: any
GET /api/v1/data-trust/groups/{group_id}/alert-policies list_group_alert_policies_api_v1_data_trust_groups__group_id__alert_policies_get List alert policies for a health group — 200: any
POST /api/v1/data-trust/groups/{group_id}/alert-policies create_group_alert_policy_api_v1_data_trust_groups__group_id__alert_policies_post Create alert policy for a health group object 201: any
DELETE /api/v1/data-trust/groups/{group_id}/alert-policies/{policy_id} delete_group_alert_policy_api_v1_data_trust_groups__group_id__alert_policies__policy_id__delete Delete alert policy — 200: any
POST /api/v1/data-trust/groups/{group_id}/assets/{asset_id} add_asset_to_group_api_v1_data_trust_groups__group_id__assets__asset_id__post Add asset to group — 200: any
DELETE /api/v1/data-trust/groups/{group_id}/assets/{asset_id} remove_asset_from_group_api_v1_data_trust_groups__group_id__assets__asset_id__delete Remove asset from group — 200: any
PUT /api/v1/data-trust/groups/{group_id}/assets/{asset_id}/scope set_asset_scope_api_v1_data_trust_groups__group_id__assets__asset_id__scope_put Set monitoring scope for an asset-in-group AssetScopeUpdate 200: any
GET /api/v1/data-trust/health-heatmap get_health_heatmap_api_v1_data_trust_health_heatmap_get Daily health ratio for the last 90 days (platform-wide) — 200: array of HealthHeatmapCell
GET /api/v1/data-trust/health-trend get_health_trend_api_v1_data_trust_health_trend_get Daily bucketed health status counts — 200: array of HealthTrendBucket
GET /api/v1/data-trust/monitors list_monitors_api_v1_data_trust_monitors_get List all monitors across groups — 200: any
POST /api/v1/data-trust/monitors create_monitor_api_v1_data_trust_monitors_post Create a monitor (stored on a group) object 200: any
POST /api/v1/data-trust/monitors/preview preview_monitor_api_v1_data_trust_monitors_preview_post Dry-run a monitor spec and return counterfactual fires object 200: any
GET /api/v1/data-trust/overview get_overview_api_v1_data_trust_overview_get Get group-based overview — 200: DataTrustOverview
GET /api/v1/data-trust/quality-summary get_quality_summary_api_v1_data_trust_quality_summary_get Batch data-quality rollup for a workspace — 200: QualitySummary
GET /api/v1/data-trust/runs-timeline runs_timeline_api_v1_data_trust_runs_timeline_get Action runs on a 24h strip — 200: any
GET /api/v1/data-trust/score-history get_score_history_api_v1_data_trust_score_history_get Daily platform Trust Score for the last N days — 200: array of TrustScoreHistoryBucket
GET /api/v1/data-trust/status get_status_api_v1_data_trust_status_get Get data trust status (flat) — 200: DataTrustStatus
GET /api/v1/data-trust/status/{asset_id}/history get_asset_history_api_v1_data_trust_status__asset_id__history_get Get health history for an asset — 200: array of AssetHealthSnapshotOut
GET /api/v1/data-trust/trust-score get_trust_score_api_v1_data_trust_trust_score_get Compute the canonical Trust Score for a given scope — 200: TrustScorePayload
GET /api/v1/data-trust/watchlist get_watchlist_api_v1_data_trust_watchlist_get Return the current user's watchlist, enriched with latest health — 200: array of AssetStatusItem

Data Trust Status Page#

Method Path Operation Summary Request Response
GET /api/v1/data-trust/status-page/domain/{domain_term_id} get_domain_status_page_api_v1_data_trust_status_page_domain__domain_term_id__get Trust Status Page for a business Domain — 200: StatusPagePayload
GET /api/v1/data-trust/status-page/health-group/{group_id} get_health_group_status_page_api_v1_data_trust_status_page_health_group__group_id__get Trust Status Page for a Health Group — 200: StatusPagePayload
GET /api/v1/data-trust/status-page/health-groups list_health_group_status_pages_api_v1_data_trust_status_page_health_groups_get List Health Group status pages with their current status — 200: array of StatusPageSubjectSummary

Dataform External Sync#

Method Path Operation Summary Request Response
GET /api/v1/dataform/sync-external-runs/health sync_health_api_v1_dataform_sync_external_runs_health_get Health snapshot of the external-Dataform-invocation sync — 200: object

Dataplex#

Method Path Operation Summary Request Response
GET /api/v1/dataplex/health get_health_api_v1_dataplex_health_get Get Health — 200: DataplexHealthResponse
GET /api/v1/dataplex/rules/by-node/{node_id} get_node_bundle_api_v1_dataplex_rules_by_node__node_id__get Get Node Bundle — 200: DataplexNodeBundleResponse

Deployments#

Method Path Operation Summary Request Response
GET /api/v1/deployments/bindings list_bindings_api_v1_deployments_bindings_get List Bindings — 200: array of TerraformStateBindingResponse
POST /api/v1/deployments/bindings create_binding_api_v1_deployments_bindings_post Create Binding TerraformStateBindingCreate 201: TerraformStateBindingResponse
GET /api/v1/deployments/bindings/{binding_id} get_binding_api_v1_deployments_bindings__binding_id__get Get Binding — 200: TerraformStateBindingResponse
PUT /api/v1/deployments/bindings/{binding_id} update_binding_api_v1_deployments_bindings__binding_id__put Update Binding TerraformStateBindingUpdate 200: TerraformStateBindingResponse
DELETE /api/v1/deployments/bindings/{binding_id} delete_binding_api_v1_deployments_bindings__binding_id__delete Delete Binding — 204
GET /api/v1/deployments/nodes/{node_id}/sources get_node_sources_api_v1_deployments_nodes__node_id__sources_get Get Node Sources — 200: NodeDeploymentSourcesOut
GET /api/v1/deployments/records list_deployment_records_api_v1_deployments_records_get List Deployment Records — 200: array of DeploymentRecordOut
POST /api/v1/deployments/reports post_deployment_report_api_v1_deployments_reports_post Post Deployment Report — 200: DeploymentReportResponse
GET /api/v1/deployments/reports/latest list_latest_reports_api_v1_deployments_reports_latest_get List Latest Reports — 200: array of LatestReportOut
GET /api/v1/deployments/repos list_deployment_repos_api_v1_deployments_repos_get List Deployment Repos — 200: array of DeploymentRepoOut
GET /api/v1/deployments/repos/config get_repo_config_api_v1_deployments_repos_config_get Get Repo Config — 200: RepoAsCodeOut
GET /api/v1/deployments/repos/detail get_deployment_repo_api_v1_deployments_repos_detail_get Get Deployment Repo — 200: DeploymentRepoOut
GET /api/v1/deployments/repos/history get_repo_history_api_v1_deployments_repos_history_get Get Repo History — 200: array of RepoHistoryItemOut
GET /api/v1/deployments/repos/report-resources list_repo_report_resources_api_v1_deployments_repos_report_resources_get List Repo Report Resources — 200: RepoReportResourcesPage
GET /api/v1/deployments/repos/resources list_repo_resources_api_v1_deployments_repos_resources_get List Repo Resources — 200: RepoResourcesPage
GET /api/v1/deployments/source-repos list_source_repos_api_v1_deployments_source_repos_get List Source Repos — 200: any

Edge Runners#

Method Path Operation Summary Request Response
PUT /api/v1/runner/connections/{connection_id}/runner set_connection_runner_api_v1_runner_connections__connection_id__runner_put Name the edge runner a connection's runs are handed to (null: this deployment runs them) ConnectionRunner 200: object
POST /api/v1/runner/leases claim_leases_api_v1_runner_leases_post Claim dispatched runs of this runner's executor types (runner-authenticated) LeaseClaimRequest 200: array of object
POST /api/v1/runner/leases/{lease_id}/complete complete_lease_api_v1_runner_leases__lease_id__complete_post Report a leased run's outcome (runner-authenticated; refused once the lease is completed) LeaseCompletion 200: object
POST /api/v1/runner/leases/{lease_id}/heartbeat heartbeat_lease_api_v1_runner_leases__lease_id__heartbeat_post Extend a live lease by 60 s (runner-authenticated) — 200: object
GET /api/v1/runner/runners list_runners_api_v1_runner_runners_get List the edge runners — 200: array of RunnerOut
POST /api/v1/runner/runners register_runner_api_v1_runner_runners_post Register an edge runner (its public key and executor types) RunnerRegistration 201: RunnerOut
POST /api/v1/runner/runners/{runner_id}/revoke revoke_runner_api_v1_runner_runners__runner_id__revoke_post Revoke an edge runner: its assertions are refused from now on — 200: RunnerOut

Execution Topology#

Method Path Operation Summary Request Response
GET /api/v1/execution-topology/activity/history get_activity_history_api_v1_execution_topology_activity_history_get Recent BQ query-activity buckets (read/write split) — 200: array of ActivityBucketOut
POST /api/v1/execution-topology/internal/activity-broadcast activity_broadcast_api_v1_execution_topology_internal_activity_broadcast_post Persist + broadcast BQ activity buckets (scheduler -> backend) ActivityBroadcastRequest 202: object
POST /api/v1/execution-topology/internal/slot-broadcast slot_broadcast_api_v1_execution_topology_internal_slot_broadcast_post Persist + broadcast slot snapshots (scheduler -> backend) SlotBroadcastRequest 202: object
GET /api/v1/execution-topology/slot/history get_slot_history_api_v1_execution_topology_slot_history_get Recent BQ slot snapshots — 200: array of SlotSnapshotOut

Extension Tokens#

Method Path Operation Summary Request Response
POST /api/v1/auth/extension-tokens/exchange exchange_extension_token_api_v1_auth_extension_tokens_exchange_post Exchange a one-time code for the extension JWT ExtensionTokenExchangeRequest 200: ExtensionTokenResponse
POST /api/v1/auth/extension-tokens/redeem redeem_extension_token_api_v1_auth_extension_tokens_redeem_post Issue a one-time exchange code for the IAP-authenticated user — 200: ExtensionTokenRedeemResponse

Favorites#

Method Path Operation Summary Request Response
GET /api/v1/favorites list_my_favorites_api_v1_favorites_get List favorites — 200: array of NodeFavoriteResponse
POST /api/v1/favorites favorite_node_api_v1_favorites_post Favorite a node NodeFavoriteCreate 201: NodeFavoriteResponse
GET /api/v1/favorites/check/{node_id} check_favorite_api_v1_favorites_check__node_id__get Check if I have favorited a node — 200: NodeFavoriteCheck
DELETE /api/v1/favorites/{node_id} unfavorite_node_api_v1_favorites__node_id__delete Unfavorite a node — 204

Flow Timing#

Method Path Operation Summary Request Response
GET /api/v1/flow-timing/breaches/{node_id} list_freshness_breaches_api_v1_flow_timing_breaches__node_id__get List freshness SLA breach observations for a node — 200: object
GET /api/v1/flow-timing/history/{root_node_id} get_flow_history_api_v1_flow_timing_history__root_node_id__get 30-day wall-clock history for a flow (lazy-loaded by the FE) — 200: object
POST /api/v1/flow-timing/rollup/edge_wait_history trigger_edge_wait_rollup_api_v1_flow_timing_rollup_edge_wait_history_post Trigger edge-wait-history rollup for a specific day (admin/debug) — 200: object
GET /api/v1/flow-timing/upstream-breaches/{node_id} list_upstream_freshness_breaches_api_v1_flow_timing_upstream_breaches__node_id__get Open freshness breaches on a node's direct upstream assets — 200: object
GET /api/v1/flow-timing/{root_node_id} get_flow_timing_api_v1_flow_timing__root_node_id__get Get flow timing (E2E latency, critical path, bottleneck) for a node — 200: object

GitOps#

Method Path Operation Summary Request Response
GET /api/v1/gitops/connections list_connections_api_v1_gitops_connections_get List Connections — 200: array of GitOpsConnectionResponse
POST /api/v1/gitops/connections create_connection_api_v1_gitops_connections_post Create Connection GitOpsConnectionCreate 201: GitOpsConnectionResponse
GET /api/v1/gitops/connections/{connection_id} get_connection_api_v1_gitops_connections__connection_id__get Get Connection — 200: GitOpsConnectionResponse
PUT /api/v1/gitops/connections/{connection_id} update_connection_api_v1_gitops_connections__connection_id__put Update Connection GitOpsConnectionUpdate 200: GitOpsConnectionResponse
DELETE /api/v1/gitops/connections/{connection_id} delete_connection_api_v1_gitops_connections__connection_id__delete Delete Connection — 204
GET /api/v1/gitops/connections/{connection_id}/history list_sync_history_api_v1_gitops_connections__connection_id__history_get List Sync History — 200: array of GitOpsSyncEventResponse
POST /api/v1/gitops/connections/{connection_id}/sync-now trigger_sync_now_api_v1_gitops_connections__connection_id__sync_now_post Trigger Sync Now — 202: any
POST /api/v1/gitops/connections/{connection_id}/test probe_connection_api_v1_gitops_connections__connection_id__test_post Probe Connection — 200: GitOpsConnectionTestResponse
GET /api/v1/gitops/features gitops_features_api_v1_gitops_features_get Gitops Features — 200: GitOpsFeaturesResponse
POST /api/v1/gitops/sync-events report_sync_event_api_v1_gitops_sync_events_post Report Sync Event GitOpsSyncEventCreate 201: GitOpsSyncEventResponse
GET /api/v1/gitops/sync-events/latest latest_sync_events_api_v1_gitops_sync_events_latest_get Latest Sync Events — 200: LatestSyncEventsResponse

GitOps MR Preview#

Method Path Operation Summary Request Response
POST /api/v1/gitops/mr-preview mr_preview_api_v1_gitops_mr_preview_post Dry-run the MR impact analysis against a real MR without posting MRPreviewRequest 200: MRPreviewResponse

Google Workspace#

Method Path Operation Summary Request Response
POST /api/v1/workspace-events/internal/renew-subscriptions renew_subscriptions_api_v1_workspace_events_internal_renew_subscriptions_post Create / renew Workspace Events subscriptions (Cloud Scheduler → backend) — 202: object
GET /api/v1/workspace-events/status workspace_status_api_v1_workspace_events_status_get Google Workspace ingestion configuration status — 200: object

Graph Deltas#

Method Path Operation Summary Request Response
POST /api/v1/graph-deltas/ create_graph_delta_api_v1_graph_deltas__post Append a graph delta GraphDeltaCreate 200: GraphDeltaCreated

Impact Analysis#

Method Path Operation Summary Request Response
GET /api/v1/dashboard/impact-summary get_dashboard_impact_summary_api_v1_dashboard_impact_summary_get Aggregated impact metrics for the operations dashboard — 200: DashboardImpactSummary
GET /api/v1/nodes/{node_id}/impact get_node_impact_api_v1_nodes__node_id__impact_get Analyze downstream node impact — 200: ImpactAnalysisResponse
GET /api/v1/rules/{rule_id}/impact get_rule_impact_api_v1_rules__rule_id__impact_get Analyze blast radius for a scheduling rule — 200: RuleImpactAnalysisResponse

Incident Suppression Rules#

Method Path Operation Summary Request Response
GET /api/v1/incident-suppression-rules/ list_rules_api_v1_incident_suppression_rules__get List suppression rules — 200: array of IncidentSuppressionRule
POST /api/v1/incident-suppression-rules/ create_rule_api_v1_incident_suppression_rules__post Create or reactivate a suppression rule IncidentSuppressionRuleCreate 201: IncidentSuppressionRule
GET /api/v1/incident-suppression-rules/{rule_id} get_rule_api_v1_incident_suppression_rules__rule_id__get Get suppression rule — 200: IncidentSuppressionRule
PUT /api/v1/incident-suppression-rules/{rule_id} update_rule_api_v1_incident_suppression_rules__rule_id__put Update suppression rule reason IncidentSuppressionRuleUpdate 200: IncidentSuppressionRule
DELETE /api/v1/incident-suppression-rules/{rule_id} delete_rule_api_v1_incident_suppression_rules__rule_id__delete Delete suppression rule (admin only) — 204
POST /api/v1/incident-suppression-rules/{rule_id}/deactivate deactivate_rule_api_v1_incident_suppression_rules__rule_id__deactivate_post Deactivate suppression rule — 200: IncidentSuppressionRule
POST /api/v1/incident-suppression-rules/{rule_id}/reactivate reactivate_rule_api_v1_incident_suppression_rules__rule_id__reactivate_post Reactivate suppression rule — 200: IncidentSuppressionRule

Integration Status#

Method Path Operation Summary Request Response
GET /api/v1/integrations/status get_integration_status_api_v1_integrations_status_get External integrations that are currently degraded or down — 200: IntegrationStatusResponse

Maintenance Windows#

Method Path Operation Summary Request Response
GET /api/v1/maintenance_windows/ list_windows_api_v1_maintenance_windows__get List maintenance windows — 200: array of MaintenanceWindowResponse
POST /api/v1/maintenance_windows/ create_window_api_v1_maintenance_windows__post Create a maintenance window MaintenanceWindowCreate 201: MaintenanceWindowResponse
GET /api/v1/maintenance_windows/check check_window_api_v1_maintenance_windows_check_get Gate check: is there an active maintenance window for this rule/node? — 200: any
GET /api/v1/maintenance_windows/{window_id} get_window_api_v1_maintenance_windows__window_id__get Get a maintenance window — 200: MaintenanceWindowResponse
PUT /api/v1/maintenance_windows/{window_id} update_window_api_v1_maintenance_windows__window_id__put Update a maintenance window MaintenanceWindowUpdate 200: MaintenanceWindowResponse
DELETE /api/v1/maintenance_windows/{window_id} cancel_window_api_v1_maintenance_windows__window_id__delete Cancel a maintenance window — 200: any
GET /api/v1/maintenance_windows/{window_id}/affected get_affected_api_v1_maintenance_windows__window_id__affected_get Preview rules affected by this window — 200: any

MicroStrategy External Runs#

Method Path Operation Summary Request Response
GET /api/v1/microstrategy/poll-external-runs/health poll_health_api_v1_microstrategy_poll_external_runs_health_get Snapshot of recently-observed external MicroStrategy runs — 200: object

MSTR Activity#

Method Path Operation Summary Request Response
GET /api/v1/mstr-activity/history get_mstr_activity_history_api_v1_mstr_activity_history_get Recent MSTR activity snapshots — 200: array of MstrActivityOut
POST /api/v1/mstr-activity/internal/mstr-activity-broadcast mstr_activity_broadcast_api_v1_mstr_activity_internal_mstr_activity_broadcast_post Persist + broadcast MSTR activity snapshots (scheduler -> backend) MstrActivityBroadcastRequest 202: object

MSTR Dossier#

Method Path Operation Summary Request Response
GET /api/v1/mstr-dossier/composition/{node_id} get_dossier_composition_api_v1_mstr_dossier_composition__node_id__get MicroStrategy dossier composition (request-scoped) — 200: DossierComposition
GET /api/v1/mstr-dossier/cubes/{node_id}/dq-targets get_cube_dq_targets_api_v1_mstr_dossier_cubes__node_id__dq_targets_get MicroStrategy cube Data-Quality targets (request-scoped) — 200: CubeDqTargets
GET /api/v1/mstr-dossier/dashboards/{node_id}/dq-targets get_dashboard_dq_targets_api_v1_mstr_dossier_dashboards__node_id__dq_targets_get MicroStrategy dashboard Data-Quality targets (request-scoped) — 200: DashboardDqTargets

MSTR PA Reads#

Method Path Operation Summary Request Response
GET /api/v1/microstrategy/read-capture-gap get_read_capture_gap_api_v1_microstrategy_read_capture_gap_get Reconcile PA-derived read counts against monitor-derived reads — 200: ReadCaptureGapResponse

MSTR Sessions#

Method Path Operation Summary Request Response
GET /api/v1/mstr-sessions/budget get_mstr_session_budget_api_v1_mstr_sessions_budget_get Fleet-wide MicroStrategy session budget — 200: SessionBudgetOut

MSTR Usage#

Method Path Operation Summary Request Response
GET /api/v1/mstr-usage/usage/by-user/{principal}/objects get_mstr_usage_user_objects_api_v1_mstr_usage_usage_by_user__principal__objects_get MSTR objects one principal reads (their read history) — 200: MstrUserReadObjectsResponse
GET /api/v1/mstr-usage/usage/objects get_mstr_usage_objects_api_v1_mstr_usage_usage_objects_get Catalog-spine MSTR object usage listing — 200: MstrUsageObjectsResponse
GET /api/v1/mstr-usage/usage/ranking get_mstr_usage_ranking_api_v1_mstr_usage_usage_ranking_get MSTR usage leaderboard — 200: MstrUsageRankingResponse
GET /api/v1/mstr-usage/usage/summary get_mstr_usage_summary_api_v1_mstr_usage_usage_summary_get Estate-wide MSTR usage summary — 200: MstrUsageSummaryResponse
GET /api/v1/mstr-usage/usage/timeseries get_mstr_usage_timeseries_api_v1_mstr_usage_usage_timeseries_get MSTR usage trend (reads / viewers / refreshes per bucket) — 200: MstrUsageTimeseriesResponse
GET /api/v1/mstr-usage/usage/{node_id} get_mstr_usage_for_node_api_v1_mstr_usage_usage__node_id__get Latest usage for one MSTR node — 200: MstrUsageNodeResponse
POST /api/v1/mstr-usage/usage/{node_id}/load-history load_mstr_usage_history_api_v1_mstr_usage_usage__node_id__load_history_post Load PA usage history for one node (human-triggered) — 200: MstrUsageNodeResponse
GET /api/v1/mstr-usage/usage/{node_id}/readers get_mstr_usage_readers_api_v1_mstr_usage_usage__node_id__readers_get Top readers of one MSTR object (who reads it) — 200: MstrUsageReadersResponse

Namespaces#

Method Path Operation Summary Request Response
GET /api/v1/namespaces/ list_namespaces_api_v1_namespaces__get List namespaces — 200: array of NamespaceResponse
POST /api/v1/namespaces/ create_namespace_api_v1_namespaces__post Create namespace (gone: use /teams) — —
GET /api/v1/namespaces/{namespace_id} get_namespace_api_v1_namespaces__namespace_id__get Get namespace — 200: NamespaceResponse
DELETE /api/v1/namespaces/{namespace_id} deactivate_namespace_api_v1_namespaces__namespace_id__delete Deactivate namespace (gone: use /teams) — —
PATCH /api/v1/namespaces/{namespace_id} update_namespace_api_v1_namespaces__namespace_id__patch Update namespace (gone: use /teams) — —
GET /api/v1/namespaces/{namespace_id}/members list_members_api_v1_namespaces__namespace_id__members_get List namespace members — 200: array of NamespaceMemberResponse
POST /api/v1/namespaces/{namespace_id}/members add_member_api_v1_namespaces__namespace_id__members_post Add namespace member (gone: use /teams) — —
DELETE /api/v1/namespaces/{namespace_id}/members/{email} remove_member_api_v1_namespaces__namespace_id__members__email__delete Remove namespace member (gone: use /teams) — —
PATCH /api/v1/namespaces/{namespace_id}/members/{email} update_member_role_api_v1_namespaces__namespace_id__members__email__patch Update member role (gone: use /teams) — —

Node Notes#

Method Path Operation Summary Request Response
GET /api/v1/nodes/{node_id}/notes list_node_notes_api_v1_nodes__node_id__notes_get List notes visible to me for a node — 200: array of NodeNoteResponse
POST /api/v1/nodes/{node_id}/notes create_node_note_api_v1_nodes__node_id__notes_post Create a note (optionally a reminder) on a node NodeNoteCreate 201: NodeNoteResponse
GET /api/v1/notes/mine list_my_notes_api_v1_notes_mine_get All notes visible to me across nodes — 200: array of MyNoteResponse
DELETE /api/v1/notes/{note_id} delete_node_note_api_v1_notes__note_id__delete Delete a note (author only) — 204
PATCH /api/v1/notes/{note_id} update_node_note_api_v1_notes__note_id__patch Update a note (author only) NodeNoteUpdate 200: NodeNoteResponse
POST /api/v1/notes/{note_id}/acknowledge acknowledge_reminder_api_v1_notes__note_id__acknowledge_post Acknowledge a reminder for the current cycle — 200: AcknowledgeResponse
POST /api/v1/notes/{note_id}/boost boost_note_to_ai_api_v1_notes__note_id__boost_post Hand this note's recurring check to the AI assistant (author only) NodeNoteBoostRequest 200: NodeNoteResponse
DELETE /api/v1/notes/{note_id}/boost unboost_note_from_ai_api_v1_notes__note_id__boost_delete Stop the AI from running this note's check (author only) — 200: NodeNoteResponse
GET /api/v1/notes/{note_id}/checks list_note_checks_api_v1_notes__note_id__checks_get This note's check history — human checks and AI runs, newest first — 200: array of NoteCheckEntry
POST /api/v1/notes/{note_id}/snooze snooze_reminder_api_v1_notes__note_id__snooze_post Snooze a reminder for a fixed delay (default 1h) SnoozeRequest or null 200: SnoozeResponse
GET /api/v1/reminders/due list_due_reminders_api_v1_reminders_due_get My reminders that are currently due — 200: array of DueReminderResponse
GET /api/v1/reminders/due/count get_due_reminder_count_api_v1_reminders_due_count_get Count of my reminders that are currently due — 200: DueReminderCountResponse
GET /api/v1/reminders/mine list_my_reminders_api_v1_reminders_mine_get Reminders I authored or am assigned to — 200: array of NodeNoteResponse

Notifications#

Method Path Operation Summary Request Response
GET /api/v1/notifications/feed get_feed_api_v1_notifications_feed_get Personal 'what changed' activity feed — 200: FeedPage
GET /api/v1/notifications/feed/preferences get_feed_preferences_api_v1_notifications_feed_preferences_get My personal-digest preference — 200: FeedPreference
PUT /api/v1/notifications/feed/preferences update_feed_preferences_api_v1_notifications_feed_preferences_put Update my personal-digest preference FeedPreferenceUpdate 200: FeedPreference
POST /api/v1/notifications/feed/seen mark_feed_seen_api_v1_notifications_feed_seen_post Mark the feed seen up to now (clears the unread badge and reads the inbox pings it covered) — 200: FeedSeenResponse
GET /api/v1/notifications/feed/summary get_feed_summary_api_v1_notifications_feed_summary_get Feed counts for the nav badge (since you were away) — 200: FeedSummary

ODCS#

Method Path Operation Summary Request Response
GET /api/v1/odcs/by-node/{node_id} contracts_by_node_api_v1_odcs_by_node__node_id__get Contracts By Node — 200: array of OdcsByNodeItem
GET /api/v1/odcs/contracts list_contracts_api_v1_odcs_contracts_get List Contracts — 200: array of OdcsContractListItem
POST /api/v1/odcs/contracts/sync sync_contracts_api_v1_odcs_contracts_sync_post Sync Contracts OdcsSyncRequest 200: OdcsSyncResult
GET /api/v1/odcs/contracts/{contract_id} get_contract_api_v1_odcs_contracts__contract_id__get Get Contract — 200: OdcsContractDetail
DELETE /api/v1/odcs/contracts/{contract_id} delete_contract_api_v1_odcs_contracts__contract_id__delete Delete Contract — 204
GET /api/v1/odcs/contracts/{contract_id}/drift contract_drift_api_v1_odcs_contracts__contract_id__drift_get Contract Drift — 200: OdcsDriftResponse
GET /api/v1/odcs/health get_health_api_v1_odcs_health_get Get Health — 200: OdcsHealthResponse
POST /api/v1/odcs/import import_yaml_api_v1_odcs_import_post Import Yaml OdcsImportRequest 200: OdcsImportResponse
GET /api/v1/odcs/node/{node_id}/export export_node_api_v1_odcs_node__node_id__export_get Export Node — 200: any
POST /api/v1/odcs/sync sync_from_git_api_v1_odcs_sync_post Sync From Git — 200: OdcsSyncResponse
POST /api/v1/odcs/validate validate_yaml_api_v1_odcs_validate_post Validate Yaml OdcsValidateRequest 200: OdcsValidateResponse

Passport#

Method Path Operation Summary Request Response
GET /api/v1/nodes/{node_id}/passport get_passport_api_v1_nodes__node_id__passport_get Resource Passport (fused trust view) — 200: object

Platform Jobs#

Method Path Operation Summary Request Response
POST /api/v1/platform-jobs/{job}/run run_platform_job_api_v1_platform_jobs__job__run_post Run a platform job (scheduler only) RunRequest 202: object

Plugins#

Method Path Operation Summary Request Response
GET /api/v1/plugins list_marketplace_api_v1_plugins_get List every Nistor plugin (installed and available) for the Marketplace page — 200: MarketplaceResponse
POST /api/v1/plugins/{plugin_id}/activate activate_plugin_api_v1_plugins__plugin_id__activate_post Activate a catalog plugin by seeding + enabling its capabilities — 200: MarketplacePlugin
POST /api/v1/plugins/{plugin_id}/deactivate deactivate_plugin_api_v1_plugins__plugin_id__deactivate_post Deactivate a catalog plugin by disabling its capabilities — 200: MarketplacePlugin

Resource Inspector#

Method Path Operation Summary Request Response
GET /api/v1/resource-inspector/{provider}/{resource_type} inspect_resource_api_v1_resource_inspector__provider___resource_type__get Inspect a resource — 200: any

Row Trace#

Method Path Operation Summary Request Response
GET /api/v1/lineage/provenance_coverage get_provenance_coverage_api_v1_lineage_provenance_coverage_get Get Provenance Coverage — 200: any
GET /api/v1/lineage/row_journey get_row_journey_api_v1_lineage_row_journey_get Get Row Journey — 200: RowJourneyResponse
GET /api/v1/lineage/row_preview get_row_preview_api_v1_lineage_row_preview_get Get Row Preview — 200: RowPreviewResponse
GET /api/v1/lineage/row_trace get_row_trace_api_v1_lineage_row_trace_get Get Row Trace — 200: RowTraceResponse

Rule Requests#

Method Path Operation Summary Request Response
GET /api/v1/rule_requests/ list_rule_requests_api_v1_rule_requests__get List rule requests — 200: array of RuleRequestRead
POST /api/v1/rule_requests/ create_rule_request_api_v1_rule_requests__post Submit a rule request RuleRequestCreate 201: RuleRequestRead
GET /api/v1/rule_requests/{request_id} get_rule_request_api_v1_rule_requests__request_id__get Get a rule request — 200: RuleRequestRead
PATCH /api/v1/rule_requests/{request_id} update_rule_request_api_v1_rule_requests__request_id__patch Edit a rule request RuleRequestUpdate 200: RuleRequestRead
POST /api/v1/rule_requests/{request_id}/approve approve_rule_request_api_v1_rule_requests__request_id__approve_post Approve → open an MR RuleRequestApprove 200: RuleRequestRead
POST /api/v1/rule_requests/{request_id}/reject reject_rule_request_api_v1_rule_requests__request_id__reject_post Reject a request RuleRequestReject 200: RuleRequestRead
POST /api/v1/rule_requests/{request_id}/request-changes request_changes_rule_request_api_v1_rule_requests__request_id__request_changes_post Ask the requester for changes RuleRequestReject 200: RuleRequestRead
POST /api/v1/rule_requests/{request_id}/withdraw withdraw_rule_request_api_v1_rule_requests__request_id__withdraw_post Withdraw your request — 200: RuleRequestRead

Runtime Instances#

Method Path Operation Summary Request Response
POST /api/v1/runtime_instances/draining mark_runtime_instance_draining_api_v1_runtime_instances_draining_post Mark a runtime instance draining RuntimeInstanceDrainingRequest 200: RuntimeInstanceDrainingResponse
POST /api/v1/runtime_instances/heartbeat record_runtime_instance_heartbeat_api_v1_runtime_instances_heartbeat_post Record a runtime instance heartbeat RuntimeInstanceHeartbeat 200: RuntimeInstanceRead
GET /api/v1/runtime_instances/live list_live_runtime_instances_api_v1_runtime_instances_live_get List live runtime instances — 200: array of RuntimeInstanceRead

Scheduler#

Method Path Operation Summary Request Response
POST /api/v1/scheduler/dedup_check dedup_check_api_v1_scheduler_dedup_check_post Check for duplicate scheduler events DedupCheckRequest 200: DedupCheckResponse
POST /api/v1/scheduler/event_receipt event_receipt_record_api_v1_scheduler_event_receipt_post Record a processed event EventReceiptRequest 200: EventReceiptResponse
POST /api/v1/scheduler/event_receipt/check event_receipt_check_api_v1_scheduler_event_receipt_check_post Was this event processed? EventReceiptCheckRequest 200: EventReceiptCheckResponse
Method Path Operation Summary Request Response
GET /api/v1/search cross_entity_search_api_v1_search_get Cross-entity full-text search — 200: CrossEntitySearchResponse

Sifflet#

Method Path Operation Summary Request Response
POST /api/v1/sifflet/admin/backfill-run-archive-duplicates backfill_run_archive_duplicates_api_v1_sifflet_admin_backfill_run_archive_duplicates_post Remove doubled Sifflet run rows from the run archive; defaults to dry_run=true (reports only) — 200: SiffletRunArchiveDedupeResponse
GET /api/v1/sifflet/asset-health/by-node/{node_id} get_asset_health_api_v1_sifflet_asset_health_by_node__node_id__get Get Asset Health — 200: SiffletAssetHealthResponse
GET /api/v1/sifflet/cost-estimate get_cost_estimate_api_v1_sifflet_cost_estimate_get Get Cost Estimate — 200: SiffletCostEstimateResponse
GET /api/v1/sifflet/health get_health_api_v1_sifflet_health_get Get Health — 200: SiffletHealthResponse
GET /api/v1/sifflet/overview get_overview_api_v1_sifflet_overview_get Get Overview — 200: SiffletOverviewResponse
POST /api/v1/sifflet/reconcile-runs reconcile_runs_api_v1_sifflet_reconcile_runs_post Reconcile Runs — 200: SiffletReconcileRunsResponse
GET /api/v1/sifflet/rules list_rules_api_v1_sifflet_rules_get List Rules — 200: SiffletRulesPageResponse
GET /api/v1/sifflet/rules/by-node/{node_id} get_node_bundle_api_v1_sifflet_rules_by_node__node_id__get Get Node Bundle — 200: SiffletNodeBundleResponse
POST /api/v1/sifflet/rules/{rule_id}/bq-recompute-auto set_rule_bq_recompute_auto_api_v1_sifflet_rules__rule_id__bq_recompute_auto_post Set Rule Bq Recompute Auto SiffletBqRecomputeToggleRequest 200: SiffletBqRecomputeToggleResponse
POST /api/v1/sifflet/rules/{rule_id}/compute-metric-values compute_rule_metric_values_endpoint_api_v1_sifflet_rules__rule_id__compute_metric_values_post Compute Rule Metric Values Endpoint SiffletBqRecomputeOverride or null 200: SiffletBqRecomputeResponse
GET /api/v1/sifflet/rules/{rule_id}/cost get_rule_cost_api_v1_sifflet_rules__rule_id__cost_get Get Rule Cost — 200: SiffletRuleCostResponse
GET /api/v1/sifflet/rules/{rule_id}/date-columns get_rule_date_columns_api_v1_sifflet_rules__rule_id__date_columns_get Get Rule Date Columns — 200: SiffletDateColumnsResponse
POST /api/v1/sifflet/rules/{rule_id}/refresh-debug-sql refresh_rule_debug_sql_api_v1_sifflet_rules__rule_id__refresh_debug_sql_post Refresh Rule Debug Sql — 200: SiffletDebugSqlRefreshResponse
GET /api/v1/sifflet/rules/{rule_id}/runs list_rule_runs_api_v1_sifflet_rules__rule_id__runs_get List Rule Runs — 200: array of SiffletRuleRunResponse
POST /api/v1/sifflet/rules/{rule_id}/sync-mirror sync_rule_mirror_api_v1_sifflet_rules__rule_id__sync_mirror_post Sync Rule Mirror — 200: SiffletMirrorSyncResponse

SQL Workbench#

Method Path Operation Summary Request Response
POST /api/v1/sql-workbench/estimate-cost estimate_query_cost_api_v1_sql_workbench_estimate_cost_post Dry-run cost estimate QueryCostEstimateRequest 200: QueryCostEstimateResponse
POST /api/v1/sql-workbench/execute execute_query_api_v1_sql_workbench_execute_post Execute a read-only BigQuery query QueryExecuteRequest 200: QueryExecuteResponse
GET /api/v1/sql-workbench/explorations list_explorations_api_v1_sql_workbench_explorations_get List saved explorations for a node — 200: array of SavedExplorationResponse
POST /api/v1/sql-workbench/explorations create_exploration_api_v1_sql_workbench_explorations_post Save an exploration SavedExplorationCreate 201: SavedExplorationResponse
PUT /api/v1/sql-workbench/explorations/{exploration_id} update_exploration_api_v1_sql_workbench_explorations__exploration_id__put Update a saved exploration SavedExplorationUpdate 200: SavedExplorationResponse
DELETE /api/v1/sql-workbench/explorations/{exploration_id} delete_exploration_api_v1_sql_workbench_explorations__exploration_id__delete Delete a saved exploration — 204
GET /api/v1/sql-workbench/explorations/{exploration_id}/versions list_exploration_versions_api_v1_sql_workbench_explorations__exploration_id__versions_get List version history for a saved exploration — 200: array of SavedExplorationVersionResponse
GET /api/v1/sql-workbench/explorations/{exploration_id}/versions/{version_id} get_exploration_version_api_v1_sql_workbench_explorations__exploration_id__versions__version_id__get Get a specific version of a saved exploration — 200: SavedExplorationVersionResponse
GET /api/v1/sql-workbench/history list_query_history_api_v1_sql_workbench_history_get List query history for the current user — 200: array of QueryHistoryResponse
DELETE /api/v1/sql-workbench/history/{entry_id} delete_query_history_entry_api_v1_sql_workbench_history__entry_id__delete Delete a query history entry — 204
GET /api/v1/sql-workbench/history/{entry_id}/plan get_query_history_plan_api_v1_sql_workbench_history__entry_id__plan_get Get the explain plan for a query history entry — 200: any
GET /api/v1/sql-workbench/schema get_table_schema_api_v1_sql_workbench_schema_get Full table schema — 200: TableSchemaResponse

Subscriptions#

Method Path Operation Summary Request Response
GET /api/v1/notifications list_notifications_api_v1_notifications_get My notification inbox — 200: array of UserNotificationResponse
POST /api/v1/notifications/mark-all-read mark_all_notifications_read_api_v1_notifications_mark_all_read_post Mark all notifications as read — 200: object
GET /api/v1/notifications/unread-count unread_count_api_v1_notifications_unread_count_get Get unread notification count — 200: UnreadCountResponse
PATCH /api/v1/notifications/{notification_id}/read mark_notification_read_api_v1_notifications__notification_id__read_patch Mark a notification as read — 204
GET /api/v1/subscriptions list_my_subscriptions_api_v1_subscriptions_get List my subscriptions — 200: array of NodeSubscriptionResponse
POST /api/v1/subscriptions subscribe_to_node_api_v1_subscriptions_post Subscribe to a node NodeSubscriptionCreate 201: NodeSubscriptionResponse
GET /api/v1/subscriptions/check/{node_id} check_subscription_api_v1_subscriptions_check__node_id__get Check if I am subscribed to a node — 200: NodeSubscriptionCheck
DELETE /api/v1/subscriptions/{node_id} unsubscribe_from_node_api_v1_subscriptions__node_id__delete Unsubscribe from a node — 204

System Schedule#

Method Path Operation Summary Request Response
GET /api/v1/system-schedule get_system_schedule_api_v1_system_schedule_get Get System Schedule — 200: object
GET /api/v1/system-schedule/local get_local_system_schedule_api_v1_system_schedule_local_get Get Local System Schedule — 200: object

Teams#

Method Path Operation Summary Request Response
GET /api/v1/teams/ list_teams_api_v1_teams__get List teams — 200: array of TeamSummary
POST /api/v1/teams/ create_team_api_v1_teams__post Create team TeamCreate 201: TeamDetail
GET /api/v1/teams/containers list_containers_api_v1_teams_containers_get Projects, datasets and folders with owners — 200: ContainersResponse
GET /api/v1/teams/ownership node_ownership_api_v1_teams_ownership_get Owning team of each node — 200: object of NodeOwnership
GET /api/v1/teams/ownership/selector-kinds list_selector_kinds_api_v1_teams_ownership_selector_kinds_get Selector kinds plugins contribute, with the values they state — 200: array of SelectorKindOption
GET /api/v1/teams/roles list_team_roles_api_v1_teams_roles_get Roles a team member can hold — 200: array of TeamRoleOption
GET /api/v1/teams/selector-preview selector_preview_api_v1_teams_selector_preview_get What a selector would claim — 200: SelectorPreview
GET /api/v1/teams/{slug} get_team_api_v1_teams__slug__get Get team — 200: TeamDetail
DELETE /api/v1/teams/{slug} deactivate_team_api_v1_teams__slug__delete Deactivate team — 204
PATCH /api/v1/teams/{slug} update_team_api_v1_teams__slug__patch Update team settings TeamUpdate 200: TeamDetail
GET /api/v1/teams/{slug}/access-grants list_access_grants_api_v1_teams__slug__access_grants_get Teams granted access — 200: array of TeamAccessGrantOut
POST /api/v1/teams/{slug}/access-grants add_access_grant_api_v1_teams__slug__access_grants_post Grant another team access TeamAccessGrantCreate 201: TeamAccessGrantOut
DELETE /api/v1/teams/{slug}/access-grants/{grant_id} remove_access_grant_api_v1_teams__slug__access_grants__grant_id__delete Remove a team's access — 204
PATCH /api/v1/teams/{slug}/access-grants/{grant_id} update_access_grant_api_v1_teams__slug__access_grants__grant_id__patch Change a grant's role TeamAccessGrantUpdate 200: TeamAccessGrantOut
GET /api/v1/teams/{slug}/audit team_audit_api_v1_teams__slug__audit_get This team's change history — 200: TeamAuditPage
GET /api/v1/teams/{slug}/members list_members_api_v1_teams__slug__members_get List team members — 200: array of TeamMember
POST /api/v1/teams/{slug}/members add_member_api_v1_teams__slug__members_post Add team member TeamMemberCreate 201: TeamMember
DELETE /api/v1/teams/{slug}/members/{email} remove_member_api_v1_teams__slug__members__email__delete Remove team member — 204
PATCH /api/v1/teams/{slug}/members/{email} update_member_api_v1_teams__slug__members__email__patch Change a member's team role TeamMemberUpdate 200: TeamMember
POST /api/v1/teams/{slug}/reactivate reactivate_team_api_v1_teams__slug__reactivate_post Reactivate a deactivated team — 200: TeamDetail
GET /api/v1/teams/{slug}/resources list_resources_api_v1_teams__slug__resources_get Assets this team owns — 200: ResourcesPage
GET /api/v1/teams/{slug}/selectors list_selectors_api_v1_teams__slug__selectors_get What this team claims — 200: array of SelectorOut
POST /api/v1/teams/{slug}/selectors add_selector_api_v1_teams__slug__selectors_post Claim assets SelectorCreate 201: SelectorOut
DELETE /api/v1/teams/{slug}/selectors/{selector_id} remove_selector_api_v1_teams__slug__selectors__selector_id__delete Drop a claim — 204

Tool Capacity#

Method Path Operation Summary Request Response
GET /api/v1/tool-capacity/budget get_tool_capacity_budget_api_v1_tool_capacity_budget_get Per-process tool connection limits and fleet usage — 200: BudgetOut
GET /api/v1/tool-capacity/history get_tool_capacity_history_api_v1_tool_capacity_history_get One tool's hourly connection-limit history — 200: HistoryOut
POST /api/v1/tool-capacity/reports post_tool_capacity_report_api_v1_tool_capacity_reports_post Ingest one process's tool capacity heartbeat ReportIn 204

UI Manifest#

Method Path Operation Summary Request Response
GET /api/v1/ui/manifest get_manifest_api_v1_ui_manifest_get The installed, active UI remotes and their digest — 200: object
GET /api/v1/ui/manifest/stream manifest_stream_api_v1_ui_manifest_stream_get SSE: the manifest digest, again whenever it changes — 200: any
GET /plugins/{ui_id}/{version}/{path} plugin_file_plugins__ui_id___version___path__get A built file of an active UI remote — 200: any

Wiki#

Method Path Operation Summary Request Response
POST /api/v1/wiki/admin/articles/{slug}/review mark_wiki_article_reviewed_api_v1_wiki_admin_articles__slug__review_post Admin: mark a wiki article as reviewed (now) — 200: WikiReviewResponse
POST /api/v1/wiki/admin/staleness get_wiki_staleness_api_v1_wiki_admin_staleness_post Admin: per-slug staleness ranking inputs WikiStalenessRequest 200: WikiStalenessResponse
POST /api/v1/wiki/admin/usage get_wiki_usage_api_v1_wiki_admin_usage_post Admin: per-article reads + unique readers + trend sparkline WikiUsageRequest 200: WikiUsageResponse
GET /api/v1/wiki/articles list_wiki_articles_api_v1_wiki_articles_get List wiki articles (no body) — 200: array of WikiArticleSummary
GET /api/v1/wiki/articles/{slug} get_wiki_article_api_v1_wiki_articles__slug__get Get a single wiki article including body — 200: WikiArticleDetail
GET /api/v1/wiki/bookmarks list_my_wiki_bookmarks_api_v1_wiki_bookmarks_get List my wiki bookmarks — 200: array of WikiBookmarkResponse
POST /api/v1/wiki/bookmarks add_wiki_bookmark_api_v1_wiki_bookmarks_post Bookmark a wiki article WikiBookmarkCreate 201: WikiBookmarkResponse
DELETE /api/v1/wiki/bookmarks/{slug} remove_wiki_bookmark_api_v1_wiki_bookmarks__slug__delete Remove a wiki bookmark — 204
GET /api/v1/wiki/votes/{slug} get_wiki_vote_api_v1_wiki_votes__slug__get Get my vote and aggregate counts for an article — 200: WikiVoteResponse
PUT /api/v1/wiki/votes/{slug} set_wiki_vote_api_v1_wiki_votes__slug__put Set / flip my vote (same value untoggles) WikiVoteCreate 200: WikiVoteResponse
DELETE /api/v1/wiki/votes/{slug} clear_wiki_vote_api_v1_wiki_votes__slug__delete Clear my vote on an article — 200: WikiVoteResponse

Schemas#

The request and response bodies the operations above name, A–Z.

A#

AccessReferenceResponse#

The whole permission catalog, the presets, and the viewer's own access.

Field Type Required Description
permissions array of PermissionResponse — Every permission in the catalog
roles array of AccessReferenceRole — Every permission preset
baseline_codes array of string — Codes every authenticated user implicitly holds. Returned separately because they are already merged into the viewer's permission list, so there is otherwise no way to tell an implicit grant from an explicit one.
viewer AccessReferenceViewer yes The requesting user's own access

AccessReferenceRole#

A permission preset, projected for the public reference page.

Field Type Required Description
name string yes Preset name (e.g. 'data-engineer')
description string or null — What the preset is for
permission_codes array of string — Permission codes the preset grants
is_default boolean — Whether new users are bound to this preset by default
is_system boolean — True for seeded presets reconciled on every boot (source='system'), false for UI-created ones

AccessReferenceViewer#

The requesting user's own access, for the "what do I hold" panel.

Field Type Required Description
permission_codes array of string — Codes the viewer holds. Already includes the baseline codes.
is_admin boolean — Admins hold every permission by bypass, whatever their preset
role_name string or null — Preset the viewer is bound to, or null when unbound (Custom)

AcknowledgeResponse#

Type: object.

Action-Input#

A single action — executor type plus its parameters.

Field Type Required Description
type string yes Executor action type (e.g. 'microstrategy_refresh', 'dataform_run')
parameters ActionParameters or null — —

Action-Output#

A single action — executor type plus its parameters.

Field Type Required Description
type string yes Executor action type (e.g. 'microstrategy_refresh', 'dataform_run')
parameters ActionParameters or null — —

ActionChainDefinitionCreate#

Field Type Required Description
name string yes Unique chain name
description string or null — —
chain_spec ChainSpec yes Chain step definitions
team string or null — Slug of the owning team. Omitted or null: Unassigned, as before. Never a column: the route resolves it and stamps namespace_id.

ActionChainDefinitionResponse#

Type: object.

ActionChainDefinitionUpdate#

Field Type Required Description
name string or null — —
description string or null — —
status string or null — active, inactive, archived
chain_spec ChainSpec or null — —
team string or null — Slug of the team to move the row to. Omitted: unchanged; null: Unassigned. Never a column: the route resolves it and stamps namespace_id.

ActionParameters#

Executor parameters. Allows arbitrary extra fields for executor-specific configs.

Field Type Required Description
release string or null — —
retry_number integer or null — —
retry RetryPolicySchema or null — Full retry policy; overrides retry_number
exclude_descendents_from_type array of string or null — —
exclude_descendents_node array of string or null — —
maximum_depth integer or null — —

ActionPolicy#

One of: "defer", "skip".

ActionRun#

Type: object.

ActionRunConsolidationHealthResponse#

Field Type Required Description
status string yes —
latest_15min_bucket string (date-time) or null — —
latest_daily_bucket string (date-time) or null — —
total_15min_rollups integer — —
total_daily_rollups integer — —

ActionRunCountsBatchRequest#

Request body for POST /counts/batch — the rule-id list travels in the body so the URL stays short (the comma-joined ?rule\_ids= query overflowed the proxy limit and 414'd with many rules).

Field Type Required Description
rule_ids array of string (uuid) yes Rule UUIDs to count (max 100)
start_datetime string or null — Filter by start datetime (based on trigger_datetime) - ISO datetime string
end_datetime string or null — Filter by end datetime (based on trigger_datetime) - ISO datetime string

ActionRunCreate#

Field Type Required Description
action string yes Action name
trigger_id string yes Trigger identifier
node_id string or null — Content node ID (e.g. downstream refresh target)
trigger_datetime string (date-time) or null — When the trigger occurred
start_datetime string (date-time) or null — When the action started
end_datetime string (date-time) or null — When the action ended
system_url string or null — System URL
ui_url string or null — UI URL
is_test boolean or null — Whether this is a test run
is_shadow boolean or null — Whether this is a shadow mode run (real execution, suppressed side effects)
state string or null — Current state
failure_reason string or null — Reason for failure if applicable
triggered_nodes array of string or null — List of node IDs triggered by this action (includes all nodes)
rule_id string (uuid) or null — ID of the rule that triggered this action
retry_number integer — Number of retry attempts on this action
executor_type string or null — Executor type from rule (e.g., 'dataform', 'bigquery', etc.)
total_cost_usd number or null — Total cost in USD for this action run
total_billed_bytes integer or null — Total bytes billed by BigQuery for this action run
cost_basis string or null — How this run's cost is known: measured | reconstructed | estimated | unsupported | unknown. 'unsupported' and 'unknown' carry NO amount, which is what lets the UI tell a real measured $0.00 apart from an unpriced run. NULL means the row predates the vocabulary.
total_queries integer or null — Total number of queries executed in this action run
estimated_cost_usd number or null — Pre-flight dry-run cost estimate in USD
estimated_billed_bytes integer or null — Pre-flight dry-run estimated bytes
execution_details object or null — Detailed execution metadata (trigger info, API responses, lock info, retry history, errors)
parent_action_run_id string (uuid) or null — Parent action run ID for child runs (e.g. downstream refreshes of an event trigger)
triggered_by string or null — Trigger provenance: manual_ui, scheduled, pubsub_event, child_run, etc.
triggered_by_user string or null — Email of the user who triggered the run (manual_ui), or inherited from parent (child_run)
origin string or null — Originating system. 'jarvis' (default) for runs created by the Nistor scheduler; 'dataform_external' for Dataform workflow invocations ingested from outside Nistor by the external-sync cron.
idempotency_key string or null — One run per dispatch attempt; the launch carries this key to the tool
trigger_key string or null — What fired the run, in words (manual:<key>, event:<key>, ...)
fire_slot string (date-time) or null — The schedule slot the run fired for, when it has one
executor_plugin_id string or null — Id of the ExecutorPlugin that dispatched the run

ActionRunDispatchRequest#

POST /action\_runs/dispatch: an ActionRunCreate plus the key and the caller's lease.

Field Type Required Description
action string yes Action name
trigger_id string yes Trigger identifier
node_id string or null — Content node ID (e.g. downstream refresh target)
trigger_datetime string (date-time) or null — When the trigger occurred
start_datetime string (date-time) or null — When the action started
end_datetime string (date-time) or null — When the action ended
system_url string or null — System URL
ui_url string or null — UI URL
is_test boolean or null — Whether this is a test run
is_shadow boolean or null — Whether this is a shadow mode run (real execution, suppressed side effects)
state string or null — Current state
failure_reason string or null — Reason for failure if applicable
triggered_nodes array of string or null — List of node IDs triggered by this action (includes all nodes)
rule_id string (uuid) or null — ID of the rule that triggered this action
retry_number integer — Number of retry attempts on this action
executor_type string or null — Executor type from rule (e.g., 'dataform', 'bigquery', etc.)
total_cost_usd number or null — Total cost in USD for this action run
total_billed_bytes integer or null — Total bytes billed by BigQuery for this action run
cost_basis string or null — How this run's cost is known: measured | reconstructed | estimated | unsupported | unknown. 'unsupported' and 'unknown' carry NO amount, which is what lets the UI tell a real measured $0.00 apart from an unpriced run. NULL means the row predates the vocabulary.
total_queries integer or null — Total number of queries executed in this action run
estimated_cost_usd number or null — Pre-flight dry-run cost estimate in USD
estimated_billed_bytes integer or null — Pre-flight dry-run estimated bytes
execution_details object or null — Detailed execution metadata (trigger info, API responses, lock info, retry history, errors)
parent_action_run_id string (uuid) or null — Parent action run ID for child runs (e.g. downstream refreshes of an event trigger)
triggered_by string or null — Trigger provenance: manual_ui, scheduled, pubsub_event, child_run, etc.
triggered_by_user string or null — Email of the user who triggered the run (manual_ui), or inherited from parent (child_run)
origin string or null — Originating system. 'jarvis' (default) for runs created by the Nistor scheduler; 'dataform_external' for Dataform workflow invocations ingested from outside Nistor by the external-sync cron.
idempotency_key string yes One run per dispatch attempt
trigger_key string or null — What fired the run, in words (manual:<key>, event:<key>, ...)
fire_slot string (date-time) or null — The schedule slot the run fired for, when it has one
executor_plugin_id string or null — Id of the ExecutorPlugin that dispatched the run
dispatch_owner string yes The caller's owner token
lease_seconds integer — How long the caller's lease lasts
launch boolean — True when the caller launches right after, which counts one attempt. False reserves the key only (the manual-run endpoint reserves; its worker thread launches).
dispatch_context object — What the reclaimer needs to drive the dispatch again; stored as execution_details.dispatch

ActionRunDispatchResponse#

Field Type Required Description
outcome string (enum) yes —
previous_attempts integer — Launches made under this key before this call
run ActionRun yes —

ActionRunFinalizeDispatch#

POST /action\_runs/{id}/finalize-dispatch: the run's real fields, sent by its lease owner.

Field Type Required Description
action string or null — Action name
trigger_id string or null — Trigger identifier
trigger_datetime string (date-time) or null — When the trigger occurred
start_datetime string (date-time) or null — When the action started
end_datetime string (date-time) or null — When the action ended
system_url string or null — System URL
ui_url string or null — UI URL
is_test boolean or null — Whether this is a test run
is_shadow boolean or null — Whether this is a shadow mode run
state string or null — Current state
failure_reason string or null — Reason for failure if applicable
triggered_nodes array of string or null — List of node IDs triggered by this action (includes all nodes)
rule_id string (uuid) or null — ID of the rule that triggered this action
retry_number integer or null — Number of retry attempts on this action
executor_type string or null — Executor type from rule (e.g., 'dataform', 'bigquery', etc.)
total_cost_usd number or null — Total cost in USD for this action run
total_billed_bytes integer or null — Total bytes billed by BigQuery for this action run
cost_basis string or null — How this run's cost is known: measured | reconstructed | estimated | unsupported | unknown. Must travel with any cost amount written here — an amount without a basis is the defect the vocabulary exists to prevent.
total_queries integer or null — Total number of queries executed in this action run
estimated_cost_usd number or null — Pre-flight dry-run cost estimate in USD
estimated_billed_bytes integer or null — Pre-flight dry-run estimated bytes
execution_details object or null — Detailed execution metadata (trigger info, API responses, lock info, retry history, errors)
triggered_by string or null — Trigger provenance: manual_ui, scheduled, pubsub_event, child_run, etc.
triggered_by_user string or null — Email of the user who triggered the run, or inherited from parent for child runs
dispatch_owner string yes —

ActionRunLock#

Type: object.

ActionRunLockBulkRequest#

Schema for bulk lock operations

Field Type Required Description
node_ids array of string yes List of node IDs to lock
locked_by string yes Identifier of who/what is locking the nodes
expires_at string (date-time) or null — When the locks expire (null for permanent locks)
lock_reason string or null — Reason for the locks

ActionRunLockBulkResponse#

Schema for bulk lock operation responses

Field Type Required Description
success array of string — Node IDs that were successfully locked
failed array of string — Node IDs that failed to be locked
already_locked array of string — Node IDs that were already locked

ActionRunLockCreate#

Field Type Required Description
node_id string yes Node ID to lock
locked_by string yes Identifier of who/what locked the node
expires_at string (date-time) or null — When the lock expires (null for permanent locks)
lock_reason string or null — Reason for the lock

ActionRunLockHistory#

Type: object.

ActionRunLockUpdate#

Field Type Required Description
locked_by string or null — Identifier of who/what locked the node
expires_at string (date-time) or null — When the lock expires
is_active boolean or null — Whether the lock is active
lock_reason string or null — Reason for the lock

ActionRunResolveRequest#

Field Type Required Description
state string (enum) yes Terminal outcome to record
ended_at string (date-time) yes When the run actually ended (timezone-aware)
reason string yes Why the record is being corrected (3–500 chars)

ActionRunResumeInfo#

Type: object.

ActionRunRollup15MinResponse#

Field Type Required Description
bucket_start string (date-time) yes —
bucket_end string (date-time) yes —
executor_type string or null — —
state string or null — —
run_count integer — —
success_count integer — —
failure_count integer — —
total_cost_usd number — —
total_billed_bytes integer — —
id string (uuid) yes —
created_at string (date-time) yes —
last_consolidated_at string (date-time) yes —

ActionRunRollupDailyResponse#

Field Type Required Description
date string (date-time) yes —
executor_type string or null — —
state string or null — —
run_count integer — —
success_count integer — —
failure_count integer — —
total_cost_usd number — —
total_billed_bytes integer — —
id string (uuid) yes —
created_at string (date-time) yes —
last_consolidated_at string (date-time) yes —

ActionRunUnlockBulkRequest#

Schema for bulk unlock operations

Field Type Required Description
node_ids array of string yes List of node IDs to unlock
locked_by string or null — Only unlock if locked by this identifier (optional)

ActionRunUpdate#

Field Type Required Description
action string or null — Action name
trigger_id string or null — Trigger identifier
trigger_datetime string (date-time) or null — When the trigger occurred
start_datetime string (date-time) or null — When the action started
end_datetime string (date-time) or null — When the action ended
system_url string or null — System URL
ui_url string or null — UI URL
is_test boolean or null — Whether this is a test run
is_shadow boolean or null — Whether this is a shadow mode run
state string or null — Current state
failure_reason string or null — Reason for failure if applicable
triggered_nodes array of string or null — List of node IDs triggered by this action (includes all nodes)
rule_id string (uuid) or null — ID of the rule that triggered this action
retry_number integer or null — Number of retry attempts on this action
executor_type string or null — Executor type from rule (e.g., 'dataform', 'bigquery', etc.)
total_cost_usd number or null — Total cost in USD for this action run
total_billed_bytes integer or null — Total bytes billed by BigQuery for this action run
cost_basis string or null — How this run's cost is known: measured | reconstructed | estimated | unsupported | unknown. Must travel with any cost amount written here — an amount without a basis is the defect the vocabulary exists to prevent.
total_queries integer or null — Total number of queries executed in this action run
estimated_cost_usd number or null — Pre-flight dry-run cost estimate in USD
estimated_billed_bytes integer or null — Pre-flight dry-run estimated bytes
execution_details object or null — Detailed execution metadata (trigger info, API responses, lock info, retry history, errors)
triggered_by string or null — Trigger provenance: manual_ui, scheduled, pubsub_event, child_run, etc.
triggered_by_user string or null — Email of the user who triggered the run, or inherited from parent for child runs

ActionStats#

Stats for user actions (manual runs, etc.).

Field Type Required Description
action_type string yes —
count integer yes —
unique_users integer yes —

ActivityBroadcastRequest#

Field Type Required Description
buckets array of ActivityBucketIn yes —

ActivityBucketIn#

One read-or-write bucket for one (env, project, minute).

Field Type Required Description
bucket_minute string (date-time) yes —
environment string yes dev | test | prod
project_id string yes —
statement_class string yes 'read' | 'write'
job_count integer yes —
total_bytes_processed integer yes —
total_bytes_billed integer yes —
total_slot_ms integer yes —

ActivityBucketOut#

Field Type Required Description
bucket_minute string (date-time) yes —
environment string yes —
project_id string yes —
statement_class string yes —
job_count integer yes —
total_bytes_processed integer yes —
total_bytes_billed integer yes —
total_slot_ms integer yes —

ActivityBulkRequest#

Request payload: a list of node_ids to enrich.

Field Type Required Description
node_ids array of string yes Node IDs to enrich with activity data.
as_of string (date-time) or null — Optional point-in-time. When set, last\_run / last\_change reflect the run/write that was current *at or before* this instant (the Data Trust group chain's historical replay) rather than now. Forward-looking fields (next\_fire) are omitted for a past view.

ActivityBulkResponse#

Response payload — entries keyed by node_id.

Field Type Required Description
entries object of nistor_backend__schemas__activity_bulk__ActivityEntry — —

ActivityFeedResponse#

Type: object.

ActivityKind#

The kind of event a timeline entry represents.

One of: "state_change", "alert_sent", "incident_opened", "incident_resolved", "workspace_created", "workspace_updated", "workspace_deleted", "asset_added", "asset_removed", "policy_added", "policy_removed".

ActivityPoint#

Field Type Required Description
date string (date) yes —
write_count integer yes —
read_count integer yes —
write_billed_bytes integer yes —
read_billed_bytes integer yes —

ActivitySeverity#

One of: "info", "warning", "critical".

ActualFire#

Field Type Required Description
at string (date-time) yes —
action_run_id string (uuid) yes —
state string or null — —

AddFailureRequest#

Request model for adding a failure to an incident

Field Type Required Description
failure_datetime string yes ISO datetime string of the failure
new_nodes array of string or null — Optional nodes to append to affected_nodes (used by per-rule dedup so the incident grows its node coverage instead of spawning a peer).

AffectedIncidentOut#

Field Type Required Description
incident_id string yes —
status string yes —
rule_id string or null — —
action string or null — —
affected_nodes array of string — —
last_failure_datetime string or null — —

AffectedNodeOut#

Field Type Required Description
node_id string yes —
source_kind string yes —
matched_path string or null — —
change_kind string or null — —
note string or null — —

AffectedRuleOut#

Field Type Required Description
rule_id string yes —
rule_name string or null — —
action_type string or null — —
matched_nodes array of string — —

AgentRegistrationCreate#

Register a new agent. owner\_email defaults to the caller server-side.

Field Type Required Description
name string yes —
description string or null — —
allowed_tools array of string or null — Permitted tool names. NULL/empty = all tools allowed.
rate_limit_per_minute integer or null — Per-agent rate cap. NULL = inherit global default.
daily_cost_budget_units integer or null — Per-agent daily budget. NULL = inherit global default.
enforcement_override string or null — Per-agent override of the global enforce flag. NULL = follow global.
owner_email string (email) or null — Who owns the agent. Defaults to the authenticated caller when omitted.

AgentRegistrationCreated#

Registration response that *additionally* carries the one-time raw token.

Field Type Required Description
id string (uuid) yes —
name string yes —
description string or null — —
owner_email string yes —
audience string yes —
token_prefix string or null — —
issued_at string (date-time) yes —
expires_at string (date-time) yes —
enabled boolean yes —
revoked_at string (date-time) or null — —
revoked_by string or null — —
allowed_tools array of string or null — —
rate_limit_per_minute integer or null — —
daily_cost_budget_units integer or null — —
enforcement_override string or null — —
created_at string (date-time) yes —
updated_at string (date-time) yes —
token string yes The raw agent JWT. Shown once — store it now.
system_owned boolean yes —

AgentRegistrationOut#

An agent registration as shown in the console — never carries the raw token.

Field Type Required Description
id string (uuid) yes —
name string yes —
description string or null — —
owner_email string yes —
audience string yes —
token_prefix string or null — —
issued_at string (date-time) yes —
expires_at string (date-time) yes —
enabled boolean yes —
revoked_at string (date-time) or null — —
revoked_by string or null — —
allowed_tools array of string or null — —
rate_limit_per_minute integer or null — —
daily_cost_budget_units integer or null — —
enforcement_override string or null — —
created_at string (date-time) yes —
updated_at string (date-time) yes —
system_owned boolean yes —

AgentRegistrationUpdate#

Patch an existing agent. All fields optional; unset fields are untouched.

Field Type Required Description
name string or null — —
description string or null — —
allowed_tools array of string or null — —
rate_limit_per_minute integer or null — —
daily_cost_budget_units integer or null — —
enforcement_override string or null — —
enabled boolean or null — —

AggregatedSchedulerActions#

Scheduler actions counted per fixed time window ("Nistor activity").

Field Type Required Description
window_minutes integer yes Aggregation window size in minutes
total_windows integer yes Number of non-empty windows returned
items array of SchedulerActionWindow — —

AlertChannel#

Type: object.

AlertChannelCreate#

Field Type Required Description
source string or null — 'code' for code-managed, null for UI-created
code_id string or null — Stable identity for code-managed sync
content_hash string or null — SHA-256 of resolved content; drives the no-op skip
locked boolean — Code-managed rows are locked against UI edits
version integer — Bumped on each update
source_repo string or null — GitLab repo URL (deep-link source)
source_branch string or null — Git branch (deep-link source)
source_file string or null — File path in repo (deep-link source)
source_line integer or null — Line in source file (deep-link source)
name string yes Display name for the channel
description string or null — Channel description
channel_type string — Channel type: gchat, gchat_dm, gchat_space, slack, teams, email, webhook, in_app
webhook_url string or null — Webhook URL for the channel (required for gchat, slack, teams and webhook channels)
is_active boolean — Whether the channel is active
environment string or null — Environment filter: prod, test, dev, or null=all
channel_metadata object or null — Additional metadata (team, tags, etc.). For email channels: {"recipients": ["a@b.com"]}; for gchat_dm: {"target_email": "u@b.com"}; for gchat_space (app-posted, interactive buttons): {"space_name": "spaces/…"} (a space id or Chat URL is normalised). Optional "audience": "business" | "technical" selects the card rendering (default technical). Optional "timezone": an IANA name (e.g. "Europe/Paris") renders alert times for this channel in that zone (default: the global ALERT_DISPLAY_TIMEZONE). Optional "recipients_from": "node_owners" (email / in_app) adds the catalog owners of the alert's nodes to the recipients; the static list becomes optional and is the fallback.
team string or null — Slug of the owning team. Omitted or null: Unassigned, as before. Never a column: the route resolves it and stamps namespace_id.

AlertChannelDeliveries#

Field Type Required Description
by_status object of integer yes sent/failed/queued/pending/retrying counts inside the window
by_event_type object of object of integer yes event_type -> status -> count, non-zero only
last_sent_at string (date-time) or null — Latest successful delivery, not windowed
oldest_queued_at string (date-time) or null — Oldest still-queued row, not windowed
queued_backlog integer — Every still-queued row on the channel, not windowed
queued_overdue integer — Queued rows older than their expected hold (the policy's batch window, 900 s by default; 7 days for digests) plus a 30-minute grace, not windowed. Non-zero means the batch drain is not taking them.

AlertChannelSubscriptionNode#

Field Type Required Description
node_id string yes —
notify_on array of string yes Distinct notify_on values across the node's active subscribers, sorted
subscriber_count integer yes —

AlertChannelSubscriptions#

Node subscriptions pushing to the channel (node_subscription.channel_id).

Field Type Required Description
active_count integer yes —
inactive_count integer yes —
subscriber_count integer yes Distinct active subscribers
subscribers array of string yes Their emails, sorted
triggers object of integer yes run_complete / dq_pass -> active subscriptions firing on it; a 'both' subscription counts in each
node_count integer yes Distinct nodes with an active subscription, uncapped
nodes array of AlertChannelSubscriptionNode yes Per-node detail, the first 100 by node_id

AlertChannelSummaryEntry#

Field Type Required Description
policies array of AlertChannelSummaryPolicy yes —
deliveries AlertChannelDeliveries yes —
subscriptions AlertChannelSubscriptions yes —

AlertChannelSummaryPolicy#

The routing-relevant slice of a policy targeting a channel.

Field Type Required Description
id string (uuid) yes —
name string yes —
is_active boolean yes —
scope_type string yes —
scope_id string or null — —
event_types array of string — —
min_severity string or null — —
conditions object or null — —
delivery_mode string — —
alert_on_recovery boolean — —
quiet_hours object or null — —
cooldown_seconds integer — —
source string or null — —
locked boolean — —

AlertChannelSummaryResponse#

Field Type Required Description
window_days integer yes —
channels object of AlertChannelSummaryEntry yes Keyed by channel id

AlertChannelUpdate#

Field Type Required Description
source string or null — —
code_id string or null — —
content_hash string or null — —
locked boolean or null — —
version integer or null — —
source_repo string or null — —
source_branch string or null — —
source_file string or null — —
source_line integer or null — —
team string or null — Slug of the team to move the row to. Omitted: unchanged; null: Unassigned. Never a column: the route resolves it and stamps namespace_id.
name string or null — Display name for the channel
description string or null — Channel description
channel_type string or null — Channel type: gchat, gchat_dm, gchat_space, slack, teams, email, webhook, in_app
webhook_url string or null — Webhook URL for the channel (required for gchat, slack, teams and webhook channels)
is_active boolean or null — Whether the channel is active
environment string or null — Environment filter
channel_metadata object or null — Additional metadata. For gchat_space: {"space_name": "spaces/…"}. Optional "audience": "business" | "technical". Optional "timezone": an IANA name (e.g. "Europe/Paris"). Optional "minor_delivery": "batched" | "daily_9am" | "daily_18pm" | "weekly_monday_9am". Optional "recipients_from": "node_owners" (email / in_app) adds the catalog owners of the alert's nodes to the recipients; the static list becomes optional and is the fallback.

AlertHistory#

Type: object.

AlertHistoryChannel#

Lightweight channel info embedded in alert history responses.

Field Type Required Description
id string (uuid) yes —
name string yes —
channel_type string yes —
channel_metadata object or null — —

AlertPolicy#

Type: object.

AlertPolicyCreate#

Field Type Required Description
source string or null — 'code' for code-managed, null for UI-created
code_id string or null — Stable identity for code-managed sync
content_hash string or null — SHA-256 of resolved content; drives the no-op skip
locked boolean — Code-managed rows are locked against UI edits
version integer — Bumped on each update
source_repo string or null — GitLab repo URL (deep-link source)
source_branch string or null — Git branch (deep-link source)
source_file string or null — File path in repo (deep-link source)
source_line integer or null — Line in source file (deep-link source)
name string yes Policy name
description string or null — Policy description
is_active boolean — Whether the policy is active
scope_type string — Scope type: global, compiler, rule, node
scope_id string or null — Scope entity ID (null for global)
event_types array of string — Event types that trigger this policy
min_severity string or null — Minimum severity to trigger: critical, high, medium, low
conditions object or null — Additional filter conditions. Supported keys: 'environment' (str|list), 'executor_type' (str|list), 'node_types' (list of node-type family prefixes such as ['Microstrategy', 'Bigquery']) to restrict the policy to events involving those resource types, and 'incident_type' (str|list) to restrict incident_* events to given incident kinds (e.g. ['loss_of_signal']).
channel_ids array of string (uuid) yes Every channel the policy delivers to (fan-out: each gets the same alert).
cooldown_seconds integer — Deduplication cooldown window in seconds
incident_dedup_seconds integer or null — Suppress re-alerts while an incident is open. null=use system default (3600s/1h), 0=disabled, 86400=once/day.
delivery_mode string — Delivery mode: immediate, batched, digest
batch_window_seconds integer or null — Batch accumulation window in seconds
digest_cron string or null — Digest schedule: daily_9am, daily_18pm, weekly_monday_9am
minor_delivery string or null — Where the medium/low alerts of an immediate policy go: 'batched' (5-minute batches), 'daily_9am', 'daily_18pm' or 'weekly_monday_9am' (one report card per slot). null = inherit the channel's channel_metadata.minor_delivery, then the platform default.
alert_on_recovery boolean — Whether to send alerts for recovery events (action_success, incident_resolved). Disabled by default to reduce noise from flapping jobs.
quiet_hours object or null — Suppress non-CRITICAL alerts during off-hours. Format: {"start_hour": 22, "end_hour": 7, "tz_offset": 1} where tz_offset is hours from UTC and start_hour > end_hour means crosses midnight.
team string or null — Slug of the owning team. Omitted or null: Unassigned, as before. Never a column: the route resolves it and stamps namespace_id.

AlertPolicyUpdate#

Field Type Required Description
source string or null — —
code_id string or null — —
content_hash string or null — —
locked boolean or null — —
version integer or null — —
source_repo string or null — —
source_branch string or null — —
source_file string or null — —
source_line integer or null — —
team string or null — Slug of the team to move the row to. Omitted: unchanged; null: Unassigned. Never a column: the route resolves it and stamps namespace_id.
name string or null — Policy name
description string or null — Policy description
is_active boolean or null — Whether the policy is active
scope_type string or null — Scope type
scope_id string or null — Scope entity ID
event_types array of string or null — Event types
min_severity string or null — Minimum severity
conditions object or null — Additional filter conditions. Supported keys: 'environment' (str|list), 'executor_type' (str|list), 'node_types' (list of node-type family prefixes such as ['Microstrategy', 'Bigquery']) to restrict the policy to events involving those resource types, and 'incident_type' (str|list) to restrict incident_* events to given incident kinds (e.g. ['loss_of_signal']).
channel_ids array of string (uuid) or null — Replace the channel set (omit to keep it)
cooldown_seconds integer or null — Deduplication cooldown
incident_dedup_seconds integer or null — Suppress re-alerts while an incident is open. null=use system default (3600s/1h), 0=disabled, 86400=once/day.
delivery_mode string or null — Delivery mode: immediate, batched, digest
batch_window_seconds integer or null — Batch accumulation window in seconds
digest_cron string or null — Digest schedule
minor_delivery string or null — Medium/low delivery: batched, daily_9am, daily_18pm, weekly_monday_9am, or null to inherit
alert_on_recovery boolean or null — Send alerts for recovery events
quiet_hours object or null — Quiet hours config

AncestorBarrierEntry#

Type: object.

AppliesTo#

Which nodes this rule applies to.

Field Type Required Description
node_type string or null — Type of nodes to match (e.g. 'MicrostrategyCube', 'BigqueryTable')
node_ids array of string or null — Node ID patterns (fnmatch globs)
display_names array of string or null — Display-name patterns (glob/regex) — useful for MicroStrategy where names are friendlier than IDs
tags array of string or null — Tags — matches nodes carrying ANY of these
exclude_node_ids array of string or null — Patterns to exclude from matching
pause_node_ids array of string or null — Pause this rule for specific nodes
require_match_approval boolean or null — When true, a node that newly matches stays pending until a human approves it (UI, API, CLI or the rule's match_decisions in Git); only approved nodes fire.

AssetDqBreakdown#

Data-quality breakdown folded into an asset's Trust Score.

Field Type Required Description
checks_total integer — —
checks_passing integer — —
checks_failing integer — —
dq_penalty number — —
dimensions array of AssetQualityDimension — —

AssetGraphDirection#

One of: "ancestors", "descendants", "both".

AssetGraphNode#

A single node in the asset graph payload.

Field Type Required Description
node_id string yes —
node_type string or null — —
extra object — Other lineage fields
monitored boolean — —
asset_id string (uuid) or null — —
asset_name string or null — —
status HealthStatus or null — —
is_fresh boolean or null — —
recent_success_rate number or null — —
last_refresh_time string (date-time) or null — —

AssetGraphPayload#

Type: object.

AssetHealthSnapshotOut#

Type: object.

AssetOut#

Field Type Required Description
id string (uuid) yes —
urn string yes —
tool_id string yes —
node_type string yes —
environment string or null — —
first_seen_at string (date-time) or null — —
last_seen_at string (date-time) or null — —

AssetPage#

Field Type Required Description
items array of AssetOut yes —
total integer yes Total matching the same filters, ignoring pagination
limit integer yes —
offset integer yes —

AssetQualityBreach#

One failing DQ check on an asset, with its metric value vs. threshold.

Field Type Required Description
check_id string (uuid) yes —
check_name string or null — —
check_type string or null — —
quality_dimension string yes —
status string yes —
metric_value number or null — —
expected_range object or null — —
last_run_at string (date-time) or null — —
error_message string or null — —

AssetQualityDimension#

Per-quality-dimension rollup (Collibra-style) for one asset.

Field Type Required Description
dimension string yes —
score number or null — —
total_checks integer — —
passing integer — —
failing integer — —
breaches array of AssetQualityBreach — —

AssetScopeUpdate#

Payload for PUT /groups/{id}/assets/{id}/scope.

Field Type Required Description
monitoring_scope MonitoringScope — —
scope_depth integer or null — Lineage walk depth; NULL = unlimited

AssetSearchResult#

A catalog asset (table/dashboard/cube) — the documented thing itself, matched on its id, description/readme, or owner email.

Field Type Required Description
entity_type string — —
node_id string yes —
description string or null — —
owner_email string or null — —
asset_type string or null — —
certification_status string or null — —
rank number yes —

AssetSloBudget#

Type: object.

AssetSloBudgetWindow#

One multi-window burn alert, evaluated against its firing threshold.

Field Type Required Description
window_hours integer yes —
severity string yes —
burn_rate number yes —
firing_burn_rate number yes —
fired boolean yes —

AssetSLOConfig-Input#

Per-asset SLO configuration. Stored on monitored\_asset.slo\_config.

Field Type Required Description
freshness FreshnessSLO-Input or null — —

AssetSLOConfig-Output#

Per-asset SLO configuration. Stored on monitored\_asset.slo\_config.

Field Type Required Description
freshness FreshnessSLO-Output or null — —

AssetSLOResponse#

What the GET /assets/{id}/slo endpoint returns.

Field Type Required Description
asset_id string (uuid) yes —
overridden boolean yes —
config AssetSLOConfig-Output yes —
paused boolean — —
paused_reason string or null — —

AssetStatusItem#

Type: object.

AssetTrustDetail#

Type: object.

AssetType#

Legacy MicroStrategy asset types — kept for backwards compatibility.

One of: "cube", "report", "irr", "dashboard".

AuditChainBreak#

A single detected discontinuity in the audit hash chain.

Field Type Required Description
id string or null — —
index integer yes —
reason string yes —
expected string or null — —
stored string or null — —
expected_prev_hash string or null — —
stored_prev_hash string or null — —

AuditChainIntegrityResponse#

Result of recomputing and verifying the audit-log tamper-evidence chain.

Field Type Required Description
checked integer yes Number of chained rows verified
ok boolean yes True when no breaks were detected
breaks array of AuditChainBreak — —
first_checked_id string or null — —
last_checked_id string or null — —

AuditLogResponse#

Generic response for audit log entries.

Field Type Required Description
id string (uuid) yes —
performed_by string yes —
action_category string yes —
action_type string yes —
resource_type string or null — —
resource_id string or null — —
details object or null — —
status string or null — —
error_message string or null — —
environment string or null — —
created_at string (date-time) yes —
updated_at string (date-time) yes —

AutoCloseRequest#

Request model for auto-closing an incident

Field Type Required Description
rule_id string (uuid) or null — Rule ID — None for externally-ingested runs (microstrategy/datafusion external runs)
affected_nodes array of string yes List of affected nodes
action string yes Action name
success_datetime string yes ISO datetime string when action succeeded

B#

BackfillClassificationResponse#

Result of the write-once incident-classification backfill.

Field Type Required Description
updated integer yes Number of incident rows classified by this run

BackfillRequest#

Field Type Required Description
start_date string (date-time) yes Backfill window start (inclusive)
end_date string (date-time) yes Backfill window end (inclusive)
dry_run boolean — If true, return the plan without executing
fail_strategy string (enum) — abort: stop everything on first failure. continue_independent: skip dependent branches, continue independent ones.

BackfillResponse#

Outcome of a click on the 'Backfill from BigQuery' button.

Field Type Required Description
metrics BqTableMetricsResponse yes —
days_backfilled integer — —
bytes_scanned integer — —
slot_millis integer — —
error string or null — —

BackfillRunDetailResponse#

Type: object.

BackfillRunResponse#

Type: object.

BackfillRunStepResponse#

Type: object.

BackingOffOut#

Field Type Required Description
count integer yes Fresh processes currently backing off from MSTR logins
earliest_retry string (date-time) or null — Soonest moment any backing-off process will retry, or null when none is backing off

BarrierStateSummary#

Type: object.

BlastRadiusNode#

Field Type Required Description
node_id string yes —
display_name string yes —
node_type string yes —
verdict string yes —
competing array of object — —
competing_total integer — —
cost_window_usd number or null — —
cost_is_measured boolean — —
recent_event_count integer or null — —

BlastRadiusRequest#

Resolve an unsaved rule against the live node graph.

Field Type Required Description
rule object yes A rule in the canonical shape (applies_to / when / if / then).
limit integer — Maximum node rows returned; the total is reported regardless.
cost_days integer — Window for the per-node cost and event counts.

BlastRadiusResponse#

Field Type Required Description
matched array of BlastRadiusNode yes —
total_matched integer yes How many nodes the rule's applies_to selector REACHES — every node it matches, including the ones where it loses the priority contest to an incumbent. This is the blast radius in the safety sense ('what am I touching?'), so it is deliberately NOT the same number as /validate's matched_node_count, which counts only the nodes the rule would actually WIN and therefore run on. Label the two differently in the UI (e.g. 'reaches N nodes' vs 'would run on N nodes'); presenting either as 'matched nodes' makes them look like a contradiction. Reported in full even when matched is truncated by limit.
truncated boolean yes —
resolved_env string or null — —
notes array of string — —

BoundObject#

A metric/attribute referenced by a visualization or a selector.

Field Type Required Description
object_id string or null — —
name string or null — —
object_type string or null — —
node_id string or null — —
acl_gated boolean — —

BqTableMetricsResponse#

All five time series for one BigQuery table over the requested period.

Field Type Required Description
storage array of StoragePoint — —
activity array of ActivityPoint — —
rows array of RowMovementPoint — —
cost array of CostPoint — —
enrichment array of EnrichmentPoint — —
latest_live StoragePoint or null — Populated only by POST /refresh — one fresh INFORMATION_SCHEMA-derived point.

BudgetOut#

Field Type Required Description
as_of string (date-time) yes —
window_seconds integer yes —
tools array of ToolOut yes —

BulkReplayRequest#

Field Type Required Description
action_run_ids array of string (uuid) yes —

BulkReplayResponse#

Field Type Required Description
batch_id string yes —
accepted integer yes —

BurnAlertSeverity#

One of: "warning", "critical".

BurnAlertWindow#

One alert rule on a rolling burn window.

Field Type Required Description
window_hours integer yes —
budget_consumed_threshold number yes —
severity BurnAlertSeverity — —

BusinessCalendarCreate#

Field Type Required Description
name string yes Unique human-readable name
country_code string yes ISO country code supported by the business-calendar provider (e.g. 'BE', 'US', 'FR')
subdivision_code string or null — Optional subdivision for countries with regional calendars (e.g. 'US-NY')
description string or null — —
extra_holidays array of ExtraDay or null — Dates that should be treated as non-working in addition to the country calendar
extra_working_days array of ExtraDay or null — Dates that should be treated as working days even if the country calendar marks them as holidays

BusinessCalendarRead#

Field Type Required Description
name string yes Unique human-readable name
country_code string yes ISO country code supported by the business-calendar provider (e.g. 'BE', 'US', 'FR')
subdivision_code string or null — Optional subdivision for countries with regional calendars (e.g. 'US-NY')
description string or null — —
extra_holidays array of ExtraDay or null — Dates that should be treated as non-working in addition to the country calendar
extra_working_days array of ExtraDay or null — Dates that should be treated as working days even if the country calendar marks them as holidays
id string (uuid) yes —
status string yes —
created_by string or null — —
created_at string (date-time) yes —
updated_at string (date-time) yes —

BusinessCalendarUpdate#

Field Type Required Description
name string or null — —
country_code string or null — —
subdivision_code string or null — —
description string or null — —
extra_holidays array of ExtraDay or null — —
extra_working_days array of ExtraDay or null — —
status string or null — —

C#

CancelMicrostrategyJobsRequest#

The cancel-jobs body: the jobs (job\_ids, or the legacy alias encoded\_job\_ids; bare "143242" or encoded "143242:&lt;node&gt;") and, optionally, the failed run whose lock conflict named them.

Field Type Required Description
job_ids array of string or integer or null — —
encoded_job_ids array of string or integer or null — —
action_run_id string (uuid) or null — The failed run whose lock conflict named the jobs

CapabilityOut#

Capability + activation state as seen by the frontend.

Field Type Required Description
key string yes —
name string yes —
description string — —
required_tools array of string — —
enabled boolean yes —
scope string — —
updated_by string or null — —
updated_at string (date-time) or null — —
toggleable boolean — —

CapabilityRef#

Field Type Required Description
key string yes —
name string yes —
enabled boolean yes True if enabled in DB or absent (default-enabled)
seeded boolean yes True if a row exists in the capabilities table

CapabilityToggle#

Body for PATCH /api/v1/capabilities/{key}.

Field Type Required Description
enabled boolean yes —
scope string or null — —

CatalogNodeSearchResult#

A single node returned by the full-text search endpoint.

Field Type Required Description
node_id string yes —
display_name string or null — —
node_type string or null — —
display_type string or null — —
environment string or null — —
hierarchy object or null — —
ancestors_count integer — —
descendants_count integer — —
rank number — ts_rank relevance score
popularity_score number — —
popularity_stars integer — —
popularity_views integer — —
popularity_unique_users integer — —
popularity_reads integer — —
popularity_readers integer — —
last_read_at string or null — —
deployment_sources array of DeploymentSourceSummary — —
description_source string or null — —
owner_email string or null — —
last_synced_at string or null — —

CatalogSearchResponse#

Response envelope for the FTS search endpoint.

Field Type Required Description
nodes array of CatalogNodeSearchResult yes —
count integer yes Number of nodes in this response page
total_count integer yes Total nodes matching the query
limit_reached boolean yes True if more results exist beyond this page

ChainExecuteRequest#

Field Type Required Description
trigger_node_id string or null — Node that triggered the chain
fail_strategy string (enum) — Chain-level failure strategy override

ChainRunDetailResponse#

Type: object.

ChainRunResponse#

Type: object.

ChainRunStepResponse#

Type: object.

ChainSpec#

Schema for the chain_spec JSONB stored in ActionChainDefinition.

Field Type Required Description
steps array of ChainStepSpec yes Ordered list of chain steps

ChainStep-Input#

One step in a multi-step action chain.

Field Type Required Description
key string yes —
type string yes —
parameters ActionParameters or null — —
after array of string or null — —
on_failure string (enum) — —
node_ids array of string or null — Per-step target node(s) the step's action runs on. A step maps to a single action_run, so the first entry is used; when unset the step runs against the chain's trigger node. Lets one chain refresh several distinct nodes in sequence (e.g. successive MicroStrategy incremental-refresh reports).

ChainStep-Output#

One step in a multi-step action chain.

Field Type Required Description
key string yes —
type string yes —
parameters ActionParameters or null — —
after array of string or null — —
on_failure string (enum) — —
node_ids array of string or null — Per-step target node(s) the step's action runs on. A step maps to a single action_run, so the first entry is used; when unset the step runs against the chain's trigger node. Lets one chain refresh several distinct nodes in sequence (e.g. successive MicroStrategy incremental-refresh reports).

ChainStepAttemptResponse#

Type: object.

ChainStepRetryPolicy#

Field Type Required Description
max_retries integer — Maximum retry attempts for this step
backoff_seconds integer — Seconds to wait between retries

ChainStepRetryRequest#

step re-runs only that step; resume re-drives it and everything after.

Field Type Required Description
mode string (enum) — —

ChainStepRollback#

Field Type Required Description
executor_type string yes Executor plugin id for rollback action
action string yes Action string for rollback
parameters object or null — Executor-specific parameters

ChainStepSpec#

Field Type Required Description
key string yes Unique step key within the chain
executor_type string yes Executor plugin id (e.g., 'dataform', 'microstrategy')
action string yes Action string to execute
parameters object or null — Executor-specific parameters
predecessors array of string or null — List of step keys that must complete before this step
condition string or null — Jinja2 expression evaluated against previous step outputs
retry ChainStepRetryPolicy or null — Per-step retry policy
on_failure string (enum) — Behavior on step failure: abort chain, continue independent branches, or rollback
rollback ChainStepRollback or null — Rollback action to execute if this step fails and on_failure is 'rollback'

ChangeEventRead#

A single normalised change event surfaced to the UI.

Field Type Required Description
kind string yes —
node_id string or null — —
occurred_at string (date-time) yes —
summary object yes —
source_id string yes —
commit_sha string or null — —
author string or null — —
repo string or null — —
branch string or null — —
file string or null — —
line integer or null — —
url string or null — —

ChapterInfo#

Field Type Required Description
key string or null — —
name string or null — —
pages array of PageInfo — —

ClaimedWatch#

One leased watch, with everything a probe needs to run.

Field Type Required Description
id string yes —
node_id string yes —
node_type string yes —
probe_id string yes —
probe_config object — —
freshness_facts boolean — —
interval_seconds integer yes —
last_seen_modified string (date-time) or null — —
consecutive_failures integer — —
probe_due boolean — —
last_error_kind string or null — —
fallback_times array of string — —
fallback_time_zone string — —
last_fallback_at string (date-time) or null — —
last_seen_fingerprint string or null — —
pending_fingerprint string or null — —
pending_observed_at string (date-time) or null — —
last_exact_read_at string (date-time) or null — —
last_exact_bytes integer or null — —
connection_id string or null — —

ClaimRequest#

Field Type Required Description
limit integer — Maximum watches to lease in this tick
lease_seconds integer — How long the lease is held
node_ids array of string or null — —

ClaimResponse#

Field Type Required Description
watches array of ClaimedWatch — —

CloudSqlInstanceHistoryPoint#

Field Type Required Description
captured_at string (date-time) yes —
total_bytes integer yes —
table_count integer yes —

CloudSqlInstanceHistoryResponse#

Field Type Required Description
instance_node_id string yes —
points array of CloudSqlInstanceHistoryPoint — —

CloudSqlInstanceTablesResponse#

Field Type Required Description
instance_node_id string yes —
project_id string yes —
instance_name string yes —
captured_at string (date-time) or null — —
total_bytes integer — —
table_count integer — —
tables array of CloudSqlTableCurrent — —

CloudSqlSnapshotIngestRequest#

Field Type Required Description
instance_node_id string yes —
project_id string yes —
instance_name string yes —
captured_at string (date-time) yes —
rows array of CloudSqlSnapshotRow yes —

CloudSqlSnapshotIngestResponse#

Field Type Required Description
instance_node_id string yes —
captured_at string (date-time) yes —
inserted integer yes —

CloudSqlSnapshotRow#

Field Type Required Description
database_name string yes —
schema_name string yes —
table_name string yes —
total_bytes integer yes —
heap_bytes integer yes —
index_bytes integer yes —
toast_bytes integer yes —
n_live_tup integer or null — —
n_dead_tup integer or null — —
last_vacuum string (date-time) or null — —
last_autovacuum string (date-time) or null — —
last_analyze string (date-time) or null — —
last_autoanalyze string (date-time) or null — —

CloudSqlTableCurrent#

Current per-table size for an instance (latest captured_at per table).

Field Type Required Description
database_name string yes —
schema_name string yes —
table_name string yes —
captured_at string (date-time) yes —
total_bytes integer yes —
heap_bytes integer yes —
index_bytes integer yes —
toast_bytes integer yes —
n_live_tup integer or null — —
n_dead_tup integer or null — —
last_vacuum string (date-time) or null — —
last_autovacuum string (date-time) or null — —
last_analyze string (date-time) or null — —
last_autoanalyze string (date-time) or null — —
total_bytes_delta_30d integer or null — —

CloudSqlTableHistoryPoint#

Field Type Required Description
captured_at string (date-time) yes —
total_bytes integer yes —
heap_bytes integer yes —
index_bytes integer yes —
toast_bytes integer yes —
n_live_tup integer or null — —

CloudSqlTableHistoryResponse#

Field Type Required Description
instance_node_id string yes —
database_name string yes —
schema_name string yes —
table_name string yes —
points array of CloudSqlTableHistoryPoint — —

CollabCommentCreate#

Create a comment or a reply on an entity.

Field Type Required Description
body string yes Comment body. @user@domain mentions are auto-extracted.
parent_comment_id string (uuid) or null — Top-level comment id to reply to; omit for a new thread.
comment_type string — discussion | resolution | status_change
environment string or null — Env scope for env-scoped entities (e.g. catalog nodes).

CollabCommentResponse#

A single comment as returned by the API.

Field Type Required Description
id string (uuid) yes —
entity_type string yes —
entity_id string yes —
environment string or null — —
author_email string yes —
body string yes —
parent_comment_id string (uuid) or null — —
comment_type string yes —
mentioned_emails array of string — —
is_edited boolean yes —
is_deleted boolean yes —
is_resolved boolean — —
resolved_by string or null — —
resolved_at string (date-time) or null — —
created_at string (date-time) yes —
updated_at string (date-time) yes —

CollabCommentUpdate#

Edit the body of an existing comment.

Field Type Required Description
body string yes —

ColumnDerivation#

Field Type Required Description
column_name string yes —
derivation_summary string or null — —
source_columns array of SourceColumn — —
has_lineage boolean — —

ColumnDerivationsResponse#

Field Type Required Description
node_id string yes —
node_display_name string or null — —
columns array of ColumnDerivation — —
total_columns integer — —
columns_with_lineage integer — —

ColumnFieldGroupResponse#

The same-field group for one (node\_id, column\_name) origin.

Field Type Required Description
node_id string yes —
column_name string yes —
group array of SameFieldColumn — —
group_size integer — —
truncated boolean — —

ColumnMeta#

Field Type Required Description
name string yes —
type string yes —
mode string or null — —
description string or null — —

ColumnReadCount#

Column read count for a specific column

Field Type Required Description
column_name string yes —
read_count integer yes —

ColumnReaderEntry#

One reader (writer principal) of a single column over the look-back window.

Field Type Required Description
principal string yes —
principal_type string yes —
read_count integer yes —
last_read_at string (date-time) or null — —
bytes_processed integer or null — —
is_nistor_user boolean — —
display_name string or null — —
is_admin boolean — —

ColumnReadStatsResponse#

Response model for column read statistics

Field Type Required Description
node_id string yes —
days integer yes —
aggregation_type string yes —
columns array of ColumnReadCount yes —
total_reads integer — —

ColumnSearchResult#

Field Type Required Description
entity_type string — —
node_id string yes —
column_name string yes —
description string or null — —
data_type string or null — —
source string or null — —
rank number yes —

ColumnUsageResponse#

Usage of a single column, aggregated live from input\_logs BIGQUERY\_READ rows whose log\_metadata.fields\_read array references the column (JSONB containment) — Nistor's own ingested audit logs, no live GCP call.

Field Type Required Description
node_id string yes —
column_name string yes —
window_days integer — —
read_count integer — —
rank integer or null — —
total_columns_read integer — —
total_billed_bytes integer or null — —
total_processed_bytes integer or null — —
last_read_at string (date-time) or null — —
total_distinct_readers integer — —
readers array of ColumnReaderEntry — —

CommitImpactRead#

Forward blast-radius of a deploy commit: what it touched + what broke.

Field Type Required Description
commit_sha string yes —
deploy_time string (date-time) or null — —
window_days integer yes —
deployed_nodes array of string yes —
deployed_node_count integer yes —
downstream_node_count integer yes —
impacted_incidents array of ImpactedIncidentRead yes —
est_cost_usd number or null — —

CompatibleSystemRef#

Field Type Required Description
name string yes External system, e.g. 'BigQuery'
detail string yes What the integration extracts or acts on there
icon string or null — Presentational icon slug, e.g. 'bigquery'

CompilationCreate#

Field Type Required Description
gcs_url string yes GCS URL of the compilation
start_of_compilation string (date-time) yes Start datetime of the compilation
end_of_compilation string (date-time) yes End datetime of the compilation
config object or null — Configuration JSON
extraction_statuses array of ExtractionStatus or null — Status of each extraction operation
environment string or null — Environment (dev, test, prod)

CompilationResponse#

Field Type Required Description
gcs_url string yes GCS URL of the compilation
start_of_compilation string (date-time) yes Start datetime of the compilation
end_of_compilation string (date-time) yes End datetime of the compilation
config object or null — Configuration JSON
extraction_statuses array of ExtractionStatus or null — Status of each extraction operation
environment string or null — Environment (dev, test, prod)
id string (uuid) yes —
created_at string (date-time) yes —
updated_at string (date-time) yes —

CompilationTriggerCompatResponse#

Backward-compatible response for GET /compilations/triggers.

Field Type Required Description
id string (uuid) yes —
triggered_by string yes —
environment string yes —
trigger_type string yes —
status string yes —
config object or null — —
created_at string (date-time) yes —
message string yes —

CompilationTriggerRequest#

Request schema for triggering a compilation.

Field Type Required Description
tools array of object or null — Partial compilation config. None = full compilation using stored config.

CompilationUpdate#

Field Type Required Description
gcs_url string or null — —
start_of_compilation string (date-time) or null — —
end_of_compilation string (date-time) or null — —
config object or null — —
extraction_statuses array of ExtractionStatus or null — —
environment string or null — —

CompilerConfigCreate#

Schema for creating compiler configuration records.

Field Type Required Description
environment string yes Environment name (dev, test, prod)
tools array of ToolConfig or null — —
config CompilerConfigData or null — —

CompilerConfigData#

Raw compiler configuration payload.

Field Type Required Description
tools array of ToolConfig — —

CompilerConfigList#

List wrapper for compiler configurations.

Field Type Required Description
configs array of CompilerConfigResponse yes —
total integer yes —

CompilerConfigResponse#

Response schema combining raw compiler config fields.

Field Type Required Description
id string or null — —
environment string yes —
config CompilerConfigData yes —
tools array of ToolConfig — —
created_at string (date-time) or null — —
updated_at string (date-time) or null — —

ConnectionCreate#

Field Type Required Description
name string yes —
tool_type string yes —
description string or null — —
is_default boolean — —
config object — —
secrets object of string (password) — —
cadence_minutes integer — —

ConnectionCredentialsResponse#

Returned to services only. Contains plaintext secret values.

Field Type Required Description
id string (uuid) yes —
name string yes —
tool_type string yes —
config object — —
secrets object of string — —
is_default boolean — —

ConnectionInfoOut#

Read-only connection info for the 'Connect a client' flow: the hosted gateway URL + environment so the UI can pre-fill each client's config. No token here — the raw token is spliced in client-side from the one-time reveal.

Field Type Required Description
remote_mcp_url string yes —
environment string yes —

ConnectionResponse#

Field Type Required Description
id string (uuid) yes —
name string yes —
tool_type string yes —
description string or null — —
status string yes —
is_default boolean yes —
config_json object — —
secret_keys array of string — —
secret_age_days object of integer — —
created_by string or null — —
updated_by string or null — —
last_tested_at string (date-time) or null — —
last_test_status string or null — —
last_test_error string or null — —
cadence_minutes integer — —
next_test_due_at string (date-time) or null — —
created_at string (date-time) or null — —
updated_at string (date-time) or null — —

ConnectionRunner#

Field Type Required Description
runner_id string (uuid) or null — The runner the connection's runs go to; null: this deployment

ConnectionSecretRotateRequest#

Field Type Required Description
key string yes —
new_value string (password) yes —
name_confirmation string yes —

ConnectionSecretRotateResponse#

Field Type Required Description
key string yes —
rotated_at string yes —
previous_disabled boolean yes —

ConnectionTestHistoryEntry#

Field Type Required Description
tested_at string (date-time) yes —
ok boolean yes —
latency_ms integer or null — —
error_text string or null — —
triggered_by string yes —
status string or null — —
vendor_version string or null — —

ConnectionTestResponse#

Field Type Required Description
ok boolean yes —
message string or null — —
status string or null — —

ConnectionUpdate#

Field Type Required Description
description string or null — —
status string or null — —
is_default boolean or null — —
config object or null — —
secrets object of string (password) or null — —
cadence_minutes integer or null — —

ConnectionUsageEntry#

One row of the per-connection usage rollup (Phase 2).

Field Type Required Description
executor_type string yes —
run_count integer yes —
last_used_at string (date-time) yes —

ContainerOut#

Field Type Required Description
container object of string yes —
label string yes —
depth integer yes —
node_count integer yes —
unassigned_count integer yes —
owner OwnerRef or null — —

ContainersResponse#

Field Type Required Description
total_nodes integer yes —
unassigned_nodes integer yes —
items array of ContainerOut yes —

ContractComplianceOut#

GET /{id}/compliance — mirrors ContractAssessment.to\_dict().

Field Type Required Description
contract_id string yes —
compliance number or null — —
compliance_pct number or null — —
measured_pairs integer — —
total_pairs integer — —
compliant_pairs integer — —
by_dimension object — —

ContractDimension#

Which dimension a DimensionSLO governs.

One of: "freshness", "volume", "schema", "quality".

ContractStatus#

Contract lifecycle. Only active contracts are evaluated.

One of: "draft", "active", "deprecated".

ContractVersionsOut#

GET /{id}/versions — current version plus the prior-spec timeline.

Field Type Required Description
contract_id string (uuid) yes —
current_version integer yes —
history array of SpecHistoryEntry — —

CostEstimate#

Field Type Required Description
tables integer yes —
bytes_per_table integer yes —
reads_per_day number yes —
reads_per_day_is_upper_bound boolean yes —
monthly_usd number yes —
price_per_tib number yes —

CostFigure#

One amount of money and how it is known.

Field Type Required Description
amount_usd string or null — —
basis string (enum) yes —
detail string or null — —
sku string or null — —
rate_ref string or null — —
currency "USD" — —
approximate boolean yes Whether the renderer draws a ~. Derived from *basis*, always.

CostLimit#

Field Type Required Description
max_cost_usd number yes —
period CostLimitPeriod yes —

CostLimitPeriod#

One of: "minute", "hour", "day", "week", "month", "year".

CostOfFailureDailyPoint#

Type: object.

CostOfFailureOffender#

Type: object.

CostPoint#

Field Type Required Description
date string (date) yes —
total_cost_usd string yes —

CostPointRead#

One daily cost rollup point on a node timeline.

Field Type Required Description
date string (date-time) or string (date) yes —
total_cost_usd number yes —

CountryOption#

A single entry returned from GET /business_calendars/countries.

Field Type Required Description
code string yes —
label string yes —

CrossEntitySearchResponse#

Field Type Required Description
nodes array of NodeSearchResult yes —
nodes_total integer yes —
incidents array of IncidentSearchResult yes —
incidents_total integer yes —
rules array of RuleSearchResult yes —
rules_total integer yes —
columns array of ColumnSearchResult — —
columns_total integer — —
assets array of AssetSearchResult — —
assets_total integer — —
terms array of TermSearchResult — —
terms_total integer — —
sifflet_rules array of SiffletRuleSearchResult — —
sifflet_rules_total integer — —
query string yes —

CrossEnvCompilationHistoryResponse#

Compilation history per environment, fanned out from a single backend.

Field Type Required Description
dev array of CompilationResponse — —
test array of CompilationResponse — —
prod array of CompilationResponse — —

CrossEnvCompilationResponse#

Last compilation per environment, fanned out from a single backend.

Field Type Required Description
dev CompilationResponse or null — —
test CompilationResponse or null — —
prod CompilationResponse or null — —

CubeDqTargets#

Field Type Required Description
node_id string yes —
acl_gated boolean — —
materialized boolean — —
last_update_time string or null — —
attributes array of DqTargetObject — —
metrics array of DqTargetObject — —
warnings array of string — —

CulpritRead#

A scored, ranked candidate change with its human explanation.

Field Type Required Description
change_event ChangeEventRead yes —
lineage_distance integer yes —
score number yes —
confidence string yes —
reason string yes —
score_breakdown object yes —

CurrentUserResponse#

Schema for current user response (/me endpoint).

Field Type Required Description
email string yes User email address
is_admin boolean yes Whether user has admin privileges
is_active boolean yes Whether user account is active
permissions array of string yes List of permission codes the user has
display_name string or null — User display name
namespace_ids array of string — Namespace IDs the user belongs to
namespace_roles object of string — Mapping of namespace ID to role
demo_visitor string or null — The demo visitor kind ("demo" or "enterprise") when the caller is a demo visitor

CustomPythonJobCreate#

Body for POST /custom-python/jobs (scheduler -> backend).

Field Type Required Description
node_id string or null — —
rule_id string (uuid) or null — —
action string or null — —

CustomPythonJobHeartbeat#

Answer of POST /custom-python/jobs/{id}/heartbeat: False once the job left running.

Field Type Required Description
alive boolean yes —

CustomPythonJobRead#

Field Type Required Description
id string (uuid) yes —
node_id string or null — —
rule_id string (uuid) or null — —
action string or null — —
state string yes —
result object or null — —
error_message string or null — —
started_at string (date-time) or null — —
finished_at string (date-time) or null — —
heartbeat_at string (date-time) or null — —

CustomPythonJobUpdate#

Body for PATCH /custom-python/jobs/{id} (scheduler -> backend).

Field Type Required Description
state string yes running | succeeded | failed
result object or null — —
error_message string or null — —

CustomPythonScriptCreate#

Field Type Required Description
name string yes —
description string or null — —
code string yes The script source; must define the entrypoint.
entrypoint string — —
is_active boolean — —

CustomPythonScriptRead#

Field Type Required Description
name string yes —
description string or null — —
code string yes The script source; must define the entrypoint.
entrypoint string — —
is_active boolean — —
id string (uuid) yes —
created_at string (date-time) yes —
updated_at string (date-time) yes —
created_by string or null — —
updated_by string or null — —

CustomPythonScriptResolve#

Lean shape the scheduler resolves a script by id into.

Field Type Required Description
id string (uuid) yes —
name string yes —
code string yes —
entrypoint string yes —
is_active boolean yes —

CustomPythonScriptUpdate#

Field Type Required Description
name string or null — —
description string or null — —
code string or null — —
entrypoint string or null — —
is_active boolean or null — —

D#

DashboardDqTargets#

Field Type Required Description
node_id string yes —
acl_gated boolean — —
visualizations array of DqTargetVisualization — —
datasets array of DqTargetDataset — —
warnings array of string — —

DashboardImpactSummary#

Aggregated impact metrics for the dashboard.

Field Type Required Description
total_downstream_affected integer yes Unique downstream nodes across all ongoing incidents
incidents_by_impact_tier object of integer — e.g. {"critical": 2, "high": 5, ...}
incident_impacts array of IncidentImpactEntry yes —
stale_nodes array of StaleNodeEntry yes —

DashboardTaxonomyConfig#

The full taxonomy. Resolution order (frontend engine): field → rules → fallback.

Field Type Required Description
field string or null — Dot-path to a metadata value (e.g. 'labels.domain'); when present + non-empty it wins.
rules array of TaxonomyRule — —
fallback TaxonomyGroup — —
order array of string — —

DataContractBreachOut#

Type: object.

DataContractCreate#

Field Type Required Description
name string yes Display name
description string or null — Free-form description
owner string or null — Owning team/person; routes alerts
status ContractStatus — —
dimensions array of DimensionSLO-Input — —
asset_ids array of string (uuid) — monitored_asset ids to attach on create

DataContractOut#

Type: object.

DataContractUpdate#

Partial update. dimensions set => a new spec version is cut server-side.

Field Type Required Description
name string or null — —
description string or null — —
owner string or null — —
status ContractStatus or null — —
dimensions array of DimensionSLO-Input or null — —
is_active boolean or null — —
asset_ids array of string (uuid) or null — If set, replaces the contract's attached assets

DataformNodeResult#

Per-node (per-action) result within a Dataform workflow invocation.

Field Type Required Description
target_name string yes BigQuery target as database.schema.name
node_id string or null — Graph node id (DataformAction_<target_name>)
state string yes SUCCEEDED, FAILED, CANCELLED, RUNNING, SKIPPED, ...
invocation_timing object or null — Per-action timing: {start_time, end_time} (ISO 8601)
duration_seconds number or null — Elapsed seconds for this action
bigquery_job_id string or null — Underlying BigQuery job id, if any
failure_reason string or null — BigQuery error message when state is FAILED

DataformNodeResults#

Envelope for the per-node results of a Dataform action run.

Field Type Required Description
action_run_id string (uuid) yes Action run these results belong to
source string yes 'live' (queried now) or 'persisted' (stored at completion)
state string or null — Overall action run state
total integer — Total number of nodes
succeeded integer — Count of SUCCEEDED nodes
failed integer — Count of FAILED nodes
running integer — Count of RUNNING nodes
other integer — Count of nodes in any other state
nodes array of DataformNodeResult — Per-node results, slowest first

DataplexHealthResponse#

Field Type Required Description
enabled boolean yes —
last_ingest_at string (date-time) or null — —
last_ingest_success boolean or null — —
last_ingest_duration_ms integer or null — —
last_ingest_error string or null — —
scans_total integer — —
rules_total integer — —
schedule_cron string or null — —
schedule_tz string or null — —
schedule_description string or null — —

DataplexNodeBundleResponse#

Field Type Required Description
node_id string yes —
rules array of DataplexRuleResponse — —

DataplexRuleResponse#

One Dataplex rule with its parent-scan context, for the node bundle.

Field Type Required Description
scan_id string yes —
scan_name string yes —
display_name string or null — —
node_id string or null — —
qualified_name string or null — —
rule_key string yes —
rule_name string or null — —
rule_type string or null — —
column_name string or null — —
dimension string or null — —
threshold number or null — —
last_run_status string or null — —
last_run_at string (date-time) or null — —

DatasetInfo#

Field Type Required Description
dataset_id string or null — —
name string or null — —
node_id string or null — —

DataTrustOverview#

Type: object.

DataTrustStatus#

Type: object.

DecisionOut#

Field Type Required Description
allowed boolean yes —
code string yes —
team TeamRef or null — —
via array of ViaOut — —
missing MissingOut or null — —
reason string or null — —

DedupCheckRequest#

Field Type Required Description
source_id string yes —
source_type string yes —
window_seconds integer — —
claimed_by string or null — —

DedupCheckResponse#

Field Type Required Description
should_skip boolean yes —
reason string yes —

DegradedIntegration#

Type: object.

DeploymentRecord#

Field Type Required Description
consumer_node_id string yes —
revision_name string yes —
digest string or null — —
image_node_id string yes —
deployed_at string (date-time) or null — —
traffic_percent integer or null — —
is_latest_ready boolean yes —
first_serving_date string (date) or null — —
last_serving_date string (date) or null — —
last_seen_date string (date) or null — —
observed_now boolean yes —

DeploymentRecordOut#

Field Type Required Description
id string (uuid) yes —
provider string yes —
repo_key string yes —
repo_url string or null — —
ref string or null — —
commit string or null — —
pipeline_url string or null — —
deployed_by string or null — —
deployed_at string (date-time) or null — —
received_at string (date-time) yes —
resource_count integer yes —
matched_count integer yes —
unmatched_count integer yes —
unmatched_sample array of UnmatchedResourceOut — —

DeploymentRepoOut#

Field Type Required Description
repo_key string yes —
repo_url string or null — —
display_name string or null — —
gitops_connection_id string (uuid) or null — —
resources RepoResourcesOut yes —
config RepoConfigOut yes —
last_deployment RepoLastDeploymentOut or null — —
node_id string or null — —
known_from array of string — —
connection RepoConnectionOut or null — —

DeploymentReportResponse#

matched counts catalog nodes that got a source; unmatched counts report resources.

Field Type Required Description
record_id string (uuid) yes —
created boolean yes —
matched integer yes —
unmatched integer yes —
unmatched_sample array of UnmatchedResourceOut — —

DeploymentSourceOut#

One provenance entry of a resource: DeploymentSource.to\_dict() keys plus primary.

Field Type Required Description
provider string yes —
origin string yes —
source_kind string yes —
repo_url string or null — —
repo_key string or null — —
ref string or null — —
commit string or null — —
path string or null — —
line integer or null — —
pipeline_url string or null — —
deployed_at string (date-time) or null — —
deployed_by string or null — —
extra object — —
gitlab_url string or null — —
primary boolean — —

DeploymentSourceSummary#

Compact provenance entry embedded in catalog search results, primary first.

Field Type Required Description
provider string or null — —
origin string or null — —
repo_url string or null — —
repo_key string or null — —
ref string or null — —
commit string or null — —
path string or null — —
line integer or null — —
pipeline_url string or null — —
deployed_at string or null — —
deployed_by string or null — —
extra object — —
primary boolean — —
source_kind string yes —
source_repo string or null — —
source_branch string or null — —
source_commit string or null — —
source_file string or null — —
source_line integer or null — —
terraform_resource_type string or null — —
terraform_resource_name string or null — —
gitlab_url string or null — —

DimensionSLO-Input#

A single dimension's SLO inside a contract spec.

Field Type Required Description
dimension ContractDimension yes —
target number — Desired fraction of compliant time
compute_window_days integer — Rolling SLO window in days
alerts array of BurnAlertWindow — —
sla_hours integer or null — Max hours before data is stale (freshness)
min_rows integer or null — Minimum acceptable row count (volume)
max_delta_pct number or null — Max allowed row-count delta vs. the prior period, in percent (volume)
expected_columns array of string or null — Columns that must be present; missing ones breach (schema)
allow_extra_columns boolean — If False, columns beyond expected_columns also breach (schema)
min_pass_rate number or null — Minimum fraction of DQ checks that must pass (quality)

DimensionSLO-Output#

A single dimension's SLO inside a contract spec.

Field Type Required Description
dimension ContractDimension yes —
target number — Desired fraction of compliant time
compute_window_days integer — Rolling SLO window in days
alerts array of BurnAlertWindow — —
sla_hours integer or null — Max hours before data is stale (freshness)
min_rows integer or null — Minimum acceptable row count (volume)
max_delta_pct number or null — Max allowed row-count delta vs. the prior period, in percent (volume)
expected_columns array of string or null — Columns that must be present; missing ones breach (schema)
allow_extra_columns boolean — If False, columns beyond expected_columns also breach (schema)
min_pass_rate number or null — Minimum fraction of DQ checks that must pass (quality)

DiscussionThreadList#

A page of discussion-thread summaries.

Field Type Required Description
items array of DiscussionThreadSummary yes —
total integer yes —

DiscussionThreadSummary#

A thread root the requested user is involved in (for the profile page).

Field Type Required Description
thread_id string (uuid) yes Root comment id (coalesce(parent_comment_id, id)).
entity_type string yes —
entity_id string yes —
environment string or null — —
snippet string yes Root body truncated ~160 chars ('' if the root is deleted).
author_email string yes Author of the thread root.
reply_count integer yes Non-deleted replies under the root.
last_activity_at string (date-time) yes Max created_at across the thread.
is_resolved boolean yes —
resolved_by string or null — —
mentioned_emails array of string — Mentions on the thread root.

DispatchLeaseRequest#

Field Type Required Description
dispatch_owner string yes —
lease_seconds integer yes 0 lapses the lease now

DispatchOwnersRequest#

Field Type Required Description
owners array of string — —
grace_seconds integer — —

DoChain-Input#

Field Type Required Description
kind "chain" — —
steps array of ChainStep-Input yes —

DoChain-Output#

Field Type Required Description
kind "chain" — —
steps array of ChainStep-Output yes —

DoSingle-Input#

Field Type Required Description
kind "single" — —
action Action-Input yes —

DoSingle-Output#

Field Type Required Description
kind "single" — —
action Action-Output yes —

DossierComposition#

Typed view of a dossier's internal composition. Never persisted.

Field Type Required Description
node_id string yes —
node_type string yes —
object_id string or null — —
project_id string or null — —
name string or null — —
datasets array of DatasetInfo — —
chapters array of ChapterInfo — —
selectors array of SelectorInfo — —
acl_gated boolean — —
partial boolean — —
warnings array of string — —

DownstreamImpactSummary#

Snapshot of downstream-impact metrics for a node.

Field Type Required Description
count integer yes —
computed_at string (date-time) or null — When the underlying descendants_count was last refreshed by the graph pipeline.

DqTargetDataset#

Field Type Required Description
id string or null — —
name string or null — —
materialized boolean — —
last_update_time string or null — —

DqTargetObject#

A metric or attribute a check can address, by GUID.

Field Type Required Description
id string yes —
name string or null — —

DqTargetVisualization#

Field Type Required Description
chapter_key string or null — —
visualization_key string or null — —
name string or null — —
is_grid boolean — —
metrics array of DqTargetObject — —
attributes array of DqTargetObject — —

DueReminderCountResponse#

Lightweight payload for the bell badge poll (mirrors notifications unread-count).

Field Type Required Description
count integer yes —

DueReminderResponse#

Type: object.

E#

EmailSettingsUpdate#

Field Type Required Description
smtp_host string — SMTP server hostname (e.g. smtp.sendgrid.net)
smtp_port integer — SMTP server port
smtp_user string or null — SMTP username
smtp_password string or null — SMTP password
smtp_use_tls boolean — Enable STARTTLS
from_address string — Sender email address
from_name string — Sender display name

EnrichConfig#

Opt-in deep-enrichment for events that match this listener.

Field Type Required Description
job_stats boolean — Fetch the BigQuery job's stats via the REST get_job metadata API (query plan, partitions touched, recompute mode). Free, no slot cost.
storage_delta boolean — Inspect the destination table via INFORMATION_SCHEMA: returns the size delta (TABLE_STORAGE_TIMELINE_BY_PROJECT) AND the list of partitions touched by the job (PARTITIONS). Has slot cost (one merged INFORMATION_SCHEMA query scoped to the destination). Works on its own — it runs the free get_job lookup internally to scope the query window, so job_stats need not also be enabled.

EnrichmentBackfillRunResponse#

Field Type Required Description
id string (uuid) yes —
node_id string yes —
start_date string (date-time) yes —
end_date string (date-time) yes —
source_type string or null — —
state string yes —
total_events integer yes —
completed_events integer yes —
failed_events integer yes —
skipped_events integer yes —
error_message string or null — —
triggered_by string or null — —
started_at string (date-time) yes —
finished_at string (date-time) or null — —
last_progress_at string (date-time) or null — —
created_at string (date-time) yes —
updated_at string (date-time) yes —
percent integer yes Progress 0-100: processed (completed + failed) over total.
is_stalled boolean yes True when a *running* job hasn't made progress recently.

EnrichmentBackfillStart#

Body of POST /input\_logs/node/{node\_id}/enrichment-backfill.

Field Type Required Description
start_date string (date-time) yes Window start (inclusive), UTC.
end_date string (date-time) yes Window end (inclusive), UTC.
source_type string or null — One BigQuery write event type to backfill (e.g. 'BIGQUERY_MERGE'); null = all BQ_WRITE_TYPES.

EnrichmentPoint#

One day's worth of enrichment-derived aggregates for this table.

Field Type Required Description
date string (date) yes —
partitions_modified integer yes —
recompute_modes object of integer — —

EnvironmentDetectionTool#

Base class for environment-detection tools.

Field Type Required Description
type string yes Stable discriminator for this tool kind
name string — Human-readable label for this tool entry

EnvironmentMappingConfig#

Complete environment mapping configuration.

Field Type Required Description
tools array of EnvironmentDetectionTool — Ordered list of environment-detection tools
environments array of string — Canonical environment names
protected_environments array of string — Environments that cannot be used as BigQuery copy targets

EnvironmentMappingTestRequest#

Schema for testing environment mapping patterns.

Field Type Required Description
node_id string yes Node ID to test pattern matching against

EnvironmentMappingTestResponse#

Schema for environment mapping test response.

Field Type Required Description
node_id string yes Original node ID
matched_pattern string or null — Name of matched pattern
detected_environment string or null — Detected environment
canonical_id string or null — Canonical ID without environment
variants object of string or null — Generated variants

ErdColumn#

Field Type Required Description
name string yes —
type string or null — —
is_primary_key boolean — —
is_pii boolean — —
has_lineage boolean — —

ErdColumnEdge#

Field Type Required Description
source_node_id string yes —
source_column string yes —
target_node_id string yes —
target_column string yes —
transformation string or null — —

ErdResponse#

Field Type Required Description
center_node_id string yes —
tables array of ErdTable — —
table_edges array of ErdTableEdge — —
column_edges array of ErdColumnEdge — —

ErdTable#

Field Type Required Description
node_id string yes —
display_name string or null — —
node_type string or null — —
dataset string or null — —
direction string — —
columns array of ErdColumn — —
total_column_count integer — —

ErdTableEdge#

Field Type Required Description
source_node_id string yes —
target_node_id string yes —

ErrorResponse#

Field Type Required Description
detail string yes —
error_code string or null — —

EstateCostOfFailureResponse#

Type: object.

EventListener#

One event listener — what events fire this rule.

Field Type Required Description
origin EventOrigin yes Whose events — the matched node itself, or its ancestors/descendants
types string or array of string yes Event type(s) (e.g. 'BIGQUERY_INSERT')
ancestor_depth string or null — Traversal depth when origin=ancestors (e.g. 'direct', 'direct_materialized')
include_node_ids array of string or null — Only consider events from these nodes
exclude_node_ids array of string or null — Ignore events from these nodes
exclude_node_types array of string or null — Ignore events from nodes of these types (e.g. ['Dimension', 'Fact'])
include_node_types array of string or null — Only consider ancestor events from nodes of these types. For processing node types (e.g. 'DataformAction'), the listener resolves to the producing action(s) of each materialized ancestor — letting a rule listen on the action that builds its input, treating processing nodes as first-class ancestors.
enrich EnrichConfig or null — Opt-in deep enrichment (L2 job stats, L3 size delta) for matching events
poll PollConfig or null — Opt this listener's sources into scheduled last-modified polling, for sources with no audit-log sink. Requires include_node_ids.
statuses array of string or null — For completion listeners (types include DATAFORM_RUN_COMPLETED / ACTION_COMPLETED): which upstream terminal outcomes fire the rule. Omitted is treated as ['success'] by the scheduler. Allowed values: 'success', 'failed', 'cancelled', or 'any'.

EventOrigin#

One of: "self", "ancestors", "descendants".

EventReceiptCheckRequest#

Field Type Required Description
event_key string yes —

EventReceiptCheckResponse#

Field Type Required Description
seen boolean yes —

EventReceiptRequest#

Field Type Required Description
event_key string yes —
source_id string or null — —
window_seconds integer — —

EventReceiptResponse#

Field Type Required Description
recorded boolean yes —

EventsOut#

Field Type Required Description
waits integer yes —
timeouts integer yes —
overflows integer yes —
leaks integer yes —

ExtensionPointRef#

Field Type Required Description
group string yes Entry-point group, e.g. 'nistor.routers'
name string yes Entry-point name
value string or null — Target module:attribute string

ExtensionTokenExchangeRequest#

Body for POST /exchange — the one-time code issued by /redeem.

Field Type Required Description
code string yes The one-time code returned by POST /redeem.

ExtensionTokenRedeemResponse#

Returned by POST /redeem — a one-time exchange code, never the raw JWT.

Field Type Required Description
code string yes Single-use, short-lived code. Trade it at POST /exchange for the JWT.
email string yes Subject (verified user email).
expires_at string (date-time) yes UTC datetime at which the exchange code stops being redeemable.

ExtensionTokenResponse#

Field Type Required Description
token string yes Nistor-signed JWT to send as Authorization: Bearer ...
email string yes Subject (verified user email).
audience string yes JWT aud claim — 'nistor-vscode' on new tokens.
expires_at string (date-time) yes UTC datetime at which the token stops being accepted.

ExtractionStatus#

Status of a single data extraction operation

Field Type Required Description
source_type string yes Type of source (e.g., 'bigquery', 'dataform', 'microstrategy_cubes')
source_id string yes ID of the source (project_id, repository path, etc.)
project_id string or null — Resolved project identifier (if different from source_id)
status string yes Status: 'success', 'failure', or 'skipped'
reason string or null — Reason for failure or skip (e.g., '403 Unauthorized')
items_extracted integer or null — Number of items successfully extracted
node_count integer or null — Number of nodes materialized for this source
error_message string or null — Detailed error message if failed
extraction_time_seconds number or null — Time taken for extraction
started_at string (date-time) or null — Extraction start datetime
finished_at string (date-time) or null — Extraction completion datetime
snapshot_path string or null — GCS path of the partitioned output for this source
run_id string or null — Compilation run identifier
errors array of object or null — Partial extraction errors (per project/service)
failed_count integer or null — Number of partial failures if applicable
carried_forward boolean or null — Nodes reused from a previous compilation
carried_forward_from_run_id string or null — Run of the last REAL extraction (origin)
carried_forward_since string or null — First run that failed for this scope
carried_forward_node_count integer or null — How many nodes were reused
carry_forward_expired boolean or null — Origin older than the TTL: nodes dropped
carry_forward_ttl_days integer or null — The TTL that expired
scope_lost boolean or null — Previously-populated scope collapsed to 0 nodes
previous_node_count integer or null — Node count of the scope's last snapshot

ExtraDay#

A calendar override (extra holiday or extra working day).

Field Type Required Description
date string (date) yes ISO date (YYYY-MM-DD)
name string yes —

F#

Failsafe#

Safety belt — runs the rule if the event-based trigger failed to.

Field Type Required Description
enabled boolean — —
deadline_cron string or array of string or null — —
deadline_after_seconds integer or null — —
time_zone string or null — —
run_lookup FailsafeRunLookup — —
window FailsafeWindowType — —
duplicate_policy FailsafeDuplicatePolicy — —
cooldown_seconds integer or null — —

FailsafeDuplicatePolicy#

One of: "skip", "run_again", "skip_with_cooldown".

FailsafeRunLookup#

One of: "last_success", "last_attempt", "last_terminal".

FailsafeWindowType#

One of: "between_deadlines", "rolling".

FavoriteGroupAssign#

Assign a node to a group, or remove it from any group when group\_id is null.

Field Type Required Description
node_id string yes —
group_id string (uuid) or null — null to ungroup the node

FavoriteGroupCreate#

Field Type Required Description
name string yes Group display name
color string — Hex color
display_order integer — —
visibility string — private | team | general
namespace_id string (uuid) or null — Required when visibility=team

FavoriteGroupMember#

One node that belongs to a (visible) group, enriched from the catalog.

Field Type Required Description
node_id string yes —
favorite_group_id string (uuid) yes —
display_name string or null — —
node_type string or null — —
display_type string or null — —
environment string or null — —

FavoriteGroupOut#

Type: object.

FavoriteGroupsState#

The full team-shared grouping state for one environment.

Field Type Required Description
groups array of FavoriteGroupOut — —
membership object of string (uuid) — —
members array of FavoriteGroupMember — —

FavoriteGroupUpdate#

Field Type Required Description
name string or null — —
color string or null — —
display_order integer or null — —
visibility string or null — private | team | general
namespace_id string (uuid) or null — —

FeedbackCategory#

Feedback categories.

One of: "bug", "feature_request", "improvement", "other".

FeedbackCommentCreate#

Schema for creating a feedback comment.

Field Type Required Description
message string yes Comment message

FeedbackCommentResponse#

Schema for feedback comment response.

Field Type Required Description
id integer yes —
feedback_id integer yes —
author_email string yes —
message string yes —
created_at string (date-time) yes —
updated_at string (date-time) yes —

FeedbackCreate#

Schema for creating feedback.

Field Type Required Description
category FeedbackCategory yes Feedback category
message string yes Feedback message
page_url string or null — Page URL where feedback was submitted
environment string or null — Environment: dev, test, prod

FeedbackResponse#

Schema for feedback response.

Field Type Required Description
id integer yes —
user_email string yes —
category string yes —
message string yes —
page_url string or null yes —
environment string or null yes —
status string yes —
comment_count integer — —
created_at string (date-time) yes —
updated_at string (date-time) yes —

FeedbackStatus#

Feedback statuses.

One of: "new", "read", "in_progress", "resolved".

FeedbackStatusUpdate#

Schema for updating feedback status.

Field Type Required Description
status FeedbackStatus yes New status

FeedItem#

Type: object.

FeedPage#

Field Type Required Description
items array of FeedItem yes —
total integer yes —
skip integer yes —
limit integer yes —
unread_count integer yes —
last_seen_at string (date-time) or null — —

FeedPreference#

Field Type Required Description
digest_frequency string — off | daily | weekly
digest_channel string or null — email | gchat_dm
last_seen_at string (date-time) or null — —

FeedPreferenceUpdate#

Field Type Required Description
digest_frequency string or null — —
digest_channel string or null — —

FeedSeenResponse#

Field Type Required Description
last_seen_at string (date-time) yes —
subscriptions_marked_read integer — —

FeedSummary#

Counts for the nav badge + per-type breakdown ("since you were away").

Field Type Required Description
total integer yes —
unread_count integer yes —
by_type object of integer yes —
unread_by_type object of integer — —
last_seen_at string (date-time) or null — —

FindOpenIncidentRequest#

Request model for finding an open incident.

Field Type Required Description
rule_id string (uuid) or null — Rule ID — None for environment-scoped incidents (slot_saturation, finops_extraction_failure)
affected_nodes array of string yes List of affected nodes
action string yes Action name
node_match string or null — How to compare affected_nodes: exact (default), any, ignore
description string or null — Failure description — when provided alongside severity, signature lookup runs first
severity string or null — Candidate severity — gates signature merge (critical always uses strict path)
error_signature string or null — Explicit root-cause signature. When provided, the lookup matches on (rule_id, error_signature) directly and takes precedence over any description-derived signature — used by callers (cost-estimation pre-flight) that group by a parsed resource the description normalizer would collapse.
external_run_recovery boolean or null — Auto-close-on-success recovery mode. For an external-run action (…\_external\_run:{run\_id}), match the open incident by the stable external-run family prefix + node instead of the volatile per-run action, so a later successful run closes the incident an earlier failed run opened. No-op for normal actions.

FleetOut#

Field Type Required Description
in_use integer yes Requests in flight, summed over fresh processes
bounded_capacity integer yes Sum of capacity over fresh processes that have a limit
unbounded_processes integer yes Fresh processes whose limit is 0 (unbounded)

FreshnessBurnPayload#

Per-asset burn payload covering N rolling windows.

Field Type Required Description
asset_id string (uuid) yes —
target number yes —
windows array of FreshnessBurnWindow yes —

FreshnessBurnWindow#

Burn rate computed over a single rolling window.

Field Type Required Description
window_hours integer yes —
target number yes —
total_snapshots integer yes —
unfresh_snapshots integer yes —
actual_unavailability number yes —
allowed_unavailability number yes —
burn_rate number yes —
budget_remaining number yes 1 - (actual / allowed); negative when budget exhausted

FreshnessExpectation#

Time by which a human expects this rule to have run.

Field Type Required Description
days FreshnessExpectationDays or array of string yes Either a named group ('everyday' | 'weekdays' | 'weekends') or a non-empty list of lowercase weekday names ('monday'..'sunday').
before string yes Local wall-clock deadline in HH:MM (24-hour). Example: '09:00'.
after string or null — Optional local wall-clock start of the window in HH:MM (24-hour), earlier than before on the same day. Only a refresh at or after it counts, so a target refreshed twice a day can be judged on its second refresh. Without it the window starts at local midnight.
time_zone string — IANA time-zone name (e.g. 'Europe/Paris'). Defaults to UTC.
incident_severity FreshnessExpectationSeverity — Severity of the incident raised when the deadline is missed.
success_states array of string or null — Which states of the rule's runs count as a refresh (default: completed, success, retried_success). Free-form on write; the evaluator honours the states core's run producer records and ignores the others with a warning.

FreshnessExpectationDays#

One of: "everyday", "weekdays", "weekends".

FreshnessExpectationSeverity#

One of: "critical", "high", "medium", "low".

FreshnessForecastOut#

Type: object.

FreshnessForecastSummary#

The latest forecast per asset, with a predicted-breach rollup.

Field Type Required Description
generated_at string (date-time) yes —
total integer — —
predicted_breaches integer — —
items array of FreshnessForecastOut — —

FreshnessSLO-Input#

Field Type Required Description
target number — Desired fraction of fresh time
compute_window_days integer — Rolling SLO window in days
alerts array of BurnAlertWindow — —
delivery_deadline_local string or null — Absolute daily freshness deadline as HH:MM (local clock); None = no deadline predicate
deadline_grace_minutes integer — Minutes past the deadline before a miss is declared

FreshnessSLO-Output#

Field Type Required Description
target number — Desired fraction of fresh time
compute_window_days integer — Rolling SLO window in days
alerts array of BurnAlertWindow — —
delivery_deadline_local string or null — Absolute daily freshness deadline as HH:MM (local clock); None = no deadline predicate
deadline_grace_minutes integer — Minutes past the deadline before a miss is declared

G#

GitOpsConnectionCreate#

Field Type Required Description
name string yes —
repo_url string yes —
repo_project_path string yes —
sync_mode string — —
branch_mapping object of string — Maps repo branch names to Nistor environment names
rules_directory string — —
gitlab_token_secret string or null — GCP Secret Manager secret name for GitLab access token (pull mode)
poll_interval_minutes integer — —
mr_impact_enabled boolean — Opt-in: when True, MR webhooks for this repo run impact analysis and post a comment on each MR. Kill-switch for the bot.

GitOpsConnectionResponse#

Field Type Required Description
id string (uuid) yes —
name string yes —
repo_url string yes —
repo_project_path string yes —
sync_mode string yes —
branch_mapping object of string yes —
rules_directory string yes —
gitlab_token_secret string or null — —
poll_interval_minutes integer yes —
status string yes —
mr_impact_enabled boolean — —
last_sync_at string (date-time) or null — —
last_sync_status string or null — —
last_sync_report object or null — —
last_sync_commit string or null — —
last_sync_branch string or null — —
created_by string or null — —
created_at string (date-time) or null — —
updated_at string (date-time) or null — —
last_sync_error string or null — —

GitOpsConnectionTestResponse#

Field Type Required Description
ok boolean yes —
message string yes —

GitOpsConnectionUpdate#

Field Type Required Description
name string or null — —
repo_url string or null — —
repo_project_path string or null — —
sync_mode string or null — —
branch_mapping object of string or null — —
rules_directory string or null — —
gitlab_token_secret string or null — —
poll_interval_minutes integer or null — —
status string or null — —
mr_impact_enabled boolean or null — Toggle the MR impact-analysis bot on or off for this repo.

GitOpsFeaturesResponse#

Which GitOps features this backend runs. The UI shows a feature's controls only when it is on.

Field Type Required Description
pull_enabled boolean yes —
mr_bot_enabled boolean yes —
gitlab_tool_active boolean yes —

GitOpsSyncEventCreate#

Payload sent by CI or pull service after a sync run.

Field Type Required Description
repo_project_path string yes GitLab project path to match connection
repo_url string or null — Repository URL. When no connection exists for repo_project_path, the endpoint registers a ci_push connection from it — a repository that pushes rules from its CI is one. Omitted: an unknown repository is a 404, as before.
branch string yes —
commit_sha string or null — —
environment string yes —
status string yes —
rules_created integer — —
rules_updated integer — —
rules_deleted integer — —
rules_unchanged integer — —
errors integer — —
report object or null — —
pipeline_url string or null — —
triggered_by string or null — —

GitOpsSyncEventResponse#

Field Type Required Description
id string (uuid) yes —
connection_id string (uuid) yes —
branch string yes —
commit_sha string or null — —
environment string yes —
status string yes —
rules_created integer yes —
rules_updated integer yes —
rules_deleted integer yes —
rules_unchanged integer yes —
errors integer yes —
report object or null — —
pipeline_url string or null — —
triggered_by string or null — —
created_at string (date-time) or null — —

GraphDeltaCreate#

Field Type Required Description
node_id string yes —
operation string yes —
payload object or null — —
environment string or null — —
resource_version string or null — —
reciprocal_edges object or null — —
idempotency_key string or null — —

GraphDeltaCreated#

Field Type Required Description
seq integer yes —
node_id string yes —
operation string yes —

GroupActionResponse#

Result of a group-level action (snooze / mark-expected).

Field Type Required Description
success array of string — —
skipped array of string — —
not_found array of string — —
rule_id string or null — —

H#

HealthGroupCreate#

Field Type Required Description
name string yes Group display name
description string or null — —
color string — Hex color
icon string or null — Icon identifier
owner string or null — —
display_order integer — —
is_active boolean — —
alert_config object or null — —
is_public boolean — Visible to all team members
created_by_email string or null — —
asset_ids array of string (uuid) — Assets to include

HealthGroupOut#

Type: object.

HealthGroupStatusItem#

Type: object.

HealthGroupUpdate#

Field Type Required Description
name string or null — —
description string or null — —
color string or null — —
icon string or null — —
owner string or null — —
display_order integer or null — —
is_active boolean or null — —
alert_config object or null — —
asset_ids array of string (uuid) or null — —
is_public boolean or null — —

HealthHeatmapCell#

One day on the 90-day platform health heatmap.

Field Type Required Description
date string (date) yes —
health_ratio number yes —
total_assets integer — —

HealthMode#

One of: "auto", "mstr", "manual".

HealthStatus#

One of: "healthy", "warning", "critical", "unknown".

HealthTrendBucket#

One day of bucketed platform (or workspace) health counts.

Field Type Required Description
date string (date) yes —
healthy integer — —
warning integer — —
critical integer — —
unknown integer — —
total integer — —

HeartbeatCheckResponse#

Field Type Required Description
checked integer — —
touched integer — —
skipped string or null — —
dry_run boolean — —
would_open integer — —
verdicts array of object — —
failed_asset_ids array of string — —

HistoryBucketOut#

Field Type Required Description
bucket_start string (date-time) yes —
max_process_peak integer yes —
max_process_utilisation_pct number or null yes —
waits integer or null yes —
timeouts integer or null yes —
overflows integer or null yes —
leaks integer or null yes —

HistoryOut#

Field Type Required Description
tool string yes —
kind string (enum) yes From the tool's declaration; limiter when undeclared
hours integer yes —
as_of string (date-time) yes —
buckets array of HistoryBucketOut yes —

HottestProcessOut#

Field Type Required Description
service string yes —
instance_id string yes —
pid integer yes —
in_use integer yes —
capacity integer yes —
utilisation_pct number yes —

HTTPValidationError#

Field Type Required Description
detail array of ValidationError — —

I#

IfClause-Input#

Conditions that must hold for the rule to fire.

Field Type Required Description
quiet_period_seconds integer or null — Inactivity window required before firing
quiet_period_max_extension_seconds integer or null — All-ancestors barrier only. Let the quiet period slide when an ancestor writes again while the settle hold is already running, so a continuously-written source is not cut off mid-load. The hold never moves past this many seconds after the cycle's earliest fresh ancestor, so the run still happens. Requires quiet_period_seconds.
max_runtime_seconds integer or null — Kill the action after this many seconds
trigger_liveness TriggerLiveness or null — Tune or disable the trigger-liveness detector for this rule. Absent means enabled with cadence-derived thresholds.
refresh_sla RefreshSla or null — Opt-in: raise a delivery_slo incident when a target is not refreshed within within_seconds of a qualifying upstream write. Absent means the rule is not monitored.
hold_while_upstream_stale boolean or null — Opt-in: hold a firing while a direct upstream asset has an open freshness breach, re-checking every 5 min; a breach opened more than 2 h ago no longer holds. Absent or false: never held for this. Only upstream nodes that are monitored assets can hold (a freshness breach belongs to a monitored asset).
run_limit RunLimit or null — Cap firings per period
cost_limit CostLimit or null — Cap total cost per period
max_estimated_cost_usd number or null — Per-execution dry-run cost gate
touched_partition_within TouchedPartitionWithin or null — Only fire when a BigQuery partition touched by the triggering event falls in a relative calendar window (needs when.events[].enrich.storage_delta).

IfClause-Output#

Conditions that must hold for the rule to fire.

Field Type Required Description
quiet_period_seconds integer or null — Inactivity window required before firing
quiet_period_max_extension_seconds integer or null — All-ancestors barrier only. Let the quiet period slide when an ancestor writes again while the settle hold is already running, so a continuously-written source is not cut off mid-load. The hold never moves past this many seconds after the cycle's earliest fresh ancestor, so the run still happens. Requires quiet_period_seconds.
max_runtime_seconds integer or null — Kill the action after this many seconds
trigger_liveness TriggerLiveness or null — Tune or disable the trigger-liveness detector for this rule. Absent means enabled with cadence-derived thresholds.
refresh_sla RefreshSla or null — Opt-in: raise a delivery_slo incident when a target is not refreshed within within_seconds of a qualifying upstream write. Absent means the rule is not monitored.
hold_while_upstream_stale boolean or null — Opt-in: hold a firing while a direct upstream asset has an open freshness breach, re-checking every 5 min; a breach opened more than 2 h ago no longer holds. Absent or false: never held for this. Only upstream nodes that are monitored assets can hold (a freshness breach belongs to a monitored asset).
run_limit RunLimit or null — Cap firings per period
cost_limit CostLimit or null — Cap total cost per period
max_estimated_cost_usd number or null — Per-execution dry-run cost gate
touched_partition_within TouchedPartitionWithin or null — Only fire when a BigQuery partition touched by the triggering event falls in a relative calendar window (needs when.events[].enrich.storage_delta).

ImageConsumer#

Field Type Required Description
consumer_node_id string yes —
consumer_type string yes —
display_name string yes —
configured_ref string or null — —
configured_image_node_id string or null — —
configured_digest string or null — —
serving array of ServingRevision yes —
drift boolean yes —
last_observed_date string (date) or null — —
stale boolean yes —
in_graph boolean yes —

ImageDeploymentsResponse#

Field Type Required Description
image_node_id string yes —
snapshot_date string (date) or null — —
deployments_observed_date string (date) or null — —
in_use_count integer or null — —
unused_count integer or null — —
unused_bytes_upper_bound integer or null — —
usage_by_digest object of array of VersionUsage yes —
consumers array of ImageConsumer yes —
deployments array of DeploymentRecord yes —
deployments_truncated boolean yes —

ImageHistoryPoint#

Field Type Required Description
date string (date) yes —
logical_size_bytes integer or null — —
version_count integer yes —
source string (enum) yes "snapshot" = a captured day; "reconstructed" = inferred from the pushes still present

ImageLatestVersion#

Field Type Required Description
digest string yes —
tags array of string yes —
size_bytes integer or null — —
create_time string (date-time) or null — —

ImageStorageResponse#

Field Type Required Description
image_node_id string yes —
repository_node_id string or null — —
snapshot_date string (date) or null — —
version_count integer or null — —
logical_size_bytes integer or null — —
latest_version ImageLatestVersion or null — —
share number or null — —
monthly_cost CostFigure or null — Display-only share of the repository figure (logical bytes / all images' logical bytes, each image at its latest snapshot). Never written to rollups; null when the share or the repository figure is unknown.
history array of ImageHistoryPoint yes —
versions array of ImageVersion yes —
versions_truncated boolean — —

ImageVersion#

Field Type Required Description
digest string yes —
tags array of string yes —
size_bytes integer or null — —
create_time string (date-time) or null — —
update_time string (date-time) or null — —

ImpactAnalysisResponse#

Top-level response for the impact analysis endpoint.

Field Type Required Description
origin_node_id string yes —
depth integer yes —
affected_nodes array of ImpactNode yes —
rules array of ImpactRule yes —
dq_checks array of ImpactDQCheck yes —
scheduled_actions array of ImpactScheduledAction yes —
summary ImpactSummary yes —
ledger ImpactLedgerInfo or null — —

ImpactDQCheck#

A data-quality check rule targeting affected nodes.

Field Type Required Description
rule_id string yes —
rule_name string yes —
priority integer yes —
status string yes —
affected_node_ids array of string — —

ImpactedIncidentRead#

An incident plausibly impacted by a commit / appearing on a timeline.

Field Type Required Description
incident_id string yes —
severity string or null — —
status string or null — —
start_date string (date-time) or null — —
affected_nodes array of string yes —

ImpactLedgerInfo#

Field Type Required Description
enabled boolean yes —
since string (date-time) or null — —

ImpactNode#

Lite-serialized downstream node with depth from origin.

Field Type Required Description
node_id string yes —
display_name string or null — —
node_type string or null — —
ui_url string or null — —
depth integer yes Distance from the origin node in the graph
first_write_at string (date-time) or null — —
writes_since integer or null — —
rows_written integer or null — —
confirmed_from_origin boolean or null — —

ImpactNodeCost#

Estimated BQ cost for an affected node (from FinOps daily rollups).

Field Type Required Description
node_id string yes —
avg_daily_cost_usd number — —
total_cost_30d_usd number — —
event_count_30d integer — —

ImpactRule#

A scheduling rule that targets one or more affected nodes.

Field Type Required Description
rule_id string yes —
rule_name string yes —
executor_type string or null — —
priority integer yes —
status string yes —
affected_node_ids array of string — Node IDs among the affected set that this rule targets

ImpactScheduledAction#

A pending scheduled action for an affected node.

Field Type Required Description
action_id string yes —
node_id string yes —
rule_id string or null — —
scheduled_datetime string yes —
source_id string yes —

ImpactSubscriber#

A subscriber on an affected node.

Field Type Required Description
user_id integer yes —
user_email string or null — —
user_display_name string or null — —
node_id string yes —
notify_on string yes —

ImpactSummary#

Aggregate counts.

Field Type Required Description
total_affected_nodes integer yes —
total_rules integer yes —
total_dq_checks integer yes —
total_scheduled_actions integer yes —

Incident#

Type: object.

IncidentAddReporter#

Request model for adding a reporter to an incident

Field Type Required Description
reporter string yes User to add as reporter

IncidentAddWatcher#

Request model for adding a watcher to an incident

Field Type Required Description
watcher string yes User to add as watcher

IncidentAssign#

Request model for assigning an incident to a user

Field Type Required Description
assignee string yes User to assign the incident to

IncidentAttributionRead#

Ranked culprits for one incident.

Field Type Required Description
incident_id string yes —
anchor_time string (date-time) or null — —
window_days integer yes —
status string yes —
candidate_node_count integer yes —
culprits array of CulpritRead yes —

IncidentBulkActionResponse#

Type: object.

IncidentBulkMergeResponse#

Type: object.

IncidentBulkSimpleResponse#

Type: object.

IncidentCommentResponse#

Schema for incident comment response.

Field Type Required Description
id string yes —
incident_id string (uuid) yes —
author_email string yes —
message string yes —
comment_type string yes —
mentioned_emails array of string or null — —
created_at string (date-time) yes —
updated_at string (date-time) yes —

IncidentCostOfFailureResponse#

Type: object.

IncidentCreate#

Schema for creating a new incident

Field Type Required Description
title string yes Incident title
description string or null — Detailed description of the incident
severity string yes Severity level: critical, high, medium, low
status string yes Incident status: open, acknowledged, resolved, closed
incident_type string — Type of incident: action_run, data_quality, etc.
environment string or null — Environment (dev, test, prod) - highest priority among affected_nodes
affected_nodes array of string or null — List of affected node IDs (includes all nodes)
rule_id string (uuid) or null — Rule ID (for action_run incidents)
action string or null — Action name (for action_run incidents)
start_date string (date-time) yes When the incident first started
last_failure_datetime string (date-time) yes When the most recent failure occurred
assignee string or null — User assigned to solve the incident
reporters array of string or null — List of users who will validate resolution
watchers array of string or null — List of users who want notifications
incident_metadata object or null — Type-specific metadata (trigger_id for action_run; check_id, metric_history for data_quality)
error_signature string or null — Stable hash of the normalized failure text — used for root-cause clustering
source_project string or null — Project extracted from the failure (e.g. BigQuery project) — pairs with error_signature
incident_class string or null — Incident class: platform | configuration | data_quality | expected | external (server-derived)
response_tier string or null — Response tier: page | ticket | log (server-derived)
error_category string or null — Persisted access-gap category: permission | authentication | api_disabled | timeout | ...
stage string or null — Triage lifecycle stage: triage | active | post | closed (server-derived)
accepted_at string (date-time) or null — When the incident was accepted (the MTTA/MTTR clock start, NOT created_at)
accepted_by string or null — Who accepted the incident
declined_at string (date-time) or null — When the incident was declined
declined_reason string or null — Why the incident was declined
snoozed_until string (date-time) or null — Hide the incident from the triage inbox until this timestamp
regressed_count integer or null — Times a resolved fingerprint recurred (auto-reopen / Regressed transitions)
severity_basis object or null — Matrix inputs the severity advisor used (env/blast_radius/criticality/condition/score)
is_counting boolean or null — False for maintenance/test severities → excluded from MTTA/MTTR / incident-count metrics
dedup_fingerprint string or null — Cross-rule stable fingerprint (hash of error_class+project+ancestor+action)
upstream_ancestor string or null — Nearest failing ancestor node id (lineage inhibition)
root_incident_id string (uuid) or null — Set when this incident is a downstream cascade of an already-open root incident
snooze_mode string or null — Smart-snooze mode: time | occurrences | forecast
snooze_threshold integer or null — N-more-occurrences target, or the stored baseline for the forecast band
snoozed_by string or null — Who snoozed the incident

IncidentGroupOwned#

Type: object.

IncidentImpactEntry#

Per-incident downstream impact summary.

Field Type Required Description
incident_id string yes —
downstream_node_count integer yes —
impact_tier string yes Derived from downstream count: critical/high/medium/low
top_downstream array of TopDownstreamNode — Top 3 most-impacted downstream consumers by type priority then depth

IncidentKindEntry#

Field Type Required Description
id string yes The value written to incident.incident_type
label string yes —
owner string yes "core" or the id of the plugin that declares the kind

IncidentOwned#

Type: object.

IncidentProvenanceResponse#

Type: object.

IncidentRegistryResponse#

Field Type Required Description
kinds object of object yes —
sources array of IncidentSourceEntry — —
categories array of string — —

IncidentRemoveReporter#

Request model for removing a reporter from an incident

Field Type Required Description
reporter string yes User to remove as reporter

IncidentRemoveWatcher#

Request model for removing a watcher from an incident

Field Type Required Description
watcher string yes User to remove as watcher

IncidentsByNodesRequest#

Batch lookup request for incidents whose affected\_nodes intersect the provided set.

Field Type Required Description
node_ids array of string yes Catalog node_ids to match
status array of string or null — Filter by incident status. Omit for any status. Common values: 'open', 'acknowledged', 'resolved', 'closed'.
limit integer — —
include_snoozed boolean — Include actively-snoozed (time-boxed known issue) incidents. Defaults to False — the same default as GET /incidents/node/{node_id}, so this batch route is a drop-in for the per-node calls it replaces.

IncidentsByNodesResponse#

Deduplicated list of incidents that intersect the requested nodes.

Field Type Required Description
incidents array of IncidentOwned yes —
matched_node_count integer yes Distinct REQUESTED node_ids that appear in at least one matching incident. Counted over the whole match set, not just the returned page, so it stays exact even when truncated is true.
truncated boolean — True when limit clipped a genuine match set — i.e. matching incidents exist beyond the ones returned. The list is ordered by last_failure_datetime DESC, so what is missing is always OLDER than everything present. False means the list is complete for the requested nodes and filters, which is what lets a caller tell 'no more matches' apart from 'the server stopped looking'.

IncidentSearchResult#

Field Type Required Description
entity_type string — —
id string yes —
title string yes —
description string or null — —
severity string yes —
status string yes —
incident_type string yes —
environment string or null — —
start_date string or null — —
rank number yes —

IncidentSourceEntry#

Field Type Required Description
kind string yes —
source string yes —
display_name string yes —
short_name string yes —
category string yes —
icon string yes —
owner string yes —
alerts string yes —

IncidentStatusSummary#

Type: object.

IncidentSuppressionRule#

Type: object.

IncidentSuppressionRuleCreate#

Create / upsert a suppression rule.

Field Type Required Description
source_type string yes e.g. MicrostrategyReport, bigquery
source_id string yes Identifier of the source (project_id, report id, ...)
scope_type string — Scope this rule applies to
fingerprint string or null — Phase 3 generic suppression identity (dedup_fingerprint) for non-extraction classes
reason string or null — Why this source is considered expected
expires_at string (date-time) or null — Time-boxed known issue: rule is active only until this timestamp. NULL = permanent.
marked_by string yes —
origin_incident_id string (uuid) or null — The incident this rule was created from
namespace_id string (uuid) or null — —

IncidentSuppressionRuleUpdate#

Field Type Required Description
reason string or null — —

IncidentTimelineResponse#

Response for the incident timeline endpoint.

Field Type Required Description
incident_id string (uuid) yes —
entries array of TimelineEntry yes —
total_count integer yes —

IncidentUpdate#

Field Type Required Description
title string or null — Incident title
description string or null — Detailed description of the incident
severity string or null — Severity level
status string or null — Incident status
incident_type string or null — Type of incident
environment string or null — Environment (dev, test, prod)
affected_nodes array of string or null — List of affected node IDs (includes all nodes)
rule_id string (uuid) or null — Rule ID (for action_run incidents)
action string or null — Action name (for action_run incidents)
end_date string (date-time) or null — When the incident was closed
resolved_at string (date-time) or null — When the incident was resolved
resolved_by string or null — Who resolved the incident
resolution_notes string or null — Resolution notes
acknowledged_at string (date-time) or null — When the incident was acknowledged
acknowledged_by string or null — Who acknowledged the incident
last_failure_datetime string (date-time) or null — When the most recent failure occurred
failure_count integer or null — Number of failures in this incident
assignee string or null — User assigned to solve the incident
reporters array of string or null — List of users who will validate resolution
watchers array of string or null — List of users who want notifications
incident_metadata object or null — Type-specific metadata
incident_class string or null — Override incident class (platform | configuration | data_quality | expected | external)
response_tier string or null — Override response tier (page | ticket | log)
error_category string or null — Override persisted error category
stage string or null — Override triage stage (triage | active | post | closed)
is_counting boolean or null — Override whether the incident counts towards MTTA/MTTR

InputLogEnrichmentCreate#

Body of POST /input_logs/{id}/enrichment (called by input-logs service).

Field Type Required Description
job_id string or null — BQ job_id or equivalent provider job identifier
kind string yes Enrichment kind, e.g. 'bigquery_dml'
enricher string yes Enricher plugin name, e.g. 'gcp.bigquery_job'
level string yes 'L2' | 'L3' | 'L2+L3'
payload object yes EventEnrichment.to_payload() output

InputLogEnrichmentResponse#

Field Type Required Description
id string (uuid) yes —
input_log_id string (uuid) yes —
job_id string or null — —
kind string yes —
enricher string yes —
level string yes —
payload object yes —
computed_at string (date-time) yes —
created_at string (date-time) yes —
updated_at string (date-time) yes —

InputLogReplayResponse#

Outcome of POST /api/v1/input\_logs/replay: the row was stored now, or already was.

Field Type Required Description
status string (enum) yes —
id string (uuid) yes —

InputLogsAggregatedElement#

Field Type Required Description
type string yes —
count integer yes —

InputLogsAggregatedItem#

Field Type Required Description
start_datetime string (date-time) yes —
end_datetime string (date-time) yes —
elements array of InputLogsAggregatedElement yes —

InputLogsAggregatedResponse#

Field Type Required Description
items array of InputLogsAggregatedItem yes —
window_minutes integer yes —
total_windows integer yes —

InputLogsCreate#

Field Type Required Description
trigger string yes —
node_ids array of string yes —
datetime string (date-time) yes —
type string yes —
writer string yes —
source_id string or null — —
project string or null — —
process_by_scheduler boolean — —
log_metadata object or null — —
provider string or null — —
correlation_id string or null — —

InputLogsListResponse#

Field Type Required Description
items array of InputLogsResponse yes —
total integer yes —
page integer yes —
size integer yes —
pages integer yes —

InputLogsResponse#

Field Type Required Description
slot_cost CostFigure or null — —
id string (uuid) yes —
trigger string yes —
node_ids array of string yes —
datetime string (date-time) yes —
type string yes —
writer string yes —
source_id string or null — —
project string or null — —
process_by_scheduler boolean — —
log_metadata object or null — —
provider string or null — —
correlation_id string or null — —
created_at string (date-time) yes —
updated_at string (date-time) yes —
cost CostFigure or null — —
direction string — —
sku string or null — —

InputLogsResumeInformation#

Resume information for a specific node_id

Field Type Required Description
node_id string yes —
most_recent_unprocessed_datetime string (date-time) or null — —
most_recent_created_at string (date-time) or null — —
time_since_last_activity integer or null — —

InputLogsUpdate#

Field Type Required Description
trigger string or null — —
node_ids array of string or null — —
datetime string (date-time) or null — —
type string or null — —
writer string or null — —
source_id string or null — —
project string or null — —
process_by_scheduler boolean or null — —
log_metadata object or null — —
provider string or null — —
correlation_id string or null — —

InstalledDistribution#

Field Type Required Description
name string yes Python distribution name, e.g. 'nistor-plugin-finops'
version string yes Distribution version resolved via importlib.metadata

IntegrationStatusResponse#

Empty degraded list means every integration is healthy.

Field Type Required Description
degraded array of DegradedIntegration — —

K#

KPIPoint#

Field Type Required Description
week string yes —
value number yes —

KPIResult#

Field Type Required Description
current_value number yes —
unit string yes —
band string yes —
trend array of KPIPoint yes —
trend_direction string yes —

L#

LastChangeSummary#

When the asset's data last changed.

Field Type Required Description
datetime string (date-time) yes —
type string or null — The input_logs event type, e.g. BIGQUERY_INSERT / BIGQUERY_MERGE.
age_seconds integer or null — Seconds since the change, for relative-time display.

LastReadSummary#

When the asset was last read/queried (most recent BIGQUERY\_READ).

Field Type Required Description
datetime string (date-time) yes —
age_seconds integer or null — Seconds since the read, for relative-time display.

LastRunSummary#

Compact representation of a node's most recent ActionRun.

Field Type Required Description
run_id string (uuid) yes —
state string or null — —
action string or null — —
trigger_id string or null — —
started_at string (date-time) or null — —
ended_at string (date-time) or null — —
duration_seconds number or null — —
triggered_by string or null — —
rule_id string (uuid) or null — —
failure_reason string or null — —
origin string or null — Originating system. 'jarvis' (default) when the Nistor scheduler created the row; 'dataform_external' when the Dataform external-sync cron ingested it. The frontend renders an 'External' badge for non-'jarvis' values.

LatestReportOut#

The newest report of one (provider, repository) that keeps its resources (the compiler's gap fill).

Field Type Required Description
id string yes —
provider string yes —
repo_key string yes —
repo_url string or null — —
ref string or null — —
commit string or null — —
deployed_at string (date-time) or null — —
received_at string (date-time) or null — —
resources array of LatestReportResourceOut or null — —

LatestReportResourceOut#

Field Type Required Description
type string yes —
address string yes —
name string or null — —
attributes object — —

LatestSyncEventsResponse#

Field Type Required Description
environment string yes —
events array of LatestSyncEventSummary yes —
rules object of LatestSyncRuleEntry yes —

LatestSyncEventSummary#

One connection's newest sync event, without the report body.

Field Type Required Description
id string (uuid) yes —
connection_id string (uuid) yes —
connection_name string yes —
repo_project_path string yes —
created_at string (date-time) or null — —
status string yes —
branch string yes —
commit_sha string or null — —
pipeline_url string or null — —
triggered_by string or null — —
summary object of integer yes —
error string or null — —

LatestSyncRuleEntry#

Field Type Required Description
event_id string (uuid) yes —
action string or null — —
error string or null — —
findings array of object — —
unchecked array of object — —

LeaseClaimRequest#

Field Type Required Description
max integer — The most runs to lease

LeaseCompletion#

Field Type Required Description
status string (enum) yes —
error string or null — —
external_id string or null — The tool's id of the launch
facts array of object or null — Core facts: {kind, ...fields}

LeasePurposeOut#

What the session was opened for. Every field is a best effort — the caller may not know the node or the run, and a call site that set no purpose gets its module name as kind with derived=True.

Field Type Required Description
kind string — —
object_ids array of string — At most the first few MicroStrategy object ids
object_count integer — —
node_id string or null — —
action_run_id string or null — —
rule_name string or null — —
derived boolean — True when the kind is the caller's module name, not a declared purpose

LinkActionRunRequest#

Request model for linking an action_run to an incident

Field Type Required Description
action_run_id string (uuid) yes Action run ID
incident_id string (uuid) yes Incident ID
relationship_type string — Type of relationship: failure or resolution

LinkedWatchConfigIn#

Field Type Required Description
free_interval_seconds integer — —
exact_time_enabled boolean — —
watermark_column string or null — —
exact_time_safety_net string (enum) — —

LinkedWatchOverview#

Field Type Required Description
node_id string yes —
member_count integer yes —
config LinkedWatchConfigIn yes —
updated_by string or null — —
updated_at string (date-time) or null — —
free_check object yes —
exact_estimate CostEstimate yes —
exact_forced_by_rules array of string — —
rhythm object of integer or null — —
last_refresh_at string (date-time) or null — —
members array of object — —

LockActionType#

Enum for lock action types

One of: "lock", "unlock", "expired".

LostTo#

Field Type Required Description
owner OwnerRef yes —
count integer yes —
tie boolean yes —

M#

MaintenanceWindowCreate#

Field Type Required Description
name string yes —
description string or null — —
start_at string (date-time) yes —
end_at string (date-time) yes —
rrule string or null — —
duration_s integer or null — —
timezone string — —
scope_type ScopeType yes —
namespace_id string (uuid) or null — —
node_ids array of string or null — —
action_policy ActionPolicy — —
alert_suppression boolean — —
created_by string or null — —

MaintenanceWindowResponse#

Field Type Required Description
id string (uuid) yes —
name string yes —
description string or null — —
start_at string (date-time) yes —
end_at string (date-time) yes —
rrule string or null — —
duration_s integer or null — —
timezone string yes —
scope_type string yes —
namespace_id string (uuid) or null — —
node_ids array of string or null — —
action_policy string yes —
alert_suppression boolean yes —
status string yes —
created_by string or null — —
created_at string (date-time) yes —
updated_at string (date-time) yes —

MaintenanceWindowUpdate#

Field Type Required Description
name string or null — —
description string or null — —
start_at string (date-time) or null — —
end_at string (date-time) or null — —
rrule string or null — —
duration_s integer or null — —
timezone string or null — —
scope_type ScopeType or null — —
namespace_id string (uuid) or null — —
node_ids array of string or null — —
action_policy ActionPolicy or null — —
alert_suppression boolean or null — —
status WindowStatus or null — —

ManualRuleRunRequest#

Request body for running a scheduling rule's action on demand.

Field Type Required Description
rule_id string yes ID of the scheduling rule to run
node_id string yes Node to run the rule's action against (the trigger node)

ManualRuleRunResponse#

Field Type Required Description
mode string yes 'single' (one action) or 'chain' (multi-step action chain)
rule_id string yes —
node_id string yes —
status string — —
chain_run_id string or null — Set when mode == 'chain' — track via /chain_runs/{id}
action_type string or null — Set when mode == 'single' — the executor type run
upstream object or null — Raw scheduler response for the single-action case

MarketplacePlugin#

Field Type Required Description
id string yes —
name string yes —
tagline string yes —
description string yes —
category string yes —
kind string (enum) — Plugin family: a Nistor-native 'feature' or an external 'integration'.
vendor string yes —
icon_slug string or null — —
docs_url string or null — —
homepage_url string or null — —
install_hint string or null — —
is_installed boolean yes —
is_third_party boolean — True when discovered via entry points but absent from the catalog.
status string (enum) yes —
status_reason string or null — Why an official tool is not loaded (the core tool gate's reason: not installed, not active in this image, incompatible or invalid, failed to load); null for every other row.
distributions array of InstalledDistribution — —
extension_points array of ExtensionPointRef — —
capabilities array of CapabilityRef — —
documentation PluginDocumentation or null — Rich docs contributed by the plugin package; present only for installed plugins.

MarketplaceResponse#

Field Type Required Description
plugins array of MarketplacePlugin yes —
generated_at string (date-time) yes —

MatchDecisionRead#

Field Type Required Description
rule_id string (uuid) yes —
node_id string yes —
status string yes —
first_matched_at string (date-time) or null — —
decided_at string (date-time) or null — —
decided_by string or null — —
reason string or null — —

MatchDecisionResult#

Field Type Required Description
changed integer yes —
not_matched array of string yes —
overridden integer or null — —
conflicts integer or null — —

MatchDecisionWrite#

Field Type Required Description
node_ids array of string yes —
status string (enum) yes —
reason string or null — —
only_if_undecided boolean — —
from_git boolean — —

Message#

Field Type Required Description
message string yes —

MissingOut#

Field Type Required Description
code string yes —
cheapest_preset string or null — —
team_admins array of PersonRef — —

MonitoredAsset#

Type: object.

MonitoredAssetCreate#

Field Type Required Description
name string yes Display name
node_id string or null — Catalog node ID (e.g. BigqueryTable_project.dataset.table)
node_type string or null — Node type (e.g. BigqueryTable, MicrostrategyCube)
resource_type string or null — Generalized type: cube, table, action, service, etc.
health_mode HealthMode — How health is evaluated: auto, mstr, manual
mstr_object_id string or null — MicroStrategy object ID
mstr_object_type AssetType or null — MicroStrategy object type
project_id string or null — MicroStrategy project ID
freshness_sla_hours integer — Max hours before data is stale
expected_refresh_cron string or null — Expected refresh schedule
owner string or null — Asset owner
is_active boolean — —
is_favorite boolean — On the user's Data Trust watchlist
slo_config object or null — Per-asset SLO config (JSONB); null = platform default
delivery_deadline string or null — Absolute daily freshness deadline as HH:MM local; null = none
deadline_grace_minutes integer — Minutes past the deadline before a miss is declared
expected_termination boolean — Asset intentionally paused/decommissioned — alerts suppressed
expected_termination_reason string or null — Why the asset is paused

MonitoredAssetUpdate#

Field Type Required Description
name string or null — —
freshness_sla_hours integer or null — —
expected_refresh_cron string or null — —
owner string or null — —
is_active boolean or null — —
health_mode HealthMode or null — —
is_favorite boolean or null — —
expected_termination boolean or null — —
expected_termination_reason string or null — —

MonitoringScope#

One of: "self", "ancestors".

MRImpactReportOut#

Field Type Required Description
project_path string yes —
mr_iid integer yes —
source_branch string yes —
target_branch string yes —
last_commit_sha string yes —
affected_nodes array of AffectedNodeOut yes —
blast_radius object of integer yes —
scheduling_rules array of AffectedRuleOut yes —
dq_checks array of AffectedRuleOut yes —
open_incidents array of AffectedIncidentOut yes —
notes array of string yes —
unmapped_paths array of string yes —
unmapped_total integer — —

MRPreviewRequest#

Field Type Required Description
gitops_connection_id string (uuid) yes ID of the GitOpsConnection whose repo hosts the MR
mr_iid integer yes The project-scoped MR IID (the !number)

MRPreviewResponse#

The preview endpoint returns both the structured report AND the rendered markdown so the UI can show them side-by-side without the frontend having to duplicate the renderer.

Field Type Required Description
report MRImpactReportOut yes —
rendered_markdown string yes —

MstrActivityBroadcastRequest#

Field Type Required Description
snapshots array of MstrActivityIn yes —

MstrActivityIn#

One per-node observation. Multiple per call when polling N envs/nodes.

Field Type Required Description
collected_at string (date-time) yes —
environment string yes dev | test | prod
project_id string yes —
node_name string yes —
live_jobs integer yes —
read_jobs integer yes —
write_jobs integer yes —
error_jobs integer yes —
locked_jobs integer yes —
total_memory_mb integer yes —
distinct_users integer yes —

MstrActivityOut#

Field Type Required Description
collected_at string (date-time) yes —
environment string yes —
project_id string yes —
node_name string yes —
live_jobs integer yes —
read_jobs integer yes —
write_jobs integer yes —
error_jobs integer yes —
locked_jobs integer yes —
total_memory_mb integer yes —
distinct_users integer yes —

MstrUsageNodeResponse#

Latest usage for one node — rolling window + (optional) PA lifetime.

Field Type Required Description
node_id string yes —
node_type string or null — —
display_name string or null — —
snapshot_date string (date) or null — —
window_days integer or null — —
window_executions integer or null — —
nistor_executions_window integer or null — —
distinct_users_window integer or null — —
history_loaded boolean — —
usage_history_loaded_at string (date-time) or null — —
usage_source string or null — —
lifetime_executions integer or null — —
lifetime_distinct_users integer or null — —
lifetime_distinct_user_names array of string or null — —
first_accessed string (date-time) or null — —
last_accessed string (date-time) or null — —
cost_month_usd number or null — —
cost_per_user_access_usd number or null — —

MstrUsageObjectItem#

Field Type Required Description
node_id string yes —
node_type string or null — —
display_name string or null — —
project_id string or null — —
reads_window integer — —
viewers_window integer — —
last_read_at string (date-time) or null — —
refreshes_window integer — —
refresh_failed_window integer — —
refresh_unconfirmed_window integer — —
last_refresh_at string (date-time) or null — —
status string yes —

MstrUsageObjectsResponse#

Field Type Required Description
total integer yes —
items array of MstrUsageObjectItem yes —

MstrUsageRankingItem#

Field Type Required Description
node_id string yes —
node_type string or null — —
display_name string or null — —
window_executions integer or null — —
distinct_users_window integer or null — —
lifetime_executions integer or null — —
lifetime_distinct_users integer or null — —
cost_month_usd number or null — —
history_loaded boolean — —

MstrUsageRankingResponse#

Field Type Required Description
total integer yes —
items array of MstrUsageRankingItem yes —

MstrUsageReaderItem#

One principal's read activity on a single object (who reads it).

Field Type Required Description
principal string yes —
principal_type string — —
read_count integer — —
last_read_at string (date-time) or null — —
bytes_processed integer or null — —
is_nistor_user boolean — —
display_name string or null — —
is_admin boolean — —

MstrUsageReadersResponse#

Field Type Required Description
node_id string yes —
window_days integer yes —
total_distinct_readers integer — —
readers array of MstrUsageReaderItem yes —

MstrUsageSummaryResponse#

Field Type Required Description
window_days integer yes —
observed_since string (date-time) or null — —
last_event_at string (date-time) or null — —
excluded UsageExcludedStats yes —
by_type object of UsageTypeStats yes —
totals UsageTypeStats yes —

MstrUsageTimeseriesPoint#

Field Type Required Description
bucket string yes —
reads integer — —
distinct_viewers integer — —
refreshes integer — —

MstrUsageTimeseriesResponse#

Field Type Required Description
granularity string yes —
points array of MstrUsageTimeseriesPoint yes —

MstrUserReadObjectItem#

One object a principal read (the per-user inverse of a reader row).

Field Type Required Description
node_id string yes —
node_type string or null — —
display_name string or null — —
read_count integer — —
last_read_at string (date-time) or null — —

MstrUserReadObjectsResponse#

Field Type Required Description
principal string yes —
window_days integer yes —
total_objects integer — —
objects array of MstrUserReadObjectItem yes —

MyAccess#

Field Type Required Description
user MyUser yes —
teams array of MyTeamAccess yes —
enforcement object of string (enum) yes —

MyAgentRun#

An agent run's own scope: the codes it was launched with, and its agent's current team.

Field Type Required Description
launch_codes array of string yes —
team MyTeamRef or null — —

MyNoteResponse#

Type: object.

MyTeamAccess#

Field Type Required Description
team MyTeamRef yes —
via string (enum) yes —
role string yes —
from_team TeamRef or null — —
codes array of string yes —
admins array of PersonRef yes —

MyTeamRef#

Field Type Required Description
slug string or null — —
name string yes —
visibility string yes —
is_active boolean yes —

MyUser#

Field Type Required Description
email string yes —
display_name string or null — —
is_admin boolean yes —
org_role string or null — —
org_codes array of string yes —
baseline_codes array of string yes —
agent_run MyAgentRun or null — —

N#

NamespaceMemberResponse#

Schema for namespace member response.

Field Type Required Description
user_id integer yes —
namespace_id string (uuid) yes —
role string or null — —
created_at string (date-time) yes —
email string or null — —
display_name string or null — —

NamespaceResponse#

Schema for namespace response.

Field Type Required Description
id string (uuid) yes —
name string yes —
slug string yes —
description string or null — —
is_active boolean yes —
created_at string (date-time) yes —
updated_at string (date-time) yes —

NextCheckSummary#

Type: object.

NextCheckSummaryWithRetry#

Type: object.

NextFireSummary#

Next forward-looking refresh for a node.

Field Type Required Description
scheduled_datetime string (date-time) yes —
rule_id string (uuid) or null — —
source string (enum) yes Where the value came from: pre-materialized scheduler_action row or on-the-fly cron evaluation.

nistor_backend__api__endpoints__tool_capacity__CoverageOut#

Field Type Required Description
is_floor boolean yes True when some requests to this tool are not counted
note string yes What the figures count, in one sentence the page renders verbatim

nistor_backend__api__endpoints__tool_capacity__ServiceRollupOut#

Field Type Required Description
service string yes —
in_use integer yes —
bounded_capacity integer yes —
processes integer yes —

nistor_backend__schemas__activity_bulk__ActivityEntry#

All activity fields for a single node_id.

Field Type Required Description
last_run LastRunSummary or null — —
last_change LastChangeSummary or null — —
last_read LastReadSummary or null — —
next_fire NextFireSummary or null — —
scheduled_refresh ScheduledRefreshSummary or null — —
downstream_impact DownstreamImpactSummary or null — —

nistor_backend__schemas__data_trust__ActivityEntry#

Type: object.

nistor_tool_microstrategy__routers__mstr_sessions__CoverageOut#

What this figure counts — published so the page cannot overstate it.

Field Type Required Description
scope string yes Machine-readable scope key for the aggregate
is_floor boolean yes Always true: a process killed without its shutdown hook stops reporting while MicroStrategy keeps its sessions
note string yes Human sentence the UI renders next to the total

nistor_tool_microstrategy__routers__mstr_sessions__ServiceRollupOut#

Field Type Required Description
service string yes —
in_use integer yes —
capacity integer yes —
processes integer yes —
pooled_in_use integer yes in_use minus direct logins — the pool's own occupancy, what utilisation is judged against

Node#

Field Type Required Description
node_id string yes —
display_name string yes —
ancestors array of string yes —
descendants array of string yes —
compilation_parents array of string yes —
ui_url string or null — —
node_rules array of object or null — —
listener_events object of array of string or null — —
listening_events object of array of string or null — —
object_types array of string or null — —
run_action_on_node array of string or null — —
edges_to_run array of string or null — —
trigger_by_node array of object or null — —
hierarchy object or null — —
display_type string or null — —

NodeAccessExplained#

Field Type Required Description
code string yes —
owner NodeOwner yes —
mine DecisionOut yes —
principals_visible boolean yes —
principals Principals or null — —
node_id string yes —
mode string (enum) yes —
mine_today TodayDecision yes —

NodeCountsBatchRequest#

Request body for POST /rules\_scheduling/node-counts/batch.

Field Type Required Description
rule_ids array of string (uuid) yes Rule UUIDs to count nodes for (max 100)

NodeDeploymentSourcesOut#

Field Type Required Description
node_id string yes —
supported boolean yes —
sources array of DeploymentSourceOut — —

NodeEnvironmentVariant#

Schema for a node variant in a specific environment.

Field Type Required Description
node_id string yes Full node ID in this environment
exists boolean yes Whether this node exists in this environment
environment_url string or null — URL to access the backend in this environment

NodeEnvironmentVariants#

Schema for node variants across all environments.

Field Type Required Description
canonical_id string yes Environment-agnostic canonical ID
current_environment string yes Current environment
variants object of NodeEnvironmentVariant yes Node variants by environment (dev, test, prod)

NodeFavoriteCheck#

Field Type Required Description
is_favorite boolean yes —

NodeFavoriteCreate#

Field Type Required Description
node_id string yes Node to favorite
visibility string — private | team | general
namespace_id string (uuid) or null — Required when visibility=team

NodeFavoriteResponse#

Type: object.

NodeNoteBoostRequest#

Hand this note's recurring check to the AI assistant.

Field Type Required Description
check_text string or null — —
frequency ReminderFrequency or null — —
time string or null — HH:MM 24-hour local time
weekday integer or null — 0=Mon .. 6=Sun (weekly only)
tz string or null — IANA timezone
notify_mode string (enum) — —
channel_id string (uuid) or null — Alert channel; required unless notify_mode is 'silent'

NodeNoteCreate#

Field Type Required Description
environment string yes —
title string or null — —
body string yes —
visibility NoteVisibility — —
is_reminder boolean — —
reminder_frequency ReminderFrequency or null — —
reminder_time string or null — HH:MM 24-hour local time
reminder_weekday integer or null — 0=Mon .. 6=Sun (weekly only)
reminder_timezone string or null — IANA timezone (default Europe/Paris)
assignee_emails array of string — Users to remind

NodeNoteResponse#

Type: object.

NodeNoteUpdate#

Field Type Required Description
title string or null — —
body string or null — —
visibility NoteVisibility or null — —
is_reminder boolean or null — —
reminder_frequency ReminderFrequency or null — —
reminder_time string or null — —
reminder_weekday integer or null — —
reminder_timezone string or null — —
assignee_emails array of string or null — —
is_active boolean or null — —

NodeObjectActivityResponse#

Object-level write activity for a Cloud Storage bucket, powering the Usage tab's write hot-map.

Field Type Required Description
node_id string yes —
window_days integer — —
summary_window_days integer — —
bucket string or null — —
is_bucket_scope boolean — —
summary ObjectActivitySummary — —
prefixes array of ObjectActivityPrefix — —
top_objects array of ObjectActivityObject — —
hourly array of ObjectActivityHourCell — —
daily array of ObjectActivityDayCount — —

NodeOwner#

Field Type Required Description
team TeamRef or null — —
contested boolean — —
selector SelectorRef or null — —

NodeOwnership#

Field Type Required Description
team OwnerRef yes —
selector_kind string or null — —
selector_label string or null — —
contested boolean yes —

NodePartitionActivityResponse#

Per-partition write-activity rollup for a BigQuery node — powers the Usage tab's partition heat-map ("which partitions are written, how often").

Field Type Required Description
node_id string yes —
days integer — —
source_type string or null — —
partition_count integer — —
total_touches integer — —
partitions array of PartitionActivityItem — —

NodeReaderEntry#

One reader (writer principal) of a node over the look-back window.

Field Type Required Description
principal string yes —
principal_type string yes —
read_count integer yes —
last_read_at string (date-time) or null — —
bytes_processed integer or null — —
is_nistor_user boolean — —
display_name string or null — —
is_admin boolean — —
daily_reads array of integer or null — —

NodeReadersResponse#

Top readers of any node over the trailing window, aggregated live from input\_logs read-type rows.

Field Type Required Description
node_id string yes —
window_days integer — —
total_distinct_readers integer — —
table_last_read_at string (date-time) or null — —
readers array of NodeReaderEntry — —

NodeSearchResult#

Field Type Required Description
entity_type string — —
node_id string yes —
display_name string or null — —
node_type string or null — —
display_type string or null — —
environment string or null — —
hierarchy object or null — —
ancestors_count integer — —
descendants_count integer — —
rank number yes —
is_favorite boolean — —

NodeStats#

Usage stats per node.

Field Type Required Description
node_id string yes —
view_count integer yes —
unique_users integer yes —
last_page_name string or null yes —

NodeSubscriptionCheck#

Field Type Required Description
is_subscribed boolean yes —
subscription NodeSubscriptionResponse or null — —

NodeSubscriptionCreate#

Field Type Required Description
node_id string yes Node to subscribe to
notify_on NotifyOn — When to notify: run_complete, dq_pass, or both
channel_id string (uuid) or null — Optional external channel to deliver to (Google Chat, Slack, …)
deliver_in_app boolean — Write to the in-app inbox. Combine with channel_id for in-app only / channel only / both.

NodeSubscriptionResponse#

Type: object.

NodeTabStats#

Usage stats per node tab.

Field Type Required Description
node_tab string yes —
view_count integer yes —
unique_users integer yes —

NodeWriterEntry#

One writer (writer principal) of a node over the look-back window.

Field Type Required Description
principal string yes —
principal_type string yes —
write_count integer yes —
bytes_processed integer or null — —
last_write_at string (date-time) or null — —

NodeWritersResponse#

Top writers of a node over the trailing window, aggregated live from input\_logs write-type rows.

Field Type Required Description
node_id string yes —
window_days integer — —
total_distinct_writers integer — —
total_write_events integer — —
table_last_write_at string (date-time) or null — —
writers array of NodeWriterEntry — —

NoteAssignee#

Field Type Required Description
user_id integer yes —
email string or null — —
display_name string or null — —
last_acknowledged_at string (date-time) or null — —
snoozed_until string (date-time) or null — —

NoteBoostInfo#

The AI routine that took over this note's recurring check.

Field Type Required Description
routine_id string (uuid) yes —
active boolean yes —
last_verdict NoteBoostVerdict or null — —
last_run_at string (date-time) or null — —
last_run_status string or null — —
conversation_id string (uuid) or null — —

NoteBoostVerdict#

Type: object.

NoteCheckEntry#

Type: object.

NoteVisibility#

One of: "private", "shared".

NotifyOn#

One of: "run_complete", "dq_pass", "both".

O#

ObjectActivityDayCount#

Writes on one calendar day (UTC) — feeds the date-based calendar heatmap.

Field Type Required Description
date string yes —
write_count integer yes —

ObjectActivityHourCell#

One cell of the day-of-week × hour write-intensity heatmap (UTC).

Field Type Required Description
dow integer yes —
hour integer yes —
write_count integer yes —

ObjectActivityObject#

A single object and how many times it was written in the window — the "which objects are overwritten most" list. object\_id is the canonical (lossless) child node id; display\_path is a best-effort readable path (/ reconstruction is approximate, see :class:ObjectActivityPrefix).

Field Type Required Description
object_id string yes —
display_path string yes —
write_count integer yes —
last_write string (date-time) or null — —

ObjectActivityPrefix#

One row of the path-prefix write hot-map.

Field Type Required Description
path_prefix string yes —
write_count integer yes —
distinct_objects integer yes —
last_write string (date-time) or null — —

ObjectActivitySummary#

Headline write-activity counts for a Cloud Storage bucket over the window.

Field Type Required Description
total_writes integer — —
distinct_objects integer — —
new_objects integer — —
rewritten_objects integer — —
max_writes_single_object integer — —

Observation#

What one probe found, and what the poller did about it.

Field Type Required Description
watch_id string yes —
node_id string or null — —
outcome string or null — baseline | advanced | unchanged | regressed | no_timestamp. Absent on failure.
cursor_committed string (date-time) or null — —
last_modified string (date-time) or null — —
num_rows integer or null — —
num_bytes integer or null — —
error string or null — —
error_kind string or null — —
fallback_fired_at string (date-time) or null — —
probe_skipped boolean — —
freshness object or null — —
no_connection boolean — —
publish_failed boolean — —
fingerprint_committed string or null — —
pending_fingerprint string or null — —
pending_observed_at string (date-time) or null — —
time_basis string or null — —
exact_read_at string (date-time) or null — —
exact_bytes_billed integer or null — —
exact_bytes_required integer or null — —
exact_error string or null — —
skipped string or null — —

ObservationOut#

Field Type Required Description
id integer yes —
metric_key string yes —
observed_at string (date-time) yes —
value number or null — —
dimensions object or null — —
producer string yes —

ObservationsRequest#

Field Type Required Description
observations array of Observation — —

ObservationsResponse#

Field Type Required Description
applied integer — —
advanced integer — —
failed integer — —
baselined integer — —
unknown integer — —
incidents integer — —
fallbacks integer — —
probe_skipped integer — —
publish_retries integer — —
report_gap_cleared integer — —
ledger_rows_written integer — —

ObserveOutcomeResponse#

Field Type Required Description
status string yes —
incident_id string or null — —
reason string or null — —
created boolean — —

OdcsByNodeItem#

Field Type Required Description
id string yes —
name string yes —
semver string yes —
status string yes —
updated_at string (date-time) or null — —

OdcsContractDetail#

Field Type Required Description
id string yes —
odcs_id string yes —
name string yes —
semver string yes —
status string yes —
node_id string or null — —
environment string or null — —
updated_at string (date-time) or null — —
locked boolean — —
source string or null — —
source_repo string or null — —
source_file string or null — —
data_contract_id string or null — —
api_version string yes —
raw object — —

OdcsContractListItem#

Field Type Required Description
id string yes —
odcs_id string yes —
name string yes —
semver string yes —
status string yes —
node_id string or null — —
environment string or null — —
updated_at string (date-time) or null — —
locked boolean — —
source string or null — —
source_repo string or null — —
source_file string or null — —
data_contract_id string or null — —

OdcsDriftResponse#

Field Type Required Description
node_id string or null — —
in_sync boolean yes —
missing_columns array of string — —
extra_columns array of string — —
type_mismatches array of OdcsTypeMismatch — —

OdcsHealthResponse#

Field Type Required Description
enabled boolean yes —
contracts integer — —
last_import_at string (date-time) or null — —

OdcsImportRequest#

Field Type Required Description
yaml_content string yes —
source_url string or null — —
node_id string or null — —

OdcsImportResponse#

Field Type Required Description
contract_id string yes —
node_id string or null — —
name string yes —
semver string yes —
created boolean yes —
catalog_columns_written integer — —
quality_proposals integer — —
relationships integer — —
data_contract_id string or null — —
warnings array of string — —

OdcsSyncContractInput#

One contract document supplied by the sync caller.

Field Type Required Description
source_file string yes —
yaml_content string yes —

OdcsSyncOperation#

The outcome for one contract file (or one pruned orphan).

Field Type Required Description
source_file string or null — —
name string or null — —
node_id string or null — —
action string yes —
error string or null — —

OdcsSyncRequest#

Field Type Required Description
environment string yes —
contracts array of OdcsSyncContractInput — —
source_repo string or null — —
source_branch string or null — —
dry_run boolean — —
delete_orphaned boolean — —

OdcsSyncResponse#

Field Type Required Description
synced integer — —
skipped integer — —
errors array of string — —

OdcsSyncResult#

Field Type Required Description
environment string yes —
dry_run boolean yes —
created integer — —
updated integer — —
unchanged integer — —
deleted integer — —
errors integer — —
operations array of OdcsSyncOperation — —

OdcsTypeMismatch#

Field Type Required Description
column string yes —
contract_type string or null — —
live_type string or null — —

OdcsValidateRequest#

Field Type Required Description
yaml_content string yes —

OdcsValidateResponse#

Field Type Required Description
valid boolean yes —
errors array of OdcsValidationError — —
summary OdcsValidateSummary — —

OdcsValidateSummary#

Field Type Required Description
schema_objects integer — —
properties integer — —
quality_rules integer — —
sla_properties integer — —

OdcsValidationError#

Field Type Required Description
path string yes —
message string yes —

OnHoldAction#

Type: object.

OnHoldActionCreate#

Field Type Required Description
node_id string or null — Node identifier (for node-level on-hold actions)
rule_id string (uuid) or null — Rule identifier (for both node and group on-hold actions)
is_group boolean — True for group actions (batch processing), False for individual node actions
group_nodes array of any or null — List of node IDs for group actions
impacted_nodes array of any or null — Snapshot of nodes that will be impacted (for display only)
next_check string (date-time) or null — Next check datetime
max_retries integer or null — Maximum number of retries allowed
current_retries integer — Current number of retries attempted
retry_policy object or null — Resolved RetryPolicy governing next_check (mode, backoff, max_duration_s)
first_attempt_at string (date-time) or null — Start of this retry sequence — the anchor for the policy's wall-clock budget. NOT created_at: this row is recreated on every reschedule, so a budget anchored on the row's own creation time would restart each hop and never expire.
executor_type string or null — Type of executor (e.g., 'dataform', 'bigquery', etc.)
claimed_until string (date-time) or null — When the current claim expires (for parallel processing coordination)
claimed_by string or null — Which scheduler instance claimed this action
defer_reason_type string or null — Why this action is deferred (e.g. 'maintenance')
defer_reason_id string (uuid) or null — ID of the entity causing the deferral (e.g. maintenance_window.id)
hold_reason string or null — Why the executor filed this row ('lock_conflicts', 'lock_acquisition_error', 'action_already_running'); null for a row the cron reconcile armed. A lock retry is a fixed 60s delay, not a cron slot, so the reconcile leaves it to the dispatcher.
hold_attempt integer or null — Which re-queue hop this row is (1 = the executor's first re-queue of this cycle); null for a row the cron reconcile armed. Republished by the dispatcher as on_hold_attempt so a transient lock wait is counted against its budget.

OnHoldBatchCheckItem#

Single item in a batch on-hold status check request.

Field Type Required Description
node_id string yes Node ID to check
source_id string yes Source ID that triggered the event
source_type string yes Event type (e.g., BIGQUERY_INSERT)

OnHoldBatchCheckRequest#

Request to check on-hold status for multiple nodes.

Field Type Required Description
checks array of OnHoldBatchCheckItem yes List of nodes to check

OnHoldBatchCheckResponse#

Response containing on-hold status for multiple nodes.

Field Type Required Description
results object of OnHoldBatchCheckResult yes Map of node_id to check result

OnHoldBatchCheckResult#

Result for a single node's on-hold status check.

Field Type Required Description
has_on_hold boolean yes Whether the node has a pending on-hold action
trigger_type string or null — Type of trigger (e.g., 'all_ancestors_updated', 'inactivity_period')
should_skip boolean yes Whether to skip sending to scheduler
reason string yes Reason for the decision (e.g., 'no_on_hold', 'on_hold_exists', 'ancestor_already_updated')

OnHoldClaimsShortenRequest#

Bring a draining instance's worker claims down to now + grace (phase 1, R6).

Field Type Required Description
owners array of string — —
grace_seconds integer — —

OnHoldClaimTransferRequest#

Hand the dispatcher's claim on one on-hold action to its worker (phase 1, R2).

Field Type Required Description
from_owner string yes —
to_owner string yes —
lease_seconds integer — —

OperationApprovalApprove#

Optional body for approving a pending request.

Field Type Required Description
note string or null — —

OperationApprovalRead#

A two-person approval request keyed by (op\_type, target\_ref).

Field Type Required Description
id string (uuid) yes —
op_type string yes —
target_ref string yes —
requested_by string yes —
requested_at string (date-time) yes —
request_note string or null — —
approved_by string or null — —
approved_at string (date-time) or null — —
approve_note string or null — —
status string yes —
reversible_operation_id string (uuid) or null — —
created_at string (date-time) or null — —
updated_at string (date-time) or null — —

OperationApprovalRequest#

Body for requesting a two-person approval for a destructive op.

Field Type Required Description
op_type string yes —
target_ref string yes —
note string or null — —

OrgRoleGroup#

Field Type Required Description
count integer yes —
sample array of PersonRef yes —
role string or null — —

OwnedResource#

Field Type Required Description
node_id string yes —
display_name string or null — —
node_type string or null — —
environment string or null — —
in_catalog boolean yes —
selector_label string or null — —
contested boolean yes —

OwnerCount#

Field Type Required Description
owner OwnerRef or null — —
count integer yes —

OwnerRef#

Field Type Required Description
slug string or null — —
name string yes —

P#

PageInfo#

Field Type Required Description
key string or null — —
name string or null — —
visualizations array of VisualizationInfo — —
selectors array of SelectorInfo — —

PageStats#

Per-page statistics.

Field Type Required Description
page_path string yes —
page_name string or null yes —
view_count integer yes —
unique_users integer yes —

PageViewCreate#

Schema for creating a page view or action event.

Field Type Required Description
page_path string yes Route path visited
page_name string or null — Human-readable page name
viewed_at string (date-time) or null — When the page was viewed (defaults to server time)
event_type string — Event type: page_view, manual_run
section string or null — App section category
node_id string or null — Node ID if viewing a node
node_tab string or null — Tab within node detail
metadata object or null — Extra event data

PageViewStats#

Type: object.

PageViewStatsResponse#

Type: object.

PartitionActivityItem#

Write activity for a single BigQuery partition over the look-back window.

Field Type Required Description
partition_id string yes —
touch_count integer — —
total_rows integer or null — —
last_touched_at string or null — —
recompute_modes object of integer — —

PendingRuleGroup#

Field Type Required Description
rule_id string (uuid) yes —
rule_name string yes —
node_ids array of string yes —
oldest_first_matched_at string (date-time) or null — —

PeopleGroup#

Field Type Required Description
count integer yes —
sample array of PersonRef yes —

PermissionResponse#

Schema for permission response.

Field Type Required Description
code string yes Machine-readable permission code (e.g., 'actions:run_dataform')
name string yes Human-readable permission name
description string or null — Description of what this permission allows
category string yes Category for grouping in UI (e.g., 'Actions', 'Pages')
id integer yes —
scope string (enum) — 'team' when a team role can carry the code on the team's assets, else 'org'

PersonRef#

Field Type Required Description
email string yes —
display_name string or null — —

PlatformQueriesExplorerResponse#

Response for platform-level queries explorer

Field Type Required Description
queries array of InputLogsResponse yes —
top_patterns array of QueryPatternStats yes —
top_users array of QueryUserStats yes —
top_nodes array of QueryNodeStats yes —
total_queries integer yes —
daily_buckets array of TimeBucket — —
hourly_buckets array of TimeBucket — —
summary_stats QESummaryStats or null — —

PluginDocumentation#

Rich, plugin-owned documentation surfaced in the drawer.

Field Type Required Description
overview string yes —
use_cases array of string — —
compatible_systems array of CompatibleSystemRef — —
detects array of string — Node types this plugin surfaces
lineage array of string — —
finops array of string — —
impacts array of string — —
requirements array of string — —

PluginsListResponse#

Field Type Required Description
plugins array of PluginStatus yes —
generated_at string (date-time) yes —

PluginStatus#

Field Type Required Description
id string yes Plugin id from BaseExecutorPlugin.id
name string yes Display name, falls back to id
version string or null — Distribution version via importlib.metadata
distribution string or null — Python distribution package name
category string or null — —
status string yes Plugin state. Currently always 'loaded'.
last_used string (date-time) or null — MAX(ActionRun.end_datetime) for this executor_type
priority integer — —

PollConfig#

Opt this listener's sources into scheduled last-modified polling.

Field Type Required Description
interval_seconds integer — How often to read the source's last-modified timestamp. Bounded below at 60s because the poll cron ticks once a minute (a smaller value cannot be honoured and would only mislead), and above at 24h. When several rules watch the same source the SMALLEST interval wins.
enabled boolean — Set false to stop polling without deleting the declaration — useful while an external partner's grant is being sorted out.
fallback_times array of string or null — Local times of day ('HH:MM') at which to fire ANYWAY while the probe is blocked by a configuration failure — a missing IAM grant, or a resource that has been renamed away. Polling can tell us nothing in that state, so every rule waiting on the source would silently stop firing; this falls back to the clock until access is restored. Gated on the failure itself, so it stops the instant a probe succeeds — there is no flag to remember to turn off. Events it emits are marked 'assumed' and never advance the cursor. Omit for no fallback.
fallback_time_zone string — IANA zone the fallback_times are expressed in (e.g. 'Europe/Brussels').
mode string (enum) — Linked-dataset members only. 'count' (default, free) detects a change from the table's row count; 'exact' also reads MAX(watermark_column) to get the publisher's real refresh time. BigQuery bills at least 10 MB per table per exact read.
watermark_column string or null — Column read by mode 'exact' (TIMESTAMP or DATETIME). Falls back to the linked dataset's config.

PollerHealthResponse#

Is anything still looking?

Field Type Required Description
enabled_watches integer — —
oldest_poll_age_seconds integer or null — —
never_polled integer — —
never_succeeded integer — —
failing integer — —
permission_denied integer — —

PresenceHeartbeatRequest#

Field Type Required Description
resource_type string yes —
resource_id string yes —

PresenceHeartbeatResponse#

Other viewers currently on the resource (the caller is excluded).

Field Type Required Description
viewers array of ViewerOut yes —

PresenceLeaveRequest#

Field Type Required Description
resource_type string yes —
resource_id string yes —

Principals#

Field Type Required Description
admins PeopleGroup yes —
org_roles array of OrgRoleGroup yes —
members array of TeamMemberHolder yes —
members_truncated boolean — —
team_grants array of TeamGrantHolders yes —
open boolean yes —

ProcessOut#

Field Type Required Description
service string yes —
instance_id string yes —
pid integer yes —
in_use integer yes —
capacity integer yes —
peak_in_use integer or null yes —
waits integer or null yes —
timeouts integer or null yes —
overflows integer or null yes —
leaks integer or null yes —
oldest_held_seconds number or null yes —
last_seen string (date-time) yes —
stale boolean yes —

ProcessReportOut#

Field Type Required Description
service string yes —
instance_id string yes —
pid integer yes —
in_use integer yes —
capacity integer yes —
backoff_until string (date-time) or null — —
last_seen string (date-time) yes —
stale boolean yes Outside the freshness window: listed for diagnosis, excluded from the sums
sessions array of SessionOut — One entry per held session, leased first. Empty for a row written before the context existed.
pooled_in_use integer yes in_use minus direct logins — the pool's own occupancy, what utilisation is judged against

ProjectCount#

Field Type Required Description
project string or null yes —
count integer yes —

ProvenanceItem#

Type: object.

Type: object.

PruneBody#

Field Type Required Description
components array of string yes Component IDs whose samples to prune (e.g. 'scheduler').
keep_status array of string or null — Statuses to preserve. Defaults to ['healthy'] — i.e. prune everything else.

Q#

QESummaryStats#

Aggregated summary statistics across all matching queries.

Field Type Required Description
slot_cost CostFigure or null — —
total_slot_ms integer — —
total_queries integer — —
total_cost number — —
total_processed_bytes integer — —
cache_hit_rate number — —
avg_duration_seconds number or null — —
read_count integer — —
write_count integer — —
unique_users integer — —
unique_nodes integer — —

QualityAssetSummary#

Type: object.

QualitySummary#

Type: object.

QueriesExplorerResponse#

Response for the queries explorer endpoint

Field Type Required Description
queries array of InputLogsResponse yes —
top_patterns array of QueryPatternStats yes —
top_users array of QueryUserStats yes —
total_queries integer yes —
daily_buckets array of TimeBucket — —
hourly_buckets array of TimeBucket — —
summary_stats QESummaryStats or null — —

QueryCostEstimateRequest#

Field Type Required Description
sql string yes —
project_id string yes —
parameters array of QueryParameterInput or null — Named query parameters (@param_name)

QueryCostEstimateResponse#

Field Type Required Description
bytes_processed integer yes —
bytes_gb number yes —
estimated_cost_usd number yes —

QueryExecuteRequest#

Field Type Required Description
sql string yes —
project_id string yes —
row_limit integer — —
max_bytes_billed integer — Maximum bytes the query may scan before being rejected
parameters array of QueryParameterInput or null — Named query parameters (@param_name)
include_plan boolean — Include the BigQuery execution plan in the response

QueryExecuteResponse#

Field Type Required Description
columns array of ColumnMeta yes —
rows array of object yes —
total_rows_returned integer yes —
truncated boolean yes —
cost_info object yes —
job_id string or null — —
explain_plan array of object or null — —

QueryHistoryResponse#

Type: object.

QueryNodeStats#

Aggregated query stats per node (BigQuery table)

Field Type Required Description
slot_cost CostFigure or null — —
total_slot_ms integer — —
node_id string yes —
query_count integer yes —
total_billed_bytes integer — —
total_processed_bytes integer — —
total_cost_estimate number — —
read_count integer — —
write_count integer — —

QueryParameterInput#

A named query parameter for parameterised BigQuery queries.

Field Type Required Description
name string yes —
type string yes BigQuery type: STRING, INT64, FLOAT64, BOOL, DATE, TIMESTAMP, BYTES
value object yes Parameter value (will be cast to the declared type)

QueryPatternStats#

Aggregated stats for a normalized query pattern

Field Type Required Description
slot_cost CostFigure or null — —
total_slot_ms integer — —
pattern string yes —
pattern_hash string yes —
execution_count integer yes —
total_billed_bytes integer — —
total_processed_bytes integer — —
avg_duration_seconds number or null — —
total_cost_estimate number — —
users array of string — —
first_seen string (date-time) yes —
last_seen string (date-time) yes —
sample_query string — —

QueryUserStats#

Aggregated query stats per user

Field Type Required Description
slot_cost CostFigure or null — —
total_slot_ms integer — —
writer string yes —
query_count integer yes —
total_billed_bytes integer — —
total_processed_bytes integer — —
total_cost_estimate number — —
read_count integer — —
write_count integer — —
avg_duration_seconds number or null — —

R#

ReadCaptureGapResponse#

Field Type Required Description
days integer yes —
limit integer yes —
offset integer yes —
rows array of ReadCaptureGapRow yes —

ReadCaptureGapRow#

Field Type Required Description
node_id string yes —
hour string (date-time) yes —
pa_reads integer yes —
monitor_reads integer yes —
gap integer yes —

RecentExecutionSummary#

Type: object.

RecomputeSnoozesResponse#

Result of the snooze-recompute + inhibition sweep.

Field Type Required Description
time integer — —
occurrences integer — —
forecast integer — —
escalating integer — —
inhibited integer — —
cleared integer — —

RecoveryResponse#

Field Type Required Description
items array of RecoveryRow yes —
total integer yes —
window RecoveryWindow yes —

RecoveryRow#

One thing that still needs re-running.

Field Type Required Description
action_run_id string yes —
node_id string or null — —
rule_id string or null — —
rule_name string or null — —
executor_type string or null — —
action string or null — —
state string or null — —
attempts integer yes —
first_failure_at string (date-time) or null — —
last_failure_at string (date-time) or null — —
failure_reason string or null — —
in_outage_window boolean — —
relaunching boolean — —

RecoveryWindow#

Field Type Required Description
start string (date-time) yes —
end string (date-time) yes —

RefreshSla#

Opt-in, trigger-relative refresh SLA for this rule's targets.

Field Type Required Description
enabled boolean — Keep the block but stop evaluating it.
within_seconds integer yes Deadline, in seconds after the first qualifying upstream write, for a successful refresh. Must exceed if.quiet_period_seconds: the rule cannot fire before its quiet period ends.
count_external_refreshes boolean — Whether a refresh the tool ran on its own (an external MicroStrategy refresh recorded with node_id = the cube) meets the SLA.
severity string (enum) — Severity of the incident raised when the SLA is missed.

RefreshSlaCheckResponse#

Field Type Required Description
checked_rules integer — —
skipped_rules integer — —
verdict_count integer — —
missed integer — —
pending integer — —
opened integer — —
bumped integer — —
suppressed integer — —
resolved integer — —
closed integer — —
skipped string or null — —
verdicts array of object — —
dry_run boolean — —
checked_at string or null — —

RelatedDQFailure#

Type: object.

RelatedDQFailuresResponse#

Type: object.

RelatedPipelineFailure#

Type: object.

RelatedPipelineFailuresResponse#

Type: object.

ReliabilityMetricsResponse#

Field Type Required Description
deployment_frequency KPIResult yes —
change_failure_rate KPIResult yes —
mttr KPIResult yes —
lead_time KPIResult yes —
window_days integer yes —

ReminderFrequency#

One of: "daily", "weekly".

RepoAsCodeOut#

Field Type Required Description
rules array of RepoConfigItemOut — —
alert_policies array of RepoConfigItemOut — —
alert_channels array of RepoConfigItemOut — —
contracts array of RepoConfigItemOut — —

RepoConfigItemOut#

Field Type Required Description
id string yes —
name string yes —
code_id string or null — —
source_file string or null — —
source_branch string or null — —
locked boolean or null — —

RepoConfigOut#

Field Type Required Description
rules integer — —
alert_policies integer — —
alert_channels integer — —
contracts integer — —

RepoConnectionOut#

The repository's (oldest) GitOps connection, as the repository list and page show it.

Field Type Required Description
id string (uuid) yes —
sync_mode string yes —
status string yes —
last_sync_at string (date-time) or null — —
last_sync_status string or null — —

RepoHistoryItemOut#

One entry of a repository's deploy history: a GitOps sync run or a CI deployment report.

Field Type Required Description
kind string (enum) yes —
id string yes —
at string (date-time) or null — —
status string or null — —
commit string or null — —
ref string or null — —
actor string or null — —
pipeline_url string or null — —
summary object — —

RepoLastDeploymentOut#

Field Type Required Description
provider string or null — —
commit string or null — —
pipeline_url string or null — —
deployed_at string (date-time) or null — —
deployed_by string or null — —

RepoReportResourcesPage#

Field Type Required Description
report ReportRefOut or null — —
counts object of integer — —
scopes array of ReportScopeOut — —
total integer — —
items array of ReportResourceOut — —

RepoResourceOut#

One resource a repository deploys, with the repository's primary source for it.

Field Type Required Description
node_id string yes —
node_type string yes —
display_name string or null — —
in_current_build boolean — —
from_report boolean — —
relation string — —
settings_count integer — —
provider string yes —
origin string yes —
ref string or null — —
commit string or null — —
path string or null — —
line integer or null — —
deployed_at string (date-time) or null — —
deployed_by string or null — —
pipeline_url string or null — —
source_url string or null — —

RepoResourcesOut#

Field Type Required Description
total integer — —
by_provider object of integer — —
by_node_type object of integer — —

RepoResourcesPage#

Field Type Required Description
total integer yes —
items array of RepoResourceOut — —

ReportIn#

Field Type Required Description
service string yes —
instance_id string yes —
pid integer yes —
tools array of SnapshotIn yes —

ReportRefOut#

Field Type Required Description
id string yes —
provider string yes —
commit string or null — —
ref string or null — —
pipeline_url string or null — —
deployed_at string (date-time) or null — —

ReportResourceOut#

One resource of a repository's newest CI report and why it is, or is not, linked.

Field Type Required Description
address string yes —
type string yes —
name string or null — —
label string yes —
node_id string or null — —
node_type string or null — —
relation string or null — —
scan ReportScanOut or null — —
from_report boolean — —

ReportScanOut#

The compiler scan that would catalogue a reported resource's node.

Field Type Required Description
source_type string yes —
project_id string or null — —
required_role string or null — —
error string or null — —

ReportScopeOut#

One scan scope behind unlinked resources, with how many share it: one fix line on the page.

Field Type Required Description
label string yes —
source_type string yes —
project_id string or null — —
required_role string or null — —
error string or null — —
count integer — —

RepositoryHistoryPoint#

Field Type Required Description
date string (date) yes —
size_bytes integer or null — —
source string yes "api" (measured sizeBytes) or "monitoring" (de-duplicated Cloud Monitoring)
monthly_cost CostFigure or null — That day's size priced like monthly_cost; the detail says whether the size was measured (api) or de-duplicated from Cloud Monitoring (monitoring). Null when the size is unknown or no rate prices the SKU.

RepositoryImageStorage#

Field Type Required Description
node_id string yes —
image_name string or null — —
snapshot_date string (date) or null — This image's own latest snapshot date (its size is carried forward from it); null when none
version_count integer or null — —
logical_size_bytes integer or null — —
share number or null — 0..1 of the repository's logical total
monthly_cost CostFigure or null — Display-only share of the repository figure (logical bytes / all images' logical bytes, each image at its latest snapshot). Never written to rollups; null when the share or the repository figure is unknown.
last_push_datetime string (date-time) or null — —

RepositoryStorageResponse#

Field Type Required Description
repository_node_id string yes —
size_bytes integer or null — —
snapshot_date string (date) or null — Latest version-snapshot date of this repository's images; null when none
monthly_cost CostFigure or null — This repository's billed size (AR API sizeBytes) priced for a full month at ar.storage list price; null when the size is unknown or no rate prices the SKU.
history array of RepositoryHistoryPoint yes —
images array of RepositoryImageStorage yes —
logical_total_bytes integer or null — —
note string yes —

ResourcePattern#

Schema for resource pattern response

Field Type Required Description
name string yes Name of the resource pattern
description string yes Description of the resource pattern
pattern string yes Regex pattern for matching resources

ResourcePatternCreate#

Schema for creating a new resource pattern

Field Type Required Description
name string yes Name of the resource pattern
description string yes Description of the resource pattern
pattern string yes Regex pattern for matching resources

ResourcePatternList#

Schema for list of resource patterns

Field Type Required Description
patterns array of ResourcePattern yes —
total integer yes Total number of patterns

ResourcePatternUpdate#

Schema for updating a resource pattern

Field Type Required Description
name string or null — Name of the resource pattern
description string or null — Description of the resource pattern
pattern string or null — Regex pattern for matching resources

ResourcesPage#

Field Type Required Description
total integer yes —
items array of OwnedResource yes —

RestoreResponse#

Outcome of a restore call (restored | no\_op | failed).

Field Type Required Description
status string yes —
message string yes —

RetentionCommonValue#

Field Type Required Description
at string (date-time) yes —
fraction number yes —

RetentionEstimateOut#

Field Type Required Description
key string yes —
available boolean yes —
reason string or null — —
table_bytes integer or null — —
estimated_rows integer or null — —
bytes_per_row number or null — —
null_fraction number — —
histogram_fraction number — —
bounds array of string (date-time) — —
common_values array of RetentionCommonValue — —
analyzed_at string (date-time) or null — —
disk_usd_per_gb_month number or null — —

RetentionHistoryOut#

Field Type Required Description
key string yes —
points array of RetentionHistoryPoint yes —

RetentionHistoryPoint#

Field Type Required Description
date string (date) yes —
table_bytes integer or null — —
live_rows integer or null — —
rows_deleted integer or null — —

RetentionPolicyUpdate#

Field Type Required Description
enabled boolean yes —
retention_days integer yes —

RetentionPreviewOut#

Field Type Required Description
key string yes —
retention_days integer yes —
cutoff string (date-time) yes —
rows integer or null — —

RetentionPreviewRequest#

Field Type Required Description
retention_days integer yes —

RetentionTargetOut#

Field Type Required Description
key string yes —
table string yes —
label string yes —
deletes string yes —
shortens array of string yes —
default_days integer yes —
min_days integer yes —
max_days integer yes —
enabled boolean yes —
retention_days integer yes —
saved_days_out_of_range boolean yes —
updated_by string or null — —
updated_at string (date-time) or null — —
last_run_at string (date-time) or null — —
last_cutoff string (date-time) or null — —
last_deleted_rows integer or null — —
last_status string or null — —
last_reason string or null — —
table_bytes integer or null — —

RetryPolicySchema#

How a failed action is retried — see nistor\_core.general.retry\_policy.

Field Type Required Description
mode string (enum) or null — —
initial_backoff_s integer or null — Wait before the first retry
backoff_factor number or null — Multiplier applied to each delay
max_backoff_s integer or null — Cap on any single wait
max_retries integer or null — Attempt bound; ignored when max_duration_s set
max_duration_s integer or null — Wall-clock budget from the first attempt; wins over max_retries
jitter boolean or null — Spread retries ±20% so siblings do not resynchronise

ReversibleOperationRead#

A single guarded destructive operation and its recovery artifact.

Field Type Required Description
id string (uuid) yes —
op_type string yes —
target_ref string yes —
target_label string or null — —
action string yes —
performed_by string yes —
performed_at string (date-time) yes —
status string yes —
reversal_strategy string yes —
recovery_handle string or null — —
recovery_expires_at string (date-time) or null — —
restored_at string (date-time) or null — —
restored_by string or null — —
error_message string or null — —
extras object or null — —
audit_log_id string (uuid) or null — —
created_at string (date-time) or null — —
updated_at string (date-time) or null — —

RoleTemplateCreate#

Schema for creating a UI-managed permission preset.

Field Type Required Description
name string yes Unique preset name (e.g. 'analytics-viewer')
description string or null — Human-readable description of the preset
permission_codes array of string — Permission codes bundled by this preset (must exist in the catalog)
is_default boolean — Whether this preset is the suggested default

RoleTemplateResponse#

Schema for a named permission preset.

Field Type Required Description
id integer yes —
name string yes —
description string or null — —
permission_codes array of string — —
is_default boolean — —
source string or null — 'system' for seeded/locked presets, null for UI-created presets
locked boolean — True if the preset is system-managed and cannot be edited

RoleTemplateUpdate#

Schema for partially updating a permission preset (all fields optional).

Field Type Required Description
name string or null — New unique preset name
description string or null — New description
permission_codes array of string or null — Replacement list of permission codes (must exist in the catalog)
is_default boolean or null — Whether this preset is the suggested default

RootCauseResponse#

Field Type Required Description
cluster_size integer yes —
oldest_incident_id string (uuid) yes —
oldest_start_date string (date-time) yes —
similar_incident_ids array of string (uuid) yes —
error_signature string or null — —
source_project string or null — —

RowJourneyEntered#

Field Type Required Description
at string (date-time) or null — —
source string or null — —
basis string or null — —

RowJourneyResponse#

Field Type Required Description
node_id string yes —
confidence string yes —
entered RowJourneyEntered yes —
last_write RowJourneyWrite or null — —
rebuilds_since_entry integer or null — —
steps array of RowJourneyStep — —
truncated boolean — —

RowJourneyStep#

Field Type Required Description
kind string yes —
at string (date-time) or null — —
title string yes —
pill string or null — —
count integer or null — —
run TraceRun or null — —
node_id string or null — —
row_stats object or null — —
dq RowJourneyStepDq or null — —

RowJourneyStepDq#

This step's node's worst DQ verdict for the step's calendar day (UTC).

Field Type Required Description
status string yes —
failed integer yes —
total integer yes —

RowJourneyWrite#

A single ledger write, in the shape row\_journey needs (a subset of TraceHop — no node\_id/depth/confidence, which describe a hop's place in row_trace's multi-node walk and don't apply here).

Field Type Required Description
occurred_at string (date-time) yes —
event_type string yes —
statement_type string or null — —
recompute_mode string or null — —
row_stats object or null — —
sources array of string — —
run TraceRun or null — —

RowMovementPoint#

Field Type Required Description
date string (date) yes —
rows_inserted integer yes —
rows_updated integer yes —
rows_deleted integer yes —

RowPreviewColumn#

Field Type Required Description
name string yes —
type string or null — —
is_sys boolean — —

RowPreviewDerived#

Field Type Required Description
entered_basis string or null — —
entered_column string or null — —
modified_basis string or null — —
modified_column string or null — —

RowPreviewResponse#

Field Type Required Description
node_id string yes —
columns array of RowPreviewColumn yes —
rows array of object yes —
derived RowPreviewDerived yes —
rows_shown integer yes —
table_grain_last_write string (date-time) or null — —
protected_columns array of string — —

RowProbeResult#

Field Type Required Description
found boolean yes —
sys_values object yes —
estimated_bytes integer yes —
estimated_cost_usd number yes —
executed boolean yes —
refusal_reason string or null — —

RowTraceResponse#

Field Type Required Description
node_id string yes —
days integer yes —
max_depth integer yes —
truncated boolean yes —
hops array of TraceHop yes —
probe RowProbeResult or null — —

RuleActivityMetrics#

Type: object.

RuleAnalyticsSummary#

Type: object.

RuleBatchValidateRequest#

Field Type Required Description
rules array of object yes —
include_node_preview boolean — —
include_diff boolean — —

RuleBatchValidateResponse#

Field Type Required Description
total integer yes —
valid_count integer yes —
invalid_count integer yes —
results array of RuleValidationResult yes —
summary object of integer — —

RuleChainExecuteRequest#

Request body for creating and executing a chain from rule steps.

Field Type Required Description
rule_id string (uuid) yes ID of the scheduling rule
rule_name string — Human-readable rule name (for logging)
steps array of any yes Rule steps (list of dicts with key, type, parameters, after)
trigger_node_id string yes Node ID that triggered the rule

RuleChainExecuteResponse#

Field Type Required Description
chain_run_id string yes —
status string — —

RuleCostMetrics#

Type: object.

RuleGitAuthorshipUpdate#

Git-authorship-only update synced from the deployment repo.

Field Type Required Description
git_created_at string (date-time) or null — —
git_created_by string or null — —
git_last_modified_at string (date-time) or null — —
git_last_modified_by string or null — —
git_commits array of object or null — —

RuleImpactAnalysisResponse#

Top-level response for the rule impact analysis endpoint.

Field Type Required Description
rule_id string yes —
rule_name string yes —
depth integer yes —
trigger_node_ids array of string yes —
affected_nodes array of ImpactNode yes —
rules array of ImpactRule yes —
dq_checks array of ImpactDQCheck yes —
subscribers array of ImpactSubscriber yes —
cost_estimates array of ImpactNodeCost yes —
summary RuleImpactSummary yes —

RuleImpactSummary#

Aggregate counts for a rule's blast radius.

Field Type Required Description
total_trigger_nodes integer yes —
total_affected_nodes integer yes —
total_rules integer yes —
total_dq_checks integer yes —
total_subscribers integer yes —
total_estimated_cost_30d_usd number — —
impact_tier string yes critical / high / medium / low

RuleOwnerTeam#

The owning team as the viewer may see it: {"slug", "name"}, or {"slug": None, "name": "A private team"} for a team the viewer cannot see (an inactive one included).

Field Type Required Description
slug string or null — —
name string yes —

RulePrecisionItem#

Field Type Required Description
rule_id string or null — —
rule_name string or null — —
incident_type string or null — —
incident_class string or null — —
precision number yes actionable_closes / total_closes (0..1)
count integer yes closed/resolved incidents in the window
actionable integer yes —
non_actionable integer yes —
demote boolean yes precision < 0.5 over min_samples → demotion candidate

RulePrecisionResponse#

Field Type Required Description
days integer yes —
min_samples integer yes —
items array of RulePrecisionItem yes —

RuleRequestApprove#

Approve a request → open the MR. The reviewer may finalise the config here.

Field Type Required Description
rule_config object or null — Final rule JSON to commit (overrides the stored one; required if the request has no config yet)
target_file string or null — Rules file to append to (e.g. dwh_rules.json); defaults by action type
comment string or null — —

RuleRequestCreate#

Field Type Required Description
title string yes Short summary of the request
justification string or null — Business reason for the rule
mode RuleRequestMode — —
intent RuleRequestIntent or null — —
rule_config object or null — Full rule JSON (the Rule Helper buildFinalJson shape) for config mode
namespace_id string (uuid) or null — —

RuleRequestIntent#

A lightweight description of the rule a requester wants.

Field Type Required Description
target string or null — Dataset / node / tag the rule should act on
desired_action string or null — What should happen (e.g. refresh cube, run dataform, DQ check)
desired_cadence string or null — When it should run (a schedule, or 'after X updates')
urgency string or null — low | normal | high
notes string or null — —

RuleRequestMode#

One of: "intent", "config".

RuleRequestRead#

Field Type Required Description
id string (uuid) yes —
requester_email string yes —
requester_name string or null — —
title string yes —
justification string or null — —
mode RuleRequestMode yes —
intent object or null — —
rule_config object or null — —
status RuleRequestStatus yes —
target_file string or null — —
code_id string or null — —
review_comment string or null — —
reviewer_email string or null — —
reviewed_at string (date-time) or null — —
mr_iid integer or null — —
mr_url string or null — —
mr_branch string or null — —
namespace_id string (uuid) or null — —
created_at string (date-time) yes —
updated_at string (date-time) yes —

RuleRequestReject#

Reject or request-changes → a comment explaining why / what to change is required.

Field Type Required Description
comment string yes —

RuleRequestStatus#

One of: "pending", "changes_requested", "approved", "rejected", "withdrawn".

RuleRequestUpdate#

Requester edits (while pending / changes_requested) or a reviewer attaching a config.

Field Type Required Description
title string or null — —
justification string or null — —
mode RuleRequestMode or null — —
intent RuleRequestIntent or null — —
rule_config object or null — —

RuleSchedulingCreate#

Field Type Required Description
name string yes —
priority integer — —
status RuleStatus or null — —
shadow_mode boolean or null — —
description string or null — —
tags array of string or null — —
applies_to AppliesTo or null — —
when When-Input or null — —
if IfClause-Input or null — —
then Then-Input or null — —
failsafe Failsafe or null — —
freshness_expectation FreshnessExpectation or array of FreshnessExpectation or null — —
source string or null — —
source_repo string or null — —
source_branch string or null — —
source_file string or null — —
source_line integer or null — —
code_id string or null — —
content_hash string or null — —
locked boolean or null — —
version integer or null — —
git_created_at string (date-time) or null — —
git_created_by string or null — —
git_last_modified_at string (date-time) or null — —
git_last_modified_by string or null — —
git_commits array of object or null — —
created_at string (date-time) or null — —
updated_at string (date-time) or null — —
team string or null — Owning team (slug). Omit to let Nistor decide on a create (the unique team of the rule's targets) and to keep the rule's team on an update; null on an update makes the rule Unassigned.

RuleSchedulingHistoryResponse#

Field Type Required Description
id string (uuid) yes —
rule_id string (uuid) yes —
version integer yes —
changed_by string or null — —
change_type string yes —
previous_hash string or null — —
new_hash string or null — —
diff_summary object or null — —
config_snapshot object or null — —
created_at string (date-time) or null — —

RuleSchedulingOut#

A rule on the list and the detail: plus who owns it (None = Unassigned) and whether the viewer may edit it.

Field Type Required Description
name string yes —
priority integer — —
status RuleStatus or null — —
shadow_mode boolean or null — —
description string or null — —
tags array of string or null — —
applies_to AppliesTo or null — —
when When-Output or null — —
if IfClause-Output or null — —
then Then-Output or null — —
failsafe Failsafe or null — —
freshness_expectation FreshnessExpectation or array of FreshnessExpectation or null — —
source string or null — —
source_repo string or null — —
source_branch string or null — —
source_file string or null — —
source_line integer or null — —
code_id string or null — —
content_hash string or null — —
locked boolean or null — —
version integer or null — —
git_created_at string (date-time) or null — —
git_created_by string or null — —
git_last_modified_at string (date-time) or null — —
git_last_modified_by string or null — —
git_commits array of object or null — —
created_at string (date-time) or null — —
updated_at string (date-time) or null — —
id string (uuid) yes —
connection_id string (uuid) or null — —
namespace_id string (uuid) or null — —
is_paused boolean or null — —
resolved_nodes array of string or null — —
permission_status string or null — —
owner_team RuleOwnerTeam or null — —
can_edit boolean or null — —

RuleSchedulingResponse#

Field Type Required Description
name string yes —
priority integer — —
status RuleStatus or null — —
shadow_mode boolean or null — —
description string or null — —
tags array of string or null — —
applies_to AppliesTo or null — —
when When-Output or null — —
if IfClause-Output or null — —
then Then-Output or null — —
failsafe Failsafe or null — —
freshness_expectation FreshnessExpectation or array of FreshnessExpectation or null — —
source string or null — —
source_repo string or null — —
source_branch string or null — —
source_file string or null — —
source_line integer or null — —
code_id string or null — —
content_hash string or null — —
locked boolean or null — —
version integer or null — —
git_created_at string (date-time) or null — —
git_created_by string or null — —
git_last_modified_at string (date-time) or null — —
git_last_modified_by string or null — —
git_commits array of object or null — —
created_at string (date-time) or null — —
updated_at string (date-time) or null — —
id string (uuid) yes —
connection_id string (uuid) or null — —
namespace_id string (uuid) or null — —
is_paused boolean or null — —
resolved_nodes array of string or null — —
permission_status string or null — —

RuleSchedulingUpdate#

Field Type Required Description
name string or null — —
priority integer or null — —
status string or null — —
shadow_mode boolean or null — —
description string or null — —
tags array of string or null — —
applies_to AppliesTo or null — —
when When-Input or null — —
if IfClause-Input or null — —
then Then-Input or null — —
failsafe Failsafe or null — —
freshness_expectation FreshnessExpectation or array of FreshnessExpectation or null — —
source string or null — —
source_repo string or null — —
source_branch string or null — —
source_file string or null — —
source_line integer or null — —
code_id string or null — —
content_hash string or null — —
locked boolean or null — —
version integer or null — —
git_created_at string (date-time) or null — —
git_created_by string or null — —
git_last_modified_at string (date-time) or null — —
git_last_modified_by string or null — —
git_commits array of object or null — —
team string or null — Owning team (slug). Omit to let Nistor decide on a create (the unique team of the rule's targets) and to keep the rule's team on an update; null on an update makes the rule Unassigned.

RuleSearchResult#

Field Type Required Description
entity_type string — —
id string yes —
name string yes —
description string or null — —
status string yes —
source string or null — —
code_id string or null — —
rank number yes —

RuleStatus#

The full rule\_scheduling.status vocabulary.

One of: "active", "inactive", "paused", "archived", "test", "external".

RuleTargetCheckResponse#

Field Type Required Description
checked_rules integer — —
failed_rules integer — —
verdict_count integer — —
opened integer — —
bumped integer — —
suppressed integer — —
resolved integer — —
skipped string or null — —
verdicts array of object — —
failed_rule_ids array of string — —
dry_run boolean — —
checked_at string or null — —

RuleValidationError#

Field Type Required Description
field string or null — —
message string yes —
error_type string yes —

RuleValidationResult#

Field Type Required Description
index integer yes —
code_id string or null — —
name string or null — —
valid boolean yes —
errors array of RuleValidationError — —
warnings array of string — —
diff_action string or null — —
matched_node_count integer or null — How many nodes this rule would actually RUN on: nodes it matches AND wins the per-node priority contest for. Nodes it matches but loses to a higher-priority rule of the same executor are NOT counted. This is deliberately narrower than /blast_radius's total_matched, which counts every node the selector reaches, winners and losers alike — the two answer different questions and will disagree whenever an incumbent outranks this rule. Label them apart in the UI ('would run on N nodes' vs 'reaches N nodes'). None when the preview was not requested or could not be computed.
content_hash string or null — —
existing_rule_id string or null — —
existing_source_file string or null — —

RunCostItem#

Type: object.

RunLifecycleOutcome#

Field Type Required Description
status string yes —
node_id string or null — —
reason string or null — —

RunLimit#

Max runs per period.

Field Type Required Description
max integer yes Maximum runs in the period
period RunLimitPeriod yes —

RunLimitPeriod#

One of: "hour", "day", "week", "month".

RunnerOut#

Field Type Required Description
id string (uuid) yes —
name string yes —
executors array of string yes —
created_by string or null — —
created_at string (date-time) or null — —
revoked_at string (date-time) or null — —

RunnerRegistration#

Field Type Required Description
name string yes —
public_key_pem string yes Ed25519 public key, PEM
executors array of string yes Executor types the runner runs

RunRequest#

Field Type Required Description
action_run_id string yes —
rule_id string or null — —
node_id string or null — —
args object — —
trigger string (enum) or null — —

RuntimeInstanceDrainingRequest#

Field Type Required Description
instance_id string yes —

RuntimeInstanceDrainingResponse#

Field Type Required Description
draining boolean yes —

RuntimeInstanceHeartbeat#

Field Type Required Description
instance_id string yes —
role string yes —
revision string or null — —
executor_plugins array of string — —
plugin_digest string yes sha256 of the sorted plugin ids

RuntimeInstanceRead#

Field Type Required Description
instance_id string yes —
role string yes —
revision string or null — —
started_at string (date-time) yes —
heartbeat_at string (date-time) yes —
executor_plugins array of string — —
plugin_digest string yes —
draining boolean — —

S#

SameFieldColumn#

One sibling column that is the *same physical field* in another table.

Field Type Required Description
node_id string yes —
column_name string yes —
table_display_name string or null — —

SandboxResultSchema#

Mirror of :class:nistor_core.execution.sandbox.SandboxResult.

Field Type Required Description
ok boolean yes —
return_value object — —
stdout string — —
stderr string — —
logs array of string — —
reported object — —
error string or null — —
error_type string or null — —
duration_ms integer — —

SavedExplorationCreate#

Field Type Required Description
node_id string yes Node this exploration belongs to
title string yes Short title for the saved query
sql_text string yes The SQL query text
description string or null — Optional longer description
folder string or null — Folder/category name
is_public boolean — Whether this query is visible to all users
tags array of string — Tag strings for categorisation

SavedExplorationResponse#

Type: object.

SavedExplorationUpdate#

Field Type Required Description
title string or null — —
sql_text string or null — —
description string or null — —
folder string or null — —
is_public boolean or null — —
is_favorite boolean or null — —
tags array of string or null — —

SavedExplorationVersionResponse#

Type: object.

Schedule#

Cron schedule with optional business-calendar awareness.

Field Type Required Description
cron string or array of string or null — Cron expression(s)
time_zone string or null — IANA timezone
wait_for_new_data boolean or null — Only fire if new input_log rows arrived since last run
business_calendar_id string (uuid) or null — Skip non-working days from this calendar (by id)
business_calendar string or null — Skip non-working days from this calendar (by name)
skip_holidays boolean or null — Skip holidays (default True when calendar set)
month_boundary string (enum) or null — Snap to first/last business day of the month
market_open_offset_minutes integer or null — Shift fire time by N minutes

ScheduledRefreshSummary#

A refresh Nistor knows about from *configuration*, not from an observed run.

Field Type Required Description
cadence_label string yes Human cadence from the MStr schedule, e.g. 'Daily 6:30:00 AM server time'.
source "microstrategy_subscription" — Where the cadence came from — currently only an MStr subscription/schedule.
subscription_node_id string or null — The MStr subscription node driving the refresh (for drill-through).
schedule_node_id string or null — The MStr schedule node that supplies the cadence string.

SchedulerAction#

Type: object.

SchedulerActionCreate#

Field Type Required Description
source_id string yes Source identifier
node_id string yes Node identifier
scheduled_datetime string (date-time) yes Scheduled datetime
rule_id string (uuid) or null — Rule identifier
check_metadata object or null — Check metadata

SchedulerActionUpdate#

Field Type Required Description
source_id string or null — Source identifier
node_id string or null — Node identifier
scheduled_datetime string (date-time) or null — Scheduled datetime
rule_id string (uuid) or null — Rule identifier
check_metadata object or null — Check metadata

SchedulerActionWindow#

One time-bucket of the aggregated scheduler-activity series.

Field Type Required Description
start_datetime string (date-time) yes Window start (UTC)
count integer yes Number of scheduler actions in the window

ScopeType#

One of: "global", "namespace", "nodes".

SectionStats#

Usage stats per section.

Field Type Required Description
section string yes —
view_count integer yes —
unique_users integer yes —

SelectorCreate#

Field Type Required Description
kind string yes —
value object of string or string yes —

SelectorInfo#

A filter/selector control and the object(s) it drives (best-effort).

Field Type Required Description
key string or null — —
name string or null — —
selector_type string or null — —
targets array of BoundObject — —

SelectorKindOption#

A plugin-contributed selector kind and the values its plugin states for at least one node.

Field Type Required Description
kind string yes —
label string yes —
values array of SelectorValueOption yes —

SelectorOut#

Field Type Required Description
id string (uuid) yes —
kind string yes —
value object of string or string yes —
label string yes —
match_count integer yes —
contested_count integer yes —
created_by string or null — —
created_at string (date-time) yes —
taken_from array of OwnerCount — —
lost_to array of LostTo — —

SelectorPreview#

Field Type Required Description
match_count integer yes —
sample array of string yes —
current_owners array of OwnerCount yes —
would_take array of OwnerCount or null — —

SelectorRef#

Field Type Required Description
kind string yes —
value string yes —

SelectorValueOption#

Field Type Required Description
value string yes —
label string yes —

ServingRevision#

Field Type Required Description
revision_name string yes —
digest string or null — —
image_node_id string yes —
traffic_percent integer or null — —

SessionAggregateOut#

Nistor's believed holding across every process that reported in time.

Field Type Required Description
in_use integer yes Every MicroStrategy session the reporting processes HOLD — pooled (leased plus idle-but-logged-in) and direct
capacity integer yes —
pooled_in_use integer yes in_use minus direct logins — the pool's own occupancy, what utilisation is judged against

SessionBudgetOut#

Field Type Required Description
as_of string (date-time) yes —
window_seconds integer yes —
aggregate SessionAggregateOut yes —
coverage nistor_tool_microstrategy__routers__mstr_sessions__CoverageOut yes —
reporting_processes integer yes Processes that reported inside the window. There is deliberately no expected-process denominator: Cloud Run cannot tell a process how many siblings it has, and an invented one would be the confidently-wrong number this page exists to prevent.
backing_off BackingOffOut yes —
by_service array of nistor_tool_microstrategy__routers__mstr_sessions__ServiceRollupOut yes —
processes array of ProcessReportOut yes —

SessionCap#

The MicroStrategy session cap behind a lockout, as MicroStrategy reported it.

Field Type Required Description
scope string yes Which population the cap governs: 'server', 'project', 'user' or 'unknown'
limit integer or null — The limit MicroStrategy wrote into its refusal, e.g. 1000; null when it gave none
iserver_code integer or null — MicroStrategy iServerCode of the refusal

SessionOut#

Field Type Required Description
state string (enum) yes leased/idle: held by an executor pool; direct: opened outside any pool
since string (date-time) yes Leased at, idle since, or logged in at
purpose LeasePurposeOut or null — Set while leased, and for every direct session
last_kind string or null — While idle: the kind of the lease that last used it
username string or null — MicroStrategy login name — Workstation's User Connections filter
project_id string or null — Project the session was opened against, when known

SiffletAssetHealthResponse#

Field Type Required Description
asset_id string (uuid) yes —
bq_qualified_name string yes —
node_id string yes —
name string or null — —
technology string or null — —
type string or null — —
health_status string yes —
tags array of object — —
ingested_at string (date-time) yes —

SiffletBqRecomputeOverride#

Optional explicit metric spec for POST /rules/{id}/compute-metric-values.

Field Type Required Description
value_expr string or null — Aggregation, e.g. count(PVREG)
date_expr string or null — Per-row DATE bucket expression
filter_column string or null — Raw time column for the WHERE range (pruning)
filter_column_type string or null — date | datetime | timestamp

SiffletBqRecomputeResponse#

Returned by POST /sifflet/rules/{rule_id}/compute-metric-values.

Field Type Required Description
rule_id string (uuid) yes —
status string yes computed | estimated | skipped | needs_date_column | unsupported | no_table | no_runs | executor_unavailable | no_connection
reason string or null — Human-readable detail for non-computed statuses
value_preview string or null — Metric we'd compute (needs_date_column) — for the column-picker caption
dates_computed integer — Distinct dates a value was computed for
runs_filled integer — Archived runs stamped with a BQ value
points_written integer — rule_metric_point rows refreshed
estimated_bytes integer or null — Dry-run estimated scan size
estimated_cost_usd number or null — Dry-run estimated cost
cost_usd number or null — Actual billed cost (executed only)
window object or null — {start, end} dates computed over

SiffletBqRecomputeToggleRequest#

Body for POST /sifflet/rules/{rule_id}/bq-recompute-auto.

Field Type Required Description
enabled boolean yes Turn hourly incremental BQ recompute on/off for this rule

SiffletBqRecomputeToggleResponse#

Returned by POST /sifflet/rules/{rule_id}/bq-recompute-auto.

Field Type Required Description
rule_id string (uuid) yes —
bq_recompute_enabled boolean yes —

SiffletCostEstimatePoint#

One UTC day of Sifflet's BigQuery read activity and its estimated cost.

Field Type Required Description
date string yes ISO date (YYYY-MM-DD), UTC
reads integer — Sifflet BigQuery read events that day
estimated_cost_usd number — reads × median rate × BQ on-demand price

SiffletCostEstimateResponse#

Estimated cost of running Sifflet's data-quality checks against BigQuery.

Field Type Required Description
fidelity string — Always 'estimated' for this source
basis string yes Human-readable description of how the estimate was derived
window_days integer yes —
principal_pattern string yes input_logs.writer LIKE pattern used to match Sifflet
sifflet_read_count integer — Sifflet BigQuery reads in the window (from input_logs)
monitored_table_count integer — Distinct tables Sifflet has rules on (sifflet_rule_dataset)
rate_bytes_per_read integer or null — Median measured billed bytes per read on monitored tables; None if no sample
rate_sample_size integer — Byte-bearing reads on monitored tables backing the median rate
estimated_billed_bytes integer or null — sifflet_read_count × rate_bytes_per_read
estimated_cost_usd number or null — Estimated window cost in USD; None when no rate is available
series array of SiffletCostEstimatePoint — —

SiffletCriticalityStat#

Monitor count at one criticality level (0–10).

Field Type Required Description
criticality integer yes —
count integer — —

SiffletDateColumn#

A candidate bucketing column for a needs_date_column recompute.

Field Type Required Description
name string yes —
type string yes DATE | DATETIME | TIMESTAMP

SiffletDateColumnsResponse#

Temporal columns of a rule's monitored table — powers the recompute picker.

Field Type Required Description
rule_id string (uuid) yes —
table string or null — Fully-qualified table the columns come from
columns array of SiffletDateColumn — —

SiffletDebugSqlRefreshResponse#

Returned by POST /sifflet/rules/{rule_id}/refresh-debug-sql.

Field Type Required Description
rule_id string (uuid) yes —
has_sql boolean yes True when generated SQL is now cached for the rule
debug_sql string or null — The generated SQL itself, so the caller can render it without a reload
fetched_at string (date-time) or null — When the SQL was last fetched

SiffletHealthResponse#

Health/status for the page header banner.

Field Type Required Description
enabled boolean yes True when ingester is configured
base_url string or null — —
last_ingest_at string (date-time) or null — —
last_ingest_success boolean or null — —
last_ingest_duration_ms integer or null — —
last_ingest_error string or null — —
rules_total integer — —
rules_failing integer — —
assets_total integer — —
assets_with_incidents integer — —
schedule_cron string or null — —
schedule_tz string or null — —
schedule_description string or null — —

SiffletLabelStat#

Coverage for one Sifflet check type (rule\_label: Freshness / Volume / …).

Field Type Required Description
label string yes —
total integer — —
failing integer — —

SiffletMirrorSyncResponse#

Returned by POST /sifflet/rules/{rule_id}/sync-mirror (on-demand deep mirror).

Field Type Required Description
rule_id string (uuid) yes —
mirror_check_id string (uuid) or null — Canonical mirror rule_scheduling.id
runs_archived integer — Live /runs rows upserted into the archive
points_written integer — rule_metric_point rows upserted
dq_runs_written integer — data_quality_run rows inserted
runs_reconciled integer — Archived runs reconciled into incidents/activity
incidents_opened integer — Incidents opened during reconcile
incidents_closed integer — Incidents closed during reconcile

SiffletNodeBundleResponse#

One-shot response for the per-node Sifflet section.

Field Type Required Description
node_id string yes —
rules array of SiffletRuleResponse yes —
asset_health SiffletAssetHealthResponse or null — —
weekly_pass_rate number or null — 0.0–1.0, computed from each rule's last_week_statuses. None when no rules.

SiffletOverviewResponse#

One-shot payload for the Sifflet control-tower tab.

Field Type Required Description
status_breakdown SiffletStatusBreakdown — —
run_breakdown SiffletRunBreakdown — —
label_breakdown array of SiffletLabelStat — —
criticality_breakdown array of SiffletCriticalityStat — —
trend array of SiffletTrendPoint — —
top_failing array of SiffletRuleResponse — —
recent_activity array of SiffletRuleResponse — —
sync_history array of SiffletSyncLogEntry — —

SiffletRecomputeCapability#

Whether — and how — the FE should surface BigQuery metric recompute.

Field Type Required Description
state string yes auto | needs_date_column | unsupported
reason string or null — Why it isn't auto-computable (needs_date_column / unsupported)
value_preview string or null — Human-readable metric we'd compute, for the column-picker caption
scans_bigquery boolean — Whether computing costs a BigQuery scan. False for a pass/fail assertion monitor, whose passing values are entailed by its own threshold and so come from run history for free — the FE then skips the cost preview.

SiffletReconcileRunsResponse#

Returned by POST /sifflet/reconcile-runs (on-demand incident backfill batch).

Field Type Required Description
processed integer — Runs reconciled this batch (incl. skipped)
opened integer — Incidents opened this batch
closed integer — Incidents closed this batch
skipped integer — Non-terminal runs marked without an event
remaining integer — Unprocessed runs still pending for this scope
rule_id string (uuid) or null — Scope rule (None = whole fleet)

SiffletRuleCostPoint#

One UTC day of ONE Sifflet rule's measured BigQuery spend.

Field Type Required Description
date string yes ISO date (YYYY-MM-DD), UTC
jobs integer — Distinct BigQuery jobs attributed to the rule that day
billed_bytes integer — Billed bytes across those jobs (deduplicated per job)
cost_usd number — billed_bytes priced at the bq.on_demand rate

SiffletRuleCostResponse#

MEASURED BigQuery scan cost of one Sifflet rule.

Field Type Required Description
fidelity string — Always 'measured' for this source
basis string yes Human-readable statement of what was measured, and of what was not
window_days integer yes —
rule_id string (uuid) yes Sifflet's external rule UUID
principal_pattern string yes input_logs.writer LIKE pattern used to match Sifflet
attribution string — Which marker(s) were read: 'sifflet_labels' (indexed, default) or 'sifflet_labels+query_text'
total_billed_bytes integer — Billed bytes over the window, deduplicated per BigQuery job
total_cost_usd number or null — Window cost in USD; None when no attributed job carries billed bytes
attributed_job_count integer — Distinct BigQuery jobs carrying this rule's marker
jobs_with_billed_bytes integer — Of those, how many actually report billed bytes
runs_in_window integer — Runs Sifflet recorded for the rule in the same window (mirror)
rate_usd_per_tb number yes The bq.on_demand rate the dollars above were computed at
series array of SiffletRuleCostPoint — —

SiffletRuleResponse#

Rendered rule card. Consumed by the merged Checks tab + by-node widget.

Field Type Required Description
rule_id string (uuid) yes —
name string yes —
description string or null — —
rule_status string or null — —
rule_status_at string (date-time) or null — —
last_run_status string or null — —
last_run_at string (date-time) or null — —
last_run_result string or null — —
rule_type string or null — —
rule_label string or null — —
criticality integer or null — —
schedule string or null — —
last_week_statuses array of object — —
tags array of string — —
mirror_check_id string (uuid) or null — —
debug_sql string or null — —
bq_recompute_enabled boolean — —
recompute SiffletRecomputeCapability or null — —
rule_template_name string or null — —
rule_params object or null — —
schedule_timezone string or null — —
created_by string or null — —
modified_by string or null — —
sifflet_created_at string (date-time) or null — —
sifflet_modified_at string (date-time) or null — —
last_incident_issue_no integer or null — —
last_incident_status string or null — —
last_incident_qualification string or null — —
node_ids array of string — —
qualified_names array of string — —
ingested_at string (date-time) yes —

SiffletRuleRunResponse#

One archived Sifflet rule execution (from sifflet\_rule\_run).

Field Type Required Description
run_at string (date-time) yes —
status string yes —
result string or null — —

SiffletRuleSearchResult#

Field Type Required Description
entity_type string — —
id string yes —
rule_id string yes —
name string yes —
rule_label string or null — —
rule_type string or null — —
rule_status string or null — —
last_run_status string or null — —
criticality integer or null — —
rank number yes —

SiffletRulesPageResponse#

Paginated rules envelope, for the Checks tab merge.

Field Type Required Description
items array of SiffletRuleResponse yes —
total integer yes —
page integer — —
page_size integer — —

SiffletRunArchiveDedupeResponse#

Field Type Required Description
dry_run boolean yes —
scanned integer yes Sifflet rules with 2+ archived runs read by this page
affected integer yes Rules of the page that held at least one run archived twice
runs_removed integer yes —
runs_enriched integer yes Kept rows that took a NULL (incident context, metrics) from a twin
ambiguous_pairs integer yes Rows within 30 s of the previous one but another status/result
rule_ids array of string — Affected sifflet_rule ids (first 50)
next_after_id string or null — Pass as after_id for the next page; null when done

SiffletRunBreakdown#

Fleet split by last\_run\_status (the monitor's last execution).

Field Type Required Description
success integer — —
failed integer — —
running integer — —
other integer — —

SiffletStatusBreakdown#

Fleet split by rule\_status (the monitor's current verdict).

Field Type Required Description
passing integer — —
failing integer — —
disabled integer — —

SiffletSyncLogEntry#

One ingest run (a sifflet\_ingest poll_run row), for the sync timeline.

Field Type Required Description
started_at string (date-time) yes —
ended_at string (date-time) or null — —
duration_ms integer or null — —
success boolean — —
rules_upserted integer — —
rules_removed integer — —
assets_upserted integer — —
assets_removed integer — —
runs_processed integer — —
incidents_opened integer — —
incidents_closed integer — —
error string or null — —

SiffletTrendPoint#

One UTC day of fleet-wide run outcomes — drives the trend chart.

Field Type Required Description
date string yes ISO date (YYYY-MM-DD), UTC
total integer — —
passed integer — —
failed integer — —
pass_rate number — passed / (passed+failed) × 100, 0–100

SimulatedFire#

Field Type Required Description
at string (date-time) yes —
source string (enum) yes —
matched_cron string or null — —
triggering_event TriggeringEvent or null — —
reason string or null — —
disposition string (enum) — —

SimulatePastFiresRequest#

Field Type Required Description
rule_id string (uuid) or null — —
rule object or null — —
node_id string yes —
start_datetime string (date-time) yes —
end_datetime string (date-time) yes —
include_actual_runs boolean — —
max_fires integer — —

SimulatePastFiresResponse#

Field Type Required Description
rule_id string (uuid) or null — —
node_id string yes —
window object of string (date-time) yes —
simulated_fires array of SimulatedFire yes —
actual_fires array of ActualFire — —
assumptions array of string — —
truncated boolean — —
baseline SimulationBaseline or null — Node cadence anchor for the over-fire banner (None when not computed)
no_fire_reason string or null — Why the replay produced zero simulated fires, in words meant for the reader. Set ONLY when simulated\_fires is empty, and left None whenever the replay cannot honestly name a single cause — an empty result with no reason keeps the caller's generic 'adjust the trigger' advice. The important case it exists for: a node's listener\_events are compiled from DEPLOYED rules, so a draft that is not deployed yet has nothing to replay against and the replay's silence is a limit of the replay rather than a finding about the rule. See nistor\_backend.services.rule\_simulation.simulator.explain\_no\_fires.

SimulationBaseline#

The node's own real cadence over the simulated window.

Field Type Required Description
window_days number yes Literal span of the simulated window, in days
qualifying_event_count integer yes Type-scoped upstream events seen in the window
data_load_count integer yes Distinct upstream loads (multi-statement bursts collapsed) — the expected fire count
actual_run_count integer yes Real action_runs for this rule/node in the window (0 for a draft)

SLAConfigCreate#

Schema for creating/upserting an SLA config.

Field Type Required Description
severity string yes Incident severity: critical, high, medium, low
incident_type string — Incident type
target_ack_minutes integer yes Target minutes to first acknowledgement
target_resolve_minutes integer yes Target minutes to resolution

SLAConfigResponse#

Schema for SLA config response.

Field Type Required Description
id string (uuid) yes —
severity string yes —
incident_type string yes —
target_ack_minutes integer yes —
target_resolve_minutes integer yes —
created_at string (date-time) yes —
updated_at string (date-time) yes —

SlotBroadcastRequest#

Field Type Required Description
snapshots array of SlotSnapshotIn yes —
incident_ids array of string — —
affected_action_run_ids array of string — —

SlotSnapshotIn#

One reservation observation. Multiple per call when polling N envs.

Field Type Required Description
collected_at string (date-time) yes —
environment string yes dev | test | prod
project_id string yes —
location string yes GCP location, e.g. 'eu', 'us', 'europe-west1'
reservation_id string or null — —
slots_used integer yes —
slots_capacity integer or null — —
utilization_pct number yes —
is_saturated boolean yes —

SlotSnapshotOut#

Field Type Required Description
collected_at string (date-time) yes —
environment string yes —
project_id string yes —
location string yes —
reservation_id string or null — —
slots_used integer yes —
slots_capacity integer or null — —
utilization_pct number yes —
is_saturated boolean yes —

SnapshotIn#

Field Type Required Description
tool string yes —
kind string (enum) yes —
in_use integer yes —
capacity integer yes —
peak_in_use integer or null — —
waits integer or null — —
timeouts integer or null — —
overflows integer or null — —
leaks integer or null — —
oldest_held_seconds number or null — —

SnoozeRequest#

Field Type Required Description
minutes integer — Defer the reminder this many minutes (default 60, max 1 week)

SnoozeResponse#

Type: object.

SourceColumn#

Field Type Required Description
source_node_id string yes —
source_column string yes —
source_table_display_name string or null — —
transformation_hint string or null — —

SpecHistoryEntry#

Type: object.

StaleDispatchClaimRequest#

Field Type Required Description
dispatch_owner string yes —
limit integer — —
lease_seconds integer — —

StaleNodeEntry#

A node downstream of a failing incident, potentially serving stale data.

Field Type Required Description
node_id string yes —
display_name string or null — —
node_type string or null — —
upstream_incident_id string yes —
depth integer yes —
estimated_staleness_hours number or null — —

StateCount#

Field Type Required Description
state string yes —
count integer yes —

StatusBreach#

An unresolved SLA / contract violation touching the subject.

Field Type Required Description
kind string yes "contract" | "freshness".
dimension string yes —
severity string or null — —
node_id string or null — —
observed_at string (date-time) yes —
detail string or null — —

StatusComponent#

Per-asset row: current status + uptime vs the asset's availability SLA.

Field Type Required Description
asset_id string (uuid) yes —
node_id string or null — —
name string yes —
current_status StatusLevel yes —
uptime_pct number yes —
sla_target_pct number yes Availability target, e.g. 99.0.
meeting_sla boolean yes —
freshness_sla_hours integer or null — —
last_refresh_time string (date-time) or null — —
last_job_status string or null — —
last_checked string (date-time) or null — —

StatusIncident#

Field Type Required Description
id string (uuid) yes —
title string yes —
severity string yes —
status string yes —
started_at string (date-time) yes —
affected_node_ids array of string — —

StatusLevel#

statuspage.io-style level, derived from the AssetHealthSnapshot status.

One of: "operational", "degraded", "down", "unknown".

StatusPagePayload#

Field Type Required Description
subject_type SubjectType yes —
subject_id string yes —
subject_name string yes —
description string or null — —
overall_status StatusLevel yes —
overall_uptime_pct number yes —
window_days integer yes —
generated_at string (date-time) yes —
summary StatusPageSummary yes —
components array of StatusComponent — —
uptime_history array of UptimeBucket — —
active_incidents array of StatusIncident — —
active_breaches array of StatusBreach — —

StatusPageSubjectSummary#

One row of the status-page index: a subject + its current health signal.

Field Type Required Description
subject_type SubjectType yes —
subject_id string yes —
subject_name string yes —
description string or null — —
is_public boolean — —
overall_status StatusLevel yes —
overall_uptime_pct number yes —
total_components integer yes —
window_days integer yes —

StatusPageSummary#

Field Type Required Description
total_components integer yes —
operational integer yes —
degraded integer yes —
down integer yes —
unknown integer yes —

StatusSummary#

Field Type Required Description
healthy integer — —
warning integer — —
critical integer — —
unknown integer — —

StoragePoint#

Field Type Required Description
date string (date) yes —
total_logical_bytes integer yes —
active_logical_bytes integer yes —
long_term_logical_bytes integer yes —
total_physical_bytes integer yes —

SubgraphRequest#

Request payload: the member node_ids whose induced lineage we want.

Field Type Required Description
node_ids array of string yes Member node IDs to induce the lineage subgraph over.
exclude_patterns array of string — Regex patterns for node IDs to exclude from traversal and results.

SubjectType#

One of: "health_group", "domain".

T#

TableMetadataHistoryResponse#

Field Type Required Description
node_id string yes —
table_type string or null — Most recent observed table_type (BASE TABLE | VIEW | MATERIALIZED VIEW | EXTERNAL_*)
points array of TableMetadataPoint — Daily observations, oldest first — the order a forecaster expects.

TableMetadataPoint#

One daily observation of a table's BigQuery metadata.

Field Type Required Description
observed_date string (date) yes —
last_modified_at string (date-time) or null — —
row_count integer or null — —
size_bytes integer or null — —

TableSchemaResponse#

Field Type Required Description
project string yes —
dataset string yes —
table string yes —
fields array of ColumnMeta yes —
total_fields integer yes —
num_rows integer or null — —
num_bytes integer or null — —

Target#

What to act on — defaults to the matched node(s) unless overridden.

Field Type Required Description
same_as_applies_to boolean or null — When True (the default for simple rules), the target is the node(s) matched by applies_to. When False, use the selector fields below to target a different set of nodes.
node_type string or null — Override target node type
node_ids array of string or null — Override target node IDs
display_names array of string or null — Override target display names
tags array of string or null — Override target tags
exclude_node_ids array of string or null — Patterns to exclude from targeting
scope TargetScope or string or null — Relationship traversal from the matched node
group boolean or null — Group all targets into one action invocation
highest_priority_only boolean or null — Only the highest-priority rule per executor type fires on each node
exclusive boolean or null — Claim the target nodes exclusively — other rules of the same executor can't cascade onto them

TargetScope#

One of: "node", "children", "descendants", "ancestors", "all".

TaxonomyGroup#

A shelf identity — the fallback bucket, or the shape a rule resolves to.

Field Type Required Description
id string yes Stable, CSS-safe group id.
label string yes Human-facing shelf title.

TaxonomyRule#

A keyword rule: when match hits an item's name/labels, it joins this group.

Field Type Required Description
id string yes Stable, CSS-safe group id.
label string yes Human-facing shelf title.
match string yes Regex source, tested case-insensitively against the dashboard name + label values.
hue integer or null — Optional colour-ramp index (0-9); omit and a stable hue is hashed from the id.

TeamAccessExplained#

Field Type Required Description
code string yes —
owner TeamOwner yes —
mine DecisionOut yes —
principals_visible boolean yes —
principals Principals or null — —

TeamAccessGrantCreate#

Field Type Required Description
grantee_slug string yes —
role string yes Name of the preset the grantee's members get

TeamAccessGrantOut#

Field Type Required Description
id string (uuid) yes —
grantee OwnerRef yes —
role string yes —
codes array of string yes —
created_by string or null — —
created_at string (date-time) yes —

TeamAccessGrantUpdate#

Field Type Required Description
role string yes Name of the preset the grantee's members get

TeamAuditEntry#

Field Type Required Description
id string (uuid) yes —
created_at string (date-time) yes —
performed_by string yes —
action_type string yes —
details object or null — —
status string or null — —

TeamAuditPage#

Field Type Required Description
items array of TeamAuditEntry yes —
has_more boolean yes —

TeamCreate#

Field Type Required Description
name string yes —
slug string yes —
description string or null — —
visibility string (enum) — —

TeamDetail#

Field Type Required Description
id string (uuid) yes —
slug string yes —
name string yes —
description string or null — —
visibility string yes —
is_active boolean yes —
member_count integer yes —
owned_node_count integer yes —
my_role TeamRole or null — —
can_manage boolean yes —
google_group_email string or null — —
default_alert_channel_id string (uuid) or null — —
selector_count integer yes —
created_at string (date-time) yes —

TeamGrantHolders#

Field Type Required Description
team TeamRef yes —
role string yes —
members array of PersonRef yes —
truncated boolean — —

TeamMember#

Field Type Required Description
email string yes —
display_name string or null — —
role TeamRole or null — —
can_manage_team boolean yes —
added_at string (date-time) yes —

TeamMemberCreate#

Field Type Required Description
email string yes —
role_template_id integer yes —

TeamMemberHolder#

Field Type Required Description
email string yes —
display_name string or null — —
role string yes —
via "member" — —

TeamMemberUpdate#

Field Type Required Description
role_template_id integer yes —

TeamOwner#

Field Type Required Description
team TeamRef or null — —
contested boolean — —

TeamRef#

Field Type Required Description
slug string or null — —
name string yes —

TeamRole#

Field Type Required Description
id integer yes —
name string yes —

TeamRoleOption#

Field Type Required Description
id integer yes —
name string yes —
description string or null — —
can_manage_team boolean yes —

TeamSummary#

Field Type Required Description
id string (uuid) yes —
slug string yes —
name string yes —
description string or null — —
visibility string yes —
is_active boolean yes —
member_count integer yes —
owned_node_count integer yes —
my_role TeamRole or null — —
can_manage boolean yes —

TeamUpdate#

Field Type Required Description
name string or null — —
description string or null — —
visibility string (enum) or null — —
google_group_email string or null — —
default_alert_channel_id string (uuid) or null — —

TermSearchResult#

A glossary term/domain, matched on name, definition, or owner email.

Field Type Required Description
entity_type string — —
id string yes —
name string yes —
slug string or null — —
kind string or null — —
definition string or null — —
owner_email string or null — —
rank number yes —

TerraformStateBindingCreate#

Field Type Required Description
gitops_connection_id string (uuid) yes —
environment string yes —
branch string yes —
state_bucket string yes —
state_prefix string yes —
terraform_directory string — —
encryption_key_secret string or null — —
workspace string — —

TerraformStateBindingResponse#

Field Type Required Description
id string (uuid) yes —
gitops_connection_id string (uuid) yes —
environment string yes —
branch string yes —
state_bucket string yes —
state_prefix string yes —
terraform_directory string yes —
status string yes —
encryption_key_secret string or null — —
workspace string — —
repo_url string or null — —
repo_project_path string or null — —
created_at string (date-time) or null — —
updated_at string (date-time) or null — —

TerraformStateBindingUpdate#

Field Type Required Description
environment string or null — —
branch string or null — —
state_bucket string or null — —
state_prefix string or null — —
terraform_directory string or null — —
status string or null — —
encryption_key_secret string or null — —
workspace string or null — —

TestRunRequest#

Field Type Required Description
code string yes —
entrypoint string — —
allow_imports array of string — —
params object — —
env object of string — —
timeout_s integer or null — Clamped to a low interactive ceiling.
mem_mb integer or null — Clamped to a low interactive ceiling.
secret_names array of string — —

Then-Input#

What to do when the rule fires — target plus action.

Field Type Required Description
target Target — —
do DoSingle-Input or DoChain-Input yes The action (single) or action chain to run

Then-Output#

What to do when the rule fires — target plus action.

Field Type Required Description
target Target — —
do DoSingle-Output or DoChain-Output yes The action (single) or action chain to run

TimeBucket#

A single time-series bucket (daily or hourly).

Field Type Required Description
slot_cost CostFigure or null — —
bucket string yes —
count integer — —
cost number — —
slot_ms integer — —
reads integer — —
writes integer — —
processed_bytes integer — —
cache_hits integer — —
unique_tables integer — —

TimeframeProjectCount#

Type: object.

TimeframeStateCount#

Type: object.

TimelineEntry#

A single entry in the incident timeline.

Field Type Required Description
timestamp string (date-time) yes —
actor string yes Email of the user or 'system'
event_type string yes Event type: opened, acknowledged, resolved, closed, reopened, comment, resolution_note, status_comment
category string yes 'system' for status changes, 'user' for comments
title string yes Human-readable event title
content string or null — Event body (comment text, resolution notes, etc.)
metadata object or null — Additional event-specific data

TimelineRead#

A node's change/incident/cost timeline over a window.

Field Type Required Description
node_id string yes —
start string (date-time) yes —
end string (date-time) yes —
window_days integer yes —
changes array of ChangeEventRead yes —
incidents array of ImpactedIncidentRead yes —
cost_series array of CostPointRead yes —

TimeSeriesPoint#

Single data point in a time series.

Field Type Required Description
date string yes —
view_count integer yes —
unique_users integer yes —

TodayDecision#

What decides today while the nodes kind is not enforced: the legacy org-wide gate (iam\_deps.has\_permission), team roles and grants not counted.

Field Type Required Description
allowed boolean yes —

ToolConfig#

Tool configuration entry stored in backend.

Field Type Required Description
id string yes Tool plugin id
config object — Tool-specific configuration

ToolOut#

Field Type Required Description
key string yes —
label string yes —
kind string (enum) yes —
declared boolean yes —
detail_route string or null yes —
detail_params object of string or null yes —
coverage nistor_backend__api__endpoints__tool_capacity__CoverageOut yes —
hottest_process HottestProcessOut or null yes —
fleet FleetOut yes —
events EventsOut or null yes Per-process deltas since the previous beat; null for sources
oldest_held_seconds number or null yes —
reporting_processes integer yes —
stale_processes integer yes —
by_service array of nistor_backend__api__endpoints__tool_capacity__ServiceRollupOut yes —
processes array of ProcessOut yes —

ToolTypeDescriptor#

Field Type Required Description
name string yes —
description string — —
config_schema object — —
secret_keys array of string — —

TopDownstreamNode#

Lite preview of a downstream consumer for inline display.

Field Type Required Description
node_id string yes —
display_name string or null — —
node_type string or null — —
display_type string or null — —

TouchedPartitionUnit#

One of: "iso_week", "day", "month".

TouchedPartitionWithin#

Fire only when a BigQuery partition touched by the triggering event falls inside a relative calendar window.

Field Type Required Description
unit TouchedPartitionUnit — Calendar grain of the window: iso_week (Mon–Sun), day, or month.
offset integer — Window offset from the current period: -1 = previous, 0 = current, -2 = two back.
timezone string — IANA timezone used to resolve the week/day/month boundaries.

TraceHop#

Field Type Required Description
node_id string yes —
depth integer yes —
occurred_at string (date-time) yes —
event_type string yes —
statement_type string or null — —
destination_partition string or null — —
recompute_mode string or null — —
job_id string or null — —
writer string or null — —
row_stats object or null — —
sources array of string — —
run TraceRun or null — —
confidence string yes —

TraceRun#

Field Type Required Description
dataform_execution_id string or null — —
action_run_id string or null — —
git_commit_sha string or null — —
release_config string or null — —

TriggeringEvent#

Field Type Required Description
node_id string yes —
type string yes —
datetime string (date-time) yes —
source_id string or null — —

TriggerLiveness#

Per-rule tuning for the trigger-liveness detector (spec §5.6).

Field Type Required Description
enabled boolean — Disable all trigger-liveness verdicts for this rule.
expected_interval_seconds integer or null — Override the cadence-derived silence threshold for every trigger node of this rule (e.g. a quarterly source). Applies to the trigger_silent verdict only.

TriggerLivenessCheckResponse#

Field Type Required Description
checked_rules integer — —
opened integer — —
bumped integer — —
resolved integer — —
suppressed_opens integer — —
silent_recoveries integer — —
skipped_heavy_resolves integer — —
context_errors integer — —
skipped string or null — —
verdicts array of object — —
dry_run boolean — —
checked_at string or null — —

TroubleshootOut#

Field Type Required Description
principal TroubleshootPrincipal yes —
code string yes —
target TroubleshootTargetOut yes —
decision DecisionOut yes —
legacy_allowed boolean yes —
would_change_under_enforcement boolean yes —
would_widen_under_enforcement boolean yes —
mode string (enum) yes —

TroubleshootPrincipal#

Field Type Required Description
email string yes —
display_name string or null — —
is_active boolean yes —

TroubleshootTargetOut#

Field Type Required Description
node_id string or null — —
team TeamRef or null — —

TrustScoreBand#

Color band for the Trust Score ring UI.

One of: "green", "amber", "red".

TrustScoreComponents#

Per-component breakdown of a Trust Score, for tooltip display.

Field Type Required Description
base number yes Status-based component (0..100)
rate_adj number yes Recent-success-rate component (0..100)
freshness_penalty number yes Freshness-past-SLA penalty (0..30)
incident_penalty number yes Open critical incidents penalty (0..15)
dq_penalty number — Data-quality failure penalty (0..40); 0 when the asset has no DQ checks

TrustScoreHistoryBucket#

One day of historical Trust Score data for the time-machine scrubber.

Field Type Required Description
date string (date) yes —
score integer yes —
base number yes —
rate_adj number yes —
freshness_penalty number yes —
incident_penalty number yes —
asset_count integer — —

TrustScorePayload#

Type: object.

TrustScoreScope#

Level at which the Trust Score is computed.

One of: "platform", "workspace", "asset".

U#

UnmatchedResourceOut#

Field Type Required Description
type string yes —
address string yes —

UnreadCountResponse#

Field Type Required Description
count integer yes —

UptimeBucket#

One day of the uptime grid for the subject as a whole.

Field Type Required Description
date string (date) yes —
uptime_pct number yes —
status StatusLevel yes —
sample_count integer yes Assets with a snapshot that day.

UsageExcludedStats#

Disclosure: read events removed by the robot-user filter.

Field Type Required Description
users integer — —
events integer — —

UsageTypeStats#

Windowed adoption stats for one node_type (or the estate totals).

Field Type Required Description
catalog_total integer — —
active integer — —
reads integer — —
distinct_viewers integer — —
refreshes integer — —
refreshed_zero_reads integer — —

UserActivity#

Type: object.

UserCreate#

Schema for creating a new user.

Field Type Required Description
email string (email) yes User email address
display_name string or null — User display name
is_admin boolean — Whether user has admin privileges
permission_codes array of string — List of permission codes to assign

UserDetailActionSummary#

Type: object.

UserDetailDailyActivity#

Single day in the activity timeline.

Field Type Required Description
date string yes —
page_views integer yes —
manual_runs integer yes —

UserDetailFullResponse#

Type: object.

UserDetailKpis#

Pre-computed KPIs for user detail panel.

Field Type Required Description
page_views integer yes —
manual_runs integer yes —
unique_pages integer yes —
unique_nodes integer yes —
active_days integer yes —

UserDetailNodeSummary#

Node visit count.

Field Type Required Description
node_id string yes —
count integer yes —

UserDetailResponse#

Type: object.

UserDetailSectionSummary#

Section visit count.

Field Type Required Description
section string yes —
count integer yes —

UserDetailTabSummary#

Tab visit count.

Field Type Required Description
tab string yes —
count integer yes —

UserNotificationResponse#

Field Type Required Description
id string (uuid) yes —
event_type string yes —
node_id string yes —
title string yes —
description string or null — —
is_read boolean yes —
metadata_ object or null — —
nistor_url string or null — —
created_at string (date-time) yes —

UserPermissionsUpdate#

Schema for updating user permissions.

Field Type Required Description
permission_codes array of string yes Complete list of permission codes to assign (replaces existing)

UserResponse#

Schema for user response.

Field Type Required Description
email string (email) or string yes User email address, or a registered service principal's Kubernetes subject
display_name string or null — User display name
id integer yes —
is_admin boolean yes —
is_active boolean yes —
created_at string (date-time) yes —
updated_at string (date-time) yes —
permissions array of PermissionResponse — User's permissions
role_template_id integer or null — Preset the user is durably bound to (null = Custom)
role_name string or null — Name of the bound preset (null = Custom). Derived from the role_template relationship.
teams array of UserTeam or null — Active teams the user belongs to, with their team role. Filled by GET /iam/users only; null elsewhere means not loaded, never 'in no team'.

UserStats#

Type: object.

UserTeam#

An active team a user belongs to, with their team role.

Field Type Required Description
slug string yes —
name string yes —
role string or null — The member's team role (a preset name); null when none applies

UserUpdate#

Schema for updating a user.

Field Type Required Description
display_name string or null — User display name
is_admin boolean or null — Whether user has admin privileges
is_active boolean or null — Whether user account is active

V#

ValidateIssue#

Field Type Required Description
severity string yes error | warning
message string yes —
lineno integer or null — —

ValidateRequest#

Field Type Required Description
code string yes —
entrypoint string — —
allow_imports array of string — —

ValidateResponse#

Field Type Required Description
issues array of ValidateIssue — —
ok boolean yes True when there are no error-severity issues.

ValidationError#

Field Type Required Description
loc array of string or integer yes —
msg string yes —
type string yes —
input object — —
ctx object — —

VersionUsage#

Field Type Required Description
consumer_node_id string yes —
consumer_type string yes —
display_name string yes —
role string (enum) yes —
traffic_percent integer or null — —
revision_name string or null — —

ViaOut#

Field Type Required Description
kind string yes —
role string or null — —
team TeamRef or null — —
from_team TeamRef or null — —
text string yes —

ViewerOut#

Field Type Required Description
email string yes —
display_name string or null — —
last_seen string (date-time) yes —

VisualizationInfo#

Field Type Required Description
key string or null — —
name string or null — —
visualization_type string or null — —
objects array of BoundObject — —

W#

WaitingDiscussionItem#

One discussion awaiting the current user, for the home-page summary card.

Field Type Required Description
entity_type string yes —
entity_id string yes —
environment string or null — —
thread_id string (uuid) or null — Root comment id for ?comment= deep-linking; null for notification-only items.
reason string yes mentioned | replied | awaiting_reply
unread boolean yes True when an unread mention/reply backs this item.
last_actor string or null — Email of who last acted (mentioned/replied/spoke).
snippet string — Short context line (thread root body or notification text).
last_activity_at string (date-time) yes —

WaitingDiscussionsResponse#

Merged, deduped feed of discussions awaiting the current user.

Field Type Required Description
items array of WaitingDiscussionItem yes —
total integer yes Full count of waiting discussions (may exceed len(items)).

WatchListResponse#

Field Type Required Description
watches array of WatchOut — —
total integer — —

WatchOut#

A watch as the UI sees it.

Field Type Required Description
id string yes —
node_id string yes —
node_type string yes —
probe_id string yes —
probe_config object or null — —
interval_seconds integer yes —
enabled boolean yes —
last_seen_modified string (date-time) or null — —
last_polled_at string (date-time) or null — —
last_advanced_at string (date-time) or null — —
next_poll_at string (date-time) or null — —
consecutive_failures integer — —
last_error_kind string or null — —
last_error string or null — —
last_error_at string (date-time) or null — —
source_rule_ids array of string or null — —
last_seen_fingerprint string or null — —
auto_sources array of string or null — —
last_exact_error string or null — —
last_exact_error_at string (date-time) or null — —

WebhookEndpointCreate#

Schema for creating a new webhook endpoint.

Field Type Required Description
slug string yes URL-safe identifier (lowercase alphanumeric and hyphens)
name string yes Human-readable name
description string or null — —
payload_template object or null — Jinja2 mapping template. Keys are SchedulerEventMessage fields, values are Jinja2 expressions. When null, a default template is used.
webhook_type "gitlab_mr" or null — null: a generic endpoint (HMAC X-Webhook-Signature, Jinja template). "gitlab_mr": GitLab merge-request events for the MR impact bot, authenticated by X-Gitlab-Token = this endpoint's secret; needs gitops_connection_id.
gitops_connection_id string (uuid) or null — The GitOps connection whose repository sends these events (gitlab_mr only).
require_timestamp boolean — Refuse a delivery without a signed X-Webhook-Timestamp (401) on this endpoint, whatever the deployment-wide WEBHOOK_REQUIRE_TIMESTAMP says (generic endpoints only).

WebhookEndpointRead#

Schema for reading a webhook endpoint (secret excluded).

Field Type Required Description
id string (uuid) yes —
slug string yes —
name string yes —
description string or null — —
hmac_algorithm string yes —
payload_template object or null — —
status string yes —
created_by string or null — —
last_triggered_at string (date-time) or null — —
trigger_count integer yes —
created_at string (date-time) yes —
updated_at string (date-time) yes —
webhook_url string or null — —
webhook_type string or null — —
gitops_connection_id string (uuid) or null — —
require_timestamp boolean — —

WebhookEndpointUpdate#

Schema for updating an existing webhook endpoint.

Field Type Required Description
name string or null — —
description string or null — —
payload_template object or null — —
status string or null — —
webhook_type "gitlab_mr" or null — null: a generic endpoint (HMAC X-Webhook-Signature, Jinja template). "gitlab_mr": GitLab merge-request events for the MR impact bot, authenticated by X-Gitlab-Token = this endpoint's secret; needs gitops_connection_id.
gitops_connection_id string (uuid) or null — The GitOps connection whose repository sends these events (gitlab_mr only).
require_timestamp boolean or null — Refuse a delivery without a signed X-Webhook-Timestamp (401) on this endpoint, whatever the deployment-wide WEBHOOK_REQUIRE_TIMESTAMP says (generic endpoints only).

WebhookEndpointWithSecret#

Returned only on create — includes the HMAC secret.

Field Type Required Description
id string (uuid) yes —
slug string yes —
name string yes —
description string or null — —
hmac_algorithm string yes —
payload_template object or null — —
status string yes —
created_by string or null — —
last_triggered_at string (date-time) or null — —
trigger_count integer yes —
created_at string (date-time) yes —
updated_at string (date-time) yes —
webhook_url string or null — —
webhook_type string or null — —
gitops_connection_id string (uuid) or null — —
require_timestamp boolean — —
hmac_secret string yes —

WebhookTestRequest#

Schema for testing a webhook template rendering.

Field Type Required Description
payload object yes Sample JSON payload to render through the template
headers object of string or null — Optional sample headers

WebhookTestResponse#

Result of a webhook template dry-run.

Field Type Required Description
rendered object yes Rendered SchedulerEventMessage fields
valid boolean yes Whether the rendered output is a valid SchedulerEventMessage
errors array of string or null — Validation errors, if any

When-Input#

When the rule fires — events, a schedule, or both.

Field Type Required Description
events array of EventListener or null — Event listeners
schedule Schedule or null — Cron schedule
wait_for_all_ancestors boolean or null — Only fire once every direct ancestor has produced a new event since the last run
wait_for_all_ancestors_timeout_seconds integer or null — Safeguard: if the barrier has not cleared this many seconds after the cycle's first ancestor refreshed, fire with whatever ancestors are ready. None = wait indefinitely. Requires wait_for_all_ancestors.
wait_for_all_ancestors_timeout_alert boolean or null — Raise a warning incident when the barrier fires on timeout with missing ancestors.

When-Output#

When the rule fires — events, a schedule, or both.

Field Type Required Description
events array of EventListener or null — Event listeners
schedule Schedule or null — Cron schedule
wait_for_all_ancestors boolean or null — Only fire once every direct ancestor has produced a new event since the last run
wait_for_all_ancestors_timeout_seconds integer or null — Safeguard: if the barrier has not cleared this many seconds after the cycle's first ancestor refreshed, fire with whatever ancestors are ready. None = wait indefinitely. Requires wait_for_all_ancestors.
wait_for_all_ancestors_timeout_alert boolean or null — Raise a warning incident when the barrier fires on timeout with missing ancestors.

WikiArticleDetail#

Type: object.

WikiArticleSummary#

Type: object.

WikiBookmarkCreate#

Field Type Required Description
slug string yes Article slug to bookmark

WikiBookmarkResponse#

Type: object.

WikiReviewResponse#

Type: object.

WikiStalenessRequest#

Field Type Required Description
slugs array of string — —

WikiStalenessResponse#

Field Type Required Description
rows array of WikiStalenessRow yes —

WikiStalenessRow#

Type: object.

WikiUsageOverview#

Field Type Required Description
total_reads integer — —
unique_readers integer — —
articles_total integer — —
articles_with_reads integer — —
articles_never_read integer — —

WikiUsageRequest#

Field Type Required Description
period string (enum) — —

WikiUsageResponse#

Type: object.

WikiUsageRow#

Type: object.

WikiUsageSeriesPoint#

Field Type Required Description
date string (date) yes —
view_count integer yes —

WikiVoteCreate#

Field Type Required Description
vote string (enum) yes —

WikiVoteResponse#

Field Type Required Description
article_slug string yes —
my_vote string (enum) or null — —
up_count integer — —
down_count integer — —

WindowStatus#

One of: "active", "cancelled".

WriteVisibilitySummaryResponse#

One reconciliation pass.

Field Type Required Description
window_days integer yes Trailing window the reconciliation covered, in days.
window_start string (date-time) yes Inclusive lower bound of the window (UTC).
tables_written integer yes Tables the metadata ledger says BigQuery modified inside the window.
tables_invisible integer yes Of those, how many carry no write-type input_logs row in the same window — before classification.
invisible_expected integer yes The actionable count: invisible assets that were expected to receive writes.
excluded_log_export_shard integer yes Invisible assets excluded as Cloud Logging export tables (name marker or YYYYMMDD daily shard).
excluded_not_base_table integer yes Invisible assets excluded because their table_type is not BASE TABLE (view, external, unobserved).
stale_rows_dropped integer yes Rows discarded because their last_modified_at fell outside the window. Normally 0 — a non-zero value means the query returned something the window filter should have excluded.
invisible_node_ids array of string — Node ids of the actionable invisible tables, ordered by id. A bounded SAMPLE — when 'ids_truncated' is true there are 'invisible_expected' of them in total, and that count is still exact.
ids_truncated boolean — True when 'invisible_node_ids' holds fewer ids than 'invisible_expected'. Says nothing about the counts: they remain exact, and only the sample is bounded.
counts_truncated boolean — True when fewer rows were classified than 'tables_invisible', so the per-reason breakdown ('invisible_expected' and the two excluded counters) is a LOWER BOUND. This is the only flag under which a count may be read as incomplete.
truncated boolean — 'ids_truncated' or 'counts_truncated'. Retained for existing clients; branch on the specific flag instead, because this one cannot tell a capped sample of exact counts from counts that are lower bounds.
anomalies array of string — Conditions under which the guard could not measure, so the counts above are not trustworthy: 'ledger_silent' (no table modified anywhere in the window — the metadata sweep has stopped) or 'no_write_events_recorded' (tables were written and none recorded an event — an ingestion or sink outage). An empty result with an anomaly is the worst state, not the best one.
healthy boolean — False when 'anomalies' is non-empty. Not a statement about how many tables are invisible — the known residue is a finding to work through, an anomaly means the number itself cannot be trusted.

Edit this page on GitLab

↑ ↓ to moveEnter to openEsc to close