@knowzai/cli 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/assets/portable/.env.example +250 -0
- package/assets/portable/docker-compose.yml +444 -0
- package/assets/portable/postgres-initdb/00-databases-and-extensions.sql +16 -0
- package/assets/portable/releases.json +37 -0
- package/assets/portable/runtime-contract.json +149 -0
- package/bin/run.js +4 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/base-command.d.ts +47 -0
- package/dist/base-command.d.ts.map +1 -0
- package/dist/base-command.js +98 -0
- package/dist/base-command.js.map +1 -0
- package/dist/commands/activate.d.ts +39 -0
- package/dist/commands/activate.d.ts.map +1 -0
- package/dist/commands/activate.js +103 -0
- package/dist/commands/activate.js.map +1 -0
- package/dist/commands/ask.d.ts +14 -0
- package/dist/commands/ask.d.ts.map +1 -0
- package/dist/commands/ask.js +33 -0
- package/dist/commands/ask.js.map +1 -0
- package/dist/commands/auth/status.d.ts +7 -0
- package/dist/commands/auth/status.d.ts.map +1 -0
- package/dist/commands/auth/status.js +26 -0
- package/dist/commands/auth/status.js.map +1 -0
- package/dist/commands/backup.d.ts +15 -0
- package/dist/commands/backup.d.ts.map +1 -0
- package/dist/commands/backup.js +52 -0
- package/dist/commands/backup.js.map +1 -0
- package/dist/commands/capture/observe.d.ts +23 -0
- package/dist/commands/capture/observe.d.ts.map +1 -0
- package/dist/commands/capture/observe.js +68 -0
- package/dist/commands/capture/observe.js.map +1 -0
- package/dist/commands/capture/seal.d.ts +27 -0
- package/dist/commands/capture/seal.d.ts.map +1 -0
- package/dist/commands/capture/seal.js +144 -0
- package/dist/commands/capture/seal.js.map +1 -0
- package/dist/commands/capture/status.d.ts +33 -0
- package/dist/commands/capture/status.d.ts.map +1 -0
- package/dist/commands/capture/status.js +52 -0
- package/dist/commands/capture/status.js.map +1 -0
- package/dist/commands/chat.d.ts +21 -0
- package/dist/commands/chat.d.ts.map +1 -0
- package/dist/commands/chat.js +142 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/cmek/decrypt.d.ts +13 -0
- package/dist/commands/cmek/decrypt.d.ts.map +1 -0
- package/dist/commands/cmek/decrypt.js +25 -0
- package/dist/commands/cmek/decrypt.js.map +1 -0
- package/dist/commands/cmek/encrypt.d.ts +15 -0
- package/dist/commands/cmek/encrypt.d.ts.map +1 -0
- package/dist/commands/cmek/encrypt.js +26 -0
- package/dist/commands/cmek/encrypt.js.map +1 -0
- package/dist/commands/cmek/init.d.ts +13 -0
- package/dist/commands/cmek/init.d.ts.map +1 -0
- package/dist/commands/cmek/init.js +27 -0
- package/dist/commands/cmek/init.js.map +1 -0
- package/dist/commands/cmek/status.d.ts +11 -0
- package/dist/commands/cmek/status.d.ts.map +1 -0
- package/dist/commands/cmek/status.js +23 -0
- package/dist/commands/cmek/status.js.map +1 -0
- package/dist/commands/completion.d.ts +13 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +19 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/config/get.d.ts +13 -0
- package/dist/commands/config/get.d.ts.map +1 -0
- package/dist/commands/config/get.js +28 -0
- package/dist/commands/config/get.js.map +1 -0
- package/dist/commands/config/list.d.ts +7 -0
- package/dist/commands/config/list.d.ts.map +1 -0
- package/dist/commands/config/list.js +28 -0
- package/dist/commands/config/list.js.map +1 -0
- package/dist/commands/config/path.d.ts +9 -0
- package/dist/commands/config/path.d.ts.map +1 -0
- package/dist/commands/config/path.js +15 -0
- package/dist/commands/config/path.js.map +1 -0
- package/dist/commands/config/set.d.ts +16 -0
- package/dist/commands/config/set.d.ts.map +1 -0
- package/dist/commands/config/set.js +36 -0
- package/dist/commands/config/set.js.map +1 -0
- package/dist/commands/doctor.d.ts +56 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +151 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/down.d.ts +30 -0
- package/dist/commands/down.d.ts.map +1 -0
- package/dist/commands/down.js +20 -0
- package/dist/commands/down.js.map +1 -0
- package/dist/commands/entities/find.d.ts +16 -0
- package/dist/commands/entities/find.d.ts.map +1 -0
- package/dist/commands/entities/find.js +27 -0
- package/dist/commands/entities/find.js.map +1 -0
- package/dist/commands/hooks/install.d.ts +19 -0
- package/dist/commands/hooks/install.d.ts.map +1 -0
- package/dist/commands/hooks/install.js +53 -0
- package/dist/commands/hooks/install.js.map +1 -0
- package/dist/commands/index/graph.d.ts +11 -0
- package/dist/commands/index/graph.d.ts.map +1 -0
- package/dist/commands/index/graph.js +31 -0
- package/dist/commands/index/graph.js.map +1 -0
- package/dist/commands/index/scan.d.ts +22 -0
- package/dist/commands/index/scan.d.ts.map +1 -0
- package/dist/commands/index/scan.js +48 -0
- package/dist/commands/index/scan.js.map +1 -0
- package/dist/commands/index/search.d.ts +18 -0
- package/dist/commands/index/search.d.ts.map +1 -0
- package/dist/commands/index/search.js +40 -0
- package/dist/commands/index/search.js.map +1 -0
- package/dist/commands/ingest/add.d.ts +15 -0
- package/dist/commands/ingest/add.d.ts.map +1 -0
- package/dist/commands/ingest/add.js +50 -0
- package/dist/commands/ingest/add.js.map +1 -0
- package/dist/commands/knowledge/amend.d.ts +19 -0
- package/dist/commands/knowledge/amend.d.ts.map +1 -0
- package/dist/commands/knowledge/amend.js +27 -0
- package/dist/commands/knowledge/amend.js.map +1 -0
- package/dist/commands/knowledge/comment.d.ts +16 -0
- package/dist/commands/knowledge/comment.d.ts.map +1 -0
- package/dist/commands/knowledge/comment.js +27 -0
- package/dist/commands/knowledge/comment.js.map +1 -0
- package/dist/commands/knowledge/comments.d.ts +11 -0
- package/dist/commands/knowledge/comments.d.ts.map +1 -0
- package/dist/commands/knowledge/comments.js +20 -0
- package/dist/commands/knowledge/comments.js.map +1 -0
- package/dist/commands/knowledge/create.d.ts +18 -0
- package/dist/commands/knowledge/create.d.ts.map +1 -0
- package/dist/commands/knowledge/create.js +45 -0
- package/dist/commands/knowledge/create.js.map +1 -0
- package/dist/commands/knowledge/delete.d.ts +14 -0
- package/dist/commands/knowledge/delete.d.ts.map +1 -0
- package/dist/commands/knowledge/delete.js +30 -0
- package/dist/commands/knowledge/delete.js.map +1 -0
- package/dist/commands/knowledge/get.d.ts +13 -0
- package/dist/commands/knowledge/get.d.ts.map +1 -0
- package/dist/commands/knowledge/get.js +20 -0
- package/dist/commands/knowledge/get.js.map +1 -0
- package/dist/commands/knowledge/list.d.ts +13 -0
- package/dist/commands/knowledge/list.d.ts.map +1 -0
- package/dist/commands/knowledge/list.js +31 -0
- package/dist/commands/knowledge/list.js.map +1 -0
- package/dist/commands/knowledge/status.d.ts +11 -0
- package/dist/commands/knowledge/status.d.ts.map +1 -0
- package/dist/commands/knowledge/status.js +23 -0
- package/dist/commands/knowledge/status.js.map +1 -0
- package/dist/commands/knowledge/update.d.ts +16 -0
- package/dist/commands/knowledge/update.d.ts.map +1 -0
- package/dist/commands/knowledge/update.js +32 -0
- package/dist/commands/knowledge/update.js.map +1 -0
- package/dist/commands/knowledge/versions.d.ts +11 -0
- package/dist/commands/knowledge/versions.d.ts.map +1 -0
- package/dist/commands/knowledge/versions.js +22 -0
- package/dist/commands/knowledge/versions.js.map +1 -0
- package/dist/commands/local/info.d.ts +17 -0
- package/dist/commands/local/info.d.ts.map +1 -0
- package/dist/commands/local/info.js +26 -0
- package/dist/commands/local/info.js.map +1 -0
- package/dist/commands/local/init.d.ts +16 -0
- package/dist/commands/local/init.d.ts.map +1 -0
- package/dist/commands/local/init.js +31 -0
- package/dist/commands/local/init.js.map +1 -0
- package/dist/commands/local/list.d.ts +13 -0
- package/dist/commands/local/list.d.ts.map +1 -0
- package/dist/commands/local/list.js +29 -0
- package/dist/commands/local/list.js.map +1 -0
- package/dist/commands/local/reset.d.ts +12 -0
- package/dist/commands/local/reset.d.ts.map +1 -0
- package/dist/commands/local/reset.js +34 -0
- package/dist/commands/local/reset.js.map +1 -0
- package/dist/commands/local/show.d.ts +15 -0
- package/dist/commands/local/show.d.ts.map +1 -0
- package/dist/commands/local/show.js +33 -0
- package/dist/commands/local/show.js.map +1 -0
- package/dist/commands/login.d.ts +23 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +139 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +11 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +23 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/menu.d.ts +10 -0
- package/dist/commands/menu.d.ts.map +1 -0
- package/dist/commands/menu.js +50 -0
- package/dist/commands/menu.js.map +1 -0
- package/dist/commands/pg/destroy.d.ts +13 -0
- package/dist/commands/pg/destroy.d.ts.map +1 -0
- package/dist/commands/pg/destroy.js +36 -0
- package/dist/commands/pg/destroy.js.map +1 -0
- package/dist/commands/pg/down.d.ts +12 -0
- package/dist/commands/pg/down.d.ts.map +1 -0
- package/dist/commands/pg/down.js +20 -0
- package/dist/commands/pg/down.js.map +1 -0
- package/dist/commands/pg/status.d.ts +13 -0
- package/dist/commands/pg/status.d.ts.map +1 -0
- package/dist/commands/pg/status.js +28 -0
- package/dist/commands/pg/status.js.map +1 -0
- package/dist/commands/pg/up.d.ts +13 -0
- package/dist/commands/pg/up.d.ts.map +1 -0
- package/dist/commands/pg/up.js +34 -0
- package/dist/commands/pg/up.js.map +1 -0
- package/dist/commands/platform/destroy.d.ts +18 -0
- package/dist/commands/platform/destroy.d.ts.map +1 -0
- package/dist/commands/platform/destroy.js +41 -0
- package/dist/commands/platform/destroy.js.map +1 -0
- package/dist/commands/platform/doctor.d.ts +11 -0
- package/dist/commands/platform/doctor.d.ts.map +1 -0
- package/dist/commands/platform/doctor.js +18 -0
- package/dist/commands/platform/doctor.js.map +1 -0
- package/dist/commands/platform/down.d.ts +26 -0
- package/dist/commands/platform/down.d.ts.map +1 -0
- package/dist/commands/platform/down.js +16 -0
- package/dist/commands/platform/down.js.map +1 -0
- package/dist/commands/platform/logs.d.ts +26 -0
- package/dist/commands/platform/logs.d.ts.map +1 -0
- package/dist/commands/platform/logs.js +24 -0
- package/dist/commands/platform/logs.js.map +1 -0
- package/dist/commands/platform/reset.d.ts +26 -0
- package/dist/commands/platform/reset.d.ts.map +1 -0
- package/dist/commands/platform/reset.js +49 -0
- package/dist/commands/platform/reset.js.map +1 -0
- package/dist/commands/platform/setup.d.ts +24 -0
- package/dist/commands/platform/setup.d.ts.map +1 -0
- package/dist/commands/platform/setup.js +21 -0
- package/dist/commands/platform/setup.js.map +1 -0
- package/dist/commands/platform/status.d.ts +28 -0
- package/dist/commands/platform/status.d.ts.map +1 -0
- package/dist/commands/platform/status.js +37 -0
- package/dist/commands/platform/status.js.map +1 -0
- package/dist/commands/platform/up.d.ts +42 -0
- package/dist/commands/platform/up.d.ts.map +1 -0
- package/dist/commands/platform/up.js +22 -0
- package/dist/commands/platform/up.js.map +1 -0
- package/dist/commands/platform/upgrade.d.ts +14 -0
- package/dist/commands/platform/upgrade.d.ts.map +1 -0
- package/dist/commands/platform/upgrade.js +22 -0
- package/dist/commands/platform/upgrade.js.map +1 -0
- package/dist/commands/profile/add.d.ts +18 -0
- package/dist/commands/profile/add.d.ts.map +1 -0
- package/dist/commands/profile/add.js +26 -0
- package/dist/commands/profile/add.js.map +1 -0
- package/dist/commands/profile/list.d.ts +10 -0
- package/dist/commands/profile/list.d.ts.map +1 -0
- package/dist/commands/profile/list.js +20 -0
- package/dist/commands/profile/list.js.map +1 -0
- package/dist/commands/profile/remove.d.ts +15 -0
- package/dist/commands/profile/remove.d.ts.map +1 -0
- package/dist/commands/profile/remove.js +19 -0
- package/dist/commands/profile/remove.js.map +1 -0
- package/dist/commands/profile/use.d.ts +12 -0
- package/dist/commands/profile/use.d.ts.map +1 -0
- package/dist/commands/profile/use.js +18 -0
- package/dist/commands/profile/use.js.map +1 -0
- package/dist/commands/recall.d.ts +29 -0
- package/dist/commands/recall.d.ts.map +1 -0
- package/dist/commands/recall.js +94 -0
- package/dist/commands/recall.js.map +1 -0
- package/dist/commands/repo/context.d.ts +24 -0
- package/dist/commands/repo/context.d.ts.map +1 -0
- package/dist/commands/repo/context.js +52 -0
- package/dist/commands/repo/context.js.map +1 -0
- package/dist/commands/repo/graph.d.ts +24 -0
- package/dist/commands/repo/graph.d.ts.map +1 -0
- package/dist/commands/repo/graph.js +72 -0
- package/dist/commands/repo/graph.js.map +1 -0
- package/dist/commands/repo/index/index.d.ts +28 -0
- package/dist/commands/repo/index/index.d.ts.map +1 -0
- package/dist/commands/repo/index/index.js +76 -0
- package/dist/commands/repo/index/index.js.map +1 -0
- package/dist/commands/repo/search.d.ts +22 -0
- package/dist/commands/repo/search.d.ts.map +1 -0
- package/dist/commands/repo/search.js +50 -0
- package/dist/commands/repo/search.js.map +1 -0
- package/dist/commands/repo/setup.d.ts +41 -0
- package/dist/commands/repo/setup.d.ts.map +1 -0
- package/dist/commands/repo/setup.js +144 -0
- package/dist/commands/repo/setup.js.map +1 -0
- package/dist/commands/repo/status.d.ts +31 -0
- package/dist/commands/repo/status.d.ts.map +1 -0
- package/dist/commands/repo/status.js +60 -0
- package/dist/commands/repo/status.js.map +1 -0
- package/dist/commands/restore.d.ts +16 -0
- package/dist/commands/restore.d.ts.map +1 -0
- package/dist/commands/restore.js +53 -0
- package/dist/commands/restore.js.map +1 -0
- package/dist/commands/search.d.ts +14 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +32 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/setup.d.ts +24 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +21 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/stats.d.ts +6 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +16 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/status.d.ts +20 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +33 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/sync/conflicts.d.ts +14 -0
- package/dist/commands/sync/conflicts.d.ts.map +1 -0
- package/dist/commands/sync/conflicts.js +23 -0
- package/dist/commands/sync/conflicts.js.map +1 -0
- package/dist/commands/sync/pull.d.ts +13 -0
- package/dist/commands/sync/pull.d.ts.map +1 -0
- package/dist/commands/sync/pull.js +26 -0
- package/dist/commands/sync/pull.js.map +1 -0
- package/dist/commands/sync/push.d.ts +13 -0
- package/dist/commands/sync/push.d.ts.map +1 -0
- package/dist/commands/sync/push.js +26 -0
- package/dist/commands/sync/push.js.map +1 -0
- package/dist/commands/sync/recover.d.ts +16 -0
- package/dist/commands/sync/recover.d.ts.map +1 -0
- package/dist/commands/sync/recover.js +29 -0
- package/dist/commands/sync/recover.js.map +1 -0
- package/dist/commands/sync/resolve.d.ts +21 -0
- package/dist/commands/sync/resolve.d.ts.map +1 -0
- package/dist/commands/sync/resolve.js +38 -0
- package/dist/commands/sync/resolve.js.map +1 -0
- package/dist/commands/sync/run.d.ts +13 -0
- package/dist/commands/sync/run.d.ts.map +1 -0
- package/dist/commands/sync/run.js +26 -0
- package/dist/commands/sync/run.js.map +1 -0
- package/dist/commands/sync/status.d.ts +13 -0
- package/dist/commands/sync/status.d.ts.map +1 -0
- package/dist/commands/sync/status.js +28 -0
- package/dist/commands/sync/status.js.map +1 -0
- package/dist/commands/topics/list.d.ts +11 -0
- package/dist/commands/topics/list.d.ts.map +1 -0
- package/dist/commands/topics/list.js +20 -0
- package/dist/commands/topics/list.js.map +1 -0
- package/dist/commands/tui.d.ts +10 -0
- package/dist/commands/tui.d.ts.map +1 -0
- package/dist/commands/tui.js +124 -0
- package/dist/commands/tui.js.map +1 -0
- package/dist/commands/up.d.ts +108 -0
- package/dist/commands/up.d.ts.map +1 -0
- package/dist/commands/up.js +210 -0
- package/dist/commands/up.js.map +1 -0
- package/dist/commands/vault/contents.d.ts +14 -0
- package/dist/commands/vault/contents.d.ts.map +1 -0
- package/dist/commands/vault/contents.js +24 -0
- package/dist/commands/vault/contents.js.map +1 -0
- package/dist/commands/vault/create.d.ts +15 -0
- package/dist/commands/vault/create.d.ts.map +1 -0
- package/dist/commands/vault/create.js +26 -0
- package/dist/commands/vault/create.js.map +1 -0
- package/dist/commands/vault/get.d.ts +10 -0
- package/dist/commands/vault/get.d.ts.map +1 -0
- package/dist/commands/vault/get.js +25 -0
- package/dist/commands/vault/get.js.map +1 -0
- package/dist/commands/vault/list.d.ts +7 -0
- package/dist/commands/vault/list.d.ts.map +1 -0
- package/dist/commands/vault/list.js +17 -0
- package/dist/commands/vault/list.js.map +1 -0
- package/dist/commands/web.d.ts +14 -0
- package/dist/commands/web.d.ts.map +1 -0
- package/dist/commands/web.js +50 -0
- package/dist/commands/web.js.map +1 -0
- package/dist/commands/whoami.d.ts +7 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +24 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/hooks/init/launch-menu.d.ts +10 -0
- package/dist/hooks/init/launch-menu.d.ts.map +1 -0
- package/dist/hooks/init/launch-menu.js +11 -0
- package/dist/hooks/init/launch-menu.js.map +1 -0
- package/dist/lib/activate.d.ts +92 -0
- package/dist/lib/activate.d.ts.map +1 -0
- package/dist/lib/activate.js +292 -0
- package/dist/lib/activate.js.map +1 -0
- package/dist/lib/browser.d.ts +30 -0
- package/dist/lib/browser.d.ts.map +1 -0
- package/dist/lib/browser.js +45 -0
- package/dist/lib/browser.js.map +1 -0
- package/dist/lib/chat.d.ts +41 -0
- package/dist/lib/chat.d.ts.map +1 -0
- package/dist/lib/chat.js +63 -0
- package/dist/lib/chat.js.map +1 -0
- package/dist/lib/claude-hooks.d.ts +34 -0
- package/dist/lib/claude-hooks.d.ts.map +1 -0
- package/dist/lib/claude-hooks.js +85 -0
- package/dist/lib/claude-hooks.js.map +1 -0
- package/dist/lib/completion.d.ts +9 -0
- package/dist/lib/completion.d.ts.map +1 -0
- package/dist/lib/completion.js +57 -0
- package/dist/lib/completion.js.map +1 -0
- package/dist/lib/container-engine.d.ts +45 -0
- package/dist/lib/container-engine.d.ts.map +1 -0
- package/dist/lib/container-engine.js +348 -0
- package/dist/lib/container-engine.js.map +1 -0
- package/dist/lib/content.d.ts +9 -0
- package/dist/lib/content.d.ts.map +1 -0
- package/dist/lib/content.js +20 -0
- package/dist/lib/content.js.map +1 -0
- package/dist/lib/doctor-fixture.d.ts +8 -0
- package/dist/lib/doctor-fixture.d.ts.map +1 -0
- package/dist/lib/doctor-fixture.js +50 -0
- package/dist/lib/doctor-fixture.js.map +1 -0
- package/dist/lib/embedding-guard.d.ts +34 -0
- package/dist/lib/embedding-guard.d.ts.map +1 -0
- package/dist/lib/embedding-guard.js +50 -0
- package/dist/lib/embedding-guard.js.map +1 -0
- package/dist/lib/hook-io.d.ts +24 -0
- package/dist/lib/hook-io.d.ts.map +1 -0
- package/dist/lib/hook-io.js +73 -0
- package/dist/lib/hook-io.js.map +1 -0
- package/dist/lib/ingest.d.ts +24 -0
- package/dist/lib/ingest.d.ts.map +1 -0
- package/dist/lib/ingest.js +44 -0
- package/dist/lib/ingest.js.map +1 -0
- package/dist/lib/login.d.ts +40 -0
- package/dist/lib/login.d.ts.map +1 -0
- package/dist/lib/login.js +56 -0
- package/dist/lib/login.js.map +1 -0
- package/dist/lib/pending-captures.d.ts +25 -0
- package/dist/lib/pending-captures.d.ts.map +1 -0
- package/dist/lib/pending-captures.js +143 -0
- package/dist/lib/pending-captures.js.map +1 -0
- package/dist/lib/platform-backup.d.ts +110 -0
- package/dist/lib/platform-backup.d.ts.map +1 -0
- package/dist/lib/platform-backup.js +579 -0
- package/dist/lib/platform-backup.js.map +1 -0
- package/dist/lib/platform-command-shared.d.ts +132 -0
- package/dist/lib/platform-command-shared.d.ts.map +1 -0
- package/dist/lib/platform-command-shared.js +159 -0
- package/dist/lib/platform-command-shared.js.map +1 -0
- package/dist/lib/platform-frontdoor-runtime.d.ts +33 -0
- package/dist/lib/platform-frontdoor-runtime.d.ts.map +1 -0
- package/dist/lib/platform-frontdoor-runtime.js +285 -0
- package/dist/lib/platform-frontdoor-runtime.js.map +1 -0
- package/dist/lib/platform-frontdoor.d.ts +155 -0
- package/dist/lib/platform-frontdoor.d.ts.map +1 -0
- package/dist/lib/platform-frontdoor.js +467 -0
- package/dist/lib/platform-frontdoor.js.map +1 -0
- package/dist/lib/platform-image-source.d.ts +81 -0
- package/dist/lib/platform-image-source.d.ts.map +1 -0
- package/dist/lib/platform-image-source.js +143 -0
- package/dist/lib/platform-image-source.js.map +1 -0
- package/dist/lib/platform-lifecycle.d.ts +112 -0
- package/dist/lib/platform-lifecycle.d.ts.map +1 -0
- package/dist/lib/platform-lifecycle.js +725 -0
- package/dist/lib/platform-lifecycle.js.map +1 -0
- package/dist/lib/platform-onboarding.d.ts +128 -0
- package/dist/lib/platform-onboarding.d.ts.map +1 -0
- package/dist/lib/platform-onboarding.js +227 -0
- package/dist/lib/platform-onboarding.js.map +1 -0
- package/dist/lib/platform-preflight.d.ts +48 -0
- package/dist/lib/platform-preflight.d.ts.map +1 -0
- package/dist/lib/platform-preflight.js +90 -0
- package/dist/lib/platform-preflight.js.map +1 -0
- package/dist/lib/platform-profile-purge.d.ts +18 -0
- package/dist/lib/platform-profile-purge.d.ts.map +1 -0
- package/dist/lib/platform-profile-purge.js +26 -0
- package/dist/lib/platform-profile-purge.js.map +1 -0
- package/dist/lib/platform-provider-fields.d.ts +2 -0
- package/dist/lib/platform-provider-fields.d.ts.map +1 -0
- package/dist/lib/platform-provider-fields.js +2 -0
- package/dist/lib/platform-provider-fields.js.map +1 -0
- package/dist/lib/platform-provider-probe.d.ts +75 -0
- package/dist/lib/platform-provider-probe.d.ts.map +1 -0
- package/dist/lib/platform-provider-probe.js +781 -0
- package/dist/lib/platform-provider-probe.js.map +1 -0
- package/dist/lib/platform-provider-prompt.d.ts +118 -0
- package/dist/lib/platform-provider-prompt.d.ts.map +1 -0
- package/dist/lib/platform-provider-prompt.js +245 -0
- package/dist/lib/platform-provider-prompt.js.map +1 -0
- package/dist/lib/platform-release-manifest.d.ts +34 -0
- package/dist/lib/platform-release-manifest.d.ts.map +1 -0
- package/dist/lib/platform-release-manifest.js +100 -0
- package/dist/lib/platform-release-manifest.js.map +1 -0
- package/dist/lib/platform-runtime.d.ts +212 -0
- package/dist/lib/platform-runtime.d.ts.map +1 -0
- package/dist/lib/platform-runtime.js +866 -0
- package/dist/lib/platform-runtime.js.map +1 -0
- package/dist/lib/poll.d.ts +9 -0
- package/dist/lib/poll.d.ts.map +1 -0
- package/dist/lib/poll.js +18 -0
- package/dist/lib/poll.js.map +1 -0
- package/dist/lib/prompt.d.ts +7 -0
- package/dist/lib/prompt.d.ts.map +1 -0
- package/dist/lib/prompt.js +28 -0
- package/dist/lib/prompt.js.map +1 -0
- package/dist/lib/provider-presets.d.ts +108 -0
- package/dist/lib/provider-presets.d.ts.map +1 -0
- package/dist/lib/provider-presets.js +184 -0
- package/dist/lib/provider-presets.js.map +1 -0
- package/dist/lib/recall.d.ts +32 -0
- package/dist/lib/recall.d.ts.map +1 -0
- package/dist/lib/recall.js +69 -0
- package/dist/lib/recall.js.map +1 -0
- package/dist/lib/redact.d.ts +41 -0
- package/dist/lib/redact.d.ts.map +1 -0
- package/dist/lib/redact.js +130 -0
- package/dist/lib/redact.js.map +1 -0
- package/dist/lib/render.d.ts +55 -0
- package/dist/lib/render.d.ts.map +1 -0
- package/dist/lib/render.js +172 -0
- package/dist/lib/render.js.map +1 -0
- package/dist/lib/repo-binding.d.ts +53 -0
- package/dist/lib/repo-binding.d.ts.map +1 -0
- package/dist/lib/repo-binding.js +127 -0
- package/dist/lib/repo-binding.js.map +1 -0
- package/dist/lib/repo-command-support.d.ts +18 -0
- package/dist/lib/repo-command-support.d.ts.map +1 -0
- package/dist/lib/repo-command-support.js +54 -0
- package/dist/lib/repo-command-support.js.map +1 -0
- package/dist/lib/seal-core.d.ts +34 -0
- package/dist/lib/seal-core.d.ts.map +1 -0
- package/dist/lib/seal-core.js +154 -0
- package/dist/lib/seal-core.js.map +1 -0
- package/dist/lib/setup-console.d.ts +46 -0
- package/dist/lib/setup-console.d.ts.map +1 -0
- package/dist/lib/setup-console.js +191 -0
- package/dist/lib/setup-console.js.map +1 -0
- package/dist/lib/setup-page.d.ts +21 -0
- package/dist/lib/setup-page.d.ts.map +1 -0
- package/dist/lib/setup-page.js +656 -0
- package/dist/lib/setup-page.js.map +1 -0
- package/dist/lib/setup-plan.d.ts +52 -0
- package/dist/lib/setup-plan.d.ts.map +1 -0
- package/dist/lib/setup-plan.js +154 -0
- package/dist/lib/setup-plan.js.map +1 -0
- package/dist/lib/setup-server.d.ts +71 -0
- package/dist/lib/setup-server.d.ts.map +1 -0
- package/dist/lib/setup-server.js +936 -0
- package/dist/lib/setup-server.js.map +1 -0
- package/dist/lib/tui.d.ts +77 -0
- package/dist/lib/tui.d.ts.map +1 -0
- package/dist/lib/tui.js +126 -0
- package/dist/lib/tui.js.map +1 -0
- package/dist/lib/ui.d.ts +23 -0
- package/dist/lib/ui.d.ts.map +1 -0
- package/dist/lib/ui.js +100 -0
- package/dist/lib/ui.js.map +1 -0
- package/dist/lib/vault.d.ts +10 -0
- package/dist/lib/vault.d.ts.map +1 -0
- package/dist/lib/vault.js +18 -0
- package/dist/lib/vault.js.map +1 -0
- package/dist/menu/forms.d.ts +13 -0
- package/dist/menu/forms.d.ts.map +1 -0
- package/dist/menu/forms.js +45 -0
- package/dist/menu/forms.js.map +1 -0
- package/dist/menu/frontends.d.ts +32 -0
- package/dist/menu/frontends.d.ts.map +1 -0
- package/dist/menu/frontends.js +31 -0
- package/dist/menu/frontends.js.map +1 -0
- package/dist/menu/help.d.ts +11 -0
- package/dist/menu/help.d.ts.map +1 -0
- package/dist/menu/help.js +33 -0
- package/dist/menu/help.js.map +1 -0
- package/dist/menu/palette.d.ts +28 -0
- package/dist/menu/palette.d.ts.map +1 -0
- package/dist/menu/palette.js +57 -0
- package/dist/menu/palette.js.map +1 -0
- package/dist/menu/reducer.d.ts +19 -0
- package/dist/menu/reducer.d.ts.map +1 -0
- package/dist/menu/reducer.js +37 -0
- package/dist/menu/reducer.js.map +1 -0
- package/dist/menu/run.d.ts +34 -0
- package/dist/menu/run.d.ts.map +1 -0
- package/dist/menu/run.js +490 -0
- package/dist/menu/run.js.map +1 -0
- package/dist/menu/screens.d.ts +15 -0
- package/dist/menu/screens.d.ts.map +1 -0
- package/dist/menu/screens.js +251 -0
- package/dist/menu/screens.js.map +1 -0
- package/dist/menu/should-launch.d.ts +19 -0
- package/dist/menu/should-launch.d.ts.map +1 -0
- package/dist/menu/should-launch.js +22 -0
- package/dist/menu/should-launch.js.map +1 -0
- package/dist/menu/types.d.ts +95 -0
- package/dist/menu/types.d.ts.map +1 -0
- package/dist/menu/types.js +7 -0
- package/dist/menu/types.js.map +1 -0
- package/oclif.manifest.json +7995 -0
- package/package.json +133 -0
|
@@ -0,0 +1,444 @@
|
|
|
1
|
+
# Knowz Portable — customer-runnable PULL kit (spec OPS_PortableImageRelease N2 / R6).
|
|
2
|
+
# Requires Docker Compose v2.20+ (`depends_on.required` and external deactivation overlays).
|
|
3
|
+
#
|
|
4
|
+
# ZERO-SOURCE: every app service pulls a PREBUILT private GHCR image (no build context, no repo checkout).
|
|
5
|
+
# Derived from the in-repo docker-compose.portable.yml, with every `build:` block replaced by an `image:`
|
|
6
|
+
# ref. Seven services, ZERO Azure resources: Postgres+pgvector, MinIO, Redis, the platform API, the
|
|
7
|
+
# Knowz.Worker enrichment host, the SPA, and the MCP server.
|
|
8
|
+
#
|
|
9
|
+
# QUICKSTART (see docs/CUSTOMER_PORTABLE_QUICKSTART.md):
|
|
10
|
+
# docker login ghcr.io # with your GHCR_PULL_TOKEN (read:packages)
|
|
11
|
+
# cp .env.example .env # then edit .env: KNOWZ_VERSION + REAL secrets
|
|
12
|
+
# docker compose -f docker-compose.yml up -d
|
|
13
|
+
#
|
|
14
|
+
# IMAGE SELECTION:
|
|
15
|
+
# KNOWZ_VERSION — the platform release, e.g. 0.2.0 (REQUIRED; fail-closed).
|
|
16
|
+
# KNOWZ_FLAVOR — "" (empty, default) pulls the Azure/stub/BYO-OpenAI-compat portable build;
|
|
17
|
+
# "-gcp" pulls the Vertex-flavored portable build. api/worker => :X.Y.Z-portable[-gcp];
|
|
18
|
+
# web/mcp are cloud-neutral => plain :X.Y.Z.
|
|
19
|
+
#
|
|
20
|
+
# FAIL-CLOSED CREDS: every secret uses ${VAR:?message} — `up` aborts with a clear message if any is unset.
|
|
21
|
+
# There are NO committed prod-shaped defaults.
|
|
22
|
+
#
|
|
23
|
+
# Access: web http://localhost:3000 | API http://localhost:5000/swagger | MCP http://localhost:3001.
|
|
24
|
+
# Postgres, Redis, and MinIO are intentionally available only on the internal Compose network.
|
|
25
|
+
|
|
26
|
+
services:
|
|
27
|
+
# ── Postgres + pgvector: KnowzMaster + KnowzKnowledge, `vector` + `pg_trgm` extensions ─────────────
|
|
28
|
+
postgres:
|
|
29
|
+
image: pgvector/pgvector:pg16
|
|
30
|
+
# Register enlists MasterDb + KnowledgeDb in one TransactionScope, which Npgsql
|
|
31
|
+
# escalates to a 2PC PREPARE TRANSACTION across the two databases. The pgvector
|
|
32
|
+
# image defaults max_prepared_transactions=0 (→ 55000 "prepared transactions are
|
|
33
|
+
# disabled"); enable it (sized to match the default max_connections).
|
|
34
|
+
command: ["postgres", "-c", "max_prepared_transactions=100"]
|
|
35
|
+
environment:
|
|
36
|
+
POSTGRES_USER: "${PG_USER:-knowz}"
|
|
37
|
+
POSTGRES_PASSWORD: "${PG_PASSWORD:?PG_PASSWORD must be set in .env}"
|
|
38
|
+
POSTGRES_DB: postgres
|
|
39
|
+
volumes:
|
|
40
|
+
- knowz-portable-pgdata:/var/lib/postgresql/data
|
|
41
|
+
# Kit-local init (shipped in this directory) — creates the DBs + extensions on first cluster init.
|
|
42
|
+
- ./postgres-initdb:/docker-entrypoint-initdb.d:ro
|
|
43
|
+
healthcheck:
|
|
44
|
+
# Succeeds only once the init script has created KnowzKnowledge — gates API/worker start on a ready DB.
|
|
45
|
+
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d KnowzKnowledge"]
|
|
46
|
+
interval: 5s
|
|
47
|
+
timeout: 5s
|
|
48
|
+
retries: 20
|
|
49
|
+
start_period: 20s
|
|
50
|
+
|
|
51
|
+
# ── MinIO: S3-compatible object store ──────────────────────────────────────────────────────────────
|
|
52
|
+
minio:
|
|
53
|
+
image: minio/minio:latest
|
|
54
|
+
command: server /data --console-address ":9001"
|
|
55
|
+
environment:
|
|
56
|
+
MINIO_ROOT_USER: "${MINIO_ROOT_USER:-knowzminio}"
|
|
57
|
+
MINIO_ROOT_PASSWORD: "${MINIO_ROOT_PASSWORD:?MINIO_ROOT_PASSWORD must be set in .env (>=8 chars)}"
|
|
58
|
+
volumes:
|
|
59
|
+
- knowz-portable-miniodata:/data
|
|
60
|
+
healthcheck:
|
|
61
|
+
test: ["CMD-SHELL", "mc ready local || curl -f http://localhost:9000/minio/health/ready || exit 1"]
|
|
62
|
+
interval: 10s
|
|
63
|
+
timeout: 5s
|
|
64
|
+
retries: 10
|
|
65
|
+
start_period: 10s
|
|
66
|
+
|
|
67
|
+
# ── One-shot: wait for MinIO, create the portable bucket, then exit (gates API/worker on bucket-ready) ─
|
|
68
|
+
minio-createbucket:
|
|
69
|
+
image: minio/mc:latest
|
|
70
|
+
depends_on:
|
|
71
|
+
minio:
|
|
72
|
+
condition: service_started
|
|
73
|
+
environment:
|
|
74
|
+
MINIO_ROOT_USER: "${MINIO_ROOT_USER:-knowzminio}"
|
|
75
|
+
MINIO_ROOT_PASSWORD: "${MINIO_ROOT_PASSWORD:?MINIO_ROOT_PASSWORD must be set in .env}"
|
|
76
|
+
MINIO_BUCKET: "${MINIO_BUCKET:-knowz-portable}"
|
|
77
|
+
MINIO_APP_ACCESS_KEY: "${MINIO_APP_ACCESS_KEY:-knowzapp}"
|
|
78
|
+
MINIO_APP_SECRET_KEY: "${MINIO_APP_SECRET_KEY:?MINIO_APP_SECRET_KEY must be set in .env}"
|
|
79
|
+
entrypoint: >
|
|
80
|
+
/bin/sh -c "
|
|
81
|
+
until mc alias set local http://minio:9000 \"$${MINIO_ROOT_USER}\" \"$${MINIO_ROOT_PASSWORD}\"; do
|
|
82
|
+
echo 'waiting for minio...'; sleep 2;
|
|
83
|
+
done;
|
|
84
|
+
mc mb --ignore-existing local/$${MINIO_BUCKET};
|
|
85
|
+
mc anonymous set none local/$${MINIO_BUCKET} || true;
|
|
86
|
+
printf '{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"s3:GetBucketLocation\",\"s3:ListBucket\",\"s3:ListBucketMultipartUploads\"],\"Resource\":[\"arn:aws:s3:::%s\"]},{\"Effect\":\"Allow\",\"Action\":[\"s3:GetObject\",\"s3:PutObject\",\"s3:DeleteObject\",\"s3:AbortMultipartUpload\",\"s3:ListMultipartUploadParts\"],\"Resource\":[\"arn:aws:s3:::%s/*\"]}]}\n' "$${MINIO_BUCKET}" "$${MINIO_BUCKET}" > /tmp/knowz-portable-app-policy.json;
|
|
87
|
+
mc admin policy create local knowz-portable-app /tmp/knowz-portable-app-policy.json;
|
|
88
|
+
mc admin user add local "$${MINIO_APP_ACCESS_KEY}" "$${MINIO_APP_SECRET_KEY}";
|
|
89
|
+
mc admin policy attach local knowz-portable-app --user "$${MINIO_APP_ACCESS_KEY}";
|
|
90
|
+
echo 'private bucket and scoped application identity ready';
|
|
91
|
+
"
|
|
92
|
+
|
|
93
|
+
# ── Redis: cache / model-selector cache ────────────────────────────────────────────────────────────
|
|
94
|
+
redis:
|
|
95
|
+
image: redis:7
|
|
96
|
+
healthcheck:
|
|
97
|
+
test: ["CMD", "redis-cli", "ping"]
|
|
98
|
+
interval: 10s
|
|
99
|
+
timeout: 3s
|
|
100
|
+
retries: 10
|
|
101
|
+
start_period: 5s
|
|
102
|
+
|
|
103
|
+
# ── API: platform API. Auto-creates the Postgres schema on first boot; publishes jobs to PortableQueueJobs ─
|
|
104
|
+
api:
|
|
105
|
+
# Prebuilt portable image. ""=azure/stub/BYO-OpenAI-compat build; KNOWZ_FLAVOR=-gcp => Vertex build.
|
|
106
|
+
image: "${KNOWZ_REGISTRY:-ghcr.io/knowz-io}/knowz-api:${KNOWZ_VERSION:?KNOWZ_VERSION must be set in .env (the platform release, e.g. 0.2.0)}-portable${KNOWZ_FLAVOR:-}"
|
|
107
|
+
ports:
|
|
108
|
+
- "${BIND_ADDRESS:-127.0.0.1}:${API_PORT:-5000}:8080"
|
|
109
|
+
depends_on:
|
|
110
|
+
postgres:
|
|
111
|
+
condition: service_healthy
|
|
112
|
+
required: false
|
|
113
|
+
redis:
|
|
114
|
+
condition: service_healthy
|
|
115
|
+
required: false
|
|
116
|
+
minio-createbucket:
|
|
117
|
+
condition: service_completed_successfully
|
|
118
|
+
required: false
|
|
119
|
+
# Reach a host-local OpenAI-compatible endpoint (e.g. Ollama on the host) at host.docker.internal.
|
|
120
|
+
extra_hosts:
|
|
121
|
+
- "host.docker.internal:host-gateway"
|
|
122
|
+
environment:
|
|
123
|
+
ASPNETCORE_ENVIRONMENT: Staging
|
|
124
|
+
ASPNETCORE_URLS: http://+:8080
|
|
125
|
+
|
|
126
|
+
# ── Portable substrate provider switches (the three subsystem axes) ──────────────────────────
|
|
127
|
+
Knowz__Database__Provider: Postgres
|
|
128
|
+
Knowz__Queue__Provider: Postgres
|
|
129
|
+
Knowz__Storage__Provider: "${STORAGE_PROVIDER:-MinioS3}"
|
|
130
|
+
Knowz__Storage__FileSystem__RootPath: "/data/objects"
|
|
131
|
+
Knowz__Search__Provider: Postgres
|
|
132
|
+
|
|
133
|
+
# ── Postgres connection strings (Npgsql format) + first-boot schema bring-up ─────────────────
|
|
134
|
+
ConnectionStrings__KnowledgeDb: "Host=${PG_HOST:-postgres};Port=${PG_PORT:-5432};Database=KnowzKnowledge;Username=${PG_USER:-knowz};Password=${PG_PASSWORD:?PG_PASSWORD must be set};Ssl Mode=${PG_SSL_MODE:-Prefer}${PG_EXTRA_OPTIONS:-}"
|
|
135
|
+
ConnectionStrings__MasterDb: "Host=${PG_HOST:-postgres};Port=${PG_PORT:-5432};Database=KnowzMaster;Username=${PG_USER:-knowz};Password=${PG_PASSWORD:?PG_PASSWORD must be set};Ssl Mode=${PG_SSL_MODE:-Prefer}${PG_EXTRA_OPTIONS:-}"
|
|
136
|
+
Database__AutoMigrate: "true"
|
|
137
|
+
|
|
138
|
+
# ── Embedding (offline deterministic stub by default; MUST match the pgvector column dim) ──────
|
|
139
|
+
Embedding__Provider: "${EMBEDDING_PROVIDER:-Stub}"
|
|
140
|
+
Embedding__ModelName: "${EMBEDDING_MODEL_NAME:-text-embedding-3-small}"
|
|
141
|
+
Embedding__Dimensions: "${EMBEDDING_DIMENSIONS:-1536}"
|
|
142
|
+
Embedding__Endpoint: "${EMBEDDING_ENDPOINT:-}"
|
|
143
|
+
Embedding__ApiKey: "${EMBEDDING_API_KEY:-}"
|
|
144
|
+
# OpenAI direct is configured through the OpenAiCompat provider (Option A), not Embedding__Provider.
|
|
145
|
+
OpenAI__ApiKey: "${OPENAI_API_KEY:-}"
|
|
146
|
+
|
|
147
|
+
# ── MinIO object storage + its credential (via the portable config-backed ISecretStore) ──────
|
|
148
|
+
Knowz__Storage__Minio__Endpoint: "${S3_ENDPOINT:-http://minio:9000}"
|
|
149
|
+
Knowz__Storage__Minio__Bucket: "${MINIO_BUCKET:-knowz-portable}"
|
|
150
|
+
Knowz__Storage__Minio__ForcePathStyle: "${S3_FORCE_PATH_STYLE:-true}"
|
|
151
|
+
Knowz__Storage__Minio__Region: "${S3_REGION:-us-east-1}"
|
|
152
|
+
PortableSecrets__MinioAccessKeyId: "${MINIO_APP_ACCESS_KEY:-knowzapp}"
|
|
153
|
+
PortableSecrets__MinioSecretAccessKey: "${MINIO_APP_SECRET_KEY:?MINIO_APP_SECRET_KEY must be set}"
|
|
154
|
+
|
|
155
|
+
# ── Redis ─────────────────────────────────────────────────────────────────────────────────────
|
|
156
|
+
Redis__ConnectionString: "${REDIS_CONNECTION_STRING:-redis:6379}"
|
|
157
|
+
ConnectionStrings__Redis: "${REDIS_CONNECTION_STRING:-redis:6379}"
|
|
158
|
+
DataProtection__KeyRingPath: "/var/lib/knowz/data-protection-keys"
|
|
159
|
+
|
|
160
|
+
# ── Licensing: empty defaults preserve the unlinked portable behavior ──────────────────────
|
|
161
|
+
Knowz__Licensing__MothershipUrl: "${KNOWZ_LICENSING_MOTHERSHIP_URL:-}"
|
|
162
|
+
Knowz__Licensing__InstallCredential: "${KNOWZ_LICENSING_INSTALL_CREDENTIAL:-}"
|
|
163
|
+
Knowz__Licensing__InstallationId: "${KNOWZ_LICENSING_INSTALLATION_ID:-}"
|
|
164
|
+
|
|
165
|
+
# ── Auth — fail-closed (omit any of these and `up` aborts) ────────────────────────────────────
|
|
166
|
+
Jwt__Secret: "${JWT_SECRET:?JWT_SECRET must be set in .env (>=32 random chars)}"
|
|
167
|
+
Jwt__Key: "${JWT_SECRET}"
|
|
168
|
+
JwtSettings__Secret: "${JWT_SECRET}"
|
|
169
|
+
Authentication__Jwt__Secret: "${JWT_SECRET}"
|
|
170
|
+
SuperAdmin__Passphrase: "${SUPERADMIN_PASSPHRASE:?SUPERADMIN_PASSPHRASE must be set in .env}"
|
|
171
|
+
|
|
172
|
+
# ── MCP service-to-service key (must match the mcp container) ────────────────────────────────
|
|
173
|
+
MCP__ServiceKey: "${MCP_SERVICE_KEY:?MCP_SERVICE_KEY must be set in .env}"
|
|
174
|
+
|
|
175
|
+
InternalApi__Key: "${INTERNAL_API_KEY:?INTERNAL_API_KEY must be set in .env (must match worker)}"
|
|
176
|
+
|
|
177
|
+
PlatformOrganization__Slug: "${PLATFORM_ORG_SLUG:-knowz}"
|
|
178
|
+
PlatformOrganization__Name: "${PLATFORM_ORG_NAME:-Knowz}"
|
|
179
|
+
|
|
180
|
+
AzureOpenAI__Endpoint: "${AZURE_OPENAI_ENDPOINT:-}"
|
|
181
|
+
AzureOpenAI__ApiKey: "${AZURE_OPENAI_API_KEY:-}"
|
|
182
|
+
PortableSecrets__openai--primary--key: "${AZURE_OPENAI_API_KEY:-}"
|
|
183
|
+
|
|
184
|
+
# ── BYOK cloud perception (optional; each cloud axis is opt-in and customer-billed) ──────────
|
|
185
|
+
AzureAIVision__Endpoint: "${AZUREAIVISION__ENDPOINT:-}"
|
|
186
|
+
AzureAIVision__ApiKey: "${AZUREAIVISION__APIKEY:-}"
|
|
187
|
+
AzureAIVision__Features: "${AZUREAIVISION__FEATURES:-}"
|
|
188
|
+
DocumentIntelligence__Endpoint: "${DOCUMENTINTELLIGENCE__ENDPOINT:-}"
|
|
189
|
+
DocumentIntelligence__ApiKey: "${DOCUMENTINTELLIGENCE__APIKEY:-}"
|
|
190
|
+
DocumentIntelligence__UseManagedIdentity: "${DOCUMENTINTELLIGENCE__USEMANAGEDIDENTITY:-false}"
|
|
191
|
+
AzureOpenAI__WhisperDeploymentName: "${AZUREOPENAI__WHISPERDEPLOYMENTNAME:-}"
|
|
192
|
+
AzureOpenAI__TranscriptionDeploymentName: "${AZUREOPENAI__TRANSCRIPTIONDEPLOYMENTNAME:-}"
|
|
193
|
+
AzureOpenAI__Transcription__Endpoint: "${AZUREOPENAI__TRANSCRIPTION__ENDPOINT:-}"
|
|
194
|
+
AzureOpenAI__Transcription__ApiKey: "${AZUREOPENAI__TRANSCRIPTION__APIKEY:-}"
|
|
195
|
+
AssemblyAi__ApiKey: "${ASSEMBLYAI__APIKEY:-}"
|
|
196
|
+
AssemblyAi__EnableBatchPremiumTier: "${ASSEMBLYAI__ENABLEBATCHPREMIUMTIER:-false}"
|
|
197
|
+
Knowz__CloudProvider__RealtimeTranscription: "${KNOWZ__CLOUDPROVIDER__REALTIMETRANSCRIPTION:-}"
|
|
198
|
+
Enrichment__FaceRecognition__Enabled: "${ENRICHMENT__FACERECOGNITION__ENABLED:-false}"
|
|
199
|
+
FaceRecognition__MatchThreshold: "${FACERECOGNITION__MATCHTHRESHOLD:-}"
|
|
200
|
+
|
|
201
|
+
# ── CORS: allow the SPA origin ──────────────────────────────────────────────────────────────
|
|
202
|
+
KNOWZ_EXTRA_CORS_ORIGINS: "${PUBLIC_WEB_ORIGIN:-http://localhost:${WEB_PORT:-3000}}"
|
|
203
|
+
|
|
204
|
+
# ── Outbound link origin ────────────────────────────────────────────────────────────────────
|
|
205
|
+
# Every mailed link (invites, verification, share CTAs, /m/{shortCode}) and the device-code
|
|
206
|
+
# approval URL resolve through WebAppUrl. Left unset, the image's baked appsettings.json wins
|
|
207
|
+
# and a customer's portable install mails links to https://dev.knowz.io — Knowz's own dev
|
|
208
|
+
# environment. Confirmed live on a 0.34.4 portable install, 2026-07-28.
|
|
209
|
+
WebAppUrl: "${PUBLIC_WEB_ORIGIN:-http://localhost:${WEB_PORT:-3000}}"
|
|
210
|
+
PUBLIC_WEB_ORIGIN: "${PUBLIC_WEB_ORIGIN:-http://localhost:${WEB_PORT:-3000}}"
|
|
211
|
+
|
|
212
|
+
# ── AI provider selection (all optional; empty => offline stub, so the default `up` is unchanged) ─
|
|
213
|
+
# * Google Vertex (Gemini): KNOWZ_FLAVOR=-gcp image + KNOWZ__CLOUDPROVIDER__AI=Gcp + VERTEX__PROJECT,
|
|
214
|
+
# ADC mounted read-only below. * BYO OpenAI-compatible (OpenAI/Together/Ollama/vLLM/LM Studio):
|
|
215
|
+
# KNOWZ__CLOUDPROVIDER__AI=OpenAiCompat + OPENAICOMPAT__ENDPOINT/CHATMODEL/EMBEDDINGMODEL
|
|
216
|
+
# (works on the default "" flavor — vendor-neutral, no -gcp image needed). See the quickstart. ──
|
|
217
|
+
Knowz__CloudProvider: "${KNOWZ__CLOUDPROVIDER:-}"
|
|
218
|
+
Knowz__CloudProvider__Ai: "${KNOWZ__CLOUDPROVIDER__AI:-}"
|
|
219
|
+
Knowz__CloudProvider__DocIntelligence: "${KNOWZ__CLOUDPROVIDER__DOCINTELLIGENCE:-}"
|
|
220
|
+
Knowz__CloudProvider__Vision: "${KNOWZ__CLOUDPROVIDER__VISION:-}"
|
|
221
|
+
Knowz__CloudProvider__Transcription: "${KNOWZ__CLOUDPROVIDER__TRANSCRIPTION:-}"
|
|
222
|
+
Vertex__Project: "${VERTEX__PROJECT:-}"
|
|
223
|
+
Vertex__Region: "${VERTEX__REGION:-}"
|
|
224
|
+
Vertex__ChatModel: "${VERTEX__CHATMODEL:-}"
|
|
225
|
+
Vertex__EmbeddingModel: "${VERTEX__EMBEDDINGMODEL:-}"
|
|
226
|
+
Vertex__EmbeddingDimensions: "${VERTEX__EMBEDDINGDIMENSIONS:-1536}"
|
|
227
|
+
# BYO OpenAI-compatible endpoint (N3). ChatModel + EmbeddingModel are REQUIRED when selected (no
|
|
228
|
+
# universal default — boot fails loud naming the key). ApiKey optional (Ollama/vLLM run keyless).
|
|
229
|
+
# EmbeddingDimensions MUST match Embedding__Dimensions / the pgvector column (local models often 384/768).
|
|
230
|
+
OpenAiCompat__Endpoint: "${OPENAICOMPAT__ENDPOINT:-}"
|
|
231
|
+
OpenAiCompat__ApiKey: "${OPENAICOMPAT__APIKEY:-}"
|
|
232
|
+
OpenAiCompat__ChatModel: "${OPENAICOMPAT__CHATMODEL:-}"
|
|
233
|
+
OpenAiCompat__EmbeddingModel: "${OPENAICOMPAT__EMBEDDINGMODEL:-}"
|
|
234
|
+
OpenAiCompat__EmbeddingDimensions: "${OPENAICOMPAT__EMBEDDINGDIMENSIONS:-}"
|
|
235
|
+
# Points at the neutral read-only ADC mount below only when host ADC is configured. Keeping the
|
|
236
|
+
# well-known gcloud path vacant lets Google's credential chain reach GCE metadata ADC when unset.
|
|
237
|
+
GOOGLE_APPLICATION_CREDENTIALS: "${GCLOUD_ADC_PATH:+/gcloud/adc.json}"
|
|
238
|
+
volumes:
|
|
239
|
+
# Host Application Default Credentials, READ-ONLY (:ro) — NO service-account key files. Defaults to
|
|
240
|
+
# /dev/null (always present, inert) so the stub/offline/OpenAI-compat default `up` still works; for the
|
|
241
|
+
# Google AI flavor run `gcloud auth application-default login` once on the host, then set
|
|
242
|
+
# GCLOUD_ADC_PATH to the ABSOLUTE path of ~/.config/gcloud/application_default_credentials.json in .env.
|
|
243
|
+
- "${GCLOUD_ADC_PATH:-/dev/null}:/gcloud/adc.json:ro"
|
|
244
|
+
- knowz-portable-objectsdata:/data/objects
|
|
245
|
+
- knowz-portable-identity:/var/lib/knowz/identity
|
|
246
|
+
- knowz-portable-dpkeys:/var/lib/knowz/data-protection-keys
|
|
247
|
+
# The aspnet:10.0 runtime image ships no curl/wget — run an HTTP readiness probe
|
|
248
|
+
# over bash /dev/tcp and assert a 200 status line (/health/ready, /healthz fallback).
|
|
249
|
+
# Migrations complete before Kestrel binds 8080, so a 200 means the API is ready.
|
|
250
|
+
healthcheck:
|
|
251
|
+
test:
|
|
252
|
+
- CMD-SHELL
|
|
253
|
+
- >-
|
|
254
|
+
timeout 5 bash -c '{ exec 3<>/dev/tcp/127.0.0.1/8080 && printf "GET /health/ready HTTP/1.0\r\n\r\n" >&3 && head -1 <&3 | grep -q 200; } || { exec 3<>/dev/tcp/127.0.0.1/8080 && printf "GET /healthz HTTP/1.0\r\n\r\n" >&3 && head -1 <&3 | grep -q 200; }'
|
|
255
|
+
interval: 15s
|
|
256
|
+
timeout: 10s
|
|
257
|
+
retries: 10
|
|
258
|
+
start_period: 90s
|
|
259
|
+
|
|
260
|
+
# ── Worker: Knowz.Worker BackgroundService — drains PortableQueueJobs + enrichment auto-driver ─────
|
|
261
|
+
worker:
|
|
262
|
+
image: "${KNOWZ_REGISTRY:-ghcr.io/knowz-io}/knowz-worker:${KNOWZ_VERSION:?KNOWZ_VERSION must be set in .env (the platform release, e.g. 0.2.0)}-portable${KNOWZ_FLAVOR:-}"
|
|
263
|
+
depends_on:
|
|
264
|
+
postgres:
|
|
265
|
+
condition: service_healthy
|
|
266
|
+
required: false
|
|
267
|
+
redis:
|
|
268
|
+
condition: service_healthy
|
|
269
|
+
required: false
|
|
270
|
+
minio-createbucket:
|
|
271
|
+
condition: service_completed_successfully
|
|
272
|
+
required: false
|
|
273
|
+
api:
|
|
274
|
+
condition: service_healthy
|
|
275
|
+
extra_hosts:
|
|
276
|
+
- "host.docker.internal:host-gateway"
|
|
277
|
+
environment:
|
|
278
|
+
DOTNET_ENVIRONMENT: Staging
|
|
279
|
+
ASPNETCORE_ENVIRONMENT: Staging
|
|
280
|
+
|
|
281
|
+
Knowz__Database__Provider: Postgres
|
|
282
|
+
Knowz__Queue__Provider: Postgres
|
|
283
|
+
Knowz__Storage__Provider: "${STORAGE_PROVIDER:-MinioS3}"
|
|
284
|
+
Knowz__Storage__FileSystem__RootPath: "/data/objects"
|
|
285
|
+
Knowz__Search__Provider: Postgres
|
|
286
|
+
|
|
287
|
+
# Same reason as on the api service: the Worker mails links too (summaries, engagement
|
|
288
|
+
# invites), and without this it inherits the image's baked https://dev.knowz.io.
|
|
289
|
+
WebAppUrl: "${PUBLIC_WEB_ORIGIN:-http://localhost:${WEB_PORT:-3000}}"
|
|
290
|
+
|
|
291
|
+
ConnectionStrings__KnowledgeDb: "Host=${PG_HOST:-postgres};Port=${PG_PORT:-5432};Database=KnowzKnowledge;Username=${PG_USER:-knowz};Password=${PG_PASSWORD:?PG_PASSWORD must be set};Ssl Mode=${PG_SSL_MODE:-Prefer}${PG_EXTRA_OPTIONS:-}"
|
|
292
|
+
ConnectionStrings__MasterDb: "Host=${PG_HOST:-postgres};Port=${PG_PORT:-5432};Database=KnowzMaster;Username=${PG_USER:-knowz};Password=${PG_PASSWORD:?PG_PASSWORD must be set};Ssl Mode=${PG_SSL_MODE:-Prefer}${PG_EXTRA_OPTIONS:-}"
|
|
293
|
+
Database__AutoMigrate: "false"
|
|
294
|
+
|
|
295
|
+
Embedding__Provider: "${EMBEDDING_PROVIDER:-Stub}"
|
|
296
|
+
Embedding__ModelName: "${EMBEDDING_MODEL_NAME:-text-embedding-3-small}"
|
|
297
|
+
Embedding__Dimensions: "${EMBEDDING_DIMENSIONS:-1536}"
|
|
298
|
+
Embedding__Endpoint: "${EMBEDDING_ENDPOINT:-}"
|
|
299
|
+
Embedding__ApiKey: "${EMBEDDING_API_KEY:-}"
|
|
300
|
+
OpenAI__ApiKey: "${OPENAI_API_KEY:-}"
|
|
301
|
+
|
|
302
|
+
Knowz__Storage__Minio__Endpoint: "${S3_ENDPOINT:-http://minio:9000}"
|
|
303
|
+
Knowz__Storage__Minio__Bucket: "${MINIO_BUCKET:-knowz-portable}"
|
|
304
|
+
Knowz__Storage__Minio__ForcePathStyle: "${S3_FORCE_PATH_STYLE:-true}"
|
|
305
|
+
Knowz__Storage__Minio__Region: "${S3_REGION:-us-east-1}"
|
|
306
|
+
PortableSecrets__MinioAccessKeyId: "${MINIO_APP_ACCESS_KEY:-knowzapp}"
|
|
307
|
+
PortableSecrets__MinioSecretAccessKey: "${MINIO_APP_SECRET_KEY:?MINIO_APP_SECRET_KEY must be set}"
|
|
308
|
+
|
|
309
|
+
Redis__ConnectionString: "${REDIS_CONNECTION_STRING:-redis:6379}"
|
|
310
|
+
ConnectionStrings__Redis: "${REDIS_CONNECTION_STRING:-redis:6379}"
|
|
311
|
+
DataProtection__KeyRingPath: "/var/lib/knowz/data-protection-keys"
|
|
312
|
+
|
|
313
|
+
# ── Licensing: empty defaults preserve the unlinked portable behavior ──────────────────────
|
|
314
|
+
Knowz__Licensing__MothershipUrl: "${KNOWZ_LICENSING_MOTHERSHIP_URL:-}"
|
|
315
|
+
Knowz__Licensing__InstallCredential: "${KNOWZ_LICENSING_INSTALL_CREDENTIAL:-}"
|
|
316
|
+
Knowz__Licensing__InstallationId: "${KNOWZ_LICENSING_INSTALLATION_ID:-}"
|
|
317
|
+
|
|
318
|
+
ApiBaseUrl: "http://api:8080"
|
|
319
|
+
InternalApi__Key: "${INTERNAL_API_KEY:?INTERNAL_API_KEY must be set in .env (must match api)}"
|
|
320
|
+
|
|
321
|
+
PlatformOrganization__Slug: "${PLATFORM_ORG_SLUG:-knowz}"
|
|
322
|
+
PlatformOrganization__Name: "${PLATFORM_ORG_NAME:-Knowz}"
|
|
323
|
+
|
|
324
|
+
AzureOpenAI__Endpoint: "${AZURE_OPENAI_ENDPOINT:-}"
|
|
325
|
+
AzureOpenAI__ApiKey: "${AZURE_OPENAI_API_KEY:-}"
|
|
326
|
+
PortableSecrets__openai--primary--key: "${AZURE_OPENAI_API_KEY:-}"
|
|
327
|
+
|
|
328
|
+
# ── BYOK cloud perception (optional; each cloud axis is opt-in and customer-billed) ──────────
|
|
329
|
+
AzureAIVision__Endpoint: "${AZUREAIVISION__ENDPOINT:-}"
|
|
330
|
+
AzureAIVision__ApiKey: "${AZUREAIVISION__APIKEY:-}"
|
|
331
|
+
AzureAIVision__Features: "${AZUREAIVISION__FEATURES:-}"
|
|
332
|
+
DocumentIntelligence__Endpoint: "${DOCUMENTINTELLIGENCE__ENDPOINT:-}"
|
|
333
|
+
DocumentIntelligence__ApiKey: "${DOCUMENTINTELLIGENCE__APIKEY:-}"
|
|
334
|
+
DocumentIntelligence__UseManagedIdentity: "${DOCUMENTINTELLIGENCE__USEMANAGEDIDENTITY:-false}"
|
|
335
|
+
AzureOpenAI__WhisperDeploymentName: "${AZUREOPENAI__WHISPERDEPLOYMENTNAME:-}"
|
|
336
|
+
AzureOpenAI__TranscriptionDeploymentName: "${AZUREOPENAI__TRANSCRIPTIONDEPLOYMENTNAME:-}"
|
|
337
|
+
AzureOpenAI__Transcription__Endpoint: "${AZUREOPENAI__TRANSCRIPTION__ENDPOINT:-}"
|
|
338
|
+
AzureOpenAI__Transcription__ApiKey: "${AZUREOPENAI__TRANSCRIPTION__APIKEY:-}"
|
|
339
|
+
AssemblyAi__ApiKey: "${ASSEMBLYAI__APIKEY:-}"
|
|
340
|
+
AssemblyAi__EnableBatchPremiumTier: "${ASSEMBLYAI__ENABLEBATCHPREMIUMTIER:-false}"
|
|
341
|
+
Knowz__CloudProvider__RealtimeTranscription: "${KNOWZ__CLOUDPROVIDER__REALTIMETRANSCRIPTION:-}"
|
|
342
|
+
Enrichment__FaceRecognition__Enabled: "${ENRICHMENT__FACERECOGNITION__ENABLED:-false}"
|
|
343
|
+
FaceRecognition__MatchThreshold: "${FACERECOGNITION__MATCHTHRESHOLD:-}"
|
|
344
|
+
|
|
345
|
+
# ── AI provider selection (same one-config contract as the api service; empty => offline stub) ──
|
|
346
|
+
Knowz__CloudProvider: "${KNOWZ__CLOUDPROVIDER:-}"
|
|
347
|
+
Knowz__CloudProvider__Ai: "${KNOWZ__CLOUDPROVIDER__AI:-}"
|
|
348
|
+
Knowz__CloudProvider__DocIntelligence: "${KNOWZ__CLOUDPROVIDER__DOCINTELLIGENCE:-}"
|
|
349
|
+
Knowz__CloudProvider__Vision: "${KNOWZ__CLOUDPROVIDER__VISION:-}"
|
|
350
|
+
Knowz__CloudProvider__Transcription: "${KNOWZ__CLOUDPROVIDER__TRANSCRIPTION:-}"
|
|
351
|
+
Vertex__Project: "${VERTEX__PROJECT:-}"
|
|
352
|
+
Vertex__Region: "${VERTEX__REGION:-}"
|
|
353
|
+
Vertex__ChatModel: "${VERTEX__CHATMODEL:-}"
|
|
354
|
+
Vertex__EmbeddingModel: "${VERTEX__EMBEDDINGMODEL:-}"
|
|
355
|
+
Vertex__EmbeddingDimensions: "${VERTEX__EMBEDDINGDIMENSIONS:-1536}"
|
|
356
|
+
OpenAiCompat__Endpoint: "${OPENAICOMPAT__ENDPOINT:-}"
|
|
357
|
+
OpenAiCompat__ApiKey: "${OPENAICOMPAT__APIKEY:-}"
|
|
358
|
+
OpenAiCompat__ChatModel: "${OPENAICOMPAT__CHATMODEL:-}"
|
|
359
|
+
OpenAiCompat__EmbeddingModel: "${OPENAICOMPAT__EMBEDDINGMODEL:-}"
|
|
360
|
+
OpenAiCompat__EmbeddingDimensions: "${OPENAICOMPAT__EMBEDDINGDIMENSIONS:-}"
|
|
361
|
+
GOOGLE_APPLICATION_CREDENTIALS: "${GCLOUD_ADC_PATH:+/gcloud/adc.json}"
|
|
362
|
+
volumes:
|
|
363
|
+
# Host ADC at a neutral READ-ONLY path, leaving the well-known path vacant for GCE metadata ADC.
|
|
364
|
+
# Defaults to /dev/null (inert); set GCLOUD_ADC_PATH to an absolute ADC path for host-file auth.
|
|
365
|
+
- "${GCLOUD_ADC_PATH:-/dev/null}:/gcloud/adc.json:ro"
|
|
366
|
+
- knowz-portable-objectsdata:/data/objects
|
|
367
|
+
- knowz-portable-identity:/var/lib/knowz/identity
|
|
368
|
+
- knowz-portable-dpkeys:/var/lib/knowz/data-protection-keys
|
|
369
|
+
|
|
370
|
+
# ── Web: the SPA (nginx). Runtime /config.js points the browser at the host-mapped API/MCP ports ───
|
|
371
|
+
web:
|
|
372
|
+
# Cloud-neutral SPA — plain versioned image (no portable/gcp flavor).
|
|
373
|
+
image: "${KNOWZ_REGISTRY:-ghcr.io/knowz-io}/knowz-web:${KNOWZ_VERSION:?KNOWZ_VERSION must be set in .env (the platform release, e.g. 0.2.0)}"
|
|
374
|
+
ports:
|
|
375
|
+
- "${BIND_ADDRESS:-127.0.0.1}:${WEB_PORT:-3000}:8080"
|
|
376
|
+
depends_on:
|
|
377
|
+
api:
|
|
378
|
+
condition: service_started
|
|
379
|
+
environment:
|
|
380
|
+
KNOWZ_API_URL: "${PUBLIC_API_URL:-http://localhost:${API_PORT:-5000}}"
|
|
381
|
+
KNOWZ_MCP_URL: "${PUBLIC_MCP_URL:-http://localhost:${MCP_PORT:-3001}}"
|
|
382
|
+
# nginx:alpine has wget, but `localhost` resolves to ::1 (IPv6) while nginx binds
|
|
383
|
+
# IPv4 — hit 127.0.0.1 explicitly so the probe reaches the listener.
|
|
384
|
+
healthcheck:
|
|
385
|
+
test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1:8080/ || exit 1"]
|
|
386
|
+
interval: 10s
|
|
387
|
+
timeout: 5s
|
|
388
|
+
retries: 10
|
|
389
|
+
start_period: 10s
|
|
390
|
+
|
|
391
|
+
# ── MCP: Model Context Protocol server, backed by the portable API ─────────────────────────────────
|
|
392
|
+
mcp:
|
|
393
|
+
profiles: ["mcp"]
|
|
394
|
+
# Cloud-neutral MCP server — plain versioned image (no portable/gcp flavor).
|
|
395
|
+
image: "${KNOWZ_REGISTRY:-ghcr.io/knowz-io}/knowz-mcp:${KNOWZ_VERSION:?KNOWZ_VERSION must be set in .env (the platform release, e.g. 0.2.0)}"
|
|
396
|
+
ports:
|
|
397
|
+
- "${BIND_ADDRESS:-127.0.0.1}:${MCP_PORT:-3001}:8080"
|
|
398
|
+
depends_on:
|
|
399
|
+
api:
|
|
400
|
+
condition: service_healthy
|
|
401
|
+
environment:
|
|
402
|
+
ASPNETCORE_URLS: http://+:8080
|
|
403
|
+
Knowz__BaseUrl: "http://api:8080"
|
|
404
|
+
MCP__BackendMode: "${MCP_BACKEND_MODE:-selfhosted}"
|
|
405
|
+
MCP__ApiKeyValidationEndpoint: "${MCP_API_KEY_VALIDATION_ENDPOINT:-/api/vaults}"
|
|
406
|
+
MCP__ServiceKey: "${MCP_SERVICE_KEY:?MCP_SERVICE_KEY must be set in .env}"
|
|
407
|
+
Authentication__ValidateApiKey: "${MCP_VALIDATE_API_KEY:-true}"
|
|
408
|
+
# aspnet:10.0 ships no curl/wget — HTTP readiness probe over bash /dev/tcp (200 on /healthz).
|
|
409
|
+
healthcheck:
|
|
410
|
+
test:
|
|
411
|
+
- CMD-SHELL
|
|
412
|
+
- >-
|
|
413
|
+
timeout 5 bash -c 'exec 3<>/dev/tcp/127.0.0.1/8080 && printf "GET /healthz HTTP/1.0\r\n\r\n" >&3 && head -1 <&3 | grep -q 200'
|
|
414
|
+
interval: 15s
|
|
415
|
+
timeout: 10s
|
|
416
|
+
retries: 10
|
|
417
|
+
start_period: 30s
|
|
418
|
+
|
|
419
|
+
public-site:
|
|
420
|
+
image: "${KNOWZ_REGISTRY:-ghcr.io/knowz-io}/knowz-public-site:${KNOWZ_VERSION:?KNOWZ_VERSION must be set in .env}"
|
|
421
|
+
profiles: ["public-site"]
|
|
422
|
+
ports:
|
|
423
|
+
- "${BIND_ADDRESS:-127.0.0.1}:${PUBLIC_SITE_PORT:-3002}:8080"
|
|
424
|
+
depends_on:
|
|
425
|
+
api:
|
|
426
|
+
condition: service_started
|
|
427
|
+
environment:
|
|
428
|
+
KNOWZ_API_URL: "${PUBLIC_API_URL:-http://localhost:${API_PORT:-5000}}"
|
|
429
|
+
KNOWZ_MCP_URL: "${PUBLIC_MCP_URL:-http://localhost:${MCP_PORT:-3001}}"
|
|
430
|
+
KNOWZ_PLATFORM_MAIN_APP_URL: "${PUBLIC_WEB_ORIGIN:-http://localhost:${WEB_PORT:-3000}}"
|
|
431
|
+
KNOWZ_PLATFORM_BASE_DOMAINS: "localhost"
|
|
432
|
+
healthcheck:
|
|
433
|
+
test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1:8080/ || exit 1"]
|
|
434
|
+
interval: 10s
|
|
435
|
+
timeout: 5s
|
|
436
|
+
retries: 10
|
|
437
|
+
start_period: 10s
|
|
438
|
+
|
|
439
|
+
volumes:
|
|
440
|
+
knowz-portable-pgdata:
|
|
441
|
+
knowz-portable-miniodata:
|
|
442
|
+
knowz-portable-objectsdata:
|
|
443
|
+
knowz-portable-identity:
|
|
444
|
+
knowz-portable-dpkeys:
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
-- Portable Postgres bring-up (spec TEST_ComposeProofHarness R4).
|
|
2
|
+
-- Runs once on first cluster init (docker-entrypoint-initdb.d) against the default POSTGRES_DB, via psql.
|
|
3
|
+
-- Creates the platform databases and installs the pgvector (`vector`) + trigram (`pg_trgm`) extensions in
|
|
4
|
+
-- each. The `vector` binary ships in the pgvector/pgvector:pg16 image; `pg_trgm` ships in postgres-contrib.
|
|
5
|
+
-- The API's PortablePostgresSchemaInitializer then EnsureCreates the schema + raw pgvector DDL on first boot.
|
|
6
|
+
|
|
7
|
+
CREATE DATABASE "KnowzKnowledge";
|
|
8
|
+
CREATE DATABASE "KnowzMaster";
|
|
9
|
+
|
|
10
|
+
\connect "KnowzKnowledge"
|
|
11
|
+
CREATE EXTENSION IF NOT EXISTS vector;
|
|
12
|
+
CREATE EXTENSION IF NOT EXISTS pg_trgm;
|
|
13
|
+
|
|
14
|
+
\connect "KnowzMaster"
|
|
15
|
+
CREATE EXTENSION IF NOT EXISTS vector;
|
|
16
|
+
CREATE EXTENSION IF NOT EXISTS pg_trgm;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"releases": [
|
|
3
|
+
{
|
|
4
|
+
"version": "0.35.2",
|
|
5
|
+
"flavors": [
|
|
6
|
+
"portable",
|
|
7
|
+
"portable-gcp"
|
|
8
|
+
],
|
|
9
|
+
"releasedAt": "2026-07-30T00:00:00Z",
|
|
10
|
+
"minCliVersion": null,
|
|
11
|
+
"notes": null,
|
|
12
|
+
"digests": null
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"version": "0.33.1",
|
|
16
|
+
"flavors": [
|
|
17
|
+
"portable",
|
|
18
|
+
"portable-gcp"
|
|
19
|
+
],
|
|
20
|
+
"releasedAt": "2026-07-10T00:00:00Z",
|
|
21
|
+
"minCliVersion": null,
|
|
22
|
+
"notes": null,
|
|
23
|
+
"digests": null
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"version": "0.32.0",
|
|
27
|
+
"flavors": [
|
|
28
|
+
"portable",
|
|
29
|
+
"portable-gcp"
|
|
30
|
+
],
|
|
31
|
+
"releasedAt": "2026-07-01T00:00:00Z",
|
|
32
|
+
"minCliVersion": null,
|
|
33
|
+
"notes": null,
|
|
34
|
+
"digests": null
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"contractVersion": "1.4.0",
|
|
4
|
+
"description": "Management contract for the pull-only Knowz portable container runtime.",
|
|
5
|
+
"services": [
|
|
6
|
+
{ "id": "api", "required": true, "health": "http" },
|
|
7
|
+
{ "id": "worker", "required": true, "health": "compose-process" },
|
|
8
|
+
{ "id": "web", "required": true, "health": "http" },
|
|
9
|
+
{ "id": "mcp", "required": false, "profile": "mcp", "health": "http" },
|
|
10
|
+
{ "id": "public-site", "required": false, "profile": "public-site", "health": "http" },
|
|
11
|
+
{ "id": "postgres", "required": true, "health": "pg_isready" },
|
|
12
|
+
{ "id": "redis", "required": true, "health": "redis-ping" },
|
|
13
|
+
{ "id": "object-storage", "required": true, "health": "http", "implementations": ["minio", "filesystem"] }
|
|
14
|
+
],
|
|
15
|
+
"imageFlavors": {
|
|
16
|
+
"default": {
|
|
17
|
+
"suffix": "",
|
|
18
|
+
"providers": ["offline", "azure", "knowz-cloud", "openai-compatible"]
|
|
19
|
+
},
|
|
20
|
+
"gcp": {
|
|
21
|
+
"suffix": "-gcp",
|
|
22
|
+
"providers": ["gcp"]
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"providerAxes": {
|
|
26
|
+
"master": "KNOWZ__CLOUDPROVIDER",
|
|
27
|
+
"ai": "KNOWZ__CLOUDPROVIDER__AI",
|
|
28
|
+
"documentIntelligence": "KNOWZ__CLOUDPROVIDER__DOCINTELLIGENCE",
|
|
29
|
+
"vision": "KNOWZ__CLOUDPROVIDER__VISION",
|
|
30
|
+
"transcription": "KNOWZ__CLOUDPROVIDER__TRANSCRIPTION",
|
|
31
|
+
"allowedValues": ["Azure", "Gcp", "OpenAiCompat", "None"]
|
|
32
|
+
},
|
|
33
|
+
"licensing": {
|
|
34
|
+
"activation": "device-code",
|
|
35
|
+
"mothershipUrlEnvironment": "KNOWZ_LICENSING_MOTHERSHIP_URL",
|
|
36
|
+
"installCredentialEnvironment": "KNOWZ_LICENSING_INSTALL_CREDENTIAL",
|
|
37
|
+
"identityVolume": "knowz-portable-identity",
|
|
38
|
+
"identityMountPath": "/var/lib/knowz/identity",
|
|
39
|
+
"credentialFile": "credential"
|
|
40
|
+
},
|
|
41
|
+
"providerPresets": {
|
|
42
|
+
"offline": {
|
|
43
|
+
"imageFlavor": "",
|
|
44
|
+
"masterProvider": "Azure",
|
|
45
|
+
"requiredEnvironment": [],
|
|
46
|
+
"defaults": { "EMBEDDING_PROVIDER": "Stub", "EMBEDDING_DIMENSIONS": "1536" }
|
|
47
|
+
},
|
|
48
|
+
"azure": {
|
|
49
|
+
"imageFlavor": "",
|
|
50
|
+
"masterProvider": "Azure",
|
|
51
|
+
"requiredEnvironment": ["AZURE_OPENAI_ENDPOINT", "AZURE_OPENAI_API_KEY"],
|
|
52
|
+
"defaults": { "EMBEDDING_PROVIDER": "AzureOpenAI", "EMBEDDING_DIMENSIONS": "1536" }
|
|
53
|
+
},
|
|
54
|
+
"gcp": {
|
|
55
|
+
"imageFlavor": "-gcp",
|
|
56
|
+
"masterProvider": "Gcp",
|
|
57
|
+
"requiredEnvironment": ["VERTEX__PROJECT", "GCLOUD_ADC_PATH"],
|
|
58
|
+
"defaults": { "VERTEX__REGION": "us-central1", "EMBEDDING_DIMENSIONS": "1536" }
|
|
59
|
+
},
|
|
60
|
+
"openai-compatible": {
|
|
61
|
+
"imageFlavor": "",
|
|
62
|
+
"masterProvider": "OpenAiCompat",
|
|
63
|
+
"requiredEnvironment": [
|
|
64
|
+
"OPENAICOMPAT__ENDPOINT",
|
|
65
|
+
"OPENAICOMPAT__CHATMODEL",
|
|
66
|
+
"OPENAICOMPAT__EMBEDDINGMODEL",
|
|
67
|
+
"OPENAICOMPAT__EMBEDDINGDIMENSIONS"
|
|
68
|
+
],
|
|
69
|
+
"defaults": { "EMBEDDING_PROVIDER": "OpenAiCompat" }
|
|
70
|
+
},
|
|
71
|
+
"knowz-cloud": {
|
|
72
|
+
"imageFlavor": "",
|
|
73
|
+
"masterProvider": "OpenAiCompat",
|
|
74
|
+
"requiredEnvironment": [
|
|
75
|
+
"OPENAICOMPAT__ENDPOINT",
|
|
76
|
+
"OPENAICOMPAT__APIKEY",
|
|
77
|
+
"OPENAICOMPAT__CHATMODEL",
|
|
78
|
+
"OPENAICOMPAT__EMBEDDINGMODEL",
|
|
79
|
+
"OPENAICOMPAT__EMBEDDINGDIMENSIONS"
|
|
80
|
+
],
|
|
81
|
+
"defaults": {
|
|
82
|
+
"OPENAICOMPAT__ENDPOINT": "https://ai.knowz.io/v1",
|
|
83
|
+
"OPENAICOMPAT__EMBEDDINGDIMENSIONS": "1536",
|
|
84
|
+
"EMBEDDING_PROVIDER": "OpenAiCompat",
|
|
85
|
+
"EMBEDDING_DIMENSIONS": "1536"
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
"storageModes": {
|
|
90
|
+
"minio": {
|
|
91
|
+
"providerValue": "MinioS3",
|
|
92
|
+
"persistentVolume": "knowz-portable-miniodata"
|
|
93
|
+
},
|
|
94
|
+
"filesystem": {
|
|
95
|
+
"providerValue": "FileSystem",
|
|
96
|
+
"rootPath": "/data/objects",
|
|
97
|
+
"persistentVolume": "knowz-portable-objectsdata"
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"backingServices": {
|
|
101
|
+
"postgres": {
|
|
102
|
+
"modes": ["bundled", "external"],
|
|
103
|
+
"externalOverlay": "docker-compose.external-db.yml",
|
|
104
|
+
"initOverlay": "docker-compose.external-db-init.yml",
|
|
105
|
+
"environment": ["PG_HOST", "PG_PORT", "PG_SSL_MODE", "PG_EXTRA_OPTIONS"]
|
|
106
|
+
},
|
|
107
|
+
"object-storage": {
|
|
108
|
+
"modes": ["bundled", "external"],
|
|
109
|
+
"externalOverlay": "docker-compose.external-storage.yml",
|
|
110
|
+
"environment": ["S3_ENDPOINT", "S3_REGION", "S3_FORCE_PATH_STYLE"]
|
|
111
|
+
},
|
|
112
|
+
"redis": {
|
|
113
|
+
"modes": ["bundled", "external"],
|
|
114
|
+
"externalOverlay": "docker-compose.external-redis.yml",
|
|
115
|
+
"environment": ["REDIS_CONNECTION_STRING"]
|
|
116
|
+
},
|
|
117
|
+
"edge": {
|
|
118
|
+
"modes": ["none", "caddy"],
|
|
119
|
+
"overlay": "docker-compose.edge.yml"
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"capabilities": {
|
|
123
|
+
"core-enrichment": { "status": "full", "queues": ["ai-processing", "processing-completed"] },
|
|
124
|
+
"text-extraction": { "status": "full", "queues": ["text-extraction", "document-intelligence"] },
|
|
125
|
+
"summarization": { "status": "full", "queues": ["summarization"] },
|
|
126
|
+
"chunking-indexing": { "status": "full", "queues": ["chunking", "indexing", "search-indexing"] },
|
|
127
|
+
"vision-transcription": { "status": "full", "queues": ["vision-analysis", "transcription"] },
|
|
128
|
+
"realtime-progress": { "status": "full", "transport": "worker-api-redis-sse" },
|
|
129
|
+
"entity-extraction": { "status": "degraded", "behavior": "terminal completion without structured entities" },
|
|
130
|
+
"face-recognition": { "status": "degraded", "behavior": "job consumed without recognition output" },
|
|
131
|
+
"graph-sync": { "status": "degraded", "behavior": "job consumed without graph output" },
|
|
132
|
+
"git-sync": { "status": "unavailable" },
|
|
133
|
+
"engagement-jobs": { "status": "unavailable" },
|
|
134
|
+
"ingestion-jobs": { "status": "unavailable" },
|
|
135
|
+
"sequence-execution": { "status": "unavailable" },
|
|
136
|
+
"vault-reindex": { "status": "unavailable" },
|
|
137
|
+
"notification-jobs": { "status": "unavailable" }
|
|
138
|
+
},
|
|
139
|
+
"lifecycle": {
|
|
140
|
+
"composeProjectPrefix": "knowz",
|
|
141
|
+
"preserveVolumesOnDown": true,
|
|
142
|
+
"destroyRequiresConfirmation": true,
|
|
143
|
+
"defaultBindAddress": "127.0.0.1",
|
|
144
|
+
"infrastructureHostPortsPublished": false,
|
|
145
|
+
"publicUrlEnvironment": ["PUBLIC_API_URL", "PUBLIC_WEB_ORIGIN", "PUBLIC_MCP_URL", "PUBLIC_SITE_URL"],
|
|
146
|
+
"upgradeStrategy": "pull-and-reapply",
|
|
147
|
+
"rollbackSupported": false
|
|
148
|
+
}
|
|
149
|
+
}
|
package/bin/run.js
ADDED