@contember/engine-server 1.2.0-alpha.15 → 1.2.0-alpha.17
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 +6 -6
- package/dist/src/MasterContainer.d.ts.map +1 -1
- package/dist/src/MasterContainer.js +9 -12
- package/dist/src/MasterContainer.js.map +1 -1
- package/dist/src/bootstrap/Initializer.d.ts.map +1 -1
- package/dist/src/bootstrap/Initializer.js +3 -15
- package/dist/src/bootstrap/Initializer.js.map +1 -1
- package/dist/src/config/configSchema.d.ts +69 -0
- package/dist/src/config/configSchema.d.ts.map +1 -1
- package/dist/src/config/configSchema.js +14 -2
- 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 +18 -0
- package/dist/src/config/configTemplate.js.map +1 -1
- package/dist/src/project/ProjectContainer.d.ts +8 -2
- package/dist/src/project/ProjectContainer.d.ts.map +1 -1
- package/dist/src/project/ProjectContainer.js +20 -5
- package/dist/src/project/ProjectContainer.js.map +1 -1
- package/dist/src/project/ProjectContainerResolver.d.ts +2 -3
- package/dist/src/project/ProjectContainerResolver.d.ts.map +1 -1
- package/dist/src/project/ProjectContainerResolver.js +3 -4
- package/dist/src/project/ProjectContainerResolver.js.map +1 -1
- package/dist/src/project/ProjectInitializer.d.ts +3 -2
- package/dist/src/project/ProjectInitializer.d.ts.map +1 -1
- package/dist/src/project/ProjectInitializer.js +3 -3
- package/dist/src/project/ProjectInitializer.js.map +1 -1
- package/dist/src/project/ProjectSchemaResolver.d.ts +2 -7
- package/dist/src/project/ProjectSchemaResolver.d.ts.map +1 -1
- package/dist/src/project/ProjectSchemaResolver.js +2 -16
- package/dist/src/project/ProjectSchemaResolver.js.map +1 -1
- package/dist/src/projectGroup/ProjectGroupContainer.d.ts +3 -1
- package/dist/src/projectGroup/ProjectGroupContainer.d.ts.map +1 -1
- package/dist/src/projectGroup/ProjectGroupContainer.js +8 -6
- package/dist/src/projectGroup/ProjectGroupContainer.js.map +1 -1
- package/dist/src/start.js +16 -13
- package/dist/src/start.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/utils/sentry.d.ts +8 -9
- package/dist/src/utils/sentry.d.ts.map +1 -1
- package/dist/src/utils/sentry.js +44 -29
- package/dist/src/utils/sentry.js.map +1 -1
- package/dist/src/utils/serverStartup.d.ts +3 -1
- package/dist/src/utils/serverStartup.d.ts.map +1 -1
- package/dist/src/utils/serverStartup.js +47 -10
- package/dist/src/utils/serverStartup.js.map +1 -1
- package/dist/src/utils/serverTermination.d.ts +2 -1
- package/dist/src/utils/serverTermination.d.ts.map +1 -1
- package/dist/src/utils/serverTermination.js +3 -5
- package/dist/src/utils/serverTermination.js.map +1 -1
- package/dist/tests/cases/configResolver.test.d.ts +2 -0
- package/dist/tests/cases/configResolver.test.d.ts.map +1 -0
- package/dist/tests/cases/configResolver.test.js +67 -0
- package/dist/tests/cases/configResolver.test.js.map +1 -0
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/package.json +22 -20
- package/src/MasterContainer.ts +16 -14
- package/src/bootstrap/Initializer.ts +3 -16
- package/src/config/configSchema.ts +42 -21
- package/src/config/configTemplate.ts +18 -0
- package/src/project/ProjectContainer.ts +23 -4
- package/src/project/ProjectContainerResolver.ts +4 -4
- package/src/project/ProjectInitializer.ts +4 -3
- package/src/project/ProjectSchemaResolver.ts +1 -18
- package/src/projectGroup/ProjectGroupContainer.ts +11 -6
- package/src/start.ts +24 -17
- package/src/tsconfig.json +3 -0
- package/src/utils/sentry.ts +45 -35
- package/src/utils/serverStartup.ts +45 -9
- package/src/utils/serverTermination.ts +4 -5
- package/tests/cases/configResolver.test.ts +67 -0
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { ProjectInitializer as ProjectInitializerInterface, ProjectWithSecrets } from '@contember/engine-tenant-api';
|
|
2
2
|
import { ProjectContainerResolver } from './ProjectContainerResolver';
|
|
3
|
+
import { Logger } from '@contember/logger';
|
|
3
4
|
export declare class ProjectInitializer implements ProjectInitializerInterface {
|
|
4
5
|
private readonly projectContainerResolver;
|
|
5
6
|
constructor(projectContainerResolver: ProjectContainerResolver);
|
|
6
|
-
initializeProject(project: ProjectWithSecrets): Promise<void>;
|
|
7
|
+
initializeProject(project: ProjectWithSecrets, logger: Logger): Promise<void>;
|
|
7
8
|
}
|
|
8
9
|
export declare class ProjectInitializerProxy implements ProjectInitializerInterface {
|
|
9
10
|
private initializer;
|
|
10
11
|
setInitializer(initializer: ProjectInitializerInterface): void;
|
|
11
|
-
initializeProject(project: ProjectWithSecrets): Promise<void>;
|
|
12
|
+
initializeProject(project: ProjectWithSecrets, logger: Logger): Promise<void>;
|
|
12
13
|
}
|
|
13
14
|
//# sourceMappingURL=ProjectInitializer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectInitializer.d.ts","sourceRoot":"","sources":["../../../src/project/ProjectInitializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,IAAI,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACpH,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"ProjectInitializer.d.ts","sourceRoot":"","sources":["../../../src/project/ProjectInitializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,IAAI,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACpH,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,qBAAa,kBAAmB,YAAW,2BAA2B;IAEpE,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBAAxB,wBAAwB,EAAE,wBAAwB;IAG9D,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM;CAGnE;AAED,qBAAa,uBAAwB,YAAW,2BAA2B;IAC1E,OAAO,CAAC,WAAW,CAAqD;IAExE,cAAc,CAAC,WAAW,EAAE,2BAA2B,GAAG,IAAI;IAI9D,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM;CAM7D"}
|
|
@@ -5,7 +5,7 @@ class ProjectInitializer {
|
|
|
5
5
|
constructor(projectContainerResolver) {
|
|
6
6
|
this.projectContainerResolver = projectContainerResolver;
|
|
7
7
|
}
|
|
8
|
-
async initializeProject(project) {
|
|
8
|
+
async initializeProject(project, logger) {
|
|
9
9
|
await this.projectContainerResolver.createProjectContainer(project);
|
|
10
10
|
}
|
|
11
11
|
}
|
|
@@ -17,11 +17,11 @@ class ProjectInitializerProxy {
|
|
|
17
17
|
setInitializer(initializer) {
|
|
18
18
|
this.initializer = initializer;
|
|
19
19
|
}
|
|
20
|
-
initializeProject(project) {
|
|
20
|
+
initializeProject(project, logger) {
|
|
21
21
|
if (!this.initializer) {
|
|
22
22
|
throw new Error('Initializer is not set');
|
|
23
23
|
}
|
|
24
|
-
return this.initializer.initializeProject(project);
|
|
24
|
+
return this.initializer.initializeProject(project, logger);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
exports.ProjectInitializerProxy = ProjectInitializerProxy;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectInitializer.js","sourceRoot":"","sources":["../../../src/project/ProjectInitializer.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ProjectInitializer.js","sourceRoot":"","sources":["../../../src/project/ProjectInitializer.ts"],"names":[],"mappings":";;;AAIA,MAAa,kBAAkB;IAC9B,YACkB,wBAAkD;QAAlD,6BAAwB,GAAxB,wBAAwB,CAA0B;IACjE,CAAC;IAEJ,KAAK,CAAC,iBAAiB,CAAC,OAA2B,EAAE,MAAc;QAClE,MAAM,IAAI,CAAC,wBAAwB,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAA;IACpE,CAAC;CACD;AARD,gDAQC;AAED,MAAa,uBAAuB;IAApC;QACS,gBAAW,GAA4C,SAAS,CAAA;IAYzE,CAAC;IAVA,cAAc,CAAC,WAAwC;QACtD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAC/B,CAAC;IAED,iBAAiB,CAAC,OAA2B,EAAE,MAAc;QAC5D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;SACzC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC3D,CAAC;CACD;AAbD,0DAaC"}
|
|
@@ -1,19 +1,14 @@
|
|
|
1
1
|
import { ProjectSchemaResolver as ProjectSchemaResolverInterface } from '@contember/engine-tenant-api';
|
|
2
|
-
import { SchemaVersionBuilder, VersionedSchema } from '@contember/engine-system-api';
|
|
3
2
|
import { ProjectContainerResolver } from '@contember/engine-http';
|
|
4
3
|
import { Schema } from '@contember/schema';
|
|
5
4
|
export declare class ProjectSchemaResolver implements ProjectSchemaResolverInterface {
|
|
6
5
|
private readonly projectContainerResolver;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
constructor(projectContainerResolver: ProjectContainerResolver, schemaVersionBuilder: SchemaVersionBuilder);
|
|
10
|
-
getSchema(slug: string): Promise<VersionedSchema | undefined>;
|
|
11
|
-
clearCache(): void;
|
|
6
|
+
constructor(projectContainerResolver: ProjectContainerResolver);
|
|
7
|
+
getSchema(slug: string): Promise<import("@contember/engine-system-api").VersionedSchema | undefined>;
|
|
12
8
|
}
|
|
13
9
|
export declare class ProjectSchemaResolverProxy implements ProjectSchemaResolverInterface {
|
|
14
10
|
private resolver;
|
|
15
11
|
setResolver(resolver: ProjectSchemaResolver): void;
|
|
16
12
|
getSchema(projectSlug: string): Promise<Schema | undefined>;
|
|
17
|
-
clearCache(): void;
|
|
18
13
|
}
|
|
19
14
|
//# sourceMappingURL=ProjectSchemaResolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectSchemaResolver.d.ts","sourceRoot":"","sources":["../../../src/project/ProjectSchemaResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,IAAI,8BAA8B,EAAE,MAAM,8BAA8B,CAAA;AACtG,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ProjectSchemaResolver.d.ts","sourceRoot":"","sources":["../../../src/project/ProjectSchemaResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,IAAI,8BAA8B,EAAE,MAAM,8BAA8B,CAAA;AACtG,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,qBAAa,qBAAsB,YAAW,8BAA8B;IAE1E,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBAAxB,wBAAwB,EAAE,wBAAwB;IAG9D,SAAS,CAAC,IAAI,EAAE,MAAM;CAQ5B;AAED,qBAAa,0BAA2B,YAAW,8BAA8B;IAChF,OAAO,CAAC,QAAQ,CAAmC;IAEnD,WAAW,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAIlD,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAM3D"}
|
|
@@ -2,10 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ProjectSchemaResolverProxy = exports.ProjectSchemaResolver = void 0;
|
|
4
4
|
class ProjectSchemaResolver {
|
|
5
|
-
constructor(projectContainerResolver
|
|
5
|
+
constructor(projectContainerResolver) {
|
|
6
6
|
this.projectContainerResolver = projectContainerResolver;
|
|
7
|
-
this.schemaVersionBuilder = schemaVersionBuilder;
|
|
8
|
-
this.schemaCache = new Map();
|
|
9
7
|
}
|
|
10
8
|
async getSchema(slug) {
|
|
11
9
|
const container = await this.projectContainerResolver.getProjectContainer(slug);
|
|
@@ -13,15 +11,7 @@ class ProjectSchemaResolver {
|
|
|
13
11
|
return undefined;
|
|
14
12
|
}
|
|
15
13
|
const db = container.systemDatabaseContextFactory.create();
|
|
16
|
-
|
|
17
|
-
const newSchema = await this.schemaVersionBuilder.buildSchema(db, cachedSchema);
|
|
18
|
-
if (cachedSchema !== newSchema) {
|
|
19
|
-
this.schemaCache.set(slug, newSchema);
|
|
20
|
-
}
|
|
21
|
-
return newSchema;
|
|
22
|
-
}
|
|
23
|
-
clearCache() {
|
|
24
|
-
this.schemaCache.clear();
|
|
14
|
+
return container.contentSchemaResolver.getSchema(db);
|
|
25
15
|
}
|
|
26
16
|
}
|
|
27
17
|
exports.ProjectSchemaResolver = ProjectSchemaResolver;
|
|
@@ -35,10 +25,6 @@ class ProjectSchemaResolverProxy {
|
|
|
35
25
|
}
|
|
36
26
|
return this.resolver.getSchema(projectSlug);
|
|
37
27
|
}
|
|
38
|
-
clearCache() {
|
|
39
|
-
var _a;
|
|
40
|
-
(_a = this.resolver) === null || _a === void 0 ? void 0 : _a.clearCache();
|
|
41
|
-
}
|
|
42
28
|
}
|
|
43
29
|
exports.ProjectSchemaResolverProxy = ProjectSchemaResolverProxy;
|
|
44
30
|
//# sourceMappingURL=ProjectSchemaResolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectSchemaResolver.js","sourceRoot":"","sources":["../../../src/project/ProjectSchemaResolver.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ProjectSchemaResolver.js","sourceRoot":"","sources":["../../../src/project/ProjectSchemaResolver.ts"],"names":[],"mappings":";;;AAIA,MAAa,qBAAqB;IACjC,YACkB,wBAAkD;QAAlD,6BAAwB,GAAxB,wBAAwB,CAA0B;IACjE,CAAC;IAEJ,KAAK,CAAC,SAAS,CAAC,IAAY;QAC3B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;QAC/E,IAAI,CAAC,SAAS,EAAE;YACf,OAAO,SAAS,CAAA;SAChB;QACD,MAAM,EAAE,GAAG,SAAS,CAAC,4BAA4B,CAAC,MAAM,EAAE,CAAA;QAC1D,OAAO,SAAS,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IACrD,CAAC;CACD;AAbD,sDAaC;AAED,MAAa,0BAA0B;IAGtC,WAAW,CAAC,QAA+B;QAC1C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACzB,CAAC;IAED,SAAS,CAAC,WAAmB;QAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;SACtC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;IAC5C,CAAC;CACD;AAbD,gEAaC"}
|
|
@@ -4,6 +4,7 @@ import { ProjectGroupContainer, Providers, SystemGraphQLHandlerFactory, TenantGr
|
|
|
4
4
|
import { ProjectContainerFactoryFactory } from '../project';
|
|
5
5
|
import { SystemContainerFactory } from '@contember/engine-system-api';
|
|
6
6
|
import { ProjectConfigResolver } from '../config/projectConfigResolver';
|
|
7
|
+
import { Logger } from '@contember/logger';
|
|
7
8
|
interface ProjectGroupContainerFactoryArgs {
|
|
8
9
|
config: TenantConfig;
|
|
9
10
|
slug: string | undefined;
|
|
@@ -17,7 +18,8 @@ export declare class ProjectGroupContainerFactory {
|
|
|
17
18
|
private readonly projectConfigResolver;
|
|
18
19
|
private readonly tenantGraphQLHandlerFactory;
|
|
19
20
|
private readonly systemGraphQLHandlerFactory;
|
|
20
|
-
|
|
21
|
+
private readonly logger;
|
|
22
|
+
constructor(debug: boolean, providers: Providers, systemContainerFactory: SystemContainerFactory, tenantContainerFactory: TenantContainerFactory, projectContainerFactoryFactory: ProjectContainerFactoryFactory, projectConfigResolver: ProjectConfigResolver, tenantGraphQLHandlerFactory: TenantGraphQLHandlerFactory, systemGraphQLHandlerFactory: SystemGraphQLHandlerFactory, logger: Logger);
|
|
21
23
|
create({ config, slug }: ProjectGroupContainerFactoryArgs): ProjectGroupContainer;
|
|
22
24
|
}
|
|
23
25
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectGroupContainer.d.ts","sourceRoot":"","sources":["../../../src/projectGroup/ProjectGroupContainer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAGN,qBAAqB,EAGrB,SAAS,EACT,2BAA2B,EAC3B,2BAA2B,EAC3B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACN,8BAA8B,EAM9B,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"ProjectGroupContainer.d.ts","sourceRoot":"","sources":["../../../src/projectGroup/ProjectGroupContainer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAGN,qBAAqB,EAGrB,SAAS,EACT,2BAA2B,EAC3B,2BAA2B,EAC3B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACN,8BAA8B,EAM9B,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAEvE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,UAAU,gCAAgC;IAEzC,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CACxB;AAED,qBAAa,4BAA4B;IAEvC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,8BAA8B;IAC/C,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,2BAA2B;IAC5C,OAAO,CAAC,QAAQ,CAAC,2BAA2B;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM;gBARN,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,SAAS,EACpB,sBAAsB,EAAE,sBAAsB,EAC9C,sBAAsB,EAAE,sBAAsB,EAC9C,8BAA8B,EAAE,8BAA8B,EAC9D,qBAAqB,EAAE,qBAAqB,EAC5C,2BAA2B,EAAE,2BAA2B,EACxD,2BAA2B,EAAE,2BAA2B,EACxD,MAAM,EAAE,MAAM;IAGzB,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,gCAAgC,GAAG,qBAAqB;CAuFxF"}
|
|
@@ -7,7 +7,7 @@ const engine_http_1 = require("@contember/engine-http");
|
|
|
7
7
|
const project_1 = require("../project");
|
|
8
8
|
const crypto_1 = require("crypto");
|
|
9
9
|
class ProjectGroupContainerFactory {
|
|
10
|
-
constructor(debug, providers, systemContainerFactory, tenantContainerFactory, projectContainerFactoryFactory, projectConfigResolver, tenantGraphQLHandlerFactory, systemGraphQLHandlerFactory) {
|
|
10
|
+
constructor(debug, providers, systemContainerFactory, tenantContainerFactory, projectContainerFactoryFactory, projectConfigResolver, tenantGraphQLHandlerFactory, systemGraphQLHandlerFactory, logger) {
|
|
11
11
|
this.debug = debug;
|
|
12
12
|
this.providers = providers;
|
|
13
13
|
this.systemContainerFactory = systemContainerFactory;
|
|
@@ -16,13 +16,15 @@ class ProjectGroupContainerFactory {
|
|
|
16
16
|
this.projectConfigResolver = projectConfigResolver;
|
|
17
17
|
this.tenantGraphQLHandlerFactory = tenantGraphQLHandlerFactory;
|
|
18
18
|
this.systemGraphQLHandlerFactory = systemGraphQLHandlerFactory;
|
|
19
|
+
this.logger = logger;
|
|
19
20
|
}
|
|
20
21
|
create({ config, slug }) {
|
|
21
22
|
return new dic_1.Builder({})
|
|
22
23
|
.addService('slug', () => slug)
|
|
24
|
+
.addService('logger', ({ slug }) => this.logger.child({ projectGroup: slug }))
|
|
23
25
|
.addService('providers', () => this.providers)
|
|
24
26
|
.addService('tenantDbCredentials', () => config.db)
|
|
25
|
-
.addService('tenantConnection', ({ tenantDbCredentials }) => database_1.Connection.create(tenantDbCredentials))
|
|
27
|
+
.addService('tenantConnection', ({ tenantDbCredentials, logger }) => database_1.Connection.create(tenantDbCredentials, err => logger.error(err)))
|
|
26
28
|
.addService('projectSchemaResolver', () => new project_1.ProjectSchemaResolverProxy())
|
|
27
29
|
.addService('projectInitializer', () => new project_1.ProjectInitializerProxy())
|
|
28
30
|
.addService('tenantContainer', ({ tenantConnection, tenantDbCredentials, projectSchemaResolver, projectInitializer }) => {
|
|
@@ -47,11 +49,11 @@ class ProjectGroupContainerFactory {
|
|
|
47
49
|
.addService('identityFetcher', ({ tenantContainer: { identityFetcher } }) => identityFetcher)
|
|
48
50
|
.addService('systemContainer', ({ identityFetcher }) => this.systemContainerFactory.create({ identityFetcher }))
|
|
49
51
|
.addService('schemaVersionBuilder', ({ systemContainer }) => systemContainer.schemaVersionBuilder)
|
|
50
|
-
.addService('projectContainerFactory', ({ schemaVersionBuilder }) => this.projectContainerFactoryFactory.create(schemaVersionBuilder))
|
|
52
|
+
.addService('projectContainerFactory', ({ schemaVersionBuilder, logger }) => this.projectContainerFactoryFactory.create(schemaVersionBuilder, logger))
|
|
51
53
|
.addService('tenantProjectManager', ({ tenantContainer }) => tenantContainer.projectManager)
|
|
52
54
|
.addService('projectContainerResolver', ({ projectContainerFactory, tenantProjectManager, systemContainer, tenantContainer }) => new project_1.ProjectContainerResolver(projectContainerFactory, this.projectConfigResolver, tenantProjectManager, systemContainer.projectInitializer, tenantContainer.databaseContext, config))
|
|
53
|
-
.setupService('projectSchemaResolver', (it, { projectContainerResolver
|
|
54
|
-
it.setResolver(new project_1.ProjectSchemaResolver(projectContainerResolver
|
|
55
|
+
.setupService('projectSchemaResolver', (it, { projectContainerResolver }) => {
|
|
56
|
+
it.setResolver(new project_1.ProjectSchemaResolver(projectContainerResolver));
|
|
55
57
|
})
|
|
56
58
|
.setupService('projectInitializer', (it, { projectContainerResolver }) => {
|
|
57
59
|
it.setInitializer(new project_1.ProjectInitializer(projectContainerResolver));
|
|
@@ -61,7 +63,7 @@ class ProjectGroupContainerFactory {
|
|
|
61
63
|
.addService('authenticator', ({ tenantDatabase, tenantContainer }) => new engine_http_1.Authenticator(tenantDatabase, tenantContainer.apiKeyManager))
|
|
62
64
|
.addService('projectMembershipResolver', ({ tenantContainer }) => new engine_http_1.ProjectMembershipResolver(this.debug, new engine_http_1.ProjectMembershipFetcher(tenantContainer.projectMemberManager, tenantContainer.databaseContext)))
|
|
63
65
|
.build()
|
|
64
|
-
.pick('projectContainerResolver', 'projectSchemaResolver', 'projectInitializer', 'systemContainer', 'systemGraphQLHandler', 'tenantContainer', 'tenantDatabase', 'authenticator', 'projectMembershipResolver', 'tenantGraphQLHandler', 'slug');
|
|
66
|
+
.pick('projectContainerResolver', 'projectSchemaResolver', 'projectInitializer', 'systemContainer', 'systemGraphQLHandler', 'tenantContainer', 'tenantDatabase', 'authenticator', 'projectMembershipResolver', 'tenantGraphQLHandler', 'slug', 'logger');
|
|
65
67
|
}
|
|
66
68
|
}
|
|
67
69
|
exports.ProjectGroupContainerFactory = ProjectGroupContainerFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectGroupContainer.js","sourceRoot":"","sources":["../../../src/projectGroup/ProjectGroupContainer.ts"],"names":[],"mappings":";;;AAAA,wCAAwC;AACxC,kDAAgD;AAGhD,wDAS+B;AAC/B,wCAOmB;AAGnB,mCAAwC;
|
|
1
|
+
{"version":3,"file":"ProjectGroupContainer.js","sourceRoot":"","sources":["../../../src/projectGroup/ProjectGroupContainer.ts"],"names":[],"mappings":"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"}
|
package/dist/src/start.js
CHANGED
|
@@ -29,23 +29,28 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
30
|
const index_1 = require("./index");
|
|
31
31
|
const loadPlugins_1 = __importDefault(require("./loadPlugins"));
|
|
32
|
-
const utils_1 = require("./utils");
|
|
33
32
|
const serverStartup_1 = require("./utils/serverStartup");
|
|
33
|
+
const logger = (0, index_1.createDefaultLogger)();
|
|
34
|
+
process.on('warning', message => {
|
|
35
|
+
logger.warn(message);
|
|
36
|
+
});
|
|
34
37
|
(async () => {
|
|
35
38
|
var _a;
|
|
39
|
+
const isDebug = (0, serverStartup_1.isDebugMode)();
|
|
36
40
|
if (process.env.NODE_HEAPDUMP === 'true') {
|
|
37
|
-
|
|
38
|
-
console.log('Initializing heapdump');
|
|
41
|
+
logger.info('Initializing heapdump');
|
|
39
42
|
await Promise.resolve().then(() => __importStar(require('heapdump')));
|
|
40
43
|
}
|
|
41
44
|
const terminationJobs = [];
|
|
42
|
-
(0, index_1.listenOnProcessTermination)(terminationJobs);
|
|
43
|
-
const isDebug = (0, serverStartup_1.isDebugMode)();
|
|
45
|
+
(0, index_1.listenOnProcessTermination)(terminationJobs, logger);
|
|
44
46
|
const version = (0, serverStartup_1.getServerVersion)();
|
|
45
|
-
(0, serverStartup_1.printStartInfo)({ version, isDebug });
|
|
47
|
+
(0, serverStartup_1.printStartInfo)({ version, isDebug }, logger);
|
|
46
48
|
const plugins = await (0, loadPlugins_1.default)();
|
|
47
49
|
const { serverConfig, projectConfigResolver, tenantConfigResolver } = await (0, serverStartup_1.resolveServerConfig)({ plugins, serverConfigSchema: index_1.serverConfigSchema });
|
|
48
|
-
(0,
|
|
50
|
+
const sentryTransport = (0, index_1.createSentryLoggerHandler)((_a = serverConfig.logging.sentry) === null || _a === void 0 ? void 0 : _a.dsn);
|
|
51
|
+
if (sentryTransport !== null) {
|
|
52
|
+
logger.addHandler(sentryTransport);
|
|
53
|
+
}
|
|
49
54
|
const container = (0, index_1.createContainer)({
|
|
50
55
|
debugMode: isDebug,
|
|
51
56
|
serverConfig,
|
|
@@ -53,18 +58,16 @@ const serverStartup_1 = require("./utils/serverStartup");
|
|
|
53
58
|
tenantConfigResolver,
|
|
54
59
|
plugins,
|
|
55
60
|
version,
|
|
61
|
+
logger,
|
|
56
62
|
});
|
|
57
63
|
const initializedProjects = await container.initializer.initialize();
|
|
58
64
|
const httpServer = container.koa.listen(serverConfig.port, () => {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
// eslint-disable-next-line no-console
|
|
62
|
-
console.log(initializedProjects.length ? `Initialized projects: ${initializedProjects.join(', ')}` : 'No project initialized');
|
|
65
|
+
logger.info(`Contember API running on http://localhost:${(serverConfig.port)}`);
|
|
66
|
+
logger.info(initializedProjects.length ? `Initialized projects: ${initializedProjects.join(', ')}` : 'No project initialized');
|
|
63
67
|
});
|
|
64
68
|
terminationJobs.push(() => new Promise(resolve => httpServer.close(resolve)));
|
|
65
69
|
})().catch(e => {
|
|
66
|
-
|
|
67
|
-
console.log(e);
|
|
70
|
+
logger.crit(e);
|
|
68
71
|
process.exit(1);
|
|
69
72
|
});
|
|
70
73
|
//# sourceMappingURL=start.js.map
|
package/dist/src/start.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/start.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/start.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,mCAMgB;AAChB,gEAAuC;AACvC,yDAA0G;AAE1G,MAAM,MAAM,GAAG,IAAA,2BAAmB,GAAE,CAAA;AACpC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE;IAC/B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACrB,CAAC,CAAC,CACD;AAAA,CAAC,KAAK,IAAI,EAAE;;IACZ,MAAM,OAAO,GAAG,IAAA,2BAAW,GAAE,CAAA;IAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM,EAAE;QACzC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QACpC,wDAAa,UAAU,GAAC,CAAA;KACxB;IACD,MAAM,eAAe,GAAqB,EAAE,CAAA;IAC5C,IAAA,kCAA0B,EAAC,eAAe,EAAE,MAAM,CAAC,CAAA;IAEnD,MAAM,OAAO,GAAG,IAAA,gCAAgB,GAAE,CAAA;IAClC,IAAA,8BAAc,EAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,CAAA;IAC5C,MAAM,OAAO,GAAG,MAAM,IAAA,qBAAW,GAAE,CAAA;IACnC,MAAM,EAAE,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,GAAG,MAAM,IAAA,mCAAmB,EAAC,EAAE,OAAO,EAAE,kBAAkB,EAAlB,0BAAkB,EAAE,CAAC,CAAA;IAEhI,MAAM,eAAe,GAAG,IAAA,iCAAyB,EAAC,MAAA,YAAY,CAAC,OAAO,CAAC,MAAM,0CAAE,GAAG,CAAC,CAAA;IACnF,IAAI,eAAe,KAAK,IAAI,EAAE;QAC7B,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;KAClC;IAED,MAAM,SAAS,GAAG,IAAA,uBAAe,EAAC;QACjC,SAAS,EAAE,OAAO;QAClB,YAAY;QACZ,qBAAqB;QACrB,oBAAoB;QACpB,OAAO;QACP,OAAO;QACP,MAAM;KACN,CAAC,CAAA;IAEF,MAAM,mBAAmB,GAAa,MAAM,SAAS,CAAC,WAAW,CAAC,UAAU,EAAE,CAAA;IAE9E,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE;QAC/D,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC/E,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,yBAAyB,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAA;IAC/H,CAAC,CAAC,CAAA;IACF,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,OAAO,CAAM,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AACnF,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACd,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAChB,CAAC,CAAC,CAAA"}
|