@kici-dev/orchestrator 0.17.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/agent-version.d.ts +12 -21
- package/dist/agent/dispatcher.d.ts +283 -437
- package/dist/agent/host-roster-reaper.d.ts +8 -10
- package/dist/agent/host-roster.d.ts +77 -100
- package/dist/agent/ownership-refusal.d.ts +3 -5
- package/dist/agent/ownership-tracker.d.ts +42 -76
- package/dist/agent/registry.d.ts +137 -230
- package/dist/agent/token-store.d.ts +34 -77
- package/dist/agent-packaging/availability.d.ts +6 -9
- package/dist/agent-packaging/download.d.ts +6 -9
- package/dist/agent-packaging/install-closure.d.ts +9 -12
- package/dist/agent-packaging/node-binary.d.ts +6 -10
- package/dist/agent-packaging/node-runtime-members.d.ts +3 -5
- package/dist/agent-packaging/refresh.d.ts +12 -16
- package/dist/agent-packaging/store.d.ts +5 -6
- package/dist/agent-packaging/upload.d.ts +3 -4
- package/dist/app.d.ts +0 -3
- package/dist/approvals/apply-decision.d.ts +35 -52
- package/dist/approvals/approval-resolver.d.ts +11 -23
- package/dist/approvals/held-run-release-wiring.d.ts +14 -21
- package/dist/approvals/independent-wiring.d.ts +13 -20
- package/dist/approvals/resume-router.d.ts +1 -1
- package/dist/approvals/step-approval-bridge.d.ts +11 -21
- package/dist/approvals/triggerer-subject.d.ts +8 -10
- package/dist/artifacts/artifact-store.d.ts +55 -95
- package/dist/artifacts/failure-messages.d.ts +15 -20
- package/dist/audit/access-log.d.ts +27 -45
- package/dist/audit/sampling-rate-limiter.d.ts +11 -23
- package/dist/cache/agent-job-failed-error.d.ts +2 -3
- package/dist/cache/build-coordinator.d.ts +5 -28
- package/dist/cache/cache-upload-settle.d.ts +11 -11
- package/dist/cache/dep-cache.d.ts +32 -60
- package/dist/cache/dispatch-cache-ref-tracker.d.ts +15 -23
- package/dist/cache/global-eval-round-cache.d.ts +33 -41
- package/dist/cache/pending-builds.d.ts +2 -6
- package/dist/cache/pending-dynamics.d.ts +2 -7
- package/dist/cache/pending-global-evals.d.ts +9 -12
- package/dist/cache/pending-inits.d.ts +11 -22
- package/dist/cache/pending-precursor-db-watcher.d.ts +24 -32
- package/dist/cache/pending-tracker.d.ts +17 -45
- package/dist/cache/precursor-result.d.ts +17 -30
- package/dist/cache/source-cache.d.ts +36 -65
- package/dist/cache/user-cache.d.ts +21 -25
- package/dist/cancel/cancel-held-run.d.ts +13 -16
- package/dist/cancel/cancel-route-answer.d.ts +1 -2
- package/dist/cancel/cancel-run.d.ts +26 -50
- package/dist/cancel/dashboard-cancel-handler.d.ts +2 -2
- package/dist/cancel/peer-job-cancel.d.ts +11 -14
- package/dist/cancel/sweep-stuck-cancelling.d.ts +9 -13
- package/dist/cli/api-client.d.ts +25 -76
- package/dist/cli/commands/access-log.d.ts +4 -24
- package/dist/cli/commands/agent-package.d.ts +7 -15
- package/dist/cli/commands/agent-service/agent-env.d.ts +3 -6
- package/dist/cli/commands/agent-service/index.d.ts +4 -10
- package/dist/cli/commands/agent-service/install.d.ts +4 -11
- package/dist/cli/commands/agent-service/status.d.ts +4 -9
- package/dist/cli/commands/agent-service/upgrade.d.ts +4 -16
- package/dist/cli/commands/agent.d.ts +12 -25
- package/dist/cli/commands/api-key.d.ts +5 -12
- package/dist/cli/commands/attestations-list.d.ts +7 -17
- package/dist/cli/commands/attestations-retry.d.ts +5 -11
- package/dist/cli/commands/attestations-reverify.d.ts +4 -5
- package/dist/cli/commands/attestations.d.ts +3 -8
- package/dist/cli/commands/audit.d.ts +1 -5
- package/dist/cli/commands/backend.d.ts +2 -11
- package/dist/cli/commands/check-run.d.ts +7 -18
- package/dist/cli/commands/cluster-name.d.ts +5 -12
- package/dist/cli/commands/cluster-settings.d.ts +28 -53
- package/dist/cli/commands/cold-store.d.ts +7 -15
- package/dist/cli/commands/config.d.ts +9 -20
- package/dist/cli/commands/context.d.ts +8 -20
- package/dist/cli/commands/dashboard-encryption-key.d.ts +9 -14
- package/dist/cli/commands/db-backup.d.ts +17 -32
- package/dist/cli/commands/db.d.ts +3 -4
- package/dist/cli/commands/debug-bundle.d.ts +3 -10
- package/dist/cli/commands/diagnose.d.ts +3 -14
- package/dist/cli/commands/event-dlq.d.ts +4 -12
- package/dist/cli/commands/event-log.d.ts +2 -20
- package/dist/cli/commands/execution.d.ts +3 -9
- package/dist/cli/commands/firecracker/index.d.ts +3 -6
- package/dist/cli/commands/held-run.d.ts +23 -37
- package/dist/cli/commands/host.d.ts +4 -11
- package/dist/cli/commands/inspect-bundle.d.ts +3 -11
- package/dist/cli/commands/local-hook.d.ts +2 -10
- package/dist/cli/commands/local-trigger.d.ts +2 -2
- package/dist/cli/commands/orchestrator-service/drain.d.ts +3 -6
- package/dist/cli/commands/orchestrator-service/index.d.ts +6 -14
- package/dist/cli/commands/orchestrator-service/install-env.d.ts +25 -49
- package/dist/cli/commands/orchestrator-service/install.d.ts +2 -5
- package/dist/cli/commands/orchestrator-service/status.d.ts +10 -22
- package/dist/cli/commands/orchestrator-service/upgrade.d.ts +6 -15
- package/dist/cli/commands/org-settings.d.ts +5 -11
- package/dist/cli/commands/peer.d.ts +5 -10
- package/dist/cli/commands/queue.d.ts +3 -9
- package/dist/cli/commands/registration.d.ts +4 -8
- package/dist/cli/commands/remote-source.d.ts +6 -12
- package/dist/cli/commands/rotate.d.ts +1 -5
- package/dist/cli/commands/runs.d.ts +1 -30
- package/dist/cli/commands/scaler.d.ts +5 -12
- package/dist/cli/commands/secret.d.ts +1 -9
- package/dist/cli/commands/service-health.d.ts +5 -10
- package/dist/cli/commands/shared/admin-cli-access-log.d.ts +10 -19
- package/dist/cli/commands/shared/bare-metal-binary-check.d.ts +86 -0
- package/dist/cli/commands/shared/cli-action.d.ts +1 -4
- package/dist/cli/commands/shared/confirm.d.ts +5 -10
- package/dist/cli/commands/shared/db.d.ts +1 -12
- package/dist/cli/commands/shared/env-file-mode.d.ts +6 -9
- package/dist/cli/commands/shared/secret-input.d.ts +7 -21
- package/dist/cli/commands/shared/service-verbs.d.ts +6 -12
- package/dist/cli/commands/shared/unbound-context-warning.d.ts +2 -4
- package/dist/cli/commands/shared/upgrade-hooks.d.ts +7 -16
- package/dist/cli/commands/shared/upgrade-safety.d.ts +20 -31
- package/dist/cli/commands/shared/versioned-upgrade.d.ts +83 -161
- package/dist/cli/commands/signing-key.d.ts +4 -9
- package/dist/cli/commands/source-manifest.d.ts +11 -14
- package/dist/cli/commands/source.d.ts +7 -32
- package/dist/cli/commands/token.d.ts +4 -15
- package/dist/cli/commands/trust-policy.d.ts +35 -88
- package/dist/cli/commands/variable.d.ts +3 -5
- package/dist/cli/commands/workflow.d.ts +3 -24
- package/dist/cli/join.d.ts +3 -6
- package/dist/cli/kici-admin.d.ts +11 -29
- package/dist/cli/lazy-deps/cache.d.ts +1 -14
- package/dist/cli/lazy-deps/downloader.d.ts +4 -27
- package/dist/cli/lazy-deps/registry.d.ts +5 -25
- package/dist/cli/local-github-ingress-url.d.ts +5 -7
- package/dist/cli/loopback-callback.d.ts +6 -7
- package/dist/cli/open-browser.d.ts +4 -8
- package/dist/cli/root-option-routing.d.ts +17 -29
- package/dist/cli/service/backup-timer.d.ts +16 -39
- package/dist/cli/service/compose-path.d.ts +3 -7
- package/dist/cli/service/compose.d.ts +12 -30
- package/dist/cli/service/deploy-env.d.ts +6 -18
- package/dist/cli/service/entrypoint.d.ts +14 -25
- package/dist/cli/service/env-assignment.d.ts +6 -17
- package/dist/cli/service/image-digests.d.ts +6 -15
- package/dist/cli/service/index.d.ts +2 -18
- package/dist/cli/service/instance/index-file.d.ts +9 -16
- package/dist/cli/service/instance/manifest.d.ts +60 -60
- package/dist/cli/service/instance/resolve.d.ts +32 -68
- package/dist/cli/service/instance/types.d.ts +12 -29
- package/dist/cli/service/launchd.d.ts +29 -60
- package/dist/cli/service/platform-detect.d.ts +13 -68
- package/dist/cli/service/privilege.d.ts +12 -25
- package/dist/cli/service/shutdown-grace.d.ts +11 -20
- package/dist/cli/service/systemd.d.ts +7 -20
- package/dist/cli/service/types.d.ts +63 -114
- package/dist/cli/service/windows-acl.d.ts +14 -21
- package/dist/cli/service/windows-env-file.d.ts +10 -28
- package/dist/cli/service/windows.d.ts +15 -31
- package/dist/cli/webhook-url-notes.d.ts +4 -6
- package/dist/cli/wizard/agent-wizard.d.ts +3 -14
- package/dist/cli/wizard/orchestrator-wizard.d.ts +12 -37
- package/dist/cli/wizard/prompts.d.ts +6 -16
- package/dist/cli.js +8207 -10128
- package/dist/cluster/cluster-identity.d.ts +20 -32
- package/dist/cluster/cluster-settings-reader.d.ts +50 -77
- package/dist/cluster/coordinator-credential.d.ts +4 -5
- package/dist/cluster/coordinator.d.ts +76 -148
- package/dist/cluster/health-api.d.ts +2 -10
- package/dist/cluster/index.d.ts +1 -6
- package/dist/cluster/instance-heartbeat.d.ts +26 -42
- package/dist/cluster/join-client.d.ts +4 -7
- package/dist/cluster/join-handler.d.ts +3 -7
- package/dist/cluster/join-token.d.ts +13 -27
- package/dist/cluster/leader-gated-scheduler.d.ts +8 -17
- package/dist/cluster/orphan-recovery.d.ts +13 -35
- package/dist/cluster/peer-auth-coordinator.d.ts +2 -8
- package/dist/cluster/peer-client.d.ts +46 -76
- package/dist/cluster/peer-credentials.d.ts +24 -70
- package/dist/cluster/peer-crypto.d.ts +5 -26
- package/dist/cluster/peer-forget.d.ts +3 -3
- package/dist/cluster/peer-handler.d.ts +47 -71
- package/dist/cluster/peer-registry.d.ts +37 -106
- package/dist/cluster/plan-headroom-store.d.ts +4 -6
- package/dist/cluster/raft-state.d.ts +4 -13
- package/dist/cluster/raft.d.ts +18 -53
- package/dist/cluster/reconcile-identity.d.ts +8 -11
- package/dist/cluster/rerouted-job-guard.d.ts +7 -11
- package/dist/cluster/verified-issuer.d.ts +2 -3
- package/dist/cluster/worker-cluster-settings.d.ts +7 -10
- package/dist/cluster/worker-eviction.d.ts +16 -26
- package/dist/cold-store/load-access-log-range.d.ts +15 -31
- package/dist/cold-store/load-event-log-range.d.ts +13 -27
- package/dist/cold-store/load-secret-audit-log-range.d.ts +8 -12
- package/dist/cold-store/orchestrator-cold-store.d.ts +8 -28
- package/dist/cold-store/tables/access-log.d.ts +12 -14
- package/dist/cold-store/tables/event-log.d.ts +4 -8
- package/dist/cold-store/tables/execution-runs.d.ts +6 -11
- package/dist/cold-store/tables/secret-audit-log.d.ts +5 -12
- package/dist/concurrency/dispatch-next-queued.d.ts +13 -25
- package/dist/concurrency/queue-manager.d.ts +22 -54
- package/dist/concurrency/waiters.d.ts +15 -31
- package/dist/config/encryption.d.ts +0 -2
- package/dist/config/loader.d.ts +0 -1
- package/dist/config/reload.d.ts +0 -6
- package/dist/config/resolver.d.ts +0 -4
- package/dist/config/shared-store.d.ts +0 -2
- package/dist/config/types.d.ts +0 -3
- package/dist/content-requirements-cache.d.ts +0 -1
- package/dist/contexts/context-store.d.ts +0 -2
- package/dist/contexts/held-runs.d.ts +0 -2
- package/dist/contexts/variable-store.d.ts +0 -2
- package/dist/dashboard/attestation-filters.d.ts +13 -18
- package/dist/dashboard/handler.d.ts +145 -307
- package/dist/db/client.d.ts +2 -6
- package/dist/db/deferred-index-build.d.ts +8 -10
- package/dist/db/deferred-indexes.d.ts +15 -22
- package/dist/db/migration-provider.d.ts +2 -4
- package/dist/db/migration-test-harness.d.ts +26 -44
- package/dist/db/migrations/001_initial.d.ts +1 -4
- package/dist/db/migrations/002_config_versions_key_version.d.ts +5 -8
- package/dist/db/migrations/003_access_log.d.ts +10 -15
- package/dist/db/migrations/004_rename_bundle_to_source.d.ts +7 -9
- package/dist/db/migrations/005_cold_store_chunk_counter.d.ts +4 -10
- package/dist/db/migrations/006_runs_jobs_steps_archived_at.d.ts +9 -29
- package/dist/db/migrations/007_audit_logs_archived_at.d.ts +11 -30
- package/dist/db/migrations/008_event_log_archived_at.d.ts +14 -29
- package/dist/db/migrations/009_access_log_trigram.d.ts +4 -8
- package/dist/db/migrations/010_cold_store_chunks.d.ts +16 -26
- package/dist/db/migrations/011_drop_source_secrets_notify.d.ts +6 -14
- package/dist/db/migrations/012_peer_credentials_active_uniq.d.ts +9 -14
- package/dist/db/migrations/013_execution_log_bytes.d.ts +5 -13
- package/dist/db/migrations/014_kici_events_lease_retry.d.ts +14 -27
- package/dist/db/migrations/015_org_settings_customer_scoped.d.ts +12 -17
- package/dist/db/migrations/016_org_settings_allow_http_npm.d.ts +4 -6
- package/dist/db/migrations/019_generic_sources_change_notify.d.ts +13 -17
- package/dist/db/migrations/020_org_settings_dashboard_write_policy.d.ts +5 -8
- package/dist/db/migrations/021_check_run_tracking.d.ts +5 -17
- package/dist/db/migrations/022_scaler_manager_state.d.ts +10 -20
- package/dist/db/migrations/023_dispatch_queue_recovery_deadline.d.ts +7 -18
- package/dist/db/migrations/024_dispatch_queue_provisioning_error.d.ts +5 -11
- package/dist/db/migrations/025_init_failure.d.ts +5 -9
- package/dist/db/migrations/027_workflow_timeout.d.ts +5 -13
- package/dist/db/migrations/029_dispatch_queue_attempts.d.ts +4 -10
- package/dist/db/migrations/030_held_runs_env_set_null.d.ts +5 -6
- package/dist/db/migrations/031_dispatch_queue_ack_deadline.d.ts +6 -12
- package/dist/db/migrations/033_org_settings_approval.d.ts +7 -10
- package/dist/db/migrations/034_held_runs_generalize.d.ts +10 -18
- package/dist/db/migrations/035_pending_workflow_contexts.d.ts +4 -5
- package/dist/db/migrations/037_generic_sources_provider_type_local.d.ts +5 -6
- package/dist/db/migrations/038_remote_sources.d.ts +5 -7
- package/dist/db/migrations/045_host_properties.d.ts +5 -9
- package/dist/db/migrations/046_join_token_consumed_by_instance.d.ts +5 -10
- package/dist/db/migrations/048_host_reboot_pending.d.ts +6 -12
- package/dist/db/migrations/049_held_runs_payload.d.ts +3 -8
- package/dist/db/migrations/050_sources_slug.d.ts +4 -5
- package/dist/db/migrations/051_binding_host_pattern.d.ts +7 -10
- package/dist/db/migrations/052_host_reach_metadata.d.ts +8 -11
- package/dist/db/migrations/053_agent_token_single_use.d.ts +6 -10
- package/dist/db/migrations/054_local_working_tree.d.ts +4 -6
- package/dist/db/migrations/055_agent_token_mandatory_labels.d.ts +6 -11
- package/dist/db/migrations/056_execution_jobs_environments.d.ts +4 -11
- package/dist/db/migrations/064_execution_jobs_skipped_environments.d.ts +6 -9
- package/dist/db/migrations/065_pending_attestations.d.ts +9 -12
- package/dist/db/migrations/066_pending_attestations_rejected.d.ts +4 -7
- package/dist/db/migrations/068_request_idempotency.d.ts +7 -9
- package/dist/db/migrations/069_reroute_tunables.d.ts +6 -14
- package/dist/db/migrations/071_batch_accumulation.d.ts +8 -16
- package/dist/db/migrations/072_dispatch_queue_run_id_index.d.ts +3 -9
- package/dist/db/migrations/074_normalize_zero_concurrency_limit.d.ts +4 -7
- package/dist/db/migrations/076_artifacts.d.ts +7 -8
- package/dist/db/migrations/078_org_settings_backup_staleness.d.ts +3 -6
- package/dist/db/migrations/079_org_settings_scaler_spawn_timeout.d.ts +4 -8
- package/dist/db/migrations/080_cluster_settings.d.ts +6 -10
- package/dist/db/migrations/081_org_settings_queue_timeout.d.ts +7 -11
- package/dist/db/migrations/082_host_s3_reachable.d.ts +5 -10
- package/dist/db/migrations/083_org_settings_artifact_caps.d.ts +6 -8
- package/dist/db/migrations/084_orchestrator_signing_keys.d.ts +8 -13
- package/dist/db/migrations/085_cluster_settings_reroute_flap_grace_ms.d.ts +4 -5
- package/dist/db/migrations/086_cluster_settings_max_fanout_hosts.d.ts +3 -3
- package/dist/db/migrations/087_cluster_settings_event_router_rate_limit.d.ts +5 -3
- package/dist/db/migrations/088_cluster_settings_cache_max_tarball_bytes.d.ts +3 -3
- package/dist/db/migrations/089_cluster_settings_cache_ttl_days.d.ts +3 -5
- package/dist/db/migrations/090_cluster_settings_concurrency_wait_timeout_ms.d.ts +3 -6
- package/dist/db/migrations/091_cluster_settings_agent_token_ttl_ms.d.ts +3 -6
- package/dist/db/migrations/092_cluster_settings_version.d.ts +5 -9
- package/dist/db/migrations/094_dashboard_encryption_keys.d.ts +9 -14
- package/dist/db/migrations/095_dashboard_write_policy_tristate.d.ts +2 -6
- package/dist/db/migrations/099_cluster_settings_dashboard_verified_issuer.d.ts +8 -11
- package/dist/db/migrations/101_contexts_hold_expiry_drop_default.d.ts +9 -15
- package/dist/db/migrations/102_dispatch_queue_agent_id.d.ts +6 -11
- package/dist/db/migrations/103_cluster_settings_ownership_db_check_timeout_ms.d.ts +6 -12
- package/dist/db/migrations/104_check_run_terminal_sent.d.ts +8 -14
- package/dist/db/migrations/105_org_trust_policy.d.ts +5 -7
- package/dist/db/migrations/106_cluster_settings_check_run_tracking_ttl_days.d.ts +4 -12
- package/dist/db/migrations/107_check_run_tracking_updated_at_index.d.ts +8 -14
- package/dist/db/migrations/113_execution_runs_workflow_repo_index.d.ts +10 -19
- package/dist/db/migrations/115_global_workflows_cluster_switch.d.ts +2 -3
- package/dist/db/migrations/121_org_settings_allow_untrusted_dockerfile_builds.d.ts +7 -8
- package/dist/db/migrations/122_host_roster_scaler_managed.d.ts +9 -16
- package/dist/db/migrations/123_workflow_registrations_default_branch.d.ts +8 -16
- package/dist/db/migrations/125_org_trust_directory.d.ts +13 -21
- package/dist/db/migrations/126_held_runs_posted_pending_check.d.ts +10 -16
- package/dist/db/migrations/127_org_trust_policy_approval_expiry_seconds.d.ts +8 -16
- package/dist/db/migrations/128_execution_runs_global_eval_round.d.ts +6 -11
- package/dist/db/migrations/129_execution_runs_dispatch_routing_key.d.ts +8 -11
- package/dist/db/migrations/130_scaler_provision_outcomes.d.ts +13 -20
- package/dist/db/migrations/131_execution_jobs_git_credentials.d.ts +12 -22
- package/dist/db/migrations/132_execution_runs_trigger_event.d.ts +6 -16
- package/dist/db/migrations/133_dispatch_queue_source_tar_digest.d.ts +6 -9
- package/dist/db/migrations/140_dispatch_queue_canonical_labels.d.ts +22 -40
- package/dist/db/migrations/143_execution_jobs_precursor_result.d.ts +9 -18
- package/dist/db/migrations/144_execution_runs_registration_window.d.ts +12 -20
- package/dist/db/migrations/147_sealed_job_secrets.d.ts +5 -9
- package/dist/db/migrations/148_cluster_settings_sealed_secrets_retry_backoff_ms.d.ts +7 -13
- package/dist/db/migrations/150_execution_runs_status_epoch.d.ts +6 -11
- package/dist/db/migrations/152_org_settings_cache_upload_settle_timeout.d.ts +5 -8
- package/dist/db/migrations/157_host_roster_identity_source.d.ts +9 -13
- package/dist/db/migrations/159_org_id_widen_to_source_width.d.ts +5 -0
- package/dist/db/migrator.d.ts +17 -25
- package/dist/db/notify-listener.d.ts +8 -11
- package/dist/db/repos/dashboard-encryption-keys-repo.d.ts +9 -10
- package/dist/db/synthetic-job-ids.d.ts +6 -8
- package/dist/db/types.d.ts +531 -1058
- package/dist/deployment/deployment-identity.d.ts +42 -60
- package/dist/diagnostics/bundle-reader.d.ts +3 -15
- package/dist/diagnostics/bundle-writer.d.ts +5 -12
- package/dist/diagnostics/checks/agents.d.ts +1 -7
- package/dist/diagnostics/checks/backup.d.ts +7 -10
- package/dist/diagnostics/checks/certs.d.ts +1 -6
- package/dist/diagnostics/checks/config.d.ts +2 -5
- package/dist/diagnostics/checks/db.d.ts +1 -1
- package/dist/diagnostics/checks/disk.d.ts +1 -6
- package/dist/diagnostics/checks/firecracker-network.d.ts +3 -3
- package/dist/diagnostics/checks/index.d.ts +0 -6
- package/dist/diagnostics/checks/retention.d.ts +3 -6
- package/dist/diagnostics/checks/scaler.d.ts +3 -7
- package/dist/diagnostics/checks/ws.d.ts +1 -6
- package/dist/diagnostics/fleet-collector.d.ts +11 -14
- package/dist/diagnostics/fleet-constants.d.ts +1 -3
- package/dist/diagnostics/fleet-selection.d.ts +3 -7
- package/dist/diagnostics/fleet-topology.d.ts +2 -6
- package/dist/diagnostics/fleet-wiring.d.ts +6 -12
- package/dist/diagnostics/index.d.ts +0 -5
- package/dist/diagnostics/runner.d.ts +4 -8
- package/dist/diagnostics/types.d.ts +10 -21
- package/dist/drain/drain-controller.d.ts +16 -22
- package/dist/entry-helpers.d.ts +0 -2
- package/dist/events/circuit-breaker.d.ts +0 -3
- package/dist/events/event-router.d.ts +1 -2
- package/dist/events/event-store.d.ts +0 -9
- package/dist/events/trust-store.d.ts +0 -3
- package/dist/events/types.d.ts +0 -9
- package/dist/firecracker/host-network.d.ts +24 -30
- package/dist/firecracker/net-interfaces.d.ts +4 -7
- package/dist/helpers/rate-limiter.d.ts +0 -1
- package/dist/index.js +240 -482
- package/dist/metrics/agent-metrics-aggregator.d.ts +24 -67
- package/dist/metrics/metrics-reporter.d.ts +4 -13
- package/dist/metrics/prometheus.d.ts +47 -81
- package/dist/orchestrator-core.d.ts +3 -7
- package/dist/pipeline/content-filter.d.ts +20 -30
- package/dist/pipeline/cross-source-tally.d.ts +7 -8
- package/dist/pipeline/decorating-secret-resolver.d.ts +4 -8
- package/dist/pipeline/degraded-reason.d.ts +3 -4
- package/dist/pipeline/direct-ingress-deps.d.ts +15 -24
- package/dist/pipeline/dispatch-matched-workflow.d.ts +290 -526
- package/dist/pipeline/flatten-lock-steps.d.ts +4 -6
- package/dist/pipeline/global-dispatch-identity.d.ts +5 -10
- package/dist/pipeline/global-eval-round.d.ts +62 -156
- package/dist/pipeline/global-round-hold.d.ts +5 -7
- package/dist/pipeline/held-context-data.d.ts +5 -8
- package/dist/pipeline/held-round-registrations.d.ts +8 -11
- package/dist/pipeline/install-gate.d.ts +15 -25
- package/dist/pipeline/install-secrets-resolver.d.ts +24 -34
- package/dist/pipeline/internal-event-pipeline.d.ts +45 -62
- package/dist/pipeline/invoke-gate.d.ts +27 -40
- package/dist/pipeline/job-contexts.d.ts +19 -36
- package/dist/pipeline/manual-schedule.d.ts +7 -13
- package/dist/pipeline/needs-scheduler.d.ts +29 -46
- package/dist/pipeline/pending-workflow-context.d.ts +14 -28
- package/dist/pipeline/process-webhook.d.ts +88 -123
- package/dist/pipeline/processor.d.ts +209 -355
- package/dist/pipeline/remote-source-store.d.ts +5 -8
- package/dist/pipeline/request-idempotency.d.ts +10 -13
- package/dist/pipeline/rerun-global.d.ts +6 -7
- package/dist/pipeline/rerun-inputs.d.ts +23 -37
- package/dist/pipeline/rerun.d.ts +34 -57
- package/dist/pipeline/resolve-sandbox-grant.d.ts +5 -10
- package/dist/pipeline/resume-workflow.d.ts +28 -34
- package/dist/pipeline/route-or-dispatch-jobs.d.ts +19 -30
- package/dist/pipeline/run-event-context.d.ts +16 -21
- package/dist/pipeline/sandbox-allowlist-reader.d.ts +7 -11
- package/dist/pipeline/security-hold-check.d.ts +56 -80
- package/dist/pipeline/test-pipeline.d.ts +20 -46
- package/dist/pipeline/unbound-job-context.d.ts +6 -9
- package/dist/pipeline/undispatched-hold-checks.d.ts +4 -6
- package/dist/pipeline/wave-scheduler.d.ts +15 -22
- package/dist/pipeline/webhook-payload-store.d.ts +3 -10
- package/dist/pipeline/workflow-lock-at-sha.d.ts +14 -20
- package/dist/policy/dashboard-write-policy.d.ts +1 -1
- package/dist/provider-registry.d.ts +0 -19
- package/dist/providers/generic/index.d.ts +0 -2
- package/dist/providers/generic/normalizer.d.ts +0 -1
- package/dist/providers/generic/verification.d.ts +0 -8
- package/dist/providers/github/auth.d.ts +0 -1
- package/dist/providers/github/changed-files.d.ts +2 -1
- package/dist/providers/github/file-contents.d.ts +0 -4
- package/dist/providers/github/lock-file.d.ts +0 -4
- package/dist/providers/github/normalizer.d.ts +1 -9
- package/dist/providers/local/index.d.ts +1 -2
- package/dist/providers/local/lock-file-fetcher.d.ts +0 -4
- package/dist/providers/local/normalizer.d.ts +0 -10
- package/dist/providers/local/repo-url-builder.d.ts +0 -2
- package/dist/providers/universal-git/clone-token.d.ts +0 -2
- package/dist/providers/universal-git/lock-file.d.ts +0 -2
- package/dist/providers/universal-git/normalizer.d.ts +0 -2
- package/dist/queue/bootstrap.d.ts +3 -15
- package/dist/queue/cleanup.d.ts +29 -50
- package/dist/queue/depth-refresher.d.ts +21 -39
- package/dist/queue/job-queue.d.ts +112 -163
- package/dist/queue/retention.d.ts +23 -36
- package/dist/queue/scheduled-job.d.ts +17 -39
- package/dist/queue/terminalize-unroutable.d.ts +16 -18
- package/dist/queue/unroutable-probe.d.ts +15 -22
- package/dist/registration/extractor.d.ts +0 -6
- package/dist/registration/registration-index.d.ts +0 -6
- package/dist/registration/registration-store.d.ts +0 -9
- package/dist/reporting/agent-failure-category.d.ts +3 -5
- package/dist/reporting/check-run-reporter.d.ts +142 -316
- package/dist/reporting/check-run-summary.d.ts +16 -35
- package/dist/reporting/check-run-tracking-store.d.ts +54 -107
- package/dist/reporting/execution-tracker.d.ts +356 -526
- package/dist/reporting/fs-log-storage.d.ts +31 -33
- package/dist/reporting/job-check-run-completion.d.ts +14 -22
- package/dist/reporting/log-chunk-sink.d.ts +11 -16
- package/dist/reporting/log-pull-handler.d.ts +4 -13
- package/dist/reporting/log-retention.d.ts +3 -4
- package/dist/reporting/log-storage.d.ts +24 -52
- package/dist/reporting/log-writer.d.ts +28 -56
- package/dist/reporting/peer-log-normalize.d.ts +4 -8
- package/dist/reporting/run-aggregator.d.ts +6 -11
- package/dist/reporting/run-summary-fields.d.ts +5 -8
- package/dist/reporting/s3-log-storage.d.ts +31 -50
- package/dist/reporting/step-display-order.d.ts +11 -21
- package/dist/reporting/step-log-buffer.d.ts +7 -28
- package/dist/reporting/step-log-reader.d.ts +11 -19
- package/dist/routes/admin-access-log.d.ts +4 -6
- package/dist/routes/admin-auth.d.ts +17 -38
- package/dist/routes/admin-backends.d.ts +3 -14
- package/dist/routes/admin-cluster-name.d.ts +13 -21
- package/dist/routes/admin-cluster-settings.d.ts +6 -9
- package/dist/routes/admin-config.d.ts +7 -19
- package/dist/routes/admin-contexts.d.ts +6 -13
- package/dist/routes/admin-db.d.ts +5 -10
- package/dist/routes/admin-event-dlq.d.ts +3 -5
- package/dist/routes/admin-event-inspect.d.ts +3 -4
- package/dist/routes/admin-event-log.d.ts +3 -7
- package/dist/routes/admin-events.d.ts +16 -30
- package/dist/routes/admin-held-runs.d.ts +52 -76
- package/dist/routes/admin-maintenance.d.ts +3 -6
- package/dist/routes/admin-orchestrator-drain.d.ts +0 -2
- package/dist/routes/admin-org-settings.d.ts +8 -14
- package/dist/routes/admin-peer-forget.d.ts +0 -1
- package/dist/routes/admin-queue-execution.d.ts +3 -3
- package/dist/routes/admin-registrations.d.ts +3 -12
- package/dist/routes/admin-runs.d.ts +16 -29
- package/dist/routes/admin-scaler-orphans.d.ts +4 -4
- package/dist/routes/admin-scaler-reload.d.ts +5 -8
- package/dist/routes/admin-scheduled-jobs.d.ts +3 -4
- package/dist/routes/admin-sources.d.ts +20 -29
- package/dist/routes/admin-trust-policy.d.ts +31 -48
- package/dist/routes/admin.d.ts +67 -94
- package/dist/routes/caller-identity.d.ts +5 -12
- package/dist/routes/capabilities.d.ts +8 -13
- package/dist/routes/diagnostics.d.ts +2 -10
- package/dist/routes/fleet.d.ts +1 -2
- package/dist/routes/github-webhook.d.ts +2 -5
- package/dist/routes/health.d.ts +6 -19
- package/dist/routes/provenance-oidc.d.ts +3 -3
- package/dist/routes/uploads.d.ts +5 -11
- package/dist/routes/webhooks.d.ts +2 -24
- package/dist/scaler/agent-binary-location.d.ts +77 -0
- package/dist/scaler/agent-fit.d.ts +2 -2
- package/dist/scaler/backend-factory.d.ts +10 -18
- package/dist/scaler/bare-metal-backend.d.ts +30 -46
- package/dist/scaler/claim-store.d.ts +20 -43
- package/dist/scaler/config.d.ts +10 -37
- package/dist/scaler/container-backend.d.ts +22 -35
- package/dist/scaler/container-hostconfig.d.ts +19 -16
- package/dist/scaler/container-routing.d.ts +10 -13
- package/dist/scaler/disk-guard.d.ts +2 -3
- package/dist/scaler/event-backend.d.ts +33 -58
- package/dist/scaler/event-provision-reaper.d.ts +61 -84
- package/dist/scaler/failure-tracker.d.ts +6 -13
- package/dist/scaler/file-tail.d.ts +6 -19
- package/dist/scaler/firecracker-api.d.ts +19 -63
- package/dist/scaler/firecracker-backend.d.ts +142 -258
- package/dist/scaler/host-access.d.ts +7 -10
- package/dist/scaler/index.d.ts +3 -6
- package/dist/scaler/ip-allocator.d.ts +30 -82
- package/dist/scaler/label-matcher.d.ts +14 -35
- package/dist/scaler/log-forwarder.d.ts +6 -25
- package/dist/scaler/machine-ledger.d.ts +39 -86
- package/dist/scaler/manager.d.ts +517 -787
- package/dist/scaler/pending-scale-sweeper.d.ts +8 -11
- package/dist/scaler/reap-orphans.d.ts +8 -12
- package/dist/scaler/resolve-container-auth.d.ts +12 -21
- package/dist/scaler/scaler-events.d.ts +2 -5
- package/dist/scaler/scaler-state-store.d.ts +127 -189
- package/dist/scaler/spawn-errors.d.ts +1 -4
- package/dist/scaler/startup-orphan-sweep.d.ts +3 -4
- package/dist/scaler/startup-tools-check.d.ts +21 -0
- package/dist/scaler/types.d.ts +142 -255
- package/dist/scaler/vm-job-bindings.d.ts +5 -9
- package/dist/scaler/warm-pool.d.ts +49 -93
- package/dist/secrets/audit-logger.d.ts +0 -3
- package/dist/secrets/backend-health.d.ts +0 -9
- package/dist/secrets/backend-registry.d.ts +0 -9
- package/dist/secrets/cleanup.d.ts +0 -1
- package/dist/secrets/config.d.ts +0 -3
- package/dist/secrets/ephemeral-keys.d.ts +0 -3
- package/dist/secrets/pg-secret-store.d.ts +0 -3
- package/dist/secrets/rbac.d.ts +0 -6
- package/dist/secrets/secret-output-store.d.ts +0 -6
- package/dist/secrets/secret-resolver.d.ts +2 -6
- package/dist/secrets/token-manager.d.ts +0 -4
- package/dist/secrets/vault-secret-store.d.ts +0 -13
- package/dist/security/comment-handler.d.ts +0 -2
- package/dist/security/workflow-diff.d.ts +1 -1
- package/dist/server.js +8628 -13569
- package/dist/sources/source-manager.d.ts +0 -3
- package/dist/sources/source-store.d.ts +0 -9
- package/dist/sources/source-validator.d.ts +0 -3
- package/dist/stale-detector/all-terminal-runs.d.ts +8 -11
- package/dist/stale-detector/gate-deadline-detector.d.ts +14 -19
- package/dist/stale-detector/reboot-deadline-sweep.d.ts +7 -11
- package/dist/stale-detector/stale-dispatch-candidates.d.ts +13 -20
- package/dist/stale-detector/stale-run-detector.d.ts +74 -121
- package/dist/stale-detector/workflow-deadline-detector.d.ts +15 -43
- package/dist/standalone.js +7670 -12402
- package/dist/storage/blob-routes.d.ts +10 -19
- package/dist/storage/filesystem.d.ts +19 -29
- package/dist/storage/index.d.ts +2 -10
- package/dist/storage/key-discriminator.d.ts +8 -10
- package/dist/storage/loopback-guard.d.ts +27 -45
- package/dist/storage/s3.d.ts +25 -52
- package/dist/storage/sign-url.d.ts +7 -22
- package/dist/storage/types.d.ts +44 -70
- package/dist/webhook/event-log.d.ts +0 -2
- package/dist/webhook/generic-sources.d.ts +0 -21
- package/dist/webhook/ingest-admission.d.ts +0 -1
- package/dist/webhook/relay-buffer.d.ts +2 -2
- package/dist/webhook/verify-inbound.d.ts +0 -1
- package/dist/worker/in-memory-execution-tracker.d.ts +9 -31
- package/dist/worker/in-memory-job-queue.d.ts +32 -72
- package/dist/worker/peer-outbox.d.ts +5 -8
- package/dist/worker/reroute-dispatch.d.ts +4 -6
- package/dist/worker/static-agent-token-store.d.ts +6 -27
- package/dist/worker/worker-outbox-relay.d.ts +2 -2
- package/dist/worker/worker-status.d.ts +3 -20
- package/dist/ws/agent-api-registry.d.ts +8 -27
- package/dist/ws/agent-handler.d.ts +63 -110
- package/dist/ws/agent-heartbeat.d.ts +5 -12
- package/dist/ws/bringup-api.d.ts +31 -38
- package/dist/ws/dashboard-backends-handler.d.ts +12 -22
- package/dist/ws/dashboard-context-handler.d.ts +37 -80
- package/dist/ws/dashboard-diagnostics-handler.d.ts +8 -25
- package/dist/ws/dashboard-dispatch-guard.d.ts +3 -4
- package/dist/ws/dashboard-fleet-handler.d.ts +9 -13
- package/dist/ws/dashboard-fleet-write-handler.d.ts +7 -21
- package/dist/ws/dashboard-global-workflows-handler.d.ts +22 -44
- package/dist/ws/dashboard-registrations-handler.d.ts +10 -27
- package/dist/ws/dashboard-run-state-handler.d.ts +10 -13
- package/dist/ws/event-buffer.d.ts +3 -6
- package/dist/ws/execution-status-frame.d.ts +9 -11
- package/dist/ws/failure-messages.d.ts +9 -14
- package/dist/ws/fleet-agent-collector.d.ts +6 -12
- package/dist/ws/fleet-runs-on-all.d.ts +1 -6
- package/dist/ws/git-credential-relay.d.ts +12 -20
- package/dist/ws/inventory-api.d.ts +4 -5
- package/dist/ws/job-status-forward-frame.d.ts +30 -0
- package/dist/ws/observer-registry.d.ts +14 -59
- package/dist/ws/outbound-frame-guard.d.ts +4 -0
- package/dist/ws/ownership-gate.d.ts +1 -1
- package/dist/ws/platform-client.d.ts +32 -31
- package/dist/ws/replay-chunker.d.ts +7 -10
- package/dist/ws/server-options.d.ts +5 -9
- package/dist/ws/test-relay-handlers.d.ts +45 -59
- package/dist/ws/test-run-log-cursor.d.ts +18 -0
- package/installer-image-digests.json +3 -3
- package/package.json +6 -5
- package/sbom.spdx.json +53 -53
- package/dist/__test-helpers__/fake-scaler-state-store.d.ts +0 -24
- package/dist/__test-helpers__/mock-db-query.d.ts +0 -129
- package/dist/__test-helpers__/mock-db.d.ts +0 -134
- package/dist/__test-helpers__/mock-ws.d.ts +0 -13
- package/dist/__test-helpers__/peer-mutual-auth.d.ts +0 -42
- package/dist/__test-helpers__/scratch-db.d.ts +0 -16
- package/dist/__test-helpers__/test-db.d.ts +0 -34
- package/dist/pipeline/dispatch-matched-workflow.test-helpers.d.ts +0 -121
|
@@ -5,25 +5,19 @@ import type { AccessLogWriter } from '../audit/access-log.js';
|
|
|
5
5
|
import type { Kysely } from 'kysely';
|
|
6
6
|
import type { Database } from '../db/types.js';
|
|
7
7
|
interface DashboardBackendsHandlerDeps {
|
|
8
|
-
/** Send a response message back to Platform over the WS connection. */
|
|
9
8
|
send: (msg: unknown) => void;
|
|
10
9
|
registry: BackendRegistry;
|
|
11
10
|
healthChecker: BackendHealthChecker;
|
|
12
11
|
syncManager?: BackendSyncManager;
|
|
13
|
-
/**
|
|
12
|
+
/** Required for dashboard-write policy lookups. */
|
|
14
13
|
db: Kysely<Database>;
|
|
15
|
-
/**
|
|
14
|
+
/** Records one row per read / mutation with actor attribution. */
|
|
16
15
|
accessLog?: AccessLogWriter;
|
|
17
|
-
/**
|
|
16
|
+
/** For access_log rows; null when the orchestrator isn't org-scoped. */
|
|
18
17
|
orgId?: string | null;
|
|
19
|
-
/**
|
|
18
|
+
/** For access_log rows; null when not run-scoped. */
|
|
20
19
|
routingKey?: string | null;
|
|
21
20
|
}
|
|
22
|
-
/**
|
|
23
|
-
* Handler for all dashboard backend WS messages.
|
|
24
|
-
*
|
|
25
|
-
* Dispatches incoming messages by type and calls the appropriate backend services.
|
|
26
|
-
*/
|
|
27
21
|
export declare class DashboardBackendsHandler {
|
|
28
22
|
private readonly deps;
|
|
29
23
|
private orgId;
|
|
@@ -31,24 +25,20 @@ export declare class DashboardBackendsHandler {
|
|
|
31
25
|
private readonly access;
|
|
32
26
|
constructor(deps: DashboardBackendsHandlerDeps);
|
|
33
27
|
/**
|
|
34
|
-
*
|
|
35
|
-
*
|
|
28
|
+
* Called from server.ts after resolving the single tenant org from the `sources` /
|
|
29
|
+
* `generic_webhook_sources` table.
|
|
36
30
|
*/
|
|
37
31
|
setOrgContext(orgId: string | null, routingKey: string | null): void;
|
|
38
32
|
/**
|
|
39
|
-
* Defense-in-depth dashboard-write policy gate.
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* and emits a structured `operation_disabled` envelope on the WS.
|
|
33
|
+
* Defense-in-depth dashboard-write policy gate. When the policy is disabled it records
|
|
34
|
+
* a `denied` access_log row, emits a structured `operation_disabled` envelope and
|
|
35
|
+
* returns false.
|
|
43
36
|
*
|
|
44
|
-
* Fails open when no org is bound
|
|
45
|
-
*
|
|
37
|
+
* Fails open when no org is bound: no customer is resolved yet, so there is nothing to
|
|
38
|
+
* look up.
|
|
46
39
|
*/
|
|
47
40
|
private enforcePolicy;
|
|
48
|
-
/**
|
|
49
|
-
* Route a dashboard backends message to the appropriate handler.
|
|
50
|
-
* Returns true if the message was handled, false otherwise.
|
|
51
|
-
*/
|
|
41
|
+
/** Returns false for a message this handler does not own. */
|
|
52
42
|
handleMessage(msg: DashboardPlatformToOrchMessage): Promise<boolean>;
|
|
53
43
|
private handleList;
|
|
54
44
|
private handleGet;
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Responds to dashboard.contexts.* and dashboard.held-runs.* WS messages
|
|
5
|
-
* from Platform by calling the appropriate stores (ContextStore, VariableStore,
|
|
6
|
-
* BindingStore, PgSecretStore) and sending typed responses.
|
|
7
|
-
*
|
|
8
|
-
* Each handler:
|
|
9
|
-
* 1. Extracts orgId from the dependency context
|
|
10
|
-
* 2. Calls the appropriate store method
|
|
11
|
-
* 3. Returns a response message with requestId and data (or error)
|
|
2
|
+
* Answers dashboard.contexts.* and dashboard.held-runs.* WS messages from Platform via
|
|
3
|
+
* the ContextStore, VariableStore, BindingStore and PgSecretStore.
|
|
12
4
|
*/
|
|
13
5
|
import type { Kysely } from 'kysely';
|
|
14
6
|
import type { HeldRunStore, ReleaseSignal } from '../contexts/held-runs.js';
|
|
@@ -22,42 +14,28 @@ import type { Database, HeldRun } from '../db/types.js';
|
|
|
22
14
|
import type { AccessLogWriter } from '../audit/access-log.js';
|
|
23
15
|
import { type ScopedSecretStore } from '../secrets/scope-routing.js';
|
|
24
16
|
import type { ResolvedDashboardEncryptionKey } from '../secrets/dashboard-encryption-key.js';
|
|
25
|
-
/**
|
|
26
|
-
* Secret store interface (subset of PgSecretStore methods used here).
|
|
27
|
-
*
|
|
28
|
-
* Alias of the shared `ScopedSecretStore` so the WS plane and the HTTP admin
|
|
29
|
-
* plane route scopes against one contract.
|
|
30
|
-
*/
|
|
17
|
+
/** Aliases `ScopedSecretStore` so the WS and HTTP admin planes share one scope contract. */
|
|
31
18
|
type SecretStoreForDashboard = ScopedSecretStore;
|
|
32
19
|
export interface DashboardContextHandlerDeps {
|
|
33
|
-
/** Organization ID for all operations. */
|
|
34
20
|
orgId: string;
|
|
35
|
-
/** Send a response message back to Platform over the WS connection. */
|
|
36
21
|
send: (msg: unknown) => void;
|
|
37
22
|
contextStore: ContextStore;
|
|
38
23
|
variableStore: VariableStore;
|
|
39
24
|
bindingStore: BindingStore;
|
|
40
25
|
secretStore: SecretStoreForDashboard;
|
|
41
|
-
/**
|
|
26
|
+
/** Creates fresh store instances from the registry with current credentials. */
|
|
42
27
|
loadBackendStores?: () => Promise<Map<string, SecretStoreForDashboard>>;
|
|
43
|
-
/** Database for held_runs queries. */
|
|
44
28
|
db: Kysely<Database>;
|
|
45
|
-
/**
|
|
29
|
+
/** Records one row per read / mutation with actor attribution. */
|
|
46
30
|
accessLog?: AccessLogWriter;
|
|
47
|
-
/**
|
|
31
|
+
/** For access_log rows; null when not run-scoped. */
|
|
48
32
|
routingKey?: string | null;
|
|
49
|
-
/**
|
|
50
|
-
* Held-run store + resume hook for the approve/reject flow. The approve/reject
|
|
51
|
-
* handlers route through the shared `applyDecision` applier (eligibility
|
|
52
|
-
* check, real attribution, multi-clause accumulation, and the
|
|
53
|
-
* resume-after-approval re-dispatch).
|
|
54
|
-
*/
|
|
33
|
+
/** Held-run store + resume hooks; approve/reject route through the shared `applyDecision`. */
|
|
55
34
|
approvals: ApprovalHandlerDeps;
|
|
56
35
|
/**
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
* `encrypted` writes fail closed (`encryption_unavailable`).
|
|
36
|
+
* Present when KICI_SECRET_KEY is configured; under the `encrypted` posture the
|
|
37
|
+
* secret/variable set handlers decrypt the browser-sealed envelope with its private key.
|
|
38
|
+
* Absent ⇒ `encrypted` writes fail closed (`encryption_unavailable`).
|
|
61
39
|
*/
|
|
62
40
|
dashboardEncryption?: {
|
|
63
41
|
resolve: () => Promise<ResolvedDashboardEncryptionKey | null>;
|
|
@@ -91,51 +69,36 @@ export interface ApprovalHandlerDeps {
|
|
|
91
69
|
*/
|
|
92
70
|
settleSecurityCheck?: ApplyDecisionDeps['settleSecurityCheck'];
|
|
93
71
|
}
|
|
94
|
-
/**
|
|
95
|
-
* Handler for all dashboard context and held run WS messages.
|
|
96
|
-
*
|
|
97
|
-
* Dispatches incoming messages by type and calls the appropriate store.
|
|
98
|
-
*/
|
|
99
72
|
export declare class DashboardContextHandler {
|
|
100
73
|
private readonly deps;
|
|
101
74
|
private routingKey;
|
|
102
75
|
private readonly access;
|
|
103
76
|
constructor(deps: DashboardContextHandlerDeps);
|
|
104
|
-
/**
|
|
77
|
+
/** Called when the org is resolved from the DB. */
|
|
105
78
|
setOrgId(orgId: string): void;
|
|
106
|
-
/** Update the routing key bound to access_log rows. */
|
|
107
79
|
setRoutingKey(routingKey: string | null): void;
|
|
108
80
|
/**
|
|
109
|
-
* Defense-in-depth dashboard-write policy gate.
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
* sends a structured `operation_disabled` envelope back to Platform.
|
|
81
|
+
* Defense-in-depth dashboard-write policy gate. When the policy is disabled it records
|
|
82
|
+
* a `denied` access_log row, sends a structured `operation_disabled` envelope and
|
|
83
|
+
* returns false.
|
|
113
84
|
*/
|
|
114
85
|
private enforcePolicy;
|
|
115
|
-
/** Run a single-call request through `audited` with this handler's recorder and response channel. */
|
|
116
86
|
private audited;
|
|
117
87
|
/**
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
* under `permissive` the plaintext `value` is used. Returns the plaintext or a
|
|
124
|
-
* structured error code the caller records + sends back.
|
|
88
|
+
* Plaintext for a secret/variable set. A `sealed` envelope is decrypted with the
|
|
89
|
+
* orchestrator's X25519 key under any posture: the client chose to seal, so that
|
|
90
|
+
* plaintext never transits the Platform. Otherwise `encrypted` refuses a plaintext
|
|
91
|
+
* `value` (fail-closed) and `permissive` uses it. Errors are structured codes the
|
|
92
|
+
* caller records and sends back.
|
|
125
93
|
*/
|
|
126
94
|
private resolveWriteValue;
|
|
127
|
-
/**
|
|
128
|
-
* Route a dashboard message to the appropriate handler.
|
|
129
|
-
* Returns true if the message was handled, false otherwise.
|
|
130
|
-
*/
|
|
95
|
+
/** Returns false for a message this handler does not own. */
|
|
131
96
|
handleMessage(msg: DashboardPlatformToOrchMessage): Promise<boolean>;
|
|
132
97
|
private handleEnvList;
|
|
133
98
|
/**
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
* never values. Scoped to the caller-resolved org (the request's target org,
|
|
138
|
-
* else the connection-level org).
|
|
99
|
+
* Context id → distinct secret key names reachable through its scope bindings
|
|
100
|
+
* (`context_bindings` → `scoped_secrets` on the scope pattern, minus the `__empty__`
|
|
101
|
+
* sentinel). Key names only, never values, scoped to the caller-resolved org.
|
|
139
102
|
*/
|
|
140
103
|
private loadSecretKeysByEnv;
|
|
141
104
|
private handleEnvGet;
|
|
@@ -151,13 +114,9 @@ export declare class DashboardContextHandler {
|
|
|
151
114
|
private handleSourceOverrideDelete;
|
|
152
115
|
private handleBindingsList;
|
|
153
116
|
private handleBindingsSet;
|
|
154
|
-
/**
|
|
117
|
+
/** Falls back to the single secretStore wrapped in a Map. */
|
|
155
118
|
private getBackendStores;
|
|
156
|
-
/**
|
|
157
|
-
* Resolve the correct backend store for a prefixed scope (e.g., 'vault:aws/prod').
|
|
158
|
-
* Returns the store and the scope to pass to it.
|
|
159
|
-
* All stores expect unprefixed scopes — the backend prefix is stripped.
|
|
160
|
-
*/
|
|
119
|
+
/** For a prefixed scope (e.g. 'vault:aws/prod'); stores expect it with the prefix stripped. */
|
|
161
120
|
private resolveStoreForScope;
|
|
162
121
|
private handleSecretsList;
|
|
163
122
|
private handleSecretSet;
|
|
@@ -168,27 +127,25 @@ export declare class DashboardContextHandler {
|
|
|
168
127
|
private handleEnvHistory;
|
|
169
128
|
private handleHeldRunsList;
|
|
170
129
|
/**
|
|
171
|
-
*
|
|
130
|
+
* The actor's Keycloak sub for approval attribution. Only `user` and
|
|
172
131
|
* `platform_operator` actors carry a `sub`; others fall back to a stable id.
|
|
173
132
|
*
|
|
174
|
-
* The `service:` namespace comes from {@link adminActorSub}
|
|
175
|
-
*
|
|
176
|
-
*
|
|
177
|
-
*
|
|
178
|
-
* that can never be equal.
|
|
133
|
+
* The `service:` namespace comes from {@link adminActorSub}, not a literal:
|
|
134
|
+
* `applyDecision`'s self-approval gate compares this against
|
|
135
|
+
* {@link triggererSubjectFor}'s output, so both renderings must come from the same
|
|
136
|
+
* code or the gate compares strings that can never be equal.
|
|
179
137
|
*/
|
|
180
138
|
private actorSub;
|
|
181
|
-
/**
|
|
139
|
+
/** org_settings.allow_self_approval, default true. */
|
|
182
140
|
private readAllowSelfApproval;
|
|
183
141
|
/**
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
*
|
|
142
|
+
* Routes an approve/reject through the shared `applyDecision` applier: eligibility,
|
|
143
|
+
* real attribution, multi-clause accumulation and the resume-after-approval
|
|
144
|
+
* re-dispatch.
|
|
187
145
|
*
|
|
188
|
-
* The response goes out
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
* per decision and it still carries the real outcome.
|
|
146
|
+
* The response goes out once the decision is durable, not when its consequence
|
|
147
|
+
* finishes (`ApplyDecisionResult.consequence`). The audit entry attaches to the
|
|
148
|
+
* consequence, so there is exactly one per decision carrying the real outcome.
|
|
192
149
|
*/
|
|
193
150
|
private applyApprovalDecision;
|
|
194
151
|
private handleHeldRunApprove;
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Handles dashboard.diagnostics requests from Platform.
|
|
3
3
|
*
|
|
4
|
-
* Reads the AgentRegistry for connected agent info
|
|
5
|
-
* metadata from config
|
|
6
|
-
*
|
|
7
|
-
* Returns a response matching dashboardDiagnosticsResponseSchema.
|
|
4
|
+
* Reads the AgentRegistry for connected agent info and extracts orchestrator
|
|
5
|
+
* metadata from config. `pendingLabelGaps` is always empty.
|
|
8
6
|
*/
|
|
9
7
|
import type { AgentRegistry } from '../agent/registry.js';
|
|
10
8
|
import type { AppConfig } from '../config.js';
|
|
@@ -16,41 +14,26 @@ import type { RaftNode } from '../cluster/raft.js';
|
|
|
16
14
|
export interface DiagnosticsHandlerDeps {
|
|
17
15
|
agentRegistry: AgentRegistry;
|
|
18
16
|
config: AppConfig;
|
|
19
|
-
/**
|
|
17
|
+
/** e.g. "0.0.1". */
|
|
20
18
|
version: string;
|
|
21
|
-
/** Unique
|
|
19
|
+
/** Unique backend types, e.g. ["container", "firecracker"]. */
|
|
22
20
|
scalerBackends: string[];
|
|
23
|
-
/** Optional job queue for queued job count. */
|
|
24
21
|
jobQueue?: {
|
|
25
22
|
getDepth(): Promise<number>;
|
|
26
23
|
};
|
|
27
|
-
/** Optional scaler manager for agent-to-scaler mapping. */
|
|
28
24
|
scalerManager?: ScalerManager | null;
|
|
29
|
-
/** Optional scaler config for scaler details. */
|
|
30
25
|
scalerConfig?: ScalerConfig | null;
|
|
31
|
-
/**
|
|
26
|
+
/** Set in cluster coordinator mode. */
|
|
32
27
|
peerRegistry?: PeerRegistry | null;
|
|
33
|
-
/** Optional Raft node for cluster election state. */
|
|
34
28
|
raftNode?: RaftNode | null;
|
|
35
29
|
}
|
|
36
30
|
/**
|
|
37
|
-
*
|
|
38
|
-
* Uses an explicit allowlist to prevent accidental secret leaks.
|
|
31
|
+
* An explicit allowlist, so secrets (socketPath, uid, gid, …) never leak.
|
|
39
32
|
*/
|
|
40
33
|
export declare function buildSafeScalerConfig(entry: ScalerEntry): Record<string, unknown>;
|
|
41
|
-
/**
|
|
42
|
-
* Build a diagnostics response for the given request.
|
|
43
|
-
* When includeAgents is false (default), agents[] is empty and aggregate fields are populated.
|
|
44
|
-
*/
|
|
34
|
+
/** When includeAgents is false (default), agents[] is empty; aggregates are always set. */
|
|
45
35
|
export declare function handleDiagnosticsRequest(deps: DiagnosticsHandlerDeps, requestId: string, includeAgents?: boolean): Promise<DashboardDiagnosticsResponse>;
|
|
46
|
-
/**
|
|
47
|
-
* Build a per-scaler capacity response for the given request.
|
|
48
|
-
* Reads ScalerManager status to get active/max counts per backend.
|
|
49
|
-
*/
|
|
50
36
|
export declare function handleScalerCapacityRequest(scalerManager: ScalerManager | null, requestId: string): DashboardScalerCapacityResponse;
|
|
51
|
-
/**
|
|
52
|
-
* Build a per-scaler agents response for the given request.
|
|
53
|
-
* When scalerName is null, returns agents not bound to any scaler (stateful agents).
|
|
54
|
-
*/
|
|
37
|
+
/** A null scalerName returns agents bound to no scaler (stateful agents). */
|
|
55
38
|
export declare function handleScalerAgentsRequest(deps: DiagnosticsHandlerDeps, requestId: string, scalerName: string | null): DashboardScalerAgentsResponse;
|
|
56
39
|
//# sourceMappingURL=dashboard-diagnostics-handler.d.ts.map
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Guarantees every forwarded dashboard request
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* silently dropped frame (which the Platform would surface as a 10s 504 at its
|
|
2
|
+
* Guarantees every forwarded dashboard request gets exactly one response frame
|
|
3
|
+
* keyed to its requestId: a thrown handler or an unhandled type returns a
|
|
4
|
+
* structured error instead of a dropped frame (a 10s 504 at the Platform's
|
|
6
5
|
* forward window).
|
|
7
6
|
*/
|
|
8
7
|
export interface DashboardDispatchGuardDeps {
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* declared from the dashboard that no agent or operator confirmed yet. The handlers are pure (they take their dependencies as arguments) so
|
|
8
|
-
* the WS wiring in `server.ts` stays a thin adapter and the logic is unit
|
|
9
|
-
* testable without a live DB / Platform connection.
|
|
2
|
+
* Fleet-management read-relay handlers, answered from `HostRosterStore`. Roster
|
|
3
|
+
* reads return `FleetHostEntry` (`HostInventoryEntry` plus `confirmed`) so the
|
|
4
|
+
* dashboard can show dashboard-declared hosts no agent or operator confirmed
|
|
5
|
+
* yet. Handlers take their deps as arguments, keeping the `server.ts` wiring a
|
|
6
|
+
* thin adapter and the logic unit-testable without a live DB or Platform.
|
|
10
7
|
*/
|
|
11
8
|
import type { Kysely } from 'kysely';
|
|
12
9
|
import type { Database } from '../db/types.js';
|
|
@@ -25,7 +22,7 @@ export interface FleetHandlerDeps {
|
|
|
25
22
|
rosterGraceMs: number;
|
|
26
23
|
/** Resolve a workflow's runsOnAll predicate + onUnreachable, or null. */
|
|
27
24
|
resolveRunsOnAll: (workflowName: string) => Promise<ResolvedRunsOnAll | null>;
|
|
28
|
-
/**
|
|
25
|
+
/** Backs the host-centric workflows-for-host read. */
|
|
29
26
|
registrationStore: RegistrationStore;
|
|
30
27
|
}
|
|
31
28
|
/** Roster: every host, unconfirmed placeholders included, flagged `confirmed`. */
|
|
@@ -35,10 +32,9 @@ export declare function handleFleetHostRequest(deps: FleetHandlerDeps, requestId
|
|
|
35
32
|
/** runsOnAll preview: matched hosts + the fan-out policy + estimated child count. */
|
|
36
33
|
export declare function handleFleetPreviewRequest(deps: FleetHandlerDeps, requestId: string, workflowName: string): Promise<DashboardFleetPreviewResponse>;
|
|
37
34
|
/**
|
|
38
|
-
* workflows-for-host: the host-centric inverse of the preview.
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* `onUnreachable` policy and the host's per-workflow disposition.
|
|
35
|
+
* workflows-for-host: the host-centric inverse of the preview. Tests every
|
|
36
|
+
* non-disabled workflow's runsOnAll predicate against this host's labels and
|
|
37
|
+
* returns each match with its `onUnreachable` policy and the host's disposition.
|
|
42
38
|
*/
|
|
43
39
|
export declare function handleFleetWorkflowsForHostRequest(deps: FleetHandlerDeps, requestId: string, agentId: string): Promise<DashboardFleetWorkflowsForHostResponse>;
|
|
44
40
|
//# sourceMappingURL=dashboard-fleet-handler.d.ts.map
|
|
@@ -4,25 +4,17 @@ import type { Database } from '../db/types.js';
|
|
|
4
4
|
import { type HostRosterStore } from '../agent/host-roster.js';
|
|
5
5
|
import type { AccessLogWriter } from '../audit/access-log.js';
|
|
6
6
|
interface DashboardFleetWriteHandlerDeps {
|
|
7
|
-
/** Send a response message back to Platform over the WS connection. */
|
|
8
7
|
send: (msg: unknown) => void;
|
|
9
|
-
/** The orchestrator host roster store (declare / remove). */
|
|
10
8
|
rosterStore: HostRosterStore;
|
|
11
|
-
/**
|
|
9
|
+
/** For dashboard-write policy lookups. */
|
|
12
10
|
db: Kysely<Database>;
|
|
13
|
-
/** Access log writer — records one row per mutation with actor attribution. */
|
|
14
11
|
accessLog?: AccessLogWriter;
|
|
15
12
|
/** Org ID for access_log rows (null when the orchestrator isn't org-scoped). */
|
|
16
13
|
orgId?: string | null;
|
|
17
14
|
/** Routing key for access_log rows (null when not run-scoped). */
|
|
18
15
|
routingKey?: string | null;
|
|
19
16
|
}
|
|
20
|
-
/** Messages this handler owns. */
|
|
21
17
|
type FleetWriteMessage = FleetHostDeclareRequest | FleetHostRemoveRequest;
|
|
22
|
-
/**
|
|
23
|
-
* Handler for the fleet host-write WS messages. Dispatches by type and calls
|
|
24
|
-
* the host roster store behind the dashboard-write policy gate.
|
|
25
|
-
*/
|
|
26
18
|
export declare class DashboardFleetWriteHandler {
|
|
27
19
|
private readonly deps;
|
|
28
20
|
private orgId;
|
|
@@ -30,17 +22,14 @@ export declare class DashboardFleetWriteHandler {
|
|
|
30
22
|
private readonly access;
|
|
31
23
|
constructor(deps: DashboardFleetWriteHandlerDeps);
|
|
32
24
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
25
|
+
* Called from server.ts once the single tenant org resolves from the
|
|
26
|
+
* `sources`, `generic_webhook_sources` or `remote_sources` table.
|
|
35
27
|
*/
|
|
36
28
|
setOrgContext(orgId: string | null, routingKey: string | null): void;
|
|
37
29
|
/**
|
|
38
|
-
* Defense-in-depth
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* structured `operation_disabled` envelope on the WS.
|
|
42
|
-
*
|
|
43
|
-
* Fails open when no org is bound — the orch hasn't resolved a customer yet.
|
|
30
|
+
* Defense-in-depth policy gate: false when the policy disables the op, after
|
|
31
|
+
* recording a `denied` row and sending the `operation_disabled` envelope.
|
|
32
|
+
* Fails open when no org is bound (no customer resolved yet).
|
|
44
33
|
*/
|
|
45
34
|
private enforcePolicy;
|
|
46
35
|
/**
|
|
@@ -49,10 +38,7 @@ export declare class DashboardFleetWriteHandler {
|
|
|
49
38
|
* response `error` field (plus the reserved keys for `reserved_property`).
|
|
50
39
|
*/
|
|
51
40
|
private refuse;
|
|
52
|
-
/**
|
|
53
|
-
* Route a fleet host-write message to the appropriate handler. Returns true
|
|
54
|
-
* if the message was handled, false otherwise.
|
|
55
|
-
*/
|
|
41
|
+
/** Returns false for a message this handler does not own. */
|
|
56
42
|
handleMessage(msg: FleetWriteMessage): Promise<boolean>;
|
|
57
43
|
private handleDeclare;
|
|
58
44
|
private handleRemove;
|
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Handles `dashboard.global-workflows.*` WS messages from Platform by reading or
|
|
3
|
+
* upserting the `org_settings` row keyed by `customer_id`. The row holds the per-org
|
|
4
|
+
* repo-pattern lists (allow / deny) of `{routingKey?, pattern}` entries; `routingKey`
|
|
5
|
+
* optionally pins an entry to one source. The fleet-wide master switch
|
|
6
|
+
* (`cluster_settings.global_workflows_enabled`) is read-only here: projected as
|
|
7
|
+
* `enabled`, never written.
|
|
3
8
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* holds the per-org repo-pattern lists (allow / deny); each
|
|
7
|
-
* entry is a `{routingKey?, pattern}` object that may optionally pin to one
|
|
8
|
-
* source. The master enable switch is fleet-wide
|
|
9
|
-
* (`cluster_settings.global_workflows_enabled`) and read-only here — projected
|
|
10
|
-
* onto the response as `enabled`, never written from this handler.
|
|
11
|
-
*
|
|
12
|
-
* The handler binds a single `customerId` at construction time (via the
|
|
13
|
-
* sources / generic_webhook_sources lookup at server startup) and updates
|
|
14
|
-
* via setOrgId() when a real customer source registers.
|
|
9
|
+
* `customerId` binds at construction (from the sources / generic_webhook_sources lookup
|
|
10
|
+
* at server startup) and updates via setOrgId() when a real customer source registers.
|
|
15
11
|
*/
|
|
16
12
|
import { type Kysely } from 'kysely';
|
|
17
13
|
import type { GlobalWorkflowsGetRequest, GlobalWorkflowsUpdateRequest, GlobalWorkflowSettings, RepoPatternEntry } from '@kici-dev/engine/protocol/dashboard-global-workflows';
|
|
@@ -19,23 +15,18 @@ import type { Database, OrgSettings } from '../db/types.js';
|
|
|
19
15
|
import type { AccessLogWriter } from '../audit/access-log.js';
|
|
20
16
|
import type { ClusterSettingsReader } from '../cluster/cluster-settings-reader.js';
|
|
21
17
|
interface DashboardGlobalWorkflowsHandlerDeps {
|
|
22
|
-
/**
|
|
18
|
+
/** Primary key on org_settings. */
|
|
23
19
|
customerId: string;
|
|
24
|
-
/** Send a response message back to Platform over the WS connection. */
|
|
25
20
|
send: (msg: unknown) => void;
|
|
26
21
|
db: Kysely<Database>;
|
|
27
22
|
/** Reads the fleet-wide master switch for the read-only `enabled` projection. */
|
|
28
23
|
clusterSettings: ClusterSettingsReader;
|
|
29
24
|
/** Applies when the cluster column is NULL — `config.globalWorkflowsEnabled`. */
|
|
30
25
|
globalWorkflowsEnabledDefault: boolean;
|
|
31
|
-
/**
|
|
26
|
+
/** Records one row per read / mutation with actor attribution. */
|
|
32
27
|
accessLog?: AccessLogWriter;
|
|
33
28
|
}
|
|
34
29
|
type GlobalWorkflowsMessage = GlobalWorkflowsGetRequest | GlobalWorkflowsUpdateRequest;
|
|
35
|
-
/**
|
|
36
|
-
* Returns true when the message is one this handler can dispatch. Used by the
|
|
37
|
-
* server to route incoming WS messages.
|
|
38
|
-
*/
|
|
39
30
|
export declare function isDashboardGlobalWorkflowsMessage(msg: {
|
|
40
31
|
type: string;
|
|
41
32
|
} | null | undefined): msg is GlobalWorkflowsMessage;
|
|
@@ -43,12 +34,10 @@ export declare class DashboardGlobalWorkflowsHandler {
|
|
|
43
34
|
private readonly deps;
|
|
44
35
|
private readonly access;
|
|
45
36
|
constructor(deps: DashboardGlobalWorkflowsHandlerDeps);
|
|
46
|
-
/** Update the customer / org id this handler operates on. */
|
|
47
37
|
setOrgId(customerId: string | null): void;
|
|
48
38
|
/**
|
|
49
|
-
* Defense-in-depth dashboard-write policy gate.
|
|
50
|
-
*
|
|
51
|
-
* envelope and a `denied` access_log row) when policy says no.
|
|
39
|
+
* Defense-in-depth dashboard-write policy gate. On denial it sends a structured
|
|
40
|
+
* `operation_disabled` envelope, writes a `denied` access_log row and returns false.
|
|
52
41
|
*/
|
|
53
42
|
private enforcePolicy;
|
|
54
43
|
handleMessage(msg: GlobalWorkflowsMessage): Promise<boolean>;
|
|
@@ -56,24 +45,19 @@ export declare class DashboardGlobalWorkflowsHandler {
|
|
|
56
45
|
private handleUpdate;
|
|
57
46
|
private readRow;
|
|
58
47
|
/**
|
|
59
|
-
* The effective
|
|
60
|
-
* dashboard renders as a status badge.
|
|
48
|
+
* The effective master switch, rendered by the dashboard as a status badge.
|
|
61
49
|
*
|
|
62
|
-
* Uses the shared 10s-cached reader
|
|
63
|
-
*
|
|
64
|
-
* up to 10s stale is fine; a second uncached read on every dashboard poll is
|
|
65
|
-
* not.
|
|
50
|
+
* Uses the shared 10s-cached reader, unlike the admin route, which reads uncached for
|
|
51
|
+
* set-then-show. A badge up to 10s stale is fine; an uncached read per poll is not.
|
|
66
52
|
*
|
|
67
|
-
* An unreadable row resolves to the configured default
|
|
68
|
-
*
|
|
69
|
-
* gate is `GlobalWorkflowPolicy`, which does fail closed.
|
|
53
|
+
* An unreadable row resolves to the configured default rather than failing closed:
|
|
54
|
+
* this only drives the UI, and the actual gate, `GlobalWorkflowPolicy`, fails closed.
|
|
70
55
|
*/
|
|
71
56
|
private effectiveEnabled;
|
|
72
57
|
private upsertRow;
|
|
73
58
|
/**
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
* pollute the error dashboards an operator watches.
|
|
59
|
+
* `sendError`'s envelope for bad client input, logged at warn: it is not a server
|
|
60
|
+
* fault, and error-level rows would pollute the operator's error dashboards.
|
|
77
61
|
*/
|
|
78
62
|
private sendClientError;
|
|
79
63
|
private sendError;
|
|
@@ -82,17 +66,11 @@ interface NormalizedPatch {
|
|
|
82
66
|
allowedRepos: RepoPatternEntry[] | null;
|
|
83
67
|
deniedRepos: RepoPatternEntry[] | null;
|
|
84
68
|
}
|
|
85
|
-
/**
|
|
86
|
-
* Derive the effective storage state from an existing row (may be undefined)
|
|
87
|
-
* plus a partial update message. Unset fields fall back to the existing value;
|
|
88
|
-
* an explicit `null` clears the corresponding column.
|
|
89
|
-
*/
|
|
69
|
+
/** Unset fields keep the existing value; an explicit `null` clears the column. */
|
|
90
70
|
export declare function buildPatch(existing: OrgSettings | undefined, msg: GlobalWorkflowsUpdateRequest): NormalizedPatch;
|
|
91
71
|
/**
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
* row does not yet exist, the per-org lists project as null so callers always
|
|
95
|
-
* get a renderable state.
|
|
72
|
+
* `enabled` is the effective master switch, supplied by the caller. A missing row
|
|
73
|
+
* projects its lists as null so callers always get a renderable state.
|
|
96
74
|
*/
|
|
97
75
|
export declare function rowToSettings(customerId: string, row: OrgSettings | undefined, enabled: boolean): GlobalWorkflowSettings;
|
|
98
76
|
export {};
|
|
@@ -5,17 +5,12 @@ import type { RegistrationStore } from '../registration/registration-store.js';
|
|
|
5
5
|
import type { RegistrationIndex } from '../registration/registration-index.js';
|
|
6
6
|
import type { AccessLogWriter } from '../audit/access-log.js';
|
|
7
7
|
interface DashboardRegistrationsHandlerDeps {
|
|
8
|
-
/** Organization ID for all operations. */
|
|
9
8
|
orgId: string;
|
|
10
|
-
/** Send a response message back to Platform over the WS connection. */
|
|
11
9
|
send: (msg: unknown) => void;
|
|
12
|
-
/** Registration store for DB queries. */
|
|
13
10
|
registrationStore: RegistrationStore;
|
|
14
|
-
/** Registration index for version info. */
|
|
15
11
|
registrationIndex: RegistrationIndex;
|
|
16
|
-
/** Database for execution_runs and cron_last_fired queries. */
|
|
17
12
|
db: Kysely<Database>;
|
|
18
|
-
/**
|
|
13
|
+
/** Records one row per read / mutation with actor attribution. */
|
|
19
14
|
accessLog?: AccessLogWriter;
|
|
20
15
|
/** Routing key for access_log rows (null when not run-scoped). */
|
|
21
16
|
routingKey?: string | null;
|
|
@@ -42,41 +37,29 @@ interface RegistrationDeleteMessage {
|
|
|
42
37
|
cancelActiveRuns?: boolean;
|
|
43
38
|
}
|
|
44
39
|
type RegistrationMessage = RegistrationsListMessage | RegistrationDisableMessage | RegistrationDeleteMessage;
|
|
45
|
-
/**
|
|
46
|
-
* Handler for dashboard registration WS messages (list, disable, delete).
|
|
47
|
-
*
|
|
48
|
-
* Queries registration store, enriches with last-triggered and next-fire data,
|
|
49
|
-
* and sends typed response via deps.send().
|
|
50
|
-
*/
|
|
40
|
+
/** Dashboard registration WS messages: list, disable, delete. */
|
|
51
41
|
export declare class DashboardRegistrationsHandler {
|
|
52
42
|
private readonly deps;
|
|
53
43
|
private routingKey;
|
|
54
44
|
private readonly access;
|
|
55
45
|
constructor(deps: DashboardRegistrationsHandlerDeps);
|
|
56
|
-
/**
|
|
46
|
+
/** Called once the orgId resolves from the DB. */
|
|
57
47
|
setOrgId(orgId: string): void;
|
|
58
|
-
/** Update the routing key bound to access_log rows. */
|
|
59
48
|
setRoutingKey(routingKey: string | null): void;
|
|
60
49
|
/**
|
|
61
|
-
* Defense-in-depth
|
|
62
|
-
*
|
|
63
|
-
* when the policy is disabled — also records a `denied` access_log row
|
|
64
|
-
* and emits a structured `operation_disabled` envelope on the WS.
|
|
50
|
+
* Defense-in-depth policy gate: false when the policy disables the op, after
|
|
51
|
+
* recording a `denied` row and sending the `operation_disabled` envelope.
|
|
65
52
|
*/
|
|
66
53
|
private enforcePolicy;
|
|
67
54
|
handle(msg: RegistrationMessage): Promise<void>;
|
|
68
55
|
private handleDisable;
|
|
69
56
|
private handleDelete;
|
|
70
57
|
/**
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
* Each query is wrapped in its own try/catch so a transient failure on
|
|
78
|
-
* one table still allows enrichment from the other; rows missing in both
|
|
79
|
-
* fall through to the synthetic fallback in `buildRegistrationSource`.
|
|
58
|
+
* Source metadata keyed on `routing_key`, from `sources` (native, currently
|
|
59
|
+
* always GitHub Apps) and `generic_webhook_sources` (generic / universal-git /
|
|
60
|
+
* internal); the native row wins when a key is in both. Each query fails on
|
|
61
|
+
* its own, so one table's transient failure still enriches from the other;
|
|
62
|
+
* keys missing from both get the synthetic fallback in `buildRegistrationSource`.
|
|
80
63
|
*/
|
|
81
64
|
private loadSourceMetadata;
|
|
82
65
|
private handleList;
|