@kici-dev/orchestrator 0.16.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/agent-version.d.ts +12 -21
- package/dist/agent/dispatcher.d.ts +283 -437
- package/dist/agent/host-roster-reaper.d.ts +8 -10
- package/dist/agent/host-roster.d.ts +77 -100
- package/dist/agent/ownership-refusal.d.ts +3 -5
- package/dist/agent/ownership-tracker.d.ts +42 -76
- package/dist/agent/registry.d.ts +121 -233
- package/dist/agent/token-store.d.ts +34 -77
- package/dist/agent-packaging/availability.d.ts +6 -9
- package/dist/agent-packaging/download.d.ts +6 -9
- package/dist/agent-packaging/install-closure.d.ts +9 -12
- package/dist/agent-packaging/node-binary.d.ts +6 -10
- package/dist/agent-packaging/node-runtime-members.d.ts +3 -5
- package/dist/agent-packaging/refresh.d.ts +12 -16
- package/dist/agent-packaging/store.d.ts +5 -6
- package/dist/agent-packaging/upload.d.ts +3 -4
- package/dist/app.d.ts +0 -3
- package/dist/approvals/apply-decision.d.ts +39 -45
- package/dist/approvals/approval-resolver.d.ts +11 -23
- package/dist/approvals/held-run-release-wiring.d.ts +14 -21
- package/dist/approvals/independent-wiring.d.ts +13 -20
- package/dist/approvals/resume-router.d.ts +1 -1
- package/dist/approvals/step-approval-bridge.d.ts +11 -21
- package/dist/approvals/triggerer-subject.d.ts +8 -10
- package/dist/artifacts/artifact-store.d.ts +55 -95
- package/dist/artifacts/failure-messages.d.ts +15 -20
- package/dist/audit/access-log.d.ts +27 -45
- package/dist/audit/sampling-rate-limiter.d.ts +11 -23
- package/dist/cache/agent-job-failed-error.d.ts +2 -3
- package/dist/cache/build-coordinator.d.ts +5 -28
- package/dist/cache/cache-upload-settle.d.ts +11 -11
- package/dist/cache/dep-cache.d.ts +32 -60
- package/dist/cache/dispatch-cache-ref-tracker.d.ts +15 -23
- package/dist/cache/global-eval-round-cache.d.ts +33 -41
- package/dist/cache/pending-builds.d.ts +2 -6
- package/dist/cache/pending-dynamics.d.ts +2 -7
- package/dist/cache/pending-global-evals.d.ts +9 -12
- package/dist/cache/pending-inits.d.ts +11 -22
- package/dist/cache/pending-precursor-db-watcher.d.ts +24 -32
- package/dist/cache/pending-tracker.d.ts +17 -45
- package/dist/cache/precursor-result.d.ts +17 -30
- package/dist/cache/source-cache.d.ts +36 -65
- package/dist/cache/user-cache.d.ts +21 -25
- package/dist/cancel/cancel-held-run.d.ts +13 -16
- package/dist/cancel/cancel-route-answer.d.ts +1 -2
- package/dist/cancel/cancel-run.d.ts +26 -50
- package/dist/cancel/dashboard-cancel-handler.d.ts +2 -2
- package/dist/cancel/peer-job-cancel.d.ts +11 -14
- package/dist/cancel/sweep-stuck-cancelling.d.ts +9 -13
- package/dist/cli/api-client.d.ts +33 -76
- package/dist/cli/commands/access-log.d.ts +4 -24
- package/dist/cli/commands/agent-package.d.ts +7 -15
- package/dist/cli/commands/agent-service/agent-env.d.ts +3 -6
- package/dist/cli/commands/agent-service/index.d.ts +4 -10
- package/dist/cli/commands/agent-service/install.d.ts +4 -11
- package/dist/cli/commands/agent-service/status.d.ts +4 -9
- package/dist/cli/commands/agent-service/upgrade.d.ts +4 -16
- package/dist/cli/commands/agent.d.ts +12 -25
- package/dist/cli/commands/api-key.d.ts +7 -7
- package/dist/cli/commands/attestations-list.d.ts +7 -17
- package/dist/cli/commands/attestations-retry.d.ts +5 -11
- package/dist/cli/commands/attestations-reverify.d.ts +4 -5
- package/dist/cli/commands/attestations.d.ts +3 -8
- package/dist/cli/commands/audit.d.ts +1 -5
- package/dist/cli/commands/backend.d.ts +2 -11
- package/dist/cli/commands/check-run.d.ts +7 -18
- package/dist/cli/commands/cluster-name.d.ts +5 -12
- package/dist/cli/commands/cluster-settings.d.ts +28 -53
- package/dist/cli/commands/cold-store.d.ts +7 -15
- package/dist/cli/commands/config.d.ts +9 -20
- package/dist/cli/commands/context.d.ts +8 -20
- package/dist/cli/commands/dashboard-encryption-key.d.ts +9 -14
- package/dist/cli/commands/db-backup.d.ts +17 -32
- package/dist/cli/commands/db.d.ts +3 -4
- package/dist/cli/commands/debug-bundle.d.ts +3 -10
- package/dist/cli/commands/diagnose.d.ts +3 -14
- package/dist/cli/commands/event-dlq.d.ts +4 -12
- package/dist/cli/commands/event-log.d.ts +2 -20
- package/dist/cli/commands/execution.d.ts +3 -9
- package/dist/cli/commands/firecracker/index.d.ts +3 -6
- package/dist/cli/commands/held-run.d.ts +23 -37
- package/dist/cli/commands/host.d.ts +4 -11
- package/dist/cli/commands/inspect-bundle.d.ts +3 -11
- package/dist/cli/commands/local-hook.d.ts +2 -10
- package/dist/cli/commands/local-trigger.d.ts +2 -2
- package/dist/cli/commands/orchestrator-service/drain.d.ts +3 -6
- package/dist/cli/commands/orchestrator-service/index.d.ts +6 -14
- package/dist/cli/commands/orchestrator-service/install-env.d.ts +25 -49
- package/dist/cli/commands/orchestrator-service/install.d.ts +2 -5
- package/dist/cli/commands/orchestrator-service/status.d.ts +10 -22
- package/dist/cli/commands/orchestrator-service/upgrade.d.ts +6 -15
- package/dist/cli/commands/org-settings.d.ts +5 -11
- package/dist/cli/commands/peer.d.ts +5 -10
- package/dist/cli/commands/queue.d.ts +3 -9
- package/dist/cli/commands/registration.d.ts +4 -8
- package/dist/cli/commands/remote-source.d.ts +6 -12
- package/dist/cli/commands/rotate.d.ts +1 -5
- package/dist/cli/commands/runs.d.ts +1 -30
- package/dist/cli/commands/scaler.d.ts +5 -12
- package/dist/cli/commands/secret.d.ts +1 -9
- package/dist/cli/commands/service-health.d.ts +5 -10
- package/dist/cli/commands/shared/admin-cli-access-log.d.ts +10 -19
- package/dist/cli/commands/shared/bare-metal-binary-check.d.ts +86 -0
- package/dist/cli/commands/shared/cli-action.d.ts +1 -4
- package/dist/cli/commands/shared/confirm.d.ts +5 -10
- package/dist/cli/commands/shared/db.d.ts +1 -12
- package/dist/cli/commands/shared/env-file-mode.d.ts +6 -9
- package/dist/cli/commands/shared/secret-input.d.ts +7 -21
- package/dist/cli/commands/shared/service-verbs.d.ts +6 -12
- package/dist/cli/commands/shared/unbound-context-warning.d.ts +2 -4
- package/dist/cli/commands/shared/upgrade-hooks.d.ts +7 -16
- package/dist/cli/commands/shared/upgrade-safety.d.ts +20 -31
- package/dist/cli/commands/shared/versioned-upgrade.d.ts +83 -161
- package/dist/cli/commands/signing-key.d.ts +4 -9
- package/dist/cli/commands/source-manifest.d.ts +11 -14
- package/dist/cli/commands/source.d.ts +7 -32
- package/dist/cli/commands/token.d.ts +4 -15
- package/dist/cli/commands/trust-policy.d.ts +35 -88
- package/dist/cli/commands/variable.d.ts +3 -5
- package/dist/cli/commands/workflow.d.ts +3 -24
- package/dist/cli/join.d.ts +3 -6
- package/dist/cli/kici-admin.d.ts +11 -29
- package/dist/cli/lazy-deps/cache.d.ts +1 -14
- package/dist/cli/lazy-deps/downloader.d.ts +4 -27
- package/dist/cli/lazy-deps/registry.d.ts +5 -25
- package/dist/cli/local-github-ingress-url.d.ts +5 -7
- package/dist/cli/loopback-callback.d.ts +6 -7
- package/dist/cli/open-browser.d.ts +4 -8
- package/dist/cli/root-option-routing.d.ts +17 -29
- package/dist/cli/service/backup-timer.d.ts +16 -39
- package/dist/cli/service/compose-path.d.ts +3 -7
- package/dist/cli/service/compose.d.ts +12 -30
- package/dist/cli/service/deploy-env.d.ts +6 -18
- package/dist/cli/service/entrypoint.d.ts +14 -25
- package/dist/cli/service/env-assignment.d.ts +6 -17
- package/dist/cli/service/image-digests.d.ts +6 -15
- package/dist/cli/service/index.d.ts +2 -18
- package/dist/cli/service/instance/index-file.d.ts +9 -16
- package/dist/cli/service/instance/manifest.d.ts +33 -59
- package/dist/cli/service/instance/resolve.d.ts +32 -68
- package/dist/cli/service/instance/types.d.ts +12 -29
- package/dist/cli/service/launchd.d.ts +29 -60
- package/dist/cli/service/platform-detect.d.ts +13 -68
- package/dist/cli/service/privilege.d.ts +12 -25
- package/dist/cli/service/shutdown-grace.d.ts +11 -20
- package/dist/cli/service/systemd.d.ts +7 -20
- package/dist/cli/service/types.d.ts +63 -114
- package/dist/cli/service/windows-acl.d.ts +14 -21
- package/dist/cli/service/windows-env-file.d.ts +10 -28
- package/dist/cli/service/windows.d.ts +15 -31
- package/dist/cli/webhook-url-notes.d.ts +4 -6
- package/dist/cli/wizard/agent-wizard.d.ts +3 -14
- package/dist/cli/wizard/orchestrator-wizard.d.ts +12 -37
- package/dist/cli/wizard/prompts.d.ts +6 -16
- package/dist/cli.js +4553 -6556
- package/dist/cluster/cluster-identity.d.ts +20 -32
- package/dist/cluster/cluster-settings-reader.d.ts +50 -77
- package/dist/cluster/coordinator-credential.d.ts +4 -5
- package/dist/cluster/coordinator.d.ts +76 -148
- package/dist/cluster/health-api.d.ts +2 -10
- package/dist/cluster/index.d.ts +1 -6
- package/dist/cluster/instance-heartbeat.d.ts +26 -42
- package/dist/cluster/join-client.d.ts +4 -7
- package/dist/cluster/join-handler.d.ts +3 -7
- package/dist/cluster/join-token.d.ts +13 -27
- package/dist/cluster/leader-gated-scheduler.d.ts +8 -17
- package/dist/cluster/orphan-recovery.d.ts +13 -35
- package/dist/cluster/peer-auth-coordinator.d.ts +2 -8
- package/dist/cluster/peer-client.d.ts +46 -76
- package/dist/cluster/peer-credentials.d.ts +24 -70
- package/dist/cluster/peer-crypto.d.ts +5 -26
- package/dist/cluster/peer-forget.d.ts +3 -3
- package/dist/cluster/peer-handler.d.ts +47 -71
- package/dist/cluster/peer-registry.d.ts +37 -106
- package/dist/cluster/plan-headroom-store.d.ts +4 -6
- package/dist/cluster/raft-state.d.ts +4 -13
- package/dist/cluster/raft.d.ts +18 -53
- package/dist/cluster/reconcile-identity.d.ts +8 -11
- package/dist/cluster/rerouted-job-guard.d.ts +7 -11
- package/dist/cluster/verified-issuer.d.ts +2 -3
- package/dist/cluster/worker-cluster-settings.d.ts +7 -10
- package/dist/cluster/worker-eviction.d.ts +16 -26
- package/dist/cold-store/load-access-log-range.d.ts +15 -31
- package/dist/cold-store/load-event-log-range.d.ts +13 -27
- package/dist/cold-store/load-secret-audit-log-range.d.ts +8 -12
- package/dist/cold-store/orchestrator-cold-store.d.ts +8 -28
- package/dist/cold-store/tables/access-log.d.ts +12 -14
- package/dist/cold-store/tables/event-log.d.ts +4 -8
- package/dist/cold-store/tables/execution-runs.d.ts +6 -11
- package/dist/cold-store/tables/secret-audit-log.d.ts +5 -12
- package/dist/concurrency/dispatch-next-queued.d.ts +13 -25
- package/dist/concurrency/queue-manager.d.ts +22 -54
- package/dist/concurrency/waiters.d.ts +15 -31
- package/dist/config/encryption.d.ts +0 -2
- package/dist/config/loader.d.ts +0 -1
- package/dist/config/reload.d.ts +0 -6
- package/dist/config/resolver.d.ts +0 -4
- package/dist/config/shared-store.d.ts +0 -2
- package/dist/config/types.d.ts +0 -3
- package/dist/content-requirements-cache.d.ts +0 -1
- package/dist/contexts/context-store.d.ts +0 -2
- package/dist/contexts/held-runs.d.ts +0 -2
- package/dist/contexts/variable-store.d.ts +0 -2
- package/dist/dashboard/attestation-filters.d.ts +13 -18
- package/dist/dashboard/handler.d.ts +143 -307
- package/dist/db/client.d.ts +2 -6
- package/dist/db/deferred-index-build.d.ts +8 -10
- package/dist/db/deferred-indexes.d.ts +15 -22
- package/dist/db/migration-provider.d.ts +2 -4
- package/dist/db/migration-test-harness.d.ts +26 -44
- package/dist/db/migrations/001_initial.d.ts +1 -4
- package/dist/db/migrations/002_config_versions_key_version.d.ts +5 -8
- package/dist/db/migrations/003_access_log.d.ts +10 -15
- package/dist/db/migrations/004_rename_bundle_to_source.d.ts +7 -9
- package/dist/db/migrations/005_cold_store_chunk_counter.d.ts +4 -10
- package/dist/db/migrations/006_runs_jobs_steps_archived_at.d.ts +9 -29
- package/dist/db/migrations/007_audit_logs_archived_at.d.ts +11 -30
- package/dist/db/migrations/008_event_log_archived_at.d.ts +14 -29
- package/dist/db/migrations/009_access_log_trigram.d.ts +4 -8
- package/dist/db/migrations/010_cold_store_chunks.d.ts +16 -26
- package/dist/db/migrations/011_drop_source_secrets_notify.d.ts +6 -14
- package/dist/db/migrations/012_peer_credentials_active_uniq.d.ts +9 -14
- package/dist/db/migrations/013_execution_log_bytes.d.ts +5 -13
- package/dist/db/migrations/014_kici_events_lease_retry.d.ts +14 -27
- package/dist/db/migrations/015_org_settings_customer_scoped.d.ts +12 -17
- package/dist/db/migrations/016_org_settings_allow_http_npm.d.ts +4 -6
- package/dist/db/migrations/019_generic_sources_change_notify.d.ts +13 -17
- package/dist/db/migrations/020_org_settings_dashboard_write_policy.d.ts +5 -8
- package/dist/db/migrations/021_check_run_tracking.d.ts +5 -17
- package/dist/db/migrations/022_scaler_manager_state.d.ts +10 -20
- package/dist/db/migrations/023_dispatch_queue_recovery_deadline.d.ts +7 -18
- package/dist/db/migrations/024_dispatch_queue_provisioning_error.d.ts +5 -11
- package/dist/db/migrations/025_init_failure.d.ts +5 -9
- package/dist/db/migrations/027_workflow_timeout.d.ts +5 -13
- package/dist/db/migrations/029_dispatch_queue_attempts.d.ts +4 -10
- package/dist/db/migrations/030_held_runs_env_set_null.d.ts +5 -6
- package/dist/db/migrations/031_dispatch_queue_ack_deadline.d.ts +6 -12
- package/dist/db/migrations/033_org_settings_approval.d.ts +7 -10
- package/dist/db/migrations/034_held_runs_generalize.d.ts +10 -18
- package/dist/db/migrations/035_pending_workflow_contexts.d.ts +4 -5
- package/dist/db/migrations/037_generic_sources_provider_type_local.d.ts +5 -6
- package/dist/db/migrations/038_remote_sources.d.ts +5 -7
- package/dist/db/migrations/045_host_properties.d.ts +5 -9
- package/dist/db/migrations/046_join_token_consumed_by_instance.d.ts +5 -10
- package/dist/db/migrations/048_host_reboot_pending.d.ts +6 -12
- package/dist/db/migrations/049_held_runs_payload.d.ts +3 -8
- package/dist/db/migrations/050_sources_slug.d.ts +4 -5
- package/dist/db/migrations/051_binding_host_pattern.d.ts +7 -10
- package/dist/db/migrations/052_host_reach_metadata.d.ts +8 -11
- package/dist/db/migrations/053_agent_token_single_use.d.ts +6 -10
- package/dist/db/migrations/054_local_working_tree.d.ts +4 -6
- package/dist/db/migrations/055_agent_token_mandatory_labels.d.ts +6 -11
- package/dist/db/migrations/056_execution_jobs_environments.d.ts +4 -11
- package/dist/db/migrations/064_execution_jobs_skipped_environments.d.ts +6 -9
- package/dist/db/migrations/065_pending_attestations.d.ts +9 -12
- package/dist/db/migrations/066_pending_attestations_rejected.d.ts +4 -7
- package/dist/db/migrations/068_request_idempotency.d.ts +7 -9
- package/dist/db/migrations/069_reroute_tunables.d.ts +6 -14
- package/dist/db/migrations/071_batch_accumulation.d.ts +8 -16
- package/dist/db/migrations/072_dispatch_queue_run_id_index.d.ts +3 -9
- package/dist/db/migrations/074_normalize_zero_concurrency_limit.d.ts +4 -7
- package/dist/db/migrations/076_artifacts.d.ts +7 -8
- package/dist/db/migrations/078_org_settings_backup_staleness.d.ts +3 -6
- package/dist/db/migrations/079_org_settings_scaler_spawn_timeout.d.ts +4 -8
- package/dist/db/migrations/080_cluster_settings.d.ts +6 -10
- package/dist/db/migrations/081_org_settings_queue_timeout.d.ts +7 -11
- package/dist/db/migrations/082_host_s3_reachable.d.ts +5 -10
- package/dist/db/migrations/083_org_settings_artifact_caps.d.ts +6 -8
- package/dist/db/migrations/084_orchestrator_signing_keys.d.ts +8 -13
- package/dist/db/migrations/085_cluster_settings_reroute_flap_grace_ms.d.ts +4 -5
- package/dist/db/migrations/086_cluster_settings_max_fanout_hosts.d.ts +3 -3
- package/dist/db/migrations/087_cluster_settings_event_router_rate_limit.d.ts +5 -3
- package/dist/db/migrations/088_cluster_settings_cache_max_tarball_bytes.d.ts +3 -3
- package/dist/db/migrations/089_cluster_settings_cache_ttl_days.d.ts +3 -5
- package/dist/db/migrations/090_cluster_settings_concurrency_wait_timeout_ms.d.ts +3 -6
- package/dist/db/migrations/091_cluster_settings_agent_token_ttl_ms.d.ts +3 -6
- package/dist/db/migrations/092_cluster_settings_version.d.ts +5 -9
- package/dist/db/migrations/094_dashboard_encryption_keys.d.ts +9 -14
- package/dist/db/migrations/095_dashboard_write_policy_tristate.d.ts +2 -6
- package/dist/db/migrations/099_cluster_settings_dashboard_verified_issuer.d.ts +8 -11
- package/dist/db/migrations/101_contexts_hold_expiry_drop_default.d.ts +9 -15
- package/dist/db/migrations/102_dispatch_queue_agent_id.d.ts +6 -11
- package/dist/db/migrations/103_cluster_settings_ownership_db_check_timeout_ms.d.ts +6 -12
- package/dist/db/migrations/104_check_run_terminal_sent.d.ts +8 -14
- package/dist/db/migrations/105_org_trust_policy.d.ts +5 -7
- package/dist/db/migrations/106_cluster_settings_check_run_tracking_ttl_days.d.ts +4 -12
- package/dist/db/migrations/107_check_run_tracking_updated_at_index.d.ts +8 -14
- package/dist/db/migrations/113_execution_runs_workflow_repo_index.d.ts +10 -19
- package/dist/db/migrations/115_global_workflows_cluster_switch.d.ts +2 -3
- package/dist/db/migrations/121_org_settings_allow_untrusted_dockerfile_builds.d.ts +7 -8
- package/dist/db/migrations/122_host_roster_scaler_managed.d.ts +9 -16
- package/dist/db/migrations/123_workflow_registrations_default_branch.d.ts +8 -16
- package/dist/db/migrations/125_org_trust_directory.d.ts +13 -21
- package/dist/db/migrations/126_held_runs_posted_pending_check.d.ts +10 -16
- package/dist/db/migrations/127_org_trust_policy_approval_expiry_seconds.d.ts +8 -16
- package/dist/db/migrations/128_execution_runs_global_eval_round.d.ts +6 -11
- package/dist/db/migrations/129_execution_runs_dispatch_routing_key.d.ts +8 -11
- package/dist/db/migrations/130_scaler_provision_outcomes.d.ts +13 -20
- package/dist/db/migrations/131_execution_jobs_git_credentials.d.ts +12 -22
- package/dist/db/migrations/132_execution_runs_trigger_event.d.ts +6 -16
- package/dist/db/migrations/133_dispatch_queue_source_tar_digest.d.ts +6 -9
- package/dist/db/migrations/140_dispatch_queue_canonical_labels.d.ts +22 -40
- package/dist/db/migrations/143_execution_jobs_precursor_result.d.ts +9 -18
- package/dist/db/migrations/144_execution_runs_registration_window.d.ts +12 -20
- package/dist/db/migrations/147_sealed_job_secrets.d.ts +5 -9
- package/dist/db/migrations/148_cluster_settings_sealed_secrets_retry_backoff_ms.d.ts +7 -13
- package/dist/db/migrations/150_execution_runs_status_epoch.d.ts +6 -11
- package/dist/db/migrations/152_org_settings_cache_upload_settle_timeout.d.ts +5 -8
- package/dist/db/migrations/157_host_roster_identity_source.d.ts +9 -13
- package/dist/db/migrations/159_org_id_widen_to_source_width.d.ts +5 -0
- package/dist/db/migrator.d.ts +17 -25
- package/dist/db/notify-listener.d.ts +8 -11
- package/dist/db/repos/dashboard-encryption-keys-repo.d.ts +9 -10
- package/dist/db/synthetic-job-ids.d.ts +6 -8
- package/dist/db/types.d.ts +531 -1058
- package/dist/deployment/deployment-identity.d.ts +42 -60
- package/dist/diagnostics/bundle-reader.d.ts +3 -15
- package/dist/diagnostics/bundle-writer.d.ts +5 -12
- package/dist/diagnostics/checks/agents.d.ts +1 -7
- package/dist/diagnostics/checks/backup.d.ts +7 -10
- package/dist/diagnostics/checks/certs.d.ts +1 -6
- package/dist/diagnostics/checks/config.d.ts +2 -5
- package/dist/diagnostics/checks/db.d.ts +1 -1
- package/dist/diagnostics/checks/disk.d.ts +1 -6
- package/dist/diagnostics/checks/firecracker-network.d.ts +3 -3
- package/dist/diagnostics/checks/index.d.ts +0 -6
- package/dist/diagnostics/checks/retention.d.ts +3 -6
- package/dist/diagnostics/checks/scaler.d.ts +3 -7
- package/dist/diagnostics/checks/ws.d.ts +1 -6
- package/dist/diagnostics/fleet-collector.d.ts +11 -14
- package/dist/diagnostics/fleet-constants.d.ts +1 -3
- package/dist/diagnostics/fleet-selection.d.ts +3 -7
- package/dist/diagnostics/fleet-topology.d.ts +2 -6
- package/dist/diagnostics/fleet-wiring.d.ts +6 -12
- package/dist/diagnostics/index.d.ts +0 -5
- package/dist/diagnostics/runner.d.ts +4 -8
- package/dist/diagnostics/types.d.ts +10 -21
- package/dist/drain/drain-controller.d.ts +16 -22
- package/dist/entry-helpers.d.ts +0 -2
- package/dist/events/circuit-breaker.d.ts +0 -3
- package/dist/events/event-router.d.ts +1 -2
- package/dist/events/event-store.d.ts +0 -9
- package/dist/events/trust-store.d.ts +0 -3
- package/dist/events/types.d.ts +0 -9
- package/dist/firecracker/host-network.d.ts +24 -30
- package/dist/firecracker/net-interfaces.d.ts +4 -7
- package/dist/helpers/rate-limiter.d.ts +0 -1
- package/dist/index.js +251 -486
- package/dist/metrics/agent-metrics-aggregator.d.ts +24 -67
- package/dist/metrics/metrics-reporter.d.ts +4 -13
- package/dist/metrics/prometheus.d.ts +47 -81
- package/dist/orchestrator-core.d.ts +3 -7
- package/dist/pipeline/content-filter.d.ts +20 -30
- package/dist/pipeline/cross-source-tally.d.ts +7 -8
- package/dist/pipeline/decorating-secret-resolver.d.ts +4 -8
- package/dist/pipeline/degraded-reason.d.ts +3 -4
- package/dist/pipeline/direct-ingress-deps.d.ts +15 -24
- package/dist/pipeline/dispatch-matched-workflow.d.ts +289 -525
- package/dist/pipeline/flatten-lock-steps.d.ts +4 -6
- package/dist/pipeline/global-dispatch-identity.d.ts +5 -10
- package/dist/pipeline/global-eval-round.d.ts +65 -151
- package/dist/pipeline/global-round-hold.d.ts +5 -7
- package/dist/pipeline/held-context-data.d.ts +5 -8
- package/dist/pipeline/held-round-registrations.d.ts +8 -11
- package/dist/pipeline/install-gate.d.ts +15 -25
- package/dist/pipeline/install-secrets-resolver.d.ts +24 -34
- package/dist/pipeline/internal-event-pipeline.d.ts +45 -62
- package/dist/pipeline/invoke-gate.d.ts +27 -40
- package/dist/pipeline/job-contexts.d.ts +19 -36
- package/dist/pipeline/manual-schedule.d.ts +7 -13
- package/dist/pipeline/needs-scheduler.d.ts +29 -46
- package/dist/pipeline/pending-workflow-context.d.ts +14 -28
- package/dist/pipeline/process-webhook.d.ts +88 -123
- package/dist/pipeline/processor.d.ts +209 -355
- package/dist/pipeline/remote-source-store.d.ts +5 -8
- package/dist/pipeline/request-idempotency.d.ts +10 -13
- package/dist/pipeline/rerun-global.d.ts +6 -7
- package/dist/pipeline/rerun-inputs.d.ts +23 -37
- package/dist/pipeline/rerun.d.ts +34 -57
- package/dist/pipeline/resolve-sandbox-grant.d.ts +5 -10
- package/dist/pipeline/resume-workflow.d.ts +28 -34
- package/dist/pipeline/route-or-dispatch-jobs.d.ts +19 -30
- package/dist/pipeline/run-event-context.d.ts +16 -21
- package/dist/pipeline/sandbox-allowlist-reader.d.ts +7 -11
- package/dist/pipeline/security-hold-check.d.ts +56 -80
- package/dist/pipeline/test-pipeline.d.ts +21 -46
- package/dist/pipeline/unbound-job-context.d.ts +6 -9
- package/dist/pipeline/undispatched-hold-checks.d.ts +4 -6
- package/dist/pipeline/wave-scheduler.d.ts +15 -22
- package/dist/pipeline/webhook-payload-store.d.ts +3 -10
- package/dist/pipeline/workflow-lock-at-sha.d.ts +14 -20
- package/dist/policy/dashboard-write-policy.d.ts +1 -1
- package/dist/provider-registry.d.ts +0 -19
- package/dist/providers/generic/index.d.ts +0 -2
- package/dist/providers/generic/normalizer.d.ts +0 -1
- package/dist/providers/generic/verification.d.ts +0 -8
- package/dist/providers/github/auth.d.ts +0 -1
- package/dist/providers/github/changed-files.d.ts +2 -1
- package/dist/providers/github/file-contents.d.ts +0 -4
- package/dist/providers/github/lock-file.d.ts +0 -4
- package/dist/providers/github/normalizer.d.ts +1 -9
- package/dist/providers/local/index.d.ts +1 -2
- package/dist/providers/local/lock-file-fetcher.d.ts +0 -4
- package/dist/providers/local/normalizer.d.ts +0 -10
- package/dist/providers/local/repo-url-builder.d.ts +0 -2
- package/dist/providers/universal-git/clone-token.d.ts +0 -2
- package/dist/providers/universal-git/lock-file.d.ts +0 -2
- package/dist/providers/universal-git/normalizer.d.ts +0 -2
- package/dist/queue/bootstrap.d.ts +3 -15
- package/dist/queue/cleanup.d.ts +29 -50
- package/dist/queue/depth-refresher.d.ts +21 -39
- package/dist/queue/job-queue.d.ts +112 -163
- package/dist/queue/retention.d.ts +23 -36
- package/dist/queue/scheduled-job.d.ts +17 -39
- package/dist/queue/terminalize-unroutable.d.ts +21 -18
- package/dist/queue/unroutable-probe.d.ts +15 -22
- package/dist/registration/extractor.d.ts +0 -6
- package/dist/registration/registration-index.d.ts +0 -6
- package/dist/registration/registration-store.d.ts +0 -9
- package/dist/reporting/agent-failure-category.d.ts +3 -5
- package/dist/reporting/check-run-reporter.d.ts +142 -316
- package/dist/reporting/check-run-summary.d.ts +16 -35
- package/dist/reporting/check-run-tracking-store.d.ts +54 -107
- package/dist/reporting/execution-tracker.d.ts +356 -526
- package/dist/reporting/fs-log-storage.d.ts +31 -33
- package/dist/reporting/job-check-run-completion.d.ts +14 -22
- package/dist/reporting/log-chunk-sink.d.ts +11 -16
- package/dist/reporting/log-pull-handler.d.ts +4 -13
- package/dist/reporting/log-retention.d.ts +3 -4
- package/dist/reporting/log-storage.d.ts +24 -52
- package/dist/reporting/log-writer.d.ts +28 -56
- package/dist/reporting/peer-log-normalize.d.ts +4 -8
- package/dist/reporting/run-aggregator.d.ts +6 -11
- package/dist/reporting/run-summary-fields.d.ts +5 -8
- package/dist/reporting/s3-log-storage.d.ts +31 -50
- package/dist/reporting/step-display-order.d.ts +11 -21
- package/dist/reporting/step-log-buffer.d.ts +7 -28
- package/dist/reporting/step-log-reader.d.ts +11 -19
- package/dist/routes/admin-access-log.d.ts +4 -6
- package/dist/routes/admin-auth.d.ts +19 -38
- package/dist/routes/admin-backends.d.ts +3 -14
- package/dist/routes/admin-cluster-name.d.ts +13 -21
- package/dist/routes/admin-cluster-settings.d.ts +6 -9
- package/dist/routes/admin-config.d.ts +7 -19
- package/dist/routes/admin-contexts.d.ts +6 -13
- package/dist/routes/admin-db.d.ts +5 -10
- package/dist/routes/admin-event-dlq.d.ts +3 -5
- package/dist/routes/admin-event-inspect.d.ts +3 -4
- package/dist/routes/admin-event-log.d.ts +3 -7
- package/dist/routes/admin-events.d.ts +16 -30
- package/dist/routes/admin-held-runs.d.ts +52 -76
- package/dist/routes/admin-maintenance.d.ts +3 -6
- package/dist/routes/admin-orchestrator-drain.d.ts +0 -2
- package/dist/routes/admin-org-settings.d.ts +8 -14
- package/dist/routes/admin-peer-forget.d.ts +0 -1
- package/dist/routes/admin-queue-execution.d.ts +3 -3
- package/dist/routes/admin-registrations.d.ts +3 -12
- package/dist/routes/admin-runs.d.ts +16 -29
- package/dist/routes/admin-scaler-orphans.d.ts +4 -4
- package/dist/routes/admin-scaler-reload.d.ts +5 -8
- package/dist/routes/admin-scheduled-jobs.d.ts +3 -4
- package/dist/routes/admin-sources.d.ts +20 -29
- package/dist/routes/admin-trust-policy.d.ts +31 -48
- package/dist/routes/admin.d.ts +67 -94
- package/dist/routes/caller-identity.d.ts +45 -0
- package/dist/routes/capabilities.d.ts +8 -13
- package/dist/routes/diagnostics.d.ts +2 -10
- package/dist/routes/fleet.d.ts +1 -2
- package/dist/routes/github-webhook.d.ts +2 -5
- package/dist/routes/health.d.ts +6 -19
- package/dist/routes/provenance-oidc.d.ts +3 -3
- package/dist/routes/test-direct.d.ts +46 -0
- package/dist/routes/uploads.d.ts +14 -19
- package/dist/routes/webhooks.d.ts +2 -24
- package/dist/scaler/agent-binary-location.d.ts +77 -0
- package/dist/scaler/agent-fit.d.ts +2 -2
- package/dist/scaler/backend-factory.d.ts +10 -18
- package/dist/scaler/bare-metal-backend.d.ts +28 -45
- package/dist/scaler/claim-store.d.ts +20 -43
- package/dist/scaler/config.d.ts +10 -37
- package/dist/scaler/container-backend.d.ts +22 -35
- package/dist/scaler/container-hostconfig.d.ts +10 -16
- package/dist/scaler/container-routing.d.ts +10 -13
- package/dist/scaler/disk-guard.d.ts +2 -3
- package/dist/scaler/event-backend.d.ts +33 -58
- package/dist/scaler/event-provision-reaper.d.ts +61 -84
- package/dist/scaler/failure-tracker.d.ts +6 -13
- package/dist/scaler/file-tail.d.ts +6 -19
- package/dist/scaler/firecracker-api.d.ts +19 -63
- package/dist/scaler/firecracker-backend.d.ts +142 -258
- package/dist/scaler/host-access.d.ts +7 -10
- package/dist/scaler/index.d.ts +3 -6
- package/dist/scaler/ip-allocator.d.ts +30 -82
- package/dist/scaler/label-matcher.d.ts +14 -35
- package/dist/scaler/log-forwarder.d.ts +6 -25
- package/dist/scaler/machine-ledger.d.ts +39 -86
- package/dist/scaler/manager.d.ts +517 -787
- package/dist/scaler/pending-scale-sweeper.d.ts +8 -11
- package/dist/scaler/reap-orphans.d.ts +8 -12
- package/dist/scaler/resolve-container-auth.d.ts +12 -21
- package/dist/scaler/scaler-events.d.ts +2 -5
- package/dist/scaler/scaler-state-store.d.ts +127 -189
- package/dist/scaler/spawn-errors.d.ts +1 -4
- package/dist/scaler/startup-orphan-sweep.d.ts +3 -4
- package/dist/scaler/startup-tools-check.d.ts +21 -0
- package/dist/scaler/types.d.ts +142 -255
- package/dist/scaler/vm-job-bindings.d.ts +5 -9
- package/dist/scaler/warm-pool.d.ts +46 -93
- package/dist/secrets/audit-logger.d.ts +0 -3
- package/dist/secrets/backend-health.d.ts +0 -9
- package/dist/secrets/backend-registry.d.ts +0 -9
- package/dist/secrets/cleanup.d.ts +0 -1
- package/dist/secrets/config.d.ts +0 -3
- package/dist/secrets/ephemeral-keys.d.ts +0 -3
- package/dist/secrets/pg-secret-store.d.ts +0 -3
- package/dist/secrets/rbac.d.ts +5 -7
- package/dist/secrets/routing-key-scope.d.ts +1 -0
- package/dist/secrets/secret-output-store.d.ts +0 -6
- package/dist/secrets/secret-resolver.d.ts +2 -6
- package/dist/secrets/token-manager.d.ts +1 -4
- package/dist/secrets/vault-secret-store.d.ts +0 -13
- package/dist/security/comment-handler.d.ts +0 -2
- package/dist/security/workflow-diff.d.ts +1 -1
- package/dist/server.js +49004 -53782
- package/dist/sources/source-manager.d.ts +0 -3
- package/dist/sources/source-store.d.ts +0 -9
- package/dist/sources/source-validator.d.ts +0 -3
- package/dist/stale-detector/all-terminal-runs.d.ts +8 -11
- package/dist/stale-detector/gate-deadline-detector.d.ts +14 -19
- package/dist/stale-detector/reboot-deadline-sweep.d.ts +7 -11
- package/dist/stale-detector/stale-dispatch-candidates.d.ts +13 -20
- package/dist/stale-detector/stale-run-detector.d.ts +74 -121
- package/dist/stale-detector/workflow-deadline-detector.d.ts +15 -43
- package/dist/standalone.js +9342 -13077
- package/dist/storage/blob-routes.d.ts +10 -19
- package/dist/storage/filesystem.d.ts +19 -29
- package/dist/storage/index.d.ts +2 -10
- package/dist/storage/key-discriminator.d.ts +8 -10
- package/dist/storage/loopback-guard.d.ts +27 -45
- package/dist/storage/s3.d.ts +26 -53
- package/dist/storage/sign-url.d.ts +7 -22
- package/dist/storage/types.d.ts +46 -72
- package/dist/webhook/event-log.d.ts +0 -2
- package/dist/webhook/generic-sources.d.ts +0 -21
- package/dist/webhook/ingest-admission.d.ts +0 -1
- package/dist/webhook/relay-buffer.d.ts +2 -2
- package/dist/webhook/verify-inbound.d.ts +0 -1
- package/dist/worker/in-memory-execution-tracker.d.ts +9 -31
- package/dist/worker/in-memory-job-queue.d.ts +32 -72
- package/dist/worker/peer-outbox.d.ts +5 -8
- package/dist/worker/reroute-dispatch.d.ts +4 -6
- package/dist/worker/static-agent-token-store.d.ts +6 -27
- package/dist/worker/worker-outbox-relay.d.ts +2 -2
- package/dist/worker/worker-status.d.ts +3 -20
- package/dist/ws/agent-api-registry.d.ts +8 -27
- package/dist/ws/agent-handler.d.ts +63 -110
- package/dist/ws/agent-heartbeat.d.ts +5 -12
- package/dist/ws/bringup-api.d.ts +31 -38
- package/dist/ws/dashboard-backends-handler.d.ts +12 -22
- package/dist/ws/dashboard-context-handler.d.ts +37 -80
- package/dist/ws/dashboard-diagnostics-handler.d.ts +8 -25
- package/dist/ws/dashboard-dispatch-guard.d.ts +3 -4
- package/dist/ws/dashboard-fleet-handler.d.ts +9 -13
- package/dist/ws/dashboard-fleet-write-handler.d.ts +7 -21
- package/dist/ws/dashboard-global-workflows-handler.d.ts +22 -44
- package/dist/ws/dashboard-registrations-handler.d.ts +10 -27
- package/dist/ws/dashboard-run-state-handler.d.ts +10 -13
- package/dist/ws/event-buffer.d.ts +3 -6
- package/dist/ws/execution-status-frame.d.ts +7 -10
- package/dist/ws/failure-messages.d.ts +9 -14
- package/dist/ws/fleet-agent-collector.d.ts +6 -12
- package/dist/ws/fleet-runs-on-all.d.ts +1 -6
- package/dist/ws/git-credential-relay.d.ts +12 -20
- package/dist/ws/inventory-api.d.ts +4 -5
- package/dist/ws/observer-registry.d.ts +14 -59
- package/dist/ws/ownership-gate.d.ts +1 -1
- package/dist/ws/platform-client.d.ts +21 -30
- package/dist/ws/replay-chunker.d.ts +7 -10
- package/dist/ws/server-options.d.ts +5 -9
- package/dist/ws/test-relay-handlers.d.ts +46 -63
- package/installer-image-digests.json +3 -3
- package/package.json +6 -5
- package/sbom.spdx.json +53 -53
- package/dist/__test-helpers__/fake-scaler-state-store.d.ts +0 -24
- package/dist/__test-helpers__/mock-db-query.d.ts +0 -129
- package/dist/__test-helpers__/mock-db.d.ts +0 -134
- package/dist/__test-helpers__/mock-ws.d.ts +0 -13
- package/dist/__test-helpers__/peer-mutual-auth.d.ts +0 -42
- package/dist/__test-helpers__/scratch-db.d.ts +0 -16
- package/dist/__test-helpers__/test-db.d.ts +0 -34
- package/dist/pipeline/dispatch-matched-workflow.test-helpers.d.ts +0 -121
- package/dist/scaler/container-spawn.d.ts +0 -28
|
@@ -14,16 +14,12 @@ export interface LeaderGatedSchedulerOptions {
|
|
|
14
14
|
onBecomeLeader?: () => Promise<void> | void;
|
|
15
15
|
/** Whether to unref the interval timer. Default true; pass false to keep the loop alive. */
|
|
16
16
|
unref?: boolean;
|
|
17
|
-
/**
|
|
18
|
-
* Logger for the lifecycle + tick-error lines. Pass the owning class's logger so the log
|
|
19
|
-
* prefix stays that of the scheduler site; defaults to a `leader-gated-scheduler` logger.
|
|
20
|
-
*/
|
|
17
|
+
/** The owning class's logger, to keep its log prefix; defaults to `leader-gated-scheduler`. */
|
|
21
18
|
logger?: SchedulerLogger;
|
|
22
19
|
}
|
|
23
20
|
/**
|
|
24
|
-
* Raft-leader-only periodic scheduler
|
|
25
|
-
*
|
|
26
|
-
* The interval runs only while this node is the leader. `stop()` is final: no
|
|
21
|
+
* Raft-leader-only periodic scheduler: become -> (optional async setup) -> start interval;
|
|
22
|
+
* lose -> stop. The interval runs only while this node is the leader. `stop()` is final: no
|
|
27
23
|
* later leadership change starts another tenure.
|
|
28
24
|
*/
|
|
29
25
|
export declare class LeaderGatedScheduler {
|
|
@@ -32,18 +28,13 @@ export declare class LeaderGatedScheduler {
|
|
|
32
28
|
private leader;
|
|
33
29
|
private readonly logger;
|
|
34
30
|
/**
|
|
35
|
-
* Monotonic tenure counter
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* tenure) mid-flight and this stale tenure must NOT start the interval — that
|
|
40
|
-
* would leak a timer running tick() while no longer leader.
|
|
31
|
+
* Monotonic tenure counter, bumped on every leadership transition (onBecomeLeader /
|
|
32
|
+
* onLoseLeadership / stop). onBecomeLeader re-checks it after the awaited setup: if it
|
|
33
|
+
* changed, this stale tenure must NOT start the interval, or a timer leaks running tick()
|
|
34
|
+
* while no longer leader.
|
|
41
35
|
*/
|
|
42
36
|
private generation;
|
|
43
|
-
/**
|
|
44
|
-
* Set by {@link stop}: the owning process is shutting down, so no later
|
|
45
|
-
* leadership change starts another tenure.
|
|
46
|
-
*/
|
|
37
|
+
/** Set by {@link stop}: no later leadership change starts another tenure. */
|
|
47
38
|
private stopped;
|
|
48
39
|
constructor(opts: LeaderGatedSchedulerOptions);
|
|
49
40
|
get isLeader(): boolean;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* to prevent multiple orchestrators from racing to recover the same run.
|
|
7
7
|
*
|
|
8
8
|
* Recovery logic:
|
|
9
|
-
* 1. Find runs with status='running'
|
|
9
|
+
* 1. Find runs with status='running' that started before the stale threshold
|
|
10
10
|
* 2. Check if the coordinator is still a connected peer
|
|
11
11
|
* 3. If coordinator is disconnected/unknown, this is an orphan run
|
|
12
12
|
* 4. Check job statuses: terminal jobs stay, stuck jobs get marked failed
|
|
@@ -23,15 +23,15 @@ interface OrphanRecoveryDeps {
|
|
|
23
23
|
raft: RaftNode;
|
|
24
24
|
peerRegistry: PeerRegistry;
|
|
25
25
|
executionTracker: ExecutionTracker;
|
|
26
|
-
/**
|
|
26
|
+
/** Source of the reroute flap-grace override. */
|
|
27
27
|
clusterSettings: ClusterSettingsReader;
|
|
28
28
|
/** Cluster default for the reroute flap-grace window (config.rerouteFlapGraceMs). */
|
|
29
29
|
rerouteFlapGraceFallbackMs: number;
|
|
30
30
|
/** Scan interval in ms. Default: 60000 (1 minute). */
|
|
31
31
|
scanIntervalMs?: number;
|
|
32
|
-
/**
|
|
32
|
+
/** Default: 5 minutes. */
|
|
33
33
|
staleThresholdMs?: number;
|
|
34
|
-
/**
|
|
34
|
+
/** Default: 3 minutes. */
|
|
35
35
|
jobStuckThresholdMs?: number;
|
|
36
36
|
}
|
|
37
37
|
export declare class OrphanRecovery {
|
|
@@ -46,51 +46,29 @@ export declare class OrphanRecovery {
|
|
|
46
46
|
private readonly jobStuckThresholdMs;
|
|
47
47
|
private scanTimer;
|
|
48
48
|
constructor(deps: OrphanRecoveryDeps);
|
|
49
|
-
/**
|
|
50
|
-
* Start periodic orphan recovery scans.
|
|
51
|
-
* Only runs recovery logic when this node is the Raft leader.
|
|
52
|
-
*/
|
|
49
|
+
/** Recovery logic runs only while this node is the Raft leader. */
|
|
53
50
|
start(): void;
|
|
54
|
-
/**
|
|
55
|
-
* Stop periodic orphan recovery scans.
|
|
56
|
-
*/
|
|
57
51
|
stop(): void;
|
|
58
|
-
/**
|
|
59
|
-
* Scan for orphaned runs and recover them.
|
|
60
|
-
* Only runs when this node is the Raft leader.
|
|
61
|
-
*/
|
|
62
52
|
scanForOrphans(): Promise<void>;
|
|
63
53
|
/**
|
|
64
54
|
* Release concurrency slots still marked `active` for a run that has already
|
|
65
55
|
* finished. Run once per leader transition (`start()`), which covers a boot
|
|
66
56
|
* and a failover.
|
|
67
57
|
*
|
|
68
|
-
* A
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
* `getActiveRuns` reconciles the same way inside its own transaction on every
|
|
75
|
-
* acquire, so this is the sweep for a scope nobody happens to ask about —
|
|
76
|
-
* which is why once per leader transition is enough.
|
|
58
|
+
* A coordinator crash between "the run finished" and "the slot was released"
|
|
59
|
+
* leaks the slot; on a `max: 1` deploy gate it blocks every later deploy
|
|
60
|
+
* forever, and nothing else notices. `getActiveRuns` reconciles the same way
|
|
61
|
+
* on every acquire, so this only sweeps scopes nobody asks about — hence once
|
|
62
|
+
* per leader transition is enough.
|
|
77
63
|
*/
|
|
78
64
|
releaseLeakedConcurrencySlots(): Promise<void>;
|
|
79
|
-
/**
|
|
80
|
-
* Attempt to recover a single potentially orphaned run.
|
|
81
|
-
*/
|
|
82
65
|
private recoverRun;
|
|
83
66
|
/**
|
|
84
|
-
* Whether any job
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
* long run never does.
|
|
67
|
+
* Whether any job had a heartbeat, start or completion within the stale
|
|
68
|
+
* window. A crashed coordinator stops all three, so an orphaned run becomes
|
|
69
|
+
* eligible within one window; a healthy long run never does.
|
|
88
70
|
*/
|
|
89
71
|
private hasRecentProgress;
|
|
90
|
-
/**
|
|
91
|
-
* Check if a coordinator with the given routing key is still connected
|
|
92
|
-
* as a peer in the cluster.
|
|
93
|
-
*/
|
|
94
72
|
private isCoordinatorStillConnected;
|
|
95
73
|
}
|
|
96
74
|
export {};
|
|
@@ -39,15 +39,9 @@ export declare class PeerAuthCoordinator {
|
|
|
39
39
|
instanceId: string;
|
|
40
40
|
joinToken?: string;
|
|
41
41
|
joinWaitTimeoutMs?: number;
|
|
42
|
-
/**
|
|
43
|
-
* Issues this coordinator its own credential when a decision finds no
|
|
44
|
-
* credential and no join token. Only a coordinator wires it.
|
|
45
|
-
*/
|
|
42
|
+
/** Self-issues a credential when there is none and no join token. Coordinator-only. */
|
|
46
43
|
selfIssue?: () => Promise<CoordinatorCredentialOutcome>;
|
|
47
|
-
/**
|
|
48
|
-
* Asks this coordinator's own cluster database whether it holds a rejected
|
|
49
|
-
* credential as valid. Only a coordinator with a database wires it.
|
|
50
|
-
*/
|
|
44
|
+
/** Asks the own cluster DB whether it holds a rejected credential as valid. */
|
|
51
45
|
corroborateRejection?: (credential: string) => Promise<RejectionCorroboration>;
|
|
52
46
|
});
|
|
53
47
|
/** Run `fn` exclusively against the credential file. */
|
|
@@ -41,17 +41,14 @@ export declare enum PeerMutualAuthFailure {
|
|
|
41
41
|
}
|
|
42
42
|
type PeerConnectionState = 'disconnected' | 'connecting' | 'handshaking' | 'authenticating' | 'connected';
|
|
43
43
|
export interface PeerClientOptions {
|
|
44
|
-
/** WebSocket URL of the remote peer orchestrator. */
|
|
45
44
|
url: string;
|
|
46
|
-
/**
|
|
45
|
+
/** For a first-time cluster join; optional when the credential file exists. */
|
|
47
46
|
joinToken?: string;
|
|
48
|
-
/** Path to the credential file for reconnection. */
|
|
49
47
|
credentialFile: string;
|
|
50
48
|
/** Shared per-orchestrator coordinator that owns the credential file. */
|
|
51
49
|
authCoordinator: PeerAuthCoordinator;
|
|
52
|
-
/** This orchestrator's instance ID. */
|
|
53
50
|
instanceId: string;
|
|
54
|
-
/**
|
|
51
|
+
/** Updated on the remote peer's heartbeats. */
|
|
55
52
|
peerRegistry: PeerRegistry;
|
|
56
53
|
/**
|
|
57
54
|
* Where the dialled address came from. A static target reconnects with
|
|
@@ -68,51 +65,42 @@ export interface PeerClientOptions {
|
|
|
68
65
|
handshakeTimeoutMs?: number;
|
|
69
66
|
/** Called when a discovered target fails mutual authentication; the client then stays down. */
|
|
70
67
|
onMutualAuthFailed?: (failure: PeerMutualAuthFailure) => void;
|
|
71
|
-
/**
|
|
68
|
+
/** This orchestrator's local agent inventory, for heartbeats. */
|
|
72
69
|
getLocalInventory: () => Omit<PeerHeartbeat, 'type'>;
|
|
73
|
-
/**
|
|
70
|
+
/** In ms. Default: 30000. */
|
|
74
71
|
heartbeatIntervalMs?: number;
|
|
75
|
-
/**
|
|
72
|
+
/** In ms. Default: 60000. */
|
|
76
73
|
maxReconnectDelayMs?: number;
|
|
77
|
-
/** Callback when a job reroute request is received from peer. */
|
|
78
74
|
onJobReroute: (msg: JobReroute) => Promise<void>;
|
|
79
|
-
/** Callback when a job progress update is received from peer. */
|
|
80
75
|
onJobProgress: (msg: JobProgress, fromPeerId: string, reply: (m: JobProgressAck) => void) => void;
|
|
81
76
|
/**
|
|
82
|
-
*
|
|
83
|
-
*
|
|
77
|
+
* Called on reaching `connected`: the initial connect AND every reconnect.
|
|
78
|
+
* Carries this client's peer URL.
|
|
84
79
|
*/
|
|
85
80
|
onConnected?: (url: string) => void;
|
|
86
|
-
/**
|
|
81
|
+
/** A coordinator ACKed a terminal job.progress this worker sent. */
|
|
87
82
|
onJobProgressAck?: (msg: JobProgressAck) => void;
|
|
88
|
-
/**
|
|
83
|
+
/** Default: 'coordinator'. */
|
|
89
84
|
role?: 'coordinator' | 'worker';
|
|
90
|
-
/** Callback when a job cancel request is received from peer. */
|
|
91
85
|
onJobCancel: (msg: PeerJobCancel) => void;
|
|
92
|
-
/**
|
|
86
|
+
/** Coordinator side. */
|
|
93
87
|
onPeerLogChunk?: (chunk: PeerLogChunk) => void;
|
|
94
|
-
/**
|
|
88
|
+
/** Coordinator side. */
|
|
95
89
|
onPeerCacheUploadRequest?: (req: PeerCacheUploadRequest) => Promise<PeerCacheUploadResponse>;
|
|
96
|
-
/** Callback for Raft vote requests. */
|
|
97
90
|
onRaftVoteRequest?: (msg: RaftVoteRequest) => RaftVoteResponse;
|
|
98
|
-
/**
|
|
91
|
+
/** Forwarded to the Raft module. */
|
|
99
92
|
onRaftVoteResponse?: (msg: RaftVoteResponse) => void;
|
|
100
|
-
/**
|
|
93
|
+
/** The leader heartbeat. */
|
|
101
94
|
onRaftAppendEntries?: (msg: RaftAppendEntries) => void;
|
|
102
|
-
/** Callback when a peer.leaving announcement is received. */
|
|
103
95
|
onPeerLeaving?: (msg: PeerLeaving) => void;
|
|
104
96
|
/**
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
* to close every in-flight WS authenticated by the now-revoked token.
|
|
97
|
+
* Should call agentRegistry.disconnectByTokenId(tokenId) to close every
|
|
98
|
+
* in-flight WS authenticated by the revoked token.
|
|
108
99
|
*/
|
|
109
100
|
onAgentTokenRevoke?: (msg: PeerAgentTokenRevoke) => void;
|
|
110
101
|
/**
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
* which are sent back via peer.config.reload.response.
|
|
114
|
-
*
|
|
115
|
-
* If undefined, incoming reload requests are answered with success=false.
|
|
102
|
+
* Runs a local config reload; the result is sent back as
|
|
103
|
+
* peer.config.reload.response. If undefined, requests get success=false.
|
|
116
104
|
*/
|
|
117
105
|
onPeerConfigReload?: (msg: PeerConfigReload) => Promise<{
|
|
118
106
|
success: boolean;
|
|
@@ -122,18 +110,15 @@ export interface PeerClientOptions {
|
|
|
122
110
|
fieldsChanged?: string[];
|
|
123
111
|
}>;
|
|
124
112
|
/**
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
*
|
|
129
|
-
* Platform-mediated discovery dedupes against the same client.
|
|
113
|
+
* Called once the remote peer accepts the auth handshake. Lets a caller that
|
|
114
|
+
* keyed `sub.peerClients` by a placeholder (URL or stale id) re-key it by the
|
|
115
|
+
* canonical instanceId, so later Platform-mediated discovery dedupes against
|
|
116
|
+
* the same client.
|
|
130
117
|
*/
|
|
131
118
|
onAuthenticated?: (targetInstanceId: string) => void;
|
|
132
119
|
/**
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
* (peer.logs.collect.chunk frames, or a peer.logs.collect.error on failure).
|
|
136
|
-
* If undefined, incoming collect requests are ignored.
|
|
120
|
+
* Streams this node's subtree bundle back as peer.logs.collect.chunk frames,
|
|
121
|
+
* or a peer.logs.collect.error on failure. If undefined, requests are ignored.
|
|
137
122
|
*/
|
|
138
123
|
onLogsCollectRequest?: PeerLogsCollectResponder;
|
|
139
124
|
/**
|
|
@@ -190,7 +175,7 @@ export declare class PeerClient {
|
|
|
190
175
|
private readonly authCoordinator;
|
|
191
176
|
/** Set true between deciding token-join and receiving the auth response. */
|
|
192
177
|
private isJoiner;
|
|
193
|
-
/** complete()
|
|
178
|
+
/** complete() for the in-flight token-join, when this client is the joiner. */
|
|
194
179
|
private joinComplete;
|
|
195
180
|
/** The credential string this client last built a proof with. */
|
|
196
181
|
private lastProvedCredential;
|
|
@@ -223,33 +208,24 @@ export declare class PeerClient {
|
|
|
223
208
|
private readonly onScalerReloadRequest?;
|
|
224
209
|
private readonly onPeerForgetRequest?;
|
|
225
210
|
constructor(options: PeerClientOptions);
|
|
226
|
-
/** Current connection state. */
|
|
227
211
|
get state(): PeerConnectionState;
|
|
228
|
-
/**
|
|
212
|
+
/** Set after the auth handshake. */
|
|
229
213
|
get targetInstanceId(): string | null;
|
|
230
|
-
/**
|
|
231
|
-
* Initiate connection to the peer orchestrator.
|
|
232
|
-
*/
|
|
233
214
|
connect(): void;
|
|
234
|
-
/**
|
|
235
|
-
* Gracefully disconnect. Does not trigger reconnection.
|
|
236
|
-
*/
|
|
215
|
+
/** Graceful; does not trigger reconnection. */
|
|
237
216
|
disconnect(): void;
|
|
238
217
|
/**
|
|
239
|
-
*
|
|
240
|
-
* Messages are encrypted with the session key.
|
|
218
|
+
* Encrypts with the session key. Returns false if not connected.
|
|
241
219
|
*/
|
|
242
220
|
send(msg: PeerToPeerMessage): boolean;
|
|
243
221
|
/**
|
|
244
|
-
* Send a
|
|
245
|
-
* Used for job.reroute which expects job.reroute.ack.
|
|
222
|
+
* Send a job.reroute and wait for its job.reroute.ack.
|
|
246
223
|
*
|
|
247
224
|
* @returns true if accepted, false if rejected or timeout
|
|
248
225
|
*/
|
|
249
226
|
sendAndWaitAck(msg: JobReroute, timeoutMs?: number): Promise<boolean>;
|
|
250
227
|
/**
|
|
251
|
-
*
|
|
252
|
-
* Fire-and-forget: no ACK expected.
|
|
228
|
+
* Worker -> coordinator log relay. Fire-and-forget: no ACK expected.
|
|
253
229
|
*/
|
|
254
230
|
sendLogChunk(chunk: PeerLogChunk): boolean;
|
|
255
231
|
/**
|
|
@@ -299,15 +275,12 @@ export declare class PeerClient {
|
|
|
299
275
|
*/
|
|
300
276
|
sendLogsCollectAndWait(msg: PeerLogsCollectRequest, timeoutMs: number): Promise<Buffer>;
|
|
301
277
|
/**
|
|
302
|
-
*
|
|
303
|
-
* with a pre-signed URL.
|
|
278
|
+
* Ask the coordinator for a pre-signed cache upload URL.
|
|
304
279
|
*
|
|
305
280
|
* @returns The response with the uploadUrl, or rejects on timeout/disconnect.
|
|
306
281
|
*/
|
|
307
282
|
sendCacheUploadRequest(req: PeerCacheUploadRequest, timeoutMs?: number): Promise<PeerCacheUploadResponse>;
|
|
308
|
-
/**
|
|
309
|
-
* Calculate the reconnection delay with exponential backoff and jitter.
|
|
310
|
-
*/
|
|
283
|
+
/** Exponential backoff with jitter. */
|
|
311
284
|
getReconnectDelay(): number;
|
|
312
285
|
private doConnect;
|
|
313
286
|
private handleMessage;
|
|
@@ -335,29 +308,26 @@ export declare class PeerClient {
|
|
|
335
308
|
/** The server proved itself: register the peer and start the connected session. */
|
|
336
309
|
private completeAcceptance;
|
|
337
310
|
/**
|
|
338
|
-
* Handle a rejected peer.auth.response.
|
|
339
|
-
*
|
|
340
|
-
*
|
|
341
|
-
*
|
|
342
|
-
*
|
|
343
|
-
*
|
|
311
|
+
* Handle a rejected peer.auth.response. The credential-divergence reasons go
|
|
312
|
+
* to the coordinator, which deletes the shared file only if no sibling has
|
|
313
|
+
* refreshed it (preventing a revocation cascade). A failed token-join releases
|
|
314
|
+
* the in-flight join so siblings can retry. Config-error reasons (role
|
|
315
|
+
* mismatch / missing auth method / protocol version) skip the coordinator:
|
|
316
|
+
* deletion would not help.
|
|
344
317
|
*/
|
|
345
318
|
private handleAuthRejected;
|
|
346
319
|
/**
|
|
347
|
-
*
|
|
320
|
+
* Choose the auth method and send the encrypted auth request.
|
|
348
321
|
*
|
|
349
|
-
* Credentials are **identity-scoped**, not URL-scoped
|
|
350
|
-
*
|
|
351
|
-
*
|
|
352
|
-
*
|
|
353
|
-
* by `instanceId` alone — not by the requester URL. So any peer-client
|
|
354
|
-
* connecting to any peer can use the same credential, as long as the
|
|
355
|
-
* `instanceId` on disk matches ours.
|
|
322
|
+
* Credentials are **identity-scoped**, not URL-scoped: every peer-client of
|
|
323
|
+
* one orchestrator shares one on-disk credential file, and the server
|
|
324
|
+
* (peer-handler) verifies it by `instanceId` alone. So any peer-client can use
|
|
325
|
+
* it, as long as the `instanceId` on disk matches ours.
|
|
356
326
|
*
|
|
357
|
-
* The
|
|
358
|
-
*
|
|
359
|
-
*
|
|
360
|
-
*
|
|
327
|
+
* The shared `PeerAuthCoordinator` decides the method and serializes sibling
|
|
328
|
+
* peer-clients, so exactly one token-joins per reconnect storm (the rest reuse
|
|
329
|
+
* the freshly written credential). This client never reads or writes the
|
|
330
|
+
* credential file directly.
|
|
361
331
|
*/
|
|
362
332
|
private sendAuthRequest;
|
|
363
333
|
/**
|
|
@@ -5,14 +5,10 @@ export declare enum PeerCredentialIssuance {
|
|
|
5
5
|
Self = "self"
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
|
-
* `metadata` key set when a coordinator retires
|
|
9
|
-
*
|
|
10
|
-
* retirement is told apart from a revoke.
|
|
8
|
+
* `metadata` key set when a coordinator retires its previous run's self-issued
|
|
9
|
+
* credential. An operator revoke never sets it, which tells the two apart.
|
|
11
10
|
*/
|
|
12
11
|
export declare const RETIRED_BY_INSTANCE_KEY = "retiredByInstance";
|
|
13
|
-
/**
|
|
14
|
-
* A peer credential record stored in the coordinator's database.
|
|
15
|
-
*/
|
|
16
12
|
export interface PeerCredential {
|
|
17
13
|
id: string;
|
|
18
14
|
instanceId: string;
|
|
@@ -28,10 +24,9 @@ export interface PeerCredential {
|
|
|
28
24
|
metadata: Record<string, unknown>;
|
|
29
25
|
}
|
|
30
26
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* the `sendAuthRequest` doc in peer-client.ts for the history.
|
|
27
|
+
* The local credential file (~/.kici/credential.json). Identity-scoped: one file
|
|
28
|
+
* per orchestrator, shared by all its peer-clients (see `sendAuthRequest` in
|
|
29
|
+
* peer-client.ts).
|
|
35
30
|
*/
|
|
36
31
|
export interface CredentialFileData {
|
|
37
32
|
instanceId: string;
|
|
@@ -40,25 +35,17 @@ export interface CredentialFileData {
|
|
|
40
35
|
/** ISO 8601 timestamp of when this credential was issued. */
|
|
41
36
|
issuedAt: string;
|
|
42
37
|
}
|
|
43
|
-
/**
|
|
44
|
-
* Database CRUD operations for peer credentials.
|
|
45
|
-
* Used by the coordinator to manage credentials for all cluster members.
|
|
46
|
-
*/
|
|
38
|
+
/** The coordinator's DB store of every cluster member's credential. */
|
|
47
39
|
export declare class PeerCredentialStore {
|
|
48
40
|
private readonly db;
|
|
49
41
|
constructor(db: Kysely<any>);
|
|
50
42
|
/**
|
|
51
|
-
* Save a
|
|
52
|
-
*
|
|
53
|
-
* permits exactly one active credential per instanceId).
|
|
43
|
+
* Save a credential, revoking the instanceId's prior active one
|
|
44
|
+
* (`peer_credentials_active_uniq` permits one active credential per instanceId).
|
|
54
45
|
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* peer-client of `instanceId` that was authenticating with the old
|
|
59
|
-
* credential is now invalidated and will be rejected on its next proof. The
|
|
60
|
-
* caller logs this so a revoke that cascades sibling rejections is visible in
|
|
61
|
-
* the orchestrator logs.
|
|
46
|
+
* `revokedCount > 0` means every sibling peer-client of `instanceId` still on the
|
|
47
|
+
* old shared credential is rejected on its next proof; the caller logs it so a
|
|
48
|
+
* cascade of sibling rejections is visible.
|
|
62
49
|
*/
|
|
63
50
|
save(opts: {
|
|
64
51
|
instanceId: string;
|
|
@@ -71,13 +58,9 @@ export declare class PeerCredentialStore {
|
|
|
71
58
|
}): Promise<{
|
|
72
59
|
revokedCount: number;
|
|
73
60
|
}>;
|
|
74
|
-
/**
|
|
75
|
-
* Find a non-revoked, non-expired credential by its hash.
|
|
76
|
-
*/
|
|
61
|
+
/** Non-revoked, non-expired credential by hash. */
|
|
77
62
|
findByCredentialHash(hash: string): Promise<PeerCredential | null>;
|
|
78
|
-
/**
|
|
79
|
-
* Find a non-revoked, non-expired credential by instance ID.
|
|
80
|
-
*/
|
|
63
|
+
/** Newest non-revoked, non-expired credential for the instance. */
|
|
81
64
|
findByInstanceId(instanceId: string): Promise<PeerCredential | null>;
|
|
82
65
|
/**
|
|
83
66
|
* The credential row for `instanceId` that nobody revoked, expired or not.
|
|
@@ -87,60 +70,31 @@ export declare class PeerCredentialStore {
|
|
|
87
70
|
/** The most recently revoked credential row for `instanceId`, or null. */
|
|
88
71
|
findLatestRevokedByInstanceId(instanceId: string): Promise<PeerCredential | null>;
|
|
89
72
|
/**
|
|
90
|
-
* Revoke `instanceId`'s unrevoked
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
* Returns whether a row was retired.
|
|
73
|
+
* Revoke `instanceId`'s unrevoked self-issued row with `credentialHash`,
|
|
74
|
+
* recording who retired it. Every condition is in the WHERE clause, so a row
|
|
75
|
+
* that changed meanwhile is left alone. Returns whether a row was retired.
|
|
94
76
|
*/
|
|
95
77
|
retireSelfIssued(opts: {
|
|
96
78
|
instanceId: string;
|
|
97
79
|
credentialHash: string;
|
|
98
80
|
retiredByInstance: string;
|
|
99
81
|
}): Promise<boolean>;
|
|
100
|
-
/**
|
|
101
|
-
* Update the last_seen_at timestamp for a credential.
|
|
102
|
-
* Optionally records which coordinator validated it.
|
|
103
|
-
*/
|
|
82
|
+
/** Bump last_seen_at; optionally record the validating coordinator. */
|
|
104
83
|
updateLastSeen(credentialHash: string, validatedBy?: string): Promise<void>;
|
|
105
|
-
/**
|
|
106
|
-
* Revoke a peer's credential by instance ID.
|
|
107
|
-
*/
|
|
108
84
|
revoke(instanceId: string): Promise<void>;
|
|
109
|
-
/**
|
|
110
|
-
* Revoke all active credentials.
|
|
111
|
-
* @returns The number of credentials revoked.
|
|
112
|
-
*/
|
|
85
|
+
/** @returns The number of credentials revoked. */
|
|
113
86
|
revokeAll(): Promise<number>;
|
|
114
|
-
/**
|
|
115
|
-
* List all active (non-revoked, non-expired) credentials.
|
|
116
|
-
*/
|
|
87
|
+
/** Non-revoked, non-expired credentials, oldest first. */
|
|
117
88
|
listActive(): Promise<PeerCredential[]>;
|
|
118
89
|
}
|
|
119
|
-
/**
|
|
120
|
-
* Write credential data to a JSON file with restrictive permissions.
|
|
121
|
-
*
|
|
122
|
-
* Creates the parent directory (e.g., ~/.kici/) with 0700 if it doesn't exist.
|
|
123
|
-
* The credential file is written with 0600 permissions (owner read/write only).
|
|
124
|
-
*
|
|
125
|
-
* @param filePath - Absolute path to the credential file
|
|
126
|
-
* @param data - Credential data to persist
|
|
127
|
-
*/
|
|
90
|
+
/** Write the credential file 0600, creating its parent directory 0700 if missing. */
|
|
128
91
|
export declare function writeCredentialFile(filePath: string, data: CredentialFileData): Promise<void>;
|
|
129
|
-
/**
|
|
130
|
-
* Read credential data from a JSON file.
|
|
131
|
-
*
|
|
132
|
-
* @param filePath - Absolute path to the credential file
|
|
133
|
-
* @returns Parsed credential data, or null if the file doesn't exist
|
|
134
|
-
*/
|
|
92
|
+
/** @returns The parsed credential file, or null if it does not exist. */
|
|
135
93
|
export declare function readCredentialFile(filePath: string): Promise<CredentialFileData | null>;
|
|
136
94
|
/**
|
|
137
|
-
*
|
|
138
|
-
* store
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
* Intended for tests of the store's own CRUD methods — production
|
|
142
|
-
* code constructs the store with an already-allocated Kysely instance
|
|
143
|
-
* shared with the orchestrator.
|
|
95
|
+
* A store bound to a Postgres URL plus a pool disposer, so tests exercise the real
|
|
96
|
+
* store without importing pg/kysely. Test-only: production passes the
|
|
97
|
+
* orchestrator's shared Kysely instance.
|
|
144
98
|
*/
|
|
145
99
|
export declare function createPeerCredentialStoreFromUrl(databaseUrl: string, opts?: {
|
|
146
100
|
maxConnections?: number;
|
|
@@ -18,48 +18,27 @@
|
|
|
18
18
|
* IV (12 bytes) || AuthTag (16 bytes) || Ciphertext
|
|
19
19
|
*/
|
|
20
20
|
import { type KeyObject } from 'node:crypto';
|
|
21
|
-
/**
|
|
22
|
-
* An X25519 key pair for ECDH key exchange.
|
|
23
|
-
* The public key is DER SPKI-encoded for wire transport.
|
|
24
|
-
*/
|
|
25
21
|
export interface EcdhKeyPair {
|
|
26
22
|
/** DER SPKI-encoded X25519 public key. */
|
|
27
23
|
publicKey: Buffer;
|
|
28
|
-
/**
|
|
24
|
+
/** Never sent on the wire. */
|
|
29
25
|
privateKey: KeyObject;
|
|
30
26
|
}
|
|
31
|
-
/**
|
|
32
|
-
* Generate a new X25519 key pair for ECDH key exchange.
|
|
33
|
-
*
|
|
34
|
-
* @returns Key pair with DER SPKI public key and KeyObject private key
|
|
35
|
-
*/
|
|
36
27
|
export declare function generateEcdhKeyPair(): EcdhKeyPair;
|
|
37
28
|
/**
|
|
38
|
-
* Derive a 32-byte AES-256 session key
|
|
39
|
-
*
|
|
40
|
-
* Performs X25519 Diffie-Hellman, then derives the session key via
|
|
41
|
-
* HKDF-SHA256 with the provided nonce as salt.
|
|
42
|
-
*
|
|
43
|
-
* @param localPrivateKey - This node's X25519 private key
|
|
44
|
-
* @param remotePubKeyDer - Remote node's DER SPKI-encoded X25519 public key
|
|
45
|
-
* @param nonce - Random nonce (used as HKDF salt for per-session uniqueness)
|
|
46
|
-
* @returns 32-byte session key suitable for AES-256-GCM
|
|
29
|
+
* Derive a 32-byte AES-256 session key: X25519 Diffie-Hellman, then HKDF-SHA256
|
|
30
|
+
* with the nonce as salt for per-session uniqueness.
|
|
47
31
|
*/
|
|
48
32
|
export declare function deriveSessionKey(localPrivateKey: KeyObject, remotePubKeyDer: Buffer, nonce: Buffer): Buffer;
|
|
49
33
|
/**
|
|
50
|
-
*
|
|
34
|
+
* AES-256-GCM with a 32-byte session key.
|
|
51
35
|
*
|
|
52
|
-
* @param plaintext - The message to encrypt
|
|
53
|
-
* @param sessionKey - 32-byte session key from deriveSessionKey
|
|
54
36
|
* @returns Base64-encoded string: IV (12) || AuthTag (16) || Ciphertext
|
|
55
37
|
*/
|
|
56
38
|
export declare function encryptMessage(plaintext: string, sessionKey: Buffer): string;
|
|
57
39
|
/**
|
|
58
|
-
* Decrypt
|
|
40
|
+
* Decrypt the output of encryptMessage.
|
|
59
41
|
*
|
|
60
|
-
* @param encrypted - Base64-encoded string: IV (12) || AuthTag (16) || Ciphertext
|
|
61
|
-
* @param sessionKey - 32-byte session key (must match the key used for encryption)
|
|
62
|
-
* @returns Decrypted plaintext string
|
|
63
42
|
* @throws If the session key is wrong or the ciphertext has been tampered with
|
|
64
43
|
*/
|
|
65
44
|
export declare function decryptMessage(encrypted: string, sessionKey: Buffer): string;
|
|
@@ -4,7 +4,6 @@ import type { PeerRegistry } from './peer-registry.js';
|
|
|
4
4
|
import { PeerRequestWaiters } from './peer-request-waiters.js';
|
|
5
5
|
/** What forgetting did on one coordinator. */
|
|
6
6
|
export interface PeerForgetResult {
|
|
7
|
-
/** The coordinator that answered. */
|
|
8
7
|
coordinator: string;
|
|
9
8
|
outcome: PeerForgetOutcome;
|
|
10
9
|
detail: string;
|
|
@@ -92,8 +91,9 @@ export declare function backstopConsequence(instanceId: string): string;
|
|
|
92
91
|
* Drop `instanceId` from `registry` when it names a peer that left the
|
|
93
92
|
* cluster. Kept, with the reason: a connected peer (its next heartbeat would
|
|
94
93
|
* register it again), a peer heard from inside its liveness window (it may be
|
|
95
|
-
* partitioned rather than gone; see `peerLivenessWindow`), and a peer whose
|
|
96
|
-
* event-provision backstop back on, unless the request
|
|
94
|
+
* partitioned rather than gone; see `peerLivenessWindow`), and a peer whose
|
|
95
|
+
* removal would switch the event-provision backstop back on, unless the request
|
|
96
|
+
* acknowledged that.
|
|
97
97
|
*/
|
|
98
98
|
export declare function forgetDepartedPeer(registry: PeerRegistry, selfInstanceId: string, instanceId: string, guards: PeerForgetGuards): Omit<PeerForgetResult, 'coordinator'>;
|
|
99
99
|
/** Answers a forget request a sibling coordinator fanned out. */
|