@nocobase/app-server 0.11.1-alpha.4 → 2.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +295 -0
- package/dist/application/index.d.ts +128 -0
- package/dist/application/index.d.ts.map +1 -0
- package/dist/application/index.js +386 -0
- package/dist/application/index.js.map +1 -0
- package/dist/caching/config.d.ts +2 -0
- package/dist/caching/config.d.ts.map +1 -0
- package/dist/caching/config.js +2 -0
- package/dist/caching/config.js.map +1 -0
- package/dist/caching/index.d.ts +5 -0
- package/dist/caching/index.d.ts.map +1 -0
- package/dist/caching/index.js +4 -0
- package/dist/caching/index.js.map +1 -0
- package/dist/caching/provider.d.ts +8 -0
- package/dist/caching/provider.d.ts.map +1 -0
- package/dist/caching/provider.js +14 -0
- package/dist/caching/provider.js.map +1 -0
- package/dist/caching/token.d.ts +4 -0
- package/dist/caching/token.d.ts.map +1 -0
- package/dist/caching/token.js +3 -0
- package/dist/caching/token.js.map +1 -0
- package/dist/config/app-config-types.d.ts +44 -0
- package/dist/config/app-config-types.d.ts.map +1 -0
- package/dist/config/app-config-types.js +2 -0
- package/dist/config/app-config-types.js.map +1 -0
- package/dist/config/app-config.d.ts +60 -0
- package/dist/config/app-config.d.ts.map +1 -0
- package/dist/config/app-config.js +247 -0
- package/dist/config/app-config.js.map +1 -0
- package/dist/config/context.d.ts +3 -0
- package/dist/config/context.d.ts.map +1 -0
- package/dist/config/context.js +7 -0
- package/dist/config/context.js.map +1 -0
- package/dist/config/define-app-config.d.ts +71 -0
- package/dist/config/define-app-config.d.ts.map +1 -0
- package/dist/config/define-app-config.js +48 -0
- package/dist/config/define-app-config.js.map +1 -0
- package/dist/config/index.d.ts +13 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +11 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/not-configured.d.ts +23 -0
- package/dist/config/not-configured.d.ts.map +1 -0
- package/dist/config/not-configured.js +31 -0
- package/dist/config/not-configured.js.map +1 -0
- package/dist/config/paths.d.ts +27 -0
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +27 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/config/placeholder-secret.d.ts +19 -0
- package/dist/config/placeholder-secret.d.ts.map +1 -0
- package/dist/config/placeholder-secret.js +26 -0
- package/dist/config/placeholder-secret.js.map +1 -0
- package/dist/config/runtime-environment.d.ts +11 -0
- package/dist/config/runtime-environment.d.ts.map +1 -0
- package/dist/config/runtime-environment.js +20 -0
- package/dist/config/runtime-environment.js.map +1 -0
- package/dist/config/types.d.ts +12 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/validation.d.ts +36 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +186 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/config/variables.d.ts +57 -0
- package/dist/config/variables.d.ts.map +1 -0
- package/dist/config/variables.js +89 -0
- package/dist/config/variables.js.map +1 -0
- package/dist/database/collections-artifact.d.ts +99 -0
- package/dist/database/collections-artifact.d.ts.map +1 -0
- package/dist/database/collections-artifact.js +397 -0
- package/dist/database/collections-artifact.js.map +1 -0
- package/dist/database/collections-directory.d.ts +36 -0
- package/dist/database/collections-directory.d.ts.map +1 -0
- package/dist/database/collections-directory.js +115 -0
- package/dist/database/collections-directory.js.map +1 -0
- package/dist/database/collections-doctor.d.ts +43 -0
- package/dist/database/collections-doctor.d.ts.map +1 -0
- package/dist/database/collections-doctor.js +88 -0
- package/dist/database/collections-doctor.js.map +1 -0
- package/dist/database/connection-check.d.ts +25 -0
- package/dist/database/connection-check.d.ts.map +1 -0
- package/dist/database/connection-check.js +65 -0
- package/dist/database/connection-check.js.map +1 -0
- package/dist/database/connection-selection.d.ts +16 -0
- package/dist/database/connection-selection.d.ts.map +1 -0
- package/dist/database/connection-selection.js +30 -0
- package/dist/database/connection-selection.js.map +1 -0
- package/dist/database/define-app-database-config.d.ts +49 -0
- package/dist/database/define-app-database-config.d.ts.map +1 -0
- package/dist/database/define-app-database-config.js +73 -0
- package/dist/database/define-app-database-config.js.map +1 -0
- package/dist/database/environment.d.ts +11 -0
- package/dist/database/environment.d.ts.map +1 -0
- package/dist/database/environment.js +49 -0
- package/dist/database/environment.js.map +1 -0
- package/dist/database/index.d.ts +17 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +16 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/manager.d.ts +16 -0
- package/dist/database/manager.d.ts.map +1 -0
- package/dist/database/manager.js +83 -0
- package/dist/database/manager.js.map +1 -0
- package/dist/database/migrator.d.ts +88 -0
- package/dist/database/migrator.d.ts.map +1 -0
- package/dist/database/migrator.js +143 -0
- package/dist/database/migrator.js.map +1 -0
- package/dist/database/ownership.d.ts +6 -0
- package/dist/database/ownership.d.ts.map +1 -0
- package/dist/database/ownership.js +50 -0
- package/dist/database/ownership.js.map +1 -0
- package/dist/database/plan.d.ts +36 -0
- package/dist/database/plan.d.ts.map +1 -0
- package/dist/database/plan.js +136 -0
- package/dist/database/plan.js.map +1 -0
- package/dist/database/provider.d.ts +43 -0
- package/dist/database/provider.d.ts.map +1 -0
- package/dist/database/provider.js +171 -0
- package/dist/database/provider.js.map +1 -0
- package/dist/database/resolve-config.d.ts +42 -0
- package/dist/database/resolve-config.d.ts.map +1 -0
- package/dist/database/resolve-config.js +118 -0
- package/dist/database/resolve-config.js.map +1 -0
- package/dist/database/seeder.d.ts +50 -0
- package/dist/database/seeder.d.ts.map +1 -0
- package/dist/database/seeder.js +117 -0
- package/dist/database/seeder.js.map +1 -0
- package/dist/database/storage.d.ts +10 -0
- package/dist/database/storage.d.ts.map +1 -0
- package/dist/database/storage.js +37 -0
- package/dist/database/storage.js.map +1 -0
- package/dist/database/task-config.d.ts +7 -0
- package/dist/database/task-config.d.ts.map +1 -0
- package/dist/database/task-config.js +19 -0
- package/dist/database/task-config.js.map +1 -0
- package/dist/database/task-container.d.ts +3 -0
- package/dist/database/task-container.d.ts.map +1 -0
- package/dist/database/task-container.js +34 -0
- package/dist/database/task-container.js.map +1 -0
- package/dist/database/tasks.d.ts +104 -0
- package/dist/database/tasks.d.ts.map +1 -0
- package/dist/database/tasks.js +350 -0
- package/dist/database/tasks.js.map +1 -0
- package/dist/database/types.d.ts +92 -0
- package/dist/database/types.d.ts.map +1 -0
- package/dist/database/types.js +2 -0
- package/dist/database/types.js.map +1 -0
- package/dist/drive/config.d.ts +2 -0
- package/dist/drive/config.d.ts.map +1 -0
- package/dist/drive/config.js +2 -0
- package/dist/drive/config.js.map +1 -0
- package/dist/drive/index.d.ts +5 -0
- package/dist/drive/index.d.ts.map +1 -0
- package/dist/drive/index.js +4 -0
- package/dist/drive/index.js.map +1 -0
- package/dist/drive/provider.d.ts +9 -0
- package/dist/drive/provider.d.ts.map +1 -0
- package/dist/drive/provider.js +22 -0
- package/dist/drive/provider.js.map +1 -0
- package/dist/drive/token.d.ts +4 -0
- package/dist/drive/token.d.ts.map +1 -0
- package/dist/drive/token.js +3 -0
- package/dist/drive/token.js.map +1 -0
- package/dist/i18n/index.d.ts +37 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +44 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/id-generator/config.d.ts +2 -0
- package/dist/id-generator/config.d.ts.map +1 -0
- package/dist/id-generator/config.js +2 -0
- package/dist/id-generator/config.js.map +1 -0
- package/dist/id-generator/index.d.ts +5 -0
- package/dist/id-generator/index.d.ts.map +1 -0
- package/dist/id-generator/index.js +4 -0
- package/dist/id-generator/index.js.map +1 -0
- package/dist/id-generator/provider.d.ts +7 -0
- package/dist/id-generator/provider.d.ts.map +1 -0
- package/dist/id-generator/provider.js +11 -0
- package/dist/id-generator/provider.js.map +1 -0
- package/dist/id-generator/token.d.ts +4 -0
- package/dist/id-generator/token.d.ts.map +1 -0
- package/dist/id-generator/token.js +3 -0
- package/dist/id-generator/token.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/jobs/config.d.ts +2 -0
- package/dist/jobs/config.d.ts.map +1 -0
- package/dist/jobs/config.js +2 -0
- package/dist/jobs/config.js.map +1 -0
- package/dist/jobs/index.d.ts +4 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/index.js +4 -0
- package/dist/jobs/index.js.map +1 -0
- package/dist/jobs/provider.d.ts +23 -0
- package/dist/jobs/provider.d.ts.map +1 -0
- package/dist/jobs/provider.js +55 -0
- package/dist/jobs/provider.js.map +1 -0
- package/dist/jobs/token.d.ts +8 -0
- package/dist/jobs/token.d.ts.map +1 -0
- package/dist/jobs/token.js +7 -0
- package/dist/jobs/token.js.map +1 -0
- package/dist/logging/config.d.ts +16 -0
- package/dist/logging/config.d.ts.map +1 -0
- package/dist/logging/config.js +26 -0
- package/dist/logging/config.js.map +1 -0
- package/dist/logging/index.d.ts +5 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +5 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/logging/middleware.d.ts +13 -0
- package/dist/logging/middleware.d.ts.map +1 -0
- package/dist/logging/middleware.js +128 -0
- package/dist/logging/middleware.js.map +1 -0
- package/dist/logging/provider.d.ts +9 -0
- package/dist/logging/provider.d.ts.map +1 -0
- package/dist/logging/provider.js +95 -0
- package/dist/logging/provider.js.map +1 -0
- package/dist/logging/token.d.ts +4 -0
- package/dist/logging/token.d.ts.map +1 -0
- package/dist/logging/token.js +3 -0
- package/dist/logging/token.js.map +1 -0
- package/dist/node/config.d.ts +6 -0
- package/dist/node/config.d.ts.map +1 -0
- package/dist/node/config.js +2 -0
- package/dist/node/config.js.map +1 -0
- package/dist/node/index.d.ts +6 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +6 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/not-configured-message.d.ts +10 -0
- package/dist/node/not-configured-message.d.ts.map +1 -0
- package/dist/node/not-configured-message.js +24 -0
- package/dist/node/not-configured-message.js.map +1 -0
- package/dist/node/proxy.d.ts +25 -0
- package/dist/node/proxy.d.ts.map +1 -0
- package/dist/node/proxy.js +229 -0
- package/dist/node/proxy.js.map +1 -0
- package/dist/node/runtime.d.ts +45 -0
- package/dist/node/runtime.d.ts.map +1 -0
- package/dist/node/runtime.js +176 -0
- package/dist/node/runtime.js.map +1 -0
- package/dist/node/scope.d.ts +55 -0
- package/dist/node/scope.d.ts.map +1 -0
- package/dist/node/scope.js +115 -0
- package/dist/node/scope.js.map +1 -0
- package/dist/node/server.d.ts +80 -0
- package/dist/node/server.d.ts.map +1 -0
- package/dist/node/server.js +283 -0
- package/dist/node/server.js.map +1 -0
- package/dist/plugins/define.d.ts +4 -0
- package/dist/plugins/define.d.ts.map +1 -0
- package/dist/plugins/define.js +45 -0
- package/dist/plugins/define.js.map +1 -0
- package/dist/plugins/index.d.ts +27 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +4 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/inspect.d.ts +79 -0
- package/dist/plugins/inspect.d.ts.map +1 -0
- package/dist/plugins/inspect.js +142 -0
- package/dist/plugins/inspect.js.map +1 -0
- package/dist/plugins/resolve.d.ts +14 -0
- package/dist/plugins/resolve.d.ts.map +1 -0
- package/dist/plugins/resolve.js +101 -0
- package/dist/plugins/resolve.js.map +1 -0
- package/dist/plugins/types.d.ts +91 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +2 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/proxy/http-proxy.d.ts +8 -0
- package/dist/proxy/http-proxy.d.ts.map +1 -0
- package/dist/proxy/http-proxy.js +59 -0
- package/dist/proxy/http-proxy.js.map +1 -0
- package/dist/proxy/index.d.ts +3 -0
- package/dist/proxy/index.d.ts.map +1 -0
- package/dist/proxy/index.js +3 -0
- package/dist/proxy/index.js.map +1 -0
- package/dist/proxy/origin.d.ts +12 -0
- package/dist/proxy/origin.d.ts.map +1 -0
- package/dist/proxy/origin.js +61 -0
- package/dist/proxy/origin.js.map +1 -0
- package/dist/queue/config.d.ts +4 -0
- package/dist/queue/config.d.ts.map +1 -0
- package/dist/queue/config.js +2 -0
- package/dist/queue/config.js.map +1 -0
- package/dist/queue/index.d.ts +4 -0
- package/dist/queue/index.d.ts.map +1 -0
- package/dist/queue/index.js +4 -0
- package/dist/queue/index.js.map +1 -0
- package/dist/queue/provider.d.ts +24 -0
- package/dist/queue/provider.d.ts.map +1 -0
- package/dist/queue/provider.js +57 -0
- package/dist/queue/provider.js.map +1 -0
- package/dist/queue/token.d.ts +9 -0
- package/dist/queue/token.d.ts.map +1 -0
- package/dist/queue/token.js +8 -0
- package/dist/queue/token.js.map +1 -0
- package/dist/realtime/index.d.ts +6 -0
- package/dist/realtime/index.d.ts.map +1 -0
- package/dist/realtime/index.js +6 -0
- package/dist/realtime/index.js.map +1 -0
- package/dist/realtime/provider.d.ts +10 -0
- package/dist/realtime/provider.d.ts.map +1 -0
- package/dist/realtime/provider.js +19 -0
- package/dist/realtime/provider.js.map +1 -0
- package/dist/realtime/service.d.ts +9 -0
- package/dist/realtime/service.d.ts.map +1 -0
- package/dist/realtime/service.js +347 -0
- package/dist/realtime/service.js.map +1 -0
- package/dist/realtime/types.d.ts +74 -0
- package/dist/realtime/types.d.ts.map +1 -0
- package/dist/realtime/types.js +4 -0
- package/dist/realtime/types.js.map +1 -0
- package/dist/realtime/websocket.d.ts +7 -0
- package/dist/realtime/websocket.d.ts.map +1 -0
- package/dist/realtime/websocket.js +57 -0
- package/dist/realtime/websocket.js.map +1 -0
- package/dist/router/api-error.d.ts +171 -0
- package/dist/router/api-error.d.ts.map +1 -0
- package/dist/router/api-error.js +291 -0
- package/dist/router/api-error.js.map +1 -0
- package/dist/router/api-limits.d.ts +80 -0
- package/dist/router/api-limits.d.ts.map +1 -0
- package/dist/router/api-limits.js +281 -0
- package/dist/router/api-limits.js.map +1 -0
- package/dist/router/cli/derive.d.ts +32 -0
- package/dist/router/cli/derive.d.ts.map +1 -0
- package/dist/router/cli/derive.js +548 -0
- package/dist/router/cli/derive.js.map +1 -0
- package/dist/router/cli/index.d.ts +6 -0
- package/dist/router/cli/index.d.ts.map +1 -0
- package/dist/router/cli/index.js +6 -0
- package/dist/router/cli/index.js.map +1 -0
- package/dist/router/cli/reference.d.ts +9 -0
- package/dist/router/cli/reference.d.ts.map +1 -0
- package/dist/router/cli/reference.js +64 -0
- package/dist/router/cli/reference.js.map +1 -0
- package/dist/router/cli/routes.d.ts +9 -0
- package/dist/router/cli/routes.d.ts.map +1 -0
- package/dist/router/cli/routes.js +228 -0
- package/dist/router/cli/routes.js.map +1 -0
- package/dist/router/cli/service.d.ts +50 -0
- package/dist/router/cli/service.d.ts.map +1 -0
- package/dist/router/cli/service.js +104 -0
- package/dist/router/cli/service.js.map +1 -0
- package/dist/router/cli/types.d.ts +278 -0
- package/dist/router/cli/types.d.ts.map +1 -0
- package/dist/router/cli/types.js +18 -0
- package/dist/router/cli/types.js.map +1 -0
- package/dist/router/duplicate-routes.d.ts +25 -0
- package/dist/router/duplicate-routes.d.ts.map +1 -0
- package/dist/router/duplicate-routes.js +51 -0
- package/dist/router/duplicate-routes.js.map +1 -0
- package/dist/router/health.d.ts +7 -0
- package/dist/router/health.d.ts.map +1 -0
- package/dist/router/health.js +48 -0
- package/dist/router/health.js.map +1 -0
- package/dist/router/index.d.ts +26 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +29 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/openapi/components.d.ts +24 -0
- package/dist/router/openapi/components.d.ts.map +1 -0
- package/dist/router/openapi/components.js +128 -0
- package/dist/router/openapi/components.js.map +1 -0
- package/dist/router/openapi/declared.d.ts +19 -0
- package/dist/router/openapi/declared.d.ts.map +1 -0
- package/dist/router/openapi/declared.js +46 -0
- package/dist/router/openapi/declared.js.map +1 -0
- package/dist/router/openapi/describe.d.ts +82 -0
- package/dist/router/openapi/describe.d.ts.map +1 -0
- package/dist/router/openapi/describe.js +207 -0
- package/dist/router/openapi/describe.js.map +1 -0
- package/dist/router/openapi/docs-routes.d.ts +10 -0
- package/dist/router/openapi/docs-routes.d.ts.map +1 -0
- package/dist/router/openapi/docs-routes.js +157 -0
- package/dist/router/openapi/docs-routes.js.map +1 -0
- package/dist/router/openapi/document.d.ts +151 -0
- package/dist/router/openapi/document.d.ts.map +1 -0
- package/dist/router/openapi/document.js +471 -0
- package/dist/router/openapi/document.js.map +1 -0
- package/dist/router/openapi/index.d.ts +7 -0
- package/dist/router/openapi/index.d.ts.map +1 -0
- package/dist/router/openapi/index.js +7 -0
- package/dist/router/openapi/index.js.map +1 -0
- package/dist/router/openapi/repository-document.d.ts +30 -0
- package/dist/router/openapi/repository-document.d.ts.map +1 -0
- package/dist/router/openapi/repository-document.js +812 -0
- package/dist/router/openapi/repository-document.js.map +1 -0
- package/dist/router/openapi/schema.d.ts +30 -0
- package/dist/router/openapi/schema.d.ts.map +1 -0
- package/dist/router/openapi/schema.js +301 -0
- package/dist/router/openapi/schema.js.map +1 -0
- package/dist/router/openapi/service.d.ts +101 -0
- package/dist/router/openapi/service.d.ts.map +1 -0
- package/dist/router/openapi/service.js +162 -0
- package/dist/router/openapi/service.js.map +1 -0
- package/dist/router/repository-constraints.d.ts +15 -0
- package/dist/router/repository-constraints.d.ts.map +1 -0
- package/dist/router/repository-constraints.js +14 -0
- package/dist/router/repository-constraints.js.map +1 -0
- package/dist/router/repository-routes.d.ts +90 -0
- package/dist/router/repository-routes.d.ts.map +1 -0
- package/dist/router/repository-routes.js +452 -0
- package/dist/router/repository-routes.js.map +1 -0
- package/dist/router/routes.d.ts +24 -0
- package/dist/router/routes.d.ts.map +1 -0
- package/dist/router/routes.js +19 -0
- package/dist/router/routes.js.map +1 -0
- package/dist/runtime/application.d.ts +8 -0
- package/dist/runtime/application.d.ts.map +1 -0
- package/dist/runtime/application.js +22 -0
- package/dist/runtime/application.js.map +1 -0
- package/dist/runtime/definition.d.ts +50 -0
- package/dist/runtime/definition.d.ts.map +1 -0
- package/dist/runtime/definition.js +82 -0
- package/dist/runtime/definition.js.map +1 -0
- package/dist/runtime/index.d.ts +8 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +7 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/lifecycle.d.ts +29 -0
- package/dist/runtime/lifecycle.d.ts.map +1 -0
- package/dist/runtime/lifecycle.js +104 -0
- package/dist/runtime/lifecycle.js.map +1 -0
- package/dist/runtime/mount.d.ts +4 -0
- package/dist/runtime/mount.d.ts.map +1 -0
- package/dist/runtime/mount.js +47 -0
- package/dist/runtime/mount.js.map +1 -0
- package/dist/runtime/scope.d.ts +29 -0
- package/dist/runtime/scope.d.ts.map +1 -0
- package/dist/runtime/scope.js +48 -0
- package/dist/runtime/scope.js.map +1 -0
- package/dist/runtime/types.d.ts +55 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/types.js +2 -0
- package/dist/runtime/types.js.map +1 -0
- package/dist/sample-data/index.d.ts +3 -0
- package/dist/sample-data/index.d.ts.map +1 -0
- package/dist/sample-data/index.js +3 -0
- package/dist/sample-data/index.js.map +1 -0
- package/dist/sample-data/registry.d.ts +4 -0
- package/dist/sample-data/registry.d.ts.map +1 -0
- package/dist/sample-data/registry.js +74 -0
- package/dist/sample-data/registry.js.map +1 -0
- package/dist/sample-data/token.d.ts +64 -0
- package/dist/sample-data/token.d.ts.map +1 -0
- package/dist/sample-data/token.js +7 -0
- package/dist/sample-data/token.js.map +1 -0
- package/dist/secrets/config.d.ts +15 -0
- package/dist/secrets/config.d.ts.map +1 -0
- package/dist/secrets/config.js +43 -0
- package/dist/secrets/config.js.map +1 -0
- package/dist/secrets/index.d.ts +6 -0
- package/dist/secrets/index.d.ts.map +1 -0
- package/dist/secrets/index.js +6 -0
- package/dist/secrets/index.js.map +1 -0
- package/dist/secrets/provider.d.ts +7 -0
- package/dist/secrets/provider.d.ts.map +1 -0
- package/dist/secrets/provider.js +10 -0
- package/dist/secrets/provider.js.map +1 -0
- package/dist/secrets/service.d.ts +64 -0
- package/dist/secrets/service.d.ts.map +1 -0
- package/dist/secrets/service.js +47 -0
- package/dist/secrets/service.js.map +1 -0
- package/dist/secrets/table-store.d.ts +34 -0
- package/dist/secrets/table-store.d.ts.map +1 -0
- package/dist/secrets/table-store.js +118 -0
- package/dist/secrets/table-store.js.map +1 -0
- package/dist/secrets/token.d.ts +4 -0
- package/dist/secrets/token.d.ts.map +1 -0
- package/dist/secrets/token.js +3 -0
- package/dist/secrets/token.js.map +1 -0
- package/dist/session/config.d.ts +10 -0
- package/dist/session/config.d.ts.map +1 -0
- package/dist/session/config.js +2 -0
- package/dist/session/config.js.map +1 -0
- package/dist/session/index.d.ts +4 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +4 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/provider.d.ts +26 -0
- package/dist/session/provider.d.ts.map +1 -0
- package/dist/session/provider.js +69 -0
- package/dist/session/provider.js.map +1 -0
- package/dist/session/token.d.ts +4 -0
- package/dist/session/token.d.ts.map +1 -0
- package/dist/session/token.js +3 -0
- package/dist/session/token.js.map +1 -0
- package/dist/spa/config.d.ts +5 -0
- package/dist/spa/config.d.ts.map +1 -0
- package/dist/spa/config.js +2 -0
- package/dist/spa/config.js.map +1 -0
- package/dist/spa/content-types.d.ts +2 -0
- package/dist/spa/content-types.d.ts.map +1 -0
- package/dist/spa/content-types.js +25 -0
- package/dist/spa/content-types.js.map +1 -0
- package/dist/spa/index.d.ts +9 -0
- package/dist/spa/index.d.ts.map +1 -0
- package/dist/spa/index.js +9 -0
- package/dist/spa/index.js.map +1 -0
- package/dist/spa/provider.d.ts +13 -0
- package/dist/spa/provider.d.ts.map +1 -0
- package/dist/spa/provider.js +90 -0
- package/dist/spa/provider.js.map +1 -0
- package/dist/spa/routes.d.ts +4 -0
- package/dist/spa/routes.d.ts.map +1 -0
- package/dist/spa/routes.js +58 -0
- package/dist/spa/routes.js.map +1 -0
- package/dist/spa/runtime-html.d.ts +14 -0
- package/dist/spa/runtime-html.d.ts.map +1 -0
- package/dist/spa/runtime-html.js +85 -0
- package/dist/spa/runtime-html.js.map +1 -0
- package/dist/spa/serve-index.d.ts +9 -0
- package/dist/spa/serve-index.d.ts.map +1 -0
- package/dist/spa/serve-index.js +12 -0
- package/dist/spa/serve-index.js.map +1 -0
- package/dist/spa/static-assets.d.ts +7 -0
- package/dist/spa/static-assets.d.ts.map +1 -0
- package/dist/spa/static-assets.js +90 -0
- package/dist/spa/static-assets.js.map +1 -0
- package/dist/spa/types.d.ts +23 -0
- package/dist/spa/types.d.ts.map +1 -0
- package/dist/spa/types.js +2 -0
- package/dist/spa/types.js.map +1 -0
- package/dist/support/index.d.ts +4 -0
- package/dist/support/index.d.ts.map +1 -0
- package/dist/support/index.js +4 -0
- package/dist/support/index.js.map +1 -0
- package/dist/support/paths.d.ts +10 -0
- package/dist/support/paths.d.ts.map +1 -0
- package/dist/support/paths.js +25 -0
- package/dist/support/paths.js.map +1 -0
- package/dist/support/redirects.d.ts +3 -0
- package/dist/support/redirects.d.ts.map +1 -0
- package/dist/support/redirects.js +48 -0
- package/dist/support/redirects.js.map +1 -0
- package/dist/support/requests.d.ts +2 -0
- package/dist/support/requests.d.ts.map +1 -0
- package/dist/support/requests.js +13 -0
- package/dist/support/requests.js.map +1 -0
- package/dist/swagger-ui/LICENSE +202 -0
- package/dist/swagger-ui/NOTICE +2 -0
- package/dist/swagger-ui/favicon-16x16.png +0 -0
- package/dist/swagger-ui/favicon-32x32.png +0 -0
- package/dist/swagger-ui/swagger-ui-bundle.js +2 -0
- package/dist/swagger-ui/swagger-ui-bundle.js.LICENSE.txt +129 -0
- package/dist/swagger-ui/swagger-ui.css +3 -0
- package/dist/websocket.d.ts +61 -0
- package/dist/websocket.d.ts.map +1 -0
- package/dist/websocket.js +371 -0
- package/dist/websocket.js.map +1 -0
- package/package.json +193 -12
- package/LICENSE +0 -661
- package/lib/config/cache.d.ts +0 -2
- package/lib/config/cache.js +0 -16
- package/lib/config/database.d.ts +0 -3
- package/lib/config/database.js +0 -25
- package/lib/config/index.d.ts +0 -10
- package/lib/config/index.js +0 -20
- package/lib/config/logger.d.ts +0 -3
- package/lib/config/logger.js +0 -11
- package/lib/config/plugins.d.ts +0 -3
- package/lib/config/plugins.js +0 -8
- package/lib/config/resourcer.d.ts +0 -4
- package/lib/config/resourcer.js +0 -10
- package/lib/index.d.ts +0 -3
- package/lib/index.js +0 -21
- package/src/config/cache.ts +0 -5
- package/src/config/database.ts +0 -21
- package/src/config/index.ts +0 -13
- package/src/config/logger.ts +0 -6
- package/src/config/plugins.ts +0 -3
- package/src/config/resourcer.ts +0 -3
- package/src/index.ts +0 -10
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-container.d.ts","sourceRoot":"","sources":["../../src/database/task-container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,4BAA4B,CAAC;AAQhF,wBAAgB,yBAAyB,CACvC,MAAM,CAAC,EAAE,eAAe,GACvB,eAAe,CAgCjB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { idGeneratorToken } from '../id-generator/token.js';
|
|
2
|
+
/** Only registration-ready infrastructure services may be exposed to database tasks. */
|
|
3
|
+
const allowedTokens = new Set([
|
|
4
|
+
idGeneratorToken,
|
|
5
|
+
]);
|
|
6
|
+
export function createTaskServiceResolver(source) {
|
|
7
|
+
function assertAllowed(token) {
|
|
8
|
+
if (!allowedTokens.has(token)) {
|
|
9
|
+
// Name the supported path: a migration or seed that resolved the
|
|
10
|
+
// DatabaseManager here would get the application's connection rather
|
|
11
|
+
// than its own, and in a transaction would write outside it.
|
|
12
|
+
throw new Error(`Service "${token.name}" is not allowed in migrations or seeds. ` +
|
|
13
|
+
'Read and write data through the context\'s "repository" and ' +
|
|
14
|
+
'"query", which are bound to the connection the task runs on, ' +
|
|
15
|
+
'and change structure through a migration\'s "builder".');
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return Object.freeze({
|
|
19
|
+
has(token) {
|
|
20
|
+
return allowedTokens.has(token) && (source?.has(token) ?? false);
|
|
21
|
+
},
|
|
22
|
+
resolve(token) {
|
|
23
|
+
assertAllowed(token);
|
|
24
|
+
if (!source)
|
|
25
|
+
throw new Error(`Service "${token.name}" is not registered in the database task container.`);
|
|
26
|
+
return source.resolve(token);
|
|
27
|
+
},
|
|
28
|
+
resolveIfCreated(token) {
|
|
29
|
+
assertAllowed(token);
|
|
30
|
+
return source?.resolveIfCreated(token);
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=task-container.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-container.js","sourceRoot":"","sources":["../../src/database/task-container.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,wFAAwF;AACxF,MAAM,aAAa,GAAuC,IAAI,GAAG,CAAC;IAChE,gBAAgB;CACjB,CAAC,CAAC;AAEH,MAAM,UAAU,yBAAyB,CACvC,MAAwB;IAExB,SAAS,aAAa,CAAI,KAAsB;QAC9C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,iEAAiE;YACjE,qEAAqE;YACrE,6DAA6D;YAC7D,MAAM,IAAI,KAAK,CACb,YAAY,KAAK,CAAC,IAAI,2CAA2C;gBAC/D,8DAA8D;gBAC9D,+DAA+D;gBAC/D,wDAAwD,CAC3D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,CAAI,KAAsB;YAC3B,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,CAAI,KAAsB;YAC/B,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,CAAC,MAAM;gBACT,MAAM,IAAI,KAAK,CACb,YAAY,KAAK,CAAC,IAAI,qDAAqD,CAC5E,CAAC;YACJ,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,gBAAgB,CAAI,KAAsB;YACxC,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import type { ServiceResolver } from '@nocobase/service-provider';
|
|
2
|
+
import type { DatabaseTaskConfig } from '@nocobase/db';
|
|
3
|
+
import { type AppDatabaseTaskPlanOptions, type AppDatabaseTask, type AppDatabaseTaskKind } from './plan.js';
|
|
4
|
+
import { type ChecksumMismatch, type DatabaseDriverRegistration, type DatabaseManager, type MigrationHistoryRecord, type TaskLockState } from '@nocobase/db';
|
|
5
|
+
import type { AppPaths } from '../config/index.js';
|
|
6
|
+
import { type AppMigrationRunResult } from './migrator.js';
|
|
7
|
+
import { type AppSeedRunResult } from './seeder.js';
|
|
8
|
+
import type { AppDatabaseConfig } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* `repair` realigns recorded checksums; it executes no migration or seed.
|
|
11
|
+
* `rollback` runs the latest migration batch's `down`, and applies to
|
|
12
|
+
* migrations alone: seeds have no inverse. `sample` runs the sample seeds a
|
|
13
|
+
* run recorded as skipped, and applies to seeds alone.
|
|
14
|
+
*/
|
|
15
|
+
export type AppDatabaseTaskOperation = 'run' | 'repair' | 'rollback' | 'unlock' | 'sample';
|
|
16
|
+
export interface AppDatabaseTaskResult {
|
|
17
|
+
connection: string;
|
|
18
|
+
kind: AppDatabaseTaskKind;
|
|
19
|
+
status: 'completed' | 'skipped' | 'failed' | 'not-run';
|
|
20
|
+
reason?: string;
|
|
21
|
+
error?: string;
|
|
22
|
+
batch?: number;
|
|
23
|
+
executed?: string[];
|
|
24
|
+
skipped?: string[];
|
|
25
|
+
/** Sample seeds a run recorded as skipped without running them. */
|
|
26
|
+
skippedSamples?: string[];
|
|
27
|
+
/**
|
|
28
|
+
* Seeds only: whether this run installed the connection — it held no
|
|
29
|
+
* migration or seed history before the run, or a fresh run rebuilt it. Sample
|
|
30
|
+
* data loads only then, and only with `app.sampleData` set.
|
|
31
|
+
*/
|
|
32
|
+
freshInstall?: boolean;
|
|
33
|
+
fresh?: boolean;
|
|
34
|
+
/** Migrations a rollback undid, or that a dry run would undo. */
|
|
35
|
+
rolledBack?: string[];
|
|
36
|
+
/** The rolled back batch's history records, in the order they roll back. */
|
|
37
|
+
records?: MigrationHistoryRecord[];
|
|
38
|
+
/** The task lock as it stood when an unlock ran. */
|
|
39
|
+
lock?: TaskLockState;
|
|
40
|
+
/** Whether an unlock deleted the lock row, and why it did not. */
|
|
41
|
+
released?: boolean;
|
|
42
|
+
lockReason?: 'not-held' | 'active';
|
|
43
|
+
/** Checksum drift tolerated by the `warn` policy during a run. */
|
|
44
|
+
warnings?: ChecksumMismatch[];
|
|
45
|
+
/** Records a repair rewrote, or that a dry run would rewrite. */
|
|
46
|
+
repaired?: ChecksumMismatch[];
|
|
47
|
+
/** Migrations or seeds a run would execute, as a dry run reports them. */
|
|
48
|
+
pending?: string[];
|
|
49
|
+
dryRun?: boolean;
|
|
50
|
+
}
|
|
51
|
+
export interface AppDatabaseTasksResult {
|
|
52
|
+
ok: boolean;
|
|
53
|
+
status: 'completed' | 'failed' | 'not-configured';
|
|
54
|
+
results: AppDatabaseTaskResult[];
|
|
55
|
+
}
|
|
56
|
+
export declare class AppDatabaseTaskError extends Error {
|
|
57
|
+
readonly result: AppDatabaseTasksResult;
|
|
58
|
+
constructor(result: AppDatabaseTasksResult, cause: unknown);
|
|
59
|
+
}
|
|
60
|
+
export interface AppDatabasePlanExecutionOptions {
|
|
61
|
+
readonly runtimeConfig?: DatabaseTaskConfig;
|
|
62
|
+
readonly container?: ServiceResolver;
|
|
63
|
+
readonly paths?: AppPaths;
|
|
64
|
+
readonly drivers?: Record<string, DatabaseDriverRegistration>;
|
|
65
|
+
readonly fresh?: boolean;
|
|
66
|
+
/** Unlock only: release a lock that is still sending heartbeats. */
|
|
67
|
+
readonly force?: boolean;
|
|
68
|
+
readonly operation?: AppDatabaseTaskOperation;
|
|
69
|
+
/**
|
|
70
|
+
* Report what the operation would do without doing it. A run lists its
|
|
71
|
+
* pending tasks, reading history without taking the lock; a rollback reports
|
|
72
|
+
* the batch it would undo and a repair the records it would rewrite. Not
|
|
73
|
+
* supported by unlock.
|
|
74
|
+
*/
|
|
75
|
+
readonly dryRun?: boolean;
|
|
76
|
+
}
|
|
77
|
+
/** Manual commands and startup share the same resolved, connection-bound plan. */
|
|
78
|
+
export declare function executeAppDatabasePlan(database: DatabaseManager, config: AppDatabaseConfig, plan: readonly AppDatabaseTask[], { paths, drivers, fresh, force, operation, dryRun, runtimeConfig, container, }?: AppDatabasePlanExecutionOptions): Promise<AppDatabaseTasksResult>;
|
|
79
|
+
export interface AppDatabaseTaskRunOptions extends AppDatabaseTaskPlanOptions {
|
|
80
|
+
/** The configuration reader migrations and seeds receive as `config`. */
|
|
81
|
+
readonly runtimeConfig?: DatabaseTaskConfig;
|
|
82
|
+
/** Borrow a database manager; its owner remains responsible for disposal. */
|
|
83
|
+
readonly database?: () => DatabaseManager;
|
|
84
|
+
readonly container?: ServiceResolver;
|
|
85
|
+
/**
|
|
86
|
+
* One task kind, or several planned together. Several kinds share one plan
|
|
87
|
+
* so their order is the plan's, which is what lets `fresh` rebuild a
|
|
88
|
+
* connection's schema before that connection's seeds run.
|
|
89
|
+
*/
|
|
90
|
+
readonly kind: AppDatabaseTaskKind | readonly AppDatabaseTaskKind[];
|
|
91
|
+
readonly operation?: AppDatabaseTaskOperation;
|
|
92
|
+
/**
|
|
93
|
+
* Report what the operation would do without doing it; see
|
|
94
|
+
* {@link AppDatabasePlanExecutionOptions.dryRun}. A fresh dry run confirms
|
|
95
|
+
* nothing, because it drops nothing.
|
|
96
|
+
*/
|
|
97
|
+
readonly dryRun?: boolean;
|
|
98
|
+
/** Unlock only: release a lock that is still sending heartbeats. */
|
|
99
|
+
readonly force?: boolean;
|
|
100
|
+
}
|
|
101
|
+
export declare function runAppDatabaseTasks(config: AppDatabaseConfig, options: AppDatabaseTaskRunOptions): Promise<AppDatabaseTasksResult>;
|
|
102
|
+
export declare function runAppMigrations(config: AppDatabaseConfig, options: Omit<AppDatabaseTaskRunOptions, 'kind'>): Promise<AppMigrationRunResult | undefined>;
|
|
103
|
+
export declare function runAppSeeds(config: AppDatabaseConfig, options: Omit<AppDatabaseTaskRunOptions, 'kind'>): Promise<AppSeedRunResult | undefined>;
|
|
104
|
+
//# sourceMappingURL=tasks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/database/tasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
import { createTaskServiceResolver } from './task-container.js';
|
|
2
|
+
import { loggingToken } from '../logging/token.js';
|
|
3
|
+
import { snapshotDatabaseTaskConfig } from './task-config.js';
|
|
4
|
+
import { resolveDatabaseConfig } from './resolve-config.js';
|
|
5
|
+
import { planAppDatabaseTasks, } from './plan.js';
|
|
6
|
+
import { resolveDatabaseDriver, } from '@nocobase/db';
|
|
7
|
+
import { createAppDatabaseManager } from './manager.js';
|
|
8
|
+
import { createAppMigrator } from './migrator.js';
|
|
9
|
+
import { createAppSeeder } from './seeder.js';
|
|
10
|
+
import { appDatabaseStorageExists, prepareAppDatabaseStorage, } from './storage.js';
|
|
11
|
+
export class AppDatabaseTaskError extends Error {
|
|
12
|
+
result;
|
|
13
|
+
constructor(result, cause) {
|
|
14
|
+
const failed = result.results.find((entry) => entry.status === 'failed');
|
|
15
|
+
super(`Database ${failed?.kind} failed for connection "${failed?.connection}": ${cause instanceof Error ? cause.message : String(cause)}`, { cause });
|
|
16
|
+
this.result = result;
|
|
17
|
+
this.name = 'AppDatabaseTaskError';
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/** Manual commands and startup share the same resolved, connection-bound plan. */
|
|
21
|
+
export async function executeAppDatabasePlan(database, config, plan, { paths, drivers, fresh = false, force = false, operation = 'run', dryRun = false, runtimeConfig, container, } = {}) {
|
|
22
|
+
if (fresh) {
|
|
23
|
+
if (operation !== 'run')
|
|
24
|
+
throw new Error(`A fresh run cannot be combined with ${operation}.`);
|
|
25
|
+
assertFreshPlanOrder(plan);
|
|
26
|
+
}
|
|
27
|
+
if (operation === 'rollback' && plan.some((task) => task.kind === 'seeds')) {
|
|
28
|
+
throw new Error('A rollback covers migrations only; seeds have no down.');
|
|
29
|
+
}
|
|
30
|
+
if (operation === 'sample' &&
|
|
31
|
+
plan.some((task) => task.kind === 'migrations')) {
|
|
32
|
+
throw new Error('Sample data covers seeds only.');
|
|
33
|
+
}
|
|
34
|
+
if (operation === 'sample' && (dryRun || fresh)) {
|
|
35
|
+
throw new Error('Sample data has no dry run or fresh run.');
|
|
36
|
+
}
|
|
37
|
+
if (operation === 'unlock' && fresh) {
|
|
38
|
+
throw new Error('A fresh run cannot be combined with unlock.');
|
|
39
|
+
}
|
|
40
|
+
if (operation === 'unlock' && dryRun) {
|
|
41
|
+
throw new Error('An unlock has no dry run; it reports the lock it finds.');
|
|
42
|
+
}
|
|
43
|
+
const taskContainer = createTaskServiceResolver(container);
|
|
44
|
+
const taskConfig = snapshotDatabaseTaskConfig(runtimeConfig);
|
|
45
|
+
// Decided before any task runs: the migrations a run applies would make
|
|
46
|
+
// every database look installed by the time its seeds run.
|
|
47
|
+
const freshInstalls = operation === 'run' && !dryRun
|
|
48
|
+
? await detectFreshInstalls(database, config, plan, {
|
|
49
|
+
paths,
|
|
50
|
+
drivers,
|
|
51
|
+
fresh,
|
|
52
|
+
runtimeConfig: taskConfig,
|
|
53
|
+
container: taskContainer,
|
|
54
|
+
})
|
|
55
|
+
: new Map();
|
|
56
|
+
const sampleData = taskConfig.get('app.sampleData') === true;
|
|
57
|
+
const result = {
|
|
58
|
+
ok: true,
|
|
59
|
+
status: 'completed',
|
|
60
|
+
results: [],
|
|
61
|
+
};
|
|
62
|
+
for (const [index, task] of plan.entries()) {
|
|
63
|
+
const identity = { connection: task.connection, kind: task.kind };
|
|
64
|
+
if (task.skipReason) {
|
|
65
|
+
result.results.push({
|
|
66
|
+
...identity,
|
|
67
|
+
status: 'skipped',
|
|
68
|
+
reason: task.skipReason,
|
|
69
|
+
});
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
// A dry run changes nothing, and opening a connection to storage that
|
|
74
|
+
// does not exist yet would create it: it answers for an empty database
|
|
75
|
+
// instead, without preparing storage or connecting.
|
|
76
|
+
const storageMissing = dryRun &&
|
|
77
|
+
!(await appDatabaseStorageExists(config, paths, task.connection, drivers));
|
|
78
|
+
if (!storageMissing) {
|
|
79
|
+
await prepareAppDatabaseStorage(config, paths, [task.connection], drivers);
|
|
80
|
+
}
|
|
81
|
+
const options = {
|
|
82
|
+
runtimeConfig: taskConfig,
|
|
83
|
+
container: taskContainer,
|
|
84
|
+
database,
|
|
85
|
+
connection: task.connection,
|
|
86
|
+
config: task.config,
|
|
87
|
+
sources: task.config.sources,
|
|
88
|
+
onStaleLock: (takeover) => reportStaleLock(container, task, takeover),
|
|
89
|
+
};
|
|
90
|
+
const freshInstall = freshInstalls.get(task.connection);
|
|
91
|
+
const completed = operation === 'unlock'
|
|
92
|
+
? await unlockTask(task, options, force)
|
|
93
|
+
: operation === 'sample'
|
|
94
|
+
? await createAppSeeder(options).runSamples()
|
|
95
|
+
: storageMissing
|
|
96
|
+
? await emptyDatabasePreview(operation, task, options, fresh)
|
|
97
|
+
: operation === 'repair'
|
|
98
|
+
? task.kind === 'migrations'
|
|
99
|
+
? await createAppMigrator(options).repair({ dryRun })
|
|
100
|
+
: await createAppSeeder(options).repair({ dryRun })
|
|
101
|
+
: operation === 'rollback'
|
|
102
|
+
? await createAppMigrator(options).rollback({ dryRun })
|
|
103
|
+
: dryRun
|
|
104
|
+
? task.kind === 'migrations'
|
|
105
|
+
? await createAppMigrator(options).pending({ fresh })
|
|
106
|
+
: await createAppSeeder(options).pending({ fresh })
|
|
107
|
+
: task.kind === 'migrations'
|
|
108
|
+
? await (fresh
|
|
109
|
+
? createAppMigrator(options).fresh()
|
|
110
|
+
: createAppMigrator(options).latest())
|
|
111
|
+
: await createAppSeeder({
|
|
112
|
+
...options,
|
|
113
|
+
sample: {
|
|
114
|
+
enabled: freshInstall === true && sampleData,
|
|
115
|
+
},
|
|
116
|
+
}).run();
|
|
117
|
+
result.results.push({
|
|
118
|
+
...identity,
|
|
119
|
+
...completed,
|
|
120
|
+
...(task.kind === 'seeds' &&
|
|
121
|
+
freshInstall !== undefined &&
|
|
122
|
+
completed.status === 'completed'
|
|
123
|
+
? { freshInstall }
|
|
124
|
+
: {}),
|
|
125
|
+
...(fresh ? { fresh: true } : {}),
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
result.ok = false;
|
|
130
|
+
result.status = 'failed';
|
|
131
|
+
result.results.push({
|
|
132
|
+
...identity,
|
|
133
|
+
status: 'failed',
|
|
134
|
+
error: error instanceof Error ? error.message : String(error),
|
|
135
|
+
});
|
|
136
|
+
result.results.push(...plan.slice(index + 1).map((pending) => ({
|
|
137
|
+
connection: pending.connection,
|
|
138
|
+
kind: pending.kind,
|
|
139
|
+
status: 'not-run',
|
|
140
|
+
reason: 'previous-task-failed',
|
|
141
|
+
})));
|
|
142
|
+
throw new AppDatabaseTaskError(result, error);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return result;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Which connections this run installs: those with a seeds task whose storage
|
|
149
|
+
* does not exist yet, or that hold neither seed history nor, when the plan
|
|
150
|
+
* migrates them too, migration history. A fresh run installs every one. Reads
|
|
151
|
+
* only, without creating a history table or the storage itself.
|
|
152
|
+
*/
|
|
153
|
+
async function detectFreshInstalls(database, config, plan, options) {
|
|
154
|
+
const installs = new Map();
|
|
155
|
+
for (const task of plan) {
|
|
156
|
+
if (task.kind !== 'seeds' || task.skipReason)
|
|
157
|
+
continue;
|
|
158
|
+
if (options.fresh) {
|
|
159
|
+
installs.set(task.connection, true);
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
if (!(await appDatabaseStorageExists(config, options.paths, task.connection, options.drivers))) {
|
|
163
|
+
installs.set(task.connection, true);
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
const common = {
|
|
167
|
+
runtimeConfig: options.runtimeConfig,
|
|
168
|
+
container: options.container,
|
|
169
|
+
database,
|
|
170
|
+
connection: task.connection,
|
|
171
|
+
};
|
|
172
|
+
const seeded = await createAppSeeder({
|
|
173
|
+
...common,
|
|
174
|
+
config: task.config,
|
|
175
|
+
sources: task.config.sources,
|
|
176
|
+
}).history();
|
|
177
|
+
const migrations = plan.find((entry) => entry.kind === 'migrations' &&
|
|
178
|
+
entry.connection === task.connection &&
|
|
179
|
+
!entry.skipReason);
|
|
180
|
+
const migrated = migrations
|
|
181
|
+
? await createAppMigrator({
|
|
182
|
+
...common,
|
|
183
|
+
config: migrations.config,
|
|
184
|
+
sources: migrations.config.sources,
|
|
185
|
+
}).history()
|
|
186
|
+
: [];
|
|
187
|
+
installs.set(task.connection, seeded.length === 0 && migrated.length === 0);
|
|
188
|
+
}
|
|
189
|
+
return installs;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* What a dry run reports for a database that does not exist yet: every task
|
|
193
|
+
* pending, nothing to roll back, nothing to repair.
|
|
194
|
+
*/
|
|
195
|
+
async function emptyDatabasePreview(operation, task, options, fresh) {
|
|
196
|
+
if (operation === 'rollback') {
|
|
197
|
+
return {
|
|
198
|
+
status: 'completed',
|
|
199
|
+
batch: 0,
|
|
200
|
+
rolledBack: [],
|
|
201
|
+
records: [],
|
|
202
|
+
dryRun: true,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
if (operation === 'repair') {
|
|
206
|
+
return { status: 'completed', repaired: [], dryRun: true };
|
|
207
|
+
}
|
|
208
|
+
return task.kind === 'migrations'
|
|
209
|
+
? createAppMigrator(options).pending({ fresh, withoutHistory: true })
|
|
210
|
+
: createAppSeeder(options).pending({ fresh, withoutHistory: true });
|
|
211
|
+
}
|
|
212
|
+
/** Releases whichever lock belongs to the task's kind. */
|
|
213
|
+
async function unlockTask(task, options, force) {
|
|
214
|
+
const released = task.kind === 'migrations'
|
|
215
|
+
? await createAppMigrator(options).unlock({ force })
|
|
216
|
+
: await createAppSeeder(options).unlock({ force });
|
|
217
|
+
// `reason` on a task result says why it was skipped, so the lock's own
|
|
218
|
+
// reason gets its own field rather than being read as a skip.
|
|
219
|
+
return {
|
|
220
|
+
status: 'completed',
|
|
221
|
+
released: released.released,
|
|
222
|
+
...(released.lock ? { lock: released.lock } : {}),
|
|
223
|
+
...(released.reason ? { lockReason: released.reason } : {}),
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* A lock taken over because its holder stopped beating means a previous run
|
|
228
|
+
* was killed. Nothing else records that, so it belongs in the application log.
|
|
229
|
+
*/
|
|
230
|
+
function reportStaleLock(container, task, takeover) {
|
|
231
|
+
if (!container?.has(loggingToken))
|
|
232
|
+
return;
|
|
233
|
+
container.resolve(loggingToken).getLogger('database').warn({
|
|
234
|
+
connection: task.connection,
|
|
235
|
+
kind: task.kind,
|
|
236
|
+
table: takeover.tableName,
|
|
237
|
+
lockedBy: takeover.lockedBy,
|
|
238
|
+
staleForMs: takeover.staleForMs,
|
|
239
|
+
}, `Took over the ${task.kind} lock "${takeover.tableName}" after its holder stopped responding; the run holding it did not shut down cleanly.`);
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* A fresh run drops a connection's managed schema inside its migrations task,
|
|
243
|
+
* so every other task on that connection has to come after it. The planner
|
|
244
|
+
* already orders tasks this way; the check guards hand-built plans, which
|
|
245
|
+
* would otherwise seed a database that is about to be emptied.
|
|
246
|
+
*/
|
|
247
|
+
function assertFreshPlanOrder(plan) {
|
|
248
|
+
const rebuilt = new Set();
|
|
249
|
+
for (const task of plan) {
|
|
250
|
+
if (task.skipReason)
|
|
251
|
+
continue;
|
|
252
|
+
if (task.kind === 'migrations') {
|
|
253
|
+
rebuilt.add(task.connection);
|
|
254
|
+
continue;
|
|
255
|
+
}
|
|
256
|
+
if (!rebuilt.has(task.connection)) {
|
|
257
|
+
throw new Error(`A fresh run must rebuild connection "${task.connection}" before its ${task.kind} run.`);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
if (!rebuilt.size) {
|
|
261
|
+
throw new Error('A fresh run must include migrations.');
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
export async function runAppDatabaseTasks(config, options) {
|
|
265
|
+
const { paths, drivers } = options;
|
|
266
|
+
const kinds = Array.isArray(options.kind)
|
|
267
|
+
? options.kind
|
|
268
|
+
: [options.kind];
|
|
269
|
+
if (options.fresh && !kinds.includes('migrations')) {
|
|
270
|
+
throw new Error('A fresh run must include migrations.');
|
|
271
|
+
}
|
|
272
|
+
config = await resolveDatabaseConfig({
|
|
273
|
+
...config,
|
|
274
|
+
drivers: { ...config.drivers, ...drivers },
|
|
275
|
+
});
|
|
276
|
+
const plan = planAppDatabaseTasks(config, kinds, options);
|
|
277
|
+
if (!plan.length)
|
|
278
|
+
return { ok: true, status: 'not-configured', results: [] };
|
|
279
|
+
if (options.fresh) {
|
|
280
|
+
for (const task of plan) {
|
|
281
|
+
if (task.skipReason)
|
|
282
|
+
continue;
|
|
283
|
+
const connection = config.connections[task.connection];
|
|
284
|
+
const driver = resolveDatabaseDriver({
|
|
285
|
+
dialect: connection.dialect,
|
|
286
|
+
databaseDriver: connection.databaseDriver,
|
|
287
|
+
}, { ...config.drivers, ...drivers }, task.connection);
|
|
288
|
+
if (!driver?.resetManagedSchema) {
|
|
289
|
+
throw new Error(`Database driver for connection "${task.connection}" does not support managed schema reset.`);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
if (!options.dryRun &&
|
|
293
|
+
options.confirmFresh &&
|
|
294
|
+
!(await options.confirmFresh(plan))) {
|
|
295
|
+
throw new Error('Fresh migration cancelled.');
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
const database = options.database
|
|
299
|
+
? options.database()
|
|
300
|
+
: createAppDatabaseManager(config, paths, {
|
|
301
|
+
...config.drivers,
|
|
302
|
+
...drivers,
|
|
303
|
+
});
|
|
304
|
+
if (!database)
|
|
305
|
+
return { ok: true, status: 'not-configured', results: [] };
|
|
306
|
+
try {
|
|
307
|
+
return await executeAppDatabasePlan(database, config, plan, {
|
|
308
|
+
paths,
|
|
309
|
+
drivers,
|
|
310
|
+
fresh: options.fresh,
|
|
311
|
+
force: options.force,
|
|
312
|
+
operation: options.operation,
|
|
313
|
+
dryRun: options.dryRun,
|
|
314
|
+
runtimeConfig: options.runtimeConfig,
|
|
315
|
+
container: options.container,
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
finally {
|
|
319
|
+
if (!options.database)
|
|
320
|
+
await database.destroy();
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
export async function runAppMigrations(config, options) {
|
|
324
|
+
const result = await runAppDatabaseTasks(config, {
|
|
325
|
+
...options,
|
|
326
|
+
kind: 'migrations',
|
|
327
|
+
});
|
|
328
|
+
const first = result.results[0];
|
|
329
|
+
return (first && {
|
|
330
|
+
status: first.status,
|
|
331
|
+
reason: first.reason,
|
|
332
|
+
batch: first.batch,
|
|
333
|
+
executed: first.executed,
|
|
334
|
+
skipped: first.skipped,
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
export async function runAppSeeds(config, options) {
|
|
338
|
+
const result = await runAppDatabaseTasks(config, {
|
|
339
|
+
...options,
|
|
340
|
+
kind: 'seeds',
|
|
341
|
+
});
|
|
342
|
+
const first = result.results[0];
|
|
343
|
+
return (first && {
|
|
344
|
+
status: first.status,
|
|
345
|
+
reason: first.reason,
|
|
346
|
+
executed: first.executed,
|
|
347
|
+
skipped: first.skipped,
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
//# sourceMappingURL=tasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/database/tasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { AnyConnectionConfig, ChecksumMismatchPolicy, CollectionMetadataStore, CollectionMetadataStoreConfig, ConnectionConfig, ConnectionConfigFromDrivers, DatabaseConfigFromDrivers, DatabaseDriverRegistration, ExtensibleDatabaseConfig, MigrationSource, SeedSource } from '@nocobase/db';
|
|
2
|
+
/**
|
|
3
|
+
* A metadata store as an application may configure it: the instance, the
|
|
4
|
+
* declarative form `@nocobase/db` understands, or — the form `config.yml` can
|
|
5
|
+
* carry — the collections directory alone. Relative directories resolve
|
|
6
|
+
* against the application root.
|
|
7
|
+
*/
|
|
8
|
+
export type AppMetadataStoreConfig = string | CollectionMetadataStoreConfig | CollectionMetadataStore;
|
|
9
|
+
/**
|
|
10
|
+
* Application configuration over dialect-independent connections by default.
|
|
11
|
+
* Supply a dialect's connection type for explicit checking, or use
|
|
12
|
+
* `AppDatabaseConfigFromDrivers` to infer it from registered drivers.
|
|
13
|
+
*/
|
|
14
|
+
export interface AppDatabaseConfig<TConnection extends AnyConnectionConfig = ConnectionConfig> extends Omit<ExtensibleDatabaseConfig<TConnection>, 'connections' | 'metadataStore'> {
|
|
15
|
+
connections: Record<string, AppDatabaseConnectionConfig<TConnection>>;
|
|
16
|
+
metadataStore?: AppMetadataStoreConfig;
|
|
17
|
+
/** @deprecated Configure tasks on connections instead. Applies to the default connection. */
|
|
18
|
+
migrations?: Partial<AppDatabaseMigrationConfig>;
|
|
19
|
+
/** @deprecated Configure tasks on connections instead. Applies to the default connection. */
|
|
20
|
+
seeds?: Partial<AppDatabaseSeedConfig>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Infer accepted dialects and their connection fields from the installed drivers.
|
|
24
|
+
* `defineAppDatabaseConfig` infers this type from a callback's returned drivers.
|
|
25
|
+
* Use this alias when an explicit annotation is needed outside that helper.
|
|
26
|
+
*/
|
|
27
|
+
export type AppDatabaseConfigFromDrivers<TDrivers extends Record<string, DatabaseDriverRegistration>> = Omit<AppDatabaseConfig<ConnectionConfigFromDrivers<TDrivers>>, 'drivers'> & {
|
|
28
|
+
drivers: DatabaseConfigFromDrivers<TDrivers>['drivers'];
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Runtime facts that task planning needs and configuration cannot supply: the
|
|
32
|
+
* application's own package identity, and the migration and seed directories
|
|
33
|
+
* contributed by its server plugins.
|
|
34
|
+
*
|
|
35
|
+
* These are derived from resolved plugins rather than configured, so they are
|
|
36
|
+
* passed alongside the configuration instead of being merged into it — a value
|
|
37
|
+
* inside the `database` namespace can be overwritten from `config.yml`, and
|
|
38
|
+
* silently dropping a plugin's migrations is not a configurable outcome.
|
|
39
|
+
*/
|
|
40
|
+
export interface AppDatabaseTaskContributions {
|
|
41
|
+
readonly appPackageName: string;
|
|
42
|
+
readonly migrations: readonly MigrationSource[];
|
|
43
|
+
readonly seeds: readonly SeedSource[];
|
|
44
|
+
}
|
|
45
|
+
export interface AppDatabaseMigrationConfig {
|
|
46
|
+
directory: string;
|
|
47
|
+
packageName?: string;
|
|
48
|
+
autoRun: boolean;
|
|
49
|
+
sources?: readonly MigrationSource[];
|
|
50
|
+
tableName?: string;
|
|
51
|
+
lockTableName?: string;
|
|
52
|
+
extensions?: readonly string[];
|
|
53
|
+
/**
|
|
54
|
+
* How to react when an executed migration's source no longer hashes to the
|
|
55
|
+
* checksum recorded for it. `warn` (the default) reports the drift and
|
|
56
|
+
* continues; `error` refuses to run until `nocobase db repair` realigns the
|
|
57
|
+
* history. A migration the sources cannot explain at all always fails.
|
|
58
|
+
*/
|
|
59
|
+
onChecksumMismatch?: ChecksumMismatchPolicy;
|
|
60
|
+
}
|
|
61
|
+
export interface AppDatabaseSeedConfig {
|
|
62
|
+
directory: string;
|
|
63
|
+
packageName?: string;
|
|
64
|
+
autoRun: boolean;
|
|
65
|
+
sources?: readonly SeedSource[];
|
|
66
|
+
tableName?: string;
|
|
67
|
+
lockTableName?: string;
|
|
68
|
+
extensions?: readonly string[];
|
|
69
|
+
/**
|
|
70
|
+
* How to react when an executed seed's source no longer hashes to the
|
|
71
|
+
* checksum recorded for it. `warn` (the default) reports the drift and
|
|
72
|
+
* continues; `error` refuses to run until `nocobase db repair` realigns the
|
|
73
|
+
* history.
|
|
74
|
+
*/
|
|
75
|
+
onChecksumMismatch?: ChecksumMismatchPolicy;
|
|
76
|
+
}
|
|
77
|
+
/** `Omit` over a union keeps only the common keys; distribute it so each dialect keeps its own. */
|
|
78
|
+
type DistributiveOmit<T, K extends PropertyKey> = T extends unknown ? Omit<T, K> : never;
|
|
79
|
+
export type AppDatabaseConnectionConfig<TConnection extends AnyConnectionConfig = ConnectionConfig> = DistributiveOmit<TConnection, 'metadataStore'> & {
|
|
80
|
+
migrations?: Partial<AppDatabaseMigrationConfig>;
|
|
81
|
+
seeds?: Partial<AppDatabaseSeedConfig>;
|
|
82
|
+
/**
|
|
83
|
+
* Where supplemental metadata comes from. An `external` connection that
|
|
84
|
+
* sets nothing here or at the top level reads the hand-written
|
|
85
|
+
* `database/<connection>/metadata/<name>.json` files. A string is a
|
|
86
|
+
* directory in that layout, relative to the application root; it may not
|
|
87
|
+
* be a generated `collections/` directory.
|
|
88
|
+
*/
|
|
89
|
+
metadataStore?: AppMetadataStoreConfig;
|
|
90
|
+
};
|
|
91
|
+
export {};
|
|
92
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/drive/config.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/drive/config.ts"],"names":[],"mappings":""}
|