@adminiumjs/adminium 0.1.0-rc.1
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/LICENSE +661 -0
- package/README.md +94 -0
- package/dashboard/assets/DeltaPill-dxlsGh-1.js +2 -0
- package/dashboard/assets/DeltaPill-dxlsGh-1.js.map +1 -0
- package/dashboard/assets/DistributionCorrelationWidgets-ztVy_W_R.js +2 -0
- package/dashboard/assets/DistributionCorrelationWidgets-ztVy_W_R.js.map +1 -0
- package/dashboard/assets/PartWholeWidgets-BDn0i0jt.js +2 -0
- package/dashboard/assets/PartWholeWidgets-BDn0i0jt.js.map +1 -0
- package/dashboard/assets/RemapEditor-z3vRY12e.js +2 -0
- package/dashboard/assets/RemapEditor-z3vRY12e.js.map +1 -0
- package/dashboard/assets/ReviewScreen-COkLQ3T7.js +2 -0
- package/dashboard/assets/ReviewScreen-COkLQ3T7.js.map +1 -0
- package/dashboard/assets/Sparkline-Cvwo368J.js +2 -0
- package/dashboard/assets/Sparkline-Cvwo368J.js.map +1 -0
- package/dashboard/assets/WidgetMissingCard-D0bPJKIs.js +2 -0
- package/dashboard/assets/WidgetMissingCard-D0bPJKIs.js.map +1 -0
- package/dashboard/assets/arc-CPxb74pf.js +2 -0
- package/dashboard/assets/arc-CPxb74pf.js.map +1 -0
- package/dashboard/assets/bars-ranking-components-9Asn_0gR.js +2 -0
- package/dashboard/assets/bars-ranking-components-9Asn_0gR.js.map +1 -0
- package/dashboard/assets/blocks-track-components-BST-NjK2.js +2 -0
- package/dashboard/assets/blocks-track-components-BST-NjK2.js.map +1 -0
- package/dashboard/assets/calendar-track-components-RgNtGtZR.js +2 -0
- package/dashboard/assets/calendar-track-components-RgNtGtZR.js.map +1 -0
- package/dashboard/assets/chrome-track-components-ClNsentC.js +2 -0
- package/dashboard/assets/chrome-track-components-ClNsentC.js.map +1 -0
- package/dashboard/assets/common-BY1j__bD.js +2 -0
- package/dashboard/assets/common-BY1j__bD.js.map +1 -0
- package/dashboard/assets/common-BdlXKpcB.js +2 -0
- package/dashboard/assets/common-BdlXKpcB.js.map +1 -0
- package/dashboard/assets/common-BqqhgMgB.js +2 -0
- package/dashboard/assets/common-BqqhgMgB.js.map +1 -0
- package/dashboard/assets/common-BribWmIo.js +2 -0
- package/dashboard/assets/common-BribWmIo.js.map +1 -0
- package/dashboard/assets/common-Cmf0_lKV.js +2 -0
- package/dashboard/assets/common-Cmf0_lKV.js.map +1 -0
- package/dashboard/assets/common-i0r48qY9.js +2 -0
- package/dashboard/assets/common-i0r48qY9.js.map +1 -0
- package/dashboard/assets/common-x8cfkwpc.js +2 -0
- package/dashboard/assets/common-x8cfkwpc.js.map +1 -0
- package/dashboard/assets/communication-track-components-CNLZXOH_.js +2 -0
- package/dashboard/assets/communication-track-components-CNLZXOH_.js.map +1 -0
- package/dashboard/assets/components-Bp5cFm2d.js +2 -0
- package/dashboard/assets/components-Bp5cFm2d.js.map +1 -0
- package/dashboard/assets/components-C4-O3_gD.js +2 -0
- package/dashboard/assets/components-C4-O3_gD.js.map +1 -0
- package/dashboard/assets/domain-ops-track-components-BPa41AU7.js +2 -0
- package/dashboard/assets/domain-ops-track-components-BPa41AU7.js.map +1 -0
- package/dashboard/assets/domain-track-components-CQ1i1X1t.js +2 -0
- package/dashboard/assets/domain-track-components-CQ1i1X1t.js.map +1 -0
- package/dashboard/assets/errors-BHUWiAQ3.js +2 -0
- package/dashboard/assets/errors-BHUWiAQ3.js.map +1 -0
- package/dashboard/assets/errors-BbyKweDG.js +2 -0
- package/dashboard/assets/errors-BbyKweDG.js.map +1 -0
- package/dashboard/assets/errors-CMQ6JC31.js +2 -0
- package/dashboard/assets/errors-CMQ6JC31.js.map +1 -0
- package/dashboard/assets/errors-D3nVgTmf.js +2 -0
- package/dashboard/assets/errors-D3nVgTmf.js.map +1 -0
- package/dashboard/assets/errors-IqJSoANC.js +2 -0
- package/dashboard/assets/errors-IqJSoANC.js.map +1 -0
- package/dashboard/assets/errors-gmIkO9F6.js +2 -0
- package/dashboard/assets/errors-gmIkO9F6.js.map +1 -0
- package/dashboard/assets/errors-vFk058Vh.js +2 -0
- package/dashboard/assets/errors-vFk058Vh.js.map +1 -0
- package/dashboard/assets/feeds-track-f-components-Cl_8SkGs.js +2 -0
- package/dashboard/assets/feeds-track-f-components-Cl_8SkGs.js.map +1 -0
- package/dashboard/assets/format-Lx4cQ8k-.js +2 -0
- package/dashboard/assets/format-Lx4cQ8k-.js.map +1 -0
- package/dashboard/assets/forms-track-components-Bc2Hoxdh.js +2 -0
- package/dashboard/assets/forms-track-components-Bc2Hoxdh.js.map +1 -0
- package/dashboard/assets/generated-1EfWhCMA.js +2 -0
- package/dashboard/assets/generated-1EfWhCMA.js.map +1 -0
- package/dashboard/assets/generated-BB3ZMxvx.js +2 -0
- package/dashboard/assets/generated-BB3ZMxvx.js.map +1 -0
- package/dashboard/assets/generated-C0JVNBRX.js +2 -0
- package/dashboard/assets/generated-C0JVNBRX.js.map +1 -0
- package/dashboard/assets/generated-C1W48_-3.js +2 -0
- package/dashboard/assets/generated-C1W48_-3.js.map +1 -0
- package/dashboard/assets/generated-CluiB_xY.js +2 -0
- package/dashboard/assets/generated-CluiB_xY.js.map +1 -0
- package/dashboard/assets/generated-DDGtlf-4.js +2 -0
- package/dashboard/assets/generated-DDGtlf-4.js.map +1 -0
- package/dashboard/assets/generated-DPCHvNto.js +2 -0
- package/dashboard/assets/generated-DPCHvNto.js.map +1 -0
- package/dashboard/assets/geo-track-components-Ct4-MSRw.js +3 -0
- package/dashboard/assets/geo-track-components-Ct4-MSRw.js.map +1 -0
- package/dashboard/assets/ibm-plex-sans-arabic-arabic-400-normal-CyU-ddYS.woff2 +0 -0
- package/dashboard/assets/ibm-plex-sans-arabic-arabic-500-normal-C4MQITzh.woff2 +0 -0
- package/dashboard/assets/ibm-plex-sans-arabic-arabic-600-normal-0pRdybE_.woff2 +0 -0
- package/dashboard/assets/ibm-plex-sans-arabic-arabic-700-normal-DrtBj6UE.woff2 +0 -0
- package/dashboard/assets/index-DPi4cduu.css +1 -0
- package/dashboard/assets/index-PB1II0WV.js +137 -0
- package/dashboard/assets/index-PB1II0WV.js.map +1 -0
- package/dashboard/assets/jetbrains-mono-latin-ext-wght-italic-BrDczivE.woff2 +0 -0
- package/dashboard/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
- package/dashboard/assets/jetbrains-mono-latin-wght-italic-B2M6KQje.woff2 +0 -0
- package/dashboard/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
- package/dashboard/assets/leaflet-CIGW-MKW.css +1 -0
- package/dashboard/assets/leaflet-src-D12shr04.js +2 -0
- package/dashboard/assets/leaflet-src-D12shr04.js.map +1 -0
- package/dashboard/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.woff2 +0 -0
- package/dashboard/assets/manrope-latin-wght-normal-DHIcAJRg.woff2 +0 -0
- package/dashboard/assets/media-track-components-CpeII-tT.js +2 -0
- package/dashboard/assets/media-track-components-CpeII-tT.js.map +1 -0
- package/dashboard/assets/scales-e0tkfEy1.js +2 -0
- package/dashboard/assets/scales-e0tkfEy1.js.map +1 -0
- package/dashboard/assets/sparkline-2JUGDrMW.js +2 -0
- package/dashboard/assets/sparkline-2JUGDrMW.js.map +1 -0
- package/dashboard/assets/stats-BNgXz5BD.js +2 -0
- package/dashboard/assets/stats-BNgXz5BD.js.map +1 -0
- package/dashboard/assets/studio-B7hMOwAF.js +2 -0
- package/dashboard/assets/studio-B7hMOwAF.js.map +1 -0
- package/dashboard/assets/studio-BN_9xHY3.js +2 -0
- package/dashboard/assets/studio-BN_9xHY3.js.map +1 -0
- package/dashboard/assets/studio-Cn2MObe8.js +2 -0
- package/dashboard/assets/studio-Cn2MObe8.js.map +1 -0
- package/dashboard/assets/studio-DZEZCCkw.js +2 -0
- package/dashboard/assets/studio-DZEZCCkw.js.map +1 -0
- package/dashboard/assets/studio-DzatTvLl.js +2 -0
- package/dashboard/assets/studio-DzatTvLl.js.map +1 -0
- package/dashboard/assets/studio-cBlD8x90.js +2 -0
- package/dashboard/assets/studio-cBlD8x90.js.map +1 -0
- package/dashboard/assets/studio-cglZPbJK.js +2 -0
- package/dashboard/assets/studio-cglZPbJK.js.map +1 -0
- package/dashboard/assets/system-track-components-GTYYpnfB.js +2 -0
- package/dashboard/assets/system-track-components-GTYYpnfB.js.map +1 -0
- package/dashboard/assets/tables-tail-components-DiA5GeHB.js +2 -0
- package/dashboard/assets/tables-tail-components-DiA5GeHB.js.map +1 -0
- package/dashboard/assets/tables-track-f-components-CVNPd7rq.js +2 -0
- package/dashboard/assets/tables-track-f-components-CVNPd7rq.js.map +1 -0
- package/dashboard/assets/time-flow-components-nKsaryry.js +2 -0
- package/dashboard/assets/time-flow-components-nKsaryry.js.map +1 -0
- package/dashboard/assets/ui-B-kZetor.js +2 -0
- package/dashboard/assets/ui-B-kZetor.js.map +1 -0
- package/dashboard/assets/ui-BEStJ5Pw.js +2 -0
- package/dashboard/assets/ui-BEStJ5Pw.js.map +1 -0
- package/dashboard/assets/ui-BS5_eDN4.js +2 -0
- package/dashboard/assets/ui-BS5_eDN4.js.map +1 -0
- package/dashboard/assets/ui-BZ0EyxRH.js +2 -0
- package/dashboard/assets/ui-BZ0EyxRH.js.map +1 -0
- package/dashboard/assets/ui-BloJDdt6.js +2 -0
- package/dashboard/assets/ui-BloJDdt6.js.map +1 -0
- package/dashboard/assets/ui-CpdrplJH.js +2 -0
- package/dashboard/assets/ui-CpdrplJH.js.map +1 -0
- package/dashboard/assets/ui-YJfT644k.js +2 -0
- package/dashboard/assets/ui-YJfT644k.js.map +1 -0
- package/dashboard/assets/widgets-uDqZWw4A.js +2 -0
- package/dashboard/assets/widgets-uDqZWw4A.js.map +1 -0
- package/dashboard/index.html +41 -0
- package/dist/app.d.ts +48 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +250 -0
- package/dist/app.js.map +1 -0
- package/dist/auth/audit.d.ts +22 -0
- package/dist/auth/audit.d.ts.map +1 -0
- package/dist/auth/audit.js +17 -0
- package/dist/auth/audit.js.map +1 -0
- package/dist/auth/desktop-session.d.ts +53 -0
- package/dist/auth/desktop-session.d.ts.map +1 -0
- package/dist/auth/desktop-session.js +111 -0
- package/dist/auth/desktop-session.js.map +1 -0
- package/dist/auth/passwords.d.ts +17 -0
- package/dist/auth/passwords.d.ts.map +1 -0
- package/dist/auth/passwords.js +40 -0
- package/dist/auth/passwords.js.map +1 -0
- package/dist/auth/sessions.d.ts +77 -0
- package/dist/auth/sessions.d.ts.map +1 -0
- package/dist/auth/sessions.js +137 -0
- package/dist/auth/sessions.js.map +1 -0
- package/dist/auth/totp.d.ts +30 -0
- package/dist/auth/totp.d.ts.map +1 -0
- package/dist/auth/totp.js +97 -0
- package/dist/auth/totp.js.map +1 -0
- package/dist/backup/backup-service.d.ts +157 -0
- package/dist/backup/backup-service.d.ts.map +1 -0
- package/dist/backup/backup-service.js +354 -0
- package/dist/backup/backup-service.js.map +1 -0
- package/dist/backup/format.d.ts +300 -0
- package/dist/backup/format.d.ts.map +1 -0
- package/dist/backup/format.js +304 -0
- package/dist/backup/format.js.map +1 -0
- package/dist/backup/notify.d.ts +55 -0
- package/dist/backup/notify.d.ts.map +1 -0
- package/dist/backup/notify.js +60 -0
- package/dist/backup/notify.js.map +1 -0
- package/dist/backup/snapshot.d.ts +78 -0
- package/dist/backup/snapshot.d.ts.map +1 -0
- package/dist/backup/snapshot.js +142 -0
- package/dist/backup/snapshot.js.map +1 -0
- package/dist/capabilities/catalog.d.ts +33 -0
- package/dist/capabilities/catalog.d.ts.map +1 -0
- package/dist/capabilities/catalog.js +32 -0
- package/dist/capabilities/catalog.js.map +1 -0
- package/dist/capabilities/grants.d.ts +44 -0
- package/dist/capabilities/grants.d.ts.map +1 -0
- package/dist/capabilities/grants.js +65 -0
- package/dist/capabilities/grants.js.map +1 -0
- package/dist/cli/allowlist.d.ts +46 -0
- package/dist/cli/allowlist.d.ts.map +1 -0
- package/dist/cli/allowlist.js +99 -0
- package/dist/cli/allowlist.js.map +1 -0
- package/dist/cli/args.d.ts +63 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +92 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/command.d.ts +32 -0
- package/dist/cli/command.d.ts.map +1 -0
- package/dist/cli/command.js +64 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/commands/apply-llm-response.d.ts +32 -0
- package/dist/cli/commands/apply-llm-response.d.ts.map +1 -0
- package/dist/cli/commands/apply-llm-response.js +209 -0
- package/dist/cli/commands/apply-llm-response.js.map +1 -0
- package/dist/cli/commands/export-zip.d.ts +17 -0
- package/dist/cli/commands/export-zip.d.ts.map +1 -0
- package/dist/cli/commands/export-zip.js +111 -0
- package/dist/cli/commands/export-zip.js.map +1 -0
- package/dist/cli/commands/generate-prompt.d.ts +29 -0
- package/dist/cli/commands/generate-prompt.d.ts.map +1 -0
- package/dist/cli/commands/generate-prompt.js +154 -0
- package/dist/cli/commands/generate-prompt.js.map +1 -0
- package/dist/cli/commands/import-zip.d.ts +13 -0
- package/dist/cli/commands/import-zip.d.ts.map +1 -0
- package/dist/cli/commands/import-zip.js +95 -0
- package/dist/cli/commands/import-zip.js.map +1 -0
- package/dist/cli/commands/init.d.ts +47 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +372 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/introspect.d.ts +11 -0
- package/dist/cli/commands/introspect.d.ts.map +1 -0
- package/dist/cli/commands/introspect.js +100 -0
- package/dist/cli/commands/introspect.js.map +1 -0
- package/dist/cli/commands/migrate.d.ts +11 -0
- package/dist/cli/commands/migrate.d.ts.map +1 -0
- package/dist/cli/commands/migrate.js +80 -0
- package/dist/cli/commands/migrate.js.map +1 -0
- package/dist/cli/commands/start.d.ts +22 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +101 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/exit.d.ts +37 -0
- package/dist/cli/exit.d.ts.map +1 -0
- package/dist/cli/exit.js +39 -0
- package/dist/cli/exit.js.map +1 -0
- package/dist/cli/index.d.ts +10 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +17 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/io.d.ts +49 -0
- package/dist/cli/io.d.ts.map +1 -0
- package/dist/cli/io.js +77 -0
- package/dist/cli/io.js.map +1 -0
- package/dist/cli/run.d.ts +35 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +139 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/runtime.d.ts +116 -0
- package/dist/cli/runtime.d.ts.map +1 -0
- package/dist/cli/runtime.js +181 -0
- package/dist/cli/runtime.js.map +1 -0
- package/dist/cli/static-root.d.ts +42 -0
- package/dist/cli/static-root.d.ts.map +1 -0
- package/dist/cli/static-root.js +58 -0
- package/dist/cli/static-root.js.map +1 -0
- package/dist/compose.d.ts +135 -0
- package/dist/compose.d.ts.map +1 -0
- package/dist/compose.js +383 -0
- package/dist/compose.js.map +1 -0
- package/dist/config/bootstrap.d.ts +33 -0
- package/dist/config/bootstrap.d.ts.map +1 -0
- package/dist/config/bootstrap.js +81 -0
- package/dist/config/bootstrap.js.map +1 -0
- package/dist/config/env.d.ts +95 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +236 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/secrets.d.ts +24 -0
- package/dist/config/secrets.d.ts.map +1 -0
- package/dist/config/secrets.js +74 -0
- package/dist/config/secrets.js.map +1 -0
- package/dist/connections/crypto.d.ts +9 -0
- package/dist/connections/crypto.d.ts.map +1 -0
- package/dist/connections/crypto.js +16 -0
- package/dist/connections/crypto.js.map +1 -0
- package/dist/connections/dsn.d.ts +42 -0
- package/dist/connections/dsn.d.ts.map +1 -0
- package/dist/connections/dsn.js +131 -0
- package/dist/connections/dsn.js.map +1 -0
- package/dist/connections/effective-schema.d.ts +65 -0
- package/dist/connections/effective-schema.d.ts.map +1 -0
- package/dist/connections/effective-schema.js +249 -0
- package/dist/connections/effective-schema.js.map +1 -0
- package/dist/connections/introspect.d.ts +52 -0
- package/dist/connections/introspect.d.ts.map +1 -0
- package/dist/connections/introspect.js +111 -0
- package/dist/connections/introspect.js.map +1 -0
- package/dist/connections/manager.d.ts +97 -0
- package/dist/connections/manager.d.ts.map +1 -0
- package/dist/connections/manager.js +224 -0
- package/dist/connections/manager.js.map +1 -0
- package/dist/connections/register-adapters.d.ts +42 -0
- package/dist/connections/register-adapters.d.ts.map +1 -0
- package/dist/connections/register-adapters.js +92 -0
- package/dist/connections/register-adapters.js.map +1 -0
- package/dist/crud/filters.d.ts +57 -0
- package/dist/crud/filters.d.ts.map +1 -0
- package/dist/crud/filters.js +177 -0
- package/dist/crud/filters.js.map +1 -0
- package/dist/crud/identifiers.d.ts +58 -0
- package/dist/crud/identifiers.d.ts.map +1 -0
- package/dist/crud/identifiers.js +99 -0
- package/dist/crud/identifiers.js.map +1 -0
- package/dist/crud/list.d.ts +51 -0
- package/dist/crud/list.d.ts.map +1 -0
- package/dist/crud/list.js +126 -0
- package/dist/crud/list.js.map +1 -0
- package/dist/crud/mask.d.ts +23 -0
- package/dist/crud/mask.d.ts.map +1 -0
- package/dist/crud/mask.js +41 -0
- package/dist/crud/mask.js.map +1 -0
- package/dist/crud/records.d.ts +33 -0
- package/dist/crud/records.d.ts.map +1 -0
- package/dist/crud/records.js +126 -0
- package/dist/crud/records.js.map +1 -0
- package/dist/crud/undo.d.ts +55 -0
- package/dist/crud/undo.d.ts.map +1 -0
- package/dist/crud/undo.js +74 -0
- package/dist/crud/undo.js.map +1 -0
- package/dist/data-io/coerce.d.ts +28 -0
- package/dist/data-io/coerce.d.ts.map +1 -0
- package/dist/data-io/coerce.js +123 -0
- package/dist/data-io/coerce.js.map +1 -0
- package/dist/data-io/csv.d.ts +38 -0
- package/dist/data-io/csv.d.ts.map +1 -0
- package/dist/data-io/csv.js +138 -0
- package/dist/data-io/csv.js.map +1 -0
- package/dist/data-io/snapshot-view.d.ts +10 -0
- package/dist/data-io/snapshot-view.d.ts.map +1 -0
- package/dist/data-io/snapshot-view.js +19 -0
- package/dist/data-io/snapshot-view.js.map +1 -0
- package/dist/desktop/demo-seed.d.ts +23 -0
- package/dist/desktop/demo-seed.d.ts.map +1 -0
- package/dist/desktop/demo-seed.js +28 -0
- package/dist/desktop/demo-seed.js.map +1 -0
- package/dist/desktop/lan-share.d.ts +94 -0
- package/dist/desktop/lan-share.d.ts.map +1 -0
- package/dist/desktop/lan-share.js +150 -0
- package/dist/desktop/lan-share.js.map +1 -0
- package/dist/errors.d.ts +72 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +82 -0
- package/dist/errors.js.map +1 -0
- package/dist/export/bundle.d.ts +235 -0
- package/dist/export/bundle.d.ts.map +1 -0
- package/dist/export/bundle.js +172 -0
- package/dist/export/bundle.js.map +1 -0
- package/dist/export/import-service.d.ts +99 -0
- package/dist/export/import-service.d.ts.map +1 -0
- package/dist/export/import-service.js +515 -0
- package/dist/export/import-service.js.map +1 -0
- package/dist/export/readme.d.ts +25 -0
- package/dist/export/readme.d.ts.map +1 -0
- package/dist/export/readme.js +154 -0
- package/dist/export/readme.js.map +1 -0
- package/dist/export/redaction.d.ts +118 -0
- package/dist/export/redaction.d.ts.map +1 -0
- package/dist/export/redaction.js +233 -0
- package/dist/export/redaction.js.map +1 -0
- package/dist/export/zip-service.d.ts +66 -0
- package/dist/export/zip-service.d.ts.map +1 -0
- package/dist/export/zip-service.js +306 -0
- package/dist/export/zip-service.js.map +1 -0
- package/dist/files/storage.d.ts +50 -0
- package/dist/files/storage.d.ts.map +1 -0
- package/dist/files/storage.js +100 -0
- package/dist/files/storage.js.map +1 -0
- package/dist/generate/materialize-llm.d.ts +45 -0
- package/dist/generate/materialize-llm.d.ts.map +1 -0
- package/dist/generate/materialize-llm.js +167 -0
- package/dist/generate/materialize-llm.js.map +1 -0
- package/dist/generate/run.d.ts +48 -0
- package/dist/generate/run.d.ts.map +1 -0
- package/dist/generate/run.js +123 -0
- package/dist/generate/run.js.map +1 -0
- package/dist/index.d.ts +89 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +116 -0
- package/dist/index.js.map +1 -0
- package/dist/jobs/export-run.d.ts +38 -0
- package/dist/jobs/export-run.d.ts.map +1 -0
- package/dist/jobs/export-run.js +172 -0
- package/dist/jobs/export-run.js.map +1 -0
- package/dist/jobs/import-run.d.ts +43 -0
- package/dist/jobs/import-run.d.ts.map +1 -0
- package/dist/jobs/import-run.js +290 -0
- package/dist/jobs/import-run.js.map +1 -0
- package/dist/jobs/llm-run.d.ts +73 -0
- package/dist/jobs/llm-run.d.ts.map +1 -0
- package/dist/jobs/llm-run.js +225 -0
- package/dist/jobs/llm-run.js.map +1 -0
- package/dist/jobs/register.d.ts +90 -0
- package/dist/jobs/register.d.ts.map +1 -0
- package/dist/jobs/register.js +121 -0
- package/dist/jobs/register.js.map +1 -0
- package/dist/jobs/registry.d.ts +74 -0
- package/dist/jobs/registry.d.ts.map +1 -0
- package/dist/jobs/registry.js +78 -0
- package/dist/jobs/registry.js.map +1 -0
- package/dist/jobs/report-run.d.ts +64 -0
- package/dist/jobs/report-run.d.ts.map +1 -0
- package/dist/jobs/report-run.js +221 -0
- package/dist/jobs/report-run.js.map +1 -0
- package/dist/jobs/scheduler.d.ts +72 -0
- package/dist/jobs/scheduler.d.ts.map +1 -0
- package/dist/jobs/scheduler.js +121 -0
- package/dist/jobs/scheduler.js.map +1 -0
- package/dist/jobs/worker.d.ts +110 -0
- package/dist/jobs/worker.d.ts.map +1 -0
- package/dist/jobs/worker.js +282 -0
- package/dist/jobs/worker.js.map +1 -0
- package/dist/llm/apply-service.d.ts +150 -0
- package/dist/llm/apply-service.d.ts.map +1 -0
- package/dist/llm/apply-service.js +463 -0
- package/dist/llm/apply-service.js.map +1 -0
- package/dist/llm/apply-undo-store.d.ts +50 -0
- package/dist/llm/apply-undo-store.d.ts.map +1 -0
- package/dist/llm/apply-undo-store.js +60 -0
- package/dist/llm/apply-undo-store.js.map +1 -0
- package/dist/llm/direct-runner.d.ts +146 -0
- package/dist/llm/direct-runner.d.ts.map +1 -0
- package/dist/llm/direct-runner.js +204 -0
- package/dist/llm/direct-runner.js.map +1 -0
- package/dist/llm/prompt-service.d.ts +90 -0
- package/dist/llm/prompt-service.d.ts.map +1 -0
- package/dist/llm/prompt-service.js +93 -0
- package/dist/llm/prompt-service.js.map +1 -0
- package/dist/llm/provider-resolver.d.ts +25 -0
- package/dist/llm/provider-resolver.d.ts.map +1 -0
- package/dist/llm/provider-resolver.js +81 -0
- package/dist/llm/provider-resolver.js.map +1 -0
- package/dist/llm/run-service.d.ts +215 -0
- package/dist/llm/run-service.d.ts.map +1 -0
- package/dist/llm/run-service.js +343 -0
- package/dist/llm/run-service.js.map +1 -0
- package/dist/llm/stats-collector.d.ts +40 -0
- package/dist/llm/stats-collector.d.ts.map +1 -0
- package/dist/llm/stats-collector.js +74 -0
- package/dist/llm/stats-collector.js.map +1 -0
- package/dist/log-scrub.d.ts +58 -0
- package/dist/log-scrub.d.ts.map +1 -0
- package/dist/log-scrub.js +103 -0
- package/dist/log-scrub.js.map +1 -0
- package/dist/meta/store.d.ts +96 -0
- package/dist/meta/store.d.ts.map +1 -0
- package/dist/meta/store.js +192 -0
- package/dist/meta/store.js.map +1 -0
- package/dist/notifications/notify.d.ts +43 -0
- package/dist/notifications/notify.d.ts.map +1 -0
- package/dist/notifications/notify.js +42 -0
- package/dist/notifications/notify.js.map +1 -0
- package/dist/plugins/auth.d.ts +42 -0
- package/dist/plugins/auth.d.ts.map +1 -0
- package/dist/plugins/auth.js +84 -0
- package/dist/plugins/auth.js.map +1 -0
- package/dist/plugins/core.d.ts +48 -0
- package/dist/plugins/core.d.ts.map +1 -0
- package/dist/plugins/core.js +248 -0
- package/dist/plugins/core.js.map +1 -0
- package/dist/plugins/rbac.d.ts +54 -0
- package/dist/plugins/rbac.d.ts.map +1 -0
- package/dist/plugins/rbac.js +103 -0
- package/dist/plugins/rbac.js.map +1 -0
- package/dist/plugins/static.d.ts +12 -0
- package/dist/plugins/static.d.ts.map +1 -0
- package/dist/plugins/static.js +36 -0
- package/dist/plugins/static.js.map +1 -0
- package/dist/rbac/api-keys.d.ts +30 -0
- package/dist/rbac/api-keys.d.ts.map +1 -0
- package/dist/rbac/api-keys.js +41 -0
- package/dist/rbac/api-keys.js.map +1 -0
- package/dist/rbac/index.d.ts +6 -0
- package/dist/rbac/index.d.ts.map +1 -0
- package/dist/rbac/index.js +6 -0
- package/dist/rbac/index.js.map +1 -0
- package/dist/rbac/permissions.d.ts +107 -0
- package/dist/rbac/permissions.d.ts.map +1 -0
- package/dist/rbac/permissions.js +250 -0
- package/dist/rbac/permissions.js.map +1 -0
- package/dist/rbac/principal.d.ts +33 -0
- package/dist/rbac/principal.d.ts.map +1 -0
- package/dist/rbac/principal.js +31 -0
- package/dist/rbac/principal.js.map +1 -0
- package/dist/rbac/resolver.d.ts +26 -0
- package/dist/rbac/resolver.d.ts.map +1 -0
- package/dist/rbac/resolver.js +46 -0
- package/dist/rbac/resolver.js.map +1 -0
- package/dist/realtime/hub.d.ts +90 -0
- package/dist/realtime/hub.d.ts.map +1 -0
- package/dist/realtime/hub.js +146 -0
- package/dist/realtime/hub.js.map +1 -0
- package/dist/realtime/sse.d.ts +35 -0
- package/dist/realtime/sse.d.ts.map +1 -0
- package/dist/realtime/sse.js +88 -0
- package/dist/realtime/sse.js.map +1 -0
- package/dist/realtime/ws.d.ts +38 -0
- package/dist/realtime/ws.d.ts.map +1 -0
- package/dist/realtime/ws.js +124 -0
- package/dist/realtime/ws.js.map +1 -0
- package/dist/reports/schedule.d.ts +14 -0
- package/dist/reports/schedule.d.ts.map +1 -0
- package/dist/reports/schedule.js +63 -0
- package/dist/reports/schedule.js.map +1 -0
- package/dist/routes/about/index.d.ts +39 -0
- package/dist/routes/about/index.d.ts.map +1 -0
- package/dist/routes/about/index.js +73 -0
- package/dist/routes/about/index.js.map +1 -0
- package/dist/routes/about/schema.d.ts +50 -0
- package/dist/routes/about/schema.d.ts.map +1 -0
- package/dist/routes/about/schema.js +53 -0
- package/dist/routes/about/schema.js.map +1 -0
- package/dist/routes/api-keys/index.d.ts +11 -0
- package/dist/routes/api-keys/index.d.ts.map +1 -0
- package/dist/routes/api-keys/index.js +79 -0
- package/dist/routes/api-keys/index.js.map +1 -0
- package/dist/routes/api-keys/schema.d.ts +62 -0
- package/dist/routes/api-keys/schema.d.ts.map +1 -0
- package/dist/routes/api-keys/schema.js +37 -0
- package/dist/routes/api-keys/schema.js.map +1 -0
- package/dist/routes/audit/index.d.ts +11 -0
- package/dist/routes/audit/index.d.ts.map +1 -0
- package/dist/routes/audit/index.js +107 -0
- package/dist/routes/audit/index.js.map +1 -0
- package/dist/routes/audit/schema.d.ts +129 -0
- package/dist/routes/audit/schema.d.ts.map +1 -0
- package/dist/routes/audit/schema.js +43 -0
- package/dist/routes/audit/schema.js.map +1 -0
- package/dist/routes/auth/desktop-session.d.ts +48 -0
- package/dist/routes/auth/desktop-session.d.ts.map +1 -0
- package/dist/routes/auth/desktop-session.js +132 -0
- package/dist/routes/auth/desktop-session.js.map +1 -0
- package/dist/routes/auth/handlers.d.ts +21 -0
- package/dist/routes/auth/handlers.d.ts.map +1 -0
- package/dist/routes/auth/handlers.js +256 -0
- package/dist/routes/auth/handlers.js.map +1 -0
- package/dist/routes/auth/index.d.ts +27 -0
- package/dist/routes/auth/index.d.ts.map +1 -0
- package/dist/routes/auth/index.js +67 -0
- package/dist/routes/auth/index.js.map +1 -0
- package/dist/routes/auth/schema.d.ts +129 -0
- package/dist/routes/auth/schema.d.ts.map +1 -0
- package/dist/routes/auth/schema.js +84 -0
- package/dist/routes/auth/schema.js.map +1 -0
- package/dist/routes/bootstrap/handlers.d.ts +34 -0
- package/dist/routes/bootstrap/handlers.d.ts.map +1 -0
- package/dist/routes/bootstrap/handlers.js +96 -0
- package/dist/routes/bootstrap/handlers.js.map +1 -0
- package/dist/routes/bootstrap/index.d.ts +9 -0
- package/dist/routes/bootstrap/index.d.ts.map +1 -0
- package/dist/routes/bootstrap/index.js +16 -0
- package/dist/routes/bootstrap/index.js.map +1 -0
- package/dist/routes/bootstrap/schema.d.ts +177 -0
- package/dist/routes/bootstrap/schema.d.ts.map +1 -0
- package/dist/routes/bootstrap/schema.js +55 -0
- package/dist/routes/bootstrap/schema.js.map +1 -0
- package/dist/routes/connections/index.d.ts +21 -0
- package/dist/routes/connections/index.d.ts.map +1 -0
- package/dist/routes/connections/index.js +260 -0
- package/dist/routes/connections/index.js.map +1 -0
- package/dist/routes/connections/schema.d.ts +161 -0
- package/dist/routes/connections/schema.d.ts.map +1 -0
- package/dist/routes/connections/schema.js +91 -0
- package/dist/routes/connections/schema.js.map +1 -0
- package/dist/routes/data/index.d.ts +46 -0
- package/dist/routes/data/index.d.ts.map +1 -0
- package/dist/routes/data/index.js +508 -0
- package/dist/routes/data/index.js.map +1 -0
- package/dist/routes/data/schema.d.ts +128 -0
- package/dist/routes/data/schema.d.ts.map +1 -0
- package/dist/routes/data/schema.js +83 -0
- package/dist/routes/data/schema.js.map +1 -0
- package/dist/routes/desktop/index.d.ts +61 -0
- package/dist/routes/desktop/index.d.ts.map +1 -0
- package/dist/routes/desktop/index.js +91 -0
- package/dist/routes/desktop/index.js.map +1 -0
- package/dist/routes/desktop/schema.d.ts +71 -0
- package/dist/routes/desktop/schema.d.ts.map +1 -0
- package/dist/routes/desktop/schema.js +58 -0
- package/dist/routes/desktop/schema.js.map +1 -0
- package/dist/routes/desktop-capabilities/index.d.ts +9 -0
- package/dist/routes/desktop-capabilities/index.d.ts.map +1 -0
- package/dist/routes/desktop-capabilities/index.js +62 -0
- package/dist/routes/desktop-capabilities/index.js.map +1 -0
- package/dist/routes/desktop-capabilities/schema.d.ts +46 -0
- package/dist/routes/desktop-capabilities/schema.d.ts.map +1 -0
- package/dist/routes/desktop-capabilities/schema.js +30 -0
- package/dist/routes/desktop-capabilities/schema.js.map +1 -0
- package/dist/routes/desktop-demo/handlers.d.ts +94 -0
- package/dist/routes/desktop-demo/handlers.d.ts.map +1 -0
- package/dist/routes/desktop-demo/handlers.js +182 -0
- package/dist/routes/desktop-demo/handlers.js.map +1 -0
- package/dist/routes/desktop-demo/index.d.ts +39 -0
- package/dist/routes/desktop-demo/index.d.ts.map +1 -0
- package/dist/routes/desktop-demo/index.js +73 -0
- package/dist/routes/desktop-demo/index.js.map +1 -0
- package/dist/routes/desktop-demo/schema.d.ts +17 -0
- package/dist/routes/desktop-demo/schema.d.ts.map +1 -0
- package/dist/routes/desktop-demo/schema.js +30 -0
- package/dist/routes/desktop-demo/schema.js.map +1 -0
- package/dist/routes/desktop-lan/index.d.ts +54 -0
- package/dist/routes/desktop-lan/index.d.ts.map +1 -0
- package/dist/routes/desktop-lan/index.js +33 -0
- package/dist/routes/desktop-lan/index.js.map +1 -0
- package/dist/routes/desktop-lan/schema.d.ts +24 -0
- package/dist/routes/desktop-lan/schema.d.ts.map +1 -0
- package/dist/routes/desktop-lan/schema.js +40 -0
- package/dist/routes/desktop-lan/schema.js.map +1 -0
- package/dist/routes/desktop-local-db/handlers.d.ts +92 -0
- package/dist/routes/desktop-local-db/handlers.d.ts.map +1 -0
- package/dist/routes/desktop-local-db/handlers.js +300 -0
- package/dist/routes/desktop-local-db/handlers.js.map +1 -0
- package/dist/routes/desktop-local-db/index.d.ts +39 -0
- package/dist/routes/desktop-local-db/index.d.ts.map +1 -0
- package/dist/routes/desktop-local-db/index.js +83 -0
- package/dist/routes/desktop-local-db/index.js.map +1 -0
- package/dist/routes/desktop-local-db/placeholder.d.ts +75 -0
- package/dist/routes/desktop-local-db/placeholder.d.ts.map +1 -0
- package/dist/routes/desktop-local-db/placeholder.js +420 -0
- package/dist/routes/desktop-local-db/placeholder.js.map +1 -0
- package/dist/routes/desktop-local-db/schema.d.ts +50 -0
- package/dist/routes/desktop-local-db/schema.d.ts.map +1 -0
- package/dist/routes/desktop-local-db/schema.js +71 -0
- package/dist/routes/desktop-local-db/schema.js.map +1 -0
- package/dist/routes/desktop-local-db/sqlite-ddl.d.ts +104 -0
- package/dist/routes/desktop-local-db/sqlite-ddl.d.ts.map +1 -0
- package/dist/routes/desktop-local-db/sqlite-ddl.js +419 -0
- package/dist/routes/desktop-local-db/sqlite-ddl.js.map +1 -0
- package/dist/routes/email-templates/index.d.ts +7 -0
- package/dist/routes/email-templates/index.d.ts.map +1 -0
- package/dist/routes/email-templates/index.js +70 -0
- package/dist/routes/email-templates/index.js.map +1 -0
- package/dist/routes/email-templates/schema.d.ts +54 -0
- package/dist/routes/email-templates/schema.d.ts.map +1 -0
- package/dist/routes/email-templates/schema.js +35 -0
- package/dist/routes/email-templates/schema.js.map +1 -0
- package/dist/routes/exports/index.d.ts +19 -0
- package/dist/routes/exports/index.d.ts.map +1 -0
- package/dist/routes/exports/index.js +145 -0
- package/dist/routes/exports/index.js.map +1 -0
- package/dist/routes/exports/schema.d.ts +183 -0
- package/dist/routes/exports/schema.d.ts.map +1 -0
- package/dist/routes/exports/schema.js +37 -0
- package/dist/routes/exports/schema.js.map +1 -0
- package/dist/routes/generate/index.d.ts +23 -0
- package/dist/routes/generate/index.d.ts.map +1 -0
- package/dist/routes/generate/index.js +80 -0
- package/dist/routes/generate/index.js.map +1 -0
- package/dist/routes/generate/schema.d.ts +43 -0
- package/dist/routes/generate/schema.d.ts.map +1 -0
- package/dist/routes/generate/schema.js +37 -0
- package/dist/routes/generate/schema.js.map +1 -0
- package/dist/routes/imports/index.d.ts +21 -0
- package/dist/routes/imports/index.d.ts.map +1 -0
- package/dist/routes/imports/index.js +288 -0
- package/dist/routes/imports/index.js.map +1 -0
- package/dist/routes/imports/schema.d.ts +292 -0
- package/dist/routes/imports/schema.d.ts.map +1 -0
- package/dist/routes/imports/schema.js +78 -0
- package/dist/routes/imports/schema.js.map +1 -0
- package/dist/routes/index.d.ts +11 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +8 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/jobs/index.d.ts +29 -0
- package/dist/routes/jobs/index.d.ts.map +1 -0
- package/dist/routes/jobs/index.js +175 -0
- package/dist/routes/jobs/index.js.map +1 -0
- package/dist/routes/jobs/schema.d.ts +170 -0
- package/dist/routes/jobs/schema.d.ts.map +1 -0
- package/dist/routes/jobs/schema.js +57 -0
- package/dist/routes/jobs/schema.js.map +1 -0
- package/dist/routes/llm/config-service.d.ts +48 -0
- package/dist/routes/llm/config-service.d.ts.map +1 -0
- package/dist/routes/llm/config-service.js +102 -0
- package/dist/routes/llm/config-service.js.map +1 -0
- package/dist/routes/llm/index.d.ts +69 -0
- package/dist/routes/llm/index.d.ts.map +1 -0
- package/dist/routes/llm/index.js +412 -0
- package/dist/routes/llm/index.js.map +1 -0
- package/dist/routes/llm/schema.d.ts +605 -0
- package/dist/routes/llm/schema.d.ts.map +1 -0
- package/dist/routes/llm/schema.js +238 -0
- package/dist/routes/llm/schema.js.map +1 -0
- package/dist/routes/me/handlers.d.ts +14 -0
- package/dist/routes/me/handlers.d.ts.map +1 -0
- package/dist/routes/me/handlers.js +88 -0
- package/dist/routes/me/handlers.js.map +1 -0
- package/dist/routes/me/index.d.ts +8 -0
- package/dist/routes/me/index.d.ts.map +1 -0
- package/dist/routes/me/index.js +17 -0
- package/dist/routes/me/index.js.map +1 -0
- package/dist/routes/me/schema.d.ts +270 -0
- package/dist/routes/me/schema.d.ts.map +1 -0
- package/dist/routes/me/schema.js +59 -0
- package/dist/routes/me/schema.js.map +1 -0
- package/dist/routes/me-views/index.d.ts +23 -0
- package/dist/routes/me-views/index.d.ts.map +1 -0
- package/dist/routes/me-views/index.js +76 -0
- package/dist/routes/me-views/index.js.map +1 -0
- package/dist/routes/me-views/schema.d.ts +44 -0
- package/dist/routes/me-views/schema.d.ts.map +1 -0
- package/dist/routes/me-views/schema.js +13 -0
- package/dist/routes/me-views/schema.js.map +1 -0
- package/dist/routes/notifications/index.d.ts +19 -0
- package/dist/routes/notifications/index.d.ts.map +1 -0
- package/dist/routes/notifications/index.js +123 -0
- package/dist/routes/notifications/index.js.map +1 -0
- package/dist/routes/notifications/schema.d.ts +122 -0
- package/dist/routes/notifications/schema.d.ts.map +1 -0
- package/dist/routes/notifications/schema.js +83 -0
- package/dist/routes/notifications/schema.js.map +1 -0
- package/dist/routes/onboarding/derive.d.ts +41 -0
- package/dist/routes/onboarding/derive.d.ts.map +1 -0
- package/dist/routes/onboarding/derive.js +30 -0
- package/dist/routes/onboarding/derive.js.map +1 -0
- package/dist/routes/onboarding/index.d.ts +26 -0
- package/dist/routes/onboarding/index.d.ts.map +1 -0
- package/dist/routes/onboarding/index.js +95 -0
- package/dist/routes/onboarding/index.js.map +1 -0
- package/dist/routes/onboarding/schema.d.ts +22 -0
- package/dist/routes/onboarding/schema.d.ts.map +1 -0
- package/dist/routes/onboarding/schema.js +22 -0
- package/dist/routes/onboarding/schema.js.map +1 -0
- package/dist/routes/pages/index.d.ts +26 -0
- package/dist/routes/pages/index.d.ts.map +1 -0
- package/dist/routes/pages/index.js +119 -0
- package/dist/routes/pages/index.js.map +1 -0
- package/dist/routes/pages/layout-schema.d.ts +19 -0
- package/dist/routes/pages/layout-schema.d.ts.map +1 -0
- package/dist/routes/pages/layout-schema.js +19 -0
- package/dist/routes/pages/layout-schema.js.map +1 -0
- package/dist/routes/pages/schema.d.ts +52 -0
- package/dist/routes/pages/schema.d.ts.map +1 -0
- package/dist/routes/pages/schema.js +35 -0
- package/dist/routes/pages/schema.js.map +1 -0
- package/dist/routes/roles/index.d.ts +17 -0
- package/dist/routes/roles/index.d.ts.map +1 -0
- package/dist/routes/roles/index.js +255 -0
- package/dist/routes/roles/index.js.map +1 -0
- package/dist/routes/roles/schema.d.ts +94 -0
- package/dist/routes/roles/schema.d.ts.map +1 -0
- package/dist/routes/roles/schema.js +57 -0
- package/dist/routes/roles/schema.js.map +1 -0
- package/dist/routes/scheduled-reports/index.d.ts +15 -0
- package/dist/routes/scheduled-reports/index.d.ts.map +1 -0
- package/dist/routes/scheduled-reports/index.js +195 -0
- package/dist/routes/scheduled-reports/index.js.map +1 -0
- package/dist/routes/scheduled-reports/schema.d.ts +154 -0
- package/dist/routes/scheduled-reports/schema.d.ts.map +1 -0
- package/dist/routes/scheduled-reports/schema.js +49 -0
- package/dist/routes/scheduled-reports/schema.js.map +1 -0
- package/dist/routes/schema/index.d.ts +24 -0
- package/dist/routes/schema/index.d.ts.map +1 -0
- package/dist/routes/schema/index.js +224 -0
- package/dist/routes/schema/index.js.map +1 -0
- package/dist/routes/schema/schema.d.ts +92 -0
- package/dist/routes/schema/schema.d.ts.map +1 -0
- package/dist/routes/schema/schema.js +64 -0
- package/dist/routes/schema/schema.js.map +1 -0
- package/dist/routes/schema-import/fallback-parser.d.ts +35 -0
- package/dist/routes/schema-import/fallback-parser.d.ts.map +1 -0
- package/dist/routes/schema-import/fallback-parser.js +349 -0
- package/dist/routes/schema-import/fallback-parser.js.map +1 -0
- package/dist/routes/schema-import/index.d.ts +43 -0
- package/dist/routes/schema-import/index.d.ts.map +1 -0
- package/dist/routes/schema-import/index.js +167 -0
- package/dist/routes/schema-import/index.js.map +1 -0
- package/dist/routes/schema-import/schema.d.ts +65 -0
- package/dist/routes/schema-import/schema.d.ts.map +1 -0
- package/dist/routes/schema-import/schema.js +40 -0
- package/dist/routes/schema-import/schema.js.map +1 -0
- package/dist/routes/search/index.d.ts +71 -0
- package/dist/routes/search/index.d.ts.map +1 -0
- package/dist/routes/search/index.js +361 -0
- package/dist/routes/search/index.js.map +1 -0
- package/dist/routes/search/schema.d.ts +125 -0
- package/dist/routes/search/schema.d.ts.map +1 -0
- package/dist/routes/search/schema.js +70 -0
- package/dist/routes/search/schema.js.map +1 -0
- package/dist/routes/settings/index.d.ts +24 -0
- package/dist/routes/settings/index.d.ts.map +1 -0
- package/dist/routes/settings/index.js +164 -0
- package/dist/routes/settings/index.js.map +1 -0
- package/dist/routes/settings/schema.d.ts +110 -0
- package/dist/routes/settings/schema.d.ts.map +1 -0
- package/dist/routes/settings/schema.js +71 -0
- package/dist/routes/settings/schema.js.map +1 -0
- package/dist/routes/setup/index.d.ts +29 -0
- package/dist/routes/setup/index.d.ts.map +1 -0
- package/dist/routes/setup/index.js +68 -0
- package/dist/routes/setup/index.js.map +1 -0
- package/dist/routes/setup/schema.d.ts +61 -0
- package/dist/routes/setup/schema.d.ts.map +1 -0
- package/dist/routes/setup/schema.js +47 -0
- package/dist/routes/setup/schema.js.map +1 -0
- package/dist/routes/system/handlers.d.ts +63 -0
- package/dist/routes/system/handlers.d.ts.map +1 -0
- package/dist/routes/system/handlers.js +121 -0
- package/dist/routes/system/handlers.js.map +1 -0
- package/dist/routes/system/index.d.ts +34 -0
- package/dist/routes/system/index.d.ts.map +1 -0
- package/dist/routes/system/index.js +18 -0
- package/dist/routes/system/index.js.map +1 -0
- package/dist/routes/system/schema.d.ts +93 -0
- package/dist/routes/system/schema.d.ts.map +1 -0
- package/dist/routes/system/schema.js +109 -0
- package/dist/routes/system/schema.js.map +1 -0
- package/dist/routes/views/index.d.ts +21 -0
- package/dist/routes/views/index.d.ts.map +1 -0
- package/dist/routes/views/index.js +155 -0
- package/dist/routes/views/index.js.map +1 -0
- package/dist/routes/views/schema.d.ts +127 -0
- package/dist/routes/views/schema.d.ts.map +1 -0
- package/dist/routes/views/schema.js +56 -0
- package/dist/routes/views/schema.js.map +1 -0
- package/dist/routes/widget-data/index.d.ts +29 -0
- package/dist/routes/widget-data/index.d.ts.map +1 -0
- package/dist/routes/widget-data/index.js +152 -0
- package/dist/routes/widget-data/index.js.map +1 -0
- package/dist/routes/widget-data/schema.d.ts +252 -0
- package/dist/routes/widget-data/schema.d.ts.map +1 -0
- package/dist/routes/widget-data/schema.js +44 -0
- package/dist/routes/widget-data/schema.js.map +1 -0
- package/dist/setup/service.d.ts +63 -0
- package/dist/setup/service.d.ts.map +1 -0
- package/dist/setup/service.js +103 -0
- package/dist/setup/service.js.map +1 -0
- package/dist/start.d.ts +12 -0
- package/dist/start.d.ts.map +1 -0
- package/dist/start.js +28 -0
- package/dist/start.js.map +1 -0
- package/dist/telemetry/payload.d.ts +66 -0
- package/dist/telemetry/payload.d.ts.map +1 -0
- package/dist/telemetry/payload.js +69 -0
- package/dist/telemetry/payload.js.map +1 -0
- package/dist/telemetry/service.d.ts +67 -0
- package/dist/telemetry/service.d.ts.map +1 -0
- package/dist/telemetry/service.js +103 -0
- package/dist/telemetry/service.js.map +1 -0
- package/dist/telemetry/update-check.d.ts +79 -0
- package/dist/telemetry/update-check.d.ts.map +1 -0
- package/dist/telemetry/update-check.js +103 -0
- package/dist/telemetry/update-check.js.map +1 -0
- package/dist/version.d.ts +14 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +21 -0
- package/dist/version.js.map +1 -0
- package/dist/widget-data/cache.d.ts +35 -0
- package/dist/widget-data/cache.d.ts.map +1 -0
- package/dist/widget-data/cache.js +67 -0
- package/dist/widget-data/cache.js.map +1 -0
- package/dist/widget-data/compiler.d.ts +107 -0
- package/dist/widget-data/compiler.d.ts.map +1 -0
- package/dist/widget-data/compiler.js +362 -0
- package/dist/widget-data/compiler.js.map +1 -0
- package/dist/widget-data/shapers.d.ts +75 -0
- package/dist/widget-data/shapers.d.ts.map +1 -0
- package/dist/widget-data/shapers.js +128 -0
- package/dist/widget-data/shapers.js.map +1 -0
- package/dist/widget-data/stream-publisher.d.ts +42 -0
- package/dist/widget-data/stream-publisher.d.ts.map +1 -0
- package/dist/widget-data/stream-publisher.js +34 -0
- package/dist/widget-data/stream-publisher.js.map +1 -0
- package/package.json +79 -0
- package/vocabulary/llm-allowlist.json +76 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-service.js","sourceRoot":"","sources":["../../src/llm/run-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The §4.2 statistics collector, backed by a live {@link ConnectionManager}.
|
|
3
|
+
*
|
|
4
|
+
* `createPromptService` takes `collectStats` as an INJECTED dependency and falls
|
|
5
|
+
* back to `NO_STATS` (an empty array) when nobody supplies one — which is the
|
|
6
|
+
* correct default for a service that must stay testable without a source
|
|
7
|
+
* database, and the wrong behavior for a front door that advertises
|
|
8
|
+
* `--sampling` in its `--help`. Both doors (the CLI's `generate-prompt` and the
|
|
9
|
+
* Studio's `POST /llm/runs`) inject THIS, so `--sampling` and the Studio toggle
|
|
10
|
+
* mean the same thing: the same aggregates, from the same query, through the
|
|
11
|
+
* same privacy rules.
|
|
12
|
+
*
|
|
13
|
+
* PRIVACY (06 §4.2, and why this file passes the classified model down rather
|
|
14
|
+
* than a bare column list): the adapter decides what is safe to look at, and it
|
|
15
|
+
* can only do that if it knows which columns the classifier flagged
|
|
16
|
+
* `secret`/`pii`. Sample-free is the default — with `sampling` null NO cell
|
|
17
|
+
* value leaves the database, only row counts, null fractions and distinct
|
|
18
|
+
* counts. Under sampling opt-in the adapter still refuses sampled values and
|
|
19
|
+
* min/max for PII-suspected or secret columns; that refusal is the adapter's,
|
|
20
|
+
* and this module's job is simply to hand it the flags it needs to make it.
|
|
21
|
+
*
|
|
22
|
+
* DEGRADATION. A table that cannot be profiled (dropped since introspection, a
|
|
23
|
+
* permission gap, a timeout) is SKIPPED, not fatal: the prompt is an
|
|
24
|
+
* enrichment aid, and losing aggregates for one table must not fail the run
|
|
25
|
+
* that would have enriched the other forty.
|
|
26
|
+
*/
|
|
27
|
+
import type { ConnectionManager } from '../connections/manager.js';
|
|
28
|
+
import type { CollectRunStats } from './prompt-service.js';
|
|
29
|
+
export interface ConnectionStatsCollectorDeps {
|
|
30
|
+
manager: ConnectionManager;
|
|
31
|
+
/** Cap on tables profiled per run — a 500-table schema must not stall a boot. */
|
|
32
|
+
maxTables?: number | undefined;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* §4.2 aggregates for every non-system table in the run's model, collected over
|
|
36
|
+
* the connection's DATA role (the introspect role may not read rows at all).
|
|
37
|
+
*/
|
|
38
|
+
export declare const DEFAULT_MAX_STATS_TABLES = 200;
|
|
39
|
+
export declare function createConnectionStatsCollector(deps: ConnectionStatsCollectorDeps): CollectRunStats;
|
|
40
|
+
//# sourceMappingURL=stats-collector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats-collector.d.ts","sourceRoot":"","sources":["../../src/llm/stats-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAiB3D,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,4BAA4B,GACjC,eAAe,CA6BjB"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The §4.2 statistics collector, backed by a live {@link ConnectionManager}.
|
|
3
|
+
*
|
|
4
|
+
* `createPromptService` takes `collectStats` as an INJECTED dependency and falls
|
|
5
|
+
* back to `NO_STATS` (an empty array) when nobody supplies one — which is the
|
|
6
|
+
* correct default for a service that must stay testable without a source
|
|
7
|
+
* database, and the wrong behavior for a front door that advertises
|
|
8
|
+
* `--sampling` in its `--help`. Both doors (the CLI's `generate-prompt` and the
|
|
9
|
+
* Studio's `POST /llm/runs`) inject THIS, so `--sampling` and the Studio toggle
|
|
10
|
+
* mean the same thing: the same aggregates, from the same query, through the
|
|
11
|
+
* same privacy rules.
|
|
12
|
+
*
|
|
13
|
+
* PRIVACY (06 §4.2, and why this file passes the classified model down rather
|
|
14
|
+
* than a bare column list): the adapter decides what is safe to look at, and it
|
|
15
|
+
* can only do that if it knows which columns the classifier flagged
|
|
16
|
+
* `secret`/`pii`. Sample-free is the default — with `sampling` null NO cell
|
|
17
|
+
* value leaves the database, only row counts, null fractions and distinct
|
|
18
|
+
* counts. Under sampling opt-in the adapter still refuses sampled values and
|
|
19
|
+
* min/max for PII-suspected or secret columns; that refusal is the adapter's,
|
|
20
|
+
* and this module's job is simply to hand it the flags it needs to make it.
|
|
21
|
+
*
|
|
22
|
+
* DEGRADATION. A table that cannot be profiled (dropped since introspection, a
|
|
23
|
+
* permission gap, a timeout) is SKIPPED, not fatal: the prompt is an
|
|
24
|
+
* enrichment aid, and losing aggregates for one table must not fail the run
|
|
25
|
+
* that would have enriched the other forty.
|
|
26
|
+
*/
|
|
27
|
+
/** Tables Adminium owns are never profiled — they are not the user's schema. */
|
|
28
|
+
function isProfilable(table) {
|
|
29
|
+
return !table.system;
|
|
30
|
+
}
|
|
31
|
+
/** The classified column set, in the shape the adapter's privacy rules read. */
|
|
32
|
+
function statsColumns(table) {
|
|
33
|
+
return table.columns.map((column) => ({
|
|
34
|
+
name: column.name,
|
|
35
|
+
logicalType: column.logicalType,
|
|
36
|
+
piiSuspected: column.semantics?.flags.pii != null,
|
|
37
|
+
secret: column.semantics?.flags.secret === true,
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* §4.2 aggregates for every non-system table in the run's model, collected over
|
|
42
|
+
* the connection's DATA role (the introspect role may not read rows at all).
|
|
43
|
+
*/
|
|
44
|
+
export const DEFAULT_MAX_STATS_TABLES = 200;
|
|
45
|
+
export function createConnectionStatsCollector(deps) {
|
|
46
|
+
const maxTables = deps.maxTables ?? DEFAULT_MAX_STATS_TABLES;
|
|
47
|
+
return async ({ connectionId, model, sampling }) => {
|
|
48
|
+
const tables = model.tables.filter(isProfilable).slice(0, maxTables);
|
|
49
|
+
if (tables.length === 0)
|
|
50
|
+
return [];
|
|
51
|
+
const adapter = await deps.manager.dataAdapter(connectionId);
|
|
52
|
+
try {
|
|
53
|
+
const results = [];
|
|
54
|
+
for (const table of tables) {
|
|
55
|
+
const opts = {
|
|
56
|
+
columns: statsColumns(table),
|
|
57
|
+
sampling: sampling ?? null,
|
|
58
|
+
};
|
|
59
|
+
try {
|
|
60
|
+
results.push(await adapter.collectTableStats({ schema: table.schema, name: table.name }, opts));
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// See the module header: one unprofilable table is not a failed run.
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return results;
|
|
68
|
+
}
|
|
69
|
+
finally {
|
|
70
|
+
await adapter.close().catch(() => undefined);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=stats-collector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats-collector.js","sourceRoot":"","sources":["../../src/llm/stats-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAQH,gFAAgF;AAChF,SAAS,YAAY,CAAC,KAAiB;IACrC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;AACvB,CAAC;AAED,gFAAgF;AAChF,SAAS,YAAY,CAAC,KAAiB;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,IAAI,IAAI;QACjD,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,KAAK,IAAI;KAChD,CAAC,CAAC,CAAC;AACN,CAAC;AAQD;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAE5C,MAAM,UAAU,8BAA8B,CAC5C,IAAkC;IAElC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,wBAAwB,CAAC;IAE7D,OAAO,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAmC,EAAE;QAClF,MAAM,MAAM,GAAI,KAAuB,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACxF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,CAAC;YACH,MAAM,OAAO,GAAkB,EAAE,CAAC;YAClC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAwB;oBAChC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC;oBAC5B,QAAQ,EAAE,QAAQ,IAAI,IAAI;iBAC3B,CAAC;gBACF,IAAI,CAAC;oBACH,OAAO,CAAC,IAAI,CACV,MAAM,OAAO,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAClF,CAAC;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBACP,qEAAqE;oBACrE,SAAS;gBACX,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* URL scrubbing for the request log (08-server-api.md §1.3 redaction, and
|
|
3
|
+
* 11-electron.md §2.2 step 8 for why it had to exist).
|
|
4
|
+
*
|
|
5
|
+
* ─── The leak this closes ────────────────────────────────────────────────────
|
|
6
|
+
*
|
|
7
|
+
* pino's `redact` works on OBJECT PATHS: `*.password` censors a field. It cannot
|
|
8
|
+
* reach INSIDE a string, and `req.url` is a string. So a credential that travels
|
|
9
|
+
* in a query string is invisible to every redaction rule this server has —
|
|
10
|
+
* `redact: ['req.url']` would drop the whole URL, which is most of the value of
|
|
11
|
+
* having a request log at all.
|
|
12
|
+
*
|
|
13
|
+
* §2.2 step 8 navigates the desktop window to
|
|
14
|
+
* `http://127.0.0.1:<port>/?bootToken=<32 random bytes>`. That is a GET the
|
|
15
|
+
* server answers with `index.html` and logs like any other — and the desktop
|
|
16
|
+
* shell pipes those logs to a ROTATING FILE ON DISK (§9), where the token would
|
|
17
|
+
* then sit, in cleartext, long after the boot that minted it. The SPA stripping
|
|
18
|
+
* the token from `window.location` (§5) fixes the browser's history; it does
|
|
19
|
+
* nothing about the request that already happened.
|
|
20
|
+
*
|
|
21
|
+
* So: scrub the value, keep the URL. `/?bootToken=[REDACTED]` still tells you
|
|
22
|
+
* which request this was, that a token was presented, and nothing usable.
|
|
23
|
+
*
|
|
24
|
+
* ─── Why an allow-list of names, not a pattern ───────────────────────────────
|
|
25
|
+
*
|
|
26
|
+
* Guessing at "things that look secret" in arbitrary query strings would both
|
|
27
|
+
* miss (a token named `t`) and over-redact (`?filter=token`). The named set is
|
|
28
|
+
* small, and every entry is a parameter THIS product defines and can therefore
|
|
29
|
+
* be sure about.
|
|
30
|
+
*/
|
|
31
|
+
/** The pino censor string used everywhere else (`app.ts` `REDACT_PATHS`). */
|
|
32
|
+
export declare const REDACTED = "[REDACTED]";
|
|
33
|
+
/**
|
|
34
|
+
* Query parameters whose VALUE is a credential. Compared case-insensitively —
|
|
35
|
+
* `bootToken` and `boottoken` are the same parameter to a careless caller, and a
|
|
36
|
+
* scrubber that only catches the spelling we happen to emit is a scrubber that
|
|
37
|
+
* fails exactly when someone gets it wrong.
|
|
38
|
+
*/
|
|
39
|
+
export declare const SENSITIVE_QUERY_PARAMS: readonly string[];
|
|
40
|
+
/**
|
|
41
|
+
* Replace the value of every sensitive query parameter in `url` with
|
|
42
|
+
* {@link REDACTED}, leaving the path, the parameter order, and every other
|
|
43
|
+
* parameter byte-for-byte intact.
|
|
44
|
+
*
|
|
45
|
+
* Takes and returns the RAW origin-relative string, exactly as `req.url` carries
|
|
46
|
+
* it (`/p/x?a=1`), and rewrites it by hand rather than through `new URL(...)` +
|
|
47
|
+
* `searchParams`. That is not squeamishness about the parser — it is that the
|
|
48
|
+
* round trip does not preserve its input: `searchParams` re-encodes on
|
|
49
|
+
* serialization (`[REDACTED]` comes back out as `%5BREDACTED%5D`, so the censor
|
|
50
|
+
* would not even be greppable), `+` becomes `%20`, and the path gets normalized.
|
|
51
|
+
* A request log whose URLs silently differ from the URLs that were requested is
|
|
52
|
+
* worse than no scrubbing, because you would not know to distrust it.
|
|
53
|
+
*
|
|
54
|
+
* Fast path: no `?`, nothing to do — which is every request in the product but
|
|
55
|
+
* the handful that carry a query.
|
|
56
|
+
*/
|
|
57
|
+
export declare function scrubUrlForLog(url: string): string;
|
|
58
|
+
//# sourceMappingURL=log-scrub.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-scrub.d.ts","sourceRoot":"","sources":["../src/log-scrub.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,6EAA6E;AAC7E,eAAO,MAAM,QAAQ,eAAe,CAAC;AAErC;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAQnD,CAAC;AAgBF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAuBlD"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* URL scrubbing for the request log (08-server-api.md §1.3 redaction, and
|
|
3
|
+
* 11-electron.md §2.2 step 8 for why it had to exist).
|
|
4
|
+
*
|
|
5
|
+
* ─── The leak this closes ────────────────────────────────────────────────────
|
|
6
|
+
*
|
|
7
|
+
* pino's `redact` works on OBJECT PATHS: `*.password` censors a field. It cannot
|
|
8
|
+
* reach INSIDE a string, and `req.url` is a string. So a credential that travels
|
|
9
|
+
* in a query string is invisible to every redaction rule this server has —
|
|
10
|
+
* `redact: ['req.url']` would drop the whole URL, which is most of the value of
|
|
11
|
+
* having a request log at all.
|
|
12
|
+
*
|
|
13
|
+
* §2.2 step 8 navigates the desktop window to
|
|
14
|
+
* `http://127.0.0.1:<port>/?bootToken=<32 random bytes>`. That is a GET the
|
|
15
|
+
* server answers with `index.html` and logs like any other — and the desktop
|
|
16
|
+
* shell pipes those logs to a ROTATING FILE ON DISK (§9), where the token would
|
|
17
|
+
* then sit, in cleartext, long after the boot that minted it. The SPA stripping
|
|
18
|
+
* the token from `window.location` (§5) fixes the browser's history; it does
|
|
19
|
+
* nothing about the request that already happened.
|
|
20
|
+
*
|
|
21
|
+
* So: scrub the value, keep the URL. `/?bootToken=[REDACTED]` still tells you
|
|
22
|
+
* which request this was, that a token was presented, and nothing usable.
|
|
23
|
+
*
|
|
24
|
+
* ─── Why an allow-list of names, not a pattern ───────────────────────────────
|
|
25
|
+
*
|
|
26
|
+
* Guessing at "things that look secret" in arbitrary query strings would both
|
|
27
|
+
* miss (a token named `t`) and over-redact (`?filter=token`). The named set is
|
|
28
|
+
* small, and every entry is a parameter THIS product defines and can therefore
|
|
29
|
+
* be sure about.
|
|
30
|
+
*/
|
|
31
|
+
/** The pino censor string used everywhere else (`app.ts` `REDACT_PATHS`). */
|
|
32
|
+
export const REDACTED = '[REDACTED]';
|
|
33
|
+
/**
|
|
34
|
+
* Query parameters whose VALUE is a credential. Compared case-insensitively —
|
|
35
|
+
* `bootToken` and `boottoken` are the same parameter to a careless caller, and a
|
|
36
|
+
* scrubber that only catches the spelling we happen to emit is a scrubber that
|
|
37
|
+
* fails exactly when someone gets it wrong.
|
|
38
|
+
*/
|
|
39
|
+
export const SENSITIVE_QUERY_PARAMS = [
|
|
40
|
+
// 11-electron.md §2.2 step 8 / §5 — the desktop boot token.
|
|
41
|
+
'bootToken',
|
|
42
|
+
// 08-server-api.md §2.1 — password-reset and 2FA-challenge tokens. They ride
|
|
43
|
+
// in bodies today; the day one lands in a link's query, this is already here.
|
|
44
|
+
'token',
|
|
45
|
+
'challengeToken',
|
|
46
|
+
'apiKey',
|
|
47
|
+
];
|
|
48
|
+
const SENSITIVE_LOWER = new Set(SENSITIVE_QUERY_PARAMS.map((name) => name.toLowerCase()));
|
|
49
|
+
/** `%2A` → `*`, tolerating the malformed escapes a hostile query can contain. */
|
|
50
|
+
function decodeParamName(raw) {
|
|
51
|
+
try {
|
|
52
|
+
return decodeURIComponent(raw.replaceAll('+', ' '));
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// `decodeURIComponent('%')` throws. A name we cannot decode is a name we
|
|
56
|
+
// cannot match against the list, so compare the raw bytes instead — the
|
|
57
|
+
// spellings we care about have no escapes anyway.
|
|
58
|
+
return raw;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Replace the value of every sensitive query parameter in `url` with
|
|
63
|
+
* {@link REDACTED}, leaving the path, the parameter order, and every other
|
|
64
|
+
* parameter byte-for-byte intact.
|
|
65
|
+
*
|
|
66
|
+
* Takes and returns the RAW origin-relative string, exactly as `req.url` carries
|
|
67
|
+
* it (`/p/x?a=1`), and rewrites it by hand rather than through `new URL(...)` +
|
|
68
|
+
* `searchParams`. That is not squeamishness about the parser — it is that the
|
|
69
|
+
* round trip does not preserve its input: `searchParams` re-encodes on
|
|
70
|
+
* serialization (`[REDACTED]` comes back out as `%5BREDACTED%5D`, so the censor
|
|
71
|
+
* would not even be greppable), `+` becomes `%20`, and the path gets normalized.
|
|
72
|
+
* A request log whose URLs silently differ from the URLs that were requested is
|
|
73
|
+
* worse than no scrubbing, because you would not know to distrust it.
|
|
74
|
+
*
|
|
75
|
+
* Fast path: no `?`, nothing to do — which is every request in the product but
|
|
76
|
+
* the handful that carry a query.
|
|
77
|
+
*/
|
|
78
|
+
export function scrubUrlForLog(url) {
|
|
79
|
+
const mark = url.indexOf('?');
|
|
80
|
+
if (mark === -1)
|
|
81
|
+
return url;
|
|
82
|
+
const path = url.slice(0, mark);
|
|
83
|
+
const query = url.slice(mark + 1);
|
|
84
|
+
let touched = false;
|
|
85
|
+
const scrubbed = query
|
|
86
|
+
.split('&')
|
|
87
|
+
.map((pair) => {
|
|
88
|
+
if (pair === '')
|
|
89
|
+
return pair;
|
|
90
|
+
const eq = pair.indexOf('=');
|
|
91
|
+
// `?bootToken` with no `=` carries no value to leak; leave it alone.
|
|
92
|
+
if (eq === -1)
|
|
93
|
+
return pair;
|
|
94
|
+
const rawName = pair.slice(0, eq);
|
|
95
|
+
if (!SENSITIVE_LOWER.has(decodeParamName(rawName).toLowerCase()))
|
|
96
|
+
return pair;
|
|
97
|
+
touched = true;
|
|
98
|
+
return `${rawName}=${REDACTED}`;
|
|
99
|
+
})
|
|
100
|
+
.join('&');
|
|
101
|
+
return touched ? `${path}?${scrubbed}` : url;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=log-scrub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-scrub.js","sourceRoot":"","sources":["../src/log-scrub.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC;AAErC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACvD,4DAA4D;IAC5D,WAAW;IACX,6EAA6E;IAC7E,8EAA8E;IAC9E,OAAO;IACP,gBAAgB;IAChB,QAAQ;CACT,CAAC;AAEF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAE1F,iFAAiF;AACjF,SAAS,eAAe,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;QACzE,wEAAwE;QACxE,kDAAkD;QAClD,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,IAAI,KAAK,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IAE5B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAClC,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,MAAM,QAAQ,GAAG,KAAK;SACnB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,qEAAqE;QACrE,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9E,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,GAAG,OAAO,IAAI,QAAQ,EAAE,CAAC;IAClC,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Meta-store resolution + connection (01-architecture.md §3.1, §7.1, §7.2).
|
|
3
|
+
*
|
|
4
|
+
* The single place that answers "where does the meta store live, and how do I
|
|
5
|
+
* open it?" — shared by every front door (`adminium start`, `adminium migrate`,
|
|
6
|
+
* the init wizard, and, later, Docker/Electron wrappers), so none of them can
|
|
7
|
+
* disagree about precedence.
|
|
8
|
+
*
|
|
9
|
+
* Precedence (§7.2 "Environment always wins over this file"):
|
|
10
|
+
* 1. `ADMINIUM_META_URL` → source `env`
|
|
11
|
+
* 2. `<dataDir>/adminium.json` `metaUrl` → source `bootstrap`
|
|
12
|
+
* (AES-256-GCM token, decrypted with the ADMINIUM_SECRET-derived key)
|
|
13
|
+
* 3. embedded SQLite `<dataDir>/meta.db` → source `embedded`
|
|
14
|
+
* — the §3.1 OD-1 fallback for a bare non-interactive `adminium start`;
|
|
15
|
+
* callers surface the documented startup warning.
|
|
16
|
+
*
|
|
17
|
+
* Drivers are imported dynamically and only for the dialect actually in use: a
|
|
18
|
+
* SQLite install must not need `pg` on disk, and a missing driver has to say
|
|
19
|
+
* which package to install rather than throw a bare MODULE_NOT_FOUND.
|
|
20
|
+
*/
|
|
21
|
+
import { type MetaDb } from '@adminium/meta';
|
|
22
|
+
/**
|
|
23
|
+
* HKDF purpose scope for the bootstrap `metaUrl` token. Distinct from
|
|
24
|
+
* `adminium:dsn:v1` (source DSNs) and the LLM key salt so the three ciphertexts
|
|
25
|
+
* can never be decrypted with each other's key (01 §7.1 purpose-scoping).
|
|
26
|
+
*/
|
|
27
|
+
export declare const META_URL_KEY_SALT = "adminium:meta-url:v1";
|
|
28
|
+
export interface MetaUrlCrypto {
|
|
29
|
+
encrypt(plaintext: string): string;
|
|
30
|
+
decrypt(token: string): string;
|
|
31
|
+
}
|
|
32
|
+
/** The AES-256-GCM closures the bootstrap `metaUrl` is stored under. */
|
|
33
|
+
export declare function metaUrlCryptoFromSecret(masterSecret: string): MetaUrlCrypto;
|
|
34
|
+
/** Meta dialects the v1 self-host build supports (BRIEF §3). */
|
|
35
|
+
export type MetaEngine = 'postgres' | 'mysql' | 'sqlite';
|
|
36
|
+
/** Which layer supplied the meta DSN — drives the §3.1 OD-1 startup warning. */
|
|
37
|
+
export type MetaUrlSource = 'env' | 'bootstrap' | 'embedded';
|
|
38
|
+
export interface ResolvedMetaUrl {
|
|
39
|
+
/** The DSN to connect with (`sqlite:<path>` for the embedded fallback). */
|
|
40
|
+
url: string;
|
|
41
|
+
engine: MetaEngine;
|
|
42
|
+
source: MetaUrlSource;
|
|
43
|
+
}
|
|
44
|
+
export declare class MetaUrlError extends Error {
|
|
45
|
+
readonly name = "MetaUrlError";
|
|
46
|
+
}
|
|
47
|
+
export declare class MetaDriverMissingError extends Error {
|
|
48
|
+
readonly engine: MetaEngine;
|
|
49
|
+
readonly pkg: string;
|
|
50
|
+
readonly name = "MetaDriverMissingError";
|
|
51
|
+
constructor(engine: MetaEngine, pkg: string, cause?: unknown);
|
|
52
|
+
}
|
|
53
|
+
/** `sqlite:./data/meta.db`, `sqlite::memory:`, `file:./meta.db` → the file path. */
|
|
54
|
+
export declare function sqlitePathFromUrl(url: string): string;
|
|
55
|
+
/**
|
|
56
|
+
* Classify a meta DSN by scheme. Unknown/unsupported schemes fail fast with the
|
|
57
|
+
* three supported forms spelled out — the CLI prints this verbatim.
|
|
58
|
+
*/
|
|
59
|
+
export declare function metaEngineFromUrl(url: string): MetaEngine;
|
|
60
|
+
export interface ResolveMetaUrlOptions {
|
|
61
|
+
/** `ADMINIUM_META_URL`, when set. */
|
|
62
|
+
metaUrl?: string | undefined;
|
|
63
|
+
/** `ADMINIUM_DATA_DIR` — hosts the bootstrap file and the embedded meta.db. */
|
|
64
|
+
dataDir: string;
|
|
65
|
+
/** `ADMINIUM_SECRET` — derives the key that decrypts the bootstrap `metaUrl`. */
|
|
66
|
+
secret: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Apply the §7.2 precedence and return the DSN to connect with. Never connects
|
|
70
|
+
* and never writes — the wizard decides whether to persist a chosen placement.
|
|
71
|
+
*/
|
|
72
|
+
export declare function resolveMetaUrl(opts: ResolveMetaUrlOptions): Promise<ResolvedMetaUrl>;
|
|
73
|
+
/** The §3.1 OD-1 warning callers print when the embedded fallback is in play. */
|
|
74
|
+
export declare function embeddedMetaWarning(url: string): string;
|
|
75
|
+
export interface MetaStoreHandle {
|
|
76
|
+
meta: MetaDb;
|
|
77
|
+
/** The DSN this handle was opened with (fed to ConnectionManager `metaDsn`). */
|
|
78
|
+
url: string;
|
|
79
|
+
engine: MetaEngine;
|
|
80
|
+
source: MetaUrlSource;
|
|
81
|
+
/** Release the pool/handle. Safe to call twice. */
|
|
82
|
+
close(): Promise<void>;
|
|
83
|
+
}
|
|
84
|
+
export interface ConnectMetaStoreOptions {
|
|
85
|
+
/** Postgres/MySQL pool size; the single-process topology stays small (01 §4.1). */
|
|
86
|
+
poolSize?: number | undefined;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Open the meta store named by `resolved` and run {@link initMetaDb} (the SQLite
|
|
90
|
+
* FK pragma). Does NOT migrate — `adminium migrate` and the boot sequence decide
|
|
91
|
+
* when the ledger runs.
|
|
92
|
+
*/
|
|
93
|
+
export declare function connectMetaStore(resolved: ResolvedMetaUrl, opts?: ConnectMetaStoreOptions): Promise<MetaStoreHandle>;
|
|
94
|
+
/** Resolve + connect in one step — what every front door actually calls. */
|
|
95
|
+
export declare function openMetaStore(opts: ResolveMetaUrlOptions & ConnectMetaStoreOptions): Promise<MetaStoreHandle>;
|
|
96
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/meta/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,OAAO,EAML,KAAK,MAAM,EACZ,MAAM,gBAAgB,CAAC;AAKxB;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,yBAAyB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC;AAED,wEAAwE;AACxE,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,CAM3E;AAED,gEAAgE;AAChE,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEzD,gFAAgF;AAChF,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,WAAW,GAAG,UAAU,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC9B,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,qBAAa,YAAa,SAAQ,KAAK;IACrC,SAAkB,IAAI,kBAAkB;CACzC;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAG7C,QAAQ,CAAC,MAAM,EAAE,UAAU;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM;IAHtB,SAAkB,IAAI,4BAA4B;gBAEvC,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,OAAO;CAQlB;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAkBzD;AAED,MAAM,WAAW,qBAAqB;IACpC,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CAiB1F;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB,mDAAmD;IACnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAoCD,MAAM,WAAW,uBAAuB;IACtC,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,eAAe,EACzB,IAAI,GAAE,uBAA4B,GACjC,OAAO,CAAC,eAAe,CAAC,CA6C1B;AAED,4EAA4E;AAC5E,wBAAsB,aAAa,CACjC,IAAI,EAAE,qBAAqB,GAAG,uBAAuB,GACpD,OAAO,CAAC,eAAe,CAAC,CAG1B"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Meta-store resolution + connection (01-architecture.md §3.1, §7.1, §7.2).
|
|
3
|
+
*
|
|
4
|
+
* The single place that answers "where does the meta store live, and how do I
|
|
5
|
+
* open it?" — shared by every front door (`adminium start`, `adminium migrate`,
|
|
6
|
+
* the init wizard, and, later, Docker/Electron wrappers), so none of them can
|
|
7
|
+
* disagree about precedence.
|
|
8
|
+
*
|
|
9
|
+
* Precedence (§7.2 "Environment always wins over this file"):
|
|
10
|
+
* 1. `ADMINIUM_META_URL` → source `env`
|
|
11
|
+
* 2. `<dataDir>/adminium.json` `metaUrl` → source `bootstrap`
|
|
12
|
+
* (AES-256-GCM token, decrypted with the ADMINIUM_SECRET-derived key)
|
|
13
|
+
* 3. embedded SQLite `<dataDir>/meta.db` → source `embedded`
|
|
14
|
+
* — the §3.1 OD-1 fallback for a bare non-interactive `adminium start`;
|
|
15
|
+
* callers surface the documented startup warning.
|
|
16
|
+
*
|
|
17
|
+
* Drivers are imported dynamically and only for the dialect actually in use: a
|
|
18
|
+
* SQLite install must not need `pg` on disk, and a missing driver has to say
|
|
19
|
+
* which package to install rather than throw a bare MODULE_NOT_FOUND.
|
|
20
|
+
*/
|
|
21
|
+
import { mkdirSync } from 'node:fs';
|
|
22
|
+
import { dirname, join, resolve } from 'node:path';
|
|
23
|
+
import { createMysqlMetaDb, createPostgresMetaDb, createSqliteMetaDb, destroyMetaDb, initMetaDb, } from '@adminium/meta';
|
|
24
|
+
import { readBootstrap } from '../config/bootstrap.js';
|
|
25
|
+
import { decryptSecret, deriveKey, encryptSecret } from '../config/secrets.js';
|
|
26
|
+
/**
|
|
27
|
+
* HKDF purpose scope for the bootstrap `metaUrl` token. Distinct from
|
|
28
|
+
* `adminium:dsn:v1` (source DSNs) and the LLM key salt so the three ciphertexts
|
|
29
|
+
* can never be decrypted with each other's key (01 §7.1 purpose-scoping).
|
|
30
|
+
*/
|
|
31
|
+
export const META_URL_KEY_SALT = 'adminium:meta-url:v1';
|
|
32
|
+
/** The AES-256-GCM closures the bootstrap `metaUrl` is stored under. */
|
|
33
|
+
export function metaUrlCryptoFromSecret(masterSecret) {
|
|
34
|
+
const key = deriveKey(masterSecret, META_URL_KEY_SALT);
|
|
35
|
+
return {
|
|
36
|
+
encrypt: (plaintext) => encryptSecret(plaintext, key),
|
|
37
|
+
decrypt: (token) => decryptSecret(token, key),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export class MetaUrlError extends Error {
|
|
41
|
+
name = 'MetaUrlError';
|
|
42
|
+
}
|
|
43
|
+
export class MetaDriverMissingError extends Error {
|
|
44
|
+
engine;
|
|
45
|
+
pkg;
|
|
46
|
+
name = 'MetaDriverMissingError';
|
|
47
|
+
constructor(engine, pkg, cause) {
|
|
48
|
+
super(`The ${engine} meta store needs the "${pkg}" package, which is not installed. ` +
|
|
49
|
+
`Install it (\`npm install ${pkg}\`) or point ADMINIUM_META_URL at a different engine.`, cause === undefined ? undefined : { cause });
|
|
50
|
+
this.engine = engine;
|
|
51
|
+
this.pkg = pkg;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/** `sqlite:./data/meta.db`, `sqlite::memory:`, `file:./meta.db` → the file path. */
|
|
55
|
+
export function sqlitePathFromUrl(url) {
|
|
56
|
+
const withoutScheme = url.replace(/^(sqlite3?|file):(\/\/)?/, '');
|
|
57
|
+
return withoutScheme === '' ? ':memory:' : withoutScheme;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Classify a meta DSN by scheme. Unknown/unsupported schemes fail fast with the
|
|
61
|
+
* three supported forms spelled out — the CLI prints this verbatim.
|
|
62
|
+
*/
|
|
63
|
+
export function metaEngineFromUrl(url) {
|
|
64
|
+
const scheme = /^([a-z][a-z0-9+.-]*):/i.exec(url)?.[1]?.toLowerCase();
|
|
65
|
+
switch (scheme) {
|
|
66
|
+
case 'postgres':
|
|
67
|
+
case 'postgresql':
|
|
68
|
+
return 'postgres';
|
|
69
|
+
case 'mysql':
|
|
70
|
+
case 'mariadb':
|
|
71
|
+
return 'mysql';
|
|
72
|
+
case 'sqlite':
|
|
73
|
+
case 'sqlite3':
|
|
74
|
+
case 'file':
|
|
75
|
+
return 'sqlite';
|
|
76
|
+
default:
|
|
77
|
+
throw new MetaUrlError(`Unsupported meta-store DSN "${url}". Use postgres://…, mysql://…, or sqlite:<path>.`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Apply the §7.2 precedence and return the DSN to connect with. Never connects
|
|
82
|
+
* and never writes — the wizard decides whether to persist a chosen placement.
|
|
83
|
+
*/
|
|
84
|
+
export async function resolveMetaUrl(opts) {
|
|
85
|
+
if (opts.metaUrl !== undefined && opts.metaUrl !== '') {
|
|
86
|
+
return { url: opts.metaUrl, engine: metaEngineFromUrl(opts.metaUrl), source: 'env' };
|
|
87
|
+
}
|
|
88
|
+
const bootstrap = await readBootstrap(opts.dataDir);
|
|
89
|
+
if (bootstrap?.metaUrl !== undefined) {
|
|
90
|
+
const url = metaUrlCryptoFromSecret(opts.secret).decrypt(bootstrap.metaUrl);
|
|
91
|
+
return { url, engine: metaEngineFromUrl(url), source: 'bootstrap' };
|
|
92
|
+
}
|
|
93
|
+
// §3.1 OD-1: nothing configured → embedded SQLite under the data dir.
|
|
94
|
+
return {
|
|
95
|
+
url: `sqlite:${join(resolve(opts.dataDir), 'meta.db')}`,
|
|
96
|
+
engine: 'sqlite',
|
|
97
|
+
source: 'embedded',
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/** The §3.1 OD-1 warning callers print when the embedded fallback is in play. */
|
|
101
|
+
export function embeddedMetaWarning(url) {
|
|
102
|
+
return (`Using embedded SQLite meta store at ${sqlitePathFromUrl(url)} — ` +
|
|
103
|
+
'set ADMINIUM_META_URL for production.');
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Dynamic driver import. The specifier is computed so the module graph carries
|
|
107
|
+
* no static edge to a driver an install may not have (01 §2.3 keeps `@adminium/meta`
|
|
108
|
+
* driver-free; the composing layer — this one — injects them).
|
|
109
|
+
*/
|
|
110
|
+
async function importDriver(pkg, engine) {
|
|
111
|
+
const specifier = pkg;
|
|
112
|
+
try {
|
|
113
|
+
return (await import(specifier));
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
throw new MetaDriverMissingError(engine, pkg, error);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
function defaultExport(mod) {
|
|
120
|
+
return (mod.default ?? mod);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Pick a named export off a CJS driver, tolerating both the namespace and the
|
|
124
|
+
* `default` interop shapes (`pg` and `mysql2` differ under NodeNext ESM).
|
|
125
|
+
* Returns `never`-typed factories: the drivers are untyped here on purpose —
|
|
126
|
+
* `@adminium/meta` owns the real Kysely config contract.
|
|
127
|
+
*/
|
|
128
|
+
function driverExport(mod, name, engine, pkg) {
|
|
129
|
+
const direct = mod[name];
|
|
130
|
+
const viaDefault = mod.default?.[name];
|
|
131
|
+
const found = direct ?? viaDefault;
|
|
132
|
+
if (typeof found !== 'function') {
|
|
133
|
+
throw new MetaDriverMissingError(engine, pkg);
|
|
134
|
+
}
|
|
135
|
+
return found;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Open the meta store named by `resolved` and run {@link initMetaDb} (the SQLite
|
|
139
|
+
* FK pragma). Does NOT migrate — `adminium migrate` and the boot sequence decide
|
|
140
|
+
* when the ledger runs.
|
|
141
|
+
*/
|
|
142
|
+
export async function connectMetaStore(resolved, opts = {}) {
|
|
143
|
+
const poolSize = opts.poolSize ?? 10;
|
|
144
|
+
let meta;
|
|
145
|
+
switch (resolved.engine) {
|
|
146
|
+
case 'postgres': {
|
|
147
|
+
const mod = await importDriver('pg', 'postgres');
|
|
148
|
+
const Pool = driverExport(mod, 'Pool', 'postgres', 'pg');
|
|
149
|
+
meta = createPostgresMetaDb({
|
|
150
|
+
pool: new Pool({ connectionString: resolved.url, max: poolSize }),
|
|
151
|
+
});
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
case 'mysql': {
|
|
155
|
+
const mod = await importDriver('mysql2', 'mysql');
|
|
156
|
+
const createPool = driverExport(mod, 'createPool', 'mysql', 'mysql2');
|
|
157
|
+
meta = createMysqlMetaDb({ pool: createPool({ uri: resolved.url, connectionLimit: poolSize }) });
|
|
158
|
+
break;
|
|
159
|
+
}
|
|
160
|
+
case 'sqlite': {
|
|
161
|
+
const mod = await importDriver('better-sqlite3', 'sqlite');
|
|
162
|
+
const Database = defaultExport(mod);
|
|
163
|
+
const file = sqlitePathFromUrl(resolved.url);
|
|
164
|
+
// A first `adminium start` points at <dataDir>/meta.db before <dataDir>
|
|
165
|
+
// exists; better-sqlite3 will not create the parent directory itself.
|
|
166
|
+
if (file !== ':memory:')
|
|
167
|
+
mkdirSync(dirname(resolve(file)), { recursive: true });
|
|
168
|
+
meta = createSqliteMetaDb({ database: new Database(file) });
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
await initMetaDb(meta);
|
|
173
|
+
let closed = false;
|
|
174
|
+
return {
|
|
175
|
+
meta,
|
|
176
|
+
url: resolved.url,
|
|
177
|
+
engine: resolved.engine,
|
|
178
|
+
source: resolved.source,
|
|
179
|
+
async close() {
|
|
180
|
+
if (closed)
|
|
181
|
+
return;
|
|
182
|
+
closed = true;
|
|
183
|
+
await destroyMetaDb(meta);
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
/** Resolve + connect in one step — what every front door actually calls. */
|
|
188
|
+
export async function openMetaStore(opts) {
|
|
189
|
+
const resolved = await resolveMetaUrl(opts);
|
|
190
|
+
return connectMetaStore(resolved, { poolSize: opts.poolSize });
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/meta/store.ts"],"names":[],"mappings":"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"}
|