@contember/engine-server 1.1.0-rc.3 → 1.2.0-alpha.3
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/src/MasterContainer.d.ts +27 -25
- package/dist/src/MasterContainer.d.ts.map +1 -1
- package/dist/src/MasterContainer.js +54 -80
- package/dist/src/MasterContainer.js.map +1 -1
- package/dist/src/bootstrap/Initializer.d.ts +3 -3
- package/dist/src/bootstrap/Initializer.d.ts.map +1 -1
- package/dist/src/bootstrap/Initializer.js +15 -6
- package/dist/src/bootstrap/Initializer.js.map +1 -1
- package/dist/src/config/config.d.ts +5 -4
- package/dist/src/config/config.d.ts.map +1 -1
- package/dist/src/config/config.js +2 -2
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/configSchema.d.ts +45 -11
- package/dist/src/config/configSchema.d.ts.map +1 -1
- package/dist/src/config/configSchema.js +20 -18
- package/dist/src/config/configSchema.js.map +1 -1
- package/dist/src/config/configTemplate.d.ts.map +1 -1
- package/dist/src/config/configTemplate.js +23 -0
- package/dist/src/config/configTemplate.js.map +1 -1
- package/dist/src/index.d.ts +9 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +23 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/project/ProjectContainer.js +1 -1
- package/dist/src/project/ProjectContainer.js.map +1 -1
- package/dist/src/project/ProjectContainerResolver.d.ts +6 -3
- package/dist/src/project/ProjectContainerResolver.d.ts.map +1 -1
- package/dist/src/project/ProjectContainerResolver.js +4 -16
- package/dist/src/project/ProjectContainerResolver.js.map +1 -1
- package/dist/src/projectGroup/ProjectGroupContainer.d.ts +2 -1
- package/dist/src/projectGroup/ProjectGroupContainer.d.ts.map +1 -1
- package/dist/src/projectGroup/ProjectGroupContainer.js +8 -4
- package/dist/src/projectGroup/ProjectGroupContainer.js.map +1 -1
- package/dist/src/projectGroup/ProjectGroupResolver.d.ts +7 -0
- package/dist/src/projectGroup/ProjectGroupResolver.d.ts.map +1 -0
- package/dist/src/projectGroup/ProjectGroupResolver.js +13 -0
- package/dist/src/projectGroup/ProjectGroupResolver.js.map +1 -0
- package/dist/src/start.js +15 -112
- package/dist/src/start.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/utils/index.d.ts +0 -4
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +0 -4
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/utils/sentry.d.ts +1 -1
- package/dist/src/utils/sentry.d.ts.map +1 -1
- package/dist/src/utils/sentry.js +1 -1
- package/dist/src/utils/sentry.js.map +1 -1
- package/dist/src/utils/serverStartup.d.ts +31 -0
- package/dist/src/utils/serverStartup.d.ts.map +1 -0
- package/dist/src/utils/serverStartup.js +42 -0
- package/dist/src/utils/serverStartup.js.map +1 -0
- package/dist/src/utils/serverTermination.d.ts +12 -0
- package/dist/src/utils/serverTermination.d.ts.map +1 -0
- package/dist/src/utils/serverTermination.js +26 -0
- package/dist/src/utils/serverTermination.js.map +1 -0
- package/dist/tests/e2e/acl-condition-variable.test.d.ts +2 -0
- package/dist/tests/e2e/acl-condition-variable.test.d.ts.map +1 -0
- package/dist/tests/e2e/acl-condition-variable.test.js +77 -0
- package/dist/tests/e2e/acl-condition-variable.test.js.map +1 -0
- package/dist/tests/e2e/assume-membership.test.d.ts +2 -0
- package/dist/tests/e2e/assume-membership.test.d.ts.map +1 -0
- package/dist/tests/e2e/assume-membership.test.js +58 -0
- package/dist/tests/e2e/assume-membership.test.js.map +1 -0
- package/dist/tests/e2e/content-api-basic.test.d.ts +2 -0
- package/dist/tests/e2e/content-api-basic.test.d.ts.map +1 -0
- package/dist/tests/e2e/content-api-basic.test.js +50 -0
- package/dist/tests/e2e/content-api-basic.test.js.map +1 -0
- package/dist/tests/e2e/content-invalid-schema.test.d.ts +2 -0
- package/dist/tests/e2e/content-invalid-schema.test.d.ts.map +1 -0
- package/dist/tests/e2e/content-invalid-schema.test.js +29 -0
- package/dist/tests/e2e/content-invalid-schema.test.js.map +1 -0
- package/dist/tests/e2e/homepage.test.d.ts +2 -0
- package/dist/tests/e2e/homepage.test.d.ts.map +1 -0
- package/dist/tests/e2e/homepage.test.js +15 -0
- package/dist/tests/e2e/homepage.test.js.map +1 -0
- package/dist/tests/e2e/tenant-member-access.test.d.ts +2 -0
- package/dist/tests/e2e/tenant-member-access.test.d.ts.map +1 -0
- package/dist/tests/e2e/tenant-member-access.test.js +43 -0
- package/dist/tests/e2e/tenant-member-access.test.js.map +1 -0
- package/dist/tests/e2e/x-contember-ref.test.d.ts +2 -0
- package/dist/tests/e2e/x-contember-ref.test.d.ts.map +1 -0
- package/dist/tests/e2e/x-contember-ref.test.js +63 -0
- package/dist/tests/e2e/x-contember-ref.test.js.map +1 -0
- package/dist/tests/src/requests.d.ts +5 -0
- package/dist/tests/src/requests.d.ts.map +1 -0
- package/dist/tests/src/requests.js +59 -0
- package/dist/tests/src/requests.js.map +1 -0
- package/dist/tests/src/tester.d.ts +19 -0
- package/dist/tests/src/tester.d.ts.map +1 -0
- package/dist/tests/src/tester.js +99 -0
- package/dist/tests/src/tester.js.map +1 -0
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/esbuild.js +7 -14
- package/package.json +23 -23
- package/src/MasterContainer.ts +94 -110
- package/src/bootstrap/Initializer.ts +16 -6
- package/src/config/config.ts +7 -5
- package/src/config/configSchema.ts +30 -33
- package/src/config/configTemplate.ts +23 -0
- package/src/index.ts +15 -2
- package/src/project/ProjectContainer.ts +1 -1
- package/src/project/ProjectContainerResolver.ts +4 -17
- package/src/projectGroup/ProjectGroupContainer.ts +12 -3
- package/src/projectGroup/ProjectGroupResolver.ts +12 -0
- package/src/start.ts +18 -127
- package/src/utils/index.ts +0 -4
- package/src/utils/sentry.ts +1 -1
- package/src/utils/serverStartup.ts +42 -0
- package/src/utils/serverTermination.ts +20 -0
- package/tests/e2e/acl-condition-variable.test.ts +74 -0
- package/tests/e2e/assume-membership.test.ts +64 -0
- package/tests/e2e/content-api-basic.test.ts +51 -0
- package/tests/e2e/content-invalid-schema.test.ts +31 -0
- package/tests/e2e/homepage.test.ts +10 -0
- package/tests/e2e/tenant-member-access.test.ts +51 -0
- package/tests/e2e/x-contember-ref.test.ts +71 -0
- package/tests/src/requests.ts +72 -0
- package/tests/src/tester.ts +118 -0
- package/alpine.dockerfile +0 -30
- package/debian.dockerfile +0 -27
- package/dist/src/http/CollectHttpMetricsMiddelware.d.ts +0 -5
- package/dist/src/http/CollectHttpMetricsMiddelware.d.ts.map +0 -1
- package/dist/src/http/CollectHttpMetricsMiddelware.js +0 -36
- package/dist/src/http/CollectHttpMetricsMiddelware.js.map +0 -1
- package/dist/src/http/ShowMetricsMiddleware.d.ts +0 -4
- package/dist/src/http/ShowMetricsMiddleware.d.ts.map +0 -1
- package/dist/src/http/ShowMetricsMiddleware.js +0 -20
- package/dist/src/http/ShowMetricsMiddleware.js.map +0 -1
- package/dist/src/http/index.d.ts +0 -3
- package/dist/src/http/index.d.ts.map +0 -1
- package/dist/src/http/index.js +0 -19
- package/dist/src/http/index.js.map +0 -1
- package/dist/src/projectGroup/ProjectGroupContainerResolver.d.ts +0 -12
- package/dist/src/projectGroup/ProjectGroupContainerResolver.d.ts.map +0 -1
- package/dist/src/projectGroup/ProjectGroupContainerResolver.js +0 -36
- package/dist/src/projectGroup/ProjectGroupContainerResolver.js.map +0 -1
- package/dist/src/utils/cluster.d.ts +0 -9
- package/dist/src/utils/cluster.d.ts.map +0 -1
- package/dist/src/utils/cluster.js +0 -47
- package/dist/src/utils/cluster.js.map +0 -1
- package/dist/src/utils/dbMetrics.d.ts +0 -16
- package/dist/src/utils/dbMetrics.d.ts.map +0 -1
- package/dist/src/utils/dbMetrics.js +0 -98
- package/dist/src/utils/dbMetrics.js.map +0 -1
- package/dist/src/utils/timeout.d.ts +0 -2
- package/dist/src/utils/timeout.d.ts.map +0 -1
- package/dist/src/utils/timeout.js +0 -8
- package/dist/src/utils/timeout.js.map +0 -1
- package/dist/src/utils/tuple.d.ts +0 -2
- package/dist/src/utils/tuple.d.ts.map +0 -1
- package/dist/src/utils/tuple.js +0 -6
- package/dist/src/utils/tuple.js.map +0 -1
- package/dist/tests/e2e/http.test.d.ts +0 -2
- package/dist/tests/e2e/http.test.d.ts.map +0 -1
- package/dist/tests/e2e/http.test.js +0 -275
- package/dist/tests/e2e/http.test.js.map +0 -1
- package/jasmine.json +0 -7
- package/src/http/CollectHttpMetricsMiddelware.ts +0 -32
- package/src/http/ShowMetricsMiddleware.ts +0 -12
- package/src/http/index.ts +0 -2
- package/src/projectGroup/ProjectGroupContainerResolver.ts +0 -47
- package/src/utils/cluster.ts +0 -40
- package/src/utils/dbMetrics.ts +0 -111
- package/src/utils/timeout.ts +0 -4
- package/src/utils/tuple.ts +0 -1
- package/tests/e2e/http.test.ts +0 -303
- package/tslint.json +0 -14
|
@@ -4,21 +4,19 @@ import { SystemContainerFactory } from '@contember/engine-system-api';
|
|
|
4
4
|
import { TenantContainerFactory } from '@contember/engine-tenant-api';
|
|
5
5
|
import { Builder } from '@contember/dic';
|
|
6
6
|
import { ServerConfig } from './config/config';
|
|
7
|
-
import { ProcessType } from './utils';
|
|
8
7
|
import { ModificationHandlerFactory } from '@contember/schema-migrations';
|
|
9
8
|
import { Initializer } from './bootstrap';
|
|
10
9
|
import { Plugin } from '@contember/engine-plugins';
|
|
11
|
-
import { ContentApiMiddlewareFactory, ContentGraphQLContextFactory, ContentQueryHandlerFactory, ErrorMiddlewareFactory, Koa, NotModifiedChecker,
|
|
12
|
-
import prom from 'prom-client';
|
|
10
|
+
import { ContentApiMiddlewareFactory, ContentGraphQLContextFactory, ContentQueryHandlerFactory, ContentSchemaTransferMappingFactory, ErrorMiddlewareFactory, ExportApiMiddlewareFactory, ExportExecutor, ImportApiMiddlewareFactory, ImportExecutor, Koa, NotModifiedChecker, Providers, SystemApiMiddlewareFactory, SystemGraphQLContextFactory, SystemGraphQLHandlerFactory, SystemSchemaTransferMappingFactory, TenantApiMiddlewareFactory, TenantGraphQLContextFactory, TenantGraphQLHandlerFactory } from '@contember/engine-http';
|
|
13
11
|
import { ProjectContainerFactoryFactory } from './project';
|
|
14
12
|
import { ProjectConfigResolver } from './config/projectConfigResolver';
|
|
15
13
|
import { TenantConfigResolver } from './config/tenantConfigResolver';
|
|
16
|
-
import { ProjectGroupContainerResolver } from './projectGroup/ProjectGroupContainerResolver';
|
|
17
14
|
import { ProjectGroupContainerFactory } from './projectGroup/ProjectGroupContainer';
|
|
15
|
+
import { ProjectGroupResolver as ProjectGroupResolverInterface } from '@contember/engine-http';
|
|
16
|
+
import { Logger } from '@contember/engine-common';
|
|
18
17
|
export interface MasterContainer {
|
|
19
18
|
initializer: Initializer;
|
|
20
19
|
koa: Koa;
|
|
21
|
-
monitoringKoa: Koa;
|
|
22
20
|
providers: Providers;
|
|
23
21
|
}
|
|
24
22
|
export interface MasterContainerArgs {
|
|
@@ -27,35 +25,27 @@ export interface MasterContainerArgs {
|
|
|
27
25
|
projectConfigResolver: ProjectConfigResolver;
|
|
28
26
|
tenantConfigResolver: TenantConfigResolver;
|
|
29
27
|
plugins: Plugin[];
|
|
30
|
-
processType: ProcessType;
|
|
31
28
|
version?: string;
|
|
32
29
|
}
|
|
33
30
|
export declare class MasterContainerFactory {
|
|
34
|
-
createBuilder({ serverConfig, debugMode, plugins, projectConfigResolver, tenantConfigResolver,
|
|
31
|
+
createBuilder({ serverConfig, debugMode, plugins, projectConfigResolver, tenantConfigResolver, version, }: MasterContainerArgs): Builder<{
|
|
35
32
|
serverConfig: {
|
|
36
33
|
readonly port: number;
|
|
37
|
-
readonly monitoringPort: number;
|
|
38
34
|
readonly http: {
|
|
39
35
|
readonly requestBodySize?: string | undefined;
|
|
40
36
|
};
|
|
41
|
-
readonly logging: {
|
|
37
|
+
readonly logging: {
|
|
38
|
+
sentry?: {
|
|
39
|
+
dsn: string;
|
|
40
|
+
} | undefined;
|
|
41
|
+
} | {
|
|
42
42
|
readonly sentry?: {
|
|
43
43
|
readonly dsn: string;
|
|
44
44
|
} | undefined;
|
|
45
45
|
};
|
|
46
|
-
} & {
|
|
47
|
-
readonly workerCount?: string | number | undefined;
|
|
48
|
-
readonly projectGroup?: ({
|
|
49
|
-
readonly domainMapping: string;
|
|
50
|
-
} & {
|
|
51
|
-
readonly configHeader?: string | undefined;
|
|
52
|
-
readonly configEncryptionKey?: string | undefined;
|
|
53
|
-
}) | undefined;
|
|
54
46
|
};
|
|
55
47
|
} & {
|
|
56
48
|
debugMode: boolean;
|
|
57
|
-
} & {
|
|
58
|
-
processType: ProcessType;
|
|
59
49
|
} & {
|
|
60
50
|
version: string | undefined;
|
|
61
51
|
} & {
|
|
@@ -88,13 +78,11 @@ export declare class MasterContainerFactory {
|
|
|
88
78
|
} & {
|
|
89
79
|
projectGroupContainerFactory: ProjectGroupContainerFactory;
|
|
90
80
|
} & {
|
|
91
|
-
|
|
92
|
-
} & {
|
|
93
|
-
promRegistry: prom.Registry;
|
|
81
|
+
projectGroupContainer: import("@contember/engine-http").ProjectGroupContainer;
|
|
94
82
|
} & {
|
|
95
83
|
httpErrorMiddlewareFactory: ErrorMiddlewareFactory;
|
|
96
84
|
} & {
|
|
97
|
-
projectGroupResolver:
|
|
85
|
+
projectGroupResolver: ProjectGroupResolverInterface;
|
|
98
86
|
} & {
|
|
99
87
|
notModifiedChecker: NotModifiedChecker;
|
|
100
88
|
} & {
|
|
@@ -112,9 +100,23 @@ export declare class MasterContainerFactory {
|
|
|
112
100
|
} & {
|
|
113
101
|
systemApiMiddlewareFactory: SystemApiMiddlewareFactory;
|
|
114
102
|
} & {
|
|
115
|
-
|
|
103
|
+
logger: Logger;
|
|
104
|
+
} & {
|
|
105
|
+
contentSchemaTransferMappingFactory: ContentSchemaTransferMappingFactory;
|
|
106
|
+
} & {
|
|
107
|
+
systemSchemaTransferMappingFactory: SystemSchemaTransferMappingFactory;
|
|
116
108
|
} & {
|
|
117
|
-
|
|
109
|
+
importExecutor: ImportExecutor;
|
|
110
|
+
} & {
|
|
111
|
+
exportExecutor: ExportExecutor;
|
|
112
|
+
} & {
|
|
113
|
+
importApiMiddlewareFactory: ImportApiMiddlewareFactory;
|
|
114
|
+
} & {
|
|
115
|
+
exportApiMiddlewareFactory: ExportApiMiddlewareFactory;
|
|
116
|
+
} & {
|
|
117
|
+
koaMiddlewares: import("@contember/engine-http").KoaMiddleware<any>;
|
|
118
|
+
} & {
|
|
119
|
+
koa: Koa<Koa.DefaultState, Koa.DefaultContext>;
|
|
118
120
|
} & {
|
|
119
121
|
initializer: Initializer;
|
|
120
122
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MasterContainer.d.ts","sourceRoot":"","sources":["../../src/MasterContainer.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"MasterContainer.d.ts","sourceRoot":"","sources":["../../src/MasterContainer.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAEN,2BAA2B,EAC3B,4BAA4B,EAC5B,0BAA0B,EAC1B,mCAAmC,EAOnC,sBAAsB,EACtB,0BAA0B,EAC1B,cAAc,EACd,0BAA0B,EAC1B,cAAc,EACd,GAAG,EACH,kBAAkB,EAClB,SAAS,EAET,0BAA0B,EAC1B,2BAA2B,EAC3B,2BAA2B,EAC3B,kCAAkC,EAClC,0BAA0B,EAC1B,2BAA2B,EAC3B,2BAA2B,EAC3B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAA;AAG1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAA;AAGnF,OAAO,EAAE,oBAAoB,IAAI,6BAA6B,EAAE,MAAM,wBAAwB,CAAA;AAC9F,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAEjD,MAAM,WAAW,eAAe;IAC/B,WAAW,EAAE,WAAW,CAAA;IACxB,GAAG,EAAE,GAAG,CAAA;IACR,SAAS,EAAE,SAAS,CAAA;CACpB;AAED,MAAM,WAAW,mBAAmB;IACnC,SAAS,EAAE,OAAO,CAAA;IAClB,YAAY,EAAE,YAAY,CAAA;IAC1B,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,sBAAsB;IAClC,aAAa,CAAC,EACb,YAAY,EACZ,SAAS,EACT,OAAO,EACP,qBAAqB,EACrB,oBAAoB,EACpB,OAAO,GACP,EAAE,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgItB,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe;CAIlD"}
|
|
@@ -10,22 +10,19 @@ const dic_1 = require("@contember/dic");
|
|
|
10
10
|
const utils_1 = require("./utils");
|
|
11
11
|
const schema_migrations_1 = require("@contember/schema-migrations");
|
|
12
12
|
const bootstrap_1 = require("./bootstrap");
|
|
13
|
-
const http_1 = require("./http");
|
|
14
13
|
const engine_http_1 = require("@contember/engine-http");
|
|
15
|
-
const prom_client_1 = __importDefault(require("prom-client"));
|
|
16
14
|
const project_1 = require("./project");
|
|
17
|
-
const crypto_1 = require("crypto");
|
|
18
15
|
const koa_compress_1 = __importDefault(require("koa-compress"));
|
|
19
16
|
const koa_bodyparser_1 = __importDefault(require("koa-bodyparser"));
|
|
20
|
-
const ProjectGroupContainerResolver_1 = require("./projectGroup/ProjectGroupContainerResolver");
|
|
21
17
|
const ProjectGroupContainer_1 = require("./projectGroup/ProjectGroupContainer");
|
|
22
18
|
const cors_1 = __importDefault(require("@koa/cors"));
|
|
19
|
+
const ProjectGroupResolver_1 = require("./projectGroup/ProjectGroupResolver");
|
|
20
|
+
const engine_common_1 = require("@contember/engine-common");
|
|
23
21
|
class MasterContainerFactory {
|
|
24
|
-
createBuilder({ serverConfig, debugMode, plugins, projectConfigResolver, tenantConfigResolver,
|
|
22
|
+
createBuilder({ serverConfig, debugMode, plugins, projectConfigResolver, tenantConfigResolver, version, }) {
|
|
25
23
|
return new dic_1.Builder({})
|
|
26
24
|
.addService('serverConfig', () => serverConfig)
|
|
27
25
|
.addService('debugMode', () => debugMode)
|
|
28
|
-
.addService('processType', () => processType)
|
|
29
26
|
.addService('version', () => version)
|
|
30
27
|
.addService('projectConfigResolver', () => projectConfigResolver)
|
|
31
28
|
.addService('tenantConfigResolver', () => tenantConfigResolver)
|
|
@@ -37,94 +34,71 @@ class MasterContainerFactory {
|
|
|
37
34
|
.addService('projectContainerFactoryFactory', ({ debugMode, plugins, providers }) => new project_1.ProjectContainerFactoryFactory(debugMode, plugins, providers))
|
|
38
35
|
.addService('tenantGraphQLHandlerFactory', () => new engine_http_1.TenantGraphQLHandlerFactory(utils_1.logSentryError))
|
|
39
36
|
.addService('systemGraphQLHandlerFactory', ({ debugMode }) => new engine_http_1.SystemGraphQLHandlerFactory(utils_1.logSentryError, debugMode))
|
|
40
|
-
.addService('projectGroupContainerFactory', ({ providers, systemContainerFactory, tenantContainerFactory, projectContainerFactoryFactory, projectConfigResolver, tenantGraphQLHandlerFactory, systemGraphQLHandlerFactory }) => new ProjectGroupContainer_1.ProjectGroupContainerFactory(providers, systemContainerFactory, tenantContainerFactory, projectContainerFactoryFactory, projectConfigResolver, tenantGraphQLHandlerFactory, systemGraphQLHandlerFactory))
|
|
41
|
-
.addService('
|
|
42
|
-
.addService('promRegistry', ({ processType, projectGroupContainerResolver }) => {
|
|
43
|
-
if (processType === utils_1.ProcessType.clusterMaster) {
|
|
44
|
-
const register = new prom_client_1.default.AggregatorRegistry();
|
|
45
|
-
prom_client_1.default.collectDefaultMetrics({ register });
|
|
46
|
-
return register;
|
|
47
|
-
}
|
|
48
|
-
const register = prom_client_1.default.register;
|
|
49
|
-
prom_client_1.default.collectDefaultMetrics({ register });
|
|
50
|
-
const registrar = (0, utils_1.createDbMetricsRegistrar)(register);
|
|
51
|
-
projectGroupContainerResolver.onCreate.push((groupContainer, slug) => {
|
|
52
|
-
groupContainer.projectContainerResolver.onCreate.push(projectContainer => registrar({
|
|
53
|
-
connection: projectContainer.connection,
|
|
54
|
-
labels: {
|
|
55
|
-
contember_module: 'content',
|
|
56
|
-
contember_project: projectContainer.project.slug,
|
|
57
|
-
contember_project_group: slug !== null && slug !== void 0 ? slug : 'unknown',
|
|
58
|
-
},
|
|
59
|
-
}));
|
|
60
|
-
return registrar({
|
|
61
|
-
connection: groupContainer.tenantContainer.connection,
|
|
62
|
-
labels: {
|
|
63
|
-
contember_module: 'tenant',
|
|
64
|
-
contember_project_group: slug !== null && slug !== void 0 ? slug : 'unknown',
|
|
65
|
-
contember_project: 'unknown',
|
|
66
|
-
},
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
return register;
|
|
70
|
-
})
|
|
37
|
+
.addService('projectGroupContainerFactory', ({ debugMode, providers, systemContainerFactory, tenantContainerFactory, projectContainerFactoryFactory, projectConfigResolver, tenantGraphQLHandlerFactory, systemGraphQLHandlerFactory }) => new ProjectGroupContainer_1.ProjectGroupContainerFactory(debugMode, providers, systemContainerFactory, tenantContainerFactory, projectContainerFactoryFactory, projectConfigResolver, tenantGraphQLHandlerFactory, systemGraphQLHandlerFactory))
|
|
38
|
+
.addService('projectGroupContainer', ({ tenantConfigResolver, projectGroupContainerFactory }) => projectGroupContainerFactory.create({ slug: undefined, config: tenantConfigResolver(undefined, {}) }))
|
|
71
39
|
.addService('httpErrorMiddlewareFactory', ({ debugMode }) => new engine_http_1.ErrorMiddlewareFactory(debugMode))
|
|
72
|
-
.addService('projectGroupResolver', ({
|
|
73
|
-
var _a, _b, _c, _d, _e;
|
|
74
|
-
const encryptionKey = ((_a = serverConfig.projectGroup) === null || _a === void 0 ? void 0 : _a.configEncryptionKey)
|
|
75
|
-
? (0, crypto_1.createSecretKey)(Buffer.from((_b = serverConfig.projectGroup) === null || _b === void 0 ? void 0 : _b.configEncryptionKey, 'hex'))
|
|
76
|
-
: undefined;
|
|
77
|
-
return new engine_http_1.ProjectGroupResolver((_c = serverConfig.projectGroup) === null || _c === void 0 ? void 0 : _c.domainMapping, (_d = serverConfig.projectGroup) === null || _d === void 0 ? void 0 : _d.configHeader, ((_e = serverConfig.projectGroup) === null || _e === void 0 ? void 0 : _e.configEncryptionKey) ? new engine_http_1.CryptoWrapper(encryptionKey) : undefined, projectGroupContainerResolver);
|
|
78
|
-
})
|
|
40
|
+
.addService('projectGroupResolver', ({ projectGroupContainer }) => new ProjectGroupResolver_1.ProjectGroupResolver(projectGroupContainer))
|
|
79
41
|
.addService('notModifiedChecker', () => new engine_http_1.NotModifiedChecker())
|
|
80
42
|
.addService('contentGraphqlContextFactory', ({ providers }) => new engine_http_1.ContentGraphQLContextFactory(providers))
|
|
81
43
|
.addService('contentQueryHandlerFactory', ({ debugMode }) => new engine_http_1.ContentQueryHandlerFactory(debugMode, utils_1.logSentryError))
|
|
82
|
-
.addService('contentApiMiddlewareFactory', ({
|
|
44
|
+
.addService('contentApiMiddlewareFactory', ({ projectGroupResolver, notModifiedChecker, contentGraphqlContextFactory, contentQueryHandlerFactory }) => new engine_http_1.ContentApiMiddlewareFactory(projectGroupResolver, notModifiedChecker, contentGraphqlContextFactory, contentQueryHandlerFactory))
|
|
83
45
|
.addService('tenantGraphQLContextFactory', () => new engine_http_1.TenantGraphQLContextFactory())
|
|
84
46
|
.addService('tenantApiMiddlewareFactory', ({ debugMode, projectGroupResolver, tenantGraphQLContextFactory }) => new engine_http_1.TenantApiMiddlewareFactory(debugMode, projectGroupResolver, tenantGraphQLContextFactory))
|
|
85
47
|
.addService('systemGraphQLContextFactory', () => new engine_http_1.SystemGraphQLContextFactory())
|
|
86
48
|
.addService('systemApiMiddlewareFactory', ({ debugMode, projectGroupResolver, systemGraphQLContextFactory }) => new engine_http_1.SystemApiMiddlewareFactory(debugMode, projectGroupResolver, systemGraphQLContextFactory))
|
|
87
|
-
.addService('
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
(
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
49
|
+
.addService('logger', () =>
|
|
50
|
+
// eslint-disable-next-line no-console
|
|
51
|
+
new engine_common_1.Logger(console.log))
|
|
52
|
+
.addService('contentSchemaTransferMappingFactory', () => new engine_http_1.ContentSchemaTransferMappingFactory())
|
|
53
|
+
.addService('systemSchemaTransferMappingFactory', () => new engine_http_1.SystemSchemaTransferMappingFactory())
|
|
54
|
+
.addService('importExecutor', ({ contentSchemaTransferMappingFactory, systemSchemaTransferMappingFactory, logger }) => new engine_http_1.ImportExecutor(contentSchemaTransferMappingFactory, systemSchemaTransferMappingFactory, logger))
|
|
55
|
+
.addService('exportExecutor', ({ contentSchemaTransferMappingFactory, systemSchemaTransferMappingFactory }) => new engine_http_1.ExportExecutor(contentSchemaTransferMappingFactory, systemSchemaTransferMappingFactory))
|
|
56
|
+
.addService('importApiMiddlewareFactory', ({ projectGroupResolver, importExecutor }) => new engine_http_1.ImportApiMiddlewareFactory(projectGroupResolver, importExecutor))
|
|
57
|
+
.addService('exportApiMiddlewareFactory', ({ projectGroupResolver, exportExecutor }) => new engine_http_1.ExportApiMiddlewareFactory(projectGroupResolver, exportExecutor))
|
|
58
|
+
.addService('koaMiddlewares', ({ contentApiMiddlewareFactory, tenantApiMiddlewareFactory, systemApiMiddlewareFactory, importApiMiddlewareFactory, exportApiMiddlewareFactory, httpErrorMiddlewareFactory, debugMode, version, serverConfig }) => (0, engine_http_1.compose)([
|
|
59
|
+
(0, koa_compress_1.default)({
|
|
60
|
+
br: false,
|
|
61
|
+
}),
|
|
62
|
+
(0, koa_bodyparser_1.default)({
|
|
63
|
+
jsonLimit: serverConfig.http.requestBodySize || '1mb',
|
|
64
|
+
}),
|
|
65
|
+
(0, engine_http_1.createPoweredByHeaderMiddleware)(debugMode, version !== null && version !== void 0 ? version : 'unknown'),
|
|
66
|
+
httpErrorMiddlewareFactory.create(),
|
|
67
|
+
(0, engine_http_1.createTimerMiddleware)(),
|
|
68
|
+
(0, engine_http_1.route)('/playground$', (0, engine_http_1.createPlaygroundMiddleware)()),
|
|
69
|
+
(0, engine_http_1.createHomepageMiddleware)(),
|
|
70
|
+
(0, cors_1.default)(),
|
|
71
|
+
(0, engine_http_1.route)('/content/:projectSlug/:stageSlug$', (0, engine_http_1.compose)([
|
|
72
|
+
(0, engine_http_1.createModuleInfoMiddleware)('content'),
|
|
73
|
+
contentApiMiddlewareFactory.create(),
|
|
74
|
+
])),
|
|
75
|
+
(0, engine_http_1.route)('/tenant$', (0, engine_http_1.compose)([
|
|
76
|
+
(0, engine_http_1.createModuleInfoMiddleware)('tenant'),
|
|
77
|
+
tenantApiMiddlewareFactory.create(),
|
|
78
|
+
])),
|
|
79
|
+
(0, engine_http_1.route)('/system/:projectSlug$', (0, engine_http_1.compose)([
|
|
80
|
+
(0, engine_http_1.createModuleInfoMiddleware)('system'),
|
|
81
|
+
systemApiMiddlewareFactory.create(),
|
|
82
|
+
])),
|
|
83
|
+
(0, engine_http_1.route)('/import$', (0, engine_http_1.compose)([
|
|
84
|
+
(0, engine_http_1.createModuleInfoMiddleware)('transfer'),
|
|
85
|
+
importApiMiddlewareFactory.create(),
|
|
86
|
+
])),
|
|
87
|
+
(0, engine_http_1.route)('/export$', (0, engine_http_1.compose)([
|
|
88
|
+
(0, engine_http_1.createModuleInfoMiddleware)('transfer'),
|
|
89
|
+
exportApiMiddlewareFactory.create(),
|
|
90
|
+
])),
|
|
91
|
+
]))
|
|
92
|
+
.addService('koa', ({ koaMiddlewares }) => {
|
|
119
93
|
const app = new engine_http_1.Koa();
|
|
120
|
-
app.use(
|
|
94
|
+
app.use(koaMiddlewares);
|
|
121
95
|
return app;
|
|
122
96
|
})
|
|
123
|
-
.addService('initializer', ({
|
|
97
|
+
.addService('initializer', ({ projectGroupContainer }) => new bootstrap_1.Initializer(projectGroupContainer));
|
|
124
98
|
}
|
|
125
99
|
create(args) {
|
|
126
100
|
const container = this.createBuilder(args).build();
|
|
127
|
-
return container.pick('initializer', 'koa', '
|
|
101
|
+
return container.pick('initializer', 'koa', 'providers');
|
|
128
102
|
}
|
|
129
103
|
}
|
|
130
104
|
exports.MasterContainerFactory = MasterContainerFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MasterContainer.js","sourceRoot":"","sources":["../../src/MasterContainer.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAqE;AACrE,oEAAqE;AACrE,wCAAwC;AAExC,
|
|
1
|
+
{"version":3,"file":"MasterContainer.js","sourceRoot":"","sources":["../../src/MasterContainer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ProjectGroupContainer } from '@contember/engine-http';
|
|
2
2
|
export declare class Initializer {
|
|
3
|
-
private readonly
|
|
4
|
-
constructor(
|
|
3
|
+
private readonly projectGroupContainer;
|
|
4
|
+
constructor(projectGroupContainer: ProjectGroupContainer);
|
|
5
5
|
initialize(): Promise<string[]>;
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=Initializer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Initializer.d.ts","sourceRoot":"","sources":["../../../src/bootstrap/Initializer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Initializer.d.ts","sourceRoot":"","sources":["../../../src/bootstrap/Initializer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,qBAAa,WAAW;IAEtB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBAArB,qBAAqB,EAAE,qBAAqB;IAGjD,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAiC5C"}
|
|
@@ -3,23 +3,32 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Initializer = void 0;
|
|
4
4
|
const engine_common_1 = require("@contember/engine-common");
|
|
5
5
|
class Initializer {
|
|
6
|
-
constructor(
|
|
7
|
-
this.
|
|
6
|
+
constructor(projectGroupContainer) {
|
|
7
|
+
this.projectGroupContainer = projectGroupContainer;
|
|
8
8
|
}
|
|
9
9
|
async initialize() {
|
|
10
10
|
// eslint-disable-next-line no-console
|
|
11
11
|
const logger = new engine_common_1.Logger(console.log);
|
|
12
12
|
logger.group('\nInitializing tenant database');
|
|
13
13
|
// todo
|
|
14
|
-
const groupContainer = await this.
|
|
15
|
-
|
|
14
|
+
const groupContainer = await this.projectGroupContainer;
|
|
15
|
+
const tenantContainer = groupContainer.tenantContainer;
|
|
16
|
+
await tenantContainer.migrationsRunner.run(logger.write.bind(logger));
|
|
16
17
|
logger.groupEnd();
|
|
17
18
|
const systemContainer = groupContainer.systemContainer;
|
|
18
19
|
const projects = [];
|
|
19
|
-
|
|
20
|
+
const tenantProjects = await tenantContainer.projectManager.getProjects(tenantContainer.databaseContext);
|
|
21
|
+
for (const { slug: projectSlug } of tenantProjects) {
|
|
22
|
+
logger.group(`\nUpdating project ${projectSlug}`);
|
|
23
|
+
const projectContainer = await groupContainer.projectContainerResolver.getProjectContainer(projectSlug, {
|
|
24
|
+
alias: false,
|
|
25
|
+
logger,
|
|
26
|
+
});
|
|
27
|
+
if (!projectContainer) {
|
|
28
|
+
throw new Error();
|
|
29
|
+
}
|
|
20
30
|
const project = projectContainer.project;
|
|
21
31
|
projects.push(project.slug);
|
|
22
|
-
logger.group(`\nUpdating project ${project.slug}`);
|
|
23
32
|
await systemContainer.projectInitializer.initialize(projectContainer.systemDatabaseContextFactory, project, logger);
|
|
24
33
|
logger.groupEnd();
|
|
25
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Initializer.js","sourceRoot":"","sources":["../../../src/bootstrap/Initializer.ts"],"names":[],"mappings":";;;AAAA,4DAAiD;AAGjD,MAAa,WAAW;IACvB,YACkB,
|
|
1
|
+
{"version":3,"file":"Initializer.js","sourceRoot":"","sources":["../../../src/bootstrap/Initializer.ts"],"names":[],"mappings":";;;AAAA,4DAAiD;AAGjD,MAAa,WAAW;IACvB,YACkB,qBAA4C;QAA5C,0BAAqB,GAArB,qBAAqB,CAAuB;IAC3D,CAAC;IAEG,KAAK,CAAC,UAAU;QACtB,sCAAsC;QACtC,MAAM,MAAM,GAAG,IAAI,sBAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACtC,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAC9C,OAAO;QACP,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAA;QAEvD,MAAM,eAAe,GAAG,cAAc,CAAC,eAAe,CAAA;QACtD,MAAM,eAAe,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;QACrE,MAAM,CAAC,QAAQ,EAAE,CAAA;QAEjB,MAAM,eAAe,GAAG,cAAc,CAAC,eAAe,CAAA;QACtD,MAAM,QAAQ,GAAa,EAAE,CAAA;QAE7B,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,WAAW,CAAC,eAAe,CAAC,eAAe,CAAC,CAAA;QACxG,KAAK,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,cAAc,EAAE;YACnD,MAAM,CAAC,KAAK,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAA;YACjD,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,WAAW,EAAE;gBACvG,KAAK,EAAE,KAAK;gBACZ,MAAM;aACN,CAAC,CAAA;YACF,IAAI,CAAC,gBAAgB,EAAE;gBACtB,MAAM,IAAI,KAAK,EAAE,CAAA;aACjB;YACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAA;YACxC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAC3B,MAAM,eAAe,CAAC,kBAAkB,CAAC,UAAU,CAAC,gBAAgB,CAAC,4BAA4B,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;YACnH,MAAM,CAAC,QAAQ,EAAE,CAAA;SACjB;QACD,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,OAAO,QAAQ,CAAA;IAChB,CAAC;CACD;AAtCD,kCAsCC"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { ConfigProcessor } from '@contember/engine-plugins';
|
|
2
|
-
import { serverConfigSchema, tenantConfigSchema } from './configSchema';
|
|
2
|
+
import { serverConfigSchema as defaultServerConfigSchema, tenantConfigSchema } from './configSchema';
|
|
3
3
|
import { ProjectConfigResolver } from './projectConfigResolver';
|
|
4
4
|
import { TenantConfigResolver } from './tenantConfigResolver';
|
|
5
|
-
|
|
5
|
+
import { Type } from '@contember/typesafe';
|
|
6
|
+
export declare type ServerConfig = ReturnType<typeof defaultServerConfigSchema>;
|
|
6
7
|
export declare type TenantConfig = ReturnType<typeof tenantConfigSchema>;
|
|
7
8
|
export declare type ConfigSource = {
|
|
8
9
|
data: string;
|
|
9
10
|
type: 'file' | 'json' | 'yaml';
|
|
10
11
|
};
|
|
11
|
-
export declare function readConfig(configSources
|
|
12
|
-
serverConfig:
|
|
12
|
+
export declare function readConfig<T extends ServerConfig>(configSources?: ConfigSource[], configProcessors?: ConfigProcessor[], serverConfigSchema?: Type<T>): Promise<{
|
|
13
|
+
serverConfig: T;
|
|
13
14
|
projectConfigResolver: ProjectConfigResolver;
|
|
14
15
|
tenantConfigResolver: TenantConfigResolver;
|
|
15
16
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,kBAAkB,IAAI,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAEpG,OAAO,EAA+B,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC5F,OAAO,EAA8B,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAE1C,oBAAY,YAAY,GAAG,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAA;AACvE,oBAAY,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEhE,oBAAY,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AAI3E,wBAAsB,UAAU,CAAC,CAAC,SAAS,YAAY,EACtD,aAAa,GAAE,YAAY,EAAO,EAClC,gBAAgB,GAAE,eAAe,EAAO,EACxC,kBAAkB,GAAE,IAAI,CAAC,CAAC,CAAwC,GAChE,OAAO,CAAC;IACV,YAAY,EAAE,CAAC,CAAA;IACf,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,oBAAoB,EAAE,oBAAoB,CAAA;CAC1C,CAAC,CA4BD"}
|
|
@@ -6,7 +6,7 @@ const configSchema_1 = require("./configSchema");
|
|
|
6
6
|
const configTemplate_1 = require("./configTemplate");
|
|
7
7
|
const projectConfigResolver_1 = require("./projectConfigResolver");
|
|
8
8
|
const tenantConfigResolver_1 = require("./tenantConfigResolver");
|
|
9
|
-
async function readConfig(configSources, configProcessors = []) {
|
|
9
|
+
async function readConfig(configSources = [], configProcessors = [], serverConfigSchema = configSchema_1.serverConfigSchema) {
|
|
10
10
|
const loader = new config_loader_1.ConfigLoader();
|
|
11
11
|
const configs = await Promise.all(configSources.map(it => (it.type === 'file' ? loader.load(it.data) : loader.loadString(it.data, it.type))));
|
|
12
12
|
const env = {
|
|
@@ -19,7 +19,7 @@ async function readConfig(configSources, configProcessors = []) {
|
|
|
19
19
|
const rawConfig = config_loader_1.Merger.merge(template, ...configs);
|
|
20
20
|
const parametersResolver = (0, config_loader_1.createObjectParametersResolver)({ env });
|
|
21
21
|
const config = (0, config_loader_1.resolveParameters)(rawConfig.server, parametersResolver);
|
|
22
|
-
const serverConfig =
|
|
22
|
+
const serverConfig = serverConfigSchema(config);
|
|
23
23
|
return {
|
|
24
24
|
serverConfig,
|
|
25
25
|
projectConfigResolver: (0, projectConfigResolver_1.createProjectConfigResolver)(env, rawConfig, configProcessors),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":";;;AAAA,4DAAkH;AAElH,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":";;;AAAA,4DAAkH;AAElH,iDAAoG;AACpG,qDAAiD;AACjD,mEAA4F;AAC5F,iEAAyF;AAUlF,KAAK,UAAU,UAAU,CAC/B,gBAAgC,EAAE,EAClC,mBAAsC,EAAE,EACxC,qBAA8B,iCAAoC;IAMlE,MAAM,MAAM,GAAG,IAAI,4BAAY,EAAE,CAAA;IACjC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAC1G,CAAA;IACD,MAAM,GAAG,GAAQ;QAChB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,WAAC,OAAA,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,CAAA,MAAA,IAAI,CAAC,aAAa,oDAAI,KAAI,EAAE,CAAC,EAAE,CAAC,CAAA,EAAA,EAAE;YAC1F,eAAe,EAAE,MAAM;SACvB,CAAC;QACF,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAA0B,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;KAC9G,CAAA;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CACvC,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,SAAS,CAAC,qBAAqB,0DAAG,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,KAAI,GAAG,CAAA,EAAA,EAC1E,+BAAc,CACd,CAAA;IAED,MAAM,SAAS,GAAG,sBAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAA;IAEpD,MAAM,kBAAkB,GAAG,IAAA,8CAA8B,EAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAClE,MAAM,MAAM,GAAG,IAAA,iCAAiB,EAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAEtE,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC/C,OAAO;QACN,YAAY;QACZ,qBAAqB,EAAE,IAAA,mDAA2B,EAAC,GAAG,EAAE,SAAS,EAAE,gBAAgB,CAAC;QACpF,oBAAoB,EAAE,IAAA,iDAA0B,EAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC;KACvE,CAAA;AACF,CAAC;AApCD,gCAoCC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as Typesafe from '@contember/typesafe';
|
|
2
2
|
import { MailerOptions } from '@contember/engine-tenant-api';
|
|
3
|
-
export declare const
|
|
3
|
+
export declare const dbConfigSchema: Typesafe.Type<{
|
|
4
4
|
readonly host: string;
|
|
5
5
|
readonly port: number;
|
|
6
6
|
readonly user: string;
|
|
@@ -8,6 +8,19 @@ export declare const dbCredentialsSchema: Typesafe.Type<{
|
|
|
8
8
|
readonly database: string;
|
|
9
9
|
} & {
|
|
10
10
|
readonly ssl?: boolean | undefined;
|
|
11
|
+
readonly queryTimeoutMs?: number | undefined;
|
|
12
|
+
readonly statementTimeoutMs?: number | undefined;
|
|
13
|
+
readonly connectionTimeoutMs?: number | undefined;
|
|
14
|
+
readonly pool?: {
|
|
15
|
+
readonly maxConnections?: number | undefined;
|
|
16
|
+
readonly maxConnecting?: number | undefined;
|
|
17
|
+
readonly maxIdle?: number | undefined;
|
|
18
|
+
readonly reconnectIntervalMs?: number | undefined;
|
|
19
|
+
readonly idleTimeoutMs?: number | undefined;
|
|
20
|
+
readonly acquireTimeoutMs?: number | undefined;
|
|
21
|
+
readonly maxUses?: number | undefined;
|
|
22
|
+
readonly maxAgeMs?: number | undefined;
|
|
23
|
+
} | undefined;
|
|
11
24
|
}>;
|
|
12
25
|
export declare const tenantConfigSchema: Typesafe.Type<{
|
|
13
26
|
readonly db: {
|
|
@@ -18,6 +31,19 @@ export declare const tenantConfigSchema: Typesafe.Type<{
|
|
|
18
31
|
readonly database: string;
|
|
19
32
|
} & {
|
|
20
33
|
readonly ssl?: boolean | undefined;
|
|
34
|
+
readonly queryTimeoutMs?: number | undefined;
|
|
35
|
+
readonly statementTimeoutMs?: number | undefined;
|
|
36
|
+
readonly connectionTimeoutMs?: number | undefined;
|
|
37
|
+
readonly pool?: {
|
|
38
|
+
readonly maxConnections?: number | undefined;
|
|
39
|
+
readonly maxConnecting?: number | undefined;
|
|
40
|
+
readonly maxIdle?: number | undefined;
|
|
41
|
+
readonly reconnectIntervalMs?: number | undefined;
|
|
42
|
+
readonly idleTimeoutMs?: number | undefined;
|
|
43
|
+
readonly acquireTimeoutMs?: number | undefined;
|
|
44
|
+
readonly maxUses?: number | undefined;
|
|
45
|
+
readonly maxAgeMs?: number | undefined;
|
|
46
|
+
} | undefined;
|
|
21
47
|
};
|
|
22
48
|
readonly mailer: MailerOptions & Typesafe.JsonObject;
|
|
23
49
|
readonly credentials: {
|
|
@@ -34,23 +60,18 @@ export declare const tenantConfigSchema: Typesafe.Type<{
|
|
|
34
60
|
}>;
|
|
35
61
|
export declare const serverConfigSchema: Typesafe.Type<{
|
|
36
62
|
readonly port: number;
|
|
37
|
-
readonly monitoringPort: number;
|
|
38
63
|
readonly http: {
|
|
39
64
|
readonly requestBodySize?: string | undefined;
|
|
40
65
|
};
|
|
41
|
-
readonly logging: {
|
|
66
|
+
readonly logging: {
|
|
67
|
+
sentry?: {
|
|
68
|
+
dsn: string;
|
|
69
|
+
} | undefined;
|
|
70
|
+
} | {
|
|
42
71
|
readonly sentry?: {
|
|
43
72
|
readonly dsn: string;
|
|
44
73
|
} | undefined;
|
|
45
74
|
};
|
|
46
|
-
} & {
|
|
47
|
-
readonly workerCount?: string | number | undefined;
|
|
48
|
-
readonly projectGroup?: ({
|
|
49
|
-
readonly domainMapping: string;
|
|
50
|
-
} & {
|
|
51
|
-
readonly configHeader?: string | undefined;
|
|
52
|
-
readonly configEncryptionKey?: string | undefined;
|
|
53
|
-
}) | undefined;
|
|
54
75
|
}>;
|
|
55
76
|
export declare const stageConfig: Typesafe.Type<{
|
|
56
77
|
readonly [x: string]: {
|
|
@@ -77,6 +98,19 @@ export declare const projectConfigSchema: Typesafe.Type<{
|
|
|
77
98
|
readonly database: string;
|
|
78
99
|
} & {
|
|
79
100
|
readonly ssl?: boolean | undefined;
|
|
101
|
+
readonly queryTimeoutMs?: number | undefined;
|
|
102
|
+
readonly statementTimeoutMs?: number | undefined;
|
|
103
|
+
readonly connectionTimeoutMs?: number | undefined;
|
|
104
|
+
readonly pool?: {
|
|
105
|
+
readonly maxConnections?: number | undefined;
|
|
106
|
+
readonly maxConnecting?: number | undefined;
|
|
107
|
+
readonly maxIdle?: number | undefined;
|
|
108
|
+
readonly reconnectIntervalMs?: number | undefined;
|
|
109
|
+
readonly idleTimeoutMs?: number | undefined;
|
|
110
|
+
readonly acquireTimeoutMs?: number | undefined;
|
|
111
|
+
readonly maxUses?: number | undefined;
|
|
112
|
+
readonly maxAgeMs?: number | undefined;
|
|
113
|
+
} | undefined;
|
|
80
114
|
}) | {
|
|
81
115
|
readonly useTenantDb: true;
|
|
82
116
|
}) & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configSchema.d.ts","sourceRoot":"","sources":["../../../src/config/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAI5D,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"configSchema.d.ts","sourceRoot":"","sources":["../../../src/config/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAI5D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;EAwB1B,CAAA;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6B9B,CAAA;AAED,eAAO,MAAM,kBAAkB;;;;;;;iBAMJ,MAAM;;;;;;;EAO/B,CAAA;AAEF,eAAO,MAAM,WAAW;;;;;;;EAcvB,CAAA;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkB9B,CAAA"}
|