@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
package/dist/db/client.d.ts
CHANGED
|
@@ -2,12 +2,8 @@ import pg from 'pg';
|
|
|
2
2
|
import { Kysely } from 'kysely';
|
|
3
3
|
import { createPool as _createPool } from '@kici-dev/shared';
|
|
4
4
|
import type { Database } from './types.js';
|
|
5
|
-
/**
|
|
6
|
-
* Create PostgreSQL connection pool.
|
|
7
|
-
*/
|
|
5
|
+
/** Creates a PostgreSQL connection pool. */
|
|
8
6
|
export declare const createPool: typeof _createPool;
|
|
9
|
-
/**
|
|
10
|
-
* Create Kysely database instance typed to the orchestrator schema.
|
|
11
|
-
*/
|
|
7
|
+
/** Creates a Kysely instance typed to the orchestrator schema. */
|
|
12
8
|
export declare function createDb(pool: pg.Pool): Kysely<Database>;
|
|
13
9
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -13,10 +13,9 @@ export declare const DEFERRED_INDEX_LOCK_KEY = 543210002;
|
|
|
13
13
|
/**
|
|
14
14
|
* Drop a leftover invalid index before rebuilding it.
|
|
15
15
|
*
|
|
16
|
-
* An interrupted `CREATE INDEX CONCURRENTLY` leaves
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* permanent no-op — the opposite of the "retries on the next boot" contract.
|
|
16
|
+
* An interrupted `CREATE INDEX CONCURRENTLY` leaves an invalid index that the
|
|
17
|
+
* planner ignores and `IF NOT EXISTS` skips, so without this the first failed
|
|
18
|
+
* build would turn the "retries on the next boot" contract into a no-op.
|
|
20
19
|
*/
|
|
21
20
|
export declare function dropIfInvalid(client: Pick<pg.Client, 'query'>, name: string, logger: Logger): Promise<void>;
|
|
22
21
|
export interface BuildDeferredIndexesResult {
|
|
@@ -26,13 +25,12 @@ export interface BuildDeferredIndexesResult {
|
|
|
26
25
|
/**
|
|
27
26
|
* Build every deferred index on one dedicated connection.
|
|
28
27
|
*
|
|
29
|
-
* The connection
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* would otherwise hold a serving connection for its whole duration.
|
|
28
|
+
* The connection comes straight from `pg`, not the serving pool:
|
|
29
|
+
* `CREATE INDEX CONCURRENTLY` runs outside a transaction with no statement
|
|
30
|
+
* timeout, and a long build would otherwise hold a serving connection.
|
|
33
31
|
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
32
|
+
* `pg_try_advisory_lock`, not the blocking form: when a peer is already
|
|
33
|
+
* building, this instance has nothing to wait for.
|
|
36
34
|
*/
|
|
37
35
|
export declare function buildDeferredIndexes(databaseUrl: string, opts?: {
|
|
38
36
|
logger?: Logger;
|
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Indexes built after boot, outside the migration set.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* plain `CREATE INDEX`, which holds an exclusive lock for the whole build. On
|
|
9
|
-
* a table holding millions of rows that is a multi-minute outage bolted onto
|
|
10
|
-
* an upgrade.
|
|
4
|
+
* Kysely runs the pending batch in one transaction with no per-migration opt-out, and PostgreSQL
|
|
5
|
+
* rejects `CREATE INDEX CONCURRENTLY` inside a transaction block, so a migration can only use a
|
|
6
|
+
* plain `CREATE INDEX`: an exclusive lock for the whole build, a multi-minute upgrade outage on a
|
|
7
|
+
* table of millions of rows.
|
|
11
8
|
*
|
|
12
|
-
* So an index on a table that scales with run volume goes here
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* a failed build retries on the next boot.
|
|
9
|
+
* So an index on a table that scales with run volume goes here. Each entry is built
|
|
10
|
+
* `CONCURRENTLY` on its own connection with no statement timeout, under an advisory lock distinct
|
|
11
|
+
* from the migration lock, after the server is serving. `IF NOT EXISTS` makes every build
|
|
12
|
+
* idempotent, and a failed build retries on the next boot.
|
|
17
13
|
*
|
|
18
|
-
* A repository check enforces that new indexes on those tables land here
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* orchestrator's metrics.
|
|
14
|
+
* A repository check enforces that new indexes on those tables land here. The build is
|
|
15
|
+
* `deferred-index-build.ts`; this module holds only the list, so a CLI can read it without
|
|
16
|
+
* loading the orchestrator's metrics.
|
|
22
17
|
*/
|
|
23
18
|
export interface DeferredIndex {
|
|
24
19
|
/** Index name, matching the one the SQL creates. */
|
|
@@ -27,12 +22,10 @@ export interface DeferredIndex {
|
|
|
27
22
|
sql: string;
|
|
28
23
|
}
|
|
29
24
|
/**
|
|
30
|
-
* Every index the retention sweep and the age-based readers depend on
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* serving-path queries; these cover the aging path, whose predicate is not
|
|
35
|
-
* prefixed by an organization or routing key.
|
|
25
|
+
* Every index the retention sweep and the age-based readers depend on: each supports a
|
|
26
|
+
* `... < cutoff` scan that would otherwise walk the whole table every cleanup tick. Serving-path
|
|
27
|
+
* indexes exist already; these cover the aging path, whose predicate has no org or routing-key
|
|
28
|
+
* prefix.
|
|
36
29
|
*/
|
|
37
30
|
export declare const DEFERRED_INDEXES: ReadonlyArray<DeferredIndex>;
|
|
38
31
|
//# sourceMappingURL=deferred-indexes.d.ts.map
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Static migration provider for bundled builds
|
|
3
|
-
*
|
|
4
|
-
* Rolldown doesn't support dynamic `import()` of migration files at runtime,
|
|
5
|
-
* so we statically import all migrations and provide them to Kysely's Migrator.
|
|
2
|
+
* Static migration provider for bundled builds: Rolldown cannot dynamic-`import()` migration
|
|
3
|
+
* files at runtime, so every migration is imported statically for Kysely's Migrator.
|
|
6
4
|
*/
|
|
7
5
|
import type { MigrationProvider } from 'kysely/migration';
|
|
8
6
|
export declare function createMigrationProvider(): MigrationProvider;
|
|
@@ -1,63 +1,45 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Test harness for the per-migration real-Postgres suites.
|
|
3
3
|
*
|
|
4
|
-
* A test named `NNN_thing.test.ts` documents the schema
|
|
5
|
-
*
|
|
6
|
-
* the
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* A DATA migration needs the state one step earlier as well, so it can insert
|
|
17
|
-
* the rows it is supposed to rewrite: `migrateToPreviousMigration()` provides
|
|
18
|
-
* it, deriving that target from the migration list rather than from a name the
|
|
19
|
-
* test spells out.
|
|
20
|
-
*
|
|
21
|
-
* Repo/store tests outside `migrations/` (host roster, artifact store, the repo
|
|
22
|
-
* suites) legitimately want head-of-list schema and use `migrateToLatest()`
|
|
23
|
-
* directly instead.
|
|
4
|
+
* A test named `NNN_thing.test.ts` documents the schema migration `NNN` produces, so it applies
|
|
5
|
+
* the set only as far as `NNN`: at the head of the list a later migration may have dropped or
|
|
6
|
+
* reshaped the column under test, and the test fails or passes for the wrong reason. These
|
|
7
|
+
* suites run only when `KICI_TEST_ADMIN_DATABASE_URL` is set, so that rot is invisible in a
|
|
8
|
+
* normal `pnpm test`.
|
|
9
|
+
*
|
|
10
|
+
* The target comes from the calling test file's own URL, so a test cannot name the wrong
|
|
11
|
+
* migration or drift on rename. There is no fallback to the whole set: an unknown or no-op
|
|
12
|
+
* target throws. `migrateToPreviousMigration()` gives a DATA migration the state one step
|
|
13
|
+
* earlier, derived from the migration list.
|
|
14
|
+
*
|
|
15
|
+
* Repo/store tests outside `migrations/` want head-of-list schema and use `migrateToLatest()`.
|
|
24
16
|
*/
|
|
25
17
|
import type { Kysely } from 'kysely';
|
|
26
18
|
import { type MigrationResultSet } from 'kysely/migration';
|
|
27
19
|
/**
|
|
28
|
-
* Derive `030_held_runs_env_set_null` from a
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* Throws when the caller is not a per-migration test, so a copy-paste into an
|
|
32
|
-
* unrelated suite fails loudly instead of silently migrating somewhere odd.
|
|
20
|
+
* Derive `030_held_runs_env_set_null` from a `.../migrations/030_held_runs_env_set_null.test.ts`
|
|
21
|
+
* URL. Throws for a non-per-migration caller, so a copy-paste into another suite fails loudly.
|
|
33
22
|
*/
|
|
34
23
|
export declare function migrationNameFromTestUrl(testUrl: string): string;
|
|
35
24
|
/**
|
|
36
|
-
* Apply migrations `001..NNN` inclusive,
|
|
37
|
-
*
|
|
25
|
+
* Apply migrations `001..NNN` inclusive, `NNN` being the calling test file's migration. Pass
|
|
26
|
+
* `import.meta.url` as `testUrl`.
|
|
38
27
|
*
|
|
39
|
-
* Returns Kysely's result set so callers keep their own error handling
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* somewhere other than itself, throws — neither can silently degrade into
|
|
43
|
-
* "the whole migration set ran".
|
|
28
|
+
* Returns Kysely's result set so callers keep their own error handling. A missing target
|
|
29
|
+
* surfaces as `error`; a target that applied nothing, or stopped elsewhere, throws — neither
|
|
30
|
+
* silently degrades into "the whole migration set ran".
|
|
44
31
|
*/
|
|
45
32
|
export declare function migrateToOwnMigration<DB>(db: Kysely<DB>, testUrl: string): Promise<MigrationResultSet>;
|
|
46
33
|
/**
|
|
47
|
-
* Apply migrations `001..NNN-1
|
|
48
|
-
*
|
|
34
|
+
* Apply migrations `001..NNN-1`: up to, but NOT including, the calling test file's migration.
|
|
35
|
+
* Pass `import.meta.url`.
|
|
49
36
|
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* call {@link migrateToOwnMigration} and assert what moved. Going straight to
|
|
54
|
-
* `migrateToOwnMigration` leaves no window to insert anything, so the
|
|
55
|
-
* assertions would run against rows the migration never saw — a check that
|
|
56
|
-
* passes identically with the migration body deleted.
|
|
37
|
+
* A DATA migration's test straddles it: migrate here, insert the rows an upgraded database
|
|
38
|
+
* holds, then call {@link migrateToOwnMigration} and assert what moved. Without this window the
|
|
39
|
+
* assertions run against rows the migration never saw, and pass with its body deleted.
|
|
57
40
|
*
|
|
58
|
-
* The target
|
|
59
|
-
*
|
|
60
|
-
* for the very first migration throws, since there is no earlier state.
|
|
41
|
+
* The target comes from the migration list, so it cannot drift when a migration is inserted
|
|
42
|
+
* before it. The first migration throws: there is no earlier state.
|
|
61
43
|
*/
|
|
62
44
|
export declare function migrateToPreviousMigration<DB>(db: Kysely<DB>, testUrl: string): Promise<MigrationResultSet>;
|
|
63
45
|
//# sourceMappingURL=migration-test-harness.d.ts.map
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { type Kysely } from 'kysely';
|
|
2
2
|
export declare function up(db: Kysely<any>): Promise<void>;
|
|
3
|
-
/**
|
|
4
|
-
* Rollback drops everything created above. Uses CASCADE on table drops to cut
|
|
5
|
-
* through the FK graph without relying on exact topological order.
|
|
6
|
-
*/
|
|
3
|
+
/** Drops everything `up` created; CASCADE cuts the FK graph without a topological order. */
|
|
7
4
|
export declare function down(db: Kysely<any>): Promise<void>;
|
|
8
5
|
//# sourceMappingURL=001_initial.d.ts.map
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import { type Kysely } from 'kysely';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* can be rotated via `kici-admin rotate-key`.
|
|
3
|
+
* `config_versions.key_version`, so `kici-admin rotate-key` can rotate sensitive-field encryption.
|
|
5
4
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* stores the active generation alongside the ciphertext.
|
|
5
|
+
* The DEFAULT backfills existing rows to 1 (all encrypted under the first master-key
|
|
6
|
+
* generation). After rotation, `SharedConfigStore` writes MAX(key_version) + 1 beside the
|
|
7
|
+
* ciphertext.
|
|
10
8
|
*
|
|
11
|
-
* No index
|
|
12
|
-
* `version` primary key and never filter on `key_version`.
|
|
9
|
+
* No index: rotation full-scans; reads go by the `version` primary key.
|
|
13
10
|
*/
|
|
14
11
|
export declare function up(db: Kysely<any>): Promise<void>;
|
|
15
12
|
export declare function down(db: Kysely<any>): Promise<void>;
|
|
@@ -2,24 +2,19 @@ import { type Kysely } from 'kysely';
|
|
|
2
2
|
/**
|
|
3
3
|
* Access log: one row per read or orchestrator-admin mutation attributable
|
|
4
4
|
* to an ActorPrincipal (dashboard user, api_key, service_account, platform
|
|
5
|
-
* operator break-glass, or system). Backs
|
|
5
|
+
* operator break-glass, or system). Backs the dashboard "Data access" tab
|
|
6
|
+
* (dashboard.access-log.list), GET /api/v1/admin/access-log and
|
|
7
|
+
* `kici-admin access-log`.
|
|
6
8
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
9
|
+
* `secret_audit_log` stays the source of truth for secret *mutation* events
|
|
10
|
+
* (different retention expectations); access_log records secret *reveals*
|
|
11
|
+
* with full actor attribution.
|
|
10
12
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* records secret *reveals* with full actor attribution.
|
|
13
|
+
* `source` distinguishes platform_proxy / admin_http / admin_cli entry
|
|
14
|
+
* points. `actor_meta` holds variant-specific extras (ownerSub for api_key,
|
|
15
|
+
* reason for platform_operator).
|
|
15
16
|
*
|
|
16
|
-
*
|
|
17
|
-
* points. `actor_meta` captures the variant-specific extras that don't fit
|
|
18
|
-
* in the flat (actor_type, actor_id) columns — ownerSub for api_key,
|
|
19
|
-
* reason for platform_operator.
|
|
20
|
-
*
|
|
21
|
-
* Retention is TTL-based via expires_at; packages/orchestrator/src/queue/
|
|
22
|
-
* cleanup.ts picks up the prune pass.
|
|
17
|
+
* Retention is TTL-based via expires_at; queue/cleanup.ts prunes.
|
|
23
18
|
*/
|
|
24
19
|
export declare function up(db: Kysely<any>): Promise<void>;
|
|
25
20
|
export declare function down(db: Kysely<any>): Promise<void>;
|
|
@@ -2,16 +2,14 @@
|
|
|
2
2
|
* Rename `dispatch_queue.bundle_url` / `bundle_hash` → `source_tar_url` /
|
|
3
3
|
* `source_tar_hash`.
|
|
4
4
|
*
|
|
5
|
-
* The cached build artifact
|
|
6
|
-
* (
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* instead of running Rolldown at runtime.
|
|
5
|
+
* The cached build artifact is a raw `.kici/` source tarball
|
|
6
|
+
* (`source/{contentHash}.tar.gz` in S3), not a Rolldown-bundled `.compiled.mjs`
|
|
7
|
+
* (`bundles/{contentHash}.js`). The agent extracts it and imports the workflow
|
|
8
|
+
* through the shared oxc-transform ESM loader hook.
|
|
10
9
|
*
|
|
11
|
-
* Pre-release rename
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* same as any other cache miss.
|
|
10
|
+
* Pre-release rename with no data preservation: rows with old bundle URLs miss
|
|
11
|
+
* their contentHash lookup under the SCHEMA_V4 cache prefix and get a fresh
|
|
12
|
+
* build job, like any cache miss.
|
|
15
13
|
*/
|
|
16
14
|
import type { Kysely } from 'kysely';
|
|
17
15
|
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
import { type Kysely } from 'kysely';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Per-(db, table, tenant) archived-chunk totals, so the `cold_store_chunks_total` gauge and
|
|
4
|
+
* `kici-admin cold-store list-chunks` avoid S3 LIST calls (expensive + rate-limited).
|
|
4
5
|
*
|
|
5
|
-
*
|
|
6
|
-
* `
|
|
7
|
-
* `kici-admin cold-store list-chunks` CLI can report totals without
|
|
8
|
-
* issuing S3 LIST calls (expensive + rate-limited).
|
|
9
|
-
*
|
|
10
|
-
* The table starts empty; the cold-store archiver
|
|
11
|
-
* updates it transactionally with every successful chunk
|
|
12
|
-
* write via `INSERT ... ON CONFLICT (db, table_name, tenant_id) DO
|
|
13
|
-
* UPDATE SET chunk_count = chunk_count + EXCLUDED.chunk_count, ...`.
|
|
6
|
+
* Starts empty; the archiver upserts it in the same transaction as every successful chunk
|
|
7
|
+
* write (`INSERT ... ON CONFLICT (db, table_name, tenant_id) DO UPDATE ...`).
|
|
14
8
|
*/
|
|
15
9
|
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
16
10
|
export declare function down(db: Kysely<unknown>): Promise<void>;
|
|
@@ -1,37 +1,17 @@
|
|
|
1
1
|
import { type Kysely } from 'kysely';
|
|
2
2
|
/**
|
|
3
|
-
* `execution_runs` / `execution_jobs` / `execution_steps
|
|
4
|
-
* schema additions.
|
|
3
|
+
* Cold-store columns for `execution_runs` / `execution_jobs` / `execution_steps`.
|
|
5
4
|
*
|
|
6
|
-
*
|
|
5
|
+
* Each table gets `archived_at` and `archive_object_key` (both NULL), set inside the archive tx
|
|
6
|
+
* before the DELETE; survivors carry NULL, as `run_events` does in the Platform's schema.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* The archiver partitions by `routing_key`, which only `execution_runs` carried; jobs and steps
|
|
9
|
+
* get it denormalized (avoiding a 3-table JOIN per archive cycle) with a one-shot backfill from
|
|
10
|
+
* their runs. New inserts must populate it (enforced at the application layer). It stays
|
|
11
|
+
* NULLable so a missed insert site still lands; `listEligiblePartitions` skips NULL tenants.
|
|
12
12
|
*
|
|
13
|
-
*
|
|
14
|
-
* `
|
|
15
|
-
* `execution_jobs` and `execution_steps` reference the run by `run_id`
|
|
16
|
-
* and would otherwise need a 3-table JOIN at every archive cycle. We
|
|
17
|
-
* denormalize `routing_key` onto both tables and backfill from the
|
|
18
|
-
* existing run rows. Backfill is one-shot inside this migration. New
|
|
19
|
-
* inserts must populate the column going forward (enforced at the
|
|
20
|
-
* application layer).
|
|
21
|
-
*
|
|
22
|
-
* The denormalized column is left NULLable for safety: if an insert
|
|
23
|
-
* site is missed in the rollout, the row still lands in PG; the
|
|
24
|
-
* cold-store adapter's `listEligiblePartitions` skips NULLs (no
|
|
25
|
-
* tenant ⇒ no archive). A follow-up migration may tighten to NOT NULL
|
|
26
|
-
* once we're confident every insert site is updated.
|
|
27
|
-
*
|
|
28
|
-
* Composite indexes added for the archiver's
|
|
29
|
-
* `listEligiblePartitions` discovery query
|
|
30
|
-
* (`GROUP BY routing_key, DATE(created_at)`):
|
|
31
|
-
*
|
|
32
|
-
* - `idx_execution_runs_routing_key_created (routing_key, created_at)`
|
|
33
|
-
* - `idx_execution_jobs_routing_key_created (routing_key, created_at)`
|
|
34
|
-
* - `idx_execution_steps_routing_key_created (routing_key, created_at)`
|
|
13
|
+
* The `(routing_key, created_at)` indexes serve the archiver's `listEligiblePartitions` query
|
|
14
|
+
* (`GROUP BY routing_key, DATE(created_at)`).
|
|
35
15
|
*/
|
|
36
16
|
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
37
17
|
export declare function down(db: Kysely<unknown>): Promise<void>;
|
|
@@ -1,38 +1,19 @@
|
|
|
1
1
|
import { type Kysely } from 'kysely';
|
|
2
2
|
/**
|
|
3
|
-
* `secret_audit_log` and `access_log
|
|
4
|
-
*
|
|
3
|
+
* Cold-store columns for `secret_audit_log` and `access_log`, and removal of `access_log`'s
|
|
4
|
+
* `expires_at` hard delete.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
6
|
+
* Both tables get the `archived_at` / `archive_object_key` pair (as in
|
|
7
|
+
* `006_runs_jobs_steps_archived_at.ts`), set in the archive tx before the DELETE.
|
|
7
8
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* (
|
|
11
|
-
* `execution_steps` got in `006_runs_jobs_steps_archived_at.ts`. Set inside
|
|
12
|
-
* the archive transaction before the DELETE; survivors carry NULL.
|
|
9
|
+
* `idx_secret_audit_log_routing_timestamp` lets the archiver's per-tenant scan use one index;
|
|
10
|
+
* the single-column `idx_secret_audit_log_timestamp` would force a filter step. `access_log`'s
|
|
11
|
+
* existing `access_log_org_created_idx (org_id, created_at DESC)` already serves its scan.
|
|
13
12
|
*
|
|
14
|
-
* `
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* `
|
|
18
|
-
* filter step.
|
|
19
|
-
*
|
|
20
|
-
* `access_log` already has `access_log_org_created_idx (org_id,
|
|
21
|
-
* created_at DESC)`, which is sufficient for the per-tenant scan
|
|
22
|
-
* (range scans use either direction).
|
|
23
|
-
*
|
|
24
|
-
* Drops `access_log.expires_at` column and `access_log_expires_idx`.
|
|
25
|
-
* Before this migration, `expires_at` powered a 90-day hard-delete sweep in
|
|
26
|
-
* `packages/orchestrator/src/audit/access-log.ts:cleanup` (called from
|
|
27
|
-
* `packages/orchestrator/src/queue/cleanup.ts:runCleanup` step 5). With
|
|
28
|
-
* cold-store, `access_log` rows older than 30 days are archived rather
|
|
29
|
-
* than deleted, so the TTL becomes effectively "forever". Keeping the
|
|
30
|
-
* column would mean either (a) double-evicting rows or (b) silently
|
|
31
|
-
* mismatching the new contract. Drop it.
|
|
32
|
-
*
|
|
33
|
-
* `down()` recreates `expires_at` with a default of `now() + 90 days`
|
|
34
|
-
* — best effort; rows inserted between `up()` and a hypothetical
|
|
35
|
-
* `down()` would not have meaningful retention bounds.
|
|
13
|
+
* `expires_at` drove a 90-day hard-delete sweep; cold-store archives `access_log` rows older
|
|
14
|
+
* than 30 days instead, so keeping the column would double-evict rows or contradict that
|
|
15
|
+
* contract. `down()` recreates it with a `now() + 90 days` default, best effort: rows inserted
|
|
16
|
+
* after `up()` get no meaningful retention bound.
|
|
36
17
|
*/
|
|
37
18
|
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
38
19
|
export declare function down(db: Kysely<unknown>): Promise<void>;
|
|
@@ -1,37 +1,22 @@
|
|
|
1
1
|
import { type Kysely } from 'kysely';
|
|
2
2
|
/**
|
|
3
|
-
* `event_log` cold-store schema
|
|
4
|
-
* `
|
|
3
|
+
* `event_log` cold-store schema: adds the `archived_at` /
|
|
4
|
+
* `archive_object_key` pair `007_audit_logs_archived_at.ts` added elsewhere
|
|
5
|
+
* (set inside the archive transaction before the DELETE; survivors carry
|
|
6
|
+
* NULL) and removes the `expires_at`-based 30-day hard delete.
|
|
5
7
|
*
|
|
6
|
-
*
|
|
8
|
+
* `idx_event_log_routing_received` exists because the cold-store partitions
|
|
9
|
+
* `event_log` by `routing_key` (NOT NULL here, so no synthetic-tenant
|
|
10
|
+
* fallback); `event_log_org_received_idx` is keyed by `org_id` and does not
|
|
11
|
+
* serve the per-tenant archiver scan.
|
|
7
12
|
*
|
|
8
|
-
*
|
|
9
|
-
* `
|
|
10
|
-
*
|
|
11
|
-
* transaction before the DELETE; survivors carry NULL.
|
|
13
|
+
* Rows older than 30 days are now archived rather than deleted; the per-row
|
|
14
|
+
* `payload_key` blob is retained indefinitely so the dashboard
|
|
15
|
+
* delivery-detail page can still load the body of archived deliveries.
|
|
12
16
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* is needed). The existing `event_log_org_received_idx` is keyed by
|
|
17
|
-
* `org_id`, fine for dashboard queries but not the per-tenant
|
|
18
|
-
* archiver scan.
|
|
19
|
-
*
|
|
20
|
-
* Drops `event_log.expires_at` and the matching
|
|
21
|
-
* `event_log_expires_at_idx` index. Before this migration, `expires_at`
|
|
22
|
-
* powered the 30-day hard-delete sweep in
|
|
23
|
-
* `packages/orchestrator/src/webhook/event-log.ts:cleanup`, called
|
|
24
|
-
* from `packages/orchestrator/src/queue/cleanup.ts:runCleanup` step 4
|
|
25
|
-
* (which also deleted the per-row `payload_key` blob from object
|
|
26
|
-
* storage). With cold-store, rows older than 30 days are archived
|
|
27
|
-
* rather than deleted; the per-row `payload_key` blob is retained
|
|
28
|
-
* indefinitely so the dashboard delivery-detail page can still load
|
|
29
|
-
* the body for archived deliveries.
|
|
30
|
-
*
|
|
31
|
-
* Per the project's "no backward compatibility (pre-release)" rule,
|
|
32
|
-
* `down()` recreates `expires_at` with a default of `now() + 30 days`
|
|
33
|
-
* — best effort; rows inserted between `up()` and a hypothetical
|
|
34
|
-
* `down()` would not have meaningful retention bounds.
|
|
17
|
+
* `down()` recreates `expires_at` defaulting to `now() + 30 days` — best
|
|
18
|
+
* effort; rows inserted between `up()` and `down()` get no meaningful
|
|
19
|
+
* retention bound.
|
|
35
20
|
*/
|
|
36
21
|
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
37
22
|
export declare function down(db: Kysely<unknown>): Promise<void>;
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
import { type Kysely } from 'kysely';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
3
|
+
* pg_trgm index on access_log.error_message for the Activity page's `q` search; matches the
|
|
4
|
+
* Platform's `008_audit_log_trigram.ts` (on `audit_log.details::text`).
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* Idempotent: `CREATE EXTENSION IF NOT EXISTS` and `CREATE INDEX IF NOT
|
|
10
|
-
* EXISTS` are both safe to re-run. No CONCURRENTLY because Kysely runs
|
|
11
|
-
* migrations inside a transaction; the lock is brief on a sampled table.
|
|
6
|
+
* Idempotent. No CONCURRENTLY because Kysely runs migrations inside a transaction; the lock is
|
|
7
|
+
* brief on a sampled table.
|
|
12
8
|
*/
|
|
13
9
|
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
14
10
|
export declare function down(db: Kysely<unknown>): Promise<void>;
|
|
@@ -1,33 +1,23 @@
|
|
|
1
1
|
import { type Kysely } from 'kysely';
|
|
2
2
|
/**
|
|
3
|
-
* Cold-store chunk index
|
|
3
|
+
* Cold-store chunk index: one row per archived chunk the GC sweep can later
|
|
4
|
+
* purge from S3. Written in the `markArchivedAndDelete` transaction, so a chunk
|
|
5
|
+
* is fully recorded (S3 + index + rollup + audit) or fully absent.
|
|
4
6
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* - `chunk_id` is the deterministic 16-hex chunk filename stem; the primary key
|
|
8
|
+
* `(db, table_name, chunk_id)` lets the framework `DELETE` without scanning.
|
|
9
|
+
* `db` is always `'orchestrator'` here, for shape parity with
|
|
10
|
+
* `cold_store_chunk_counts` and the Platform-side migration.
|
|
11
|
+
* - `bucket` is the S3 prefix segment (`'30d'` / `'180d'` / `'1y'` / `'2y'` /
|
|
12
|
+
* `'forever'`), for `cold-store list-chunks` / `list-purgeable` filtering.
|
|
13
|
+
* - `max_cold_days` is the row-level retention horizon, TEXT to hold numbers
|
|
14
|
+
* and `'forever'`. The GC sweep checks `max_cold_days != 'forever' AND
|
|
15
|
+
* now() > archived_at + (max_cold_days || ' days')::interval`.
|
|
16
|
+
* - `object_key` is the chunk's full S3 key, so the GC sweep calls
|
|
17
|
+
* `DeleteObject` without recomputing it.
|
|
9
18
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* - `chunk_id` is the deterministic 16-hex chunk filename stem; primary
|
|
13
|
-
* key is `(db, table_name, chunk_id)` so the framework can `DELETE`
|
|
14
|
-
* without scanning. The `db` column matches `cold_store_chunk_counts`
|
|
15
|
-
* (always `'orchestrator'` here, included for shape parity with the
|
|
16
|
-
* Platform-side migration).
|
|
17
|
-
* - `bucket` is the S3 prefix segment (`'30d'` / `'180d'` / `'1y'` /
|
|
18
|
-
* `'2y'` / `'forever'`). Carried for `cold-store list-chunks` /
|
|
19
|
-
* `list-purgeable` filtering.
|
|
20
|
-
* - `max_cold_days` is the row-level retention horizon — TEXT to
|
|
21
|
-
* accommodate both numeric values and the literal `'forever'`. The
|
|
22
|
-
* GC sweep checks `max_cold_days != 'forever' AND now() > archived_at
|
|
23
|
-
* + (max_cold_days || ' days')::interval`.
|
|
24
|
-
* - `object_key` is the full S3 key of the data chunk; the GC sweep
|
|
25
|
-
* uses this to issue `DeleteObject` directly without recomputing the
|
|
26
|
-
* key from the prefix.
|
|
27
|
-
*
|
|
28
|
-
* V1-manifest chunks are NOT in this table — they live
|
|
29
|
-
* forever. Adapters that don't opt into per-bucket archival via
|
|
30
|
-
* `coldTtlDays` don't insert here either.
|
|
19
|
+
* V1-manifest chunks are NOT here — they live forever — nor are chunks from
|
|
20
|
+
* adapters that do not opt into per-bucket archival via `coldTtlDays`.
|
|
31
21
|
*/
|
|
32
22
|
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
33
23
|
export declare function down(db: Kysely<unknown>): Promise<void>;
|
|
@@ -1,20 +1,12 @@
|
|
|
1
1
|
import { type Kysely } from 'kysely';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* `
|
|
3
|
+
* Drops `source_secrets_change_trigger` and `notify_source_secrets_change()`. Their only
|
|
4
|
+
* LISTEN/NOTIFY consumer, `WebhookSecretManager`, pushed webhook secrets to the Platform; the
|
|
5
|
+
* orchestrator now never sends secret material there (the Platform asks it to verify each
|
|
6
|
+
* webhook, reading `PgSecretStore`), so the NOTIFY traffic has no listener.
|
|
5
7
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* `scoped_secrets` and pushed them to the multi-tenant Platform via the
|
|
9
|
-
* `source.secrets` WS message. After the chunked-relay cutover the
|
|
10
|
-
* orchestrator never pushes secret material to Platform -- Platform asks
|
|
11
|
-
* the orchestrator to verify each inbound webhook on demand and the
|
|
12
|
-
* verifier reads secrets directly from `PgSecretStore` -- so the trigger
|
|
13
|
-
* is dead code and only emits NOTIFY traffic that nobody listens to.
|
|
14
|
-
*
|
|
15
|
-
* `down` re-creates the function + trigger as they were originally defined
|
|
16
|
-
* in `001_initial.ts`. They wake up no consumer until the `WebhookSecretManager`
|
|
17
|
-
* is restored, so this migration is safe to roll back.
|
|
8
|
+
* `down` re-creates both as defined in `001_initial.ts`; they wake no consumer, so the
|
|
9
|
+
* rollback is safe.
|
|
18
10
|
*/
|
|
19
11
|
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
20
12
|
export declare function down(db: Kysely<unknown>): Promise<void>;
|
|
@@ -4,22 +4,17 @@ import { type Kysely } from 'kysely';
|
|
|
4
4
|
* revoked_at IS NULL` so two ACTIVE rows for the same `instance_id` become a
|
|
5
5
|
* database-level impossibility.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* `
|
|
12
|
-
* nothing and both `INSERT`s succeeded, leaving 2+ ACTIVE rows for the same
|
|
13
|
-
* `instance_id`. The peer's local credential file then ended up holding a
|
|
14
|
-
* hash that a later concurrent `save()` had revoked, causing an endless
|
|
15
|
-
* "Peer HMAC proof invalid" loop.
|
|
7
|
+
* Why: `PeerCredentialStore.save()` ran an unguarded `UPDATE … SET revoked_at
|
|
8
|
+
* = NOW()` then `INSERT` (no transaction, no constraint), which races when a
|
|
9
|
+
* joining peer fans out one peer-client per coordinator: both `UPDATE`s revoke
|
|
10
|
+
* nothing, both `INSERT`s land, and the peer's credential file can hold a hash
|
|
11
|
+
* a concurrent `save()` revoked — an endless "Peer HMAC proof invalid" loop.
|
|
16
12
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* predate the constraint and existing databases may already hold the dupes.
|
|
13
|
+
* `up()` first dedupes existing duplicates (revokes all but the newest active
|
|
14
|
+
* row per `instance_id`), which databases from before the constraint may hold.
|
|
20
15
|
*
|
|
21
|
-
* `down()` only drops the index; it does NOT undo the dedupe (
|
|
22
|
-
*
|
|
16
|
+
* `down()` only drops the index; it does NOT undo the dedupe (revoked rows
|
|
17
|
+
* cannot be safely recreated, and the dedupe is monotonic).
|
|
23
18
|
*/
|
|
24
19
|
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
25
20
|
export declare function down(db: Kysely<unknown>): Promise<void>;
|