@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
|
@@ -1,33 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Filesystem cache backend routes. `FilesystemCacheStorage` mints signed
|
|
3
|
+
* `http://<orch>/api/v1/cache/blob/<key>?sig=<token>` URLs for agent GETs and PUTs; these
|
|
4
|
+
* routes verify the HMAC token, reject path traversal, and stream to / from `basePath`.
|
|
3
5
|
*
|
|
4
|
-
* `
|
|
5
|
-
* URLs
|
|
6
|
-
* routes verify the HMAC token, reject path traversal, and stream content
|
|
7
|
-
* to / from disk under the configured `basePath`.
|
|
8
|
-
*
|
|
9
|
-
* The S3 backend doesn't go through these routes — it uses real pre-signed
|
|
10
|
-
* URLs against the S3 endpoint. These routes are mounted only when the
|
|
11
|
-
* filesystem backend is active (`deps.fsCache` truthy in app.ts).
|
|
6
|
+
* Mounted only when the filesystem backend is active (`deps.fsCache` in app.ts); S3 uses real
|
|
7
|
+
* pre-signed URLs instead.
|
|
12
8
|
*/
|
|
13
9
|
import type { Hono } from 'hono';
|
|
14
10
|
/**
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* default), which the S3 backend uploads direct-to-S3 uncapped. Binding them
|
|
19
|
-
* to the tenant-webhook body limit would 413 legitimate large caches on the
|
|
20
|
-
* filesystem backend. The PUT route below enforces its own `maxUploadBytes`
|
|
21
|
-
* bound instead.
|
|
11
|
+
* The app-level webhook body-size cap MUST exempt this prefix: blob PUTs carry dependency
|
|
12
|
+
* tarballs up to `cacheMaxTarballBytes` (500MB default), which S3 uploads uncapped, and the
|
|
13
|
+
* webhook limit would 413 them. The PUT route enforces its own `maxUploadBytes` instead.
|
|
22
14
|
*/
|
|
23
15
|
export declare const CACHE_BLOB_PATH_PREFIX = "/api/v1/cache/blob/";
|
|
24
16
|
export interface FsCacheRouteDeps {
|
|
25
17
|
basePath: string;
|
|
26
18
|
signingSecret: string;
|
|
27
19
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* the same artifact sizes the S3 backend does.
|
|
20
|
+
* Bytes per blob PUT; aligned with `cacheMaxTarballBytes` (500MB default) so the filesystem
|
|
21
|
+
* backend accepts the sizes S3 does.
|
|
31
22
|
*/
|
|
32
23
|
maxUploadBytes: number;
|
|
33
24
|
}
|
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Filesystem-backed
|
|
2
|
+
* Filesystem-backed `CacheStorage`, the counterpart of `S3CacheStorage`, for
|
|
3
|
+
* single-host deployments and test sandboxes. Production should still use S3.
|
|
3
4
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* are replaced by HMAC-signed `http://<orchUrl>/api/v1/cache/blob/...` URLs
|
|
7
|
-
* — see `sign-url.ts` for the token mechanics and `app.ts` for the route.
|
|
5
|
+
* Pre-signed URLs become HMAC-signed `http://<orchUrl>/api/v1/cache/blob/...`
|
|
6
|
+
* URLs (token mechanics: `sign-url.ts`; route: `app.ts`).
|
|
8
7
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* Metadata is co-located as a sibling JSON file (`<key>.meta.json`) so the
|
|
13
|
-
* data file is byte-identical to what the agent receives over HTTP. TTL is
|
|
14
|
-
* enforced lazily on access — same model as the S3 backend.
|
|
8
|
+
* Metadata sits in a sibling `<key>.meta.json`, so the data file is
|
|
9
|
+
* byte-identical to what the agent receives over HTTP. TTL is enforced lazily
|
|
10
|
+
* on access, as in the S3 backend.
|
|
15
11
|
*/
|
|
16
12
|
import type { CacheMetadata, CacheStorage } from './types.js';
|
|
17
13
|
export interface FilesystemCacheStorageOptions {
|
|
@@ -34,9 +30,9 @@ export declare class FilesystemCacheStorage implements CacheStorage {
|
|
|
34
30
|
private readonly routePrefix;
|
|
35
31
|
constructor(options: FilesystemCacheStorageOptions);
|
|
36
32
|
/**
|
|
37
|
-
* Map a cache key to its on-disk path
|
|
38
|
-
*
|
|
39
|
-
*
|
|
33
|
+
* Map a cache key to its on-disk path (`/` becomes a directory separator).
|
|
34
|
+
* Rejects `..` segments and NUL bytes against path traversal, as the route
|
|
35
|
+
* layer also does.
|
|
40
36
|
*/
|
|
41
37
|
private resolvePath;
|
|
42
38
|
/** Public for the HTTP route. The route validates the key before calling. */
|
|
@@ -56,29 +52,23 @@ export declare class FilesystemCacheStorage implements CacheStorage {
|
|
|
56
52
|
getInternalUploadUrl(key: string): Promise<string>;
|
|
57
53
|
initMeta(key: string): Promise<void>;
|
|
58
54
|
/**
|
|
59
|
-
* List cache keys under a prefix
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* `restoreKeys` fallback lists on `${prefix}${seg(restoreKey)}`, a partial
|
|
63
|
-
* object name. Two shapes, and both must work the way the S3 backend does:
|
|
55
|
+
* List cache keys under a **key prefix**, which need not be a directory:
|
|
56
|
+
* `UserCache`'s `restoreKeys` fallback lists on `${prefix}${seg(restoreKey)}`,
|
|
57
|
+
* a partial object name. Both shapes must behave as on S3:
|
|
64
58
|
*
|
|
65
59
|
* - trailing `/` — a directory. Walk it directly; this is the hot path.
|
|
66
|
-
* - no trailing `/` — a partial name. Walk the parent
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* Reading the prefix as a directory in the second case is what made the
|
|
70
|
-
* `restoreKeys` fallback silently never hit here (`ENOENT` → `[]`) or throw
|
|
71
|
-
* (`ENOTDIR`, when a real object carried that exact name).
|
|
60
|
+
* - no trailing `/` — a partial name. Walk the parent and filter by the
|
|
61
|
+
* prefix, which may name a file or nothing at all. Reading it as a
|
|
62
|
+
* directory made `restoreKeys` never hit (`ENOENT`) or throw (`ENOTDIR`).
|
|
72
63
|
*/
|
|
73
64
|
list(subPrefix: string): Promise<string[]>;
|
|
74
65
|
getMetadata(key: string): Promise<CacheMetadata | null>;
|
|
75
66
|
getObjectSize(key: string): Promise<number | null>;
|
|
76
67
|
copy(srcKey: string, destKey: string): Promise<void>;
|
|
77
68
|
/**
|
|
78
|
-
* Recursively collect data files under `dir
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
* `list()` only surfaces real cache objects.
|
|
69
|
+
* Recursively collect data files under `dir` as `basePath`-relative keys with
|
|
70
|
+
* their mtime, skipping `*.meta.json` sidecars and `*.tmp-*` atomic-write
|
|
71
|
+
* temp files so `list()` surfaces only real cache objects.
|
|
82
72
|
*/
|
|
83
73
|
private walkDataFiles;
|
|
84
74
|
private signedUrl;
|
package/dist/storage/index.d.ts
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Cache storage
|
|
3
|
-
*
|
|
4
|
-
* Pluggable storage backends:
|
|
5
|
-
* - S3CacheStorage — production / multi-host
|
|
6
|
-
* - FilesystemCacheStorage — single-host / test sandbox
|
|
7
|
-
*
|
|
8
|
-
* Use createCacheStorage() to instantiate from a discriminated config.
|
|
2
|
+
* Cache storage backends: S3CacheStorage (production / multi-host) and FilesystemCacheStorage
|
|
3
|
+
* (single-host / test sandbox), built by createCacheStorage() from a discriminated config.
|
|
9
4
|
*/
|
|
10
5
|
export type { CacheStorage, CacheStorageConfig, CacheMetadata, S3CacheStorageConfig, FilesystemCacheStorageConfig, } from './types.js';
|
|
11
6
|
export { S3CacheStorage } from './s3.js';
|
|
@@ -13,8 +8,5 @@ export { FilesystemCacheStorage } from './filesystem.js';
|
|
|
13
8
|
export { signToken, verifyToken, generateSigningSecret } from './sign-url.js';
|
|
14
9
|
export type { SignedMethod, SignedToken, VerifyResult } from './sign-url.js';
|
|
15
10
|
import type { CacheStorage, CacheStorageConfig } from './types.js';
|
|
16
|
-
/**
|
|
17
|
-
* Create a cache storage backend from configuration.
|
|
18
|
-
*/
|
|
19
11
|
export declare function createCacheStorage(config: CacheStorageConfig): CacheStorage;
|
|
20
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Width of the object-key discriminator, in hex characters.
|
|
2
|
+
* Width of the object-key discriminator, in hex characters (32 = 128 bits).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* and land two different payloads on one object.
|
|
4
|
+
* A security property: on a case-insensitive namespace the discriminator alone
|
|
5
|
+
* separates object names chosen by untrusted workflow code, and a narrower one
|
|
6
|
+
* would let that code search case variants for a collision and land two
|
|
7
|
+
* payloads on one object.
|
|
9
8
|
*/
|
|
10
9
|
export declare const KEY_DISCRIMINATOR_LENGTH = 32;
|
|
11
10
|
/**
|
|
12
11
|
* A collision-resistant discriminator for a user-supplied object-key segment.
|
|
13
12
|
*
|
|
14
|
-
* Hashes the **exact** name
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* the pre-sanitization name is what keeps each of those pairs two objects.
|
|
13
|
+
* Hashes the **exact** pre-sanitization name: `seg()` maps both `/` and `_` to
|
|
14
|
+
* `_` (`a/b` and `a_b` collapse), and a case-insensitive backend folds `build`
|
|
15
|
+
* onto `Build`, so only the hash keeps each pair two objects.
|
|
18
16
|
*/
|
|
19
17
|
export declare function keyDiscriminator(exact: string): string;
|
|
20
18
|
//# sourceMappingURL=key-discriminator.d.ts.map
|
|
@@ -1,45 +1,35 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Startup guard: an orchestrator
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* opaque ECONNREFUSED. This module detects the misconfiguration so the
|
|
6
|
-
* orchestrator can refuse to start with a clear, actionable error.
|
|
2
|
+
* Startup guard: an orchestrator running non-co-located agents must not hand them a loopback
|
|
3
|
+
* storage URL, which only a co-located process reaches (a scaled agent fails with an opaque
|
|
4
|
+
* ECONNREFUSED). It refuses to start with an actionable error instead.
|
|
7
5
|
*/
|
|
8
6
|
import { ScalerBackendType } from '@kici-dev/engine';
|
|
9
7
|
import type { AppConfig } from '../config.js';
|
|
10
8
|
import type { ScalerConfig } from '../scaler/types.js';
|
|
11
9
|
/**
|
|
12
|
-
* Backends that place the agent outside the orchestrator's loopback (separate
|
|
13
|
-
*
|
|
14
|
-
* `
|
|
15
|
-
* it today.
|
|
10
|
+
* Backends that place the agent outside the orchestrator's loopback (separate netns, microVM,
|
|
11
|
+
* or host) unless the entry says otherwise. `kubernetes` is included defensively although
|
|
12
|
+
* `ScalerEntry.type` excludes it.
|
|
16
13
|
*
|
|
17
|
-
* Backend type
|
|
18
|
-
*
|
|
19
|
-
* fallback. When an entry declares its own `orchestratorUrl`, that URL says
|
|
20
|
-
* where the agent will be, and `scalerIsColocated` reads it instead.
|
|
14
|
+
* Backend type is only the fallback signal (a `bare-metal` scaler may spawn locally or
|
|
15
|
+
* remotely): an entry's own `orchestratorUrl` takes precedence in `scalerIsColocated`.
|
|
21
16
|
*/
|
|
22
17
|
export declare const NON_COLOCATED_BACKENDS: ReadonlySet<ScalerBackendType>;
|
|
23
18
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* For a listener's bind address the question is the opposite one; use
|
|
29
|
-
* `isLoopbackBind`.
|
|
19
|
+
* Whether a DESTINATION URL host is unreachable from another netns/VM/host. A wildcard
|
|
20
|
+
* (`0.0.0.0`, `::`) is not a destination, so it counts as loopback here. For a listener's
|
|
21
|
+
* bind address, use `isLoopbackBind`.
|
|
30
22
|
*/
|
|
31
23
|
export declare function isLoopbackHost(hostname: string): boolean;
|
|
32
24
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* predicate and `isLoopbackHost` disagree.
|
|
25
|
+
* Whether a listener on this BIND address stays on this machine. A wildcard (`0.0.0.0`, `::`)
|
|
26
|
+
* accepts every interface, so it is NOT loopback here: the only disagreement with
|
|
27
|
+
* `isLoopbackHost`.
|
|
37
28
|
*/
|
|
38
29
|
export declare function isLoopbackBind(hostname: string): boolean;
|
|
39
30
|
/**
|
|
40
|
-
*
|
|
41
|
-
* non-co-located agent
|
|
42
|
-
* when the configuration is safe.
|
|
31
|
+
* A remediation message when the agent-facing storage URL is a loopback address a
|
|
32
|
+
* non-co-located agent cannot reach; null when the configuration is safe.
|
|
43
33
|
*/
|
|
44
34
|
export declare function checkLoopbackAgentEndpoint(input: {
|
|
45
35
|
agentFacingUrl: string | null;
|
|
@@ -53,9 +43,8 @@ export declare function checkLoopbackAgentEndpoint(input: {
|
|
|
53
43
|
message: string;
|
|
54
44
|
} | null;
|
|
55
45
|
/**
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* storage backend has no agent-facing URL to validate.
|
|
46
|
+
* The URL an AGENT uses to reach storage, and the env var that fixes a loopback
|
|
47
|
+
* misconfiguration; null when the backend has no agent-facing URL.
|
|
59
48
|
*/
|
|
60
49
|
export declare function resolveAgentFacingStorage(config: AppConfig): {
|
|
61
50
|
url: string | null;
|
|
@@ -73,24 +62,17 @@ export declare function assertAgentReachableStorage(config: AppConfig, scalerCon
|
|
|
73
62
|
* bound to something other than a loopback address.
|
|
74
63
|
*
|
|
75
64
|
* `KICI_AGENT_AUTH=none` answers `auth.success` to any `auth.request`
|
|
76
|
-
* (`ws/agent-handler.ts`), so
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
* operator's own agent. No credential is involved anywhere in that sequence.
|
|
65
|
+
* (`ws/agent-handler.ts`), so on a routable address anyone who reaches the port becomes a
|
|
66
|
+
* registered agent with no credential: it receives dispatched jobs (with the org's resolved
|
|
67
|
+
* secrets in hybrid mode) and reports results as the operator's own agent.
|
|
80
68
|
*
|
|
81
|
-
* `none` is a local-development affordance,
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
* shipped in exactly this state — so this refuses, following the sibling guard
|
|
85
|
-
* above: an orchestrator misconfiguration that produces a confusing failure
|
|
86
|
-
* later must refuse to start with an actionable message.
|
|
69
|
+
* `none` is a local-development affordance, never intended with a bind other hosts can reach.
|
|
70
|
+
* A startup warning alone proved insufficient, so this refuses to start, like the storage
|
|
71
|
+
* guard above.
|
|
87
72
|
*
|
|
88
|
-
*
|
|
89
|
-
* `
|
|
90
|
-
*
|
|
91
|
-
* storage URL, and the opposite of what a listener on it does. So the guard
|
|
92
|
-
* covers the default bind, which is the configuration an operator reaches
|
|
93
|
-
* without setting `KICI_HOST` at all.
|
|
73
|
+
* It uses `isLoopbackBind`, not `isLoopbackHost`: the default `KICI_HOST` is the wildcard
|
|
74
|
+
* `0.0.0.0`, which `isLoopbackHost` reports as loopback, so only `isLoopbackBind` covers the
|
|
75
|
+
* default bind an operator gets without setting `KICI_HOST`.
|
|
94
76
|
*/
|
|
95
77
|
export declare function assertAgentAuthBindSafe(config: AppConfig): void;
|
|
96
78
|
//# sourceMappingURL=loopback-guard.d.ts.map
|
package/dist/storage/s3.d.ts
CHANGED
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* S3-backed cache storage.
|
|
2
|
+
* S3-backed cache storage; AWS SDK v3 modules load only when S3 storage is configured.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* Uses AWS SDK v3 modular imports -- only loaded when S3 storage is configured.
|
|
6
|
-
*
|
|
7
|
-
* Metadata storage:
|
|
4
|
+
* TTL metadata headers:
|
|
8
5
|
* x-amz-meta-created-at -- ISO timestamp of creation
|
|
9
6
|
* x-amz-meta-last-accessed-at -- ISO timestamp of last access
|
|
10
7
|
*
|
|
11
8
|
* TTL is enforced lazily: expired items are deleted on access.
|
|
12
|
-
* Pre-signed URLs are generated for getUrl() with 15-minute expiry.
|
|
13
9
|
*/
|
|
14
10
|
import type { CacheMetadata, CacheStorage } from './types.js';
|
|
15
11
|
export interface S3CacheStorageOptions {
|
|
@@ -20,85 +16,62 @@ export interface S3CacheStorageOptions {
|
|
|
20
16
|
/** Custom endpoint URL for S3-compatible services (e.g., SeaweedFS, LocalStack) */
|
|
21
17
|
endpoint?: string;
|
|
22
18
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* Useful when the orchestrator accesses S3 on localhost but agents
|
|
26
|
-
* need a container-routable address (e.g., container DNS name).
|
|
19
|
+
* Endpoint for pre-signed URLs (upload and download) instead of `endpoint`, e.g. when the
|
|
20
|
+
* orchestrator reaches S3 on localhost but agents need a container DNS name.
|
|
27
21
|
*/
|
|
28
22
|
externalEndpoint?: string;
|
|
29
23
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* uses localhost). When unset, `getInternalUploadUrl` signs with the
|
|
35
|
-
* agent-facing `externalEndpoint`, else with `endpoint`.
|
|
24
|
+
* Endpoint for the pre-signed URL a developer machine running `kici run remote` PUTs the
|
|
25
|
+
* overlay to, which may differ from the orchestrator's and agents' (compose DNS name vs the
|
|
26
|
+
* host CLI's localhost). When unset, `getInternalUploadUrl` signs with `externalEndpoint`,
|
|
27
|
+
* else `endpoint`.
|
|
36
28
|
*/
|
|
37
29
|
uploadEndpoint?: string;
|
|
38
|
-
/**
|
|
30
|
+
/** Path-style instead of virtual-hosted-style access (most S3-compatible services need it). */
|
|
39
31
|
forcePathStyle?: boolean;
|
|
40
32
|
}
|
|
41
33
|
export declare class S3CacheStorage implements CacheStorage {
|
|
42
34
|
private readonly client;
|
|
43
|
-
/**
|
|
35
|
+
/** Pre-signing client: externalEndpoint when configured. */
|
|
44
36
|
private readonly presignClient;
|
|
45
37
|
/** Client for the developer upload URL: uploadEndpoint, else the presign client. */
|
|
46
38
|
private readonly uploadPresignClient;
|
|
47
39
|
private readonly bucket;
|
|
48
40
|
private readonly prefix;
|
|
49
41
|
private readonly ttlMs;
|
|
50
|
-
/**
|
|
51
|
-
* False once the backend answered a conditional self-copy with
|
|
52
|
-
* `501 NotImplemented`. From then on `updateMeta` copies unconditionally.
|
|
53
|
-
*/
|
|
42
|
+
/** False once the backend answered a conditional self-copy with `501 NotImplemented`. */
|
|
54
43
|
private conditionalCopySupported;
|
|
55
44
|
constructor(options: S3CacheStorageOptions);
|
|
56
|
-
/** Build the full S3 object key from a cache key. */
|
|
57
45
|
private objectKey;
|
|
58
46
|
/** Check if metadata indicates an expired item, honoring a per-op TTL override. */
|
|
59
47
|
private isExpired;
|
|
60
|
-
/**
|
|
61
|
-
* Read metadata from an S3 object's custom headers.
|
|
62
|
-
* Returns null if the object doesn't exist (NoSuchKey/NotFound).
|
|
63
|
-
*/
|
|
48
|
+
/** Null when the object does not exist (NoSuchKey/NotFound). */
|
|
64
49
|
private readMeta;
|
|
65
|
-
/**
|
|
66
|
-
* Read an object's TTL metadata together with the ETag of the version it
|
|
67
|
-
* belongs to. Returns null if the object doesn't exist (NoSuchKey/NotFound).
|
|
68
|
-
*/
|
|
50
|
+
/** TTL metadata plus the ETag of its version; null when the object does not exist. */
|
|
69
51
|
private readHead;
|
|
70
52
|
/**
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
* read. A self-copy is a whole-object write: without the condition, one that
|
|
76
|
-
* races a `put()` of the same key can land after it and write the older body
|
|
77
|
-
* back. Cache pointers are rewritten in place while builds publish them, so a
|
|
78
|
-
* touch-on-read racing a publish reverted the pointer to a tarball that no
|
|
79
|
-
* longer exists. `CopySourceIfMatch` pins the bytes copied to that version and
|
|
80
|
-
* `IfMatch` refuses the write unless the key still holds it.
|
|
53
|
+
* Updates metadata by self-copy, conditional on `etag` (the version the caller read). A
|
|
54
|
+
* self-copy is a whole-object write: unconditioned, one racing a `put()` of the key can write
|
|
55
|
+
* the older body back, reverting a cache pointer to a deleted tarball. `CopySourceIfMatch`
|
|
56
|
+
* pins the copied bytes; `IfMatch` refuses the write unless the key still holds that version.
|
|
81
57
|
*
|
|
82
|
-
* Returns false when the object was replaced since the read (`412`)
|
|
83
|
-
*
|
|
84
|
-
* write stamps metadata of its own, so there is nothing left to refresh.
|
|
58
|
+
* Returns false when the object was replaced since the read (`412`) or is being replaced
|
|
59
|
+
* (`409 ConditionalRequestConflict`): the newer write stamps its own metadata.
|
|
85
60
|
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
* condition, and later copies skip it, as on a backend that ignores the
|
|
89
|
-
* headers.
|
|
61
|
+
* A backend without conditional copies answers `501 NotImplemented`; the copy reruns
|
|
62
|
+
* unconditionally, and later copies skip the condition.
|
|
90
63
|
*/
|
|
91
64
|
private updateMeta;
|
|
92
65
|
/** Copy an object onto itself with new TTL metadata, conditional on `etag` when given. */
|
|
93
66
|
private copyOntoItself;
|
|
94
|
-
/**
|
|
67
|
+
/** A failed conditional request (PreconditionFailed, 412). */
|
|
95
68
|
private isPreconditionFailedError;
|
|
96
|
-
/**
|
|
69
|
+
/** A conditional write that raced another write (ConditionalRequestConflict, 409). */
|
|
97
70
|
private isConditionalConflictError;
|
|
98
|
-
/**
|
|
71
|
+
/** A request the backend does not implement (NotImplemented, 501). */
|
|
99
72
|
private isNotImplementedError;
|
|
100
73
|
private hasErrorShape;
|
|
101
|
-
/**
|
|
74
|
+
/** NoSuchKey, NotFound or 404. */
|
|
102
75
|
private isNotFoundError;
|
|
103
76
|
put(key: string, data: Buffer | string): Promise<void>;
|
|
104
77
|
get(key: string, ttlMsOverride?: number): Promise<Buffer | null>;
|
|
@@ -1,25 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* HMAC-
|
|
3
|
-
*
|
|
4
|
-
* Pre-signed S3 URLs are not available for filesystem storage, so the
|
|
5
|
-
* filesystem backend mints HMAC-SHA256 tokens that the orchestrator's HTTP
|
|
6
|
-
* blob route verifies before serving / writing a file. Token shape:
|
|
2
|
+
* HMAC-SHA256 URL tokens for the filesystem cache backend (which has no pre-signed S3 URLs);
|
|
3
|
+
* the blob route verifies them before serving / writing a file. Token shape:
|
|
7
4
|
*
|
|
8
5
|
* `${expiresUnixMs}.${hexSig}`
|
|
9
6
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* for the lifetime of the process). Tokens become invalid on orchestrator
|
|
13
|
-
* restart — fine for the filesystem backend's single-host / test-sandbox use
|
|
14
|
-
* case.
|
|
7
|
+
* Signs `${method}:${key}:${expiresUnixMs}` with a per-process secret (random 32 bytes at
|
|
8
|
+
* boot), so tokens die on orchestrator restart — fine for single-host / test-sandbox use.
|
|
15
9
|
*/
|
|
16
|
-
/** Default URL lifetime: 1 hour
|
|
10
|
+
/** Default URL lifetime: 1 hour. */
|
|
17
11
|
export declare const DEFAULT_SIGN_URL_TTL_MS: number;
|
|
18
12
|
export type SignedMethod = 'GET' | 'PUT';
|
|
19
|
-
/**
|
|
20
|
-
* Generate a fresh per-process signing secret. Caller stores it on the
|
|
21
|
-
* orchestrator config object so the same value is used for sign + verify.
|
|
22
|
-
*/
|
|
13
|
+
/** The caller stores it on the orchestrator config, so sign and verify share it. */
|
|
23
14
|
export declare function generateSigningSecret(): string;
|
|
24
15
|
export interface SignedToken {
|
|
25
16
|
/** Encoded token string (`${expiresMs}.${sig}`) ready to drop into a URL. */
|
|
@@ -27,9 +18,6 @@ export interface SignedToken {
|
|
|
27
18
|
/** Expiry timestamp in unix ms — exposed for tests and logging. */
|
|
28
19
|
expiresMs: number;
|
|
29
20
|
}
|
|
30
|
-
/**
|
|
31
|
-
* Mint a signed token for the given (method, key, expiry) triple.
|
|
32
|
-
*/
|
|
33
21
|
export declare function signToken(secret: string, method: SignedMethod, key: string, ttlMs?: number): SignedToken;
|
|
34
22
|
export type VerifyResult = {
|
|
35
23
|
ok: true;
|
|
@@ -38,9 +26,6 @@ export type VerifyResult = {
|
|
|
38
26
|
ok: false;
|
|
39
27
|
reason: 'malformed' | 'expired' | 'bad-signature';
|
|
40
28
|
};
|
|
41
|
-
/**
|
|
42
|
-
* Verify a token. Constant-time signature compare on hex digest length;
|
|
43
|
-
* rejects malformed shapes and expired tokens up-front.
|
|
44
|
-
*/
|
|
29
|
+
/** Constant-time signature compare; rejects malformed and expired tokens up-front. */
|
|
45
30
|
export declare function verifyToken(secret: string, method: SignedMethod, key: string, token: string): VerifyResult;
|
|
46
31
|
//# sourceMappingURL=sign-url.d.ts.map
|