@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,68 @@
|
|
|
1
|
+
import { AppError, ConflictError, ValidationFailedError } from '../../errors.js';
|
|
2
|
+
import { createSession, setSessionCookie } from '../../auth/sessions.js';
|
|
3
|
+
import { SetupClosedError, WeakPasswordError } from '../../setup/service.js';
|
|
4
|
+
import { toUserView } from '../auth/handlers.js';
|
|
5
|
+
import { RATE_LIMIT_BUCKETS } from '../auth/index.js';
|
|
6
|
+
import { setupStateReply, setupSuperAdminBody, setupSuperAdminReply, } from './schema.js';
|
|
7
|
+
export function setupRoutes(deps) {
|
|
8
|
+
const { service } = deps;
|
|
9
|
+
return async (app) => {
|
|
10
|
+
/** Non-null under requireMeta — the preHandler 503s before handlers run. */
|
|
11
|
+
const ctx = () => {
|
|
12
|
+
if (app.authContext === null) {
|
|
13
|
+
throw new AppError(503, 'META_NOT_CONFIGURED', 'No meta store is configured.');
|
|
14
|
+
}
|
|
15
|
+
return app.authContext;
|
|
16
|
+
};
|
|
17
|
+
app.get('/setup/state', {
|
|
18
|
+
preHandler: [app.requireMeta],
|
|
19
|
+
schema: { response: { 200: setupStateReply } },
|
|
20
|
+
}, async () => {
|
|
21
|
+
const state = await service.state();
|
|
22
|
+
return {
|
|
23
|
+
data: { required: state.required, passwordMinLength: state.passwordMinLength },
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
app.post('/setup/super-admin', {
|
|
27
|
+
preHandler: [app.requireMeta],
|
|
28
|
+
config: { rateLimitBucket: RATE_LIMIT_BUCKETS.login },
|
|
29
|
+
schema: { body: setupSuperAdminBody, response: { 201: setupSuperAdminReply } },
|
|
30
|
+
}, async (request, reply) => {
|
|
31
|
+
const body = request.body;
|
|
32
|
+
let user;
|
|
33
|
+
try {
|
|
34
|
+
user = await service.createSuperAdmin({
|
|
35
|
+
email: body.email,
|
|
36
|
+
password: body.password,
|
|
37
|
+
name: body.name,
|
|
38
|
+
consent: body.consent,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
if (error instanceof SetupClosedError) {
|
|
43
|
+
// 409 — the terminal state. Identical for a second submit, a lost
|
|
44
|
+
// race, and a probe against a long-running instance.
|
|
45
|
+
throw new ConflictError('Setup has already been completed. Sign in instead.', 'CONFLICT');
|
|
46
|
+
}
|
|
47
|
+
if (error instanceof WeakPasswordError) {
|
|
48
|
+
throw new ValidationFailedError(error.message, {
|
|
49
|
+
in: 'body',
|
|
50
|
+
issues: [{ path: 'password', message: error.message, code: 'too_small' }],
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
55
|
+
// Land the wizard signed in — re-typing the credentials you just chose
|
|
56
|
+
// is friction with no security value (you proved nothing by knowing it).
|
|
57
|
+
const userAgent = request.headers['user-agent'];
|
|
58
|
+
const { token } = await createSession(ctx().meta, user.id, {
|
|
59
|
+
ip: request.ip,
|
|
60
|
+
userAgent: typeof userAgent === 'string' ? userAgent.slice(0, 300) : null,
|
|
61
|
+
});
|
|
62
|
+
setSessionCookie(reply, token, request);
|
|
63
|
+
void reply.status(201);
|
|
64
|
+
return { data: { user: toUserView(user) } };
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/setup/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAqB,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,oBAAoB,GAGrB,MAAM,aAAa,CAAC;AAOrB,MAAM,UAAU,WAAW,CAAC,IAAqB;IAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEzB,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE;QACnB,4EAA4E;QAC5E,MAAM,GAAG,GAAG,GAAgB,EAAE;YAC5B,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;gBAC7B,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,qBAAqB,EAAE,8BAA8B,CAAC,CAAC;YACjF,CAAC;YACD,OAAO,GAAG,CAAC,WAAW,CAAC;QACzB,CAAC,CAAC;QAEF,GAAG,CAAC,GAAG,CACL,cAAc,EACd;YACE,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;YAC7B,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,EAAE;SAC/C,EACD,KAAK,IAA8B,EAAE;YACnC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACpC,OAAO;gBACL,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE;aAC/E,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,GAAG,CAAC,IAAI,CACN,oBAAoB,EACpB;YACE,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;YAC7B,MAAM,EAAE,EAAE,eAAe,EAAE,kBAAkB,CAAC,KAAK,EAAE;YACrD,MAAM,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,oBAAoB,EAAE,EAAE;SAC/E,EACD,KAAK,EAAE,OAAO,EAAE,KAAK,EAAiC,EAAE;YACtD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAE1B,IAAI,IAAI,CAAC;YACT,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC;oBACpC,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;oBACtC,kEAAkE;oBAClE,qDAAqD;oBACrD,MAAM,IAAI,aAAa,CACrB,oDAAoD,EACpD,UAAU,CACX,CAAC;gBACJ,CAAC;gBACD,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;oBACvC,MAAM,IAAI,qBAAqB,CAAC,KAAK,CAAC,OAAO,EAAE;wBAC7C,EAAE,EAAE,MAAM;wBACV,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;qBAC1E,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YAED,uEAAuE;YACvE,yEAAyE;YACzE,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAChD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;gBACzD,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,SAAS,EAAE,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;aAC1E,CAAC,CAAC;YACH,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAExC,KAAK,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAC9C,CAAC,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schemas for the first-run setup resource (M10-T04; naming per
|
|
3
|
+
* 08-server-api.md §1.5: `<resource><Action><Part>` consts, `z.infer`
|
|
4
|
+
* PascalCase types).
|
|
5
|
+
*
|
|
6
|
+
* These are the only UNAUTHENTICATED write-capable schemas in the API — there
|
|
7
|
+
* is no session to authorize against on a fresh install — so the bodies are
|
|
8
|
+
* deliberately narrow and `.strict()`: an unknown key is a rejection, not
|
|
9
|
+
* something silently dropped near super-admin creation.
|
|
10
|
+
*/
|
|
11
|
+
import { z } from 'zod';
|
|
12
|
+
/**
|
|
13
|
+
* `GET /setup/state` — the only thing a fresh install exposes pre-auth.
|
|
14
|
+
* Carries NOTHING about the instance beyond "is setup still open" and the
|
|
15
|
+
* password policy the wizard mirrors client-side: an internet-reachable
|
|
16
|
+
* un-bootstrapped instance must not leak version, engine, or user counts here.
|
|
17
|
+
*/
|
|
18
|
+
export declare const setupStateReply: z.ZodObject<{
|
|
19
|
+
data: z.ZodObject<{
|
|
20
|
+
required: z.ZodBoolean;
|
|
21
|
+
passwordMinLength: z.ZodNumber;
|
|
22
|
+
}, z.core.$strip>;
|
|
23
|
+
}, z.core.$strip>;
|
|
24
|
+
export type SetupStateReply = z.infer<typeof setupStateReply>;
|
|
25
|
+
/** The first-run consent answers. Both OFF by default (v0.5 exit criterion). */
|
|
26
|
+
export declare const setupConsentBody: z.ZodObject<{
|
|
27
|
+
telemetry: z.ZodBoolean;
|
|
28
|
+
updateCheck: z.ZodBoolean;
|
|
29
|
+
}, z.core.$strict>;
|
|
30
|
+
export type SetupConsentBody = z.infer<typeof setupConsentBody>;
|
|
31
|
+
export declare const setupSuperAdminBody: z.ZodObject<{
|
|
32
|
+
email: z.ZodString;
|
|
33
|
+
password: z.ZodString;
|
|
34
|
+
name: z.ZodOptional<z.ZodString>;
|
|
35
|
+
consent: z.ZodOptional<z.ZodObject<{
|
|
36
|
+
telemetry: z.ZodBoolean;
|
|
37
|
+
updateCheck: z.ZodBoolean;
|
|
38
|
+
}, z.core.$strict>>;
|
|
39
|
+
}, z.core.$strict>;
|
|
40
|
+
export type SetupSuperAdminBody = z.infer<typeof setupSuperAdminBody>;
|
|
41
|
+
/** 201 — the super admin exists and the response carries their session cookie. */
|
|
42
|
+
export declare const setupSuperAdminReply: z.ZodObject<{
|
|
43
|
+
data: z.ZodObject<{
|
|
44
|
+
user: z.ZodObject<{
|
|
45
|
+
id: z.ZodString;
|
|
46
|
+
email: z.ZodString;
|
|
47
|
+
name: z.ZodString;
|
|
48
|
+
status: z.ZodEnum<{
|
|
49
|
+
active: "active";
|
|
50
|
+
invited: "invited";
|
|
51
|
+
suspended: "suspended";
|
|
52
|
+
}>;
|
|
53
|
+
totpEnabled: z.ZodBoolean;
|
|
54
|
+
lastLoginAt: z.ZodNullable<z.ZodNumber>;
|
|
55
|
+
createdAt: z.ZodNumber;
|
|
56
|
+
updatedAt: z.ZodNumber;
|
|
57
|
+
}, z.core.$strip>;
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
}, z.core.$strip>;
|
|
60
|
+
export type SetupSuperAdminReply = z.infer<typeof setupSuperAdminReply>;
|
|
61
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/routes/setup/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;;iBAM1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,gFAAgF;AAChF,eAAO,MAAM,gBAAgB;;;kBAKlB,CAAC;AACZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,eAAO,MAAM,mBAAmB;;;;;;;;kBASrB,CAAC;AACZ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE,kFAAkF;AAClF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;iBAE/B,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schemas for the first-run setup resource (M10-T04; naming per
|
|
3
|
+
* 08-server-api.md §1.5: `<resource><Action><Part>` consts, `z.infer`
|
|
4
|
+
* PascalCase types).
|
|
5
|
+
*
|
|
6
|
+
* These are the only UNAUTHENTICATED write-capable schemas in the API — there
|
|
7
|
+
* is no session to authorize against on a fresh install — so the bodies are
|
|
8
|
+
* deliberately narrow and `.strict()`: an unknown key is a rejection, not
|
|
9
|
+
* something silently dropped near super-admin creation.
|
|
10
|
+
*/
|
|
11
|
+
import { z } from 'zod';
|
|
12
|
+
import { authUserView } from '../auth/schema.js';
|
|
13
|
+
/**
|
|
14
|
+
* `GET /setup/state` — the only thing a fresh install exposes pre-auth.
|
|
15
|
+
* Carries NOTHING about the instance beyond "is setup still open" and the
|
|
16
|
+
* password policy the wizard mirrors client-side: an internet-reachable
|
|
17
|
+
* un-bootstrapped instance must not leak version, engine, or user counts here.
|
|
18
|
+
*/
|
|
19
|
+
export const setupStateReply = z.object({
|
|
20
|
+
data: z.object({
|
|
21
|
+
/** True only when zero users exist AND bootstrap has never been claimed. */
|
|
22
|
+
required: z.boolean(),
|
|
23
|
+
passwordMinLength: z.number().int().positive(),
|
|
24
|
+
}),
|
|
25
|
+
});
|
|
26
|
+
/** The first-run consent answers. Both OFF by default (v0.5 exit criterion). */
|
|
27
|
+
export const setupConsentBody = z
|
|
28
|
+
.object({
|
|
29
|
+
telemetry: z.boolean(),
|
|
30
|
+
updateCheck: z.boolean(),
|
|
31
|
+
})
|
|
32
|
+
.strict();
|
|
33
|
+
export const setupSuperAdminBody = z
|
|
34
|
+
.object({
|
|
35
|
+
email: z.string().trim().min(3).max(320).email('must be a valid email address'),
|
|
36
|
+
/** Upper bound only — the real floor is `auth.passwordMinLength` (server-side). */
|
|
37
|
+
password: z.string().min(1).max(200),
|
|
38
|
+
name: z.string().trim().min(1).max(120).optional(),
|
|
39
|
+
/** Omitted ⇒ registry defaults stand (telemetry + update check both off). */
|
|
40
|
+
consent: setupConsentBody.optional(),
|
|
41
|
+
})
|
|
42
|
+
.strict();
|
|
43
|
+
/** 201 — the super admin exists and the response carries their session cookie. */
|
|
44
|
+
export const setupSuperAdminReply = z.object({
|
|
45
|
+
data: z.object({ user: authUserView }),
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/routes/setup/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,4EAA4E;QAC5E,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;QACrB,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KAC/C,CAAC;CACH,CAAC,CAAC;AAGH,gFAAgF;AAChF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;CACzB,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,+BAA+B,CAAC;IAC/E,mFAAmF;IACnF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAClD,6EAA6E;IAC7E,OAAO,EAAE,gBAAgB,CAAC,QAAQ,EAAE;CACrC,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,kFAAkF;AAClF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;CACvC,CAAC,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/** Handlers for the system resource (08-server-api.md §1.2 route-module layout). */
|
|
2
|
+
import { type MetaDb } from '@adminium/meta';
|
|
3
|
+
import type { Env } from '../../config/env.js';
|
|
4
|
+
import type { SystemHealthzReply, SystemInfoReply, SystemReadyzReply } from './schema.js';
|
|
5
|
+
/**
|
|
6
|
+
* LIVENESS: the process is up and serving. No dependency checks, on purpose —
|
|
7
|
+
* a liveness probe that fails on a dependency asks the orchestrator to restart a
|
|
8
|
+
* process whose problem a restart cannot fix, turning a database blip into a
|
|
9
|
+
* crash-loop.
|
|
10
|
+
*
|
|
11
|
+
* This is what the Dockerfile HEALTHCHECK runs, and it answers exactly one
|
|
12
|
+
* question: "is this the API, and is it serving?" (It hits `/api/v1/healthz`
|
|
13
|
+
* rather than bare `/healthz` because the latter has no route and would be
|
|
14
|
+
* answered by the SPA history fallback with index.html + 200 — i.e. "healthy"
|
|
15
|
+
* as long as the static files exist on disk.) It does NOT tell you the meta
|
|
16
|
+
* store is reachable; {@link readyz} is the probe that does.
|
|
17
|
+
*/
|
|
18
|
+
export declare function healthz(): SystemHealthzReply;
|
|
19
|
+
/**
|
|
20
|
+
* READINESS (01-architecture.md §4.1 lists `/readyz` beside `/healthz`): can
|
|
21
|
+
* this instance actually serve a request? That means the meta store — without
|
|
22
|
+
* it every authenticated route 500s, however alive the process is.
|
|
23
|
+
*
|
|
24
|
+
* Load balancers and orchestrators key traffic on THIS, not on `healthz`: an
|
|
25
|
+
* instance whose Postgres has died or been partitioned away is live but
|
|
26
|
+
* useless, and should stop receiving traffic without being restarted.
|
|
27
|
+
*
|
|
28
|
+
* One `SELECT 1` — enough to prove the pool can hand out a working connection,
|
|
29
|
+
* cheap enough to run on a probe interval.
|
|
30
|
+
*/
|
|
31
|
+
export declare function readyz(meta: MetaDb | null): Promise<SystemReadyzReply>;
|
|
32
|
+
export interface SystemInfoDeps {
|
|
33
|
+
env: Env;
|
|
34
|
+
/** `null` when the server booted without a meta store; every field stays answerable. */
|
|
35
|
+
meta: MetaDb | null;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Build/runtime info + the §8.2 capability flags (11-electron.md §8.1/§8.2).
|
|
39
|
+
* `dialect` reports the connected meta store, or `null` when the server booted
|
|
40
|
+
* without one (the wave-1 behavior the schema still allows, and what a
|
|
41
|
+
* pre-bootstrap install looks like).
|
|
42
|
+
*
|
|
43
|
+
* NO FLAG HERE IS A CONSTANT. `runtime`, `networkFeaturesAllowed` and `lanShare`
|
|
44
|
+
* come off the environment this process was booted with, `smtpConfigured` off
|
|
45
|
+
* the meta store — which is why this is async, and why it is worth the one
|
|
46
|
+
* indexed primary-key read per call rather than a value baked at compose time:
|
|
47
|
+
* SMTP is editable from Settings, so a cached answer would leave the "Configure
|
|
48
|
+
* SMTP to send email" state showing on a page whose Send button now works.
|
|
49
|
+
*
|
|
50
|
+
* `lanShare` is env-derived and therefore constant for a process lifetime — but
|
|
51
|
+
* that is the whole truth of it, not a limitation: §8.3 applies the toggle by
|
|
52
|
+
* RE-FORKING this process (`config.json` → `ADMINIUM_HOST` → a new child), so a
|
|
53
|
+
* change of answer and a change of process are the same event. There is no
|
|
54
|
+
* moment at which a fresh read here would say something this boot's environment
|
|
55
|
+
* does not.
|
|
56
|
+
*
|
|
57
|
+
* The no-meta case is not a degradation to paper over: without a meta store the
|
|
58
|
+
* `email.smtp` setting does not exist, so email genuinely cannot send, and
|
|
59
|
+
* `false` is the correct answer rather than an "unknown" the SPA would have to
|
|
60
|
+
* invent a third state for.
|
|
61
|
+
*/
|
|
62
|
+
export declare function systemInfo(deps: SystemInfoDeps): Promise<SystemInfoReply>;
|
|
63
|
+
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/routes/system/handlers.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAI/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE1F;;;;;;;;;;;;GAYG;AACH,wBAAgB,OAAO,IAAI,kBAAkB,CAE5C;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAa5E;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,GAAG,CAAC;IACT,wFAAwF;IACxF,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAa/E"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/** Handlers for the system resource (08-server-api.md §1.2 route-module layout). */
|
|
2
|
+
import { settingsRepo } from '@adminium/meta';
|
|
3
|
+
import { sql } from 'kysely';
|
|
4
|
+
import { demoSeedAvailable } from '../../desktop/demo-seed.js';
|
|
5
|
+
import { lanShareActive } from '../../desktop/lan-share.js';
|
|
6
|
+
import { APP_VERSION } from '../../version.js';
|
|
7
|
+
/**
|
|
8
|
+
* LIVENESS: the process is up and serving. No dependency checks, on purpose —
|
|
9
|
+
* a liveness probe that fails on a dependency asks the orchestrator to restart a
|
|
10
|
+
* process whose problem a restart cannot fix, turning a database blip into a
|
|
11
|
+
* crash-loop.
|
|
12
|
+
*
|
|
13
|
+
* This is what the Dockerfile HEALTHCHECK runs, and it answers exactly one
|
|
14
|
+
* question: "is this the API, and is it serving?" (It hits `/api/v1/healthz`
|
|
15
|
+
* rather than bare `/healthz` because the latter has no route and would be
|
|
16
|
+
* answered by the SPA history fallback with index.html + 200 — i.e. "healthy"
|
|
17
|
+
* as long as the static files exist on disk.) It does NOT tell you the meta
|
|
18
|
+
* store is reachable; {@link readyz} is the probe that does.
|
|
19
|
+
*/
|
|
20
|
+
export function healthz() {
|
|
21
|
+
return { ok: true, version: APP_VERSION, uptime: process.uptime() };
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* READINESS (01-architecture.md §4.1 lists `/readyz` beside `/healthz`): can
|
|
25
|
+
* this instance actually serve a request? That means the meta store — without
|
|
26
|
+
* it every authenticated route 500s, however alive the process is.
|
|
27
|
+
*
|
|
28
|
+
* Load balancers and orchestrators key traffic on THIS, not on `healthz`: an
|
|
29
|
+
* instance whose Postgres has died or been partitioned away is live but
|
|
30
|
+
* useless, and should stop receiving traffic without being restarted.
|
|
31
|
+
*
|
|
32
|
+
* One `SELECT 1` — enough to prove the pool can hand out a working connection,
|
|
33
|
+
* cheap enough to run on a probe interval.
|
|
34
|
+
*/
|
|
35
|
+
export async function readyz(meta) {
|
|
36
|
+
if (meta === null) {
|
|
37
|
+
return { ok: false, version: APP_VERSION, checks: { meta: 'not-configured' } };
|
|
38
|
+
}
|
|
39
|
+
try {
|
|
40
|
+
await sql `select 1`.execute(meta.db);
|
|
41
|
+
return { ok: true, version: APP_VERSION, checks: { meta: 'ok' } };
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// Deliberately not surfacing the driver's message: a connection error
|
|
45
|
+
// routinely quotes the whole DSN ("password authentication failed for user
|
|
46
|
+
// … host=…"), and this route is unauthenticated.
|
|
47
|
+
return { ok: false, version: APP_VERSION, checks: { meta: 'unreachable' } };
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Build/runtime info + the §8.2 capability flags (11-electron.md §8.1/§8.2).
|
|
52
|
+
* `dialect` reports the connected meta store, or `null` when the server booted
|
|
53
|
+
* without one (the wave-1 behavior the schema still allows, and what a
|
|
54
|
+
* pre-bootstrap install looks like).
|
|
55
|
+
*
|
|
56
|
+
* NO FLAG HERE IS A CONSTANT. `runtime`, `networkFeaturesAllowed` and `lanShare`
|
|
57
|
+
* come off the environment this process was booted with, `smtpConfigured` off
|
|
58
|
+
* the meta store — which is why this is async, and why it is worth the one
|
|
59
|
+
* indexed primary-key read per call rather than a value baked at compose time:
|
|
60
|
+
* SMTP is editable from Settings, so a cached answer would leave the "Configure
|
|
61
|
+
* SMTP to send email" state showing on a page whose Send button now works.
|
|
62
|
+
*
|
|
63
|
+
* `lanShare` is env-derived and therefore constant for a process lifetime — but
|
|
64
|
+
* that is the whole truth of it, not a limitation: §8.3 applies the toggle by
|
|
65
|
+
* RE-FORKING this process (`config.json` → `ADMINIUM_HOST` → a new child), so a
|
|
66
|
+
* change of answer and a change of process are the same event. There is no
|
|
67
|
+
* moment at which a fresh read here would say something this boot's environment
|
|
68
|
+
* does not.
|
|
69
|
+
*
|
|
70
|
+
* The no-meta case is not a degradation to paper over: without a meta store the
|
|
71
|
+
* `email.smtp` setting does not exist, so email genuinely cannot send, and
|
|
72
|
+
* `false` is the correct answer rather than an "unknown" the SPA would have to
|
|
73
|
+
* invent a third state for.
|
|
74
|
+
*/
|
|
75
|
+
export async function systemInfo(deps) {
|
|
76
|
+
const { env, meta } = deps;
|
|
77
|
+
return {
|
|
78
|
+
version: APP_VERSION,
|
|
79
|
+
node: process.version,
|
|
80
|
+
dialect: meta?.dialect ?? null,
|
|
81
|
+
runtime: env.ADMINIUM_RUNTIME,
|
|
82
|
+
smtpConfigured: await smtpConfigured(meta),
|
|
83
|
+
networkFeaturesAllowed: env.ADMINIUM_NETWORK_FEATURES,
|
|
84
|
+
lanShare: lanShareActive(env),
|
|
85
|
+
// The SAME predicate compose registers the route on — see `demo-seed.ts`.
|
|
86
|
+
desktopDemo: demoSeedAvailable(env),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Is `adminium_settings.email.smtp` set?
|
|
91
|
+
*
|
|
92
|
+
* THE TRY/CATCH IS THE POINT, and it is the same argument {@link readyz} makes
|
|
93
|
+
* one function up. This route was a pure function until the §8.2 flags arrived;
|
|
94
|
+
* adding a database read to it means a meta-store blip — or one row of stored
|
|
95
|
+
* JSON that no longer parses — can now throw, and an unhandled throw here costs
|
|
96
|
+
* the caller the WHOLE reply, including `runtime` and `networkFeaturesAllowed`,
|
|
97
|
+
* which come off the environment and were never in doubt.
|
|
98
|
+
*
|
|
99
|
+
* That is not a hypothetical inconvenience: `/system/info` is unauthenticated
|
|
100
|
+
* precisely so pre-auth screens can ask it, and `/forgot` disables its Send
|
|
101
|
+
* button when it cannot get an answer. A 500 here would take password reset down
|
|
102
|
+
* with the settings table.
|
|
103
|
+
*
|
|
104
|
+
* `false` on failure is the same answer the no-meta case gives, and it is the
|
|
105
|
+
* conservative one: it offers an explanation instead of a Send button that drops
|
|
106
|
+
* mail. The log line is what stops it from being a silent lie to the operator.
|
|
107
|
+
*/
|
|
108
|
+
async function smtpConfigured(meta) {
|
|
109
|
+
if (meta === null)
|
|
110
|
+
return false;
|
|
111
|
+
try {
|
|
112
|
+
return (await settingsRepo(meta).get('email.smtp')) !== null;
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
// Deliberately not surfacing the driver's message — same reason readyz
|
|
116
|
+
// does not: a connection error routinely quotes the whole DSN, and this
|
|
117
|
+
// route is unauthenticated.
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/routes/system/handlers.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,OAAO,EAAE,YAAY,EAAe,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAG7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,OAAO;IACrB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AACtE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAmB;IAC9C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,CAAC;IACjF,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,CAAA,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,sEAAsE;QACtE,2EAA2E;QAC3E,iDAAiD;QACjD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC;IAC9E,CAAC;AACH,CAAC;AAQD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAoB;IACnD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAC3B,OAAO;QACL,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,OAAO,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,IAAI;QAC9B,OAAO,EAAE,GAAG,CAAC,gBAAgB;QAC7B,cAAc,EAAE,MAAM,cAAc,CAAC,IAAI,CAAC;QAC1C,sBAAsB,EAAE,GAAG,CAAC,yBAAyB;QACrD,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC;QAC7B,0EAA0E;QAC1E,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC;KACpC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,KAAK,UAAU,cAAc,CAAC,IAAmB;IAC/C,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;QACvE,wEAAwE;QACxE,4BAA4B;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* System routes: `GET /healthz`, `GET /readyz` and `GET /system/info` (mounted
|
|
3
|
+
* under /api/v1).
|
|
4
|
+
*
|
|
5
|
+
* TWO PROBES, TWO QUESTIONS (01-architecture.md §4.1 lists both):
|
|
6
|
+
* - `/healthz` — LIVENESS. Is the process up and serving? Never fails on a
|
|
7
|
+
* dependency, because a restart cannot fix a dependency. This is what the
|
|
8
|
+
* Dockerfile HEALTHCHECK and docker-compose.yml run.
|
|
9
|
+
* - `/readyz` — READINESS. Can it serve a real request, i.e. is the meta store
|
|
10
|
+
* reachable? Answers 503 when not, so a load balancer stops routing to an
|
|
11
|
+
* instance that would 500 every request.
|
|
12
|
+
* Point orchestration at whichever question you are actually asking; see
|
|
13
|
+
* `./handlers.ts` for why conflating the two is a trap.
|
|
14
|
+
*
|
|
15
|
+
* `/system/info` answers a third, unrelated question — "what is this
|
|
16
|
+
* deployment, and what may it do?" — and is the surface 11-electron.md §8.1/§8.2
|
|
17
|
+
* gate the desktop UX on (runtime chip, SMTP-gated email, network-dependent
|
|
18
|
+
* features). See `./schema.ts` for what each flag is entitled to claim.
|
|
19
|
+
*/
|
|
20
|
+
import type { FastifyPluginAsyncZod } from 'fastify-type-provider-zod';
|
|
21
|
+
import type { Env } from '../../config/env.js';
|
|
22
|
+
export interface SystemRoutesDeps {
|
|
23
|
+
/**
|
|
24
|
+
* The validated boot environment. INJECTED rather than read off `process.env`
|
|
25
|
+
* inside the handler for the reason `config/env.ts` gives at length: the two
|
|
26
|
+
* §8.2 flags this reply derives from the environment (`runtime`,
|
|
27
|
+
* `networkFeaturesAllowed`) are answers the SPA gates features on, and a typo
|
|
28
|
+
* sampled from ambient state deep in a handler reads as a plausible default
|
|
29
|
+
* instead of failing the boot.
|
|
30
|
+
*/
|
|
31
|
+
env: Env;
|
|
32
|
+
}
|
|
33
|
+
export declare const systemRoutes: ({ env }: SystemRoutesDeps) => FastifyPluginAsyncZod;
|
|
34
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/system/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAI/C,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;OAOG;IACH,GAAG,EAAE,GAAG,CAAC;CACV;AAED,eAAO,MAAM,YAAY,GAAI,SAAS,gBAAgB,KAAG,qBAuBxD,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { healthz, readyz, systemInfo } from './handlers.js';
|
|
2
|
+
import { systemHealthzReply, systemInfoReply, systemReadyzReply } from './schema.js';
|
|
3
|
+
export const systemRoutes = ({ env }) => async (app) => {
|
|
4
|
+
app.get('/healthz', { schema: { response: { 200: systemHealthzReply } } }, async () => healthz());
|
|
5
|
+
app.get('/readyz', { schema: { response: { 200: systemReadyzReply, 503: systemReadyzReply } } }, async (_request, reply) => {
|
|
6
|
+
// The meta handle rides on `authContext`, null when the server booted
|
|
7
|
+
// without a meta store — which `readyz` reports as not-ready too.
|
|
8
|
+
const result = await readyz(app.authContext?.meta ?? null);
|
|
9
|
+
void reply.status(result.ok ? 200 : 503);
|
|
10
|
+
return result;
|
|
11
|
+
});
|
|
12
|
+
app.get('/system/info', { schema: { response: { 200: systemInfoReply } } },
|
|
13
|
+
// The meta handle rides on `authContext`, which is null when the server
|
|
14
|
+
// boots without a meta store — then `dialect` is honestly null and
|
|
15
|
+
// `smtpConfigured` honestly false (the setting cannot exist without a store).
|
|
16
|
+
async () => systemInfo({ env, meta: app.authContext?.meta ?? null }));
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/system/index.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAcrF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,GAAG,EAAoB,EAAyB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAC9F,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAElG,GAAG,CAAC,GAAG,CACL,SAAS,EACT,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAC5E,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;QACxB,sEAAsE;QACtE,kEAAkE;QAClE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;QAC3D,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC;IAChB,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,cAAc,EACd,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE;IAClD,wEAAwE;IACxE,mEAAmE;IACnE,8EAA8E;IAC9E,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,CACrE,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schemas for the system resource (naming per 08-server-api.md §1.5:
|
|
3
|
+
* `<resource><Action><Part>` consts, `z.infer` PascalCase types).
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
/** Meta-store dialects (07-meta-store.md); `null` until meta wiring (wave 2). */
|
|
7
|
+
export declare const metaDialect: z.ZodEnum<{
|
|
8
|
+
postgres: "postgres";
|
|
9
|
+
mysql: "mysql";
|
|
10
|
+
sqlite: "sqlite";
|
|
11
|
+
}>;
|
|
12
|
+
/**
|
|
13
|
+
* The deployment wrapper, straight off `Env.ADMINIUM_RUNTIME` — the SAME enum,
|
|
14
|
+
* imported rather than re-spelled. 11-electron.md §4 makes this reply the
|
|
15
|
+
* authority the SPA gates on ("the SPA trusts the server for feature gating and
|
|
16
|
+
* the bridge only for native affordances"), so a copy that drifted from the env
|
|
17
|
+
* schema would be a gate that disagrees with the server it is gating.
|
|
18
|
+
*/
|
|
19
|
+
export declare const systemRuntime: z.ZodEnum<{
|
|
20
|
+
"self-host": "self-host";
|
|
21
|
+
desktop: "desktop";
|
|
22
|
+
}>;
|
|
23
|
+
export declare const systemHealthzReply: z.ZodObject<{
|
|
24
|
+
ok: z.ZodLiteral<true>;
|
|
25
|
+
version: z.ZodString;
|
|
26
|
+
uptime: z.ZodNumber;
|
|
27
|
+
}, z.core.$strip>;
|
|
28
|
+
export type SystemHealthzReply = z.infer<typeof systemHealthzReply>;
|
|
29
|
+
/** Per-dependency readiness verdicts (01-architecture.md §4.1 `/readyz`). */
|
|
30
|
+
export declare const systemReadyzChecks: z.ZodObject<{
|
|
31
|
+
meta: z.ZodEnum<{
|
|
32
|
+
ok: "ok";
|
|
33
|
+
unreachable: "unreachable";
|
|
34
|
+
"not-configured": "not-configured";
|
|
35
|
+
}>;
|
|
36
|
+
}, z.core.$strip>;
|
|
37
|
+
export declare const systemReadyzReply: z.ZodObject<{
|
|
38
|
+
ok: z.ZodBoolean;
|
|
39
|
+
version: z.ZodString;
|
|
40
|
+
checks: z.ZodObject<{
|
|
41
|
+
meta: z.ZodEnum<{
|
|
42
|
+
ok: "ok";
|
|
43
|
+
unreachable: "unreachable";
|
|
44
|
+
"not-configured": "not-configured";
|
|
45
|
+
}>;
|
|
46
|
+
}, z.core.$strip>;
|
|
47
|
+
}, z.core.$strip>;
|
|
48
|
+
export type SystemReadyzReply = z.infer<typeof systemReadyzReply>;
|
|
49
|
+
/**
|
|
50
|
+
* Build/runtime info + the 11-electron.md §8.2 CAPABILITY FLAGS the SPA gates
|
|
51
|
+
* on. Unauthenticated, like its two sibling probes — deliberately, because the
|
|
52
|
+
* surfaces that need the answers earliest are pre-auth (`/login`, `/forgot`,
|
|
53
|
+
* `/setup`), and every field here is either already public (`version`, `node`)
|
|
54
|
+
* or a yes/no about this deployment's own configuration. Nothing names a host, a
|
|
55
|
+
* credential, or a user.
|
|
56
|
+
*
|
|
57
|
+
* WHAT EACH FLAG IS ENTITLED TO CLAIM — the schema is only honest if the
|
|
58
|
+
* handler can actually answer it:
|
|
59
|
+
*
|
|
60
|
+
* - `runtime` — parsed at boot from `ADMINIUM_RUNTIME`. Certain.
|
|
61
|
+
* - `smtpConfigured` — is `adminium_settings.email.smtp` set? Certain, and it
|
|
62
|
+
* is the exact question §8.2's email row asks. It is NOT "email will
|
|
63
|
+
* succeed": a configured-but-wrong SMTP host still fails at send time, and no
|
|
64
|
+
* flag can promise otherwise. The gap is narrow and the alternative — a probe
|
|
65
|
+
* connection per page load — is worse.
|
|
66
|
+
* - `networkFeaturesAllowed` — POLICY, from `ADMINIUM_NETWORK_FEATURES`, never
|
|
67
|
+
* reachability. See that variable's comment in `config/env.ts`; the short
|
|
68
|
+
* version is that a server which promises to make zero unprompted outbound
|
|
69
|
+
* calls cannot also report whether outbound calls would work.
|
|
70
|
+
* - `lanShare` — is this desktop process bound to every interface (§8.3)?
|
|
71
|
+
* Certain, and the strongest kind of certain available: it is read off the
|
|
72
|
+
* bind this process was booted with, not off a config file describing what
|
|
73
|
+
* somebody meant to happen. See `desktop/lan-share.ts`.
|
|
74
|
+
*/
|
|
75
|
+
export declare const systemInfoReply: z.ZodObject<{
|
|
76
|
+
version: z.ZodString;
|
|
77
|
+
node: z.ZodString;
|
|
78
|
+
dialect: z.ZodNullable<z.ZodEnum<{
|
|
79
|
+
postgres: "postgres";
|
|
80
|
+
mysql: "mysql";
|
|
81
|
+
sqlite: "sqlite";
|
|
82
|
+
}>>;
|
|
83
|
+
runtime: z.ZodEnum<{
|
|
84
|
+
"self-host": "self-host";
|
|
85
|
+
desktop: "desktop";
|
|
86
|
+
}>;
|
|
87
|
+
smtpConfigured: z.ZodBoolean;
|
|
88
|
+
networkFeaturesAllowed: z.ZodBoolean;
|
|
89
|
+
lanShare: z.ZodBoolean;
|
|
90
|
+
desktopDemo: z.ZodBoolean;
|
|
91
|
+
}, z.core.$strip>;
|
|
92
|
+
export type SystemInfoReply = z.infer<typeof systemInfoReply>;
|
|
93
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/routes/system/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,iFAAiF;AACjF,eAAO,MAAM,WAAW;;;;EAA0C,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,aAAa;;;EAAmB,CAAC;AAE9C,eAAO,MAAM,kBAAkB;;;;iBAM7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE,6EAA6E;AAC7E,eAAO,MAAM,kBAAkB;;;;;;iBAG7B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;iBAK5B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;iBA+C1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|