@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 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-writer.d.ts","sourceRoot":"","sources":["../../../src/audit/cloud-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAe,SAAS,EAAE,gBAAgB,EAAkB,MAAM,gBAAgB,CAAC;AAG1F,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,UAAU,GAAG,gBAAgB,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC7D,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,YAAY,CAAK;gBAEb,MAAM,EAAE,iBAAiB;IAKrC,OAAO,CAAC,UAAU;IA0BZ,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAqBxD,qEAAqE;IACrE,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,gFAAgF;IAChF,KAAK,IAAI,gBAAgB,GAAG,IAAI;IAIhC,iEAAiE;IAC3D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAK7B"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { DbEntry } from '../config/db-config';
|
|
2
|
+
/**
|
|
3
|
+
* The database identity an audit record is written under.
|
|
4
|
+
*
|
|
5
|
+
* made this a required part of every record: the audit trail used to
|
|
6
|
+
* carry only the caller-asserted `project`, so a frame that named one database
|
|
7
|
+
* and executed against another left a record that named a database the
|
|
8
|
+
* operation never touched, with no field able to name the one it did.
|
|
9
|
+
*
|
|
10
|
+
* These two values come from the entry the request actually resolved to, never
|
|
11
|
+
* from the frame.
|
|
12
|
+
*/
|
|
13
|
+
export interface ResolvedDbIdentity {
|
|
14
|
+
resolved_db_alias: string;
|
|
15
|
+
resolved_database: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* The fail-closed identity: this request resolved to no database.
|
|
19
|
+
*
|
|
20
|
+
* Used when no context is established (an agent-generated record, a refusal, a
|
|
21
|
+
* record written outside a request) and whenever the values are missing. It is
|
|
22
|
+
* deliberately an obvious non-name rather than an empty string, so a record can
|
|
23
|
+
* never be mistaken for one that resolved to a database whose alias happens to
|
|
24
|
+
* be blank.
|
|
25
|
+
*/
|
|
26
|
+
export declare const UNRESOLVED_DB_ALIAS = "unresolved";
|
|
27
|
+
export declare const UNRESOLVED_DB_IDENTITY: Readonly<ResolvedDbIdentity>;
|
|
28
|
+
/**
|
|
29
|
+
* Build an identity from a resolved entry, failing closed.
|
|
30
|
+
*
|
|
31
|
+
* A missing or blank `db_alias`/`database` yields `'unresolved'` rather than an
|
|
32
|
+
* empty string, so "we could not tell" is distinguishable from "the database has
|
|
33
|
+
* no alias" at read time and in a MAC-verified record.
|
|
34
|
+
*/
|
|
35
|
+
export declare function resolvedIdentityOf(entry: DbEntry | null | undefined): ResolvedDbIdentity;
|
|
36
|
+
/**
|
|
37
|
+
* Run `fn` with every audit record written inside it attributed to `identity`.
|
|
38
|
+
*
|
|
39
|
+
* This is the durable half of the fix: the audit sink stamps the resolved
|
|
40
|
+
* identity from this context on every record it builds, so no call site can
|
|
41
|
+
* forget it and no call site can override it with the frame's own claim. The
|
|
42
|
+
* dispatcher establishes the context at the single point where the resolved
|
|
43
|
+
* entry is known.
|
|
44
|
+
*/
|
|
45
|
+
export declare function withResolvedDatabase<T>(identity: ResolvedDbIdentity, fn: () => T): T;
|
|
46
|
+
/**
|
|
47
|
+
* The identity of the request currently in scope, or the fail-closed
|
|
48
|
+
* `'unresolved'` default when none was established.
|
|
49
|
+
*/
|
|
50
|
+
export declare function currentResolvedDbIdentity(): ResolvedDbIdentity;
|
|
51
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/audit/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,kBAAkB,CAG9D,CAAC;AAaH;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,kBAAkB,CAOxF;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEpF;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,kBAAkB,CAE9D"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { AuditEvent } from './types';
|
|
2
|
+
export interface AuditLogFilter {
|
|
3
|
+
project?: string;
|
|
4
|
+
user?: string;
|
|
5
|
+
action?: string;
|
|
6
|
+
decision?: string;
|
|
7
|
+
outcome?: string;
|
|
8
|
+
search?: string;
|
|
9
|
+
since?: string | number;
|
|
10
|
+
until?: string | number;
|
|
11
|
+
order?: 'asc' | 'desc';
|
|
12
|
+
limit?: number;
|
|
13
|
+
}
|
|
14
|
+
/** Whole-log read result, used by chain verification. */
|
|
15
|
+
export interface AuditLogReadResult {
|
|
16
|
+
/** Log files in chronological order (oldest archive first, active file last). */
|
|
17
|
+
files: string[];
|
|
18
|
+
/** Every parsed record, oldest first. */
|
|
19
|
+
events: AuditEvent[];
|
|
20
|
+
/** Log files that exist but could not be read. */
|
|
21
|
+
unreadableFiles: string[];
|
|
22
|
+
/** Lines that are not parseable JSON — corruption or injected content. */
|
|
23
|
+
malformedLines: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Mode for the audit **directory**. A directory needs the execute bit to be
|
|
27
|
+
* traversable; creating one with a regular file's mode (0o600) makes every
|
|
28
|
+
* stat/open/readdir inside it fail with EACCES, which is how a clean install
|
|
29
|
+
* ended up with no audit trail at all.
|
|
30
|
+
*/
|
|
31
|
+
export declare const AUDIT_DIR_MODE = 448;
|
|
32
|
+
/** Mode for the audit log files themselves: read/write for the owner only. */
|
|
33
|
+
export declare const AUDIT_FILE_MODE = 384;
|
|
34
|
+
/**
|
|
35
|
+
* Repairs an audit directory left with a mode that cannot be traversed.
|
|
36
|
+
*
|
|
37
|
+
* `fs.mkdir({ recursive: true })` is a no-op on an existing directory, so a
|
|
38
|
+
* directory created earlier with the wrong mode stays wrong and every later
|
|
39
|
+
* append keeps failing EACCES. The explicit chmod is what makes an
|
|
40
|
+
* already-broken install repair itself.
|
|
41
|
+
*
|
|
42
|
+
* @returns true when the mode had to be corrected.
|
|
43
|
+
*/
|
|
44
|
+
export declare function repairAuditDirMode(dir: string, mode?: number): Promise<boolean>;
|
|
45
|
+
/**
|
|
46
|
+
* Ensures the audit directory exists and is traversable, creating it at mode
|
|
47
|
+
* 0o700 and repairing a pre-existing wrong mode.
|
|
48
|
+
*
|
|
49
|
+
* Idempotent and safe to call from setup, startup, append and repair paths:
|
|
50
|
+
*
|
|
51
|
+
* ```ts
|
|
52
|
+
* await ensureAuditDir(path.join(getSwAgentDir(), 'audit'));
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* @returns true when the directory had to be created or its mode corrected.
|
|
56
|
+
*/
|
|
57
|
+
export declare function ensureAuditDir(dir: string, opts?: {
|
|
58
|
+
dirMode?: number;
|
|
59
|
+
}): Promise<boolean>;
|
|
60
|
+
/** Result of {@link probeAuditDir}. */
|
|
61
|
+
export interface AuditDirProbe {
|
|
62
|
+
ok: boolean;
|
|
63
|
+
dir: string;
|
|
64
|
+
dirMode: number;
|
|
65
|
+
/** True when {@link repairAuditDirMode} had to change the mode. */
|
|
66
|
+
repaired: boolean;
|
|
67
|
+
reason?: string;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Startup gate for the audit path: creates/repairs the directory, then proves a
|
|
71
|
+
* real write + fsync succeeds. "Audit loss must not be silent" is only
|
|
72
|
+
* enforceable if startup refuses to claim the log is fine without trying it.
|
|
73
|
+
*/
|
|
74
|
+
export declare function probeAuditDir(dir: string, opts?: {
|
|
75
|
+
dirMode?: number;
|
|
76
|
+
fileMode?: number;
|
|
77
|
+
}): Promise<AuditDirProbe>;
|
|
78
|
+
/**
|
|
79
|
+
* Returns audit log files in strict chronological order:
|
|
80
|
+
* audit-N.jsonl (oldest archive) -> ... -> audit-1.jsonl (most recent archive) -> audit.jsonl (active file)
|
|
81
|
+
*/
|
|
82
|
+
export declare function getAuditFilesChronological(auditDir: string): Promise<string[]>;
|
|
83
|
+
/**
|
|
84
|
+
* Returns audit log files in reverse-chronological order:
|
|
85
|
+
* audit.jsonl (active, newest) -> audit-1.jsonl -> audit-2.jsonl -> ... -> audit-N.jsonl (oldest)
|
|
86
|
+
*/
|
|
87
|
+
export declare function getAuditFilesReverse(auditDir: string): Promise<string[]>;
|
|
88
|
+
/**
|
|
89
|
+
* Parse relative time string (e.g. "15m", "1h", "24h", "7d", "today") or ISO string into unix timestamp (ms).
|
|
90
|
+
*/
|
|
91
|
+
export declare function parseSince(since?: string | number): number | null;
|
|
92
|
+
/**
|
|
93
|
+
* Reads every record of the audit log in strict chronological order across all
|
|
94
|
+
* rotated files, with no limit.
|
|
95
|
+
*
|
|
96
|
+
* Chain verification must see the log as one sequence: verifying each rotated
|
|
97
|
+
* file in isolation reports every file that begins mid-chain as broken, which is
|
|
98
|
+
* what made routine rotation look like tampering.
|
|
99
|
+
*/
|
|
100
|
+
export declare function readAuditLogChronological(auditDir: string): Promise<AuditLogReadResult>;
|
|
101
|
+
/**
|
|
102
|
+
* Checks whether an event satisfies the given filter.
|
|
103
|
+
*/
|
|
104
|
+
export declare function eventMatchesFilter(event: AuditEvent, filter: AuditLogFilter, sinceTs?: number | null, untilTs?: number | null, searchLower?: string): boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Reads audit events matching the filter.
|
|
107
|
+
* Defaults to descending order (newest first).
|
|
108
|
+
* Fast backwards reading: stops as soon as `limit` matches are satisfied.
|
|
109
|
+
*/
|
|
110
|
+
export declare function readAuditEvents(auditDir: string, filter?: AuditLogFilter): Promise<AuditEvent[]>;
|
|
111
|
+
//# sourceMappingURL=files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/audit/files.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,yDAAyD;AACzD,MAAM,WAAW,kBAAkB;IACjC,iFAAiF;IACjF,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yCAAyC;IACzC,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,kDAAkD;IAClD,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,MAAQ,CAAC;AAEpC,8EAA8E;AAC9E,eAAO,MAAM,eAAe,MAAQ,CAAC;AAMrC;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,MAAuB,GAC5B,OAAO,CAAC,OAAO,CAAC,CAelB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9B,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED,uCAAuC;AACvC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD,OAAO,CAAC,aAAa,CAAC,CA4CxB;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA4BpF;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAG9E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CA6BjE;AAMD;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAoC7F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,EACvB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CA8CT;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,cAAmB,GAC1B,OAAO,CAAC,UAAU,EAAE,CAAC,CAiEvB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type { AuditAction, AuditDecision, AuditOutcome, AuditActor, AuditRole, AuditPermissionLevel, AuditEvent, AuditHead, AuditFilter, AuditQueryResult, AuditWriterHealth, AuditSinkHealth, } from './types';
|
|
2
|
+
export { computeHash, computeMac, computeEventMac, canonicalStringify, isHash64, loadAuditKey, tryLoadAuditKey, decodeKeyMaterial, deriveChainId, readHead, readHeadFloor, resolveAnchor, writeHead, writeHeadFloor, floorPathFor, headPathFor, makeHead, verifyChain, verifyChainAgainstHead, verifyHashChain, ChainVerifier, AuditKeyError, GENESIS_HASH, AUDIT_KEY_BYTES, AUDIT_KEY_ENV, AUDIT_KEY_FILENAME, AUDIT_HEAD_FILENAME, AUDIT_FLOOR_SUFFIX, type AnchorClaim, type AuditKey, type AuditKeySource, type ChainFailureReason, type ChainVerifyResult, type ChainVerifyOptions, type MacInput, type ResolvedAnchor, type WriteHeadOptions, type LoadAuditKeyOptions, } from './chain';
|
|
3
|
+
export { fingerprintStatement, previewStatement, redactSqlLiterals, isUnredactable, UNREDACTABLE, PREVIEW_MAX_LENGTH, } from './redact';
|
|
4
|
+
export { LocalAuditWriter, verifyAuditLog, verifyStream, ACTIVE_AUDIT_FILE, type LocalWriterOptions, type AppendOptions, type VerifyAuditLogOptions, type VerifyStreamOptions, type AuditLogVerification, } from './local-writer';
|
|
5
|
+
export { CloudAuditWriter, type CloudWriterConfig, type CloudWriterResult } from './cloud-writer';
|
|
6
|
+
export { AuditSink, type AuditSinkOptions, type PendingEvent } from './sink';
|
|
7
|
+
export { UNRESOLVED_DB_ALIAS, UNRESOLVED_DB_IDENTITY, currentResolvedDbIdentity, resolvedIdentityOf, withResolvedDatabase, type ResolvedDbIdentity, } from './context';
|
|
8
|
+
export { getAuditFilesChronological, getAuditFilesReverse, readAuditLogChronological, ensureAuditDir, probeAuditDir, repairAuditDirMode, AUDIT_DIR_MODE, AUDIT_FILE_MODE, parseSince, eventMatchesFilter, readAuditEvents, type AuditLogFilter, type AuditLogReadResult, type AuditDirProbe, } from './files';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/audit/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,aAAa,EACb,YAAY,EACZ,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,GAChB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,WAAW,EACX,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,aAAa,EACb,aAAa,EACb,SAAS,EACT,cAAc,EACd,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,aAAa,EACb,YAAY,EACZ,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,GACzB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAElG,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE7E,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,kBAAkB,GACxB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,yBAAyB,EACzB,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
import { AUDIT_HEAD_FILENAME, type ChainVerifyResult } from './chain';
|
|
2
|
+
import { AuditEvent, AuditHead, AuditWriterHealth } from './types';
|
|
3
|
+
export interface LocalWriterOptions {
|
|
4
|
+
dir: string;
|
|
5
|
+
/** Rotate the active log past this size. Default 10 MiB. */
|
|
6
|
+
maxFileSize?: number;
|
|
7
|
+
/** Number of rotated archives to keep. Default 10. */
|
|
8
|
+
maxArchiveFiles?: number;
|
|
9
|
+
/** Mode for the log files themselves. Default 0o600. */
|
|
10
|
+
fileMode?: number;
|
|
11
|
+
/**
|
|
12
|
+
* Mode for the audit **directory**. Default 0o700.
|
|
13
|
+
*
|
|
14
|
+
* This must be a directory mode. A directory at 0o600 has no execute bit, is
|
|
15
|
+
* therefore untraversable, and every write into it fails EACCES — which is how
|
|
16
|
+
* a clean install ended up with no audit trail at all (finding C-06).
|
|
17
|
+
*/
|
|
18
|
+
dirMode?: number;
|
|
19
|
+
/** Group-commit interval for non-durable appends. Default 50ms. */
|
|
20
|
+
flushIntervalMs?: number;
|
|
21
|
+
/** Appends buffered before a group commit is forced. Default 256. */
|
|
22
|
+
batchSize?: number;
|
|
23
|
+
}
|
|
24
|
+
export interface AppendOptions {
|
|
25
|
+
/**
|
|
26
|
+
* When true (the default) the record is written and `fsync`'d before the
|
|
27
|
+
* returned promise resolves. `logSync()` depends on this; `log()` does not.
|
|
28
|
+
*/
|
|
29
|
+
durable?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export declare const ACTIVE_AUDIT_FILE = "audit.jsonl";
|
|
32
|
+
/** Notified after a successful fsync with the newest durable record. */
|
|
33
|
+
export type CommitListener = (last: AuditEvent | null, retainedFromSeq: number | null) => void;
|
|
34
|
+
/**
|
|
35
|
+
* Append-only local audit writer with group commit.
|
|
36
|
+
*
|
|
37
|
+
* Durability contract:
|
|
38
|
+
* - `append(event, { durable: true })` resolves only after the record has been
|
|
39
|
+
* written and `fsync`'d. This is what `AuditSink.logSync()` relies on.
|
|
40
|
+
* - `append(event, { durable: false })` resolves once the record has been
|
|
41
|
+
* handed to the kernel; a group commit `fsync`s it within `flushIntervalMs`,
|
|
42
|
+
* or immediately once `batchSize` records are buffered. This is what
|
|
43
|
+
* `AuditSink.log()` uses.
|
|
44
|
+
* - `flush()` forces the outstanding `fsync`; `close()` flushes, `fsync`s and
|
|
45
|
+
* releases the handle. Both are safe to call more than once and safe to race
|
|
46
|
+
* with `append()`: every mutating operation is serialised on one chain, so a
|
|
47
|
+
* concurrent append either lands before the close or reopens afterwards. A
|
|
48
|
+
* failure in either is reported through `getHealth()` and rethrown — never
|
|
49
|
+
* swallowed into a "flushed OK".
|
|
50
|
+
*
|
|
51
|
+
* One long-lived handle replaces the previous open/fsync/close per event, and
|
|
52
|
+
* the `mkdir` + `stat` per event are gone from the hot path (finding M-05).
|
|
53
|
+
*/
|
|
54
|
+
export declare class LocalAuditWriter {
|
|
55
|
+
private readonly opts;
|
|
56
|
+
private readonly activePath;
|
|
57
|
+
private lastKnownSize;
|
|
58
|
+
/** Serialises mutating operations so fd/size/rotation state stays coherent. */
|
|
59
|
+
private opChain;
|
|
60
|
+
private handle;
|
|
61
|
+
private unflushedBytes;
|
|
62
|
+
private pendingRecords;
|
|
63
|
+
private flushTimer;
|
|
64
|
+
private lastError;
|
|
65
|
+
private lastErrorAt;
|
|
66
|
+
private lastWriteAt;
|
|
67
|
+
private dirMode;
|
|
68
|
+
private fileMode;
|
|
69
|
+
private ready;
|
|
70
|
+
private reportedError;
|
|
71
|
+
private rotations;
|
|
72
|
+
private eventsWritten;
|
|
73
|
+
private eventsFailed;
|
|
74
|
+
private bytesWritten;
|
|
75
|
+
private commitListener;
|
|
76
|
+
private lastAppended;
|
|
77
|
+
private retainedFromSeq;
|
|
78
|
+
constructor(opts: LocalWriterOptions);
|
|
79
|
+
get dir(): string;
|
|
80
|
+
get activeFilePath(): string;
|
|
81
|
+
/**
|
|
82
|
+
* Registers the durable-commit hook. `AuditSink` uses it to anchor the chain
|
|
83
|
+
* head at exactly the point where records became durable.
|
|
84
|
+
*/
|
|
85
|
+
setCommitListener(fn: CommitListener | null): void;
|
|
86
|
+
/**
|
|
87
|
+
* Oldest sequence number still on disk, or null when no record is retained.
|
|
88
|
+
*
|
|
89
|
+
* Rotation keeps a bounded number of archives, so the oldest records are
|
|
90
|
+
* eventually evicted on purpose. Whole-log verification therefore starts at
|
|
91
|
+
* this sequence number rather than at the genesis hash (finding M-06/H-13
|
|
92
|
+
* interaction: an evicted archive used to make every later verify report a
|
|
93
|
+
* phantom `seq_gap`).
|
|
94
|
+
*/
|
|
95
|
+
getRetentionFloor(): number | null;
|
|
96
|
+
append(event: AuditEvent, opts?: AppendOptions): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* Creates the audit directory (0o700, repairing a stuck 0o600 one) and opens
|
|
99
|
+
* the log file (0o600). Called before the chain head is anchored so a broken
|
|
100
|
+
* install is repaired before anything tries to use the directory.
|
|
101
|
+
*/
|
|
102
|
+
prepare(): Promise<void>;
|
|
103
|
+
/** Forces an fsync of everything written but not yet committed. */
|
|
104
|
+
flush(): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Flushes every buffered record, `fsync`s it, then closes the long-lived
|
|
107
|
+
* handle. The writer stays usable afterwards — a later `append()` reopens.
|
|
108
|
+
*
|
|
109
|
+
* Shutdown contract, and the reason the daemon may call it after a signal and
|
|
110
|
+
* again on an explicit stop:
|
|
111
|
+
* - **Idempotent.** A second `close()` is a no-op that resolves: the handle
|
|
112
|
+
* is cleared before it is closed, so the descriptor can never be closed
|
|
113
|
+
* twice.
|
|
114
|
+
* - **Nothing is buffered on return.** The group-commit timer is cancelled
|
|
115
|
+
* first, so it cannot fire against a closed descriptor afterwards.
|
|
116
|
+
* - **The handle is released even when the flush fails.** Otherwise a
|
|
117
|
+
* failing fsync would leak the descriptor *and* hide behind a rejected
|
|
118
|
+
* promise that a caller may not await. The flush error is reported through
|
|
119
|
+
* `getHealth()` and rethrown; it is never turned into a fake "flushed OK".
|
|
120
|
+
*/
|
|
121
|
+
close(): Promise<void>;
|
|
122
|
+
/** Rotates the active file. Chain continuity is the caller's to preserve. */
|
|
123
|
+
rotate(): Promise<void>;
|
|
124
|
+
getHealth(): AuditWriterHealth;
|
|
125
|
+
/**
|
|
126
|
+
* Loads every record of the log, oldest archive first.
|
|
127
|
+
*
|
|
128
|
+
* Kept for small callers (filters, tests). It materialises the whole history,
|
|
129
|
+
* so verification goes through {@link verifyAuditLog} instead of this
|
|
130
|
+
* (finding M-06).
|
|
131
|
+
*/
|
|
132
|
+
readAll(opts?: {
|
|
133
|
+
limit?: number;
|
|
134
|
+
}): Promise<AuditEvent[]>;
|
|
135
|
+
/** Streams every record in chronological order, one record at a time. */
|
|
136
|
+
stream(opts?: {
|
|
137
|
+
maxRecords?: number;
|
|
138
|
+
}): AsyncGenerator<AuditEvent, void, void>;
|
|
139
|
+
/**
|
|
140
|
+
* Newest record of the newest non-empty log file.
|
|
141
|
+
*
|
|
142
|
+
* Startup chain recovery: the in-memory head is gone after a restart and
|
|
143
|
+
* `head.json` can be a tick behind the last durable append. Returns `null`
|
|
144
|
+
* when the log is empty or unreadable.
|
|
145
|
+
*/
|
|
146
|
+
readTailEvent(maxBytes?: number): Promise<AuditEvent | null>;
|
|
147
|
+
private run;
|
|
148
|
+
private writeRecord;
|
|
149
|
+
private ensureReady;
|
|
150
|
+
/**
|
|
151
|
+
* Reads the sequence number of the oldest record still on disk.
|
|
152
|
+
*
|
|
153
|
+
* The oldest archive is `audit-<maxArchiveFiles>.jsonl` (higher index = older),
|
|
154
|
+
* and the floor only moves up: it is a promise about what the log retains, so
|
|
155
|
+
* it must never go backwards.
|
|
156
|
+
*/
|
|
157
|
+
private refreshRetentionFloor;
|
|
158
|
+
/**
|
|
159
|
+
* Repairs a directory left untraversable by an older version. `mkdir` is a
|
|
160
|
+
* no-op when the directory already exists, so without this the wrong mode is
|
|
161
|
+
* sticky and every append keeps failing EACCES (finding C-06).
|
|
162
|
+
*/
|
|
163
|
+
private repairDirMode;
|
|
164
|
+
private currentFileSize;
|
|
165
|
+
private flushNow;
|
|
166
|
+
/**
|
|
167
|
+
* A failure to anchor the head does not undo the records already on disk, so
|
|
168
|
+
* it is reported rather than thrown — but it is never swallowed either: the
|
|
169
|
+
* writer goes unhealthy and says so once.
|
|
170
|
+
*/
|
|
171
|
+
private notifyCommit;
|
|
172
|
+
private scheduleFlush;
|
|
173
|
+
private cancelFlushTimer;
|
|
174
|
+
private rotateNow;
|
|
175
|
+
private closeHandle;
|
|
176
|
+
private dropHandle;
|
|
177
|
+
/**
|
|
178
|
+
* Records the failure and complains once per distinct error, so audit loss is
|
|
179
|
+
* loud without one stack trace per query.
|
|
180
|
+
*/
|
|
181
|
+
private recordFailure;
|
|
182
|
+
private noteSuccess;
|
|
183
|
+
}
|
|
184
|
+
export interface VerifyAuditLogOptions {
|
|
185
|
+
/** Signing key. Defaults to `SW_AGENT_AUDIT_KEY` / `audit.key`. */
|
|
186
|
+
key?: Buffer | string;
|
|
187
|
+
/** Expected head. Defaults to `head.json` in `dir`; pass `null` to skip. */
|
|
188
|
+
head?: AuditHead | null;
|
|
189
|
+
/** Directory/keyfile to resolve the key from when `key` is omitted. */
|
|
190
|
+
keyDir?: string;
|
|
191
|
+
/** Stop after this many records. Guards against a runaway log. */
|
|
192
|
+
maxRecords?: number;
|
|
193
|
+
/** First sequence number the log must carry. Defaults to the head's retention floor, else 1. */
|
|
194
|
+
expectedSeq?: number;
|
|
195
|
+
}
|
|
196
|
+
export interface AuditLogVerification extends ChainVerifyResult {
|
|
197
|
+
/** Log files walked, oldest first. */
|
|
198
|
+
files: string[];
|
|
199
|
+
/** Records that were not parseable JSON. */
|
|
200
|
+
malformed_lines: number;
|
|
201
|
+
/** Files that exist but could not be read. */
|
|
202
|
+
unreadable_files: string[];
|
|
203
|
+
head_present: boolean;
|
|
204
|
+
chain_id: string | null;
|
|
205
|
+
/** Every anchor that was consulted, in the order given. */
|
|
206
|
+
anchor_sources: string[];
|
|
207
|
+
/** Which of them decided the verdict. */
|
|
208
|
+
anchor_source: string | null;
|
|
209
|
+
}
|
|
210
|
+
export interface VerifyStreamOptions {
|
|
211
|
+
/** Signing key. There is no unkeyed verification. */
|
|
212
|
+
key: Buffer | string;
|
|
213
|
+
/** Expected head. When omitted the stream is verified for internal consistency only. */
|
|
214
|
+
head?: AuditHead | null;
|
|
215
|
+
/** Sequence number the first record must carry. Default 1. */
|
|
216
|
+
expectedSeq?: number;
|
|
217
|
+
/** Hash the first record must chain from. Defaults to the genesis hash. */
|
|
218
|
+
expectedPrevHash?: string;
|
|
219
|
+
/** Chain id every record must carry. Default: pinned from the first record. */
|
|
220
|
+
chainId?: string;
|
|
221
|
+
/** Stop after this many records. */
|
|
222
|
+
maxRecords?: number;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Incremental verification of an ordered record stream, with early exit on the
|
|
226
|
+
* first bad record (finding M-06).
|
|
227
|
+
*
|
|
228
|
+
* Holds only the previous record's mac/seq, so peak memory is O(1) in the
|
|
229
|
+
* number of records. Anything that is not an object is treated as corruption
|
|
230
|
+
* rather than skipped: silently ignoring an unreadable line would let an
|
|
231
|
+
* attacker delete records that a partial write happened to break.
|
|
232
|
+
*/
|
|
233
|
+
export declare function verifyStream(source: AsyncIterable<unknown> | Iterable<unknown>, opts: VerifyStreamOptions): Promise<ChainVerifyResult>;
|
|
234
|
+
/**
|
|
235
|
+
* Verifies the whole audit log as one chronological sequence across rotated
|
|
236
|
+
* files, anchored on the strongest available claim about where the chain ends.
|
|
237
|
+
*
|
|
238
|
+
* Two anchors are consulted: `head.json` inside the audit directory and the
|
|
239
|
+
* monotonic floor beside it. Either alone can be rolled back together with the
|
|
240
|
+
* log; the pair cannot, which is what makes a restored older copy detectable
|
|
241
|
+
* (finding C-05).
|
|
242
|
+
*
|
|
243
|
+
* The entry point CLI commands should call: it resolves the key, reads the
|
|
244
|
+
* anchors, streams the log in O(1) memory and early-exits on the first bad
|
|
245
|
+
* record (findings C-05, H-13, M-06).
|
|
246
|
+
*/
|
|
247
|
+
export declare function verifyAuditLog(dir: string, opts?: VerifyAuditLogOptions): Promise<AuditLogVerification>;
|
|
248
|
+
export { AUDIT_HEAD_FILENAME };
|
|
249
|
+
/**
|
|
250
|
+
* Re-exported so callers that already import from this module (setup paths,
|
|
251
|
+
* `doctor`, `init`) have one obvious entry point. The implementation lives in
|
|
252
|
+
* `./files` because it needs no writer state.
|
|
253
|
+
*/
|
|
254
|
+
export { AUDIT_DIR_MODE, AUDIT_FILE_MODE, ensureAuditDir, probeAuditDir, repairAuditDirMode, } from './files';
|
|
255
|
+
//# sourceMappingURL=local-writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-writer.d.ts","sourceRoot":"","sources":["../../../src/audit/local-writer.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,mBAAmB,EAMnB,KAAK,iBAAiB,EACvB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEnE,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;CAOpB;AAED,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAWD,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAG/C,wEAAwE;AACxE,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;AAE/F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA+B;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,aAAa,CAAuB;IAE5C,+EAA+E;IAC/E,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,eAAe,CAAuB;gBAElC,IAAI,EAAE,kBAAkB;IAapC,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED;;;OAGG;IACH,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI;IAIlD;;;;;;;;OAQG;IACH,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAI5B,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BxE;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAS9B,mEAAmE;IAC7D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5B;;;;;;;;;;;;;;;OAeG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB5B,6EAA6E;IACvE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAS7B,SAAS,IAAI,iBAAiB;IAwB9B;;;;;;OAMG;IACG,OAAO,CAAC,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAQnE,yEAAyE;IAClE,MAAM,CAAC,IAAI,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC;IAczF;;;;;;OAMG;IACG,aAAa,CAAC,QAAQ,SAAY,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAerE,OAAO,CAAC,GAAG;YASG,WAAW;YA+BX,WAAW;IAkBzB;;;;;;OAMG;YACW,qBAAqB;IA4BnC;;;;OAIG;YACW,aAAa;YAWb,eAAe;YAYf,QAAQ;IAatB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,gBAAgB;YAOV,SAAS;YAqDT,WAAW;YAOX,UAAU;IAKxB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,WAAW;CAKpB;AAWD,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gGAAgG;IAChG,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,sCAAsC;IACtC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,4CAA4C;IAC5C,eAAe,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,2DAA2D;IAC3D,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,yCAAyC;IACzC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,wFAAwF;IACxF,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,EAClD,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAc5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,oBAAoB,CAAC,CAgH/B;AA8GD,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B;;;;GAIG;AACH,OAAO,EACL,cAAc,EACd,eAAe,EACf,cAAc,EACd,aAAa,EACb,kBAAkB,GACnB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sentinel returned when a statement cannot be fully accounted for — an
|
|
3
|
+
* unterminated literal, comment or dollar quote, or input larger than
|
|
4
|
+
* {@link MAX_SQL_SCAN_BYTES}. Callers must treat it as "no redacted text
|
|
5
|
+
* available" and emit this marker instead of any part of the statement.
|
|
6
|
+
*/
|
|
7
|
+
export declare const UNREDACTABLE = "/* unredactable */";
|
|
8
|
+
/** Character cap on a statement preview. */
|
|
9
|
+
export declare const PREVIEW_MAX_LENGTH = 200;
|
|
10
|
+
/** Alias for {@link PREVIEW_MAX_LENGTH}. */
|
|
11
|
+
export declare const PREVIEW_MAX_CHARS = 200;
|
|
12
|
+
/**
|
|
13
|
+
* Byte cap on a statement preview. Character counting alone is not a size
|
|
14
|
+
* bound — 200 characters can be 800 bytes of multi-byte UTF-8 — and preview
|
|
15
|
+
* text is written to the local audit log *and* shipped to the cloud.
|
|
16
|
+
*/
|
|
17
|
+
export declare const PREVIEW_MAX_BYTES = 512;
|
|
18
|
+
/**
|
|
19
|
+
* Hard ceiling on how much SQL a single redaction pass will lex. A statement
|
|
20
|
+
* larger than this is reported unredactable rather than passed through.
|
|
21
|
+
*/
|
|
22
|
+
export declare const MAX_SQL_SCAN_BYTES = 1048576;
|
|
23
|
+
export type LexForm = 'string' | 'estring' | 'unicode_string' | 'dollar' | 'identifier';
|
|
24
|
+
export type LexToken = {
|
|
25
|
+
kind: 'text';
|
|
26
|
+
value: string;
|
|
27
|
+
}
|
|
28
|
+
/** `value` is the raw source slice; `open` is the length of its opening delimiter. */
|
|
29
|
+
| {
|
|
30
|
+
kind: 'literal';
|
|
31
|
+
value: string;
|
|
32
|
+
form: LexForm;
|
|
33
|
+
open: number;
|
|
34
|
+
};
|
|
35
|
+
export interface LexResult {
|
|
36
|
+
safe: boolean;
|
|
37
|
+
reason?: string;
|
|
38
|
+
tokens: LexToken[];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Scans a PostgreSQL statement far enough to guarantee that every character
|
|
42
|
+
* which could carry data is either SQL syntax or has been replaced.
|
|
43
|
+
*
|
|
44
|
+
* Every literal form is tracked: single quotes with doubled-quote escapes,
|
|
45
|
+
* `E'...'` escape strings with backslash escapes, `U&'...'` unicode strings
|
|
46
|
+
* with `\XXXX` / `\+XXXXXX` escapes, untagged and tagged dollar quotes, and
|
|
47
|
+
* double-quoted identifiers including the `U&"..."` form. Both comment forms
|
|
48
|
+
* are tracked too: line comments, which run to end of line and are never
|
|
49
|
+
* continued by a backslash, and nestable block comments. `#` is not a comment
|
|
50
|
+
* in PostgreSQL and is not treated as one here.
|
|
51
|
+
*
|
|
52
|
+
* The `E'…'` and `U&'…'` introducers count only when they are not glued to a
|
|
53
|
+
* preceding identifier character, which is what PostgreSQL's scanner does: in
|
|
54
|
+
* `xE'a\'b'` the identifier is `xE` and the quote opens an ordinary string whose
|
|
55
|
+
* body is `a\`, and this lexer closes it at the same quote the server would.
|
|
56
|
+
* The two quote characters are also kept apart: a `"` inside `'…'` is data, and
|
|
57
|
+
* ending the literal on it would print the remainder of the statement as text.
|
|
58
|
+
* Text outside a literal is left as it is — it is syntax and identifiers, and an
|
|
59
|
+
* unquoted identifier can contain neither `@` nor `.`, so nothing the server
|
|
60
|
+
* would accept as row data can reach the output through it. Quoted identifiers
|
|
61
|
+
* *are* tokens, because PostgreSQL prints row values between double quotes.
|
|
62
|
+
*
|
|
63
|
+
* Anything the scan cannot account for reports `safe: false`, and the caller
|
|
64
|
+
* must emit {@link UNREDACTABLE} rather than any part of the statement.
|
|
65
|
+
*/
|
|
66
|
+
export declare function lexSql(sql: string): LexResult;
|
|
67
|
+
export interface RedactOptions {
|
|
68
|
+
/**
|
|
69
|
+
* Also replace `"..."` / `U&"..."` quoted identifiers with `?`.
|
|
70
|
+
*
|
|
71
|
+
* **On by default.** A double-quoted run carries row data just as often as it
|
|
72
|
+
* carries a schema name: PostgreSQL reports rejected values that way
|
|
73
|
+
* (`invalid input syntax for type integer: "alice@corp.com"`), and a statement
|
|
74
|
+
* assembled from untrusted input can put anything between the quotes. The
|
|
75
|
+
* preview is an audit record, so losing `"MySchema"` there costs readability
|
|
76
|
+
* while keeping it costs an email address. Pass `false` only where the
|
|
77
|
+
* identifier is known-good SQL that was not built from user input.
|
|
78
|
+
*/
|
|
79
|
+
redactIdentifiers?: boolean;
|
|
80
|
+
/** Apply the `Key (col)=(value)` -> `= (?)` pass. Default true. */
|
|
81
|
+
redactKeyValues?: boolean;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* The default for {@link RedactOptions.redactIdentifiers}, and the default every
|
|
85
|
+
* exported entry point uses.
|
|
86
|
+
*
|
|
87
|
+
* **On.** A double-quoted run is a schema name only when the statement really is
|
|
88
|
+
* trusted SQL. It is also how PostgreSQL reports a rejected row value
|
|
89
|
+
* (`invalid input syntax for type integer: "alice@corp.com"`), how a careless
|
|
90
|
+
* developer labels a column (`SELECT 1 AS "alice@corp.com"`) and how a path is
|
|
91
|
+
* smuggled (`COPY t TO '/tmp/"secret"'`). Previews exist for auditing and
|
|
92
|
+
* fingerprinting, not for round-tripping or replay, so keeping an identifier
|
|
93
|
+
* buys a readable schema name at the cost of an egress channel. Callers that
|
|
94
|
+
* genuinely need identifiers pass `redactIdentifiers: false` explicitly.
|
|
95
|
+
*/
|
|
96
|
+
export declare const REDACT_IDENTIFIERS_BY_DEFAULT = true;
|
|
97
|
+
/**
|
|
98
|
+
* Replaces the body of every literal token, keeping the delimiters intact.
|
|
99
|
+
* Quoted identifiers are redacted unless `redactIdentifiers` is explicitly false.
|
|
100
|
+
*/
|
|
101
|
+
export declare function redactTokens(tokens: LexToken[], redactIdentifiers?: boolean): string;
|
|
102
|
+
/**
|
|
103
|
+
* Replaces bare numeric literals that are not part of a word, identifier or
|
|
104
|
+
* placeholder.
|
|
105
|
+
*
|
|
106
|
+
* A numeric literal is data unless it is a lone single digit standing in a
|
|
107
|
+
* structural position — the `1` of `SELECT 1`, which cannot identify a row and
|
|
108
|
+
* is noise rather than evidence. Everything else goes: any literal of two or
|
|
109
|
+
* more characters (`12345`, `1.5e3`), and any single digit in an operand
|
|
110
|
+
* position, which is where a compared value actually lives (`x = 1`,
|
|
111
|
+
* `VALUES (1, 2)`, `IN (1, 2)`).
|
|
112
|
+
*/
|
|
113
|
+
export declare function redactNumbers(sql: string): string;
|
|
114
|
+
/**
|
|
115
|
+
* Replace data-bearing literals with placeholders.
|
|
116
|
+
*
|
|
117
|
+
* Preview text is shipped to the cloud audit store, so this is a zero-retention
|
|
118
|
+
* boundary, not truncation. Dollar-quoted bodies, escape-string literals,
|
|
119
|
+
* unicode strings, numeric literals, quoted identifiers and both comment forms
|
|
120
|
+
* all have their contents removed unless `redactIdentifiers: false` is passed
|
|
121
|
+
* explicitly. A statement that cannot be fully accounted for — an unterminated
|
|
122
|
+
* construct, or more than {@link MAX_SQL_SCAN_BYTES} — returns
|
|
123
|
+
* {@link UNREDACTABLE} and no part of the statement text.
|
|
124
|
+
*/
|
|
125
|
+
export declare function redactSqlLiterals(sql: string, opts?: RedactOptions): string;
|
|
126
|
+
/**
|
|
127
|
+
* True when the value is {@link UNREDACTABLE} — no redacted text is available —
|
|
128
|
+
* or empty. Both must be treated as "emit nothing": an empty preview is not
|
|
129
|
+
* distinguishable from a dropped one in an audit record.
|
|
130
|
+
*/
|
|
131
|
+
export declare function isUnredactable(value: string | undefined | null): boolean;
|
|
132
|
+
/**
|
|
133
|
+
* Stable id for "the same statement, whatever values were passed".
|
|
134
|
+
*
|
|
135
|
+
* Whitespace, letter case, comments and literal values are not part of a
|
|
136
|
+
* statement's identity, so they are normalised away. Quoted identifiers are
|
|
137
|
+
* *not* — they are structure, and see {@link fingerprintTokens}.
|
|
138
|
+
*
|
|
139
|
+
* A statement that cannot be redacted shares one fingerprint with every other
|
|
140
|
+
* unredactable statement. That is deliberate: deriving the id from raw text
|
|
141
|
+
* would put attacker-chosen bytes into a value that leaves the process.
|
|
142
|
+
*/
|
|
143
|
+
export declare function fingerprintStatement(sql: string): string;
|
|
144
|
+
/**
|
|
145
|
+
* Redacted, character- and byte-capped preview for the audit record. Capping
|
|
146
|
+
* happens after redaction so the cap can never split a redaction marker, and an
|
|
147
|
+
* unredactable statement collapses to a fixed placeholder rather than any of its
|
|
148
|
+
* text.
|
|
149
|
+
*/
|
|
150
|
+
export declare function previewStatement(sql: string): string;
|
|
151
|
+
//# sourceMappingURL=redact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../../../src/audit/redact.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,eAAO,MAAM,YAAY,uBAAuB,CAAC;AAEjD,4CAA4C;AAC5C,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,4CAA4C;AAC5C,eAAO,MAAM,iBAAiB,MAAqB,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC;;;GAGG;AACH,eAAO,MAAM,kBAAkB,UAAY,CAAC;AAU5C,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,GAAG,QAAQ,GAAG,YAAY,CAAC;AAExF,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACjC,sFAAsF;GACpF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAgI7C;AAyED,MAAM,WAAW,aAAa;IAC5B;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mEAAmE;IACnE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAElD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,iBAAiB,UAAO,GAAG,MAAM,CAgBjF;AAQD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiDjD;AAgBD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,aAAkB,GAAG,MAAM,CAO/E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAExE;AA+DD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAaxD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAapD"}
|