@kici-dev/orchestrator 0.17.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 +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 +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 +4568 -6571
- 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 +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 +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 +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 +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 +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 +7500 -12629
- 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 +7141 -11957
- 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 +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 +36 -60
- 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
|
@@ -9,20 +9,18 @@ export interface HostRosterReaperOptions {
|
|
|
9
9
|
setUnreachableGauge: (value: number) => void;
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
|
-
* Leader-only host-roster reaper
|
|
13
|
-
*
|
|
14
|
-
* Modeled on `EventRetryScanner`: started/stopped via the Raft leadership
|
|
15
|
-
* callbacks, a single timer cleared on `stop()`. Each leader tick it:
|
|
12
|
+
* Leader-only host-roster reaper, started/stopped via the Raft leadership
|
|
13
|
+
* callbacks like `EventRetryScanner`. Each leader tick it:
|
|
16
14
|
*
|
|
17
15
|
* - DELETEs `ephemeral` host_roster rows whose `last_seen` is older than the ttl
|
|
18
16
|
* (scaled-down autoscale agents — silent GC, no alarm); and
|
|
19
|
-
* -
|
|
20
|
-
*
|
|
21
|
-
*
|
|
17
|
+
* - publishes the count of `static` (declared) hosts whose derived status is
|
|
18
|
+
* `unreachable` to the `kici_orch_declared_hosts_unreachable` gauge, so a
|
|
19
|
+
* Mimir ruler alert can page an operator when a declared box goes dark.
|
|
22
20
|
*
|
|
23
|
-
* `static` unreachability is read-derived by `deriveHostStatus
|
|
24
|
-
*
|
|
25
|
-
*
|
|
21
|
+
* `static` unreachability is read-derived by `deriveHostStatus`, so the reaper
|
|
22
|
+
* never deletes a static row. The gauge series exists only on the leader (the
|
|
23
|
+
* alert uses `max by ()`).
|
|
26
24
|
*/
|
|
27
25
|
export declare class HostRosterReaper {
|
|
28
26
|
private readonly store;
|
|
@@ -17,11 +17,10 @@ export declare const STAGED_AGENT_VERSION_KEY = "kici:staged-agent-version";
|
|
|
17
17
|
export declare function isReservedHostKey(key: string): boolean;
|
|
18
18
|
/**
|
|
19
19
|
* Drop every reserved `kici:` key from an agent-reported host-property bag.
|
|
20
|
-
* Agent
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* `kici-admin host declare`.
|
|
20
|
+
* Agent keys win the roster shallow-merge, and the staged-version convergence
|
|
21
|
+
* gate and the re-stage's SSH restart commands read `kici:` keys, so an agent
|
|
22
|
+
* must never set them. Reserved keys come only from `recordStagedVersion` and
|
|
23
|
+
* a local `kici-admin host declare`.
|
|
25
24
|
*/
|
|
26
25
|
export declare function stripReservedProperties(props: HostProperties): HostProperties;
|
|
27
26
|
/** Who is writing a static host declaration or removal. */
|
|
@@ -65,10 +64,9 @@ export interface DeclareStaticInput {
|
|
|
65
64
|
authority?: HostWriteAuthority;
|
|
66
65
|
}
|
|
67
66
|
/**
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
* (`scope/key`) the orchestrator resolves server-side; the key never lives here.
|
|
67
|
+
* How to SSH to a declared host for bootstrap bring-up before it has an agent.
|
|
68
|
+
* A host with no reach metadata cannot be bootstrapped. `sshKeySecret` is a
|
|
69
|
+
* scoped-secret ref (`scope/key`) resolved server-side; the key never lives here.
|
|
72
70
|
*/
|
|
73
71
|
export interface HostReach {
|
|
74
72
|
agentId: string;
|
|
@@ -77,9 +75,9 @@ export interface HostReach {
|
|
|
77
75
|
sshPort: number | null;
|
|
78
76
|
sshKeySecret: string | null;
|
|
79
77
|
/**
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
78
|
+
* True ⇒ the box reaches the orchestrator's object storage, so bring-up uses
|
|
79
|
+
* `s3-direct` (the box pulls the payload via a presigned URL). NULL / false ⇒
|
|
80
|
+
* the conservative `ssh-push` fallback.
|
|
83
81
|
*/
|
|
84
82
|
s3Reachable: boolean | null;
|
|
85
83
|
}
|
|
@@ -99,19 +97,17 @@ export declare enum HostStatus {
|
|
|
99
97
|
/** The lifecycle class snapshot from the auth token's `agent_type`. */
|
|
100
98
|
export type LifecycleClass = 'static' | 'ephemeral';
|
|
101
99
|
/**
|
|
102
|
-
* A roster host that matched a `runsOnAll` predicate
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
* ephemeral hosts are skipped.
|
|
100
|
+
* A roster host that matched a `runsOnAll` predicate. In the host-fanout
|
|
101
|
+
* resolver, `ready` hosts become pinned children, `unreachable` static hosts
|
|
102
|
+
* get the `onUnreachable` policy, and `stale` ephemeral hosts are skipped.
|
|
106
103
|
*/
|
|
107
104
|
export interface MatchedHost {
|
|
108
105
|
agentId: string;
|
|
109
106
|
/** Canonical hostname; falls back to the raw agentId when the row has none. */
|
|
110
107
|
host: string;
|
|
111
108
|
/**
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
* only place that case would otherwise reach a matcher.
|
|
109
|
+
* Folded on read: a row written before labels were canonicalized keeps the
|
|
110
|
+
* operator's case, and this is the only place it would otherwise reach a matcher.
|
|
115
111
|
*/
|
|
116
112
|
labels: CanonicalLabel[];
|
|
117
113
|
lifecycleClass: LifecycleClass;
|
|
@@ -128,10 +124,9 @@ export interface UpsertHostInput {
|
|
|
128
124
|
tokenId: string | null;
|
|
129
125
|
lifecycleClass: LifecycleClass;
|
|
130
126
|
/**
|
|
131
|
-
* True when an auto-scaler
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
* auth mode is `none`). Omitted ⇒ false.
|
|
127
|
+
* True when an auto-scaler spawned this agent, so `runsOnAll` fan-out skips
|
|
128
|
+
* it. From the scaler manager's registration lookup, never `lifecycleClass`
|
|
129
|
+
* (`ephemeral` for every agent under auth mode `none`). Omitted ⇒ false.
|
|
135
130
|
*/
|
|
136
131
|
scalerManaged?: boolean;
|
|
137
132
|
labels: string[];
|
|
@@ -140,9 +135,8 @@ export interface UpsertHostInput {
|
|
|
140
135
|
arch: string;
|
|
141
136
|
instanceId: string;
|
|
142
137
|
/**
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
* not report are preserved). Omitted ⇒ no change to the stored bag on update,
|
|
138
|
+
* Shallow-merged into the existing bag on conflict: agent keys win, operator
|
|
139
|
+
* keys the agent does not report survive. Omitted ⇒ no change on update,
|
|
146
140
|
* `{}` on insert.
|
|
147
141
|
*/
|
|
148
142
|
properties?: HostProperties;
|
|
@@ -154,30 +148,27 @@ export interface HostStatusRow {
|
|
|
154
148
|
last_seen: Date | string;
|
|
155
149
|
}
|
|
156
150
|
/**
|
|
157
|
-
* The ONE status
|
|
158
|
-
*
|
|
159
|
-
* instance
|
|
160
|
-
*
|
|
161
|
-
* `
|
|
162
|
-
* `unreachable` (the declared-but-absent alarm), a not-live `ephemeral` reads
|
|
163
|
-
* `stale` (scaled down, awaiting reap).
|
|
151
|
+
* The ONE status derivation, shared by the store and the kici-admin host CLI.
|
|
152
|
+
* `ready` needs a connected instance AND a fresh heartbeat (freshness catches a
|
|
153
|
+
* crashed instance that never cleared `connected_instance_id`). A not-live
|
|
154
|
+
* `static` reads `unreachable` (the declared-but-absent alarm); a not-live
|
|
155
|
+
* `ephemeral` reads `stale` (scaled down, awaiting reap).
|
|
164
156
|
*/
|
|
165
157
|
export declare function deriveHostStatus(row: HostStatusRow, nowMs: number, graceMs: number): HostStatus;
|
|
166
158
|
/**
|
|
167
|
-
* Normalize a stored `host_properties` value
|
|
168
|
-
*
|
|
169
|
-
* (defensive for non-pg paths / tests). Non-object / null reads back as `{}`.
|
|
159
|
+
* Normalize a stored `host_properties` value. pg returns parsed `jsonb`; a JSON
|
|
160
|
+
* string is accepted for non-pg paths and tests. Non-object / null reads `{}`.
|
|
170
161
|
*/
|
|
171
162
|
export declare function parseHostProperties(value: unknown): HostProperties;
|
|
172
163
|
/**
|
|
173
164
|
* Durable, cluster-shared roster of every agent the cluster has ever enrolled.
|
|
174
165
|
*
|
|
175
|
-
* The in-memory `AgentRegistry` reconciles into
|
|
176
|
-
*
|
|
177
|
-
*
|
|
178
|
-
*
|
|
179
|
-
*
|
|
180
|
-
*
|
|
166
|
+
* The in-memory `AgentRegistry` reconciles into it on register (`upsert`),
|
|
167
|
+
* unregister (`markDisconnected`) and a coarse heartbeat (`stampLastSeen`).
|
|
168
|
+
* Liveness writes are owner-guarded by `instanceId`, so a stale disconnect from
|
|
169
|
+
* an old instance never clobbers a row another instance now owns. The
|
|
170
|
+
* leader-only reaper deletes `ephemeral` rows past ttl; `static` rows persist
|
|
171
|
+
* and read `unreachable`.
|
|
181
172
|
*/
|
|
182
173
|
export declare class HostRosterStore {
|
|
183
174
|
private readonly db;
|
|
@@ -189,10 +180,9 @@ export declare class HostRosterStore {
|
|
|
189
180
|
/** Coarse heartbeat stamp — same owner-guard as markDisconnected. */
|
|
190
181
|
stampLastSeen(agentId: string, instanceId: string): Promise<void>;
|
|
191
182
|
/**
|
|
192
|
-
* Declare a static host.
|
|
193
|
-
*
|
|
194
|
-
*
|
|
195
|
-
* `{ created: true }` when the declare inserted the row.
|
|
183
|
+
* Declare a static host. `operator` authority (a local `kici-admin`) inserts
|
|
184
|
+
* or converges the row; `platform` authority (a dashboard write, the default)
|
|
185
|
+
* only creates a new, unconfirmed row. `created` is true when it inserted.
|
|
196
186
|
*/
|
|
197
187
|
declareStatic(input: DeclareStaticInput): Promise<{
|
|
198
188
|
created: boolean;
|
|
@@ -206,14 +196,13 @@ export declare class HostRosterStore {
|
|
|
206
196
|
/**
|
|
207
197
|
* An operator declare. A re-declare converges the operator-owned columns
|
|
208
198
|
* (labels, hostname, reach, host_properties) and preserves the agent-reported
|
|
209
|
-
*
|
|
210
|
-
*
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
*
|
|
216
|
-
* CASE reads the source before this statement changes it.
|
|
199
|
+
* ones (connected_instance_id, last_seen, platform, arch, lifecycle_class,
|
|
200
|
+
* token_id, reboot_pending_until). Operator fields are preserve-on-omit and
|
|
201
|
+
* properties shallow-merge — except on a dashboard-declared row, where the
|
|
202
|
+
* operator's labels, hostname and properties replace it outright (no
|
|
203
|
+
* Platform-chosen value survives confirmation) and the row becomes
|
|
204
|
+
* `operator`. An `agent` row stays `agent`. PostgreSQL evaluates every SET
|
|
205
|
+
* against the existing row, so each CASE reads the source before the update.
|
|
217
206
|
*/
|
|
218
207
|
private declareAsOperator;
|
|
219
208
|
/**
|
|
@@ -223,12 +212,11 @@ export declare class HostRosterStore {
|
|
|
223
212
|
getReach(agentId: string): Promise<HostReach | null>;
|
|
224
213
|
get(agentId: string): Promise<HostRosterRow | null>;
|
|
225
214
|
/**
|
|
226
|
-
* Record the
|
|
227
|
-
* a
|
|
228
|
-
*
|
|
229
|
-
*
|
|
230
|
-
*
|
|
231
|
-
* it survives an agent re-register (the agent's reserved keys are stripped).
|
|
215
|
+
* Record the agent-payload version staged onto a host (bring-up or fleet
|
|
216
|
+
* re-stage), under a reserved key, so the convergence gate compares it to the
|
|
217
|
+
* target INDEPENDENTLY of the agent's self-reported version (two payloads can
|
|
218
|
+
* share a self-report but differ in staged key). Shallow-merged, so it survives
|
|
219
|
+
* an agent re-register (the agent's reserved keys are stripped).
|
|
232
220
|
*/
|
|
233
221
|
recordStagedVersion(agentId: string, version: string): Promise<void>;
|
|
234
222
|
/** Read a host's recorded staged agent-payload version, or null when never staged. */
|
|
@@ -238,50 +226,42 @@ export declare class HostRosterStore {
|
|
|
238
226
|
private listConfirmed;
|
|
239
227
|
/**
|
|
240
228
|
* Resolve EVERY roster host matching a label predicate (OR-of-AND include
|
|
241
|
-
* groups, minus exclude labels),
|
|
242
|
-
*
|
|
243
|
-
*
|
|
244
|
-
* expected-but-absent host.
|
|
229
|
+
* groups, minus exclude labels), with derived status. Declared-but-absent
|
|
230
|
+
* static hosts come back `unreachable` so a caller can apply `onUnreachable`;
|
|
231
|
+
* the live registry alone cannot name them.
|
|
245
232
|
*
|
|
246
|
-
*
|
|
247
|
-
* `lifecycleClass`
|
|
248
|
-
*
|
|
233
|
+
* The INVENTORY query: it includes auto-scaler hosts, told apart by the
|
|
234
|
+
* `lifecycleClass` `ctx.kici.inventory` exposes. `runsOnAll` fan-out uses
|
|
235
|
+
* {@link findFanoutTargets} instead.
|
|
249
236
|
*/
|
|
250
237
|
findMatching(include: readonly (readonly LabelMatcher[])[], exclude: readonly LabelMatcher[], graceMs: number): Promise<MatchedHost[]>;
|
|
251
238
|
/**
|
|
252
|
-
*
|
|
253
|
-
*
|
|
239
|
+
* The `runsOnAll` fan-out targets: {@link findMatching} minus every
|
|
240
|
+
* auto-scaler host. Fan-out targets DECLARED fleet members: a scaler agent
|
|
241
|
+
* has a pool's fixed shape, so a child pinned to one runs at that shape — the
|
|
242
|
+
* defect the dispatcher's warm-pool suitability gate removes, on the path a
|
|
243
|
+
* pin deliberately leaves ungated.
|
|
254
244
|
*
|
|
255
|
-
*
|
|
256
|
-
*
|
|
257
|
-
* than its own — the same defect the dispatcher's warm-pool suitability gate
|
|
258
|
-
* removes, on the path a pin deliberately leaves ungated.
|
|
259
|
-
*
|
|
260
|
-
* Separate from `findMatching` on purpose: `findMatching` also backs the
|
|
261
|
-
* SDK's `inventory.query`, where a host the caller asked for must never go
|
|
262
|
-
* missing (a selector returning FEWER hosts than no selector at all).
|
|
245
|
+
* Separate on purpose: `findMatching` also backs `inventory.query`, where a
|
|
246
|
+
* selector must never return FEWER hosts than no selector at all.
|
|
263
247
|
*/
|
|
264
248
|
findFanoutTargets(include: readonly (readonly LabelMatcher[])[], exclude: readonly LabelMatcher[], graceMs: number): Promise<MatchedHost[]>;
|
|
265
249
|
/**
|
|
266
|
-
* Shared row loop
|
|
267
|
-
*
|
|
268
|
-
* names its own semantics, so a call site cannot silently pick the wrong
|
|
269
|
-
* population by passing a bare boolean.
|
|
250
|
+
* Shared row loop. `excludeScalerManaged` stays private so a call site cannot
|
|
251
|
+
* pick the wrong population by passing a bare boolean.
|
|
270
252
|
*/
|
|
271
253
|
private matchRows;
|
|
272
254
|
/**
|
|
273
|
-
* Map a roster row to the
|
|
274
|
-
*
|
|
275
|
-
*
|
|
276
|
-
* derives it (live + fresh ⇒ ready; declared-but-absent static ⇒ unreachable;
|
|
277
|
-
* ephemeral past ttl ⇒ stale).
|
|
255
|
+
* Map a roster row to the {@link HostInventoryEntry} the `inventory.query` /
|
|
256
|
+
* `inventory.get` RPC returns and `ctx.kici.inventory` types. Status derives
|
|
257
|
+
* as in `findMatching`.
|
|
278
258
|
*/
|
|
279
259
|
toInventoryEntry(row: HostRosterRow, graceMs: number): HostInventoryEntry;
|
|
280
260
|
/**
|
|
281
|
-
* Query the roster as
|
|
282
|
-
*
|
|
283
|
-
*
|
|
284
|
-
*
|
|
261
|
+
* Query the roster as {@link HostInventoryEntry} records. A selector reuses
|
|
262
|
+
* `findMatching`'s server-side label filtering (glob/regex); property
|
|
263
|
+
* filtering happens client-side in the workflow. No selector ⇒ every host.
|
|
264
|
+
* Unconfirmed dashboard-declared rows are omitted.
|
|
285
265
|
*/
|
|
286
266
|
queryInventory(selector: InventorySelector | undefined, graceMs: number): Promise<HostInventoryEntry[]>;
|
|
287
267
|
/** Single-host inventory lookup; null when the agent is absent or unconfirmed. */
|
|
@@ -293,13 +273,11 @@ export declare class HostRosterStore {
|
|
|
293
273
|
/** One roster host for the dashboard, or null when the agent id has no row. */
|
|
294
274
|
getFleetHost(agentId: string, graceMs: number): Promise<FleetHostEntry | null>;
|
|
295
275
|
/**
|
|
296
|
-
* Count `
|
|
297
|
-
*
|
|
298
|
-
*
|
|
299
|
-
*
|
|
300
|
-
*
|
|
301
|
-
* depends on `graceMs`). An unconfirmed dashboard-created row never raises
|
|
302
|
-
* the alarm.
|
|
276
|
+
* Count `unreachable` static hosts — the declared-but-absent alarm. Uses
|
|
277
|
+
* {@link deriveHostStatus} so it matches `kici-admin host list`. A
|
|
278
|
+
* disconnected static host is `unreachable` regardless of grace; only the
|
|
279
|
+
* connected-but-stale case depends on `graceMs`. An unconfirmed
|
|
280
|
+
* dashboard-created row never raises the alarm.
|
|
303
281
|
*/
|
|
304
282
|
countStaticUnreachable(graceMs: number): Promise<number>;
|
|
305
283
|
/**
|
|
@@ -314,9 +292,8 @@ export declare class HostRosterStore {
|
|
|
314
292
|
/** Delete ephemeral rows whose last_seen is older than ttl. Returns count. */
|
|
315
293
|
reapEphemeralPastTtl(ttlMs: number): Promise<number>;
|
|
316
294
|
/**
|
|
317
|
-
*
|
|
318
|
-
*
|
|
319
|
-
* the future, the host's disconnect is the expected reboot and its pinned
|
|
295
|
+
* Set by the `host.requestReboot` handler when an agent's `restartHost()` step
|
|
296
|
+
* runs. Until `until`, a disconnect is the expected reboot and the pinned
|
|
320
297
|
* post-restart job is held.
|
|
321
298
|
*/
|
|
322
299
|
setRebootPending(agentId: string, until: Date): Promise<void>;
|
|
@@ -2,11 +2,9 @@
|
|
|
2
2
|
* The single refusal wording sent to an agent whose job-scoped frame was not
|
|
3
3
|
* accepted on ownership grounds.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* two cases are indistinguishable on the wire, and the distinction lives only in
|
|
9
|
-
* the orchestrator's own logs.
|
|
5
|
+
* Identical whether the database decided "not owned" or could not decide:
|
|
6
|
+
* telling them apart would be an oracle for job existence, upload-commit state
|
|
7
|
+
* and database health, so the distinction lives only in the orchestrator logs.
|
|
10
8
|
*/
|
|
11
9
|
export declare const OWNERSHIP_REFUSED = "this job is not owned by this agent";
|
|
12
10
|
//# sourceMappingURL=ownership-refusal.d.ts.map
|
|
@@ -1,23 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Job ownership tracker for agent message validation.
|
|
3
|
-
*
|
|
4
2
|
* Validates that agents only send messages (job.status, log.chunk, step.status,
|
|
5
|
-
* job.heartbeat, cache.upload.request, cache.upload.complete) for jobs
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* Includes:
|
|
9
|
-
* - Ownership check via dispatcher's isJobOwnedByAgent
|
|
10
|
-
* - Violation counting with sliding window (default: 5 violations in 60s)
|
|
11
|
-
* - Escalation: disconnect agent after threshold violations
|
|
3
|
+
* job.heartbeat, cache.upload.request, cache.upload.complete) for jobs
|
|
4
|
+
* dispatched to them. Violations are counted in a window (default: 5 in 60s);
|
|
5
|
+
* reaching the threshold disconnects the agent.
|
|
12
6
|
*/
|
|
13
7
|
/**
|
|
14
|
-
* Verdict of the DB-backed ownership lookup.
|
|
15
|
-
*
|
|
16
|
-
* `
|
|
17
|
-
*
|
|
18
|
-
* "the lookup could not be answered" (a query failure or a timeout). Only the
|
|
19
|
-
* former is a violation — counting an unanswerable check as evidence would let
|
|
20
|
-
* one transient database outage disconnect every connected agent at once.
|
|
8
|
+
* Verdict of the DB-backed ownership lookup. `unknown` (query failure or
|
|
9
|
+
* timeout) is distinct from `not-owned` (evidence of a misrouted or spoofed
|
|
10
|
+
* frame): only `not-owned` is a violation, else one transient database outage
|
|
11
|
+
* would disconnect every connected agent at once.
|
|
21
12
|
*/
|
|
22
13
|
export type OwnershipDbResult = 'owned' | 'not-owned' | 'unknown';
|
|
23
14
|
/** Deadline for a single DB-backed ownership lookup before it resolves `unknown`. */
|
|
@@ -26,25 +17,19 @@ interface OwnershipTrackerOpts {
|
|
|
26
17
|
/** Check if a job is owned by the given agent (active or in grace window). */
|
|
27
18
|
isJobOwnedByAgent: (agentId: string, jobId: string) => boolean;
|
|
28
19
|
/**
|
|
29
|
-
* Optional DB-backed fallback
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* `
|
|
34
|
-
*
|
|
35
|
-
* When a Raft leader switch wipes the in-memory `agentJobs` Map on the
|
|
36
|
-
* replacement coord, this fallback accepts late frames from agents that are
|
|
37
|
-
* still draining instead of rejecting them as ownership violations.
|
|
20
|
+
* Optional DB-backed fallback: `owned` when the DB shows the (agent, job)
|
|
21
|
+
* pair held by this coord OR a sibling — `dispatched`/`recovering` with the
|
|
22
|
+
* same `agent_id` / `recovery_agent_id`, or already terminal. It accepts late
|
|
23
|
+
* frames from draining agents after a Raft leader switch wipes the in-memory
|
|
24
|
+
* `agentJobs` Map on the replacement coord.
|
|
38
25
|
*/
|
|
39
26
|
isJobOwnedByAgentInDb?: (agentId: string, jobId: string) => Promise<OwnershipDbResult>;
|
|
40
27
|
/**
|
|
41
28
|
* Per-lookup deadline in ms, read fresh on every call so an operator can
|
|
42
|
-
* retune it
|
|
43
|
-
*
|
|
44
|
-
* when it stalls, throws, or returns a delay `setTimeout` cannot honour.
|
|
29
|
+
* retune it without a restart. Bounded and defaulted as `resolveTimeoutMs`
|
|
30
|
+
* describes.
|
|
45
31
|
*/
|
|
46
32
|
getTimeoutMs?: () => Promise<number>;
|
|
47
|
-
/** Callback to disconnect an agent after escalation. */
|
|
48
33
|
onDisconnect: (agentId: string, reason: string) => void;
|
|
49
34
|
/** Number of violations before escalation (default: 5). */
|
|
50
35
|
violationThreshold?: number;
|
|
@@ -60,75 +45,56 @@ export declare class OwnershipTracker {
|
|
|
60
45
|
private readonly violationWindowMs;
|
|
61
46
|
private readonly violations;
|
|
62
47
|
/**
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
* once per inbound message and the local Map repopulation lags
|
|
67
|
-
* behind. The cache is intentionally small (per-agent capped) and
|
|
68
|
-
* is cleaned on agent disconnect via `cleanup(agentId)`.
|
|
48
|
+
* `(agentId, jobId)` pairs proven by a positive DB fallback, so the next
|
|
49
|
+
* per-message `checkOwnership` on the pair passes while the local Map
|
|
50
|
+
* repopulation lags. Per-agent capped; cleared by `cleanup(agentId)`.
|
|
69
51
|
*/
|
|
70
52
|
private readonly dbAccepted;
|
|
71
53
|
constructor(opts: OwnershipTrackerOpts);
|
|
72
54
|
/**
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
* confirm or reject the ownership before treating it as a real
|
|
79
|
-
* violation. This makes the writer idempotent across HA failover —
|
|
80
|
-
* a `log.chunk` arriving on the replacement coord doesn't get
|
|
81
|
-
* counted as a violation just because the local Map is empty.
|
|
55
|
+
* True when the in-memory dispatcher OR a previously-accepted DB fallback
|
|
56
|
+
* shows ownership. With a DB fallback configured, returns false WITHOUT
|
|
57
|
+
* recording a violation: the caller must run `validateAsync` to decide, so a
|
|
58
|
+
* `log.chunk` on an HA replacement coord with an empty local Map is not
|
|
59
|
+
* counted as a violation.
|
|
82
60
|
*/
|
|
83
61
|
checkOwnership(agentId: string, jobId: string, messageType: string): boolean;
|
|
84
62
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
* recordViolation from the synchronous call site — `checkOwnership`
|
|
92
|
-
* skipped it when the DB fallback was configured). On `unknown` the
|
|
93
|
-
* frame is refused without a violation: an unanswerable check is not
|
|
94
|
-
* evidence of misbehaviour, and treating it as such would let one
|
|
95
|
-
* database outage disconnect the whole fleet.
|
|
63
|
+
* HA-safe acceptance of post-failover frames: true when the DB shows the
|
|
64
|
+
* (agent, job) pair currently or recently owned by any coord. `owned` is
|
|
65
|
+
* cached so later same-pair frames pass `checkOwnership` synchronously.
|
|
66
|
+
* `not-owned` records the violation exactly once (`checkOwnership` skipped
|
|
67
|
+
* it). `unknown` refuses the frame without a violation (see
|
|
68
|
+
* {@link OwnershipDbResult}).
|
|
96
69
|
*/
|
|
97
70
|
validateAsync(agentId: string, jobId: string, messageType: string): Promise<boolean>;
|
|
98
71
|
/**
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
* refuses frames without accusing the agent of anything.
|
|
72
|
+
* DB lookup under a deadline. A query that throws or outruns it resolves
|
|
73
|
+
* `unknown`, never `not-owned`, so a sick database never accuses the agent.
|
|
102
74
|
*/
|
|
103
75
|
private resolveFromDb;
|
|
104
76
|
/**
|
|
105
|
-
*
|
|
106
|
-
* {@link DEFAULT_OWNERSHIP_DB_CHECK_TIMEOUT_MS}
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
* of getting an answer. A read that stalls, throws, or yields a value
|
|
112
|
-
* `setTimeout` cannot honour (non-finite, sub-millisecond, or past
|
|
113
|
-
* {@link MAX_TIMER_DELAY_MS}) falls back to the compile-time default.
|
|
77
|
+
* The per-lookup deadline, its read bounded by
|
|
78
|
+
* {@link DEFAULT_OWNERSHIP_DB_CHECK_TIMEOUT_MS}: the knob lives in the same
|
|
79
|
+
* database the deadline exists to survive, and an unbounded read would make
|
|
80
|
+
* the agent wait out its own acknowledgment deadline. A read that stalls,
|
|
81
|
+
* throws, or yields a value `setTimeout` cannot honour (non-finite,
|
|
82
|
+
* sub-millisecond, or past {@link MAX_TIMER_DELAY_MS}) uses the default.
|
|
114
83
|
*/
|
|
115
84
|
private resolveTimeoutMs;
|
|
116
85
|
/**
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
* — a typical agent runs a handful of jobs) so a misbehaving agent cannot
|
|
120
|
-
* grow it without bound.
|
|
86
|
+
* The per-agent set is capped (generously — a typical agent runs a handful
|
|
87
|
+
* of jobs) so a misbehaving agent cannot grow it without bound.
|
|
121
88
|
*/
|
|
122
89
|
private rememberDbAccepted;
|
|
123
90
|
/**
|
|
124
|
-
* Record a violation for an agent.
|
|
125
|
-
* violation window
|
|
91
|
+
* Record a violation for an agent. Reaching the threshold within the
|
|
92
|
+
* violation window triggers disconnect escalation.
|
|
126
93
|
*/
|
|
127
94
|
private recordViolation;
|
|
128
95
|
/**
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
* agent id is later reused.
|
|
96
|
+
* Clears violations AND the DB-accepted cache for a disconnected agent, so a
|
|
97
|
+
* reused agent id inherits nothing.
|
|
132
98
|
*/
|
|
133
99
|
cleanup(agentId: string): void;
|
|
134
100
|
}
|