@contember/engine-server 1.2.0-alpha.9 → 1.2.0-beta.2
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 +10 -13
- 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 +81 -0
- package/dist/src/config/configSchema.d.ts.map +1 -1
- package/dist/src/config/configSchema.js +16 -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 +29 -24
- 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 +10 -8
- 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 +49 -12
- 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 +4 -6
- 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/src/tester.js +2 -2
- package/dist/tests/src/tester.js.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/package.json +18 -21
- package/src/MasterContainer.ts +17 -15
- package/src/bootstrap/Initializer.ts +3 -16
- package/src/config/configSchema.ts +44 -21
- package/src/config/configTemplate.ts +29 -24
- 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 +12 -7
- package/src/start.ts +24 -17
- package/src/tsconfig.json +6 -15
- package/src/utils/sentry.ts +45 -35
- package/src/utils/serverStartup.ts +46 -10
- package/src/utils/serverTermination.ts +5 -6
- package/tests/cases/configResolver.test.ts +67 -0
- package/tests/src/tester.ts +1 -1
|
@@ -2,9 +2,9 @@ import { ProjectContainerFactory } from './ProjectContainer';
|
|
|
2
2
|
import { ProjectContainer } from '@contember/engine-http';
|
|
3
3
|
import { DatabaseContext, ProjectManager, ProjectWithSecrets } from '@contember/engine-tenant-api';
|
|
4
4
|
import { ProjectInitializer as SystemProjectInitializer } from '@contember/engine-system-api';
|
|
5
|
-
import { Logger } from '@contember/engine-common';
|
|
6
5
|
import { ProjectConfigResolver } from '../config/projectConfigResolver';
|
|
7
6
|
import { TenantConfig } from '../config/config';
|
|
7
|
+
import { Logger } from '@contember/logger';
|
|
8
8
|
export declare class ProjectContainerResolver {
|
|
9
9
|
private readonly projectContainerFactory;
|
|
10
10
|
private readonly projectConfigResolver;
|
|
@@ -15,9 +15,8 @@ export declare class ProjectContainerResolver {
|
|
|
15
15
|
private projectContainers;
|
|
16
16
|
readonly onCreate: ((container: ProjectContainer) => void | (() => void))[];
|
|
17
17
|
constructor(projectContainerFactory: ProjectContainerFactory, projectConfigResolver: ProjectConfigResolver, projectManager: ProjectManager, systemProjectInitializer: SystemProjectInitializer, tenantDatabase: DatabaseContext, tenantConfig: TenantConfig);
|
|
18
|
-
getProjectContainer(slug: string, { alias
|
|
18
|
+
getProjectContainer(slug: string, { alias }?: {
|
|
19
19
|
alias?: boolean;
|
|
20
|
-
logger?: Logger;
|
|
21
20
|
}): Promise<ProjectContainer | undefined>;
|
|
22
21
|
createProjectContainer(project: ProjectWithSecrets, logger?: Logger): Promise<ProjectContainer>;
|
|
23
22
|
destroyContainer(slug: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectContainerResolver.d.ts","sourceRoot":"","sources":["../../../src/project/ProjectContainerResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAClG,OAAO,EAAE,kBAAkB,IAAI,wBAAwB,EAAE,MAAM,8BAA8B,CAAA;AAE7F,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ProjectContainerResolver.d.ts","sourceRoot":"","sources":["../../../src/project/ProjectContainerResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAClG,OAAO,EAAE,kBAAkB,IAAI,wBAAwB,EAAE,MAAM,8BAA8B,CAAA;AAE7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,qBAAa,wBAAwB;IAMnC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAV9B,OAAO,CAAC,iBAAiB,CAA8B;IAEvD,SAAgB,QAAQ,EAAE,CAAC,CAAC,SAAS,EAAE,gBAAgB,KAAK,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAK;gBAGrE,uBAAuB,EAAE,uBAAuB,EAChD,qBAAqB,EAAE,qBAAqB,EAC5C,cAAc,EAAE,cAAc,EAC9B,wBAAwB,EAAE,wBAAwB,EAClD,cAAc,EAAE,eAAe,EAC/B,YAAY,EAAE,YAAY;IAI/B,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAa,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IA4BrH,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoB/F,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAc1D"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ProjectContainerResolver = void 0;
|
|
4
4
|
const ProjectContainerStore_1 = require("./ProjectContainerStore");
|
|
5
|
-
const engine_common_1 = require("@contember/engine-common");
|
|
6
5
|
class ProjectContainerResolver {
|
|
7
6
|
constructor(projectContainerFactory, projectConfigResolver, projectManager, systemProjectInitializer, tenantDatabase, tenantConfig) {
|
|
8
7
|
this.projectContainerFactory = projectContainerFactory;
|
|
@@ -14,7 +13,7 @@ class ProjectContainerResolver {
|
|
|
14
13
|
this.projectContainers = new ProjectContainerStore_1.ProjectContainerStore();
|
|
15
14
|
this.onCreate = [];
|
|
16
15
|
}
|
|
17
|
-
async getProjectContainer(slug, { alias = false
|
|
16
|
+
async getProjectContainer(slug, { alias = false } = {}) {
|
|
18
17
|
const realSlug = this.projectContainers.resolveAlias(slug);
|
|
19
18
|
if (realSlug) {
|
|
20
19
|
slug = realSlug;
|
|
@@ -35,7 +34,7 @@ class ProjectContainerResolver {
|
|
|
35
34
|
if (!project) {
|
|
36
35
|
return undefined;
|
|
37
36
|
}
|
|
38
|
-
const container = await this.createProjectContainer(project
|
|
37
|
+
const container = await this.createProjectContainer(project);
|
|
39
38
|
if (slug !== project.slug) {
|
|
40
39
|
this.projectContainers.setAlias(project.slug, slug);
|
|
41
40
|
}
|
|
@@ -47,7 +46,7 @@ class ProjectContainerResolver {
|
|
|
47
46
|
const projectContainer = this.projectContainerFactory.createContainer({
|
|
48
47
|
project: projectConfig,
|
|
49
48
|
});
|
|
50
|
-
await this.systemProjectInitializer.initialize(projectContainer.systemDatabaseContextFactory, projectContainer.project, logger !== null && logger !== void 0 ? logger :
|
|
49
|
+
await this.systemProjectInitializer.initialize(projectContainer.systemDatabaseContextFactory, projectContainer.project, logger !== null && logger !== void 0 ? logger : projectContainer.logger);
|
|
51
50
|
const cleanups = this.onCreate.map(it => it(projectContainer) || (() => null));
|
|
52
51
|
return {
|
|
53
52
|
container: projectContainer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectContainerResolver.js","sourceRoot":"","sources":["../../../src/project/ProjectContainerResolver.ts"],"names":[],"mappings":";;;AAIA,mEAA+D;
|
|
1
|
+
{"version":3,"file":"ProjectContainerResolver.js","sourceRoot":"","sources":["../../../src/project/ProjectContainerResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
|
@@ -5,9 +5,9 @@ const dic_1 = require("@contember/dic");
|
|
|
5
5
|
const database_1 = require("@contember/database");
|
|
6
6
|
const engine_http_1 = require("@contember/engine-http");
|
|
7
7
|
const project_1 = require("../project");
|
|
8
|
-
const
|
|
8
|
+
const node_crypto_1 = require("node: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,18 +16,20 @@ 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 }) => {
|
|
29
31
|
const encryptionKey = config.secrets.encryptionKey
|
|
30
|
-
? (0,
|
|
32
|
+
? (0, node_crypto_1.createSecretKey)(Buffer.from(config.secrets.encryptionKey, 'hex'))
|
|
31
33
|
: undefined;
|
|
32
34
|
const cryptoWrapper = new engine_http_1.CryptoWrapper(encryptionKey);
|
|
33
35
|
return this.tenantContainerFactory.create({
|
|
@@ -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,
|
|
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"}
|