@bevel-software/platform-core-backend 0.20.0 → 0.22.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/dist/core/catalog-cache-invalidation.d.ts +7 -2
- package/dist/core/catalog-cache-invalidation.d.ts.map +1 -1
- package/dist/core/catalog-cache-invalidation.js +8 -9
- package/dist/core/catalog-cache-invalidation.js.map +1 -1
- package/dist/core/core-ports.d.ts +19 -0
- package/dist/core/core-ports.d.ts.map +1 -1
- package/dist/core/core-ports.js.map +1 -1
- package/dist/core/create-core-server.d.ts +2 -0
- package/dist/core/create-core-server.d.ts.map +1 -1
- package/dist/core/create-core-server.js +55 -107
- package/dist/core/create-core-server.js.map +1 -1
- package/dist/core/create-core-services.d.ts +41 -4
- package/dist/core/create-core-services.d.ts.map +1 -1
- package/dist/core/create-core-services.js +183 -82
- package/dist/core/create-core-services.js.map +1 -1
- package/dist/core/lifecycle.d.ts +74 -28
- package/dist/core/lifecycle.d.ts.map +1 -1
- package/dist/core/lifecycle.js +157 -20
- package/dist/core/lifecycle.js.map +1 -1
- package/dist/core/public-config.d.ts +5 -1
- package/dist/core/public-config.d.ts.map +1 -1
- package/dist/core/public-config.js +7 -5
- package/dist/core/public-config.js.map +1 -1
- package/dist/core-config.d.ts +95 -1
- package/dist/core-config.d.ts.map +1 -1
- package/dist/core-config.js +24 -8
- package/dist/core-config.js.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/modules/access/access-control.service.d.ts +18 -1
- package/dist/modules/access/access-control.service.d.ts.map +1 -1
- package/dist/modules/access/access-control.service.js +19 -8
- package/dist/modules/access/access-control.service.js.map +1 -1
- package/dist/modules/access/access-requests.contract.d.ts +75 -0
- package/dist/modules/access/access-requests.contract.d.ts.map +1 -0
- package/dist/modules/access/access-requests.contract.js +20 -0
- package/dist/modules/access/access-requests.contract.js.map +1 -0
- package/dist/modules/access/access-requests.routes.d.ts +35 -0
- package/dist/modules/access/access-requests.routes.d.ts.map +1 -0
- package/dist/modules/access/access-requests.routes.js +237 -0
- package/dist/modules/access/access-requests.routes.js.map +1 -0
- package/dist/modules/access/access-requests.service.d.ts +123 -0
- package/dist/modules/access/access-requests.service.d.ts.map +1 -0
- package/dist/modules/access/access-requests.service.js +337 -0
- package/dist/modules/access/access-requests.service.js.map +1 -0
- package/dist/modules/access/access.routes.d.ts +2 -1
- package/dist/modules/access/access.routes.d.ts.map +1 -1
- package/dist/modules/access/access.routes.js +10 -10
- package/dist/modules/access/access.routes.js.map +1 -1
- package/dist/modules/access/change-read-gate.d.ts +6 -3
- package/dist/modules/access/change-read-gate.d.ts.map +1 -1
- package/dist/modules/access/change-read-gate.js +9 -6
- package/dist/modules/access/change-read-gate.js.map +1 -1
- package/dist/modules/access/creator-access.d.ts +4 -2
- package/dist/modules/access/creator-access.d.ts.map +1 -1
- package/dist/modules/access/creator-access.js +7 -4
- package/dist/modules/access/creator-access.js.map +1 -1
- package/dist/modules/access-model/access-grammar.d.ts +12 -0
- package/dist/modules/access-model/access-grammar.d.ts.map +1 -1
- package/dist/modules/access-model/access-grammar.js +24 -0
- package/dist/modules/access-model/access-grammar.js.map +1 -1
- package/dist/modules/agent-instructions/read-preamble.d.ts +2 -1
- package/dist/modules/agent-instructions/read-preamble.d.ts.map +1 -1
- package/dist/modules/agent-instructions/read-preamble.js +6 -9
- package/dist/modules/agent-instructions/read-preamble.js.map +1 -1
- package/dist/modules/auth/account-admission.d.ts +40 -0
- package/dist/modules/auth/account-admission.d.ts.map +1 -0
- package/dist/modules/auth/account-admission.js +17 -0
- package/dist/modules/auth/account-admission.js.map +1 -0
- package/dist/modules/auth/account.routes.d.ts.map +1 -1
- package/dist/modules/auth/account.routes.js +4 -1
- package/dist/modules/auth/account.routes.js.map +1 -1
- package/dist/modules/auth/auth.service.d.ts +45 -2
- package/dist/modules/auth/auth.service.d.ts.map +1 -1
- package/dist/modules/auth/auth.service.js +44 -3
- package/dist/modules/auth/auth.service.js.map +1 -1
- package/dist/modules/auth/oidc-auth-provider.d.ts.map +1 -1
- package/dist/modules/auth/oidc-auth-provider.js +9 -0
- package/dist/modules/auth/oidc-auth-provider.js.map +1 -1
- package/dist/modules/connection-probe/connection-probe.service.d.ts +13 -1
- package/dist/modules/connection-probe/connection-probe.service.d.ts.map +1 -1
- package/dist/modules/connection-probe/connection-probe.service.js +10 -2
- package/dist/modules/connection-probe/connection-probe.service.js.map +1 -1
- package/dist/modules/database/advisory-lock.d.ts +17 -0
- package/dist/modules/database/advisory-lock.d.ts.map +1 -1
- package/dist/modules/database/advisory-lock.js +24 -3
- package/dist/modules/database/advisory-lock.js.map +1 -1
- package/dist/modules/database/connection.d.ts +67 -2
- package/dist/modules/database/connection.d.ts.map +1 -1
- package/dist/modules/database/connection.js +118 -12
- package/dist/modules/database/connection.js.map +1 -1
- package/dist/modules/database/migrate.d.ts +1 -1
- package/dist/modules/database/migrate.d.ts.map +1 -1
- package/dist/modules/database/migrate.js +27 -3
- package/dist/modules/database/migrate.js.map +1 -1
- package/dist/modules/github-app/github-app.client.d.ts +101 -0
- package/dist/modules/github-app/github-app.client.d.ts.map +1 -0
- package/dist/modules/github-app/github-app.client.js +222 -0
- package/dist/modules/github-app/github-app.client.js.map +1 -0
- package/dist/modules/github-app/github-app.connection.d.ts +102 -0
- package/dist/modules/github-app/github-app.connection.d.ts.map +1 -0
- package/dist/modules/github-app/github-app.connection.js +185 -0
- package/dist/modules/github-app/github-app.connection.js.map +1 -0
- package/dist/modules/github-app/github-app.routes.d.ts +59 -0
- package/dist/modules/github-app/github-app.routes.d.ts.map +1 -0
- package/dist/modules/github-app/github-app.routes.js +323 -0
- package/dist/modules/github-app/github-app.routes.js.map +1 -0
- package/dist/modules/github-app/index.d.ts +4 -0
- package/dist/modules/github-app/index.d.ts.map +1 -0
- package/dist/modules/github-app/index.js +4 -0
- package/dist/modules/github-app/index.js.map +1 -0
- package/dist/modules/kb-fs/branch-name.d.ts +0 -1
- package/dist/modules/kb-fs/branch-name.d.ts.map +1 -1
- package/dist/modules/kb-fs/branch-name.js +3 -3
- package/dist/modules/kb-fs/branch-name.js.map +1 -1
- package/dist/modules/kb-fs/clone-config.d.ts +9 -8
- package/dist/modules/kb-fs/clone-config.d.ts.map +1 -1
- package/dist/modules/kb-fs/clone-config.js +14 -12
- package/dist/modules/kb-fs/clone-config.js.map +1 -1
- package/dist/modules/kb-fs/remote-url.d.ts +22 -0
- package/dist/modules/kb-fs/remote-url.d.ts.map +1 -0
- package/dist/modules/kb-fs/remote-url.js +35 -0
- package/dist/modules/kb-fs/remote-url.js.map +1 -0
- package/dist/modules/mcp/mcp.service.d.ts +7 -0
- package/dist/modules/mcp/mcp.service.d.ts.map +1 -1
- package/dist/modules/mcp/mcp.service.js +4 -4
- package/dist/modules/mcp/mcp.service.js.map +1 -1
- package/dist/modules/plugins/compile/marketplace-compiler.service.d.ts +4 -4
- package/dist/modules/plugins/compile/marketplace-compiler.service.d.ts.map +1 -1
- package/dist/modules/plugins/compile/marketplace-compiler.service.js +7 -10
- package/dist/modules/plugins/compile/marketplace-compiler.service.js.map +1 -1
- package/dist/modules/plugins/discovery/bundle-dialect/bundle.source.d.ts +4 -1
- package/dist/modules/plugins/discovery/bundle-dialect/bundle.source.d.ts.map +1 -1
- package/dist/modules/plugins/discovery/bundle-dialect/bundle.source.js +5 -3
- package/dist/modules/plugins/discovery/bundle-dialect/bundle.source.js.map +1 -1
- package/dist/modules/plugins/discovery/kb-plugin-source.d.ts +6 -1
- package/dist/modules/plugins/discovery/kb-plugin-source.d.ts.map +1 -1
- package/dist/modules/plugins/discovery/kb-plugin-source.js +14 -9
- package/dist/modules/plugins/discovery/kb-plugin-source.js.map +1 -1
- package/dist/modules/plugins/discovery/native.source.d.ts +4 -1
- package/dist/modules/plugins/discovery/native.source.d.ts.map +1 -1
- package/dist/modules/plugins/discovery/native.source.js +4 -2
- package/dist/modules/plugins/discovery/native.source.js.map +1 -1
- package/dist/modules/plugins/index.d.ts +1 -1
- package/dist/modules/plugins/index.d.ts.map +1 -1
- package/dist/modules/plugins/index.js +1 -1
- package/dist/modules/plugins/index.js.map +1 -1
- package/dist/modules/plugins/join-proposals.d.ts +17 -5
- package/dist/modules/plugins/join-proposals.d.ts.map +1 -1
- package/dist/modules/plugins/join-proposals.js +76 -22
- package/dist/modules/plugins/join-proposals.js.map +1 -1
- package/dist/modules/plugins/join-request-jobs.service.d.ts +3 -1
- package/dist/modules/plugins/join-request-jobs.service.d.ts.map +1 -1
- package/dist/modules/plugins/join-request-jobs.service.js +6 -6
- package/dist/modules/plugins/join-request-jobs.service.js.map +1 -1
- package/dist/modules/plugins/join-requests.service.d.ts +113 -18
- package/dist/modules/plugins/join-requests.service.d.ts.map +1 -1
- package/dist/modules/plugins/join-requests.service.js +178 -33
- package/dist/modules/plugins/join-requests.service.js.map +1 -1
- package/dist/modules/plugins/plugin-links.d.ts +65 -10
- package/dist/modules/plugins/plugin-links.d.ts.map +1 -1
- package/dist/modules/plugins/plugin-links.js +136 -31
- package/dist/modules/plugins/plugin-links.js.map +1 -1
- package/dist/modules/plugins/plugin-links.service.d.ts +107 -5
- package/dist/modules/plugins/plugin-links.service.d.ts.map +1 -1
- package/dist/modules/plugins/plugin-links.service.js +151 -21
- package/dist/modules/plugins/plugin-links.service.js.map +1 -1
- package/dist/modules/plugins/plugin-provision.service.d.ts +10 -3
- package/dist/modules/plugins/plugin-provision.service.d.ts.map +1 -1
- package/dist/modules/plugins/plugin-provision.service.js +33 -26
- package/dist/modules/plugins/plugin-provision.service.js.map +1 -1
- package/dist/modules/plugins/plugin-rename.service.d.ts +4 -2
- package/dist/modules/plugins/plugin-rename.service.d.ts.map +1 -1
- package/dist/modules/plugins/plugin-rename.service.js +10 -12
- package/dist/modules/plugins/plugin-rename.service.js.map +1 -1
- package/dist/modules/plugins/plugins.routes.d.ts +3 -0
- package/dist/modules/plugins/plugins.routes.d.ts.map +1 -1
- package/dist/modules/plugins/plugins.routes.js +48 -17
- package/dist/modules/plugins/plugins.routes.js.map +1 -1
- package/dist/modules/plugins/plugins.service.d.ts +4 -4
- package/dist/modules/plugins/plugins.service.d.ts.map +1 -1
- package/dist/modules/plugins/plugins.service.js +7 -10
- package/dist/modules/plugins/plugins.service.js.map +1 -1
- package/dist/modules/plugins/teams.routes.d.ts +4 -1
- package/dist/modules/plugins/teams.routes.d.ts.map +1 -1
- package/dist/modules/plugins/teams.routes.js +11 -9
- package/dist/modules/plugins/teams.routes.js.map +1 -1
- package/dist/modules/secrets-vault/index.d.ts +1 -1
- package/dist/modules/secrets-vault/index.d.ts.map +1 -1
- package/dist/modules/secrets-vault/index.js +1 -1
- package/dist/modules/secrets-vault/index.js.map +1 -1
- package/dist/modules/secrets-vault/secrets-variable-loader.d.ts +29 -11
- package/dist/modules/secrets-vault/secrets-variable-loader.d.ts.map +1 -1
- package/dist/modules/secrets-vault/secrets-variable-loader.js +46 -21
- package/dist/modules/secrets-vault/secrets-variable-loader.js.map +1 -1
- package/dist/modules/secrets-vault/secrets-vault.routes.d.ts +3 -0
- package/dist/modules/secrets-vault/secrets-vault.routes.d.ts.map +1 -1
- package/dist/modules/secrets-vault/secrets-vault.routes.js +4 -6
- package/dist/modules/secrets-vault/secrets-vault.routes.js.map +1 -1
- package/dist/modules/settings/deployment-settings.service.d.ts +34 -9
- package/dist/modules/settings/deployment-settings.service.d.ts.map +1 -1
- package/dist/modules/settings/deployment-settings.service.js +113 -26
- package/dist/modules/settings/deployment-settings.service.js.map +1 -1
- package/dist/modules/settings/managed-repository.d.ts +43 -0
- package/dist/modules/settings/managed-repository.d.ts.map +1 -0
- package/dist/modules/settings/managed-repository.js +60 -0
- package/dist/modules/settings/managed-repository.js.map +1 -0
- package/dist/modules/settings/repository-source.d.ts +128 -0
- package/dist/modules/settings/repository-source.d.ts.map +1 -0
- package/dist/modules/settings/repository-source.js +150 -0
- package/dist/modules/settings/repository-source.js.map +1 -0
- package/dist/modules/settings/setup.routes.d.ts +34 -4
- package/dist/modules/settings/setup.routes.d.ts.map +1 -1
- package/dist/modules/settings/setup.routes.js +198 -18
- package/dist/modules/settings/setup.routes.js.map +1 -1
- package/dist/modules/skills/allowed-tools-check.d.ts +4 -3
- package/dist/modules/skills/allowed-tools-check.d.ts.map +1 -1
- package/dist/modules/skills/allowed-tools-check.js +8 -8
- package/dist/modules/skills/allowed-tools-check.js.map +1 -1
- package/dist/modules/skills/pending-skills.service.d.ts +3 -1
- package/dist/modules/skills/pending-skills.service.d.ts.map +1 -1
- package/dist/modules/skills/pending-skills.service.js +9 -6
- package/dist/modules/skills/pending-skills.service.js.map +1 -1
- package/dist/modules/skills/skill-access-requests.routes.d.ts +8 -9
- package/dist/modules/skills/skill-access-requests.routes.d.ts.map +1 -1
- package/dist/modules/skills/skill-access-requests.routes.js +26 -65
- package/dist/modules/skills/skill-access-requests.routes.js.map +1 -1
- package/dist/modules/skills/skills.routes.d.ts +4 -1
- package/dist/modules/skills/skills.routes.d.ts.map +1 -1
- package/dist/modules/skills/skills.routes.js +4 -4
- package/dist/modules/skills/skills.routes.js.map +1 -1
- package/dist/modules/skills/skills.service.d.ts +4 -2
- package/dist/modules/skills/skills.service.d.ts.map +1 -1
- package/dist/modules/skills/skills.service.js +13 -11
- package/dist/modules/skills/skills.service.js.map +1 -1
- package/dist/modules/tool-helpers/tool-context.d.ts.map +1 -1
- package/dist/modules/tool-helpers/tool-context.js +15 -0
- package/dist/modules/tool-helpers/tool-context.js.map +1 -1
- package/dist/modules/tool-manuals/mcp-json-discovery.d.ts +2 -1
- package/dist/modules/tool-manuals/mcp-json-discovery.d.ts.map +1 -1
- package/dist/modules/tool-manuals/mcp-json-discovery.js +6 -5
- package/dist/modules/tool-manuals/mcp-json-discovery.js.map +1 -1
- package/dist/modules/tool-manuals/mcp-server-edit.service.d.ts +4 -2
- package/dist/modules/tool-manuals/mcp-server-edit.service.d.ts.map +1 -1
- package/dist/modules/tool-manuals/mcp-server-edit.service.js +12 -10
- package/dist/modules/tool-manuals/mcp-server-edit.service.js.map +1 -1
- package/dist/modules/tool-manuals/pending-tools.service.d.ts +3 -1
- package/dist/modules/tool-manuals/pending-tools.service.d.ts.map +1 -1
- package/dist/modules/tool-manuals/pending-tools.service.js +19 -16
- package/dist/modules/tool-manuals/pending-tools.service.js.map +1 -1
- package/dist/modules/tool-manuals/tool-delete.service.d.ts +4 -2
- package/dist/modules/tool-manuals/tool-delete.service.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-delete.service.js +14 -12
- package/dist/modules/tool-manuals/tool-delete.service.js.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.routes.d.ts +3 -1
- package/dist/modules/tool-manuals/tool-manuals.routes.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.routes.js +7 -7
- package/dist/modules/tool-manuals/tool-manuals.routes.js.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.service.d.ts +4 -2
- package/dist/modules/tool-manuals/tool-manuals.service.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.service.js +15 -12
- package/dist/modules/tool-manuals/tool-manuals.service.js.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.tools.d.ts +3 -0
- package/dist/modules/tool-manuals/tool-manuals.tools.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.tools.js +4 -6
- package/dist/modules/tool-manuals/tool-manuals.tools.js.map +1 -1
- package/dist/modules/workflow/agent-tools/workflow.tools.d.ts +3 -2
- package/dist/modules/workflow/agent-tools/workflow.tools.d.ts.map +1 -1
- package/dist/modules/workflow/agent-tools/workflow.tools.js +47 -11
- package/dist/modules/workflow/agent-tools/workflow.tools.js.map +1 -1
- package/dist/modules/workflow/git/git.service.d.ts +14 -6
- package/dist/modules/workflow/git/git.service.d.ts.map +1 -1
- package/dist/modules/workflow/git/git.service.js +40 -18
- package/dist/modules/workflow/git/git.service.js.map +1 -1
- package/dist/modules/workflow/git/node-git-runner.d.ts +26 -2
- package/dist/modules/workflow/git/node-git-runner.d.ts.map +1 -1
- package/dist/modules/workflow/git/node-git-runner.js +40 -5
- package/dist/modules/workflow/git/node-git-runner.js.map +1 -1
- package/dist/modules/workflow/git/pull-request.service.d.ts +45 -0
- package/dist/modules/workflow/git/pull-request.service.d.ts.map +1 -1
- package/dist/modules/workflow/git/pull-request.service.js +99 -0
- package/dist/modules/workflow/git/pull-request.service.js.map +1 -1
- package/dist/modules/workflow/review-workflow/review-workflow.service.d.ts.map +1 -1
- package/dist/modules/workflow/review-workflow/review-workflow.service.js +9 -4
- package/dist/modules/workflow/review-workflow/review-workflow.service.js.map +1 -1
- package/dist/modules/workflow/session-ontology.service.d.ts +6 -1
- package/dist/modules/workflow/session-ontology.service.d.ts.map +1 -1
- package/dist/modules/workflow/session-ontology.service.js +6 -2
- package/dist/modules/workflow/session-ontology.service.js.map +1 -1
- package/dist/modules/workflow/workflow.routes.d.ts.map +1 -1
- package/dist/modules/workflow/workflow.routes.js +3 -1
- package/dist/modules/workflow/workflow.routes.js.map +1 -1
- package/dist/modules/workflow/workflow.service.d.ts +42 -10
- package/dist/modules/workflow/workflow.service.d.ts.map +1 -1
- package/dist/modules/workflow/workflow.service.js +181 -71
- package/dist/modules/workflow/workflow.service.js.map +1 -1
- package/dist/modules/workspace/session-ontology.gate.d.ts +3 -1
- package/dist/modules/workspace/session-ontology.gate.d.ts.map +1 -1
- package/dist/modules/workspace/session-ontology.gate.js +3 -3
- package/dist/modules/workspace/session-ontology.gate.js.map +1 -1
- package/dist/modules/workspace/startup/kb-git.d.ts +4 -3
- package/dist/modules/workspace/startup/kb-git.d.ts.map +1 -1
- package/dist/modules/workspace/startup/kb-git.js +15 -13
- package/dist/modules/workspace/startup/kb-git.js.map +1 -1
- package/dist/modules/workspace/startup/kb-startup-runner.d.ts +70 -7
- package/dist/modules/workspace/startup/kb-startup-runner.d.ts.map +1 -1
- package/dist/modules/workspace/startup/kb-startup-runner.js +183 -38
- package/dist/modules/workspace/startup/kb-startup-runner.js.map +1 -1
- package/dist/modules/workspace/startup/steps/groups-to-plugins.step.d.ts +7 -1
- package/dist/modules/workspace/startup/steps/groups-to-plugins.step.d.ts.map +1 -1
- package/dist/modules/workspace/startup/steps/groups-to-plugins.step.js +23 -16
- package/dist/modules/workspace/startup/steps/groups-to-plugins.step.js.map +1 -1
- package/dist/modules/workspace/startup/steps/personal-spaces.step.d.ts +7 -1
- package/dist/modules/workspace/startup/steps/personal-spaces.step.d.ts.map +1 -1
- package/dist/modules/workspace/startup/steps/personal-spaces.step.js +12 -5
- package/dist/modules/workspace/startup/steps/personal-spaces.step.js.map +1 -1
- package/dist/modules/workspace/startup/steps/plugin-display-names.step.d.ts +7 -1
- package/dist/modules/workspace/startup/steps/plugin-display-names.step.d.ts.map +1 -1
- package/dist/modules/workspace/startup/steps/plugin-display-names.step.js +12 -5
- package/dist/modules/workspace/startup/steps/plugin-display-names.step.js.map +1 -1
- package/dist/modules/workspace/startup/steps/plugin-manifests.step.d.ts +7 -1
- package/dist/modules/workspace/startup/steps/plugin-manifests.step.d.ts.map +1 -1
- package/dist/modules/workspace/startup/steps/plugin-manifests.step.js +12 -5
- package/dist/modules/workspace/startup/steps/plugin-manifests.step.js.map +1 -1
- package/dist/modules/workspace/startup/steps/seed-tree.d.ts +4 -1
- package/dist/modules/workspace/startup/steps/seed-tree.d.ts.map +1 -1
- package/dist/modules/workspace/startup/steps/seed-tree.js +14 -11
- package/dist/modules/workspace/startup/steps/seed-tree.js.map +1 -1
- package/dist/modules/workspace/startup/steps/template-files.step.d.ts +17 -3
- package/dist/modules/workspace/startup/steps/template-files.step.d.ts.map +1 -1
- package/dist/modules/workspace/startup/steps/template-files.step.js +36 -30
- package/dist/modules/workspace/startup/steps/template-files.step.js.map +1 -1
- package/dist/modules/workspace/startup/steps/template-source.d.ts +6 -1
- package/dist/modules/workspace/startup/steps/template-source.d.ts.map +1 -1
- package/dist/modules/workspace/startup/steps/template-source.js +10 -6
- package/dist/modules/workspace/startup/steps/template-source.js.map +1 -1
- package/dist/modules/workspace/workspace.routes.d.ts +2 -1
- package/dist/modules/workspace/workspace.routes.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.routes.js +8 -7
- package/dist/modules/workspace/workspace.routes.js.map +1 -1
- package/dist/modules/workspace/workspace.service.d.ts +18 -12
- package/dist/modules/workspace/workspace.service.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.service.js +49 -29
- package/dist/modules/workspace/workspace.service.js.map +1 -1
- package/dist/modules/workspace/workspace.tools.d.ts +2 -1
- package/dist/modules/workspace/workspace.tools.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.tools.js +48 -20
- package/dist/modules/workspace/workspace.tools.js.map +1 -1
- package/dist/modules/workspace/write-denial.d.ts +3 -2
- package/dist/modules/workspace/write-denial.d.ts.map +1 -1
- package/dist/modules/workspace/write-denial.js +6 -5
- package/dist/modules/workspace/write-denial.js.map +1 -1
- package/dist/shared/domain-errors.d.ts +39 -0
- package/dist/shared/domain-errors.d.ts.map +1 -1
- package/dist/shared/domain-errors.js +55 -0
- package/dist/shared/domain-errors.js.map +1 -1
- package/dist/shared/git.contract.d.ts +62 -7
- package/dist/shared/git.contract.d.ts.map +1 -1
- package/dist/shared/git.contract.js +30 -8
- package/dist/shared/git.contract.js.map +1 -1
- package/dist/shared/kb-context.d.ts +76 -0
- package/dist/shared/kb-context.d.ts.map +1 -0
- package/dist/shared/kb-context.js +108 -0
- package/dist/shared/kb-context.js.map +1 -0
- package/dist/shared/kb-layout.d.ts +3 -2
- package/dist/shared/kb-layout.d.ts.map +1 -1
- package/dist/shared/kb-layout.js +4 -3
- package/dist/shared/kb-layout.js.map +1 -1
- package/dist/shared/kb-layout.test.js +35 -27
- package/dist/shared/kb-layout.test.js.map +1 -1
- package/dist/shared/pending-proposals.d.ts +4 -1
- package/dist/shared/pending-proposals.d.ts.map +1 -1
- package/dist/shared/pending-proposals.js +3 -4
- package/dist/shared/pending-proposals.js.map +1 -1
- package/dist/shared/redact-secret.d.ts +5 -5
- package/dist/shared/redact-secret.js +5 -5
- package/dist/tenancy/index.d.ts +13 -0
- package/dist/tenancy/index.d.ts.map +1 -0
- package/dist/tenancy/index.js +13 -0
- package/dist/tenancy/index.js.map +1 -0
- package/dist/tenancy/static-tenant-source.d.ts +98 -0
- package/dist/tenancy/static-tenant-source.d.ts.map +1 -0
- package/dist/tenancy/static-tenant-source.js +220 -0
- package/dist/tenancy/static-tenant-source.js.map +1 -0
- package/dist/tenancy/tenant-host.d.ts +80 -0
- package/dist/tenancy/tenant-host.d.ts.map +1 -0
- package/dist/tenancy/tenant-host.js +217 -0
- package/dist/tenancy/tenant-host.js.map +1 -0
- package/dist/tenancy/tenant-runtime.d.ts +91 -0
- package/dist/tenancy/tenant-runtime.d.ts.map +1 -0
- package/dist/tenancy/tenant-runtime.js +174 -0
- package/dist/tenancy/tenant-runtime.js.map +1 -0
- package/dist/tenancy/tenant-secrets.d.ts +24 -0
- package/dist/tenancy/tenant-secrets.d.ts.map +1 -0
- package/dist/tenancy/tenant-secrets.js +30 -0
- package/dist/tenancy/tenant-secrets.js.map +1 -0
- package/dist/tenancy/tenant-source.contract.d.ts +45 -0
- package/dist/tenancy/tenant-source.contract.d.ts.map +1 -0
- package/dist/tenancy/tenant-source.contract.js +21 -0
- package/dist/tenancy/tenant-source.contract.js.map +1 -0
- package/migrations/0000_core_init.sql +14 -14
- package/migrations/0003_deployment_settings.sql +1 -1
- package/migrations/0005_github_facade.sql +1 -1
- package/migrations/0012_agent_audit.sql +6 -6
- package/package.json +3 -3
- package/src/__tests__/branch-model.test.ts +7 -6
- package/src/__tests__/kb-context.ts +30 -0
- package/src/__tests__/kb-layout-config.test.ts +35 -30
- package/src/core/__tests__/catalog-cache-invalidation.test.ts +2 -1
- package/src/core/__tests__/lifecycle.test.ts +78 -1
- package/src/core/__tests__/public-config.test.ts +5 -1
- package/src/core/catalog-cache-invalidation.ts +16 -11
- package/src/core/core-ports.ts +19 -0
- package/src/core/create-core-server.ts +64 -107
- package/src/core/create-core-services.ts +238 -96
- package/src/core/lifecycle.ts +214 -29
- package/src/core/public-config.ts +8 -5
- package/src/core-config.ts +107 -8
- package/src/index.ts +25 -2
- package/src/modules/access/__tests__/access-control.admin-root-floor.test.ts +2 -1
- package/src/modules/access/__tests__/access-requests.recut.test.ts +134 -0
- package/src/modules/access/__tests__/access-requests.routes.test.ts +610 -0
- package/src/modules/access/__tests__/access.routes.batch.test.ts +2 -1
- package/src/modules/access/__tests__/access.routes.folder-governs.test.ts +2 -1
- package/src/modules/access/__tests__/access.routes.group-grant.test.ts +2 -1
- package/src/modules/access/__tests__/access.routes.overrides.test.ts +2 -1
- package/src/modules/access/__tests__/access.routes.proposal-branch.test.ts +2 -1
- package/src/modules/access/__tests__/access.routes.prospective.test.ts +2 -1
- package/src/modules/access/__tests__/access.routes.revoke.test.ts +2 -1
- package/src/modules/access/__tests__/access.routes.unknown-email.test.ts +2 -1
- package/src/modules/access/__tests__/change-read-gate.test.ts +13 -11
- package/src/modules/access/__tests__/creator-access.test.ts +3 -2
- package/src/modules/access/__tests__/roles.routes.test.ts +2 -1
- package/src/modules/access/access-control.service.ts +20 -6
- package/src/modules/access/access-requests.contract.ts +93 -0
- package/src/modules/access/access-requests.routes.ts +286 -0
- package/src/modules/access/access-requests.service.ts +420 -0
- package/src/modules/access/access.routes.ts +10 -13
- package/src/modules/access/change-read-gate.ts +10 -4
- package/src/modules/access/creator-access.ts +7 -2
- package/src/modules/access-model/access-grammar.ts +22 -0
- package/src/modules/agent-instructions/__tests__/read-preamble.test.ts +13 -12
- package/src/modules/agent-instructions/read-preamble.ts +10 -12
- package/src/modules/auth/__tests__/account.routes.test.ts +15 -0
- package/src/modules/auth/__tests__/auth.service.test.ts +98 -0
- package/src/modules/auth/account-admission.ts +44 -0
- package/src/modules/auth/account.routes.ts +4 -1
- package/src/modules/auth/auth.service.ts +61 -2
- package/src/modules/auth/oidc-auth-provider.ts +9 -0
- package/src/modules/connection-probe/connection-probe.service.ts +7 -1
- package/src/modules/database/__tests__/advisory-lock.test.ts +23 -1
- package/src/modules/database/__tests__/connection.test.ts +98 -0
- package/src/modules/database/__tests__/migrations-unqualified.test.ts +32 -0
- package/src/modules/database/advisory-lock.ts +28 -4
- package/src/modules/database/connection.ts +143 -13
- package/src/modules/database/migrate.ts +48 -14
- package/src/modules/diff/__tests__/diff.service.seed-atomicity.test.ts +2 -1
- package/src/modules/diff/__tests__/diff.service.test.ts +2 -1
- package/src/modules/github-app/__tests__/github-app.test.ts +848 -0
- package/src/modules/github-app/github-app.client.ts +268 -0
- package/src/modules/github-app/github-app.connection.ts +204 -0
- package/src/modules/github-app/github-app.routes.ts +359 -0
- package/src/modules/github-app/index.ts +19 -0
- package/src/modules/kb-fs/__tests__/branch-name.test.ts +6 -6
- package/src/modules/kb-fs/__tests__/clone-config.test.ts +24 -20
- package/src/modules/kb-fs/__tests__/remote-url.test.ts +38 -0
- package/src/modules/kb-fs/branch-name.ts +3 -3
- package/src/modules/kb-fs/clone-config.ts +15 -12
- package/src/modules/kb-fs/remote-url.ts +35 -0
- package/src/modules/marketplace/__tests__/marketplace-repo.head.test.ts +2 -1
- package/src/modules/mcp/mcp.service.ts +11 -4
- package/src/modules/plugins/__tests__/bundle-dialect.e2e.test.ts +12 -11
- package/src/modules/plugins/__tests__/bundle-dialect.test.ts +2 -1
- package/src/modules/plugins/__tests__/compile-marketplace.test.ts +6 -4
- package/src/modules/plugins/__tests__/join-proposals.test.ts +100 -19
- package/src/modules/plugins/__tests__/join-request-jobs.service.test.ts +2 -1
- package/src/modules/plugins/__tests__/join-requests.service.test.ts +28 -11
- package/src/modules/plugins/__tests__/join-requests.settlement.test.ts +371 -0
- package/src/modules/plugins/__tests__/plugin-creation-display-name.test.ts +4 -3
- package/src/modules/plugins/__tests__/plugin-index.service.test.ts +6 -4
- package/src/modules/plugins/__tests__/plugin-links.service.test.ts +220 -5
- package/src/modules/plugins/__tests__/plugin-provision.service.test.ts +3 -1
- package/src/modules/plugins/__tests__/plugin-rename.service.test.ts +7 -6
- package/src/modules/plugins/__tests__/plugins.routes.test.ts +12 -3
- package/src/modules/plugins/__tests__/teams.routes.test.ts +2 -1
- package/src/modules/plugins/compile/marketplace-compiler.service.ts +7 -9
- package/src/modules/plugins/discovery/__tests__/kb-plugin-source.test.ts +20 -16
- package/src/modules/plugins/discovery/bundle-dialect/bundle.source.ts +9 -2
- package/src/modules/plugins/discovery/kb-plugin-source.ts +15 -8
- package/src/modules/plugins/discovery/native.source.ts +4 -1
- package/src/modules/plugins/index.ts +1 -1
- package/src/modules/plugins/join-proposals.ts +87 -19
- package/src/modules/plugins/join-request-jobs.service.ts +8 -7
- package/src/modules/plugins/join-requests.service.ts +203 -43
- package/src/modules/plugins/plugin-links.service.ts +192 -19
- package/src/modules/plugins/plugin-links.ts +147 -27
- package/src/modules/plugins/plugin-provision.service.ts +54 -27
- package/src/modules/plugins/plugin-rename.service.ts +10 -10
- package/src/modules/plugins/plugins.routes.ts +48 -17
- package/src/modules/plugins/plugins.service.ts +7 -11
- package/src/modules/plugins/teams.routes.ts +16 -8
- package/src/modules/secrets-vault/__tests__/connect-pending.route.test.ts +7 -0
- package/src/modules/secrets-vault/__tests__/secrets-variable-loader.test.ts +40 -0
- package/src/modules/secrets-vault/__tests__/tool-owner-gate.route.test.ts +2 -0
- package/src/modules/secrets-vault/index.ts +2 -0
- package/src/modules/secrets-vault/secrets-variable-loader.ts +51 -21
- package/src/modules/secrets-vault/secrets-vault.routes.ts +7 -6
- package/src/modules/settings/__tests__/deployment-settings.service.test.ts +24 -11
- package/src/modules/settings/__tests__/git-root-folders.test.ts +2 -1
- package/src/modules/settings/__tests__/repository-source.test.ts +191 -0
- package/src/modules/settings/__tests__/setup.routes.boot-failure.test.ts +2 -1
- package/src/modules/settings/__tests__/setup.routes.git-mode.test.ts +353 -0
- package/src/modules/settings/__tests__/setup.routes.github-app.test.ts +282 -0
- package/src/modules/settings/__tests__/setup.routes.layout-phase.test.ts +7 -4
- package/src/modules/settings/__tests__/setup.routes.managed-phase.test.ts +233 -0
- package/src/modules/settings/__tests__/setup.routes.oidc.test.ts +2 -0
- package/src/modules/settings/__tests__/setup.routes.sync-status.test.ts +2 -0
- package/src/modules/settings/__tests__/setup.routes.test.ts +33 -52
- package/src/modules/settings/deployment-settings.service.ts +130 -23
- package/src/modules/settings/managed-repository.ts +68 -0
- package/src/modules/settings/repository-source.ts +197 -0
- package/src/modules/settings/setup.routes.ts +233 -19
- package/src/modules/skills/__tests__/allowed-tools-check.test.ts +11 -10
- package/src/modules/skills/__tests__/allowed-tools-warn.tools.test.ts +4 -3
- package/src/modules/skills/__tests__/pending-skills.service.test.ts +3 -1
- package/src/modules/skills/__tests__/skill-access-requests.routes.test.ts +7 -2
- package/src/modules/skills/__tests__/skills.routes.warnings.test.ts +2 -1
- package/src/modules/skills/__tests__/skills.service.test.ts +3 -2
- package/src/modules/skills/allowed-tools-check.ts +7 -6
- package/src/modules/skills/pending-skills.service.ts +9 -8
- package/src/modules/skills/skill-access-requests.routes.ts +29 -79
- package/src/modules/skills/skills.routes.ts +4 -3
- package/src/modules/skills/skills.service.ts +13 -9
- package/src/modules/tool-helpers/__tests__/agent-roles-write.test.ts +3 -2
- package/src/modules/tool-helpers/__tests__/phase4-tools.test.ts +3 -2
- package/src/modules/tool-helpers/tool-context.ts +15 -0
- package/src/modules/tool-manuals/__tests__/mcp-json-discovery.test.ts +17 -12
- package/src/modules/tool-manuals/__tests__/mcp-server-edit.service.test.ts +2 -1
- package/src/modules/tool-manuals/__tests__/pending-tools.service.test.ts +4 -1
- package/src/modules/tool-manuals/__tests__/tool-delete.service.test.ts +2 -1
- package/src/modules/tool-manuals/__tests__/tool-manuals.archive.route.test.ts +2 -1
- package/src/modules/tool-manuals/__tests__/tool-manuals.cli.test.ts +5 -4
- package/src/modules/tool-manuals/__tests__/tool-manuals.detail.route.test.ts +2 -1
- package/src/modules/tool-manuals/__tests__/tool-manuals.invalid.routes.test.ts +4 -2
- package/src/modules/tool-manuals/__tests__/tool-manuals.invalid.test.ts +13 -5
- package/src/modules/tool-manuals/__tests__/tool-manuals.mcp-oauth.test.ts +2 -1
- package/src/modules/tool-manuals/__tests__/tool-manuals.restart.test.ts +9 -1
- package/src/modules/tool-manuals/__tests__/tool-manuals.service.test.ts +3 -2
- package/src/modules/tool-manuals/__tests__/tool-manuals.tools.test.ts +2 -0
- package/src/modules/tool-manuals/mcp-json-discovery.ts +6 -4
- package/src/modules/tool-manuals/mcp-server-edit.service.ts +13 -11
- package/src/modules/tool-manuals/pending-tools.service.ts +19 -16
- package/src/modules/tool-manuals/tool-delete.service.ts +13 -10
- package/src/modules/tool-manuals/tool-manuals.routes.ts +10 -8
- package/src/modules/tool-manuals/tool-manuals.service.ts +15 -13
- package/src/modules/tool-manuals/tool-manuals.tools.ts +7 -6
- package/src/modules/workflow/__tests__/apply-failure.test.ts +11 -2
- package/src/modules/workflow/__tests__/merge-announces-tree.test.ts +14 -26
- package/src/modules/workflow/__tests__/preserve-roles-yaml.test.ts +2 -1
- package/src/modules/workflow/__tests__/session-ontology.service.test.ts +3 -2
- package/src/modules/workflow/__tests__/workflow.routes.lock-path.test.ts +2 -1
- package/src/modules/workflow/__tests__/workflow.service.branch-in-use.test.ts +3 -10
- package/src/modules/workflow/__tests__/workflow.service.commitFileWhileLocked.test.ts +2 -1
- package/src/modules/workflow/__tests__/workflow.service.deleted-branch-sweep.test.ts +3 -10
- package/src/modules/workflow/__tests__/workflow.service.facade.test.ts +187 -35
- package/src/modules/workflow/__tests__/workflow.service.folder-proposals.test.ts +2 -1
- package/src/modules/workflow/__tests__/workflow.service.platform-restore.test.ts +2 -1
- package/src/modules/workflow/__tests__/workflow.service.read-gate.test.ts +3 -2
- package/src/modules/workflow/__tests__/workflow.service.releaseLock.test.ts +2 -1
- package/src/modules/workflow/__tests__/workflow.service.sync.test.ts +5 -4
- package/src/modules/workflow/__tests__/workflow.service.update-from-target.test.ts +148 -41
- package/src/modules/workflow/agent-tools/__tests__/workflow.tools.test.ts +143 -2
- package/src/modules/workflow/agent-tools/workflow.tools.ts +60 -12
- package/src/modules/workflow/git/__tests__/git.service.accessGating.test.ts +5 -4
- package/src/modules/workflow/git/__tests__/git.service.changedFilesForPr.test.ts +12 -11
- package/src/modules/workflow/git/__tests__/git.service.commitChanges.test.ts +9 -8
- package/src/modules/workflow/git/__tests__/git.service.commitFile.strayPath.test.ts +8 -7
- package/src/modules/workflow/git/__tests__/git.service.commitFile.test.ts +6 -5
- package/src/modules/workflow/git/__tests__/git.service.createBranch.test.ts +3 -2
- package/src/modules/workflow/git/__tests__/git.service.deleteBranch.test.ts +3 -2
- package/src/modules/workflow/git/__tests__/git.service.diffFileAtCommit.test.ts +7 -6
- package/src/modules/workflow/git/__tests__/git.service.diffFileBetweenBranches.test.ts +16 -15
- package/src/modules/workflow/git/__tests__/git.service.fileContentsAtCommit.test.ts +3 -2
- package/src/modules/workflow/git/__tests__/git.service.forkPoint.test.ts +2 -1
- package/src/modules/workflow/git/__tests__/git.service.history-guards.test.ts +2 -1
- package/src/modules/workflow/git/__tests__/git.service.list-branches.test.ts +10 -9
- package/src/modules/workflow/git/__tests__/git.service.listTrackedFiles.test.ts +2 -1
- package/src/modules/workflow/git/__tests__/git.service.logForFile.test.ts +6 -5
- package/src/modules/workflow/git/__tests__/git.service.mergeChangeRequest.test.ts +9 -8
- package/src/modules/workflow/git/__tests__/git.service.pendingChanges.test.ts +2 -1
- package/src/modules/workflow/git/__tests__/git.service.postMergePull.test.ts +4 -3
- package/src/modules/workflow/git/__tests__/git.service.pull.test.ts +130 -8
- package/src/modules/workflow/git/__tests__/git.service.readFileAtRef.test.ts +2 -1
- package/src/modules/workflow/git/__tests__/git.service.revertPathsAndPush.test.ts +2 -1
- package/src/modules/workflow/git/__tests__/git.service.status.test.ts +4 -3
- package/src/modules/workflow/git/__tests__/git.service.syncFromRemote.test.ts +8 -7
- package/src/modules/workflow/git/__tests__/node-git-runner.test.ts +41 -3
- package/src/modules/workflow/git/__tests__/pull-request.service.getPrDetail.test.ts +145 -2
- package/src/modules/workflow/git/__tests__/pull-request.service.viewer-can-delete.test.ts +166 -0
- package/src/modules/workflow/git/git.service.ts +49 -17
- package/src/modules/workflow/git/node-git-runner.ts +43 -4
- package/src/modules/workflow/git/pull-request.service.ts +119 -0
- package/src/modules/workflow/review-workflow/review-workflow.service.ts +9 -6
- package/src/modules/workflow/session-ontology.service.ts +7 -2
- package/src/modules/workflow/workflow.routes.ts +3 -1
- package/src/modules/workflow/workflow.service.ts +201 -76
- package/src/modules/workspace/__tests__/file-stat-access.test.ts +3 -2
- package/src/modules/workspace/__tests__/git-internals.security.test.ts +10 -9
- package/src/modules/workspace/__tests__/session-ontology.gate.test.ts +4 -2
- package/src/modules/workspace/__tests__/workspace-paths-inside-the-repo.test.ts +3 -2
- package/src/modules/workspace/__tests__/workspace.routes.branch-errors.test.ts +2 -1
- package/src/modules/workspace/__tests__/workspace.routes.create-grant.test.ts +2 -1
- package/src/modules/workspace/__tests__/workspace.routes.delete.test.ts +2 -1
- package/src/modules/workspace/__tests__/workspace.routes.download-implies-read.test.ts +2 -1
- package/src/modules/workspace/__tests__/workspace.routes.download.test.ts +2 -1
- package/src/modules/workspace/__tests__/workspace.routes.file-writes.test.ts +2 -1
- package/src/modules/workspace/__tests__/workspace.routes.folders.test.ts +5 -4
- package/src/modules/workspace/__tests__/workspace.routes.move-platform-files.test.ts +2 -1
- package/src/modules/workspace/__tests__/workspace.routes.read-gate.test.ts +2 -1
- package/src/modules/workspace/__tests__/workspace.service.ensure-remotes-fetched.test.ts +2 -2
- package/src/modules/workspace/__tests__/workspace.service.list-cloned.test.ts +6 -5
- package/src/modules/workspace/__tests__/workspace.service.move-never-overwrites.test.ts +2 -1
- package/src/modules/workspace/__tests__/workspace.service.read-filter.test.ts +2 -1
- package/src/modules/workspace/__tests__/workspace.service.test.ts +84 -50
- package/src/modules/workspace/__tests__/workspace.service.unknown-branch.test.ts +45 -1
- package/src/modules/workspace/__tests__/workspace.tools.agents-file.test.ts +10 -7
- package/src/modules/workspace/__tests__/workspace.tools.branch-errors.test.ts +237 -10
- package/src/modules/workspace/__tests__/workspace.tools.test.ts +44 -11
- package/src/modules/workspace/__tests__/write-denial.test.ts +5 -4
- package/src/modules/workspace/session-ontology.gate.ts +6 -4
- package/src/modules/workspace/startup/__tests__/kb-startup-runner.degraded.test.ts +6 -2
- package/src/modules/workspace/startup/__tests__/kb-startup-runner.test.ts +240 -21
- package/src/modules/workspace/startup/kb-git.ts +15 -22
- package/src/modules/workspace/startup/kb-startup-runner.ts +198 -45
- package/src/modules/workspace/startup/steps/__tests__/steps.test.ts +104 -98
- package/src/modules/workspace/startup/steps/groups-to-plugins.step.ts +24 -16
- package/src/modules/workspace/startup/steps/personal-spaces.step.ts +14 -5
- package/src/modules/workspace/startup/steps/plugin-display-names.step.ts +13 -5
- package/src/modules/workspace/startup/steps/plugin-manifests.step.ts +14 -5
- package/src/modules/workspace/startup/steps/seed-tree.ts +11 -9
- package/src/modules/workspace/startup/steps/template-files.step.ts +43 -34
- package/src/modules/workspace/startup/steps/template-source.ts +8 -5
- package/src/modules/workspace/workspace.routes.ts +8 -7
- package/src/modules/workspace/workspace.service.ts +47 -28
- package/src/modules/workspace/workspace.tools.ts +56 -20
- package/src/modules/workspace/write-denial.ts +7 -5
- package/src/shared/__tests__/kb-layout.plugin.test.ts +19 -16
- package/src/shared/domain-errors.ts +58 -0
- package/src/shared/git.contract.ts +80 -8
- package/src/shared/kb-context.ts +130 -0
- package/src/shared/kb-layout.test.ts +37 -27
- package/src/shared/kb-layout.ts +4 -3
- package/src/shared/pending-proposals.ts +7 -4
- package/src/shared/redact-secret.ts +5 -5
- package/src/tenancy/__tests__/static-tenant-source.test.ts +177 -0
- package/src/tenancy/__tests__/tenant-host.test.ts +372 -0
- package/src/tenancy/__tests__/tenant-runtime.test.ts +221 -0
- package/src/tenancy/__tests__/tenant-secrets.test.ts +35 -0
- package/src/tenancy/index.ts +35 -0
- package/src/tenancy/static-tenant-source.ts +296 -0
- package/src/tenancy/tenant-host.ts +261 -0
- package/src/tenancy/tenant-runtime.ts +208 -0
- package/src/tenancy/tenant-secrets.ts +41 -0
- package/src/tenancy/tenant-source.contract.ts +59 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { type GitCredentials } from '../../shared/git.contract.js';
|
|
2
|
+
import type { ManagedRepository } from './managed-repository.js';
|
|
3
|
+
/**
|
|
4
|
+
* The ways a deployment can be given the repository its knowledge base
|
|
5
|
+
* lives in, in the order the setup screen offers them.
|
|
6
|
+
*
|
|
7
|
+
* - `managed`: the deployment keeps the repository itself.
|
|
8
|
+
* - `github-app`: a repository on GitHub, reached through a GitHub App the
|
|
9
|
+
* admin installed on it.
|
|
10
|
+
* - `token`: any git host, by its address and an access token.
|
|
11
|
+
*/
|
|
12
|
+
export declare const GIT_MODES: readonly ["managed", "github-app", "token"];
|
|
13
|
+
export type GitMode = (typeof GIT_MODES)[number];
|
|
14
|
+
export declare function isGitMode(value: unknown): value is GitMode;
|
|
15
|
+
/** Reads one setting as it is in effect, or as it would be after a save. */
|
|
16
|
+
export type SettingReader = (key: string) => string;
|
|
17
|
+
/**
|
|
18
|
+
* A repository reached through a GitHub App: which one, and the short-lived
|
|
19
|
+
* token the app is given for it. Implemented by the GitHub App module; the
|
|
20
|
+
* source only asks.
|
|
21
|
+
*/
|
|
22
|
+
export interface GitHubAppRepository {
|
|
23
|
+
/** `https://github.com/<owner>/<name>.git`, or empty while none is chosen. */
|
|
24
|
+
url(read: SettingReader): string;
|
|
25
|
+
/** The installation token in hand, or null when there is none to give. */
|
|
26
|
+
token(): string | null;
|
|
27
|
+
/**
|
|
28
|
+
* Make sure {@link token} answers with one that is still good. `asked`
|
|
29
|
+
* is for a caller waiting on the answer itself, who is told a failure.
|
|
30
|
+
*/
|
|
31
|
+
prepare(opts?: {
|
|
32
|
+
asked?: boolean;
|
|
33
|
+
}): Promise<void>;
|
|
34
|
+
/** Whether the deployment may be pointed at this repository (`owner/name`). */
|
|
35
|
+
permits(repository: string, read: SettingReader): boolean;
|
|
36
|
+
/** Whether the app, its installation and a repository are all there. */
|
|
37
|
+
answered(read: SettingReader): boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface RepositorySourceOptions {
|
|
40
|
+
/** The deployment's settings, as they are in effect. */
|
|
41
|
+
read: SettingReader;
|
|
42
|
+
/**
|
|
43
|
+
* What the environment gives the token mode beyond the settings
|
|
44
|
+
* catalogue: the legacy spellings of the token variable, and the username
|
|
45
|
+
* a deployment configured there.
|
|
46
|
+
*/
|
|
47
|
+
fallback?: {
|
|
48
|
+
username?: string;
|
|
49
|
+
token?: string;
|
|
50
|
+
};
|
|
51
|
+
managed: ManagedRepository;
|
|
52
|
+
githubApp?: GitHubAppRepository;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* WHERE THE KNOWLEDGE BASE'S REPOSITORY IS, AND WHAT GIT PRESENTS TO IT —
|
|
56
|
+
* the one place that knows there is more than one answer.
|
|
57
|
+
*
|
|
58
|
+
* Everything that runs git asks for two things: an address to clone from,
|
|
59
|
+
* and a credential. Both used to be read straight from two settings, which
|
|
60
|
+
* is one way of having a repository. With three ways, each reader deciding
|
|
61
|
+
* for itself would be three places to disagree, so they all ask here, and
|
|
62
|
+
* what they get back is the same two things as before.
|
|
63
|
+
*
|
|
64
|
+
* TWO MODES, AND THEY ARE NOT ALWAYS THE SAME ONE.
|
|
65
|
+
*
|
|
66
|
+
* - The mode IN EFFECT is the one this process is running on. Its working
|
|
67
|
+
* copies are clones of that mode's repository, and every address and
|
|
68
|
+
* credential this class hands out is that mode's. It is taken when the
|
|
69
|
+
* source is built and changes only in {@link takeEffect}.
|
|
70
|
+
* - The mode CHOSEN is what the settings say. A save changes it at once.
|
|
71
|
+
*
|
|
72
|
+
* They differ between the save that moves a serving deployment and the
|
|
73
|
+
* restart that save owes. Reading the mode live would move the process the
|
|
74
|
+
* moment the setting was stored: the new mode's credential presented to the
|
|
75
|
+
* old mode's repository, which every working copy still points at, and new
|
|
76
|
+
* branches cloned from a repository the startup phase has not prepared. So
|
|
77
|
+
* the process stays where it is until it is started again, which is what
|
|
78
|
+
* the setup screen tells the admin.
|
|
79
|
+
*
|
|
80
|
+
* WITHIN a mode the values are read live, as they always were: a rotated
|
|
81
|
+
* token is the one the next push carries.
|
|
82
|
+
*
|
|
83
|
+
* THE MODE IS INFERRED WHEN NOBODY CHOSE ONE. A deployment configured before
|
|
84
|
+
* there was a choice has an address and a token and no mode; it is in
|
|
85
|
+
* `token` mode, because that is what it has. One with nothing configured has
|
|
86
|
+
* no mode, and the setup screen offers the first.
|
|
87
|
+
*/
|
|
88
|
+
export declare class RepositorySource {
|
|
89
|
+
private readonly opts;
|
|
90
|
+
/** What git authenticates with, read on every call. */
|
|
91
|
+
readonly credentials: GitCredentials;
|
|
92
|
+
private inEffect;
|
|
93
|
+
constructor(opts: RepositorySourceOptions);
|
|
94
|
+
/**
|
|
95
|
+
* Without a reader, the mode IN EFFECT. With one, the mode a save of that
|
|
96
|
+
* reader's values would CHOOSE: the answer validation wants, about values
|
|
97
|
+
* that are not stored yet. Null: nothing is configured.
|
|
98
|
+
*/
|
|
99
|
+
mode(read?: SettingReader): GitMode | null;
|
|
100
|
+
/** The mode the settings say, which a restart would put in effect. */
|
|
101
|
+
chosen(read?: SettingReader): GitMode | null;
|
|
102
|
+
/**
|
|
103
|
+
* Put the mode chosen in effect. Called where nothing is using the mode
|
|
104
|
+
* that was: by a save made before the deployment was serving, which the
|
|
105
|
+
* startup phase follows. A process that is serving is never moved; it is
|
|
106
|
+
* restarted, and built on the mode chosen.
|
|
107
|
+
*/
|
|
108
|
+
takeEffect(): void;
|
|
109
|
+
/** The address git clones from and pushes to. Empty while there is none. Asked as {@link mode} is. */
|
|
110
|
+
url(read?: SettingReader): string;
|
|
111
|
+
/**
|
|
112
|
+
* Whether the repository half of setup is answered: there is somewhere to
|
|
113
|
+
* clone from and, where one is needed, something to present. Asked as
|
|
114
|
+
* {@link mode} is.
|
|
115
|
+
*/
|
|
116
|
+
answered(read?: SettingReader): boolean;
|
|
117
|
+
private username;
|
|
118
|
+
/**
|
|
119
|
+
* One mode's credential is never presented to another mode's repository:
|
|
120
|
+
* a deployment that moved to a managed repository still has its old
|
|
121
|
+
* token stored, and a path on its own disk has no use for it. The mode is
|
|
122
|
+
* the one IN EFFECT, because that is the repository git is talking to.
|
|
123
|
+
*/
|
|
124
|
+
private token;
|
|
125
|
+
private prepare;
|
|
126
|
+
private tokenIn;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=repository-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository-source.d.ts","sourceRoot":"","sources":["../../../src/modules/settings/repository-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,6CAA8C,CAAC;AACrE,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE1D;AAED,4EAA4E;AAC5E,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;AAEpD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,8EAA8E;IAC9E,GAAG,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAAC;IACjC,0EAA0E;IAC1E,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,+EAA+E;IAC/E,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;IAC1D,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,uBAAuB;IACtC,wDAAwD;IACxD,IAAI,EAAE,aAAa,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,gBAAgB;IAKf,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJjC,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAiB;gBAEJ,IAAI,EAAE,uBAAuB;IAS1D;;;;OAIG;IACH,IAAI,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,GAAG,IAAI;IAI1C,sEAAsE;IACtE,MAAM,CAAC,IAAI,GAAE,aAA8B,GAAG,OAAO,GAAG,IAAI;IAM5D;;;;;OAKG;IACH,UAAU,IAAI,IAAI;IAIlB,sGAAsG;IACtG,GAAG,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM;IAcjC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO;IAcvC,OAAO,CAAC,QAAQ;IAMhB;;;;;OAKG;IACH,OAAO,CAAC,KAAK;YAWC,OAAO;IAIrB,OAAO,CAAC,OAAO;CAIhB"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { DEFAULT_GIT_USERNAME } from '../../shared/git.contract.js';
|
|
2
|
+
/**
|
|
3
|
+
* The ways a deployment can be given the repository its knowledge base
|
|
4
|
+
* lives in, in the order the setup screen offers them.
|
|
5
|
+
*
|
|
6
|
+
* - `managed`: the deployment keeps the repository itself.
|
|
7
|
+
* - `github-app`: a repository on GitHub, reached through a GitHub App the
|
|
8
|
+
* admin installed on it.
|
|
9
|
+
* - `token`: any git host, by its address and an access token.
|
|
10
|
+
*/
|
|
11
|
+
export const GIT_MODES = ['managed', 'github-app', 'token'];
|
|
12
|
+
export function isGitMode(value) {
|
|
13
|
+
return typeof value === 'string' && GIT_MODES.includes(value);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* WHERE THE KNOWLEDGE BASE'S REPOSITORY IS, AND WHAT GIT PRESENTS TO IT —
|
|
17
|
+
* the one place that knows there is more than one answer.
|
|
18
|
+
*
|
|
19
|
+
* Everything that runs git asks for two things: an address to clone from,
|
|
20
|
+
* and a credential. Both used to be read straight from two settings, which
|
|
21
|
+
* is one way of having a repository. With three ways, each reader deciding
|
|
22
|
+
* for itself would be three places to disagree, so they all ask here, and
|
|
23
|
+
* what they get back is the same two things as before.
|
|
24
|
+
*
|
|
25
|
+
* TWO MODES, AND THEY ARE NOT ALWAYS THE SAME ONE.
|
|
26
|
+
*
|
|
27
|
+
* - The mode IN EFFECT is the one this process is running on. Its working
|
|
28
|
+
* copies are clones of that mode's repository, and every address and
|
|
29
|
+
* credential this class hands out is that mode's. It is taken when the
|
|
30
|
+
* source is built and changes only in {@link takeEffect}.
|
|
31
|
+
* - The mode CHOSEN is what the settings say. A save changes it at once.
|
|
32
|
+
*
|
|
33
|
+
* They differ between the save that moves a serving deployment and the
|
|
34
|
+
* restart that save owes. Reading the mode live would move the process the
|
|
35
|
+
* moment the setting was stored: the new mode's credential presented to the
|
|
36
|
+
* old mode's repository, which every working copy still points at, and new
|
|
37
|
+
* branches cloned from a repository the startup phase has not prepared. So
|
|
38
|
+
* the process stays where it is until it is started again, which is what
|
|
39
|
+
* the setup screen tells the admin.
|
|
40
|
+
*
|
|
41
|
+
* WITHIN a mode the values are read live, as they always were: a rotated
|
|
42
|
+
* token is the one the next push carries.
|
|
43
|
+
*
|
|
44
|
+
* THE MODE IS INFERRED WHEN NOBODY CHOSE ONE. A deployment configured before
|
|
45
|
+
* there was a choice has an address and a token and no mode; it is in
|
|
46
|
+
* `token` mode, because that is what it has. One with nothing configured has
|
|
47
|
+
* no mode, and the setup screen offers the first.
|
|
48
|
+
*/
|
|
49
|
+
export class RepositorySource {
|
|
50
|
+
opts;
|
|
51
|
+
/** What git authenticates with, read on every call. */
|
|
52
|
+
credentials;
|
|
53
|
+
inEffect;
|
|
54
|
+
constructor(opts) {
|
|
55
|
+
this.opts = opts;
|
|
56
|
+
this.inEffect = this.chosen();
|
|
57
|
+
this.credentials = {
|
|
58
|
+
username: () => this.username(),
|
|
59
|
+
token: () => this.token(),
|
|
60
|
+
prepare: () => this.prepare(),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Without a reader, the mode IN EFFECT. With one, the mode a save of that
|
|
65
|
+
* reader's values would CHOOSE: the answer validation wants, about values
|
|
66
|
+
* that are not stored yet. Null: nothing is configured.
|
|
67
|
+
*/
|
|
68
|
+
mode(read) {
|
|
69
|
+
return read ? this.chosen(read) : this.inEffect;
|
|
70
|
+
}
|
|
71
|
+
/** The mode the settings say, which a restart would put in effect. */
|
|
72
|
+
chosen(read = this.opts.read) {
|
|
73
|
+
const named = read('gitMode').trim();
|
|
74
|
+
if (isGitMode(named))
|
|
75
|
+
return named;
|
|
76
|
+
return read('kbRepoUrl') || this.tokenIn(read) ? 'token' : null;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Put the mode chosen in effect. Called where nothing is using the mode
|
|
80
|
+
* that was: by a save made before the deployment was serving, which the
|
|
81
|
+
* startup phase follows. A process that is serving is never moved; it is
|
|
82
|
+
* restarted, and built on the mode chosen.
|
|
83
|
+
*/
|
|
84
|
+
takeEffect() {
|
|
85
|
+
this.inEffect = this.chosen();
|
|
86
|
+
}
|
|
87
|
+
/** The address git clones from and pushes to. Empty while there is none. Asked as {@link mode} is. */
|
|
88
|
+
url(read) {
|
|
89
|
+
const from = read ?? this.opts.read;
|
|
90
|
+
switch (this.mode(read)) {
|
|
91
|
+
case 'managed':
|
|
92
|
+
return this.opts.managed.path;
|
|
93
|
+
case 'github-app':
|
|
94
|
+
return this.opts.githubApp?.url(from) ?? '';
|
|
95
|
+
case 'token':
|
|
96
|
+
return from('kbRepoUrl');
|
|
97
|
+
default:
|
|
98
|
+
return '';
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Whether the repository half of setup is answered: there is somewhere to
|
|
103
|
+
* clone from and, where one is needed, something to present. Asked as
|
|
104
|
+
* {@link mode} is.
|
|
105
|
+
*/
|
|
106
|
+
answered(read) {
|
|
107
|
+
const from = read ?? this.opts.read;
|
|
108
|
+
switch (this.mode(read)) {
|
|
109
|
+
case 'managed':
|
|
110
|
+
return true;
|
|
111
|
+
case 'github-app':
|
|
112
|
+
return this.opts.githubApp?.answered(from) ?? false;
|
|
113
|
+
case 'token':
|
|
114
|
+
return Boolean(from('kbRepoUrl') && this.tokenIn(from));
|
|
115
|
+
default:
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
username() {
|
|
120
|
+
// Only a host that was given a token is given a name to go with it.
|
|
121
|
+
if (this.inEffect !== 'token')
|
|
122
|
+
return DEFAULT_GIT_USERNAME;
|
|
123
|
+
return this.opts.read('gitUsername') || this.opts.fallback?.username || DEFAULT_GIT_USERNAME;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* One mode's credential is never presented to another mode's repository:
|
|
127
|
+
* a deployment that moved to a managed repository still has its old
|
|
128
|
+
* token stored, and a path on its own disk has no use for it. The mode is
|
|
129
|
+
* the one IN EFFECT, because that is the repository git is talking to.
|
|
130
|
+
*/
|
|
131
|
+
token() {
|
|
132
|
+
switch (this.inEffect) {
|
|
133
|
+
case 'token':
|
|
134
|
+
return this.tokenIn(this.opts.read) || null;
|
|
135
|
+
case 'github-app':
|
|
136
|
+
return this.opts.githubApp?.token() ?? null;
|
|
137
|
+
default:
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
async prepare() {
|
|
142
|
+
if (this.inEffect === 'github-app')
|
|
143
|
+
await this.opts.githubApp?.prepare();
|
|
144
|
+
}
|
|
145
|
+
tokenIn(read) {
|
|
146
|
+
// The fallback is the environment's, so it is in effect whatever a save brings.
|
|
147
|
+
return read('gitToken') || this.opts.fallback?.token || '';
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=repository-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository-source.js","sourceRoot":"","sources":["../../../src/modules/settings/repository-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,26 @@ import type { IAdminAccessService } from '../admin/admin.interface.js';
|
|
|
3
3
|
import { DeploymentSettingsService } from './deployment-settings.service.js';
|
|
4
4
|
import { type IssuerCheck, type OidcCheck, type OidcConfiguration } from './oidc-check.js';
|
|
5
5
|
import { type ConnectionCheck, type RepositoryConnection } from './connection-check.js';
|
|
6
|
+
import type { KbContext } from '../../shared/kb-context.js';
|
|
6
7
|
import { type GitFailure } from '../../shared/git-failure.js';
|
|
7
8
|
import { listRootFolders } from './git-root-folders.js';
|
|
9
|
+
import { type GitHubAppRepository, type RepositorySource } from './repository-source.js';
|
|
8
10
|
import '../auth/auth.middleware.js';
|
|
11
|
+
/**
|
|
12
|
+
* What setup needs of the ways a deployment can be given its repository:
|
|
13
|
+
* the source every reader of the repository asks, and the one thing a mode
|
|
14
|
+
* has to have DONE before a save that chooses it may go through.
|
|
15
|
+
*/
|
|
16
|
+
export interface RepositorySetup {
|
|
17
|
+
source: RepositorySource;
|
|
18
|
+
/** Create the repository the deployment keeps for itself, if it is not there. Never touches one that is. */
|
|
19
|
+
ensureManaged(initialBranch: string): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* The connection to GitHub through a GitHub App. Absent, that way is not
|
|
22
|
+
* offered, and a save that names it is refused.
|
|
23
|
+
*/
|
|
24
|
+
githubApp?: Pick<GitHubAppRepository, 'url' | 'answered' | 'prepare' | 'token' | 'permits'>;
|
|
25
|
+
}
|
|
9
26
|
/**
|
|
10
27
|
* The slice of a sync record the status endpoint publishes. Declared here
|
|
11
28
|
* rather than imported from `kb-sync` so this module stays free of that one;
|
|
@@ -50,6 +67,12 @@ kbStartupRunner: {
|
|
|
50
67
|
/** That failure classified, for the setup screen; absent, the message is read instead. */
|
|
51
68
|
lastFailureKind?(): GitFailure | null;
|
|
52
69
|
},
|
|
70
|
+
/**
|
|
71
|
+
* The knowledge base's context as the running graph holds it: the save
|
|
72
|
+
* that completes setup applies the branch model and the layout to it, so
|
|
73
|
+
* every service reads the admin's answer without a restart.
|
|
74
|
+
*/
|
|
75
|
+
kb: KbContext,
|
|
53
76
|
/**
|
|
54
77
|
* The remote-sync facts the Deployment page shows beside the sync secret:
|
|
55
78
|
* the address a webhook or pipeline must call, and what the last call did.
|
|
@@ -78,7 +101,12 @@ oidcRedirectUri?: string,
|
|
|
78
101
|
/** The single sign-on check. Injected so route tests can answer for the provider. */
|
|
79
102
|
checkOidc?: (config: OidcConfiguration) => Promise<OidcCheck>,
|
|
80
103
|
/** The issuer-only half, for a test with no application id or secret yet. */
|
|
81
|
-
checkIssuer?: (issuerUrl: string) => Promise<IssuerCheck
|
|
104
|
+
checkIssuer?: (issuerUrl: string) => Promise<IssuerCheck>,
|
|
105
|
+
/**
|
|
106
|
+
* The ways a deployment can be given its repository. Absent, there is the
|
|
107
|
+
* one there always was: an address and a token, read from the settings.
|
|
108
|
+
*/
|
|
109
|
+
repository?: RepositorySetup): express.Router;
|
|
82
110
|
/**
|
|
83
111
|
* Whether the STORED configuration answers everything the deployment needs.
|
|
84
112
|
*
|
|
@@ -92,7 +120,9 @@ checkIssuer?: (issuerUrl: string) => Promise<IssuerCheck>): express.Router;
|
|
|
92
120
|
* deployment signs in perfectly well without it, and gating on it would lock
|
|
93
121
|
* an admin out of the screen where they would set it up.
|
|
94
122
|
*/
|
|
95
|
-
export declare function settingsAnswered(settings: DeploymentSettingsService
|
|
123
|
+
export declare function settingsAnswered(settings: DeploymentSettingsService,
|
|
124
|
+
/** What answers for the repository. Absent: an address and a token, the one way there was. */
|
|
125
|
+
source?: Pick<RepositorySource, 'answered'>): boolean;
|
|
96
126
|
/**
|
|
97
127
|
* Whether THIS PROCESS can actually serve — which is not the same question,
|
|
98
128
|
* and conflating them opened the gate onto a broken app.
|
|
@@ -108,7 +138,7 @@ export declare function settingsAnswered(settings: DeploymentSettingsService): b
|
|
|
108
138
|
* that puts it there. {@link awaitingRestart} is what tells the screen to ask
|
|
109
139
|
* for one rather than claim a field is missing.
|
|
110
140
|
*/
|
|
111
|
-
export declare function isComplete(settings: DeploymentSettingsService): boolean;
|
|
141
|
+
export declare function isComplete(settings: DeploymentSettingsService, kb: Pick<KbContext, 'isBranchModelConfigured'>, source?: Pick<RepositorySource, 'answered'>): boolean;
|
|
112
142
|
/** Answered, but not yet in effect: everything is stored, the process is stale. */
|
|
113
|
-
export declare function awaitingRestart(settings: DeploymentSettingsService): boolean;
|
|
143
|
+
export declare function awaitingRestart(settings: DeploymentSettingsService, kb: Pick<KbContext, 'isBranchModelConfigured'>, source?: Pick<RepositorySource, 'answered'>): boolean;
|
|
114
144
|
//# sourceMappingURL=setup.routes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.routes.d.ts","sourceRoot":"","sources":["../../../src/modules/settings/setup.routes.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAIvE,OAAO,EACL,yBAAyB,EAI1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.routes.d.ts","sourceRoot":"","sources":["../../../src/modules/settings/setup.routes.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAIvE,OAAO,EACL,yBAAyB,EAI1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAM/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAqB,MAAM,uBAAuB,CAAC;AAE3E,OAAO,EAAa,KAAK,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACpG,OAAO,4BAA4B,CAAC;AAEpC;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,gBAAgB,CAAC;IACzB,4GAA4G;IAC5G,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD;;;OAGG;IACH,SAAS,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;CAC7F;AA6BD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,yBAAyB,EACnC,WAAW,EAAE,mBAAmB;AAChC;;;;;GAKG;AACH,eAAe,EAAE;IACf,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB;;;;OAIG;IACH,WAAW,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC;IAC9B,0FAA0F;IAC1F,eAAe,CAAC,IAAI,UAAU,GAAG,IAAI,CAAC;CACvC;AACD;;;;GAIG;AACH,EAAE,EAAE,SAAS;AACb;;;;;GAKG;AACH,IAAI,CAAC,EAAE;IACL,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,IAAI,cAAc,GAAG,IAAI,CAAC;CACnC;AACD;;;;;GAKG;AACH,eAAe,GAAE,CAAC,UAAU,EAAE,oBAAoB,KAAK,OAAO,CAAC,eAAe,CAA6B;AAC3G,qFAAqF;AACrF,WAAW,GAAE,OAAO,eAAiC;AACrD;;;GAGG;AACH,eAAe,SAAK;AACpB,qFAAqF;AACrF,SAAS,GAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,SAAS,CAA0B;AACrF,6EAA6E;AAC7E,WAAW,GAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAiC;AACxF;;;GAGG;AACH,UAAU,CAAC,EAAE,eAAe,GAC3B,OAAO,CAAC,MAAM,CAixBhB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,yBAAyB;AACnC,8FAA8F;AAC9F,MAAM,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAC1C,OAAO,CAQT;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,yBAAyB,EACnC,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,EAC9C,MAAM,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAC1C,OAAO,CAET;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,yBAAyB,EACnC,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,EAC9C,MAAM,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAC1C,OAAO,CAET"}
|