@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
|
@@ -2,8 +2,7 @@ import { type Kysely } from 'kysely';
|
|
|
2
2
|
import type { Database } from '../db/types.js';
|
|
3
3
|
import type { ScalerEvent } from './types.js';
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
* `scaler_spawning_agents`.
|
|
5
|
+
* A `scaler_spawning_agents` row.
|
|
7
6
|
*
|
|
8
7
|
* The ownership and self-describing fields are optional: a row written before a
|
|
9
8
|
* coordinator instance id was known carries none of them, and an absent
|
|
@@ -21,18 +20,14 @@ export interface SpawningAgentSnapshot {
|
|
|
21
20
|
ownerInstanceId?: string;
|
|
22
21
|
/** The coordinator the agent actually reached when it registered. */
|
|
23
22
|
adoptedBy?: string;
|
|
24
|
-
/** When the adopting coordinator claimed the agent. */
|
|
25
23
|
adoptedAt?: Date;
|
|
26
|
-
/**
|
|
24
|
+
/** Copied from the scaler at spawn time, as are `provisioningTargets` and `roles`. */
|
|
27
25
|
mandatoryLabels?: string[];
|
|
28
|
-
/** The scaler's provisioning targets, copied onto the row at spawn time. */
|
|
29
26
|
provisioningTargets?: string[];
|
|
30
|
-
/** The scaler's roles, copied onto the row at spawn time. */
|
|
31
27
|
roles?: string[];
|
|
32
|
-
/** The scaler backend that spawned the agent. */
|
|
33
28
|
backendType?: string;
|
|
34
29
|
}
|
|
35
|
-
/**
|
|
30
|
+
/** Written by the event scaler's claim store. */
|
|
36
31
|
export interface PendingClaimRow {
|
|
37
32
|
claimHash: string;
|
|
38
33
|
claimPrefix: string;
|
|
@@ -43,7 +38,6 @@ export interface PendingClaimRow {
|
|
|
43
38
|
orchestratorUrl: string;
|
|
44
39
|
expiresAt: Date;
|
|
45
40
|
}
|
|
46
|
-
/** What a successful `redeemClaim` returns. */
|
|
47
41
|
export interface RedeemedClaim {
|
|
48
42
|
agentId: string;
|
|
49
43
|
labels: string[];
|
|
@@ -56,21 +50,21 @@ export interface RedeemedClaim {
|
|
|
56
50
|
*/
|
|
57
51
|
export interface ScalerCapSlot {
|
|
58
52
|
/**
|
|
59
|
-
* Live event-scaler spawn rows for this scaler across every coordinator
|
|
60
|
-
*
|
|
61
|
-
*
|
|
53
|
+
* Live event-scaler spawn rows for this scaler across every coordinator,
|
|
54
|
+
* read inside the advisory-locked transaction so no other lock holder can
|
|
55
|
+
* change it while the caller decides.
|
|
62
56
|
*/
|
|
63
57
|
clusterActiveCount: number;
|
|
64
58
|
/**
|
|
65
59
|
* Claim a slot by writing the spawn row in the same transaction the count
|
|
66
|
-
* was read in. Counting without claiming
|
|
67
|
-
*
|
|
68
|
-
*
|
|
60
|
+
* was read in. Counting without claiming bounds nothing: the spawn row is
|
|
61
|
+
* otherwise written well after the check, so every coordinator arriving in
|
|
62
|
+
* that window reads the same pre-spawn count and admits.
|
|
69
63
|
*/
|
|
70
64
|
reserve(snapshot: SpawningAgentSnapshot): Promise<void>;
|
|
71
65
|
/**
|
|
72
|
-
* Whether this scaler
|
|
73
|
-
*
|
|
66
|
+
* Whether this scaler holds a spawn row bound to `jobId` on any coordinator,
|
|
67
|
+
* read inside the same locked transaction as the claim.
|
|
74
68
|
*/
|
|
75
69
|
hasProvisionForJob(jobId: string): Promise<boolean>;
|
|
76
70
|
}
|
|
@@ -82,73 +76,60 @@ export interface ReapCandidate {
|
|
|
82
76
|
ownerInstanceId?: string;
|
|
83
77
|
adoptedBy?: string;
|
|
84
78
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
* clock on its own stranded provision and the row would never age out.
|
|
79
|
+
* The reaper ages every row on this, never on `adopted_at`: a coordinator
|
|
80
|
+
* that re-adopts its own agent refreshes `adopted_at`, so a restart loop on
|
|
81
|
+
* the adopter would keep resetting the clock and the row would never age out.
|
|
89
82
|
*/
|
|
90
83
|
spawnedAt: Date;
|
|
91
84
|
/**
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
* has no in-memory spawning entry to read the identity from.
|
|
85
|
+
* Set when job-bound, so a teardown of a never-registered provision can be
|
|
86
|
+
* attributed to the waiting job: the reaper is leader-gated, so the
|
|
87
|
+
* condemning coordinator often did not spawn the row and has no in-memory
|
|
88
|
+
* spawning entry to read the identity from.
|
|
97
89
|
*/
|
|
98
90
|
runId?: string;
|
|
99
|
-
/**
|
|
91
|
+
/** Absent for a warm fill. */
|
|
100
92
|
boundJobId?: string;
|
|
101
93
|
}
|
|
102
|
-
/**
|
|
103
|
-
* Snapshot of an agent-job correlation. Mirrors the row shape in
|
|
104
|
-
* `scaler_agent_jobs`.
|
|
105
|
-
*/
|
|
94
|
+
/** A `scaler_agent_jobs` row. */
|
|
106
95
|
export interface AgentJobCorrelationSnapshot {
|
|
107
96
|
agentId: string;
|
|
108
97
|
runId: string;
|
|
109
98
|
jobId: string;
|
|
110
99
|
}
|
|
111
|
-
/**
|
|
112
|
-
* Snapshot of a resource reservation. Mirrors the row shape in
|
|
113
|
-
* `scaler_reservations`.
|
|
114
|
-
*/
|
|
100
|
+
/** A `scaler_reservations` row. */
|
|
115
101
|
export interface ReservationSnapshot {
|
|
116
102
|
agentId: string;
|
|
117
103
|
scalerName: string;
|
|
118
104
|
cpus: number;
|
|
119
105
|
memBytes: number;
|
|
120
|
-
/**
|
|
121
|
-
* The coordinator instance holding the reservation. Absent means "unknown
|
|
122
|
-
* owner", never "held by someone else".
|
|
123
|
-
*/
|
|
106
|
+
/** Absent means "unknown owner", never "held by someone else". */
|
|
124
107
|
ownerInstanceId?: string;
|
|
125
108
|
}
|
|
126
109
|
/**
|
|
127
110
|
* DB persistence for `ScalerManager` HA-critical state.
|
|
128
111
|
*
|
|
129
|
-
* Backed by
|
|
130
|
-
* `scaler_reservations
|
|
131
|
-
* coord crash
|
|
112
|
+
* Backed by `scaler_spawning_agents`, `scaler_agent_jobs`,
|
|
113
|
+
* `scaler_reservations` and `scaler_pending_claims`, so a Raft leader switch
|
|
114
|
+
* or coord crash does not:
|
|
132
115
|
*
|
|
133
|
-
* -
|
|
134
|
-
*
|
|
135
|
-
* -
|
|
136
|
-
*
|
|
137
|
-
* -
|
|
116
|
+
* - orphan a mid-spawn agent (lost `boundJobId` → eager dispatch silently
|
|
117
|
+
* downgraded to a generic queue drain),
|
|
118
|
+
* - strand a reservation (counted as used until the backend GC disconnects
|
|
119
|
+
* the agent, minutes later),
|
|
120
|
+
* - drop the agent → run/job correlation (execution-tracker loses
|
|
138
121
|
* scaler-lifecycle events emitted by the new coord).
|
|
139
122
|
*
|
|
140
|
-
* The consumer keeps
|
|
141
|
-
* become-leader
|
|
123
|
+
* The consumer keeps in-memory Maps as L1 caches, hydrated via `recoverState()`
|
|
124
|
+
* on boot / become-leader.
|
|
142
125
|
*
|
|
143
|
-
* `perScalerUsage` / `globalUsage` are NOT stored
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
* source of truth for the cap-check critical section.
|
|
126
|
+
* `perScalerUsage` / `globalUsage` are NOT stored: they are recomputed from
|
|
127
|
+
* `SUM(...) FROM scaler_reservations` on recovery, so the reservation rows are
|
|
128
|
+
* the single source of truth for the cap-check critical section.
|
|
147
129
|
*
|
|
148
|
-
* The `eventBuffer` Map is
|
|
149
|
-
*
|
|
150
|
-
*
|
|
151
|
-
* observability, not correctness: nothing downstream waits on them).
|
|
130
|
+
* The `eventBuffer` Map is not persisted: a coord crash before
|
|
131
|
+
* `correlateAgentToJob()` loses those events, which are observability, not
|
|
132
|
+
* correctness — nothing downstream waits on them.
|
|
152
133
|
*
|
|
153
134
|
* Ownership columns (`owner_instance_id`, `adopted_by`) let several
|
|
154
135
|
* coordinators behind one shared endpoint divide the same tables between them.
|
|
@@ -156,22 +137,18 @@ export interface ReservationSnapshot {
|
|
|
156
137
|
* instance", so no query may read a NULL owner as somebody else's row.
|
|
157
138
|
*/
|
|
158
139
|
/**
|
|
159
|
-
* Postgres `lock_not_available
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
* database that could not be reached at all.
|
|
140
|
+
* Postgres `lock_not_available`: the cap transaction's `lock_timeout` expired
|
|
141
|
+
* with the advisory lock held elsewhere — a contended lock on a healthy
|
|
142
|
+
* database, unlike a database that could not be reached at all.
|
|
163
143
|
*/
|
|
164
144
|
export declare const PG_LOCK_NOT_AVAILABLE = "55P03";
|
|
165
145
|
export declare class ScalerStateStore {
|
|
166
146
|
private readonly db;
|
|
167
147
|
private readonly lockWaitMs?;
|
|
168
148
|
/**
|
|
169
|
-
* `lockWaitMs` bounds how long `withScalerCapLock` waits
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
* database resource before we fail" — not a timeout of its own. Omitted, the
|
|
173
|
-
* wait is unbounded except by `statement_timeout`, which is the behaviour a
|
|
174
|
-
* store built without it has always had.
|
|
149
|
+
* `lockWaitMs` bounds how long `withScalerCapLock` waits for the advisory
|
|
150
|
+
* lock. It is the orchestrator's `dbPoolAcquireTimeoutMs`, not a timeout of
|
|
151
|
+
* its own. Omitted, the wait is bounded only by `statement_timeout`.
|
|
175
152
|
*/
|
|
176
153
|
constructor(db: Kysely<Database>, lockWaitMs?: number | undefined);
|
|
177
154
|
upsertSpawningAgent(snapshot: SpawningAgentSnapshot): Promise<void>;
|
|
@@ -179,30 +156,25 @@ export declare class ScalerStateStore {
|
|
|
179
156
|
* Run a cap check plus its slot claim for one scaler under a cluster-wide
|
|
180
157
|
* lock.
|
|
181
158
|
*
|
|
182
|
-
* `runWithReservationLock`
|
|
183
|
-
*
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
* advisory lock is transaction-scoped, so it releases on commit or rollback
|
|
187
|
-
* with no unlock path to leak.
|
|
159
|
+
* The manager's `runWithReservationLock` is an in-process promise chain,
|
|
160
|
+
* blind across instances: N coordinators would each provision up to
|
|
161
|
+
* `maxAgents` cloud instances. The advisory lock is transaction-scoped, so it
|
|
162
|
+
* releases on commit or rollback with no unlock path to leak.
|
|
188
163
|
*
|
|
189
|
-
* The count and the claim share the transaction
|
|
190
|
-
*
|
|
191
|
-
*
|
|
164
|
+
* The count and the claim share the transaction (see `ScalerCapSlot.reserve`),
|
|
165
|
+
* so `fn` runs inside an open transaction: keep it short, and never await
|
|
166
|
+
* anything outside the database in it.
|
|
192
167
|
*
|
|
193
|
-
* READ COMMITTED is pinned
|
|
194
|
-
*
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
*
|
|
198
|
-
*
|
|
199
|
-
* it means a server-side `default_transaction_isolation` change cannot do
|
|
200
|
-
* that silently.
|
|
168
|
+
* READ COMMITTED is pinned, not inherited: the lock is taken before the count
|
|
169
|
+
* is read, so each statement needs its own snapshot to see the previous
|
|
170
|
+
* holder's committed row. Under REPEATABLE READ the snapshot is taken at the
|
|
171
|
+
* FIRST statement, before the lock is granted, so both coordinators would
|
|
172
|
+
* read the same pre-claim count and admit. Pinning it means a server-side
|
|
173
|
+
* `default_transaction_isolation` change cannot do that silently.
|
|
201
174
|
*
|
|
202
175
|
* A caller that cannot get the lock within `lockWaitMs` fails rather than
|
|
203
176
|
* queuing: the manager holds its process-wide reservation lock across this
|
|
204
|
-
* call, so an unbounded wait
|
|
205
|
-
* request too.
|
|
177
|
+
* call, so an unbounded wait would stall every other backend's scale request.
|
|
206
178
|
*/
|
|
207
179
|
withScalerCapLock<T>(scalerName: string, fn: (slot: ScalerCapSlot) => Promise<T> | T): Promise<T>;
|
|
208
180
|
deleteSpawningAgent(agentId: string): Promise<void>;
|
|
@@ -210,38 +182,32 @@ export declare class ScalerStateStore {
|
|
|
210
182
|
* Delete a spawning-agent row only while no instance has adopted it.
|
|
211
183
|
*
|
|
212
184
|
* The spawning instance is never told that a peer adopted its agent, so its
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
*
|
|
216
|
-
*
|
|
217
|
-
* nothing to tear down if the adopting instance then died. The
|
|
218
|
-
* `adopted_by IS NULL` predicate keeps the prune to rows nobody claimed.
|
|
185
|
+
* stale-entry prune fires five minutes later regardless. An unconditional
|
|
186
|
+
* delete would drop the row whose `adopted_by` is the only durable record of
|
|
187
|
+
* a live provision; an adopted event agent can run for hours, so the reaper
|
|
188
|
+
* would find nothing to tear down if the adopting instance then died.
|
|
219
189
|
*/
|
|
220
190
|
deleteUnadoptedSpawningAgent(agentId: string): Promise<void>;
|
|
221
191
|
/**
|
|
222
192
|
* The instance that adopted a provision, or null while nobody has.
|
|
223
193
|
*
|
|
224
|
-
* The counterpart
|
|
225
|
-
* caller that must not act
|
|
226
|
-
* is
|
|
227
|
-
* no evidence the provision failed.
|
|
194
|
+
* The read counterpart of `deleteUnadoptedSpawningAgent`'s predicate, for a
|
|
195
|
+
* caller that must not act: a stale in-memory entry on the spawning instance
|
|
196
|
+
* is no evidence the provision failed.
|
|
228
197
|
*
|
|
229
|
-
* Reads the LIVE spawn row first
|
|
230
|
-
*
|
|
231
|
-
* "
|
|
232
|
-
* delete and answers the second case positively.
|
|
198
|
+
* Reads the LIVE spawn row first, then the durable outcome: the spawn row is
|
|
199
|
+
* deleted on teardown, so its absence means either "never adopted" or
|
|
200
|
+
* "adopted, then torn down", and the outcome row answers the second case.
|
|
233
201
|
*
|
|
234
|
-
*
|
|
235
|
-
*
|
|
236
|
-
*
|
|
237
|
-
* `ScalerManager.reportPrunedProvisionFailure`.
|
|
202
|
+
* Neither row answers null; the prune treats that as "no evidence" and
|
|
203
|
+
* reports, which keeps every coordinator backing off on a real provisioning
|
|
204
|
+
* outage. See `ScalerManager.reportPrunedProvisionFailure`.
|
|
238
205
|
*/
|
|
239
206
|
provisionAdopter(agentId: string): Promise<string | null>;
|
|
240
207
|
/**
|
|
241
|
-
* Every
|
|
242
|
-
* hydrating a peer's in-flight spawns as our
|
|
243
|
-
* reaper destroy agents that peer
|
|
244
|
-
* `listSpawningAgentsForOwner`.
|
|
208
|
+
* Every row, whoever owns it. Not for recovery (use
|
|
209
|
+
* `listSpawningAgentsForOwner`): hydrating a peer's in-flight spawns as our
|
|
210
|
+
* own lets the spawn-timeout reaper destroy agents that peer still awaits.
|
|
245
211
|
*/
|
|
246
212
|
listSpawningAgents(): Promise<SpawningAgentSnapshot[]>;
|
|
247
213
|
/**
|
|
@@ -252,41 +218,35 @@ export declare class ScalerStateStore {
|
|
|
252
218
|
* itself still resolves. Without the second arm a restart is a silent leak:
|
|
253
219
|
* recovery rehydrates the row, the stale-spawn prune drops the in-memory
|
|
254
220
|
* entry but spares the row, and the still-live agent's next registration
|
|
255
|
-
* finds neither — it reads as a static agent, so no `scale-down` is
|
|
256
|
-
*
|
|
257
|
-
*
|
|
258
|
-
*
|
|
259
|
-
* would be a lie.
|
|
221
|
+
* finds neither — it reads as a static agent, so no `scale-down` is emitted
|
|
222
|
+
* and the reaper spares it (registered, adopter alive). Gated on
|
|
223
|
+
* `backend_type = 'event'`: a local-backend agent's compute is pinned to
|
|
224
|
+
* another host, so adopting its bookkeeping would be a lie.
|
|
260
225
|
*
|
|
261
226
|
* The adoption is also recorded in `scaler_provision_outcomes`, in the SAME
|
|
262
|
-
* transaction
|
|
263
|
-
*
|
|
264
|
-
*
|
|
265
|
-
*
|
|
266
|
-
*
|
|
267
|
-
* single writer of `adopted_by`, so no adoption path can miss the record.
|
|
268
|
-
* Splitting the two writes would let a crash leave an adopted row whose
|
|
269
|
-
* adoption the prune cannot see, which is the very ambiguity being removed.
|
|
227
|
+
* transaction: the spawn row is deleted on teardown, and the stale-spawn
|
|
228
|
+
* prune needs a durable "was this ever adopted?" to tell a dead external
|
|
229
|
+
* provision from a healthy one it was not told about. This method is the
|
|
230
|
+
* single writer of `adopted_by`, so no adoption path can miss the record;
|
|
231
|
+
* splitting the writes would let a crash hide an adoption from the prune.
|
|
270
232
|
*/
|
|
271
233
|
adoptSpawningAgent(agentId: string, instanceId: string): Promise<SpawningAgentSnapshot | null>;
|
|
272
234
|
/**
|
|
273
|
-
*
|
|
274
|
-
*
|
|
275
|
-
* has an unknown owner and is deliberately not returned to anybody.
|
|
235
|
+
* Scopes recovery to this instance's own bookkeeping. A NULL-owner row is
|
|
236
|
+
* deliberately returned to nobody.
|
|
276
237
|
*/
|
|
277
238
|
listSpawningAgentsForOwner(instanceId: string): Promise<SpawningAgentSnapshot[]>;
|
|
278
239
|
/**
|
|
279
|
-
* Whether `instanceId` adopted an event provision whose spawn row is
|
|
280
|
-
*
|
|
281
|
-
*
|
|
282
|
-
*
|
|
240
|
+
* Whether `instanceId` adopted an event provision whose spawn row is live —
|
|
241
|
+
* a row the reaper judges by its adopter's liveness, not its deadline.
|
|
242
|
+
* `peer forget` reads it, so forgetting such an adopter never cuts the
|
|
243
|
+
* reaper's grace short.
|
|
283
244
|
*/
|
|
284
245
|
hasAdoptedProvisions(instanceId: string): Promise<boolean>;
|
|
285
246
|
/**
|
|
286
|
-
*
|
|
287
|
-
*
|
|
288
|
-
*
|
|
289
|
-
* delete: an adopted event agent legitimately runs for hours.
|
|
247
|
+
* Event rows either adopted, or past the spawn deadline unadopted. The reaper
|
|
248
|
+
* decides what to tear down; this only narrows the scan. NOT a blanket
|
|
249
|
+
* `spawned_at < cutoff` delete: an adopted event agent can run for hours.
|
|
290
250
|
*/
|
|
291
251
|
listReapCandidates(spawnCutoff: Date): Promise<ReapCandidate[]>;
|
|
292
252
|
upsertAgentJob(snapshot: AgentJobCorrelationSnapshot): Promise<void>;
|
|
@@ -295,45 +255,37 @@ export declare class ScalerStateStore {
|
|
|
295
255
|
upsertReservation(snapshot: ReservationSnapshot): Promise<void>;
|
|
296
256
|
deleteReservation(agentId: string): Promise<void>;
|
|
297
257
|
/**
|
|
298
|
-
* Every
|
|
299
|
-
* counting a peer's reservations against our
|
|
300
|
-
*
|
|
258
|
+
* Every row, whoever holds it. Not for recovery (use
|
|
259
|
+
* `listReservationsForOwner`): counting a peer's reservations against our
|
|
260
|
+
* own caps double-books the cluster.
|
|
301
261
|
*/
|
|
302
262
|
listReservations(): Promise<ReservationSnapshot[]>;
|
|
303
263
|
/**
|
|
304
|
-
*
|
|
305
|
-
*
|
|
306
|
-
* unknown owner and is deliberately not returned to anybody.
|
|
264
|
+
* Scopes recovery to this instance's own usage. A NULL-owner row is
|
|
265
|
+
* deliberately returned to nobody.
|
|
307
266
|
*/
|
|
308
267
|
listReservationsForOwner(instanceId: string): Promise<ReservationSnapshot[]>;
|
|
309
268
|
registerClaim(row: PendingClaimRow): Promise<void>;
|
|
310
269
|
/**
|
|
311
|
-
*
|
|
312
|
-
*
|
|
313
|
-
*
|
|
314
|
-
* same instance or on different ones — can never both mint.
|
|
270
|
+
* Null when the code is unknown, consumed or expired. The UPDATE is the
|
|
271
|
+
* consumption and commits before any mint, so two concurrent claims of one
|
|
272
|
+
* code, on one instance or several, can never both mint.
|
|
315
273
|
*/
|
|
316
274
|
redeemClaim(claimHash: string): Promise<RedeemedClaim | null>;
|
|
317
|
-
/**
|
|
318
|
-
* Why a redeem failed. Called ONLY on the failure path, so the happy path
|
|
319
|
-
* stays one round trip.
|
|
320
|
-
*/
|
|
275
|
+
/** Why a redeem failed; called ONLY on failure, so the happy path stays one round trip. */
|
|
321
276
|
describeClaim(claimHash: string): Promise<{
|
|
322
277
|
consumed: boolean;
|
|
323
278
|
expired: boolean;
|
|
324
279
|
} | null>;
|
|
325
280
|
invalidateClaimsForAgent(agentId: string): Promise<void>;
|
|
326
281
|
/**
|
|
327
|
-
* Delete every claim whose `expires_at`
|
|
328
|
-
* many rows went.
|
|
282
|
+
* Delete every claim whose `expires_at` is before `cutoff`; returns rows deleted.
|
|
329
283
|
*
|
|
330
284
|
* Nothing else removes a claim on a timer: `redeemClaim` only marks
|
|
331
285
|
* `consumed_at`, and `invalidateClaimsForAgent` runs on a teardown path a
|
|
332
|
-
* stranded provision never reaches
|
|
333
|
-
*
|
|
334
|
-
*
|
|
335
|
-
* then sits in the table forever. Purging on `expires_at` covers both,
|
|
336
|
-
* consumed or not, because an expired claim can never be redeemed again.
|
|
286
|
+
* stranded provision never reaches (a registration unwound after the claim
|
|
287
|
+
* was written, or the tearing-down coordinator crashed first). An expired
|
|
288
|
+
* claim can never be redeemed, so purging covers both, consumed or not.
|
|
337
289
|
*
|
|
338
290
|
* The caller subtracts a retention grace from now, so `describeClaim` can
|
|
339
291
|
* still tell a late redeemer "expired" rather than "unknown code" for a while
|
|
@@ -343,69 +295,55 @@ export declare class ScalerStateStore {
|
|
|
343
295
|
/**
|
|
344
296
|
* Record the reaper's teardown verdict for one provision.
|
|
345
297
|
*
|
|
346
|
-
*
|
|
347
|
-
*
|
|
348
|
-
*
|
|
349
|
-
* healthy provision as a failed one — the exact misattribution this table
|
|
350
|
-
* exists to remove.
|
|
298
|
+
* Writes only the `condemned_*` columns: a `heartbeat-timeout` condemns a
|
|
299
|
+
* provision that WAS adopted, and clearing the adoption would make the
|
|
300
|
+
* stale-spawn prune report a healthy provision as failed.
|
|
351
301
|
*
|
|
352
|
-
* Called only once the teardown was
|
|
353
|
-
*
|
|
354
|
-
* no verdict yet to record.
|
|
302
|
+
* Called only once the teardown was delivered; an emit that reached nobody
|
|
303
|
+
* leaves the spawn row for the reaper to retry, so there is no verdict yet.
|
|
355
304
|
*
|
|
356
|
-
*
|
|
357
|
-
*
|
|
358
|
-
*
|
|
359
|
-
* is the only surviving account of what became of a provision once the spawn
|
|
360
|
-
* row is gone — which is what an operator investigating a torn-down
|
|
361
|
-
* provision reads it for.
|
|
305
|
+
* `condemned_*` is forensic, with no production reader (`provisionAdopter`
|
|
306
|
+
* reads `adopted_by` alone): once the spawn row is gone, this row is the only
|
|
307
|
+
* account an operator has of what became of a torn-down provision.
|
|
362
308
|
*/
|
|
363
309
|
recordProvisionCondemned(agentId: string, scalerName: string, reason: string): Promise<void>;
|
|
364
310
|
/**
|
|
365
311
|
* Delete outcome rows that can no longer be asked about; returns rows deleted.
|
|
366
312
|
*
|
|
367
|
-
*
|
|
368
|
-
*
|
|
369
|
-
*
|
|
370
|
-
* it
|
|
371
|
-
*
|
|
372
|
-
* spawn row is gone, nothing can rehydrate an entry for it, and the caller's
|
|
373
|
-
* retention floor covers the one prune window still in flight.
|
|
313
|
+
* The cutoff alone is not safe: a spawning entry rehydrated by recovery is
|
|
314
|
+
* immediately stale, so it asks about its provision on the next prune however
|
|
315
|
+
* old the provision is. So the outcome stays while the spawn row exists; once
|
|
316
|
+
* it is gone nothing can rehydrate an entry, and the caller's retention floor
|
|
317
|
+
* covers the one prune window still in flight.
|
|
374
318
|
*
|
|
375
319
|
* Backed by `idx_scaler_provision_outcomes_updated_at`.
|
|
376
320
|
*/
|
|
377
321
|
purgeProvisionOutcomes(cutoff: Date): Promise<number>;
|
|
378
322
|
}
|
|
379
323
|
/**
|
|
380
|
-
*
|
|
381
|
-
* state from the DB after a
|
|
382
|
-
*
|
|
383
|
-
*
|
|
384
|
-
* `eventBuffer` Map is intentionally not persisted — but the field
|
|
385
|
-
* exists so a future buffer-table addition is type-compatible.
|
|
324
|
+
* Kept here, not in manager.ts, so `recoverState()` can declare a clean return
|
|
325
|
+
* type. Result of `ScalerManager.recoverState()` replaying state from the DB after a
|
|
326
|
+
* leader switch. `bufferedEventsLost` is always 0 (the `eventBuffer` Map is not
|
|
327
|
+
* persisted); the field keeps a future buffer table type-compatible.
|
|
386
328
|
*/
|
|
387
329
|
export interface ScalerStateRecovery {
|
|
388
330
|
spawningAgentsRehydrated: number;
|
|
389
331
|
/**
|
|
390
332
|
* Spawn rows released during recovery because their backend is local
|
|
391
333
|
* (container / firecracker / bare-metal): such a spawn cannot outlive the
|
|
392
|
-
* process that started it,
|
|
393
|
-
*
|
|
334
|
+
* process that started it, and rehydrating it would hold its reservation
|
|
335
|
+
* until the stale prune.
|
|
394
336
|
*/
|
|
395
337
|
spawningDropped: number;
|
|
396
338
|
agentJobsRehydrated: number;
|
|
397
339
|
reservationsRehydrated: number;
|
|
398
340
|
/**
|
|
399
|
-
* Reservation rows
|
|
400
|
-
*
|
|
401
|
-
* deployment carrying orphaned rows says so on every boot until it is clean.
|
|
341
|
+
* Reservation rows no rehydrated spawn backs, discarded during recovery;
|
|
342
|
+
* counted apart so a deployment with orphaned rows says so on every boot.
|
|
402
343
|
*/
|
|
403
344
|
reservationsDropped: number;
|
|
404
345
|
bufferedEventsLost: number;
|
|
405
346
|
}
|
|
406
|
-
/**
|
|
407
|
-
* Re-export for the buffered-events note above; sole reason
|
|
408
|
-
* `ScalerEvent` is imported is to keep that comment compile-checked.
|
|
409
|
-
*/
|
|
347
|
+
/** Keeps the `ScalerEvent` import, and the buffered-events note, compile-checked. */
|
|
410
348
|
export type { ScalerEvent };
|
|
411
349
|
//# sourceMappingURL=scaler-state-store.d.ts.map
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Errors a scaler backend's `spawn()` throws to tell the manager how to treat
|
|
3
|
-
* the failure.
|
|
4
|
-
*/
|
|
1
|
+
/** Errors a scaler backend's `spawn()` throws to tell the manager how to treat the failure. */
|
|
5
2
|
/**
|
|
6
3
|
* A spawn the host refused outright. Retrying cannot succeed until an operator
|
|
7
4
|
* changes something — the binary path, the label set's env — so the manager
|
|
@@ -3,10 +3,9 @@ import type { ScalerBackend } from './types.js';
|
|
|
3
3
|
* Reap each container and Firecracker backend's orphans once, and start the
|
|
4
4
|
* Firecracker periodic sweep. A failure is logged and never stops startup.
|
|
5
5
|
*
|
|
6
|
-
* The periodic sweep
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* for as long as the process stays up.
|
|
6
|
+
* The periodic sweep reclaims a VM chroot, TAP or IP a failed spawn could not
|
|
7
|
+
* remove (the jailer already took the chroot, or the removal raced the jailer);
|
|
8
|
+
* startup-only cleanup would let those accumulate while the process runs.
|
|
10
9
|
*/
|
|
11
10
|
export declare function reapOrphansAtStartup(backends: ReadonlyArray<{
|
|
12
11
|
name: string;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The scaler tools check the orchestrator runs at startup, before it builds
|
|
3
|
+
* any scaler backend.
|
|
4
|
+
*/
|
|
5
|
+
import type { ScalerEntry } from './types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Why the configured scalers cannot run on this host, as one message for the
|
|
8
|
+
* startup log, or null when every required tool is present.
|
|
9
|
+
*
|
|
10
|
+
* A bare-metal `binaryPath` that is a version-manager shim passes the
|
|
11
|
+
* executable check, so it is refused on its own. When a bare-metal
|
|
12
|
+
* `binaryPath` fails, the message names the `kici-agent` installed with this
|
|
13
|
+
* orchestrator's runtime: a path into another Node.js runtime or through a
|
|
14
|
+
* shim is the usual cause.
|
|
15
|
+
*/
|
|
16
|
+
export declare function scalerStartupToolsFailure(entries: ScalerEntry[], runtime: {
|
|
17
|
+
entryPath: string | undefined;
|
|
18
|
+
execPath: string;
|
|
19
|
+
windows: boolean;
|
|
20
|
+
}): string | null;
|
|
21
|
+
//# sourceMappingURL=startup-tools-check.d.ts.map
|