@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
|
@@ -86,18 +86,14 @@ export interface UnroutableCandidate extends ExpiredJobInfo {
|
|
|
86
86
|
unroutableSince: Date | null;
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
89
|
-
* Point-in-time
|
|
90
|
-
* and operator-facing depth warnings.
|
|
89
|
+
* Point-in-time dispatch_queue depth for Prometheus gauges and operator depth warnings.
|
|
91
90
|
*
|
|
92
|
-
* `byStatus` carries the raw COUNT(*) for
|
|
93
|
-
* and {@link DispatchQueueStatus.Dispatched}
|
|
94
|
-
* terminal and not surfaced here).
|
|
91
|
+
* `byStatus` carries the raw COUNT(*) for the {@link DispatchQueueStatus.Pending}
|
|
92
|
+
* and {@link DispatchQueueStatus.Dispatched} buckets only (other statuses are terminal).
|
|
95
93
|
*
|
|
96
|
-
* `byLabel`
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
* "label pool" mental model operators use in Grafana (agents advertise their
|
|
100
|
-
* labels; the gauge answers "how many pending jobs want this label").
|
|
94
|
+
* `byLabel` counts pending jobs per distinct `runs_on_labels` label. Multi-label jobs
|
|
95
|
+
* fan out: `['linux', 'x64']` adds 1 to both, matching the "label pool" model operators
|
|
96
|
+
* use in Grafana ("how many pending jobs want this label").
|
|
101
97
|
*/
|
|
102
98
|
export interface DispatchQueueDepthBreakdown {
|
|
103
99
|
byStatus: Partial<Record<DispatchQueueStatus, number>>;
|
|
@@ -162,8 +158,8 @@ export interface QueuedJobInput {
|
|
|
162
158
|
provider: string;
|
|
163
159
|
/** Provider-specific context (e.g., { installationId: 42 } for GitHub) */
|
|
164
160
|
providerContext: Record<string, unknown>;
|
|
165
|
-
/** Routing key (e.g. "github:12345")
|
|
166
|
-
*
|
|
161
|
+
/** Routing key (e.g. "github:12345") that selects the per-app provider bundle on
|
|
162
|
+
* dispatch. Required for multi-app safety. */
|
|
167
163
|
routingKey: string;
|
|
168
164
|
/** Override default timeout. 0 = indefinite (no expiry). */
|
|
169
165
|
timeoutMs?: number;
|
|
@@ -200,9 +196,7 @@ export interface QueuedJobInput {
|
|
|
200
196
|
*/
|
|
201
197
|
connectedInstanceId?: string | null;
|
|
202
198
|
}
|
|
203
|
-
/**
|
|
204
|
-
* Full queued job as stored in the database.
|
|
205
|
-
*/
|
|
199
|
+
/** Full queued job as stored in the database. */
|
|
206
200
|
export interface QueuedJob {
|
|
207
201
|
id: string;
|
|
208
202
|
runId: string;
|
|
@@ -222,8 +216,8 @@ export interface QueuedJob {
|
|
|
222
216
|
provider: string;
|
|
223
217
|
/** Provider-specific context */
|
|
224
218
|
providerContext: Record<string, unknown>;
|
|
225
|
-
/** Routing key (e.g. "github:12345")
|
|
226
|
-
*
|
|
219
|
+
/** Routing key (e.g. "github:12345") that selects the per-app provider bundle on
|
|
220
|
+
* dispatch. Required for multi-app safety. */
|
|
227
221
|
routingKey: string;
|
|
228
222
|
/** URL to pre-compiled bundle (from cache). Passed through to job.dispatch. */
|
|
229
223
|
sourceTarUrl?: string;
|
|
@@ -260,20 +254,15 @@ export interface QueuedJob {
|
|
|
260
254
|
secretsUnavailable?: string;
|
|
261
255
|
}
|
|
262
256
|
/**
|
|
263
|
-
* The resource shape a job declares, read from the one
|
|
264
|
-
* carries it.
|
|
265
|
-
*
|
|
266
|
-
* `jobConfig.resources` is where the declaration is stored and transported: it
|
|
267
|
-
* is what `job_config` holds across the DB round trip and what a worker
|
|
268
|
-
* receives over the wire. The typed `resources` field on {@link QueuedJobInput}
|
|
269
|
-
* and {@link QueuedJob} is a convenience mirror, and it is optional — several
|
|
270
|
-
* dispatch paths build their input without it (the worker's reroute handler and
|
|
271
|
-
* the webhook dispatch path among them). So a consumer that reads only the
|
|
272
|
-
* mirror sees a job that declares nothing, and a shape-sensitive decision made
|
|
273
|
-
* on that reading is wrong rather than merely unaware.
|
|
257
|
+
* The resource shape a job declares, read from `jobConfig.resources`: the one
|
|
258
|
+
* location that always carries it, across the DB round trip and over the wire.
|
|
274
259
|
*
|
|
275
|
-
*
|
|
276
|
-
*
|
|
260
|
+
* The typed `resources` field on {@link QueuedJobInput} and {@link QueuedJob} is
|
|
261
|
+
* an optional convenience mirror that several dispatch paths omit (the worker's
|
|
262
|
+
* reroute handler and the webhook dispatch path among them), so a consumer that
|
|
263
|
+
* reads only the mirror sees a job that declares nothing and makes a wrong
|
|
264
|
+
* shape-sensitive decision. Callers holding a mirror prefer it (same value) and
|
|
265
|
+
* fall back here.
|
|
277
266
|
*/
|
|
278
267
|
export declare function resourcesFromJobConfig(jobConfig: Record<string, unknown> | undefined): ResourceRequest | undefined;
|
|
279
268
|
/**
|
|
@@ -357,17 +346,11 @@ export declare class JobQueue {
|
|
|
357
346
|
* Semantics: agentLabels @> runs_on_labels (agent provides all labels the job requires).
|
|
358
347
|
* FOR UPDATE SKIP LOCKED prevents concurrent dequeue races between agents.
|
|
359
348
|
*
|
|
360
|
-
*
|
|
361
|
-
*
|
|
362
|
-
*
|
|
363
|
-
*
|
|
364
|
-
*
|
|
365
|
-
* array trivially contains the empty array, so the predicate is vacuously
|
|
366
|
-
* true.
|
|
367
|
-
*
|
|
368
|
-
* @param agentLabels Labels the agent provides.
|
|
369
|
-
* @param agentMandatoryLabels Mandatory labels the spawning scaler declared
|
|
370
|
-
* (empty for static / non-scaler agents).
|
|
349
|
+
* A non-empty `agentMandatoryLabels` adds `runs_on_labels @> agentMandatoryLabels`:
|
|
350
|
+
* the Kubernetes-taint-style gate inherited from the spawning scaler, so a gated
|
|
351
|
+
* agent only accepts jobs whose `runsOn` lists every gate label. The default `[]`
|
|
352
|
+
* is a no-op for static / non-scaler agents: every JSONB array contains the empty array.
|
|
353
|
+
*
|
|
371
354
|
* @param canServe Optional extra predicate applied to every candidate row
|
|
372
355
|
* before it is claimed. Labels cannot express whether an agent may run a
|
|
373
356
|
* job — a pre-spawned agent's fixed shape, a container job on an agent with
|
|
@@ -436,18 +419,15 @@ export declare class JobQueue {
|
|
|
436
419
|
*/
|
|
437
420
|
private claimPatternFree;
|
|
438
421
|
/**
|
|
439
|
-
* Pattern path: load a small batch of pattern-bearing
|
|
440
|
-
*
|
|
441
|
-
*
|
|
442
|
-
*
|
|
443
|
-
* the
|
|
444
|
-
*
|
|
445
|
-
* Pending` makes exactly one of them win. The claim transitions the row to
|
|
446
|
-
* Dispatched, matching the value the caller-side markDispatched would set
|
|
447
|
-
* (which then re-sets it idempotently).
|
|
422
|
+
* Pattern path: load a small batch of pattern-bearing rows, apply the JS regex
|
|
423
|
+
* post-filter (matcherSatisfiedBy), and claim the first match by id. The claim
|
|
424
|
+
* is a conditional `status = Pending` UPDATE, not the SELECT lock alone: the JS
|
|
425
|
+
* filter runs after the per-statement lock window has closed, so two agents can
|
|
426
|
+
* both pass it for the same row, and the guard makes exactly one win. The
|
|
427
|
+
* caller's markDispatched then re-sets the same Dispatched state idempotently.
|
|
448
428
|
*
|
|
449
|
-
*
|
|
450
|
-
*
|
|
429
|
+
* A lost claim continues to the next candidate, so it costs this agent a
|
|
430
|
+
* candidate and not a whole drain.
|
|
451
431
|
*/
|
|
452
432
|
private claimWithPatterns;
|
|
453
433
|
/**
|
|
@@ -496,22 +476,21 @@ export declare class JobQueue {
|
|
|
496
476
|
* specific queued job, the orchestrator claims that exact job on agent
|
|
497
477
|
* registration instead of racing the generic dequeueForLabels drain.
|
|
498
478
|
*
|
|
499
|
-
* Applies the same `agentMandatoryLabels` gate as `dequeueForLabels` so
|
|
500
|
-
*
|
|
501
|
-
*
|
|
502
|
-
*
|
|
479
|
+
* Applies the same `agentMandatoryLabels` gate as `dequeueForLabels` so the
|
|
480
|
+
* eager path never claims a job the scaler-side gate would reject (e.g. when
|
|
481
|
+
* the bound jobId outlived the scaler that spawned the agent and was
|
|
482
|
+
* reassigned to a different queued job).
|
|
503
483
|
*
|
|
504
484
|
* Returns null if the job is gone, no longer pending, expired, its label
|
|
505
485
|
* requirements are no longer satisfied by the agent, the agent's gate is not
|
|
506
486
|
* satisfied by the job's `runsOn`, or another claimant won the row first.
|
|
507
487
|
*
|
|
508
|
-
*
|
|
509
|
-
*
|
|
510
|
-
*
|
|
511
|
-
*
|
|
512
|
-
*
|
|
513
|
-
*
|
|
514
|
-
* `onAgentAvailable` drain exactly as it does for an already-gone job.
|
|
488
|
+
* The eager bound claim and the generic drain can target the same row moments
|
|
489
|
+
* apart, and a SELECT that returns it still Pending lets both dispatch it. The
|
|
490
|
+
* conditional UPDATE is the arbiter, run after the JS post-filter so a
|
|
491
|
+
* pattern-rejected row is never claimed and stranded. A loser returns null,
|
|
492
|
+
* and `dispatchBoundJob` falls back to the generic `onAgentAvailable` drain
|
|
493
|
+
* exactly as for an already-gone job.
|
|
515
494
|
*
|
|
516
495
|
* @param claimingAgentId Recorded as the row's durable owner as part of the
|
|
517
496
|
* claim. Optional so existing 3-arg callers keep working; the caller's
|
|
@@ -527,16 +506,15 @@ export declare class JobQueue {
|
|
|
527
506
|
* dispatched the moment it is inserted, so it never passes through
|
|
528
507
|
* `markDispatched` and would otherwise carry a NULL owner for its whole life.
|
|
529
508
|
* A coordinator that never saw the dispatch resolves ownership from this
|
|
530
|
-
* column alone, so
|
|
531
|
-
*
|
|
509
|
+
* column alone, so without it {@link hasAgentOwnedJob} answers "not owned" for
|
|
510
|
+
* every directly-dispatched job after a failover.
|
|
532
511
|
*
|
|
533
512
|
* Idempotent on the primary key: a reroute re-dispatch reuses a preassigned
|
|
534
|
-
* jobId, so a concurrent
|
|
535
|
-
*
|
|
536
|
-
*
|
|
537
|
-
*
|
|
538
|
-
*
|
|
539
|
-
* keeps the owner the winning writer recorded.
|
|
513
|
+
* jobId, so a concurrent sibling reroute (or a duplicate delivery) may target
|
|
514
|
+
* a row this instance already wrote. ON CONFLICT (id) DO NOTHING makes that a
|
|
515
|
+
* no-op instead of a dispatch_queue_pkey error, and `inserted` tells the caller
|
|
516
|
+
* whether a fresh row was created so it does not double-dispatch. The
|
|
517
|
+
* conflicting row keeps the owner the winning writer recorded.
|
|
540
518
|
*
|
|
541
519
|
* A job whose run has already stopped is refused, with the same stopped-run
|
|
542
520
|
* guard the queue drain applies (`notTerminalRunSql`). The row is still
|
|
@@ -580,44 +558,36 @@ export declare class JobQueue {
|
|
|
580
558
|
*/
|
|
581
559
|
markDispatched(jobId: string, agentId: string): Promise<void>;
|
|
582
560
|
/**
|
|
583
|
-
* Mark a job as failed.
|
|
584
|
-
*
|
|
585
|
-
*
|
|
586
|
-
* Failure details are tracked in execution_jobs via the reporting pipeline.
|
|
587
|
-
* The dispatch_queue only tracks routing status transitions.
|
|
561
|
+
* Mark a job as failed. The reason is not persisted: failure details live in
|
|
562
|
+
* execution_jobs via the reporting pipeline, and dispatch_queue tracks only
|
|
563
|
+
* routing status transitions.
|
|
588
564
|
*/
|
|
589
565
|
markFailed(jobId: string, _reason: string): Promise<void>;
|
|
590
566
|
/**
|
|
591
567
|
* Mark a dispatched job as completed (terminal success).
|
|
592
568
|
*
|
|
593
|
-
* Only transitions rows from `Dispatched` or `Recovering
|
|
594
|
-
*
|
|
595
|
-
*
|
|
596
|
-
*
|
|
597
|
-
*
|
|
598
|
-
* still working must NOT silently flip the row back to `Completed`.
|
|
569
|
+
* Only transitions rows from `Dispatched` or `Recovering`; a terminal row
|
|
570
|
+
* (`Failed`, `Expired`, `Completed`, `Cancelled`) is left untouched. If the
|
|
571
|
+
* orchestrator already declared the job failed (e.g. a build-coordinator
|
|
572
|
+
* timeout cascading through {@link failByRunId}), a late `job.complete` from
|
|
573
|
+
* the still-working agent must NOT flip the row back to `Completed`.
|
|
599
574
|
*/
|
|
600
575
|
markCompleted(jobId: string): Promise<void>;
|
|
601
576
|
/**
|
|
602
577
|
* Expire timed-out pending jobs.
|
|
603
578
|
* SELECT-then-UPDATE so callers get the expired job details for forwarding.
|
|
604
|
-
* @returns Array of expired job info (id, runId, jobName).
|
|
605
579
|
*/
|
|
606
580
|
markExpired(): Promise<ExpiredJobInfo[]>;
|
|
607
581
|
/**
|
|
608
582
|
* Bulk-fail every still-non-terminal dispatch_queue entry for a run.
|
|
609
583
|
*
|
|
610
584
|
* Called from the run-level failure cascades in `ExecutionTracker`
|
|
611
|
-
* (`onBuildFailed`, `failRun`).
|
|
612
|
-
*
|
|
613
|
-
* `
|
|
614
|
-
*
|
|
615
|
-
*
|
|
616
|
-
*
|
|
617
|
-
* run actually done") relies on never happening. The complementary
|
|
618
|
-
* {@link markCompleted} status guard ensures a late `job.complete` from
|
|
619
|
-
* the agent that was still working when the run was declared failed
|
|
620
|
-
* cannot flip the row back to `Completed`.
|
|
585
|
+
* (`onBuildFailed`, `failRun`). The run is being declared failed, so any row
|
|
586
|
+
* still `Pending`, `Recovering` or `Dispatched` is orphaned and moves to
|
|
587
|
+
* `Failed`: a `Dispatched` row left in place stays non-terminal forever, which
|
|
588
|
+
* callers polling for a terminal state (and operator "is this run done"
|
|
589
|
+
* queries) rely on never happening. The {@link markCompleted} status guard
|
|
590
|
+
* keeps a late `job.complete` from flipping the row back to `Completed`.
|
|
621
591
|
*
|
|
622
592
|
* @returns Number of affected rows.
|
|
623
593
|
*/
|
|
@@ -641,13 +611,11 @@ export declare class JobQueue {
|
|
|
641
611
|
* Delete terminal dispatch_queue rows older than `retentionDays`.
|
|
642
612
|
*
|
|
643
613
|
* `dispatch_queue` is operational dispatch state; the durable run history
|
|
644
|
-
* lives in the cold-stored execution_runs/jobs/steps tables, so a terminal
|
|
645
|
-
* ({@link
|
|
646
|
-
*
|
|
647
|
-
*
|
|
648
|
-
*
|
|
649
|
-
* are never pruned — a still-active run keeps every one of its rows. Both the
|
|
650
|
-
* terminal-status filter and the age cutoff must hold for a row to be deleted.
|
|
614
|
+
* lives in the cold-stored execution_runs/jobs/steps tables, so a terminal row
|
|
615
|
+
* ({@link TERMINAL_DISPATCH_STATUSES}) has no archival value once it ages out.
|
|
616
|
+
* Non-terminal rows (pending, dispatched, recovering) are never pruned, so a
|
|
617
|
+
* still-active run keeps every row. A row is deleted only when both the
|
|
618
|
+
* terminal-status filter and the age cutoff hold.
|
|
651
619
|
*
|
|
652
620
|
* `retentionDays <= 0` disables pruning (returns 0 without a query).
|
|
653
621
|
*
|
|
@@ -663,15 +631,9 @@ export declare class JobQueue {
|
|
|
663
631
|
* Compute the current dispatch-queue depth breakdown (pending + dispatched),
|
|
664
632
|
* aggregated per status and, for pending rows, per label.
|
|
665
633
|
*
|
|
666
|
-
* Uses the same 1-second TTL cache
|
|
667
|
-
* the
|
|
668
|
-
*
|
|
669
|
-
* the Prometheus gauge callback cheap on high-frequency scrapes and avoids
|
|
670
|
-
* any extra DB load during enqueue bursts.
|
|
671
|
-
*
|
|
672
|
-
* Multi-label jobs fan out: a pending row with `runs_on_labels = ['linux',
|
|
673
|
-
* 'x64']` contributes `1` to both the `linux` and `x64` entries in
|
|
674
|
-
* `byLabel`. The `byStatus` buckets always contain raw counts.
|
|
634
|
+
* Uses the same 1-second TTL cache as {@link JobQueue.getDepth}, which keeps
|
|
635
|
+
* the Prometheus gauge callback cheap on high-frequency scrapes and adds no DB
|
|
636
|
+
* load during enqueue bursts. Label fan-out: see {@link DispatchQueueDepthBreakdown}.
|
|
675
637
|
*/
|
|
676
638
|
getDepthBreakdown(): Promise<DispatchQueueDepthBreakdown>;
|
|
677
639
|
/**
|
|
@@ -705,18 +667,16 @@ export declare class JobQueue {
|
|
|
705
667
|
* Mark a job as recovering (agent disconnected, within grace period).
|
|
706
668
|
* Only transitions from 'dispatched' state for safety.
|
|
707
669
|
*
|
|
708
|
-
*
|
|
709
|
-
*
|
|
710
|
-
*
|
|
711
|
-
* the leader-gated sweep (`sweepExpiredRecoveries()`).
|
|
670
|
+
* `deadline` and `agentId`, when given, are persisted so a replacement coord
|
|
671
|
+
* on Raft leader switch can recreate the recovery timer (`getRecoveringJobs()`
|
|
672
|
+
* on boot) or expire the row in the leader-gated `sweepExpiredRecoveries()`.
|
|
712
673
|
*
|
|
713
|
-
* Carries the permissive ownership write guard: a
|
|
714
|
-
*
|
|
715
|
-
* ({@link JobQueue.getOrphanedDispatchedJobs}); this is the backstop for a
|
|
716
|
-
*
|
|
717
|
-
*
|
|
718
|
-
*
|
|
719
|
-
* pre-upgrade row.
|
|
674
|
+
* Carries the permissive ownership write guard: a LIVE sibling's row is left
|
|
675
|
+
* alone. Callers should already have selected owned rows
|
|
676
|
+
* ({@link JobQueue.getOrphanedDispatchedJobs}); this is the backstop for a path
|
|
677
|
+
* that forgets, since flipping a live sibling's row starts a 120-second clock
|
|
678
|
+
* that ends by failing a job nobody disconnected from. A NULL owner still
|
|
679
|
+
* passes: a local disconnect must be able to move a pre-upgrade row.
|
|
720
680
|
*
|
|
721
681
|
* @returns whether a row was flipped.
|
|
722
682
|
*/
|
|
@@ -725,12 +685,11 @@ export declare class JobQueue {
|
|
|
725
685
|
* The `dispatched` rows this coordinator may start recovery timers for on
|
|
726
686
|
* boot: its own, and those whose owning coordinator is no longer alive.
|
|
727
687
|
*
|
|
728
|
-
*
|
|
729
|
-
*
|
|
730
|
-
*
|
|
731
|
-
*
|
|
732
|
-
*
|
|
733
|
-
* rolling-restart procedure triggered it on every restart.
|
|
688
|
+
* Not an unfiltered `getJobsByStatus(Dispatched)` over the shared table: that
|
|
689
|
+
* scan flips every sibling's in-flight row to `recovering` on every boot, and
|
|
690
|
+
* since those agents never disconnected nothing reclaims them, so 120 seconds
|
|
691
|
+
* later the booting coordinator fails them all while they run to completion,
|
|
692
|
+
* on every step of the documented rolling-restart procedure.
|
|
734
693
|
*
|
|
735
694
|
* A NULL owner is spared — see {@link recoverableByOwner} for why, and for
|
|
736
695
|
* what reaps a genuinely orphaned one instead.
|
|
@@ -794,14 +753,12 @@ export declare class JobQueue {
|
|
|
794
753
|
deadline: Date | null;
|
|
795
754
|
}>>;
|
|
796
755
|
/**
|
|
797
|
-
*
|
|
798
|
-
*
|
|
799
|
-
* caller can fire the per-job `onJobFailedPermanently` hook in process.
|
|
756
|
+
* Fail every `recovering` row whose `recovery_deadline` is past, returning the
|
|
757
|
+
* flipped rows so the caller can fire the per-job `onJobFailedPermanently` hook.
|
|
800
758
|
*
|
|
801
|
-
* Intended for the leader-gated `Dispatcher.sweepExpiredRecoveries`
|
|
802
|
-
*
|
|
803
|
-
*
|
|
804
|
-
* needs to do the work.
|
|
759
|
+
* Intended for the leader-gated `Dispatcher.sweepExpiredRecoveries` tick;
|
|
760
|
+
* running on N coords is still correct (the `status='recovering'` guard
|
|
761
|
+
* prevents double-failure), but only one needs to do the work.
|
|
805
762
|
*/
|
|
806
763
|
sweepExpiredRecoveries(now: Date): Promise<Array<{
|
|
807
764
|
id: string;
|
|
@@ -815,10 +772,9 @@ export declare class JobQueue {
|
|
|
815
772
|
*/
|
|
816
773
|
markFailedIfRecovering(jobId: string, _reason: string): Promise<boolean>;
|
|
817
774
|
/**
|
|
818
|
-
* Return a dispatched job to the pending queue
|
|
819
|
-
*
|
|
820
|
-
*
|
|
821
|
-
* job started. Only flips rows still in 'dispatched' — a job that was
|
|
775
|
+
* Return a dispatched job to the pending queue, bumping its attempt counter.
|
|
776
|
+
* Used on an explicit job.reject and when a scaler-managed agent disconnects
|
|
777
|
+
* before the job started. Only flips rows still 'dispatched', so a job
|
|
822
778
|
* concurrently completed / failed / cancelled is left untouched.
|
|
823
779
|
*
|
|
824
780
|
* `countAttempt: false` leaves the counter alone — used for a busy rejection
|
|
@@ -877,27 +833,23 @@ export declare class JobQueue {
|
|
|
877
833
|
status: DispatchQueueStatus;
|
|
878
834
|
} | null>;
|
|
879
835
|
/**
|
|
880
|
-
* HA-safe ownership check
|
|
881
|
-
* `agentId` holds or previously held `jobId` according to any of:
|
|
836
|
+
* HA-safe ownership check: true if the DB shows `agentId` holds or held `jobId`:
|
|
882
837
|
*
|
|
883
|
-
* - `status='dispatched'` AND `agent_id = <agent>` — the live
|
|
884
|
-
*
|
|
885
|
-
*
|
|
886
|
-
*
|
|
887
|
-
*
|
|
888
|
-
*
|
|
889
|
-
*
|
|
890
|
-
* window are accepted as benign duplicates rather than
|
|
891
|
-
* rejected.
|
|
838
|
+
* - `status='dispatched'` AND `agent_id = <agent>` — the live owner, readable
|
|
839
|
+
* by any coordinator, including one that never saw the dispatch;
|
|
840
|
+
* - `status='recovering'` AND `recovery_agent_id = <agent>`, so a
|
|
841
|
+
* replacement coord still recognises in-flight chunks; or
|
|
842
|
+
* - the row is terminal (`completed` / `failed` / `expired`) — late
|
|
843
|
+
* `log.chunk` chunks from the agent's drain window are accepted as benign
|
|
844
|
+
* duplicates.
|
|
892
845
|
*
|
|
893
|
-
* Used by `OwnershipTracker.validateAsync` so a Raft leader switch
|
|
894
|
-
*
|
|
895
|
-
* stream of ownership violations.
|
|
846
|
+
* Used by `OwnershipTracker.validateAsync` so a Raft leader switch doesn't
|
|
847
|
+
* turn the next 30s of legitimate per-job chunks into ownership violations.
|
|
896
848
|
*/
|
|
897
849
|
hasAgentOwnedJob(agentId: string, jobId: string): Promise<boolean>;
|
|
898
850
|
/**
|
|
899
|
-
* Get all jobs matching a given status.
|
|
900
|
-
*
|
|
851
|
+
* Get all jobs matching a given status, unfiltered across coordinators. Boot
|
|
852
|
+
* recovery uses `getOrphanedDispatchedJobs` instead.
|
|
901
853
|
*/
|
|
902
854
|
getJobsByStatus(status: DispatchQueueStatus): Promise<Array<{
|
|
903
855
|
id: string;
|
|
@@ -930,9 +882,8 @@ export declare class JobQueue {
|
|
|
930
882
|
* Pending, non-expired jobs with the facts the unroutable probe needs:
|
|
931
883
|
* routing selectors, any recorded provisioning error, and the grace clock.
|
|
932
884
|
*
|
|
933
|
-
* Read-only — no claim, no `FOR UPDATE`; the probe never dispatches.
|
|
934
|
-
* the
|
|
935
|
-
* not-yet-expired filter the rest of the queue uses.
|
|
885
|
+
* Read-only — no claim, no `FOR UPDATE`; the probe never dispatches. Shares
|
|
886
|
+
* the queue's FIFO ordering and not-yet-expired filter.
|
|
936
887
|
*/
|
|
937
888
|
listUnroutableCandidates(limit: number): Promise<UnroutableCandidate[]>;
|
|
938
889
|
/**
|
|
@@ -949,17 +900,15 @@ export declare class JobQueue {
|
|
|
949
900
|
/**
|
|
950
901
|
* Claim a still-pending row for fast-fail, moving it out of the queue.
|
|
951
902
|
*
|
|
952
|
-
* Mirrors {@link markExpired}: the
|
|
953
|
-
*
|
|
954
|
-
* A row left pending is still dispatchable, so an agent connecting later
|
|
903
|
+
* Mirrors {@link markExpired}: the row must leave `Pending` as the job is
|
|
904
|
+
* terminalized. A row left pending is still dispatchable, so a later agent
|
|
955
905
|
* would pick up a job whose `execution_jobs` row already reads terminal; and
|
|
956
|
-
* the probe re-lists it
|
|
957
|
-
*
|
|
958
|
-
* expires it.
|
|
906
|
+
* the probe re-lists it every tick, re-running the terminalize path (and
|
|
907
|
+
* re-counting the fast-fail metric) until the queue timeout expires it.
|
|
959
908
|
*
|
|
960
909
|
* The `status = Pending` guard is also the concurrency arbiter — probe ticks
|
|
961
910
|
* are NOT leader-gated, so exactly one coordinator's UPDATE hits a row and
|
|
962
|
-
* the losers get `false
|
|
911
|
+
* the losers get `false`.
|
|
963
912
|
*
|
|
964
913
|
* @returns true when this call claimed the row, false when it was already
|
|
965
914
|
* dispatched, cancelled, expired, or claimed by another coordinator.
|
|
@@ -1,28 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Database-side retention for the tables that scale with run volume.
|
|
3
3
|
*
|
|
4
|
-
* The cold store
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* bound on the operator's own disk.
|
|
4
|
+
* The cold store's archivers archive-then-delete in one transaction and own the
|
|
5
|
+
* tables they register, but need `KICI_COLD_STORE_ENABLED=true` and a bucket.
|
|
6
|
+
* Without them (the default, and the quickstart path) this tier is what keeps
|
|
7
|
+
* `execution_steps`, `event_log` and `access_log` from growing without bound on
|
|
8
|
+
* the operator's disk.
|
|
10
9
|
*
|
|
11
10
|
* Two rules keep the tiers from fighting:
|
|
12
11
|
*
|
|
13
|
-
* -
|
|
14
|
-
* registers
|
|
15
|
-
*
|
|
16
|
-
* written. One owner per table.
|
|
12
|
+
* - With the cold store on, this tier skips every table an archiver
|
|
13
|
+
* registers: two owners would race the archiver's FK guard and could delete
|
|
14
|
+
* a parent whose archive chunk was never written. One owner per table.
|
|
17
15
|
* - Nothing is deleted on the first pass. The first pass with a non-zero
|
|
18
16
|
* window stamps `cluster_settings.retention_announced_at` and reports what
|
|
19
|
-
* it would remove; deletion begins a week later
|
|
20
|
-
*
|
|
21
|
-
* change nobody was warned about.
|
|
17
|
+
* it would remove; deletion begins a week later, so an upgrade never
|
|
18
|
+
* silently deletes an operator's history on its first night.
|
|
22
19
|
*
|
|
23
|
-
* Every delete is batched — select ids under a `LIMIT`,
|
|
24
|
-
*
|
|
25
|
-
*
|
|
20
|
+
* Every delete is batched — select ids under a `LIMIT`, delete by id, loop until
|
|
21
|
+
* a pass comes back short — because one unbounded `DELETE` over millions of rows
|
|
22
|
+
* holds locks for as long as it runs.
|
|
26
23
|
*/
|
|
27
24
|
import { type Kysely } from 'kysely';
|
|
28
25
|
import type { Database } from '../db/types.js';
|
|
@@ -30,18 +27,16 @@ import type { Database } from '../db/types.js';
|
|
|
30
27
|
export declare const RETENTION_BATCH_SIZE = 5000;
|
|
31
28
|
/** Days between the announce stamp and the first deletion. */
|
|
32
29
|
export declare const RETENTION_ANNOUNCE_DAYS = 7;
|
|
33
|
-
/**
|
|
34
|
-
* live work whatever its age. */
|
|
30
|
+
/** A run still queued, running, held or cancelling is live work whatever its age. */
|
|
35
31
|
export declare const TERMINAL_RUN_STATUS_LIST: readonly string[];
|
|
36
|
-
/**
|
|
32
|
+
/** A pending hold is never pruned. */
|
|
37
33
|
export declare const TERMINAL_HELD_RUN_STATUSES: readonly string[];
|
|
38
34
|
/**
|
|
39
|
-
* Tables the cold-store archivers
|
|
40
|
-
*
|
|
41
|
-
*
|
|
35
|
+
* Tables the cold-store archivers own when the cold store is on — including the
|
|
36
|
+
* `execution_jobs` / `execution_steps` children the run archiver removes with
|
|
37
|
+
* their parent.
|
|
42
38
|
*/
|
|
43
39
|
export declare const COLD_STORE_OWNED_TABLES: readonly string[];
|
|
44
|
-
/** The `cluster_settings` columns this module reads. */
|
|
45
40
|
export type ClusterRetentionColumn = 'run_retention_days' | 'audit_retention_days' | 'provenance_retention_days' | 'held_run_retention_days';
|
|
46
41
|
export interface RetentionWindows {
|
|
47
42
|
/** Terminal runs, and the jobs and steps beneath them. 0 disables. */
|
|
@@ -62,7 +57,6 @@ export interface PruneExpiredHistoryDeps {
|
|
|
62
57
|
batchSize?: number;
|
|
63
58
|
}
|
|
64
59
|
export interface RetentionSummary {
|
|
65
|
-
/** Rows deleted, per table. */
|
|
66
60
|
deleted: Record<string, number>;
|
|
67
61
|
/** Rows that WOULD have been deleted, while the announce window runs. */
|
|
68
62
|
pending: Record<string, number>;
|
|
@@ -72,16 +66,13 @@ export interface RetentionSummary {
|
|
|
72
66
|
/** True when every window is 0, i.e. the operator disabled the whole tier. */
|
|
73
67
|
export declare function allWindowsDisabled(windows: RetentionWindows): boolean;
|
|
74
68
|
/**
|
|
75
|
-
* Delete rows in bounded batches
|
|
76
|
-
*
|
|
77
|
-
* The loop stops as soon as a pass comes back short, which is what bounds it
|
|
78
|
-
* on a table that is still being written to.
|
|
69
|
+
* Delete rows in bounded batches. Stopping on the first short pass is what
|
|
70
|
+
* bounds the loop on a table still being written to.
|
|
79
71
|
*/
|
|
80
72
|
export declare function deleteInBatches(table: string, selectIds: (limit: number) => Promise<string[]>, deleteIds: (ids: string[]) => Promise<void>, batchSize: number): Promise<number>;
|
|
81
73
|
/**
|
|
82
74
|
* Read the announce stamp, setting it on the first pass that has work to do.
|
|
83
|
-
*
|
|
84
|
-
* Returns true once the window has elapsed and deletion may begin.
|
|
75
|
+
* True once the window has elapsed and deletion may begin.
|
|
85
76
|
*/
|
|
86
77
|
export declare function announceGatePassed(db: Kysely<Database>, now: Date, announceDays?: number): Promise<boolean>;
|
|
87
78
|
/**
|
|
@@ -90,12 +81,8 @@ export declare function announceGatePassed(db: Kysely<Database>, now: Date, anno
|
|
|
90
81
|
*/
|
|
91
82
|
export declare function pruneExpiredHistory(deps: PruneExpiredHistoryDeps): Promise<RetentionSummary>;
|
|
92
83
|
/**
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
* `getNumber` returns a genuine 0 when the operator set the knob to 0, which is
|
|
97
|
-
* the documented way to disable a window — so this stays a fallback-on-null
|
|
98
|
-
* read, never `||`.
|
|
84
|
+
* A live `cluster_settings` value wins over the configured default. A genuine 0
|
|
85
|
+
* disables a window, so this stays a fallback-on-null read, never `||`.
|
|
99
86
|
*/
|
|
100
87
|
export declare function resolveRetentionWindows(defaults: RetentionWindows, clusterSettings?: {
|
|
101
88
|
getNumber(column: ClusterRetentionColumn, fallback: number): Promise<number>;
|