@schema-weaver/pg-connector 0.0.0-stage → 2.0.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/CHANGELOG.md +21 -0
- package/LICENSE +21 -0
- package/README.md +457 -2
- package/dist/cjs/audit/chain.d.ts +365 -0
- package/dist/cjs/audit/chain.d.ts.map +1 -0
- package/dist/cjs/audit/chain.js +959 -0
- package/dist/cjs/audit/chain.js.map +1 -0
- package/dist/cjs/audit/cloud-client.d.ts +142 -0
- package/dist/cjs/audit/cloud-client.d.ts.map +1 -0
- package/dist/cjs/audit/cloud-client.js +364 -0
- package/dist/cjs/audit/cloud-client.js.map +1 -0
- package/dist/cjs/audit/cloud-writer.d.ts +57 -0
- package/dist/cjs/audit/cloud-writer.d.ts.map +1 -0
- package/dist/cjs/audit/cloud-writer.js +95 -0
- package/dist/cjs/audit/cloud-writer.js.map +1 -0
- package/dist/cjs/audit/context.d.ts +51 -0
- package/dist/cjs/audit/context.d.ts.map +1 -0
- package/dist/cjs/audit/context.js +75 -0
- package/dist/cjs/audit/context.js.map +1 -0
- package/dist/cjs/audit/files.d.ts +111 -0
- package/dist/cjs/audit/files.d.ts.map +1 -0
- package/dist/cjs/audit/files.js +406 -0
- package/dist/cjs/audit/files.js.map +1 -0
- package/dist/cjs/audit/index.d.ts +9 -0
- package/dist/cjs/audit/index.d.ts.map +1 -0
- package/dist/cjs/audit/index.js +68 -0
- package/dist/cjs/audit/index.js.map +1 -0
- package/dist/cjs/audit/local-writer.d.ts +255 -0
- package/dist/cjs/audit/local-writer.d.ts.map +1 -0
- package/dist/cjs/audit/local-writer.js +829 -0
- package/dist/cjs/audit/local-writer.js.map +1 -0
- package/dist/cjs/audit/redact.d.ts +151 -0
- package/dist/cjs/audit/redact.d.ts.map +1 -0
- package/dist/cjs/audit/redact.js +549 -0
- package/dist/cjs/audit/redact.js.map +1 -0
- package/dist/cjs/audit/sanitize.d.ts +78 -0
- package/dist/cjs/audit/sanitize.d.ts.map +1 -0
- package/dist/cjs/audit/sanitize.js +315 -0
- package/dist/cjs/audit/sanitize.js.map +1 -0
- package/dist/cjs/audit/sink.d.ts +278 -0
- package/dist/cjs/audit/sink.d.ts.map +1 -0
- package/dist/cjs/audit/sink.js +819 -0
- package/dist/cjs/audit/sink.js.map +1 -0
- package/dist/cjs/audit/types.d.ts +226 -0
- package/dist/cjs/audit/types.d.ts.map +1 -0
- package/dist/cjs/audit/types.js +3 -0
- package/dist/cjs/audit/types.js.map +1 -0
- package/dist/cjs/audit/verify-cache.d.ts +127 -0
- package/dist/cjs/audit/verify-cache.d.ts.map +1 -0
- package/dist/cjs/audit/verify-cache.js +668 -0
- package/dist/cjs/audit/verify-cache.js.map +1 -0
- package/dist/cjs/channels/agent-session.d.ts +228 -0
- package/dist/cjs/channels/agent-session.d.ts.map +1 -0
- package/dist/cjs/channels/agent-session.js +604 -0
- package/dist/cjs/channels/agent-session.js.map +1 -0
- package/dist/cjs/channels/data-channel.d.ts +181 -0
- package/dist/cjs/channels/data-channel.d.ts.map +1 -0
- package/dist/cjs/channels/data-channel.js +607 -0
- package/dist/cjs/channels/data-channel.js.map +1 -0
- package/dist/cjs/channels/reconnect.d.ts +142 -0
- package/dist/cjs/channels/reconnect.d.ts.map +1 -0
- package/dist/cjs/channels/reconnect.js +247 -0
- package/dist/cjs/channels/reconnect.js.map +1 -0
- package/dist/cjs/channels/types.d.ts +112 -0
- package/dist/cjs/channels/types.d.ts.map +1 -0
- package/dist/cjs/channels/types.js +3 -0
- package/dist/cjs/channels/types.js.map +1 -0
- package/dist/cjs/channels/wake-channel.d.ts +232 -0
- package/dist/cjs/channels/wake-channel.d.ts.map +1 -0
- package/dist/cjs/channels/wake-channel.js +752 -0
- package/dist/cjs/channels/wake-channel.js.map +1 -0
- package/dist/cjs/cli/banner.d.ts +2 -0
- package/dist/cjs/cli/banner.d.ts.map +1 -0
- package/dist/cjs/cli/banner.js +150 -0
- package/dist/cjs/cli/banner.js.map +1 -0
- package/dist/cjs/cli/commands/agent.d.ts +30 -0
- package/dist/cjs/cli/commands/agent.d.ts.map +1 -0
- package/dist/cjs/cli/commands/agent.js +214 -0
- package/dist/cjs/cli/commands/agent.js.map +1 -0
- package/dist/cjs/cli/commands/audit-verify.d.ts +19 -0
- package/dist/cjs/cli/commands/audit-verify.d.ts.map +1 -0
- package/dist/cjs/cli/commands/audit-verify.js +382 -0
- package/dist/cjs/cli/commands/audit-verify.js.map +1 -0
- package/dist/cjs/cli/commands/clean.d.ts +23 -0
- package/dist/cjs/cli/commands/clean.d.ts.map +1 -0
- package/dist/cjs/cli/commands/clean.js +272 -0
- package/dist/cjs/cli/commands/clean.js.map +1 -0
- package/dist/cjs/cli/commands/config-show.d.ts +2 -0
- package/dist/cjs/cli/commands/config-show.d.ts.map +1 -0
- package/dist/cjs/cli/commands/config-show.js +10 -0
- package/dist/cjs/cli/commands/config-show.js.map +1 -0
- package/dist/cjs/cli/commands/config.d.ts +6 -0
- package/dist/cjs/cli/commands/config.d.ts.map +1 -0
- package/dist/cjs/cli/commands/config.js +266 -0
- package/dist/cjs/cli/commands/config.js.map +1 -0
- package/dist/cjs/cli/commands/db-add.d.ts +16 -0
- package/dist/cjs/cli/commands/db-add.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-add.js +613 -0
- package/dist/cjs/cli/commands/db-add.js.map +1 -0
- package/dist/cjs/cli/commands/db-edit.d.ts +2 -0
- package/dist/cjs/cli/commands/db-edit.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-edit.js +388 -0
- package/dist/cjs/cli/commands/db-edit.js.map +1 -0
- package/dist/cjs/cli/commands/db-logs.d.ts +3 -0
- package/dist/cjs/cli/commands/db-logs.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-logs.js +67 -0
- package/dist/cjs/cli/commands/db-logs.js.map +1 -0
- package/dist/cjs/cli/commands/db-ls.d.ts +2 -0
- package/dist/cjs/cli/commands/db-ls.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-ls.js +118 -0
- package/dist/cjs/cli/commands/db-ls.js.map +1 -0
- package/dist/cjs/cli/commands/db-query.d.ts +121 -0
- package/dist/cjs/cli/commands/db-query.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-query.js +802 -0
- package/dist/cjs/cli/commands/db-query.js.map +1 -0
- package/dist/cjs/cli/commands/db-remove.d.ts +2 -0
- package/dist/cjs/cli/commands/db-remove.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-remove.js +51 -0
- package/dist/cjs/cli/commands/db-remove.js.map +1 -0
- package/dist/cjs/cli/commands/db-show.d.ts +2 -0
- package/dist/cjs/cli/commands/db-show.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-show.js +134 -0
- package/dist/cjs/cli/commands/db-show.js.map +1 -0
- package/dist/cjs/cli/commands/db-test.d.ts +3 -0
- package/dist/cjs/cli/commands/db-test.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-test.js +311 -0
- package/dist/cjs/cli/commands/db-test.js.map +1 -0
- package/dist/cjs/cli/commands/db.d.ts +11 -0
- package/dist/cjs/cli/commands/db.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db.js +90 -0
- package/dist/cjs/cli/commands/db.js.map +1 -0
- package/dist/cjs/cli/commands/debug.d.ts +2 -0
- package/dist/cjs/cli/commands/debug.d.ts.map +1 -0
- package/dist/cjs/cli/commands/debug.js +241 -0
- package/dist/cjs/cli/commands/debug.js.map +1 -0
- package/dist/cjs/cli/commands/doctor.d.ts +5 -0
- package/dist/cjs/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cjs/cli/commands/doctor.js +117 -0
- package/dist/cjs/cli/commands/doctor.js.map +1 -0
- package/dist/cjs/cli/commands/index.d.ts +10 -0
- package/dist/cjs/cli/commands/index.d.ts.map +1 -0
- package/dist/cjs/cli/commands/index.js +30 -0
- package/dist/cjs/cli/commands/index.js.map +1 -0
- package/dist/cjs/cli/commands/init.d.ts +2 -0
- package/dist/cjs/cli/commands/init.d.ts.map +1 -0
- package/dist/cjs/cli/commands/init.js +199 -0
- package/dist/cjs/cli/commands/init.js.map +1 -0
- package/dist/cjs/cli/commands/link.d.ts +5 -0
- package/dist/cjs/cli/commands/link.d.ts.map +1 -0
- package/dist/cjs/cli/commands/link.js +44 -0
- package/dist/cjs/cli/commands/link.js.map +1 -0
- package/dist/cjs/cli/commands/logs.d.ts +17 -0
- package/dist/cjs/cli/commands/logs.d.ts.map +1 -0
- package/dist/cjs/cli/commands/logs.js +314 -0
- package/dist/cjs/cli/commands/logs.js.map +1 -0
- package/dist/cjs/cli/commands/project-show.d.ts +2 -0
- package/dist/cjs/cli/commands/project-show.d.ts.map +1 -0
- package/dist/cjs/cli/commands/project-show.js +105 -0
- package/dist/cjs/cli/commands/project-show.js.map +1 -0
- package/dist/cjs/cli/commands/project.d.ts +3 -0
- package/dist/cjs/cli/commands/project.d.ts.map +1 -0
- package/dist/cjs/cli/commands/project.js +64 -0
- package/dist/cjs/cli/commands/project.js.map +1 -0
- package/dist/cjs/cli/commands/service.d.ts +123 -0
- package/dist/cjs/cli/commands/service.d.ts.map +1 -0
- package/dist/cjs/cli/commands/service.js +554 -0
- package/dist/cjs/cli/commands/service.js.map +1 -0
- package/dist/cjs/cli/commands/start.d.ts +6 -0
- package/dist/cjs/cli/commands/start.d.ts.map +1 -0
- package/dist/cjs/cli/commands/start.js +308 -0
- package/dist/cjs/cli/commands/start.js.map +1 -0
- package/dist/cjs/cli/commands/status.d.ts +2 -0
- package/dist/cjs/cli/commands/status.d.ts.map +1 -0
- package/dist/cjs/cli/commands/status.js +225 -0
- package/dist/cjs/cli/commands/status.js.map +1 -0
- package/dist/cjs/cli/commands/stop.d.ts +6 -0
- package/dist/cjs/cli/commands/stop.d.ts.map +1 -0
- package/dist/cjs/cli/commands/stop.js +99 -0
- package/dist/cjs/cli/commands/stop.js.map +1 -0
- package/dist/cjs/cli/daemon/error-tracker.d.ts +119 -0
- package/dist/cjs/cli/daemon/error-tracker.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/error-tracker.js +500 -0
- package/dist/cjs/cli/daemon/error-tracker.js.map +1 -0
- package/dist/cjs/cli/daemon/fault-shutdown.d.ts +144 -0
- package/dist/cjs/cli/daemon/fault-shutdown.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/fault-shutdown.js +312 -0
- package/dist/cjs/cli/daemon/fault-shutdown.js.map +1 -0
- package/dist/cjs/cli/daemon/index.d.ts +12 -0
- package/dist/cjs/cli/daemon/index.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/index.js +23 -0
- package/dist/cjs/cli/daemon/index.js.map +1 -0
- package/dist/cjs/cli/daemon/pid-file.d.ts +13 -0
- package/dist/cjs/cli/daemon/pid-file.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/pid-file.js +90 -0
- package/dist/cjs/cli/daemon/pid-file.js.map +1 -0
- package/dist/cjs/cli/daemon/readiness.d.ts +30 -0
- package/dist/cjs/cli/daemon/readiness.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/readiness.js +74 -0
- package/dist/cjs/cli/daemon/readiness.js.map +1 -0
- package/dist/cjs/cli/daemon/runtime.d.ts +366 -0
- package/dist/cjs/cli/daemon/runtime.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/runtime.js +1343 -0
- package/dist/cjs/cli/daemon/runtime.js.map +1 -0
- package/dist/cjs/cli/daemon/shutdown.d.ts +7 -0
- package/dist/cjs/cli/daemon/shutdown.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/shutdown.js +66 -0
- package/dist/cjs/cli/daemon/shutdown.js.map +1 -0
- package/dist/cjs/cli/daemon/signal-handlers.d.ts +3 -0
- package/dist/cjs/cli/daemon/signal-handlers.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/signal-handlers.js +27 -0
- package/dist/cjs/cli/daemon/signal-handlers.js.map +1 -0
- package/dist/cjs/cli/daemon/state.d.ts +157 -0
- package/dist/cjs/cli/daemon/state.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/state.js +397 -0
- package/dist/cjs/cli/daemon/state.js.map +1 -0
- package/dist/cjs/cli/daemon/status-file.d.ts +139 -0
- package/dist/cjs/cli/daemon/status-file.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/status-file.js +88 -0
- package/dist/cjs/cli/daemon/status-file.js.map +1 -0
- package/dist/cjs/cli/doctor/checks.d.ts +133 -0
- package/dist/cjs/cli/doctor/checks.d.ts.map +1 -0
- package/dist/cjs/cli/doctor/checks.js +677 -0
- package/dist/cjs/cli/doctor/checks.js.map +1 -0
- package/dist/cjs/cli/doctor/fixes.d.ts +9 -0
- package/dist/cjs/cli/doctor/fixes.d.ts.map +1 -0
- package/dist/cjs/cli/doctor/fixes.js +199 -0
- package/dist/cjs/cli/doctor/fixes.js.map +1 -0
- package/dist/cjs/cli/doctor/index.d.ts +7 -0
- package/dist/cjs/cli/doctor/index.d.ts.map +1 -0
- package/dist/cjs/cli/doctor/index.js +27 -0
- package/dist/cjs/cli/doctor/index.js.map +1 -0
- package/dist/cjs/cli/index.d.ts +3 -0
- package/dist/cjs/cli/index.d.ts.map +1 -0
- package/dist/cjs/cli/index.js +336 -0
- package/dist/cjs/cli/index.js.map +1 -0
- package/dist/cjs/cli/interactive.d.ts +8 -0
- package/dist/cjs/cli/interactive.d.ts.map +1 -0
- package/dist/cjs/cli/interactive.js +670 -0
- package/dist/cjs/cli/interactive.js.map +1 -0
- package/dist/cjs/cli/logs/format.d.ts +13 -0
- package/dist/cjs/cli/logs/format.d.ts.map +1 -0
- package/dist/cjs/cli/logs/format.js +178 -0
- package/dist/cjs/cli/logs/format.js.map +1 -0
- package/dist/cjs/cli/logs/index.d.ts +3 -0
- package/dist/cjs/cli/logs/index.d.ts.map +1 -0
- package/dist/cjs/cli/logs/index.js +13 -0
- package/dist/cjs/cli/logs/index.js.map +1 -0
- package/dist/cjs/cli/logs/viewer.d.ts +41 -0
- package/dist/cjs/cli/logs/viewer.d.ts.map +1 -0
- package/dist/cjs/cli/logs/viewer.js +417 -0
- package/dist/cjs/cli/logs/viewer.js.map +1 -0
- package/dist/cjs/cli/ops/operation-logger.d.ts +63 -0
- package/dist/cjs/cli/ops/operation-logger.d.ts.map +1 -0
- package/dist/cjs/cli/ops/operation-logger.js +183 -0
- package/dist/cjs/cli/ops/operation-logger.js.map +1 -0
- package/dist/cjs/cli/palette.d.ts +11 -0
- package/dist/cjs/cli/palette.d.ts.map +1 -0
- package/dist/cjs/cli/palette.js +243 -0
- package/dist/cjs/cli/palette.js.map +1 -0
- package/dist/cjs/cli/prompt.d.ts +186 -0
- package/dist/cjs/cli/prompt.d.ts.map +1 -0
- package/dist/cjs/cli/prompt.js +541 -0
- package/dist/cjs/cli/prompt.js.map +1 -0
- package/dist/cjs/cli/ui/box.d.ts +21 -0
- package/dist/cjs/cli/ui/box.d.ts.map +1 -0
- package/dist/cjs/cli/ui/box.js +72 -0
- package/dist/cjs/cli/ui/box.js.map +1 -0
- package/dist/cjs/cli/ui/clipboard.d.ts +6 -0
- package/dist/cjs/cli/ui/clipboard.d.ts.map +1 -0
- package/dist/cjs/cli/ui/clipboard.js +78 -0
- package/dist/cjs/cli/ui/clipboard.js.map +1 -0
- package/dist/cjs/cli/ui/colors.d.ts +57 -0
- package/dist/cjs/cli/ui/colors.d.ts.map +1 -0
- package/dist/cjs/cli/ui/colors.js +151 -0
- package/dist/cjs/cli/ui/colors.js.map +1 -0
- package/dist/cjs/cli/ui/index.d.ts +9 -0
- package/dist/cjs/cli/ui/index.d.ts.map +1 -0
- package/dist/cjs/cli/ui/index.js +55 -0
- package/dist/cjs/cli/ui/index.js.map +1 -0
- package/dist/cjs/cli/ui/spinner.d.ts +12 -0
- package/dist/cjs/cli/ui/spinner.d.ts.map +1 -0
- package/dist/cjs/cli/ui/spinner.js +82 -0
- package/dist/cjs/cli/ui/spinner.js.map +1 -0
- package/dist/cjs/cli/ui/symbols.d.ts +47 -0
- package/dist/cjs/cli/ui/symbols.d.ts.map +1 -0
- package/dist/cjs/cli/ui/symbols.js +112 -0
- package/dist/cjs/cli/ui/symbols.js.map +1 -0
- package/dist/cjs/cli/ui/table.d.ts +23 -0
- package/dist/cjs/cli/ui/table.d.ts.map +1 -0
- package/dist/cjs/cli/ui/table.js +160 -0
- package/dist/cjs/cli/ui/table.js.map +1 -0
- package/dist/cjs/cli/ui/terminal.d.ts +7 -0
- package/dist/cjs/cli/ui/terminal.d.ts.map +1 -0
- package/dist/cjs/cli/ui/terminal.js +40 -0
- package/dist/cjs/cli/ui/terminal.js.map +1 -0
- package/dist/cjs/config/atomic-write.d.ts +69 -0
- package/dist/cjs/config/atomic-write.d.ts.map +1 -0
- package/dist/cjs/config/atomic-write.js +289 -0
- package/dist/cjs/config/atomic-write.js.map +1 -0
- package/dist/cjs/config/db-config.d.ts +134 -0
- package/dist/cjs/config/db-config.d.ts.map +1 -0
- package/dist/cjs/config/db-config.js +594 -0
- package/dist/cjs/config/db-config.js.map +1 -0
- package/dist/cjs/config/machine-config.d.ts +85 -0
- package/dist/cjs/config/machine-config.d.ts.map +1 -0
- package/dist/cjs/config/machine-config.js +232 -0
- package/dist/cjs/config/machine-config.js.map +1 -0
- package/dist/cjs/config/paths.d.ts +64 -0
- package/dist/cjs/config/paths.d.ts.map +1 -0
- package/dist/cjs/config/paths.js +155 -0
- package/dist/cjs/config/paths.js.map +1 -0
- package/dist/cjs/config/schema.d.ts +72 -0
- package/dist/cjs/config/schema.d.ts.map +1 -0
- package/dist/cjs/config/schema.js +197 -0
- package/dist/cjs/config/schema.js.map +1 -0
- package/dist/cjs/config/token.d.ts +63 -0
- package/dist/cjs/config/token.d.ts.map +1 -0
- package/dist/cjs/config/token.js +146 -0
- package/dist/cjs/config/token.js.map +1 -0
- package/dist/cjs/execution/canceller.d.ts +41 -0
- package/dist/cjs/execution/canceller.d.ts.map +1 -0
- package/dist/cjs/execution/canceller.js +209 -0
- package/dist/cjs/execution/canceller.js.map +1 -0
- package/dist/cjs/execution/database-lookup.d.ts +56 -0
- package/dist/cjs/execution/database-lookup.d.ts.map +1 -0
- package/dist/cjs/execution/database-lookup.js +43 -0
- package/dist/cjs/execution/database-lookup.js.map +1 -0
- package/dist/cjs/execution/dispatcher.d.ts +181 -0
- package/dist/cjs/execution/dispatcher.d.ts.map +1 -0
- package/dist/cjs/execution/dispatcher.js +1296 -0
- package/dist/cjs/execution/dispatcher.js.map +1 -0
- package/dist/cjs/execution/function-effects.d.ts +209 -0
- package/dist/cjs/execution/function-effects.d.ts.map +1 -0
- package/dist/cjs/execution/function-effects.js +596 -0
- package/dist/cjs/execution/function-effects.js.map +1 -0
- package/dist/cjs/execution/introspection.d.ts +76 -0
- package/dist/cjs/execution/introspection.d.ts.map +1 -0
- package/dist/cjs/execution/introspection.js +448 -0
- package/dist/cjs/execution/introspection.js.map +1 -0
- package/dist/cjs/execution/migration-runner.d.ts +128 -0
- package/dist/cjs/execution/migration-runner.d.ts.map +1 -0
- package/dist/cjs/execution/migration-runner.js +798 -0
- package/dist/cjs/execution/migration-runner.js.map +1 -0
- package/dist/cjs/execution/non-tx-detector.d.ts +23 -0
- package/dist/cjs/execution/non-tx-detector.d.ts.map +1 -0
- package/dist/cjs/execution/non-tx-detector.js +218 -0
- package/dist/cjs/execution/non-tx-detector.js.map +1 -0
- package/dist/cjs/execution/pool.d.ts +229 -0
- package/dist/cjs/execution/pool.d.ts.map +1 -0
- package/dist/cjs/execution/pool.js +738 -0
- package/dist/cjs/execution/pool.js.map +1 -0
- package/dist/cjs/execution/query-runner.d.ts +88 -0
- package/dist/cjs/execution/query-runner.d.ts.map +1 -0
- package/dist/cjs/execution/query-runner.js +751 -0
- package/dist/cjs/execution/query-runner.js.map +1 -0
- package/dist/cjs/execution/rate-limiter.d.ts +120 -0
- package/dist/cjs/execution/rate-limiter.d.ts.map +1 -0
- package/dist/cjs/execution/rate-limiter.js +273 -0
- package/dist/cjs/execution/rate-limiter.js.map +1 -0
- package/dist/cjs/execution/search-path.d.ts +161 -0
- package/dist/cjs/execution/search-path.d.ts.map +1 -0
- package/dist/cjs/execution/search-path.js +279 -0
- package/dist/cjs/execution/search-path.js.map +1 -0
- package/dist/cjs/execution/sql-parser.d.ts +195 -0
- package/dist/cjs/execution/sql-parser.d.ts.map +1 -0
- package/dist/cjs/execution/sql-parser.js +704 -0
- package/dist/cjs/execution/sql-parser.js.map +1 -0
- package/dist/cjs/execution/statement-classifier.d.ts +103 -0
- package/dist/cjs/execution/statement-classifier.d.ts.map +1 -0
- package/dist/cjs/execution/statement-classifier.js +535 -0
- package/dist/cjs/execution/statement-classifier.js.map +1 -0
- package/dist/cjs/execution/types.d.ts +189 -0
- package/dist/cjs/execution/types.d.ts.map +1 -0
- package/dist/cjs/execution/types.js +28 -0
- package/dist/cjs/execution/types.js.map +1 -0
- package/dist/cjs/index.d.ts +34 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +98 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/permissions/auto-upgrade.d.ts +40 -0
- package/dist/cjs/permissions/auto-upgrade.d.ts.map +1 -0
- package/dist/cjs/permissions/auto-upgrade.js +168 -0
- package/dist/cjs/permissions/auto-upgrade.js.map +1 -0
- package/dist/cjs/permissions/checker.d.ts +53 -0
- package/dist/cjs/permissions/checker.d.ts.map +1 -0
- package/dist/cjs/permissions/checker.js +326 -0
- package/dist/cjs/permissions/checker.js.map +1 -0
- package/dist/cjs/permissions/manual-approval.d.ts +213 -0
- package/dist/cjs/permissions/manual-approval.d.ts.map +1 -0
- package/dist/cjs/permissions/manual-approval.js +541 -0
- package/dist/cjs/permissions/manual-approval.js.map +1 -0
- package/dist/cjs/permissions/plan-registry.d.ts +274 -0
- package/dist/cjs/permissions/plan-registry.d.ts.map +1 -0
- package/dist/cjs/permissions/plan-registry.js +454 -0
- package/dist/cjs/permissions/plan-registry.js.map +1 -0
- package/dist/cjs/permissions/role-policy.d.ts +217 -0
- package/dist/cjs/permissions/role-policy.d.ts.map +1 -0
- package/dist/cjs/permissions/role-policy.js +584 -0
- package/dist/cjs/permissions/role-policy.js.map +1 -0
- package/dist/cjs/permissions/types.d.ts +126 -0
- package/dist/cjs/permissions/types.d.ts.map +1 -0
- package/dist/cjs/permissions/types.js +3 -0
- package/dist/cjs/permissions/types.js.map +1 -0
- package/dist/cjs/protocol/constants.d.ts +72 -0
- package/dist/cjs/protocol/constants.d.ts.map +1 -0
- package/dist/cjs/protocol/constants.js +107 -0
- package/dist/cjs/protocol/constants.js.map +1 -0
- package/dist/cjs/protocol/envelope.d.ts +165 -0
- package/dist/cjs/protocol/envelope.d.ts.map +1 -0
- package/dist/cjs/protocol/envelope.js +309 -0
- package/dist/cjs/protocol/envelope.js.map +1 -0
- package/dist/cjs/protocol/errors.d.ts +33 -0
- package/dist/cjs/protocol/errors.d.ts.map +1 -0
- package/dist/cjs/protocol/errors.js +391 -0
- package/dist/cjs/protocol/errors.js.map +1 -0
- package/dist/cjs/protocol/messages.d.ts +327 -0
- package/dist/cjs/protocol/messages.d.ts.map +1 -0
- package/dist/cjs/protocol/messages.js +3 -0
- package/dist/cjs/protocol/messages.js.map +1 -0
- package/dist/cjs/protocol/serialize.d.ts +26 -0
- package/dist/cjs/protocol/serialize.d.ts.map +1 -0
- package/dist/cjs/protocol/serialize.js +71 -0
- package/dist/cjs/protocol/serialize.js.map +1 -0
- package/dist/cjs/protocol/validate.d.ts +135 -0
- package/dist/cjs/protocol/validate.d.ts.map +1 -0
- package/dist/cjs/protocol/validate.js +852 -0
- package/dist/cjs/protocol/validate.js.map +1 -0
- package/dist/esm/audit/chain.d.ts +365 -0
- package/dist/esm/audit/chain.d.ts.map +1 -0
- package/dist/esm/audit/chain.js +895 -0
- package/dist/esm/audit/chain.js.map +1 -0
- package/dist/esm/audit/cloud-client.d.ts +142 -0
- package/dist/esm/audit/cloud-client.d.ts.map +1 -0
- package/dist/esm/audit/cloud-client.js +326 -0
- package/dist/esm/audit/cloud-client.js.map +1 -0
- package/dist/esm/audit/cloud-writer.d.ts +57 -0
- package/dist/esm/audit/cloud-writer.d.ts.map +1 -0
- package/dist/esm/audit/cloud-writer.js +91 -0
- package/dist/esm/audit/cloud-writer.js.map +1 -0
- package/dist/esm/audit/context.d.ts +51 -0
- package/dist/esm/audit/context.d.ts.map +1 -0
- package/dist/esm/audit/context.js +69 -0
- package/dist/esm/audit/context.js.map +1 -0
- package/dist/esm/audit/files.d.ts +111 -0
- package/dist/esm/audit/files.d.ts.map +1 -0
- package/dist/esm/audit/files.js +361 -0
- package/dist/esm/audit/files.js.map +1 -0
- package/dist/esm/audit/index.d.ts +9 -0
- package/dist/esm/audit/index.d.ts.map +1 -0
- package/dist/esm/audit/index.js +8 -0
- package/dist/esm/audit/index.js.map +1 -0
- package/dist/esm/audit/local-writer.d.ts +255 -0
- package/dist/esm/audit/local-writer.d.ts.map +1 -0
- package/dist/esm/audit/local-writer.js +785 -0
- package/dist/esm/audit/local-writer.js.map +1 -0
- package/dist/esm/audit/redact.d.ts +151 -0
- package/dist/esm/audit/redact.d.ts.map +1 -0
- package/dist/esm/audit/redact.js +506 -0
- package/dist/esm/audit/redact.js.map +1 -0
- package/dist/esm/audit/sanitize.d.ts +78 -0
- package/dist/esm/audit/sanitize.d.ts.map +1 -0
- package/dist/esm/audit/sanitize.js +307 -0
- package/dist/esm/audit/sanitize.js.map +1 -0
- package/dist/esm/audit/sink.d.ts +278 -0
- package/dist/esm/audit/sink.d.ts.map +1 -0
- package/dist/esm/audit/sink.js +782 -0
- package/dist/esm/audit/sink.js.map +1 -0
- package/dist/esm/audit/types.d.ts +226 -0
- package/dist/esm/audit/types.d.ts.map +1 -0
- package/dist/esm/audit/types.js +2 -0
- package/dist/esm/audit/types.js.map +1 -0
- package/dist/esm/audit/verify-cache.d.ts +127 -0
- package/dist/esm/audit/verify-cache.d.ts.map +1 -0
- package/dist/esm/audit/verify-cache.js +628 -0
- package/dist/esm/audit/verify-cache.js.map +1 -0
- package/dist/esm/channels/agent-session.d.ts +228 -0
- package/dist/esm/channels/agent-session.d.ts.map +1 -0
- package/dist/esm/channels/agent-session.js +566 -0
- package/dist/esm/channels/agent-session.js.map +1 -0
- package/dist/esm/channels/data-channel.d.ts +181 -0
- package/dist/esm/channels/data-channel.d.ts.map +1 -0
- package/dist/esm/channels/data-channel.js +567 -0
- package/dist/esm/channels/data-channel.js.map +1 -0
- package/dist/esm/channels/reconnect.d.ts +142 -0
- package/dist/esm/channels/reconnect.d.ts.map +1 -0
- package/dist/esm/channels/reconnect.js +234 -0
- package/dist/esm/channels/reconnect.js.map +1 -0
- package/dist/esm/channels/types.d.ts +112 -0
- package/dist/esm/channels/types.d.ts.map +1 -0
- package/dist/esm/channels/types.js +2 -0
- package/dist/esm/channels/types.js.map +1 -0
- package/dist/esm/channels/wake-channel.d.ts +232 -0
- package/dist/esm/channels/wake-channel.d.ts.map +1 -0
- package/dist/esm/channels/wake-channel.js +715 -0
- package/dist/esm/channels/wake-channel.js.map +1 -0
- package/dist/esm/cli/banner.d.ts +2 -0
- package/dist/esm/cli/banner.d.ts.map +1 -0
- package/dist/esm/cli/banner.js +114 -0
- package/dist/esm/cli/banner.js.map +1 -0
- package/dist/esm/cli/commands/agent.d.ts +30 -0
- package/dist/esm/cli/commands/agent.d.ts.map +1 -0
- package/dist/esm/cli/commands/agent.js +204 -0
- package/dist/esm/cli/commands/agent.js.map +1 -0
- package/dist/esm/cli/commands/audit-verify.d.ts +19 -0
- package/dist/esm/cli/commands/audit-verify.d.ts.map +1 -0
- package/dist/esm/cli/commands/audit-verify.js +345 -0
- package/dist/esm/cli/commands/audit-verify.js.map +1 -0
- package/dist/esm/cli/commands/clean.d.ts +23 -0
- package/dist/esm/cli/commands/clean.d.ts.map +1 -0
- package/dist/esm/cli/commands/clean.js +235 -0
- package/dist/esm/cli/commands/clean.js.map +1 -0
- package/dist/esm/cli/commands/config-show.d.ts +2 -0
- package/dist/esm/cli/commands/config-show.d.ts.map +1 -0
- package/dist/esm/cli/commands/config-show.js +2 -0
- package/dist/esm/cli/commands/config-show.js.map +1 -0
- package/dist/esm/cli/commands/config.d.ts +6 -0
- package/dist/esm/cli/commands/config.d.ts.map +1 -0
- package/dist/esm/cli/commands/config.js +259 -0
- package/dist/esm/cli/commands/config.js.map +1 -0
- package/dist/esm/cli/commands/db-add.d.ts +16 -0
- package/dist/esm/cli/commands/db-add.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-add.js +576 -0
- package/dist/esm/cli/commands/db-add.js.map +1 -0
- package/dist/esm/cli/commands/db-edit.d.ts +2 -0
- package/dist/esm/cli/commands/db-edit.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-edit.js +352 -0
- package/dist/esm/cli/commands/db-edit.js.map +1 -0
- package/dist/esm/cli/commands/db-logs.d.ts +3 -0
- package/dist/esm/cli/commands/db-logs.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-logs.js +64 -0
- package/dist/esm/cli/commands/db-logs.js.map +1 -0
- package/dist/esm/cli/commands/db-ls.d.ts +2 -0
- package/dist/esm/cli/commands/db-ls.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-ls.js +115 -0
- package/dist/esm/cli/commands/db-ls.js.map +1 -0
- package/dist/esm/cli/commands/db-query.d.ts +121 -0
- package/dist/esm/cli/commands/db-query.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-query.js +754 -0
- package/dist/esm/cli/commands/db-query.js.map +1 -0
- package/dist/esm/cli/commands/db-remove.d.ts +2 -0
- package/dist/esm/cli/commands/db-remove.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-remove.js +48 -0
- package/dist/esm/cli/commands/db-remove.js.map +1 -0
- package/dist/esm/cli/commands/db-show.d.ts +2 -0
- package/dist/esm/cli/commands/db-show.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-show.js +131 -0
- package/dist/esm/cli/commands/db-show.js.map +1 -0
- package/dist/esm/cli/commands/db-test.d.ts +3 -0
- package/dist/esm/cli/commands/db-test.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-test.js +307 -0
- package/dist/esm/cli/commands/db-test.js.map +1 -0
- package/dist/esm/cli/commands/db.d.ts +11 -0
- package/dist/esm/cli/commands/db.d.ts.map +1 -0
- package/dist/esm/cli/commands/db.js +76 -0
- package/dist/esm/cli/commands/db.js.map +1 -0
- package/dist/esm/cli/commands/debug.d.ts +2 -0
- package/dist/esm/cli/commands/debug.d.ts.map +1 -0
- package/dist/esm/cli/commands/debug.js +205 -0
- package/dist/esm/cli/commands/debug.js.map +1 -0
- package/dist/esm/cli/commands/doctor.d.ts +5 -0
- package/dist/esm/cli/commands/doctor.d.ts.map +1 -0
- package/dist/esm/cli/commands/doctor.js +114 -0
- package/dist/esm/cli/commands/doctor.js.map +1 -0
- package/dist/esm/cli/commands/index.d.ts +10 -0
- package/dist/esm/cli/commands/index.d.ts.map +1 -0
- package/dist/esm/cli/commands/index.js +10 -0
- package/dist/esm/cli/commands/index.js.map +1 -0
- package/dist/esm/cli/commands/init.d.ts +2 -0
- package/dist/esm/cli/commands/init.d.ts.map +1 -0
- package/dist/esm/cli/commands/init.js +163 -0
- package/dist/esm/cli/commands/init.js.map +1 -0
- package/dist/esm/cli/commands/link.d.ts +5 -0
- package/dist/esm/cli/commands/link.d.ts.map +1 -0
- package/dist/esm/cli/commands/link.js +41 -0
- package/dist/esm/cli/commands/link.js.map +1 -0
- package/dist/esm/cli/commands/logs.d.ts +17 -0
- package/dist/esm/cli/commands/logs.d.ts.map +1 -0
- package/dist/esm/cli/commands/logs.js +278 -0
- package/dist/esm/cli/commands/logs.js.map +1 -0
- package/dist/esm/cli/commands/project-show.d.ts +2 -0
- package/dist/esm/cli/commands/project-show.d.ts.map +1 -0
- package/dist/esm/cli/commands/project-show.js +69 -0
- package/dist/esm/cli/commands/project-show.js.map +1 -0
- package/dist/esm/cli/commands/project.d.ts +3 -0
- package/dist/esm/cli/commands/project.d.ts.map +1 -0
- package/dist/esm/cli/commands/project.js +60 -0
- package/dist/esm/cli/commands/project.js.map +1 -0
- package/dist/esm/cli/commands/service.d.ts +123 -0
- package/dist/esm/cli/commands/service.d.ts.map +1 -0
- package/dist/esm/cli/commands/service.js +505 -0
- package/dist/esm/cli/commands/service.js.map +1 -0
- package/dist/esm/cli/commands/start.d.ts +6 -0
- package/dist/esm/cli/commands/start.d.ts.map +1 -0
- package/dist/esm/cli/commands/start.js +272 -0
- package/dist/esm/cli/commands/start.js.map +1 -0
- package/dist/esm/cli/commands/status.d.ts +2 -0
- package/dist/esm/cli/commands/status.d.ts.map +1 -0
- package/dist/esm/cli/commands/status.js +222 -0
- package/dist/esm/cli/commands/status.js.map +1 -0
- package/dist/esm/cli/commands/stop.d.ts +6 -0
- package/dist/esm/cli/commands/stop.d.ts.map +1 -0
- package/dist/esm/cli/commands/stop.js +96 -0
- package/dist/esm/cli/commands/stop.js.map +1 -0
- package/dist/esm/cli/daemon/error-tracker.d.ts +119 -0
- package/dist/esm/cli/daemon/error-tracker.d.ts.map +1 -0
- package/dist/esm/cli/daemon/error-tracker.js +451 -0
- package/dist/esm/cli/daemon/error-tracker.js.map +1 -0
- package/dist/esm/cli/daemon/fault-shutdown.d.ts +144 -0
- package/dist/esm/cli/daemon/fault-shutdown.d.ts.map +1 -0
- package/dist/esm/cli/daemon/fault-shutdown.js +273 -0
- package/dist/esm/cli/daemon/fault-shutdown.js.map +1 -0
- package/dist/esm/cli/daemon/index.d.ts +12 -0
- package/dist/esm/cli/daemon/index.d.ts.map +1 -0
- package/dist/esm/cli/daemon/index.js +7 -0
- package/dist/esm/cli/daemon/index.js.map +1 -0
- package/dist/esm/cli/daemon/pid-file.d.ts +13 -0
- package/dist/esm/cli/daemon/pid-file.d.ts.map +1 -0
- package/dist/esm/cli/daemon/pid-file.js +51 -0
- package/dist/esm/cli/daemon/pid-file.js.map +1 -0
- package/dist/esm/cli/daemon/readiness.d.ts +30 -0
- package/dist/esm/cli/daemon/readiness.d.ts.map +1 -0
- package/dist/esm/cli/daemon/readiness.js +70 -0
- package/dist/esm/cli/daemon/readiness.js.map +1 -0
- package/dist/esm/cli/daemon/runtime.d.ts +366 -0
- package/dist/esm/cli/daemon/runtime.d.ts.map +1 -0
- package/dist/esm/cli/daemon/runtime.js +1284 -0
- package/dist/esm/cli/daemon/runtime.js.map +1 -0
- package/dist/esm/cli/daemon/shutdown.d.ts +7 -0
- package/dist/esm/cli/daemon/shutdown.d.ts.map +1 -0
- package/dist/esm/cli/daemon/shutdown.js +63 -0
- package/dist/esm/cli/daemon/shutdown.js.map +1 -0
- package/dist/esm/cli/daemon/signal-handlers.d.ts +3 -0
- package/dist/esm/cli/daemon/signal-handlers.d.ts.map +1 -0
- package/dist/esm/cli/daemon/signal-handlers.js +24 -0
- package/dist/esm/cli/daemon/signal-handlers.js.map +1 -0
- package/dist/esm/cli/daemon/state.d.ts +157 -0
- package/dist/esm/cli/daemon/state.d.ts.map +1 -0
- package/dist/esm/cli/daemon/state.js +352 -0
- package/dist/esm/cli/daemon/state.js.map +1 -0
- package/dist/esm/cli/daemon/status-file.d.ts +139 -0
- package/dist/esm/cli/daemon/status-file.d.ts.map +1 -0
- package/dist/esm/cli/daemon/status-file.js +50 -0
- package/dist/esm/cli/daemon/status-file.js.map +1 -0
- package/dist/esm/cli/doctor/checks.d.ts +133 -0
- package/dist/esm/cli/doctor/checks.d.ts.map +1 -0
- package/dist/esm/cli/doctor/checks.js +624 -0
- package/dist/esm/cli/doctor/checks.js.map +1 -0
- package/dist/esm/cli/doctor/fixes.d.ts +9 -0
- package/dist/esm/cli/doctor/fixes.d.ts.map +1 -0
- package/dist/esm/cli/doctor/fixes.js +163 -0
- package/dist/esm/cli/doctor/fixes.js.map +1 -0
- package/dist/esm/cli/doctor/index.d.ts +7 -0
- package/dist/esm/cli/doctor/index.d.ts.map +1 -0
- package/dist/esm/cli/doctor/index.js +5 -0
- package/dist/esm/cli/doctor/index.js.map +1 -0
- package/dist/esm/cli/index.d.ts +3 -0
- package/dist/esm/cli/index.d.ts.map +1 -0
- package/dist/esm/cli/index.js +333 -0
- package/dist/esm/cli/index.js.map +1 -0
- package/dist/esm/cli/interactive.d.ts +8 -0
- package/dist/esm/cli/interactive.d.ts.map +1 -0
- package/dist/esm/cli/interactive.js +665 -0
- package/dist/esm/cli/interactive.js.map +1 -0
- package/dist/esm/cli/logs/format.d.ts +13 -0
- package/dist/esm/cli/logs/format.d.ts.map +1 -0
- package/dist/esm/cli/logs/format.js +169 -0
- package/dist/esm/cli/logs/format.js.map +1 -0
- package/dist/esm/cli/logs/index.d.ts +3 -0
- package/dist/esm/cli/logs/index.d.ts.map +1 -0
- package/dist/esm/cli/logs/index.js +3 -0
- package/dist/esm/cli/logs/index.js.map +1 -0
- package/dist/esm/cli/logs/viewer.d.ts +41 -0
- package/dist/esm/cli/logs/viewer.d.ts.map +1 -0
- package/dist/esm/cli/logs/viewer.js +412 -0
- package/dist/esm/cli/logs/viewer.js.map +1 -0
- package/dist/esm/cli/ops/operation-logger.d.ts +63 -0
- package/dist/esm/cli/ops/operation-logger.d.ts.map +1 -0
- package/dist/esm/cli/ops/operation-logger.js +142 -0
- package/dist/esm/cli/ops/operation-logger.js.map +1 -0
- package/dist/esm/cli/palette.d.ts +11 -0
- package/dist/esm/cli/palette.d.ts.map +1 -0
- package/dist/esm/cli/palette.js +240 -0
- package/dist/esm/cli/palette.js.map +1 -0
- package/dist/esm/cli/prompt.d.ts +186 -0
- package/dist/esm/cli/prompt.d.ts.map +1 -0
- package/dist/esm/cli/prompt.js +483 -0
- package/dist/esm/cli/prompt.js.map +1 -0
- package/dist/esm/cli/ui/box.d.ts +21 -0
- package/dist/esm/cli/ui/box.d.ts.map +1 -0
- package/dist/esm/cli/ui/box.js +60 -0
- package/dist/esm/cli/ui/box.js.map +1 -0
- package/dist/esm/cli/ui/clipboard.d.ts +6 -0
- package/dist/esm/cli/ui/clipboard.d.ts.map +1 -0
- package/dist/esm/cli/ui/clipboard.js +42 -0
- package/dist/esm/cli/ui/clipboard.js.map +1 -0
- package/dist/esm/cli/ui/colors.d.ts +57 -0
- package/dist/esm/cli/ui/colors.d.ts.map +1 -0
- package/dist/esm/cli/ui/colors.js +126 -0
- package/dist/esm/cli/ui/colors.js.map +1 -0
- package/dist/esm/cli/ui/index.d.ts +9 -0
- package/dist/esm/cli/ui/index.d.ts.map +1 -0
- package/dist/esm/cli/ui/index.js +7 -0
- package/dist/esm/cli/ui/index.js.map +1 -0
- package/dist/esm/cli/ui/spinner.d.ts +12 -0
- package/dist/esm/cli/ui/spinner.d.ts.map +1 -0
- package/dist/esm/cli/ui/spinner.js +78 -0
- package/dist/esm/cli/ui/spinner.js.map +1 -0
- package/dist/esm/cli/ui/symbols.d.ts +47 -0
- package/dist/esm/cli/ui/symbols.d.ts.map +1 -0
- package/dist/esm/cli/ui/symbols.js +109 -0
- package/dist/esm/cli/ui/symbols.js.map +1 -0
- package/dist/esm/cli/ui/table.d.ts +23 -0
- package/dist/esm/cli/ui/table.d.ts.map +1 -0
- package/dist/esm/cli/ui/table.js +156 -0
- package/dist/esm/cli/ui/table.js.map +1 -0
- package/dist/esm/cli/ui/terminal.d.ts +7 -0
- package/dist/esm/cli/ui/terminal.d.ts.map +1 -0
- package/dist/esm/cli/ui/terminal.js +32 -0
- package/dist/esm/cli/ui/terminal.js.map +1 -0
- package/dist/esm/config/atomic-write.d.ts +69 -0
- package/dist/esm/config/atomic-write.d.ts.map +1 -0
- package/dist/esm/config/atomic-write.js +246 -0
- package/dist/esm/config/atomic-write.js.map +1 -0
- package/dist/esm/config/db-config.d.ts +134 -0
- package/dist/esm/config/db-config.d.ts.map +1 -0
- package/dist/esm/config/db-config.js +542 -0
- package/dist/esm/config/db-config.js.map +1 -0
- package/dist/esm/config/machine-config.d.ts +85 -0
- package/dist/esm/config/machine-config.d.ts.map +1 -0
- package/dist/esm/config/machine-config.js +190 -0
- package/dist/esm/config/machine-config.js.map +1 -0
- package/dist/esm/config/paths.d.ts +64 -0
- package/dist/esm/config/paths.d.ts.map +1 -0
- package/dist/esm/config/paths.js +108 -0
- package/dist/esm/config/paths.js.map +1 -0
- package/dist/esm/config/schema.d.ts +72 -0
- package/dist/esm/config/schema.d.ts.map +1 -0
- package/dist/esm/config/schema.js +180 -0
- package/dist/esm/config/schema.js.map +1 -0
- package/dist/esm/config/token.d.ts +63 -0
- package/dist/esm/config/token.d.ts.map +1 -0
- package/dist/esm/config/token.js +104 -0
- package/dist/esm/config/token.js.map +1 -0
- package/dist/esm/execution/canceller.d.ts +41 -0
- package/dist/esm/execution/canceller.d.ts.map +1 -0
- package/dist/esm/execution/canceller.js +205 -0
- package/dist/esm/execution/canceller.js.map +1 -0
- package/dist/esm/execution/database-lookup.d.ts +56 -0
- package/dist/esm/execution/database-lookup.d.ts.map +1 -0
- package/dist/esm/execution/database-lookup.js +38 -0
- package/dist/esm/execution/database-lookup.js.map +1 -0
- package/dist/esm/execution/dispatcher.d.ts +181 -0
- package/dist/esm/execution/dispatcher.d.ts.map +1 -0
- package/dist/esm/execution/dispatcher.js +1258 -0
- package/dist/esm/execution/dispatcher.js.map +1 -0
- package/dist/esm/execution/function-effects.d.ts +209 -0
- package/dist/esm/execution/function-effects.d.ts.map +1 -0
- package/dist/esm/execution/function-effects.js +586 -0
- package/dist/esm/execution/function-effects.js.map +1 -0
- package/dist/esm/execution/introspection.d.ts +76 -0
- package/dist/esm/execution/introspection.d.ts.map +1 -0
- package/dist/esm/execution/introspection.js +442 -0
- package/dist/esm/execution/introspection.js.map +1 -0
- package/dist/esm/execution/migration-runner.d.ts +128 -0
- package/dist/esm/execution/migration-runner.d.ts.map +1 -0
- package/dist/esm/execution/migration-runner.js +754 -0
- package/dist/esm/execution/migration-runner.js.map +1 -0
- package/dist/esm/execution/non-tx-detector.d.ts +23 -0
- package/dist/esm/execution/non-tx-detector.d.ts.map +1 -0
- package/dist/esm/execution/non-tx-detector.js +215 -0
- package/dist/esm/execution/non-tx-detector.js.map +1 -0
- package/dist/esm/execution/pool.d.ts +229 -0
- package/dist/esm/execution/pool.d.ts.map +1 -0
- package/dist/esm/execution/pool.js +685 -0
- package/dist/esm/execution/pool.js.map +1 -0
- package/dist/esm/execution/query-runner.d.ts +88 -0
- package/dist/esm/execution/query-runner.d.ts.map +1 -0
- package/dist/esm/execution/query-runner.js +743 -0
- package/dist/esm/execution/query-runner.js.map +1 -0
- package/dist/esm/execution/rate-limiter.d.ts +120 -0
- package/dist/esm/execution/rate-limiter.d.ts.map +1 -0
- package/dist/esm/execution/rate-limiter.js +269 -0
- package/dist/esm/execution/rate-limiter.js.map +1 -0
- package/dist/esm/execution/search-path.d.ts +161 -0
- package/dist/esm/execution/search-path.d.ts.map +1 -0
- package/dist/esm/execution/search-path.js +270 -0
- package/dist/esm/execution/search-path.js.map +1 -0
- package/dist/esm/execution/sql-parser.d.ts +195 -0
- package/dist/esm/execution/sql-parser.d.ts.map +1 -0
- package/dist/esm/execution/sql-parser.js +683 -0
- package/dist/esm/execution/sql-parser.js.map +1 -0
- package/dist/esm/execution/statement-classifier.d.ts +103 -0
- package/dist/esm/execution/statement-classifier.d.ts.map +1 -0
- package/dist/esm/execution/statement-classifier.js +526 -0
- package/dist/esm/execution/statement-classifier.js.map +1 -0
- package/dist/esm/execution/types.d.ts +189 -0
- package/dist/esm/execution/types.d.ts.map +1 -0
- package/dist/esm/execution/types.js +22 -0
- package/dist/esm/execution/types.js.map +1 -0
- package/dist/esm/index.d.ts +34 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +38 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/permissions/auto-upgrade.d.ts +40 -0
- package/dist/esm/permissions/auto-upgrade.d.ts.map +1 -0
- package/dist/esm/permissions/auto-upgrade.js +164 -0
- package/dist/esm/permissions/auto-upgrade.js.map +1 -0
- package/dist/esm/permissions/checker.d.ts +53 -0
- package/dist/esm/permissions/checker.d.ts.map +1 -0
- package/dist/esm/permissions/checker.js +322 -0
- package/dist/esm/permissions/checker.js.map +1 -0
- package/dist/esm/permissions/manual-approval.d.ts +213 -0
- package/dist/esm/permissions/manual-approval.d.ts.map +1 -0
- package/dist/esm/permissions/manual-approval.js +503 -0
- package/dist/esm/permissions/manual-approval.js.map +1 -0
- package/dist/esm/permissions/plan-registry.d.ts +274 -0
- package/dist/esm/permissions/plan-registry.d.ts.map +1 -0
- package/dist/esm/permissions/plan-registry.js +450 -0
- package/dist/esm/permissions/plan-registry.js.map +1 -0
- package/dist/esm/permissions/role-policy.d.ts +217 -0
- package/dist/esm/permissions/role-policy.d.ts.map +1 -0
- package/dist/esm/permissions/role-policy.js +570 -0
- package/dist/esm/permissions/role-policy.js.map +1 -0
- package/dist/esm/permissions/types.d.ts +126 -0
- package/dist/esm/permissions/types.d.ts.map +1 -0
- package/dist/esm/permissions/types.js +2 -0
- package/dist/esm/permissions/types.js.map +1 -0
- package/dist/esm/protocol/constants.d.ts +72 -0
- package/dist/esm/protocol/constants.d.ts.map +1 -0
- package/dist/esm/protocol/constants.js +104 -0
- package/dist/esm/protocol/constants.js.map +1 -0
- package/dist/esm/protocol/envelope.d.ts +165 -0
- package/dist/esm/protocol/envelope.d.ts.map +1 -0
- package/dist/esm/protocol/envelope.js +263 -0
- package/dist/esm/protocol/envelope.js.map +1 -0
- package/dist/esm/protocol/errors.d.ts +33 -0
- package/dist/esm/protocol/errors.d.ts.map +1 -0
- package/dist/esm/protocol/errors.js +384 -0
- package/dist/esm/protocol/errors.js.map +1 -0
- package/dist/esm/protocol/messages.d.ts +327 -0
- package/dist/esm/protocol/messages.d.ts.map +1 -0
- package/dist/esm/protocol/messages.js +2 -0
- package/dist/esm/protocol/messages.js.map +1 -0
- package/dist/esm/protocol/serialize.d.ts +26 -0
- package/dist/esm/protocol/serialize.d.ts.map +1 -0
- package/dist/esm/protocol/serialize.js +63 -0
- package/dist/esm/protocol/serialize.js.map +1 -0
- package/dist/esm/protocol/validate.d.ts +135 -0
- package/dist/esm/protocol/validate.d.ts.map +1 -0
- package/dist/esm/protocol/validate.js +830 -0
- package/dist/esm/protocol/validate.js.map +1 -0
- package/dist/types/audit/chain.d.ts +365 -0
- package/dist/types/audit/chain.d.ts.map +1 -0
- package/dist/types/audit/cloud-client.d.ts +142 -0
- package/dist/types/audit/cloud-client.d.ts.map +1 -0
- package/dist/types/audit/cloud-writer.d.ts +57 -0
- package/dist/types/audit/cloud-writer.d.ts.map +1 -0
- package/dist/types/audit/context.d.ts +51 -0
- package/dist/types/audit/context.d.ts.map +1 -0
- package/dist/types/audit/files.d.ts +111 -0
- package/dist/types/audit/files.d.ts.map +1 -0
- package/dist/types/audit/index.d.ts +9 -0
- package/dist/types/audit/index.d.ts.map +1 -0
- package/dist/types/audit/local-writer.d.ts +255 -0
- package/dist/types/audit/local-writer.d.ts.map +1 -0
- package/dist/types/audit/redact.d.ts +151 -0
- package/dist/types/audit/redact.d.ts.map +1 -0
- package/dist/types/audit/sanitize.d.ts +78 -0
- package/dist/types/audit/sanitize.d.ts.map +1 -0
- package/dist/types/audit/sink.d.ts +278 -0
- package/dist/types/audit/sink.d.ts.map +1 -0
- package/dist/types/audit/types.d.ts +226 -0
- package/dist/types/audit/types.d.ts.map +1 -0
- package/dist/types/audit/verify-cache.d.ts +127 -0
- package/dist/types/audit/verify-cache.d.ts.map +1 -0
- package/dist/types/channels/agent-session.d.ts +228 -0
- package/dist/types/channels/agent-session.d.ts.map +1 -0
- package/dist/types/channels/data-channel.d.ts +181 -0
- package/dist/types/channels/data-channel.d.ts.map +1 -0
- package/dist/types/channels/reconnect.d.ts +142 -0
- package/dist/types/channels/reconnect.d.ts.map +1 -0
- package/dist/types/channels/types.d.ts +112 -0
- package/dist/types/channels/types.d.ts.map +1 -0
- package/dist/types/channels/wake-channel.d.ts +232 -0
- package/dist/types/channels/wake-channel.d.ts.map +1 -0
- package/dist/types/cli/banner.d.ts +2 -0
- package/dist/types/cli/banner.d.ts.map +1 -0
- package/dist/types/cli/commands/agent.d.ts +30 -0
- package/dist/types/cli/commands/agent.d.ts.map +1 -0
- package/dist/types/cli/commands/audit-verify.d.ts +19 -0
- package/dist/types/cli/commands/audit-verify.d.ts.map +1 -0
- package/dist/types/cli/commands/clean.d.ts +23 -0
- package/dist/types/cli/commands/clean.d.ts.map +1 -0
- package/dist/types/cli/commands/config-show.d.ts +2 -0
- package/dist/types/cli/commands/config-show.d.ts.map +1 -0
- package/dist/types/cli/commands/config.d.ts +6 -0
- package/dist/types/cli/commands/config.d.ts.map +1 -0
- package/dist/types/cli/commands/db-add.d.ts +16 -0
- package/dist/types/cli/commands/db-add.d.ts.map +1 -0
- package/dist/types/cli/commands/db-edit.d.ts +2 -0
- package/dist/types/cli/commands/db-edit.d.ts.map +1 -0
- package/dist/types/cli/commands/db-logs.d.ts +3 -0
- package/dist/types/cli/commands/db-logs.d.ts.map +1 -0
- package/dist/types/cli/commands/db-ls.d.ts +2 -0
- package/dist/types/cli/commands/db-ls.d.ts.map +1 -0
- package/dist/types/cli/commands/db-query.d.ts +121 -0
- package/dist/types/cli/commands/db-query.d.ts.map +1 -0
- package/dist/types/cli/commands/db-remove.d.ts +2 -0
- package/dist/types/cli/commands/db-remove.d.ts.map +1 -0
- package/dist/types/cli/commands/db-show.d.ts +2 -0
- package/dist/types/cli/commands/db-show.d.ts.map +1 -0
- package/dist/types/cli/commands/db-test.d.ts +3 -0
- package/dist/types/cli/commands/db-test.d.ts.map +1 -0
- package/dist/types/cli/commands/db.d.ts +11 -0
- package/dist/types/cli/commands/db.d.ts.map +1 -0
- package/dist/types/cli/commands/debug.d.ts +2 -0
- package/dist/types/cli/commands/debug.d.ts.map +1 -0
- package/dist/types/cli/commands/doctor.d.ts +5 -0
- package/dist/types/cli/commands/doctor.d.ts.map +1 -0
- package/dist/types/cli/commands/index.d.ts +10 -0
- package/dist/types/cli/commands/index.d.ts.map +1 -0
- package/dist/types/cli/commands/init.d.ts +2 -0
- package/dist/types/cli/commands/init.d.ts.map +1 -0
- package/dist/types/cli/commands/link.d.ts +5 -0
- package/dist/types/cli/commands/link.d.ts.map +1 -0
- package/dist/types/cli/commands/logs.d.ts +17 -0
- package/dist/types/cli/commands/logs.d.ts.map +1 -0
- package/dist/types/cli/commands/project-show.d.ts +2 -0
- package/dist/types/cli/commands/project-show.d.ts.map +1 -0
- package/dist/types/cli/commands/project.d.ts +3 -0
- package/dist/types/cli/commands/project.d.ts.map +1 -0
- package/dist/types/cli/commands/service.d.ts +123 -0
- package/dist/types/cli/commands/service.d.ts.map +1 -0
- package/dist/types/cli/commands/start.d.ts +6 -0
- package/dist/types/cli/commands/start.d.ts.map +1 -0
- package/dist/types/cli/commands/status.d.ts +2 -0
- package/dist/types/cli/commands/status.d.ts.map +1 -0
- package/dist/types/cli/commands/stop.d.ts +6 -0
- package/dist/types/cli/commands/stop.d.ts.map +1 -0
- package/dist/types/cli/daemon/error-tracker.d.ts +119 -0
- package/dist/types/cli/daemon/error-tracker.d.ts.map +1 -0
- package/dist/types/cli/daemon/fault-shutdown.d.ts +144 -0
- package/dist/types/cli/daemon/fault-shutdown.d.ts.map +1 -0
- package/dist/types/cli/daemon/index.d.ts +12 -0
- package/dist/types/cli/daemon/index.d.ts.map +1 -0
- package/dist/types/cli/daemon/pid-file.d.ts +13 -0
- package/dist/types/cli/daemon/pid-file.d.ts.map +1 -0
- package/dist/types/cli/daemon/readiness.d.ts +30 -0
- package/dist/types/cli/daemon/readiness.d.ts.map +1 -0
- package/dist/types/cli/daemon/runtime.d.ts +366 -0
- package/dist/types/cli/daemon/runtime.d.ts.map +1 -0
- package/dist/types/cli/daemon/shutdown.d.ts +7 -0
- package/dist/types/cli/daemon/shutdown.d.ts.map +1 -0
- package/dist/types/cli/daemon/signal-handlers.d.ts +3 -0
- package/dist/types/cli/daemon/signal-handlers.d.ts.map +1 -0
- package/dist/types/cli/daemon/state.d.ts +157 -0
- package/dist/types/cli/daemon/state.d.ts.map +1 -0
- package/dist/types/cli/daemon/status-file.d.ts +139 -0
- package/dist/types/cli/daemon/status-file.d.ts.map +1 -0
- package/dist/types/cli/doctor/checks.d.ts +133 -0
- package/dist/types/cli/doctor/checks.d.ts.map +1 -0
- package/dist/types/cli/doctor/fixes.d.ts +9 -0
- package/dist/types/cli/doctor/fixes.d.ts.map +1 -0
- package/dist/types/cli/doctor/index.d.ts +7 -0
- package/dist/types/cli/doctor/index.d.ts.map +1 -0
- package/dist/types/cli/index.d.ts +3 -0
- package/dist/types/cli/index.d.ts.map +1 -0
- package/dist/types/cli/interactive.d.ts +8 -0
- package/dist/types/cli/interactive.d.ts.map +1 -0
- package/dist/types/cli/logs/format.d.ts +13 -0
- package/dist/types/cli/logs/format.d.ts.map +1 -0
- package/dist/types/cli/logs/index.d.ts +3 -0
- package/dist/types/cli/logs/index.d.ts.map +1 -0
- package/dist/types/cli/logs/viewer.d.ts +41 -0
- package/dist/types/cli/logs/viewer.d.ts.map +1 -0
- package/dist/types/cli/ops/operation-logger.d.ts +63 -0
- package/dist/types/cli/ops/operation-logger.d.ts.map +1 -0
- package/dist/types/cli/palette.d.ts +11 -0
- package/dist/types/cli/palette.d.ts.map +1 -0
- package/dist/types/cli/prompt.d.ts +186 -0
- package/dist/types/cli/prompt.d.ts.map +1 -0
- package/dist/types/cli/ui/box.d.ts +21 -0
- package/dist/types/cli/ui/box.d.ts.map +1 -0
- package/dist/types/cli/ui/clipboard.d.ts +6 -0
- package/dist/types/cli/ui/clipboard.d.ts.map +1 -0
- package/dist/types/cli/ui/colors.d.ts +57 -0
- package/dist/types/cli/ui/colors.d.ts.map +1 -0
- package/dist/types/cli/ui/index.d.ts +9 -0
- package/dist/types/cli/ui/index.d.ts.map +1 -0
- package/dist/types/cli/ui/spinner.d.ts +12 -0
- package/dist/types/cli/ui/spinner.d.ts.map +1 -0
- package/dist/types/cli/ui/symbols.d.ts +47 -0
- package/dist/types/cli/ui/symbols.d.ts.map +1 -0
- package/dist/types/cli/ui/table.d.ts +23 -0
- package/dist/types/cli/ui/table.d.ts.map +1 -0
- package/dist/types/cli/ui/terminal.d.ts +7 -0
- package/dist/types/cli/ui/terminal.d.ts.map +1 -0
- package/dist/types/config/atomic-write.d.ts +69 -0
- package/dist/types/config/atomic-write.d.ts.map +1 -0
- package/dist/types/config/db-config.d.ts +134 -0
- package/dist/types/config/db-config.d.ts.map +1 -0
- package/dist/types/config/machine-config.d.ts +85 -0
- package/dist/types/config/machine-config.d.ts.map +1 -0
- package/dist/types/config/paths.d.ts +64 -0
- package/dist/types/config/paths.d.ts.map +1 -0
- package/dist/types/config/schema.d.ts +72 -0
- package/dist/types/config/schema.d.ts.map +1 -0
- package/dist/types/config/token.d.ts +63 -0
- package/dist/types/config/token.d.ts.map +1 -0
- package/dist/types/execution/canceller.d.ts +41 -0
- package/dist/types/execution/canceller.d.ts.map +1 -0
- package/dist/types/execution/database-lookup.d.ts +56 -0
- package/dist/types/execution/database-lookup.d.ts.map +1 -0
- package/dist/types/execution/dispatcher.d.ts +181 -0
- package/dist/types/execution/dispatcher.d.ts.map +1 -0
- package/dist/types/execution/function-effects.d.ts +209 -0
- package/dist/types/execution/function-effects.d.ts.map +1 -0
- package/dist/types/execution/introspection.d.ts +76 -0
- package/dist/types/execution/introspection.d.ts.map +1 -0
- package/dist/types/execution/migration-runner.d.ts +128 -0
- package/dist/types/execution/migration-runner.d.ts.map +1 -0
- package/dist/types/execution/non-tx-detector.d.ts +23 -0
- package/dist/types/execution/non-tx-detector.d.ts.map +1 -0
- package/dist/types/execution/pool.d.ts +229 -0
- package/dist/types/execution/pool.d.ts.map +1 -0
- package/dist/types/execution/query-runner.d.ts +88 -0
- package/dist/types/execution/query-runner.d.ts.map +1 -0
- package/dist/types/execution/rate-limiter.d.ts +120 -0
- package/dist/types/execution/rate-limiter.d.ts.map +1 -0
- package/dist/types/execution/search-path.d.ts +161 -0
- package/dist/types/execution/search-path.d.ts.map +1 -0
- package/dist/types/execution/sql-parser.d.ts +195 -0
- package/dist/types/execution/sql-parser.d.ts.map +1 -0
- package/dist/types/execution/statement-classifier.d.ts +103 -0
- package/dist/types/execution/statement-classifier.d.ts.map +1 -0
- package/dist/types/execution/types.d.ts +189 -0
- package/dist/types/execution/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +34 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/permissions/auto-upgrade.d.ts +40 -0
- package/dist/types/permissions/auto-upgrade.d.ts.map +1 -0
- package/dist/types/permissions/checker.d.ts +53 -0
- package/dist/types/permissions/checker.d.ts.map +1 -0
- package/dist/types/permissions/manual-approval.d.ts +213 -0
- package/dist/types/permissions/manual-approval.d.ts.map +1 -0
- package/dist/types/permissions/plan-registry.d.ts +274 -0
- package/dist/types/permissions/plan-registry.d.ts.map +1 -0
- package/dist/types/permissions/role-policy.d.ts +217 -0
- package/dist/types/permissions/role-policy.d.ts.map +1 -0
- package/dist/types/permissions/types.d.ts +126 -0
- package/dist/types/permissions/types.d.ts.map +1 -0
- package/dist/types/protocol/constants.d.ts +72 -0
- package/dist/types/protocol/constants.d.ts.map +1 -0
- package/dist/types/protocol/envelope.d.ts +165 -0
- package/dist/types/protocol/envelope.d.ts.map +1 -0
- package/dist/types/protocol/errors.d.ts +33 -0
- package/dist/types/protocol/errors.d.ts.map +1 -0
- package/dist/types/protocol/messages.d.ts +327 -0
- package/dist/types/protocol/messages.d.ts.map +1 -0
- package/dist/types/protocol/serialize.d.ts +26 -0
- package/dist/types/protocol/serialize.d.ts.map +1 -0
- package/dist/types/protocol/validate.d.ts +135 -0
- package/dist/types/protocol/validate.d.ts.map +1 -0
- package/package.json +116 -4
- package/scripts/generate-systemd-service.mjs +117 -0
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POOL_ERROR_MESSAGES = exports.PG_RETRYABLE_CODES = exports.PG_CURATED_HINTS = exports.PG_CURATED_MESSAGES = exports.PG_DETAIL_ALLOWLIST = void 0;
|
|
4
|
+
exports.scrubTopology = scrubTopology;
|
|
5
|
+
exports.isDetailAllowed = isDetailAllowed;
|
|
6
|
+
exports.sanitizePgError = sanitizePgError;
|
|
7
|
+
exports.sanitizeReason = sanitizeReason;
|
|
8
|
+
exports.sanitizeErrorText = sanitizeErrorText;
|
|
9
|
+
/**
|
|
10
|
+
* Outbound error sanitisation.
|
|
11
|
+
*
|
|
12
|
+
* `Dispatcher.mapErrorToPayload` used to copy PostgreSQL's `message`, `detail`
|
|
13
|
+
* and `hint` straight onto the wire. DETAIL lines routinely carry row data:
|
|
14
|
+
*
|
|
15
|
+
* ERROR: duplicate key value violates unique constraint "users_email_key"
|
|
16
|
+
* DETAIL: Key (email)=(alice@corp.com) already exists.
|
|
17
|
+
*
|
|
18
|
+
* and `PoolError` messages embed host, port, user and database name. This path
|
|
19
|
+
* had no redaction at all, which made it the most reliable PII leak in the
|
|
20
|
+
* connector.
|
|
21
|
+
*
|
|
22
|
+
* The rules here are deny-by-default:
|
|
23
|
+
* - only SQLSTATE codes on {@link PG_DETAIL_ALLOWLIST} may contribute
|
|
24
|
+
* anything other than `code` + `severity`;
|
|
25
|
+
* - the raw `detail`/`hint` are NEVER forwarded — the hint is always one of
|
|
26
|
+
* our own strings from {@link PG_CURATED_HINTS};
|
|
27
|
+
* - anything that does survive is passed through the SQL lexer (which turns
|
|
28
|
+
* `Key (email)=(…)` into `Key (email)=(?)` and strips literals) and then
|
|
29
|
+
* through {@link scrubTopology}, which removes hosts, users, database
|
|
30
|
+
* names, absolute paths, URLs and email addresses.
|
|
31
|
+
*/
|
|
32
|
+
const redact_1 = require("./redact");
|
|
33
|
+
/** Upper bound on any message we put on the wire. */
|
|
34
|
+
const MAX_MESSAGE_CHARS = 400;
|
|
35
|
+
/**
|
|
36
|
+
* SQLSTATE codes for which operator-useful detail text is surfaced.
|
|
37
|
+
*
|
|
38
|
+
* These are all class-22/23 (integrity), class-28 (auth), class-40 (transaction
|
|
39
|
+
* rollback), class-42 (syntax/access), class-53/55 (resource) and 57 (cancel)
|
|
40
|
+
* codes whose text is structural. Anything NOT listed here yields `code` +
|
|
41
|
+
* `severity` + a generic message only.
|
|
42
|
+
*/
|
|
43
|
+
exports.PG_DETAIL_ALLOWLIST = new Set([
|
|
44
|
+
'23505', // unique_violation
|
|
45
|
+
'23503', // foreign_key_violation
|
|
46
|
+
'23502', // not_null_violation
|
|
47
|
+
'23514', // check_violation
|
|
48
|
+
'42501', // insufficient_privilege
|
|
49
|
+
'42P01', // undefined_table
|
|
50
|
+
'42703', // undefined_column
|
|
51
|
+
'42883', // undefined_function
|
|
52
|
+
'57014', // query_canceled
|
|
53
|
+
'53300', // too_many_connections
|
|
54
|
+
'55P03', // lock_not_available
|
|
55
|
+
'40001', // serialization_failure
|
|
56
|
+
'40P01', // deadlock_detected
|
|
57
|
+
'3D000', // invalid_catalog_name
|
|
58
|
+
'28P01', // invalid_password
|
|
59
|
+
'28000', // invalid_authorization_specification
|
|
60
|
+
'25P02', // in_failed_sql_transaction
|
|
61
|
+
]);
|
|
62
|
+
/**
|
|
63
|
+
* Our own one-line description for each SQLSTATE we recognise.
|
|
64
|
+
*
|
|
65
|
+
* These are strings written here, not derived from PostgreSQL output, so they
|
|
66
|
+
* cannot carry row data. Codes that are absent get a generic message that names
|
|
67
|
+
* only the SQLSTATE.
|
|
68
|
+
*/
|
|
69
|
+
exports.PG_CURATED_MESSAGES = {
|
|
70
|
+
'22001': 'A value was longer than its column allows.',
|
|
71
|
+
'22003': 'A numeric value was outside the range its column allows.',
|
|
72
|
+
'22007': 'A date or time value is not valid.',
|
|
73
|
+
'22008': 'A date or time value was out of range.',
|
|
74
|
+
'22012': 'Division by zero.',
|
|
75
|
+
'22023': 'A parameter is outside the valid range.',
|
|
76
|
+
'22P02': 'A value could not be converted to the required type.',
|
|
77
|
+
'23502': 'A column that requires a value was given none.',
|
|
78
|
+
'23503': 'A foreign key constraint was violated: the referenced row is missing.',
|
|
79
|
+
'23505': 'A unique constraint was violated: the row already exists.',
|
|
80
|
+
'23514': 'A value failed a check constraint on the table.',
|
|
81
|
+
'23P01': 'No exclusion constraint permits this row.',
|
|
82
|
+
'25000': 'The transaction is in an invalid state for this operation.',
|
|
83
|
+
'25P01': 'The transaction is already aborted.',
|
|
84
|
+
'25P02': 'The current transaction cannot be committed or rolled back in this state.',
|
|
85
|
+
'28000': 'The database refused the operation for this role.',
|
|
86
|
+
'28P01': 'The database rejected the configured credentials.',
|
|
87
|
+
'3D000': 'The requested database does not exist.',
|
|
88
|
+
'40001': 'The transaction lost a serialization conflict. Retry it.',
|
|
89
|
+
'40P01': 'Deadlock detected. The transaction was rolled back.',
|
|
90
|
+
'42501': 'The database refused the operation: insufficient privilege.',
|
|
91
|
+
'42601': 'The statement is not valid PostgreSQL syntax.',
|
|
92
|
+
'42701': 'A column was specified more than once.',
|
|
93
|
+
'42703': 'A referenced column does not exist.',
|
|
94
|
+
'42704': 'The referenced object does not exist.',
|
|
95
|
+
'42710': 'A constraint with that name already exists.',
|
|
96
|
+
'42711': 'A column is defined more than once.',
|
|
97
|
+
'42804': 'A column, function or operator has the wrong type.',
|
|
98
|
+
'42883': 'The referenced function or operator does not exist.',
|
|
99
|
+
'42P01': 'The referenced table or view does not exist.',
|
|
100
|
+
'42P04': 'The requested database does not exist.',
|
|
101
|
+
'42P06': 'The requested schema already exists.',
|
|
102
|
+
'42P07': 'The requested table already exists.',
|
|
103
|
+
'53300': 'The database is out of connection slots.',
|
|
104
|
+
'55P03': 'The target object is currently locked by another transaction.',
|
|
105
|
+
'57014': 'The statement was cancelled or exceeded its timeout.',
|
|
106
|
+
'58030': 'The connection to the server was lost.',
|
|
107
|
+
XX000: 'The database reported an internal error.',
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Our own hints. Never the server's `hint` field — that is attacker-influenced
|
|
111
|
+
* free text in the general case and is not on any allow-list.
|
|
112
|
+
*/
|
|
113
|
+
exports.PG_CURATED_HINTS = {
|
|
114
|
+
'23505': 'A row with the same value already exists in a unique column or index.',
|
|
115
|
+
'23503': 'The referenced row is missing, or the child row is still referenced.',
|
|
116
|
+
'23502': 'A NOT NULL column was given NULL.',
|
|
117
|
+
'23514': 'A CHECK constraint rejected the row.',
|
|
118
|
+
'42501': 'The PostgreSQL role used by this agent lacks the required privilege.',
|
|
119
|
+
'42P01': 'Check the schema and table name, or run Introspect to list tables.',
|
|
120
|
+
'42703': 'Check the column name against the table definition.',
|
|
121
|
+
'42883': 'Check the function name and its argument types.',
|
|
122
|
+
'57014': 'The statement hit the configured statement_timeout or was cancelled.',
|
|
123
|
+
'53300': 'Wait for other sessions to finish, or raise the server max_connections.',
|
|
124
|
+
'55P03': 'Another transaction holds a conflicting lock. Retry after it commits.',
|
|
125
|
+
'40001': 'Retry the whole transaction; concurrent updates were detected.',
|
|
126
|
+
'40P01': 'Retry the transaction. Deadlocks are reported, not prevented.',
|
|
127
|
+
'3D000': 'Check the `database` value on this database entry.',
|
|
128
|
+
'28P01': 'Verify the password env var and that the PostgreSQL role can log in.',
|
|
129
|
+
'28000': 'Check the PostgreSQL role and its LOGIN attribute.',
|
|
130
|
+
'25P02': 'The current transaction is aborted; roll back before continuing.',
|
|
131
|
+
};
|
|
132
|
+
/** Codes where retrying the identical request can succeed. */
|
|
133
|
+
exports.PG_RETRYABLE_CODES = new Set([
|
|
134
|
+
'40001',
|
|
135
|
+
'40P01',
|
|
136
|
+
'53300',
|
|
137
|
+
'55P03',
|
|
138
|
+
'57014',
|
|
139
|
+
'57P03', // cannot_connect_now
|
|
140
|
+
'08000',
|
|
141
|
+
'08003',
|
|
142
|
+
'08006', // connection exceptions
|
|
143
|
+
'58030',
|
|
144
|
+
]);
|
|
145
|
+
/**
|
|
146
|
+
* Replacement text for `PoolError` codes. The originals interpolate host, port,
|
|
147
|
+
* user and database name, so they are never forwarded verbatim.
|
|
148
|
+
*/
|
|
149
|
+
exports.POOL_ERROR_MESSAGES = {
|
|
150
|
+
env_var_missing: 'The database password is not available to the agent.',
|
|
151
|
+
connection_failed: 'Cannot reach the PostgreSQL server for this database.',
|
|
152
|
+
auth_failed: 'PostgreSQL rejected the credentials for this database.',
|
|
153
|
+
db_not_found: 'The configured PostgreSQL database does not exist.',
|
|
154
|
+
ssl_error: 'The TLS handshake with PostgreSQL failed.',
|
|
155
|
+
pool_exhausted: 'The connection pool for this database is exhausted.',
|
|
156
|
+
unsafe_session_setting: 'A session setting this agent requires was rejected.',
|
|
157
|
+
};
|
|
158
|
+
const GENERIC_MESSAGE = 'The database rejected the request. See the agent log for details.';
|
|
159
|
+
/* ------------------------------------------------------------------ */
|
|
160
|
+
/* Topology scrubbing */
|
|
161
|
+
/* ------------------------------------------------------------------ */
|
|
162
|
+
const SCRUB_RULES = [
|
|
163
|
+
// Connection URIs: postgres://user:pass@host:5432/db
|
|
164
|
+
[/\b[a-z][a-z0-9+.-]*:\/\/[^\s'")]+/gi, '<url>'],
|
|
165
|
+
// key=value forms used by libpq and the driver
|
|
166
|
+
[/\b(password|passfile|sslpassword)\s*=\s*("[^"]*"|'[^']*'|\S+)/gi, '$1=<redacted>'],
|
|
167
|
+
[
|
|
168
|
+
/\b(user|username|role|database|dbname|host|hostaddr|address|application_name)\s*[:=]\s*("[^"]*"|'[^']*'|\S+)/gi,
|
|
169
|
+
'$1=<redacted>',
|
|
170
|
+
],
|
|
171
|
+
// prose forms: `for user "app_user"`, `on database "acme"`, `by role bob`
|
|
172
|
+
[
|
|
173
|
+
/\b(user|username|role|database|dbname|host|hostname|address)\s+("[^"]*"|'[^']*')/gi,
|
|
174
|
+
'$1 <redacted>',
|
|
175
|
+
],
|
|
176
|
+
[
|
|
177
|
+
/\b(for|by|on)\s+(user|role|database|dbname)\s+("[^"]*"|'[^']*'|[^\s,;]+)/gi,
|
|
178
|
+
'$1 $2 <redacted>',
|
|
179
|
+
],
|
|
180
|
+
// IPv4 / IPv6 literals, with or without a port
|
|
181
|
+
[/\[\s*[0-9A-Fa-f:.]+\s*\](?::\d{1,5})?/g, '<host>'],
|
|
182
|
+
[/\b\d{1,3}(?:\.\d{1,3}){3}(?::\d{1,5})?\b/g, '<host>'],
|
|
183
|
+
// a port, which is topology even without the host next to it
|
|
184
|
+
[/:\d{2,5}\b/g, ':<port>'],
|
|
185
|
+
// absolute filesystem paths
|
|
186
|
+
[/(^|[\s"'(=:])(?:\/[A-Za-z0-9._+-]+){2,}/g, '$1<path>'],
|
|
187
|
+
// email addresses (unquoted row values, log lines, NOTICE output)
|
|
188
|
+
[/[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+(?:\.[A-Za-z0-9-]+)+/g, '<email>'],
|
|
189
|
+
// a DNS name immediately followed by a port, as libpq and the driver print them
|
|
190
|
+
[/\b[A-Za-z0-9][A-Za-z0-9.-]*\.[A-Za-z][A-Za-z0-9-]*:\d{1,5}\b/g, '<host>'],
|
|
191
|
+
];
|
|
192
|
+
/**
|
|
193
|
+
* Remove hostnames, usernames, database names, URLs, absolute paths and email
|
|
194
|
+
* addresses from text that is about to leave the process.
|
|
195
|
+
*/
|
|
196
|
+
function scrubTopology(text, topology) {
|
|
197
|
+
if (typeof text !== 'string' || text.length === 0)
|
|
198
|
+
return '';
|
|
199
|
+
let out = text;
|
|
200
|
+
const exact = [];
|
|
201
|
+
if (topology) {
|
|
202
|
+
for (const value of [topology.host, topology.user, topology.database, topology.project]) {
|
|
203
|
+
// 3 characters is the floor: a shorter value would match inside ordinary
|
|
204
|
+
// words and mangle the message. Leaking beats cosmetic damage, so this
|
|
205
|
+
// is deliberately low.
|
|
206
|
+
if (typeof value === 'string' && value.length >= 3)
|
|
207
|
+
exact.push(value);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
// Longest first so `db.internal` is removed before `db`.
|
|
211
|
+
exact.sort((a, b) => b.length - a.length);
|
|
212
|
+
for (const value of exact) {
|
|
213
|
+
out = out.split(value).join('<redacted>');
|
|
214
|
+
}
|
|
215
|
+
for (const [re, replacement] of SCRUB_RULES) {
|
|
216
|
+
out = out.replace(re, replacement);
|
|
217
|
+
}
|
|
218
|
+
return collapse(out);
|
|
219
|
+
}
|
|
220
|
+
function collapse(text) {
|
|
221
|
+
return text.replace(/[ \t]{2,}/g, ' ').trim();
|
|
222
|
+
}
|
|
223
|
+
/* ------------------------------------------------------------------ */
|
|
224
|
+
/* Public API */
|
|
225
|
+
/* ------------------------------------------------------------------ */
|
|
226
|
+
/** True when `code` may contribute detail text and a curated hint. */
|
|
227
|
+
function isDetailAllowed(code) {
|
|
228
|
+
return exports.PG_DETAIL_ALLOWLIST.has(code);
|
|
229
|
+
}
|
|
230
|
+
function readString(value) {
|
|
231
|
+
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
232
|
+
}
|
|
233
|
+
function asRecord(err) {
|
|
234
|
+
return err !== null && typeof err === 'object' ? err : {};
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Redact + scrub one piece of free text so it can be shown to the operator and
|
|
238
|
+
* shipped to the browser. Quoted identifiers are redacted too, because
|
|
239
|
+
* PostgreSQL quotes row values in messages such as
|
|
240
|
+
* `invalid input syntax for type integer: "alice@corp.com"`.
|
|
241
|
+
*/
|
|
242
|
+
function cleanText(text, opts, redactIdentifiers = true) {
|
|
243
|
+
if (!text)
|
|
244
|
+
return undefined;
|
|
245
|
+
// The strict pass always runs first, so a caller-supplied redactor can never
|
|
246
|
+
// widen the output.
|
|
247
|
+
const first = (0, redact_1.redactSqlLiterals)(text, { redactIdentifiers });
|
|
248
|
+
if (first === redact_1.UNREDACTABLE)
|
|
249
|
+
return undefined;
|
|
250
|
+
const second = opts.redactSql ? opts.redactSql(first) : first;
|
|
251
|
+
if (!second || second === redact_1.UNREDACTABLE)
|
|
252
|
+
return undefined;
|
|
253
|
+
const scrubbed = scrubTopology(second, opts.topology);
|
|
254
|
+
return scrubbed.length > 0 ? scrubbed : undefined;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Convert an arbitrary thrown value into a wire-safe error description.
|
|
258
|
+
*
|
|
259
|
+
* Never throws. Never returns row data, credentials, hostnames, usernames,
|
|
260
|
+
* database names or filesystem paths.
|
|
261
|
+
*/
|
|
262
|
+
function sanitizePgError(err, opts = {}) {
|
|
263
|
+
const raw = asRecord(err);
|
|
264
|
+
const code = readString(raw.code) ?? 'UNKNOWN';
|
|
265
|
+
const severity = readString(raw.severity);
|
|
266
|
+
const name = readString(raw.name);
|
|
267
|
+
const message = readString(raw.message) ?? (typeof err === 'string' ? err : undefined);
|
|
268
|
+
const detail = readString(raw.detail);
|
|
269
|
+
const out = { code, message: '' };
|
|
270
|
+
if (severity)
|
|
271
|
+
out.severity = severity;
|
|
272
|
+
if (name === 'PoolError') {
|
|
273
|
+
out.message = exports.POOL_ERROR_MESSAGES[code] ?? 'The agent could not use this database connection.';
|
|
274
|
+
}
|
|
275
|
+
else if (isDetailAllowed(code)) {
|
|
276
|
+
const parts = [exports.PG_CURATED_MESSAGES[code] ?? 'The database reported an error.'];
|
|
277
|
+
const cleanedMessage = cleanText(message, opts);
|
|
278
|
+
if (cleanedMessage)
|
|
279
|
+
parts.push(cleanedMessage);
|
|
280
|
+
const cleanedDetail = cleanText(detail, opts);
|
|
281
|
+
if (cleanedDetail)
|
|
282
|
+
parts.push(cleanedDetail);
|
|
283
|
+
out.message = clamp(parts.join(' '));
|
|
284
|
+
const hint = exports.PG_CURATED_HINTS[code];
|
|
285
|
+
if (hint)
|
|
286
|
+
out.hint = hint;
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
out.message = clamp(`Database error (${code}). ${GENERIC_MESSAGE}`);
|
|
290
|
+
}
|
|
291
|
+
if (exports.PG_RETRYABLE_CODES.has(code))
|
|
292
|
+
out.retryable = true;
|
|
293
|
+
return out;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Sanitise a free-text reason that came from our own permission layer. Those
|
|
297
|
+
* strings can embed a parser error, and a parser error embeds the SQL that
|
|
298
|
+
* failed to parse — so identifiers and literals are both redacted here.
|
|
299
|
+
*/
|
|
300
|
+
function sanitizeReason(reason, opts = {}) {
|
|
301
|
+
const cleaned = cleanText(reason, opts);
|
|
302
|
+
return cleaned ?? 'Request denied.';
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Sanitise a message that arrived as a bare string (e.g. a migration
|
|
306
|
+
* statement's recorded error) rather than as an error object.
|
|
307
|
+
*/
|
|
308
|
+
function sanitizeErrorText(text, opts = {}) {
|
|
309
|
+
return cleanText(text ?? undefined, opts) ?? GENERIC_MESSAGE;
|
|
310
|
+
}
|
|
311
|
+
function clamp(text) {
|
|
312
|
+
const trimmed = collapse(text);
|
|
313
|
+
return trimmed.length > MAX_MESSAGE_CHARS ? trimmed.slice(0, MAX_MESSAGE_CHARS) + '…' : trimmed;
|
|
314
|
+
}
|
|
315
|
+
//# sourceMappingURL=sanitize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../../src/audit/sanitize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
import { LocalAuditWriter } from './local-writer';
|
|
2
|
+
import { CloudAuditWriter } from './cloud-writer';
|
|
3
|
+
import { AuditActor, AuditEvent, AuditFilter, AuditQueryResult, AuditSinkHealth } from './types';
|
|
4
|
+
import { type ResolvedDbIdentity } from './context';
|
|
5
|
+
/**
|
|
6
|
+
* Fields the sink fills in itself; a caller supplies only the facts it knows.
|
|
7
|
+
*
|
|
8
|
+
* `resolved_db_alias`/`resolved_database` are deliberately NOT part of what a
|
|
9
|
+
* caller may supply: they are stamped by the sink from the per-request resolved
|
|
10
|
+
* context (`withResolvedDatabase`), so a call site cannot record the frame's
|
|
11
|
+
* claimed database and call it resolved.
|
|
12
|
+
*/
|
|
13
|
+
export type PendingEvent = Omit<AuditEvent, 'id' | 'ts' | 'agent_id' | 'seq' | 'chain_id' | 'prev_hash' | 'mac' | 'hash' | 'actor' | 'resolved_db_alias' | 'resolved_database'> & {
|
|
14
|
+
id?: string;
|
|
15
|
+
/**
|
|
16
|
+
* `user` (default) for cloud-asserted principals, `local` for a host-local
|
|
17
|
+
* operator, `system` for agent records. An absent value stays `user`, so
|
|
18
|
+
* every pre-existing call site keeps its meaning.
|
|
19
|
+
*/
|
|
20
|
+
actor?: AuditActor;
|
|
21
|
+
};
|
|
22
|
+
export interface AuditSinkOptions {
|
|
23
|
+
agentId: string;
|
|
24
|
+
localWriter: LocalAuditWriter;
|
|
25
|
+
cloudWriter: CloudAuditWriter;
|
|
26
|
+
bufferSize?: number;
|
|
27
|
+
/**
|
|
28
|
+
* Hard cap on **queued** records. Past it the **oldest** are dropped, because
|
|
29
|
+
* an unbounded queue under sustained write pressure is unbounded memory in the
|
|
30
|
+
* daemon — the same defect class `CloudClient.maxQueueItems` closes (finding
|
|
31
|
+
* M-07). Default 4096.
|
|
32
|
+
*
|
|
33
|
+
* Only records that carry no authorization decision are ever queued (see
|
|
34
|
+
* {@link AuditSink}), so this bounds the sink's own memory no matter how much
|
|
35
|
+
* decision traffic arrives. It is clamped to at least `bufferSize`.
|
|
36
|
+
*/
|
|
37
|
+
maxQueueItems?: number;
|
|
38
|
+
/**
|
|
39
|
+
* Called whenever queued records are dropped instead of written. Mirrors
|
|
40
|
+
* `CloudClient.onDrop`: the counter in {@link AuditSink.getHealth} is the
|
|
41
|
+
* marker, and an owner with a durable log elsewhere can record the loss.
|
|
42
|
+
* Never allowed to throw into the write path.
|
|
43
|
+
*/
|
|
44
|
+
onDrop?: (drop: AuditDrop) => void;
|
|
45
|
+
/** Directory holding `audit.key`. Defaults to the agent home. */
|
|
46
|
+
keyDir?: string;
|
|
47
|
+
/** Explicit HMAC key (32-byte Buffer, or 64 hex chars). Overrides `keyDir`. */
|
|
48
|
+
key?: Buffer | string;
|
|
49
|
+
/** Upper bound on records scanned by `query()`. Default 200000. */
|
|
50
|
+
maxScanRecords?: number;
|
|
51
|
+
}
|
|
52
|
+
/** Why a queued record was dropped instead of written. */
|
|
53
|
+
export type AuditDropReason = 'queue_overflow';
|
|
54
|
+
export interface AuditDrop {
|
|
55
|
+
/** How many records were dropped in this event. */
|
|
56
|
+
count: number;
|
|
57
|
+
reason: AuditDropReason;
|
|
58
|
+
/** Queue depth after the drop. */
|
|
59
|
+
queueDepth: number;
|
|
60
|
+
/** The hard cap that was hit. */
|
|
61
|
+
maxQueueItems: number;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The audit sink: builds keyed, sequenced records, appends them locally and
|
|
65
|
+
* mirrors them to the cloud.
|
|
66
|
+
*
|
|
67
|
+
* Chain integrity rules:
|
|
68
|
+
* - every record is MAC'd with the installation key and stamped with a
|
|
69
|
+
* monotonically increasing `seq`
|
|
70
|
+
* - `{seq, last_hash}` is anchored in `head.json` at every durable commit
|
|
71
|
+
* - the head is recovered on first append (from `head.json` plus the tail of
|
|
72
|
+
* the newest log file), so a restart continues the chain instead of
|
|
73
|
+
* restarting it (finding H-13)
|
|
74
|
+
* - a tail that does not verify is a loud, exposed failure — never a silent
|
|
75
|
+
* new chain in the same file
|
|
76
|
+
*
|
|
77
|
+
* Buffer pressure (findings M-04, M-07): every write is serialised through one
|
|
78
|
+
* FIFO write lane, which is what keeps `seq`/`prev_hash` coherent. Records split
|
|
79
|
+
* by how they reach that lane:
|
|
80
|
+
* - **never queued** — `logSync()` (an awaited record) and any record carrying
|
|
81
|
+
* an authorization decision (`allow`/`deny`). They take the write lane
|
|
82
|
+
* directly, so no amount of pressure can drop one, reject one, or make its
|
|
83
|
+
* caller wait for queue space. This is the guaranteed path.
|
|
84
|
+
* - **queued** — fire-and-forget `log()` records with no authorization
|
|
85
|
+
* decision (manual-approval lifecycle telemetry). The queue is hard-capped
|
|
86
|
+
* at `maxQueueItems`; past it the **oldest** are dropped and counted, so
|
|
87
|
+
* sustained pressure cannot grow the heap without bound.
|
|
88
|
+
*
|
|
89
|
+
* A full queue is therefore not an error and never rejects a caller; the loss is
|
|
90
|
+
* counted (`getHealth().dropped`), logged, persisted as an `audit_overflow`
|
|
91
|
+
* record and handed to `onDrop`.
|
|
92
|
+
*
|
|
93
|
+
* Every record also carries the **resolved** database identity
|
|
94
|
+
* (`resolved_db_alias`, `resolved_database`), taken from the per-request context
|
|
95
|
+
* established by `withResolvedDatabase` and never from the caller. With
|
|
96
|
+
* no context established the value is the fail-closed `'unresolved'`.
|
|
97
|
+
*/
|
|
98
|
+
export declare class AuditSink {
|
|
99
|
+
private readonly opts;
|
|
100
|
+
private queue;
|
|
101
|
+
private draining;
|
|
102
|
+
private pendingFlush;
|
|
103
|
+
/**
|
|
104
|
+
* FIFO serialisation for every record write. Admission order is chain order;
|
|
105
|
+
* a lane slot is held only for the duration of one append.
|
|
106
|
+
*/
|
|
107
|
+
private writeLane;
|
|
108
|
+
/** Records admitted but not yet written, queued or straight through. */
|
|
109
|
+
private pending;
|
|
110
|
+
private overflowPending;
|
|
111
|
+
private overflowTotal;
|
|
112
|
+
/** Drops since the last `audit_overflow` record was written. */
|
|
113
|
+
private overflowDropped;
|
|
114
|
+
private dropped;
|
|
115
|
+
private chainInit;
|
|
116
|
+
private auditKey;
|
|
117
|
+
private seq;
|
|
118
|
+
private lastHash;
|
|
119
|
+
private head;
|
|
120
|
+
/**
|
|
121
|
+
* Oldest sequence number still on disk. Rotation evicts the oldest archives,
|
|
122
|
+
* so verification starts here instead of at the genesis hash. Monotonic: it is
|
|
123
|
+
* a promise about what the log retains.
|
|
124
|
+
*/
|
|
125
|
+
private retainedFromSeq;
|
|
126
|
+
/** Highest sequence number already anchored in the floor file. */
|
|
127
|
+
private floorSeq;
|
|
128
|
+
private floorErrorReported;
|
|
129
|
+
private chainError;
|
|
130
|
+
private chainErrorReported;
|
|
131
|
+
private eventsWritten;
|
|
132
|
+
private eventsFailed;
|
|
133
|
+
private writeErrorReported;
|
|
134
|
+
constructor(opts: AuditSinkOptions);
|
|
135
|
+
/** Chain identity, once established. */
|
|
136
|
+
get chainId(): string | null;
|
|
137
|
+
/**
|
|
138
|
+
* Attribute every audit record written inside `fn` to a resolved database.
|
|
139
|
+
*
|
|
140
|
+
* A thin delegate to the module-level context store, exposed here because the
|
|
141
|
+
* sink is where the contract lives: `log()`/`logSync()` read the identity from
|
|
142
|
+
* that store, so this method is the only supported way to supply one. It does
|
|
143
|
+
* not depend on sink instance state, which is what lets a caller that holds a
|
|
144
|
+
* hand-rolled sink in a test still get the same record shape.
|
|
145
|
+
*/
|
|
146
|
+
withResolvedDatabase<T>(identity: ResolvedDbIdentity, fn: () => T): T;
|
|
147
|
+
/** Sequence number of the newest record this instance has written. */
|
|
148
|
+
get currentSeq(): number;
|
|
149
|
+
/**
|
|
150
|
+
* Fire-and-forget append. The record is written and committed by the next
|
|
151
|
+
* group commit; it is not guaranteed durable when this returns.
|
|
152
|
+
*
|
|
153
|
+
* A record that carries an authorization decision (`allow`/`deny`) bypasses
|
|
154
|
+
* the bounded queue and takes the write lane directly: a decision is never
|
|
155
|
+
* droppable and never waits for queue space. Everything else is queued and is
|
|
156
|
+
* subject to the `maxQueueItems` drop-oldest policy.
|
|
157
|
+
*/
|
|
158
|
+
log(partial: PendingEvent): void;
|
|
159
|
+
/**
|
|
160
|
+
* Awaited append. Resolves only once the record (and the chain head that
|
|
161
|
+
* anchors it) is fsync'd. A write failure rejects — audit loss is never
|
|
162
|
+
* swallowed on this path.
|
|
163
|
+
*
|
|
164
|
+
* Never queued: buffer pressure can neither reject this call nor drop the
|
|
165
|
+
* record (finding M-04). The caller waits for its own append, never for queue
|
|
166
|
+
* room, so the wait is bounded by one write rather than by the backlog.
|
|
167
|
+
*/
|
|
168
|
+
logSync(partial: PendingEvent): Promise<void>;
|
|
169
|
+
flush(): Promise<void>;
|
|
170
|
+
/**
|
|
171
|
+
* Filters the log and verifies the chain in the same streaming pass, so a full
|
|
172
|
+
* history is never materialised (finding M-06).
|
|
173
|
+
*/
|
|
174
|
+
query(filter: AuditFilter): Promise<AuditQueryResult>;
|
|
175
|
+
/**
|
|
176
|
+
* The strongest claim about where the chain ends: this process's head plus the
|
|
177
|
+
* monotonic floor, which a second process (or a restored backup) may have moved
|
|
178
|
+
* further than the in-memory head.
|
|
179
|
+
*/
|
|
180
|
+
private currentAnchor;
|
|
181
|
+
getHealth(): AuditSinkHealth;
|
|
182
|
+
/**
|
|
183
|
+
* Establishes the key and recovers the chain head. Idempotent; the promise is
|
|
184
|
+
* memoised so concurrent appends share one recovery.
|
|
185
|
+
*/
|
|
186
|
+
private ensureChain;
|
|
187
|
+
private initChain;
|
|
188
|
+
private establishKey;
|
|
189
|
+
/**
|
|
190
|
+
* Validates the tail record against the key. Returns a problem description,
|
|
191
|
+
* or null when the tail is a legitimate continuation point.
|
|
192
|
+
*/
|
|
193
|
+
private inspectTail;
|
|
194
|
+
/**
|
|
195
|
+
* Refuses to continue on a chain that does not verify. Throwing here is the
|
|
196
|
+
* point: the alternative — starting a fresh chain in the same file — would
|
|
197
|
+
* silently erase the evidence of the damage.
|
|
198
|
+
*/
|
|
199
|
+
private failChain;
|
|
200
|
+
private reportChainError;
|
|
201
|
+
private onDurableCommit;
|
|
202
|
+
private persistHead;
|
|
203
|
+
private reportFloorError;
|
|
204
|
+
private buildEvent;
|
|
205
|
+
private record;
|
|
206
|
+
private buildVerifier;
|
|
207
|
+
/**
|
|
208
|
+
* Serialises every record write. This is what keeps `seq`, `prev_hash` and the
|
|
209
|
+
* anchored head consistent, and it is FIFO, so records enter the chain in
|
|
210
|
+
* admission order.
|
|
211
|
+
*
|
|
212
|
+
* A lane slot is held for the duration of one append only, which is what lets
|
|
213
|
+
* a decision record overtake queued telemetry instead of waiting behind it.
|
|
214
|
+
*/
|
|
215
|
+
private runInWriteLane;
|
|
216
|
+
/**
|
|
217
|
+
* Records an admission: takes a slot in the outstanding-work count and, if
|
|
218
|
+
* the high-water mark is already exceeded, books an overflow admission. Every
|
|
219
|
+
* entry point (queued or straight through) goes through here, so the reported
|
|
220
|
+
* count describes the real backlog rather than one particular lane.
|
|
221
|
+
*/
|
|
222
|
+
private admit;
|
|
223
|
+
/**
|
|
224
|
+
* The guaranteed path: straight to the write lane, never queued.
|
|
225
|
+
*
|
|
226
|
+
* Nothing here can be dropped or rejected for buffer pressure, and the caller
|
|
227
|
+
* never waits for queue room — only for its own append.
|
|
228
|
+
*/
|
|
229
|
+
private writeThrough;
|
|
230
|
+
/**
|
|
231
|
+
* Queues a fire-and-forget, non-decision record.
|
|
232
|
+
*
|
|
233
|
+
* A full queue is *not* an error and never rejects the caller for pressure:
|
|
234
|
+
* the **oldest** entries are dropped to make room (drop-oldest, matching
|
|
235
|
+
* `CloudClient.maxQueueItems`, finding M-07) and every drop is counted,
|
|
236
|
+
* logged, persisted and handed to `onDrop`. Rejecting in-flight callers
|
|
237
|
+
* instead turned buffer pressure into a global query-kill switch and dropped
|
|
238
|
+
* the denial records that matter most (finding M-04).
|
|
239
|
+
*
|
|
240
|
+
* Only records that carry no authorization decision reach here — see
|
|
241
|
+
* {@link AuditSink.log} — so the eviction can never touch an allow/deny.
|
|
242
|
+
*/
|
|
243
|
+
private enqueueQueued;
|
|
244
|
+
/**
|
|
245
|
+
* Single serial worker for the queue.
|
|
246
|
+
*
|
|
247
|
+
* Work queued while the worker is shutting down must not be lost: the queue is
|
|
248
|
+
* re-checked immediately after `draining` is cleared, with no `await` in
|
|
249
|
+
* between, so an entry can never be stranded with nobody left to run it.
|
|
250
|
+
*/
|
|
251
|
+
private drain;
|
|
252
|
+
/**
|
|
253
|
+
* Releases a waiting `flush()` once nothing is outstanding — no queued entry,
|
|
254
|
+
* no write in flight. Straight-through records call this as they settle, so a
|
|
255
|
+
* flush cannot return while a decision record is still being written.
|
|
256
|
+
*/
|
|
257
|
+
private settleIfIdle;
|
|
258
|
+
/**
|
|
259
|
+
* Writes the queue-pressure record: how many records were admitted above the
|
|
260
|
+
* high-water mark, and how many were dropped outright. Both numbers are read
|
|
261
|
+
* before they are reset (the previous code reset first, so the record always
|
|
262
|
+
* reported the wrong number).
|
|
263
|
+
*/
|
|
264
|
+
private reportOverflowIfDue;
|
|
265
|
+
/**
|
|
266
|
+
* Counts a drop, says so out loud, and hands it to the `onDrop` marker hook —
|
|
267
|
+
* the same contract as `CloudClient.onDrop`. Audit loss is counted and
|
|
268
|
+
* reported, never discarded quietly.
|
|
269
|
+
*/
|
|
270
|
+
private reportDrop;
|
|
271
|
+
/**
|
|
272
|
+
* Complains once per distinct failure so audit loss is never silent. The
|
|
273
|
+
* writer already announced a persistence failure, so this stays quiet rather
|
|
274
|
+
* than printing the same problem twice.
|
|
275
|
+
*/
|
|
276
|
+
private reportWriteError;
|
|
277
|
+
}
|
|
278
|
+
//# sourceMappingURL=sink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sink.d.ts","sourceRoot":"","sources":["../../../src/audit/sink.ts"],"names":[],"mappings":"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"}
|