@kici-dev/orchestrator 0.16.0 → 0.18.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 +121 -233
- 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 +39 -45
- 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 +33 -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 +7 -7
- 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 +33 -59
- 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 +4553 -6556
- 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 +143 -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 +251 -486
- 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 +289 -525
- 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 +65 -151
- 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 +21 -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 +21 -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 +19 -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 +45 -0
- 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/test-direct.d.ts +46 -0
- package/dist/routes/uploads.d.ts +14 -19
- 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 +28 -45
- 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 +10 -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 +46 -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 +5 -7
- package/dist/secrets/routing-key-scope.d.ts +1 -0
- 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 +1 -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 +49004 -53782
- 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 +9342 -13077
- 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 +26 -53
- package/dist/storage/sign-url.d.ts +7 -22
- package/dist/storage/types.d.ts +46 -72
- 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 +7 -10
- 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/observer-registry.d.ts +14 -59
- package/dist/ws/ownership-gate.d.ts +1 -1
- package/dist/ws/platform-client.d.ts +21 -30
- 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 +46 -63
- 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
- package/dist/scaler/container-spawn.d.ts +0 -28
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Durable job-to-agent bindings
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* live-VM tracking: a VM whose agent holds a non-terminal job is tracked, even
|
|
6
|
-
* when the node that runs the VM has lost every in-memory trace of it.
|
|
2
|
+
* Durable job-to-agent bindings from the coordinator's dispatch queue: the coordinator's half
|
|
3
|
+
* of live-VM tracking (a worker has no database). A VM whose agent holds a non-terminal job is
|
|
4
|
+
* tracked even when its node has lost every in-memory trace of it.
|
|
7
5
|
*/
|
|
8
6
|
import type { Kysely } from 'kysely';
|
|
9
7
|
import type { Database } from '../db/types.js';
|
|
10
8
|
/**
|
|
11
|
-
* The non-terminal job each of `agentIds` holds
|
|
12
|
-
*
|
|
13
|
-
* reconnect (`recovery_agent_id`). The value is the job id the queue
|
|
14
|
-
* dispatches by, `dispatch_queue.id`.
|
|
9
|
+
* The non-terminal job (`dispatch_queue.id`) each of `agentIds` holds: one it was dispatched
|
|
10
|
+
* (`agent_id`) or one waiting for it to reconnect (`recovery_agent_id`).
|
|
15
11
|
*/
|
|
16
12
|
export declare function findActiveJobBindings(db: Kysely<Database>, agentIds: readonly string[]): Promise<Map<string, string>>;
|
|
17
13
|
//# sourceMappingURL=vm-job-bindings.d.ts.map
|
|
@@ -1,69 +1,51 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Warm pool manager for pre-provisioned idle agents.
|
|
3
3
|
*
|
|
4
|
-
* Each configured label set has a target `size`.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* single source of truth for what is ready, which is also what the dispatcher
|
|
9
|
-
* reads, so the two can never disagree.
|
|
4
|
+
* Each configured label set has a target `size`. Every tick the manager starts
|
|
5
|
+
* `size - ready - inFlight` agents, where `ready` comes from the agent registry.
|
|
6
|
+
* It holds no list of its own: the registry is the single source of truth for
|
|
7
|
+
* what is ready, and the dispatcher reads it too, so the two never disagree.
|
|
10
8
|
*
|
|
11
|
-
*
|
|
9
|
+
* Callbacks avoid a circular dependency with ScalerManager.
|
|
12
10
|
*/
|
|
13
11
|
export interface WarmPoolCallbacks {
|
|
14
|
-
/** Request the ScalerManager to spawn a new agent for the given label set */
|
|
15
12
|
onSpawnRequest: (labelSet: string[], backendName: string) => Promise<void>;
|
|
16
|
-
/** Request the ScalerManager to destroy an idle agent */
|
|
17
13
|
onDestroyRequest: (managedId: string, backendName: string) => Promise<void>;
|
|
18
14
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* about what "ready" means.
|
|
23
|
-
*
|
|
24
|
-
* A static agent that matches the labels counts: it removes the need for a
|
|
25
|
-
* warm one just as well as a spawned agent does.
|
|
15
|
+
* Registered agents that could serve a job with this label set now, via
|
|
16
|
+
* `AgentRegistry.findAvailable` — the dispatcher's own query. A matching
|
|
17
|
+
* static agent counts: it removes the need for a warm one just as well.
|
|
26
18
|
*/
|
|
27
19
|
countAvailable: (labels: string[]) => number;
|
|
28
20
|
/**
|
|
29
21
|
* Agents this backend spawned that match the label set and have never run a
|
|
30
|
-
* job
|
|
31
|
-
* "idle since": scaler agents are single-use, so an agent still registered
|
|
32
|
-
* with no active job has been idle since it came up.
|
|
22
|
+
* job. `registeredAt` doubles as "idle since": scaler agents are single-use.
|
|
33
23
|
*
|
|
34
|
-
* Scoped to the backend because the
|
|
35
|
-
*
|
|
36
|
-
* is ready capacity, not this pool's to tear down.
|
|
24
|
+
* Scoped to the backend because the reaper destroys what it is given; a
|
|
25
|
+
* matching static agent is ready capacity, not this pool's to tear down.
|
|
37
26
|
*/
|
|
38
27
|
listIdle: (labels: string[], backendName: string) => Array<{
|
|
39
28
|
agentId: string;
|
|
40
29
|
registeredAt: number;
|
|
41
30
|
}>;
|
|
42
31
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
* target stops asking instead of issuing a spawn the caps refuse every tick.
|
|
32
|
+
* Headroom before the scaler's `maxAgents` or the orchestrator's
|
|
33
|
+
* `globalMaxAgents`, whichever binds first. The deficit is clamped to it, so
|
|
34
|
+
* a pool that cannot reach its target stops issuing spawns the caps refuse.
|
|
47
35
|
*/
|
|
48
36
|
capacityRemaining: (backendName: string) => number;
|
|
49
37
|
/**
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
* follow the pool rather than the scrape.
|
|
38
|
+
* Runs after each tick's reap and deficit pass; the ScalerManager publishes
|
|
39
|
+
* the warm-pool gauges from it, so they follow the pool rather than the scrape.
|
|
53
40
|
*/
|
|
54
41
|
onTick?: () => void;
|
|
55
42
|
}
|
|
56
|
-
/** One label set's fill state, as the warm-pool metrics report it. */
|
|
57
43
|
export interface WarmPoolStats {
|
|
58
44
|
/**
|
|
59
|
-
* The
|
|
60
|
-
* `
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
* pools on one scaler can widen to the SAME query set (one label set
|
|
64
|
-
* declaring the plain platform label the other only gets from the taint), so
|
|
65
|
-
* a dimension built from `labels` collapses them into one series and silently
|
|
66
|
-
* drops a pool's fill state.
|
|
45
|
+
* The normalized DECLARED label set (the `configs` key). Per-pool metric
|
|
46
|
+
* dimensions key on this, not `labels`: two pools on one scaler can widen to
|
|
47
|
+
* the SAME query set (one declares the platform label the other gets from the
|
|
48
|
+
* taint), and keying on `labels` would silently drop a pool's fill state.
|
|
67
49
|
*/
|
|
68
50
|
key: string;
|
|
69
51
|
/** The widened query set the `ready` count was measured with. */
|
|
@@ -75,22 +57,16 @@ export interface WarmPoolStats {
|
|
|
75
57
|
}
|
|
76
58
|
export declare class WarmPoolManager {
|
|
77
59
|
private readonly callbacks;
|
|
78
|
-
/** Configuration per normalized label set */
|
|
79
60
|
private readonly configs;
|
|
80
61
|
/**
|
|
81
62
|
* Warm spawns issued but not yet registered, per normalized label set.
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
* registers would each see the full deficit and issue `size` spawns apiece.
|
|
63
|
+
* Without it, two passes before the first spawn registers would each issue
|
|
64
|
+
* `size` spawns.
|
|
85
65
|
*/
|
|
86
66
|
private readonly inFlight;
|
|
87
|
-
/** Periodic deficit + idle check interval */
|
|
88
67
|
private idleCheckInterval;
|
|
89
68
|
constructor(callbacks: WarmPoolCallbacks);
|
|
90
69
|
/**
|
|
91
|
-
* Configure the warm pool for a label set.
|
|
92
|
-
* Called during ScalerManager initialization based on YAML config.
|
|
93
|
-
*
|
|
94
70
|
* `normalizedLabels` keys the pool by its DECLARED label set, which is what
|
|
95
71
|
* every in-flight release path normalizes back to.
|
|
96
72
|
*/
|
|
@@ -101,52 +77,36 @@ export declare class WarmPoolManager {
|
|
|
101
77
|
spawnLabels: string[];
|
|
102
78
|
}): void;
|
|
103
79
|
/**
|
|
104
|
-
* One deficit pass.
|
|
105
|
-
*
|
|
106
|
-
* headroom.
|
|
107
|
-
*
|
|
108
|
-
* The per-backend budget is tracked across the whole pass: two label sets on
|
|
109
|
-
* one scaler draw from the same `maxAgents`, so clamping each against the
|
|
110
|
-
* same starting headroom would let them jointly overshoot it.
|
|
80
|
+
* One deficit pass. The per-backend budget spans the whole pass: two label
|
|
81
|
+
* sets on one scaler draw from the same `maxAgents`, so clamping each against
|
|
82
|
+
* the same starting headroom would let them jointly overshoot it.
|
|
111
83
|
*/
|
|
112
84
|
evaluate(): void;
|
|
113
|
-
/** A warm spawn registered: release its in-flight slot. */
|
|
114
85
|
onWarmAgentRegistered(labels: string[]): void;
|
|
115
86
|
/**
|
|
116
87
|
* A warm spawn failed, timed out, or was pruned as never-registered: release
|
|
117
|
-
* its in-flight slot so the next pass retries it.
|
|
118
|
-
* held forever and the pool sits permanently below target.
|
|
88
|
+
* its in-flight slot so the next pass retries it.
|
|
119
89
|
*/
|
|
120
90
|
onWarmSpawnFailed(labels: string[]): void;
|
|
121
91
|
private releaseInFlight;
|
|
122
|
-
/** Per-label-set fill state, for the warm-pool metrics. */
|
|
123
92
|
getStats(): WarmPoolStats[];
|
|
124
93
|
/**
|
|
125
|
-
* Start the periodic tick: reap surplus agents
|
|
126
|
-
* top the pools back up.
|
|
94
|
+
* Start the periodic tick: reap surplus idle agents, then top the pools up.
|
|
127
95
|
*
|
|
128
|
-
* The first pass runs immediately
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
* cold start it exists to remove.
|
|
96
|
+
* The first pass runs immediately: waiting a tick would leave the pool empty
|
|
97
|
+
* for 30 seconds after every restart, the cold start it exists to remove. It
|
|
98
|
+
* is safe because the one caller, `ScalerManager.startWarmPools()`, runs only
|
|
99
|
+
* after `ensureHostsReady()` and, on the coordinator, after the event emitter
|
|
100
|
+
* is assigned.
|
|
134
101
|
*/
|
|
135
102
|
start(): void;
|
|
136
|
-
/**
|
|
137
|
-
* Stop the periodic tick.
|
|
138
|
-
*/
|
|
139
103
|
stop(): void;
|
|
140
|
-
/**
|
|
141
|
-
* Total ready agents across every configured pool. Surfaced by
|
|
142
|
-
* `getStatus().warmPoolCount`.
|
|
143
|
-
*/
|
|
104
|
+
/** Ready agents across every pool; surfaced by `getStatus().warmPoolCount`. */
|
|
144
105
|
getTotalPoolSize(): number;
|
|
145
106
|
/**
|
|
146
|
-
*
|
|
147
|
-
*
|
|
148
|
-
*
|
|
149
|
-
* outlive the config that asked for it.
|
|
107
|
+
* Destroy surplus agents in pools that shrunk, and drop pools whose config
|
|
108
|
+
* disappeared (scaler removed, or `warmPool.enabled` set to false) — a warm
|
|
109
|
+
* agent must not outlive the config that asked for it.
|
|
150
110
|
*/
|
|
151
111
|
reload(newConfigs: Map<string, {
|
|
152
112
|
backendName: string;
|
|
@@ -156,28 +116,21 @@ export declare class WarmPoolManager {
|
|
|
156
116
|
spawnLabels: string[];
|
|
157
117
|
}>): void;
|
|
158
118
|
/**
|
|
159
|
-
* Destroy this pool's idle agents beyond `keep`, oldest first
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
* before the idle reaper takes them, which is the set an arriving job is
|
|
163
|
-
* most likely to find still ready.
|
|
119
|
+
* Destroy this pool's idle agents beyond `keep`, oldest first: the survivors
|
|
120
|
+
* have the most time left before the idle reaper, so an arriving job is most
|
|
121
|
+
* likely to find them still ready.
|
|
164
122
|
*/
|
|
165
123
|
private destroyIdle;
|
|
166
124
|
/**
|
|
167
125
|
* Destroy agents that are BOTH surplus to the pool's target AND idle past
|
|
168
|
-
* its timeout
|
|
169
|
-
* single-use, so an agent still registered with no active job has never run
|
|
170
|
-
* one.
|
|
171
|
-
*
|
|
172
|
-
* The target check is what stops the pool churning against itself. Reaping
|
|
173
|
-
* on age alone means a quiet pool destroys its own agent every
|
|
174
|
-
* `idleTimeoutSeconds` and immediately re-spawns it: the provisioning
|
|
175
|
-
* workflow runs forever on zero traffic, and — because an event-backend
|
|
176
|
-
* replacement takes minutes to boot — the pool is below target for much of
|
|
177
|
-
* every cycle. A warm pool that is cold most of the time is worse than none.
|
|
178
|
-
* So the timeout trims surplus only: a pool sitting at `size` never reaps.
|
|
126
|
+
* its timeout (`registeredAt` is the idle-since stamp).
|
|
179
127
|
*
|
|
180
|
-
*
|
|
128
|
+
* The target check stops the pool churning against itself. Reaping on age
|
|
129
|
+
* alone makes a quiet pool destroy and re-spawn its agent every
|
|
130
|
+
* `idleTimeoutSeconds`: the provisioning workflow runs forever on zero
|
|
131
|
+
* traffic, and since an event-backend replacement takes minutes to boot, the
|
|
132
|
+
* pool is below target for much of every cycle. So a pool at `size` never
|
|
133
|
+
* reaps; `size: 0` still drains, since every ready agent is then surplus.
|
|
181
134
|
*
|
|
182
135
|
* Exposed for testing.
|
|
183
136
|
*/
|
|
@@ -35,14 +35,11 @@ export declare class AuditLogger {
|
|
|
35
35
|
* `deleteSecret`, the scope writes, `rotateKey`, `secret-outputs.reveal`) bypass the
|
|
36
36
|
* sampler — they are transactional with the mutation and must always
|
|
37
37
|
* land.
|
|
38
|
-
*
|
|
39
|
-
* @param entry - The audit entry to record.
|
|
40
38
|
*/
|
|
41
39
|
log(entry: AuditEntry): Promise<void>;
|
|
42
40
|
/**
|
|
43
41
|
* Query audit log entries with optional filters.
|
|
44
42
|
*
|
|
45
|
-
* @param opts - Query filters and pagination.
|
|
46
43
|
* @returns Matching audit log rows ordered by timestamp descending.
|
|
47
44
|
*/
|
|
48
45
|
query(opts: {
|
|
@@ -27,13 +27,7 @@ export declare class BackendHealthChecker {
|
|
|
27
27
|
* Check health of all enabled backends in parallel.
|
|
28
28
|
*/
|
|
29
29
|
checkAllBackends(): Promise<Map<string, BackendHealthStatus>>;
|
|
30
|
-
/**
|
|
31
|
-
* Start periodic health checks at the given interval.
|
|
32
|
-
*/
|
|
33
30
|
startPeriodicCheck(intervalMs?: number): void;
|
|
34
|
-
/**
|
|
35
|
-
* Stop periodic health checks.
|
|
36
|
-
*/
|
|
37
31
|
stopPeriodicCheck(): void;
|
|
38
32
|
/**
|
|
39
33
|
* Test connectivity to a backend without persisting it.
|
|
@@ -44,9 +38,6 @@ export declare class BackendHealthChecker {
|
|
|
44
38
|
error?: string;
|
|
45
39
|
latencyMs: number;
|
|
46
40
|
}>;
|
|
47
|
-
/**
|
|
48
|
-
* Probe a backend by type and return its health status.
|
|
49
|
-
*/
|
|
50
41
|
private probeBackend;
|
|
51
42
|
/**
|
|
52
43
|
* Probe a PG backend by running SELECT 1.
|
|
@@ -71,17 +71,8 @@ export declare class BackendRegistry {
|
|
|
71
71
|
* Returns a map of backend name to SecretStore.
|
|
72
72
|
*/
|
|
73
73
|
loadAllStores(auditLogger: AuditLogger): Promise<Map<string, SecretStore>>;
|
|
74
|
-
/**
|
|
75
|
-
* Create a SecretStore for a given backend type and config.
|
|
76
|
-
*/
|
|
77
74
|
createStoreForBackend(backendType: BackendType, config: Record<string, unknown>, auditLogger: AuditLogger): SecretStore | null;
|
|
78
|
-
/**
|
|
79
|
-
* Update health status for a backend.
|
|
80
|
-
*/
|
|
81
75
|
updateHealthStatus(name: string, status: BackendHealthStatus, error?: string): Promise<void>;
|
|
82
|
-
/**
|
|
83
|
-
* Update sync status for a backend.
|
|
84
|
-
*/
|
|
85
76
|
updateSyncStatus(name: string, scopeCount: number, error?: string): Promise<void>;
|
|
86
77
|
/**
|
|
87
78
|
* Re-encrypt every non-sentinel backend config under the current master key
|
|
@@ -12,7 +12,6 @@ export interface SecretCleanupDeps {
|
|
|
12
12
|
db: Kysely<Database>;
|
|
13
13
|
/** Max age in hours before rows are considered orphaned. Default: 24 */
|
|
14
14
|
maxAgeHours?: number;
|
|
15
|
-
/** Optional logger for cleanup messages */
|
|
16
15
|
logger?: {
|
|
17
16
|
info(msg: string, meta?: Record<string, unknown>): void;
|
|
18
17
|
warn(msg: string, meta?: Record<string, unknown>): void;
|
package/dist/secrets/config.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/** AAD string used when encrypting/decrypting private keys with secret key. */
|
|
2
1
|
/** AAD binding a wrapped run private key to its purpose (AES-GCM authenticated data). */
|
|
3
2
|
export declare const PRIVATE_KEY_AAD = "ephemeral-private-key";
|
|
4
3
|
/**
|
|
@@ -46,7 +45,6 @@ export declare function decryptPrivateKey(encryptedData: string, secretKey: stri
|
|
|
46
45
|
*
|
|
47
46
|
* @param envelope - { agentPublicKey: base64, encrypted: base64 (IV||AuthTag||Ciphertext) }
|
|
48
47
|
* @param runPrivateKeyDer - DER-encoded run private key Buffer
|
|
49
|
-
* @returns Decrypted plaintext string
|
|
50
48
|
*/
|
|
51
49
|
export declare function decryptSecretOutput(envelope: {
|
|
52
50
|
agentPublicKey: string;
|
|
@@ -62,7 +60,6 @@ export declare function decryptSecretOutput(envelope: {
|
|
|
62
60
|
*
|
|
63
61
|
* @param envelope - `{ ephemeralPublicKey: base64 DER-SPKI, encrypted: base64 IV||tag||ct }`
|
|
64
62
|
* @param encryptionPrivateKeyDer - DER-encoded orchestrator X25519 private key
|
|
65
|
-
* @returns Decrypted plaintext string
|
|
66
63
|
*/
|
|
67
64
|
export declare function decryptDashboardSealedWrite(envelope: {
|
|
68
65
|
ephemeralPublicKey: string;
|
|
@@ -85,9 +85,6 @@ export declare class PgSecretStore implements SecretStore {
|
|
|
85
85
|
* keeps a key stored before this rule readable and deletable.
|
|
86
86
|
*/
|
|
87
87
|
setSecret(orgId: string, scope: string, key: string, value: string): Promise<void>;
|
|
88
|
-
/**
|
|
89
|
-
* Delete a secret from a scope.
|
|
90
|
-
*/
|
|
91
88
|
deleteSecret(orgId: string, scope: string, key: string): Promise<void>;
|
|
92
89
|
/**
|
|
93
90
|
* List all secret key names in a scope (no values returned).
|
package/dist/secrets/rbac.d.ts
CHANGED
|
@@ -23,10 +23,11 @@ export type Permission = 'context.create' | 'context.read' | 'context.update' |
|
|
|
23
23
|
/** Stop live Firecracker VMs the node's orchestrator does not track. */
|
|
24
24
|
| 'scaler.manage'
|
|
25
25
|
/** Drop a departed peer from the coordinators' live peer registries. */
|
|
26
|
-
| 'peer.manage'
|
|
27
|
-
/**
|
|
28
|
-
|
|
29
|
-
*/
|
|
26
|
+
| 'peer.manage'
|
|
27
|
+
/** Start or cancel a `kici run remote` test run through the direct test-run routes. */
|
|
28
|
+
| 'test_run.trigger'
|
|
29
|
+
/** Follow a test run's status and logs through the direct test-run routes. */
|
|
30
|
+
| 'test_run.read';
|
|
30
31
|
export declare class PermissionDeniedError extends Error {
|
|
31
32
|
readonly role: Role;
|
|
32
33
|
readonly permission: Permission;
|
|
@@ -39,9 +40,6 @@ export declare class PermissionDeniedError extends Error {
|
|
|
39
40
|
* No database or external state -- purely in-memory evaluation.
|
|
40
41
|
*/
|
|
41
42
|
export declare class RbacEnforcer {
|
|
42
|
-
/**
|
|
43
|
-
* Check whether a role has a specific permission.
|
|
44
|
-
*/
|
|
45
43
|
hasPermission(role: Role, permission: Permission): boolean;
|
|
46
44
|
/**
|
|
47
45
|
* Require a permission, throwing PermissionDeniedError if not authorized.
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
* they use `requireUnscopedToken` instead.
|
|
26
26
|
*/
|
|
27
27
|
import type { Context } from 'hono';
|
|
28
|
+
export declare const UNSCOPED_REQUIRED_MESSAGE = "Access denied: this route requires an unscoped admin token (the calling token is restricted to a single routing key)";
|
|
28
29
|
/**
|
|
29
30
|
* Reject the request with 403 when the calling token has a routing-key
|
|
30
31
|
* scope and the request targets a different routing key.
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Secret output store for cross-job secret output CRUD.
|
|
3
|
-
*
|
|
4
|
-
* Provides typed operations against the run_secret_outputs table:
|
|
5
|
-
* - Upsert encrypted secret outputs (per run/job/key)
|
|
6
|
-
* - Retrieve outputs for a specific job or multiple upstream jobs
|
|
7
|
-
* - Delete all outputs for a run (cleanup)
|
|
8
|
-
* - Delete orphaned outputs older than a threshold (maintenance)
|
|
9
3
|
*/
|
|
10
4
|
import type { Kysely } from 'kysely';
|
|
11
5
|
import type { Database } from '../db/types.js';
|
|
@@ -55,9 +55,6 @@ export interface SecretStoreLike {
|
|
|
55
55
|
decrypt(secret: ScopedSecret): string;
|
|
56
56
|
getSecrets(orgId: string, scope: string): Promise<Record<string, string>>;
|
|
57
57
|
}
|
|
58
|
-
/**
|
|
59
|
-
* Dependencies for the SecretResolver.
|
|
60
|
-
*/
|
|
61
58
|
export interface SecretResolverDeps {
|
|
62
59
|
bindingStore: BindingStoreLike;
|
|
63
60
|
/** Map of backend name to store. Replaces single secretStore. */
|
|
@@ -114,7 +111,6 @@ export declare class SecretResolver implements SecretResolverApi {
|
|
|
114
111
|
/**
|
|
115
112
|
* Resolve secrets for a job dispatch.
|
|
116
113
|
*
|
|
117
|
-
* @param orgId - Organization ID
|
|
118
114
|
* @param context - The matched context row and the name the job declared
|
|
119
115
|
* @param hostCtx - Optional fan-out child identity for per-host resolution.
|
|
120
116
|
* When supplied, each binding is gated by its `host_pattern` and its
|
|
@@ -160,14 +156,14 @@ export declare class SecretResolver implements SecretResolverApi {
|
|
|
160
156
|
/** How many scope bindings the context row `contextId` has. */
|
|
161
157
|
countContextBindings(contextId: string): Promise<number>;
|
|
162
158
|
/**
|
|
163
|
-
* Resolve secrets with metadata (
|
|
159
|
+
* Resolve secrets with metadata (for secrets.getMeta).
|
|
164
160
|
*
|
|
165
161
|
* Returns the secret value along with which backend and scope provided it.
|
|
166
162
|
*/
|
|
167
163
|
resolveForContextWithMeta(orgId: string, context: MatchedContextRef, hostCtx?: HostFacts): Promise<Record<string, ResolvedSecretMeta>>;
|
|
168
164
|
/**
|
|
169
165
|
* Collect all secrets from all backend stores, prefixing scopes.
|
|
170
|
-
*
|
|
166
|
+
* Unreachable backends are tracked but not fatal here.
|
|
171
167
|
* Callers apply scoped failure policy based on job bindings.
|
|
172
168
|
*/
|
|
173
169
|
private collectAllSecrets;
|
|
@@ -32,7 +32,6 @@ export declare class TokenManager {
|
|
|
32
32
|
*
|
|
33
33
|
* On success, fires a non-blocking update to last_used_at.
|
|
34
34
|
*
|
|
35
|
-
* @param token - The plaintext token to validate.
|
|
36
35
|
* @returns Token info if valid, null if invalid/expired/revoked.
|
|
37
36
|
*/
|
|
38
37
|
validate(token: string): Promise<{
|
|
@@ -40,10 +39,8 @@ export declare class TokenManager {
|
|
|
40
39
|
role: Role;
|
|
41
40
|
routingKey: string | null;
|
|
42
41
|
label: string;
|
|
42
|
+
subject: string | null;
|
|
43
43
|
} | null>;
|
|
44
|
-
/**
|
|
45
|
-
* Revoke a token by ID.
|
|
46
|
-
*/
|
|
47
44
|
revokeToken(tokenId: string): Promise<void>;
|
|
48
45
|
/**
|
|
49
46
|
* List all tokens (excluding hash for security).
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import type { SecretStore } from '@kici-dev/engine';
|
|
2
2
|
import type { Logger } from '@kici-dev/shared';
|
|
3
|
-
/**
|
|
4
|
-
* Configuration for the Vault secret store backend.
|
|
5
|
-
*/
|
|
6
3
|
export interface VaultConfig {
|
|
7
4
|
/** Vault server URL (e.g., 'http://vault:8200'). */
|
|
8
5
|
vaultUrl: string;
|
|
9
|
-
/** Authentication method. */
|
|
10
6
|
authMethod: 'approle' | 'token';
|
|
11
7
|
/** AppRole role ID (required for 'approle' auth). */
|
|
12
8
|
roleId?: string;
|
|
@@ -45,9 +41,6 @@ export declare class VaultSecretStore implements SecretStore {
|
|
|
45
41
|
private authenticate;
|
|
46
42
|
private getToken;
|
|
47
43
|
private withRetry;
|
|
48
|
-
/**
|
|
49
|
-
* Build the full Vault path for a scoped secret.
|
|
50
|
-
*/
|
|
51
44
|
private secretPath;
|
|
52
45
|
/**
|
|
53
46
|
* Get all secrets for a scope as key-value pairs.
|
|
@@ -57,13 +50,7 @@ export declare class VaultSecretStore implements SecretStore {
|
|
|
57
50
|
* Set (create or update) a secret in a scope.
|
|
58
51
|
*/
|
|
59
52
|
setSecret(orgId: string, scope: string, key: string, value: string): Promise<void>;
|
|
60
|
-
/**
|
|
61
|
-
* Delete a secret key from a scope.
|
|
62
|
-
*/
|
|
63
53
|
deleteSecret(orgId: string, scope: string, key: string): Promise<void>;
|
|
64
|
-
/**
|
|
65
|
-
* List all secret key names in a scope.
|
|
66
|
-
*/
|
|
67
54
|
listKeys(orgId: string, scope: string): Promise<string[]>;
|
|
68
55
|
/**
|
|
69
56
|
* List all distinct scopes for an org.
|
|
@@ -16,7 +16,6 @@ interface CommentCommand {
|
|
|
16
16
|
/** Optional: specific run to approve/reject. */
|
|
17
17
|
runId?: string;
|
|
18
18
|
}
|
|
19
|
-
/** Parameters for the approval comment handler. */
|
|
20
19
|
export interface HandleApprovalCommentParams {
|
|
21
20
|
commentBody: string;
|
|
22
21
|
commenterUsername: string;
|
|
@@ -76,7 +75,6 @@ export interface HandleApprovalCommentParams {
|
|
|
76
75
|
*/
|
|
77
76
|
onWorkflowReject?: (hold: HeldRun, reason: string) => Promise<boolean>;
|
|
78
77
|
}
|
|
79
|
-
/** Result of handling a comment. */
|
|
80
78
|
interface HandleApprovalResult {
|
|
81
79
|
handled: boolean;
|
|
82
80
|
reason?: string;
|
|
@@ -16,7 +16,7 @@ export interface WorkflowModification {
|
|
|
16
16
|
* Compares workflow names and configurations:
|
|
17
17
|
* - Added: in head but not base
|
|
18
18
|
* - Removed: in base but not head
|
|
19
|
-
* - Modified: in both but triggers, jobs, or
|
|
19
|
+
* - Modified: in both but triggers, jobs (steps included), or rules differ
|
|
20
20
|
*
|
|
21
21
|
* @param baseLockFile - Lock file from the base branch (null for new repos)
|
|
22
22
|
* @param headLockFile - Lock file from the head commit (null means nothing to detect)
|