@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.
Files changed (168) hide show
  1. package/dist/src/MasterContainer.d.ts +27 -25
  2. package/dist/src/MasterContainer.d.ts.map +1 -1
  3. package/dist/src/MasterContainer.js +54 -80
  4. package/dist/src/MasterContainer.js.map +1 -1
  5. package/dist/src/bootstrap/Initializer.d.ts +3 -3
  6. package/dist/src/bootstrap/Initializer.d.ts.map +1 -1
  7. package/dist/src/bootstrap/Initializer.js +15 -6
  8. package/dist/src/bootstrap/Initializer.js.map +1 -1
  9. package/dist/src/config/config.d.ts +5 -4
  10. package/dist/src/config/config.d.ts.map +1 -1
  11. package/dist/src/config/config.js +2 -2
  12. package/dist/src/config/config.js.map +1 -1
  13. package/dist/src/config/configSchema.d.ts +45 -11
  14. package/dist/src/config/configSchema.d.ts.map +1 -1
  15. package/dist/src/config/configSchema.js +20 -18
  16. package/dist/src/config/configSchema.js.map +1 -1
  17. package/dist/src/config/configTemplate.d.ts.map +1 -1
  18. package/dist/src/config/configTemplate.js +23 -0
  19. package/dist/src/config/configTemplate.js.map +1 -1
  20. package/dist/src/index.d.ts +9 -3
  21. package/dist/src/index.d.ts.map +1 -1
  22. package/dist/src/index.js +23 -4
  23. package/dist/src/index.js.map +1 -1
  24. package/dist/src/project/ProjectContainer.js +1 -1
  25. package/dist/src/project/ProjectContainer.js.map +1 -1
  26. package/dist/src/project/ProjectContainerResolver.d.ts +6 -3
  27. package/dist/src/project/ProjectContainerResolver.d.ts.map +1 -1
  28. package/dist/src/project/ProjectContainerResolver.js +4 -16
  29. package/dist/src/project/ProjectContainerResolver.js.map +1 -1
  30. package/dist/src/projectGroup/ProjectGroupContainer.d.ts +2 -1
  31. package/dist/src/projectGroup/ProjectGroupContainer.d.ts.map +1 -1
  32. package/dist/src/projectGroup/ProjectGroupContainer.js +8 -4
  33. package/dist/src/projectGroup/ProjectGroupContainer.js.map +1 -1
  34. package/dist/src/projectGroup/ProjectGroupResolver.d.ts +7 -0
  35. package/dist/src/projectGroup/ProjectGroupResolver.d.ts.map +1 -0
  36. package/dist/src/projectGroup/ProjectGroupResolver.js +13 -0
  37. package/dist/src/projectGroup/ProjectGroupResolver.js.map +1 -0
  38. package/dist/src/start.js +15 -112
  39. package/dist/src/start.js.map +1 -1
  40. package/dist/src/tsconfig.tsbuildinfo +1 -1
  41. package/dist/src/utils/index.d.ts +0 -4
  42. package/dist/src/utils/index.d.ts.map +1 -1
  43. package/dist/src/utils/index.js +0 -4
  44. package/dist/src/utils/index.js.map +1 -1
  45. package/dist/src/utils/sentry.d.ts +1 -1
  46. package/dist/src/utils/sentry.d.ts.map +1 -1
  47. package/dist/src/utils/sentry.js +1 -1
  48. package/dist/src/utils/sentry.js.map +1 -1
  49. package/dist/src/utils/serverStartup.d.ts +31 -0
  50. package/dist/src/utils/serverStartup.d.ts.map +1 -0
  51. package/dist/src/utils/serverStartup.js +42 -0
  52. package/dist/src/utils/serverStartup.js.map +1 -0
  53. package/dist/src/utils/serverTermination.d.ts +12 -0
  54. package/dist/src/utils/serverTermination.d.ts.map +1 -0
  55. package/dist/src/utils/serverTermination.js +26 -0
  56. package/dist/src/utils/serverTermination.js.map +1 -0
  57. package/dist/tests/e2e/acl-condition-variable.test.d.ts +2 -0
  58. package/dist/tests/e2e/acl-condition-variable.test.d.ts.map +1 -0
  59. package/dist/tests/e2e/acl-condition-variable.test.js +77 -0
  60. package/dist/tests/e2e/acl-condition-variable.test.js.map +1 -0
  61. package/dist/tests/e2e/assume-membership.test.d.ts +2 -0
  62. package/dist/tests/e2e/assume-membership.test.d.ts.map +1 -0
  63. package/dist/tests/e2e/assume-membership.test.js +58 -0
  64. package/dist/tests/e2e/assume-membership.test.js.map +1 -0
  65. package/dist/tests/e2e/content-api-basic.test.d.ts +2 -0
  66. package/dist/tests/e2e/content-api-basic.test.d.ts.map +1 -0
  67. package/dist/tests/e2e/content-api-basic.test.js +50 -0
  68. package/dist/tests/e2e/content-api-basic.test.js.map +1 -0
  69. package/dist/tests/e2e/content-invalid-schema.test.d.ts +2 -0
  70. package/dist/tests/e2e/content-invalid-schema.test.d.ts.map +1 -0
  71. package/dist/tests/e2e/content-invalid-schema.test.js +29 -0
  72. package/dist/tests/e2e/content-invalid-schema.test.js.map +1 -0
  73. package/dist/tests/e2e/homepage.test.d.ts +2 -0
  74. package/dist/tests/e2e/homepage.test.d.ts.map +1 -0
  75. package/dist/tests/e2e/homepage.test.js +15 -0
  76. package/dist/tests/e2e/homepage.test.js.map +1 -0
  77. package/dist/tests/e2e/tenant-member-access.test.d.ts +2 -0
  78. package/dist/tests/e2e/tenant-member-access.test.d.ts.map +1 -0
  79. package/dist/tests/e2e/tenant-member-access.test.js +43 -0
  80. package/dist/tests/e2e/tenant-member-access.test.js.map +1 -0
  81. package/dist/tests/e2e/x-contember-ref.test.d.ts +2 -0
  82. package/dist/tests/e2e/x-contember-ref.test.d.ts.map +1 -0
  83. package/dist/tests/e2e/x-contember-ref.test.js +63 -0
  84. package/dist/tests/e2e/x-contember-ref.test.js.map +1 -0
  85. package/dist/tests/src/requests.d.ts +5 -0
  86. package/dist/tests/src/requests.d.ts.map +1 -0
  87. package/dist/tests/src/requests.js +59 -0
  88. package/dist/tests/src/requests.js.map +1 -0
  89. package/dist/tests/src/tester.d.ts +19 -0
  90. package/dist/tests/src/tester.d.ts.map +1 -0
  91. package/dist/tests/src/tester.js +99 -0
  92. package/dist/tests/src/tester.js.map +1 -0
  93. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  94. package/esbuild.js +7 -14
  95. package/package.json +23 -23
  96. package/src/MasterContainer.ts +94 -110
  97. package/src/bootstrap/Initializer.ts +16 -6
  98. package/src/config/config.ts +7 -5
  99. package/src/config/configSchema.ts +30 -33
  100. package/src/config/configTemplate.ts +23 -0
  101. package/src/index.ts +15 -2
  102. package/src/project/ProjectContainer.ts +1 -1
  103. package/src/project/ProjectContainerResolver.ts +4 -17
  104. package/src/projectGroup/ProjectGroupContainer.ts +12 -3
  105. package/src/projectGroup/ProjectGroupResolver.ts +12 -0
  106. package/src/start.ts +18 -127
  107. package/src/utils/index.ts +0 -4
  108. package/src/utils/sentry.ts +1 -1
  109. package/src/utils/serverStartup.ts +42 -0
  110. package/src/utils/serverTermination.ts +20 -0
  111. package/tests/e2e/acl-condition-variable.test.ts +74 -0
  112. package/tests/e2e/assume-membership.test.ts +64 -0
  113. package/tests/e2e/content-api-basic.test.ts +51 -0
  114. package/tests/e2e/content-invalid-schema.test.ts +31 -0
  115. package/tests/e2e/homepage.test.ts +10 -0
  116. package/tests/e2e/tenant-member-access.test.ts +51 -0
  117. package/tests/e2e/x-contember-ref.test.ts +71 -0
  118. package/tests/src/requests.ts +72 -0
  119. package/tests/src/tester.ts +118 -0
  120. package/alpine.dockerfile +0 -30
  121. package/debian.dockerfile +0 -27
  122. package/dist/src/http/CollectHttpMetricsMiddelware.d.ts +0 -5
  123. package/dist/src/http/CollectHttpMetricsMiddelware.d.ts.map +0 -1
  124. package/dist/src/http/CollectHttpMetricsMiddelware.js +0 -36
  125. package/dist/src/http/CollectHttpMetricsMiddelware.js.map +0 -1
  126. package/dist/src/http/ShowMetricsMiddleware.d.ts +0 -4
  127. package/dist/src/http/ShowMetricsMiddleware.d.ts.map +0 -1
  128. package/dist/src/http/ShowMetricsMiddleware.js +0 -20
  129. package/dist/src/http/ShowMetricsMiddleware.js.map +0 -1
  130. package/dist/src/http/index.d.ts +0 -3
  131. package/dist/src/http/index.d.ts.map +0 -1
  132. package/dist/src/http/index.js +0 -19
  133. package/dist/src/http/index.js.map +0 -1
  134. package/dist/src/projectGroup/ProjectGroupContainerResolver.d.ts +0 -12
  135. package/dist/src/projectGroup/ProjectGroupContainerResolver.d.ts.map +0 -1
  136. package/dist/src/projectGroup/ProjectGroupContainerResolver.js +0 -36
  137. package/dist/src/projectGroup/ProjectGroupContainerResolver.js.map +0 -1
  138. package/dist/src/utils/cluster.d.ts +0 -9
  139. package/dist/src/utils/cluster.d.ts.map +0 -1
  140. package/dist/src/utils/cluster.js +0 -47
  141. package/dist/src/utils/cluster.js.map +0 -1
  142. package/dist/src/utils/dbMetrics.d.ts +0 -16
  143. package/dist/src/utils/dbMetrics.d.ts.map +0 -1
  144. package/dist/src/utils/dbMetrics.js +0 -98
  145. package/dist/src/utils/dbMetrics.js.map +0 -1
  146. package/dist/src/utils/timeout.d.ts +0 -2
  147. package/dist/src/utils/timeout.d.ts.map +0 -1
  148. package/dist/src/utils/timeout.js +0 -8
  149. package/dist/src/utils/timeout.js.map +0 -1
  150. package/dist/src/utils/tuple.d.ts +0 -2
  151. package/dist/src/utils/tuple.d.ts.map +0 -1
  152. package/dist/src/utils/tuple.js +0 -6
  153. package/dist/src/utils/tuple.js.map +0 -1
  154. package/dist/tests/e2e/http.test.d.ts +0 -2
  155. package/dist/tests/e2e/http.test.d.ts.map +0 -1
  156. package/dist/tests/e2e/http.test.js +0 -275
  157. package/dist/tests/e2e/http.test.js.map +0 -1
  158. package/jasmine.json +0 -7
  159. package/src/http/CollectHttpMetricsMiddelware.ts +0 -32
  160. package/src/http/ShowMetricsMiddleware.ts +0 -12
  161. package/src/http/index.ts +0 -2
  162. package/src/projectGroup/ProjectGroupContainerResolver.ts +0 -47
  163. package/src/utils/cluster.ts +0 -40
  164. package/src/utils/dbMetrics.ts +0 -111
  165. package/src/utils/timeout.ts +0 -4
  166. package/src/utils/tuple.ts +0 -1
  167. package/tests/e2e/http.test.ts +0 -303
  168. package/tslint.json +0 -14
@@ -23,10 +23,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.projectConfigSchema = exports.stageConfig = exports.serverConfigSchema = exports.tenantConfigSchema = exports.dbCredentialsSchema = void 0;
26
+ exports.projectConfigSchema = exports.stageConfig = exports.serverConfigSchema = exports.tenantConfigSchema = exports.dbConfigSchema = void 0;
27
27
  const Typesafe = __importStar(require("@contember/typesafe"));
28
28
  const utils_1 = require("../utils");
29
- exports.dbCredentialsSchema = Typesafe.intersection(Typesafe.object({
29
+ exports.dbConfigSchema = Typesafe.intersection(Typesafe.object({
30
30
  host: Typesafe.string,
31
31
  port: Typesafe.number,
32
32
  user: Typesafe.string,
@@ -34,9 +34,22 @@ exports.dbCredentialsSchema = Typesafe.intersection(Typesafe.object({
34
34
  database: Typesafe.string,
35
35
  }), Typesafe.partial({
36
36
  ssl: Typesafe.boolean,
37
+ queryTimeoutMs: Typesafe.number,
38
+ statementTimeoutMs: Typesafe.number,
39
+ connectionTimeoutMs: Typesafe.number,
40
+ pool: Typesafe.partial({
41
+ maxConnections: Typesafe.number,
42
+ maxConnecting: Typesafe.number,
43
+ maxIdle: Typesafe.number,
44
+ reconnectIntervalMs: Typesafe.number,
45
+ idleTimeoutMs: Typesafe.number,
46
+ acquireTimeoutMs: Typesafe.number,
47
+ maxUses: Typesafe.number,
48
+ maxAgeMs: Typesafe.number,
49
+ }),
37
50
  }));
38
51
  exports.tenantConfigSchema = Typesafe.intersection(Typesafe.object({
39
- db: exports.dbCredentialsSchema,
52
+ db: exports.dbConfigSchema,
40
53
  mailer: Typesafe.transform(Typesafe.partial({
41
54
  from: Typesafe.string,
42
55
  host: Typesafe.string,
@@ -62,28 +75,17 @@ exports.tenantConfigSchema = Typesafe.intersection(Typesafe.object({
62
75
  encryptionKey: Typesafe.string,
63
76
  }),
64
77
  }));
65
- exports.serverConfigSchema = Typesafe.intersection(Typesafe.object({
78
+ exports.serverConfigSchema = Typesafe.object({
66
79
  port: Typesafe.number,
67
- monitoringPort: Typesafe.number,
68
80
  http: Typesafe.partial({
69
81
  requestBodySize: Typesafe.string,
70
82
  }),
71
- logging: Typesafe.union(val => Typesafe.valueAt(val, ['sentry', 'dsn']) === undefined ? {} : Typesafe.fail([]), Typesafe.partial({
83
+ logging: Typesafe.union((val) => Typesafe.valueAt(val, ['sentry', 'dsn']) === undefined ? {} : Typesafe.fail([]), Typesafe.partial({
72
84
  sentry: Typesafe.object({
73
85
  dsn: Typesafe.string,
74
86
  }),
75
87
  })),
76
- }), Typesafe.partial({
77
- workerCount: Typesafe.union(Typesafe.number, Typesafe.string),
78
- projectGroup: (val, path = []) => Typesafe.valueAt(val, ['domainMapping']) === undefined
79
- ? undefined
80
- : Typesafe.intersection(Typesafe.object({
81
- domainMapping: Typesafe.string,
82
- }), Typesafe.partial({
83
- configHeader: Typesafe.string,
84
- configEncryptionKey: Typesafe.string,
85
- }))(val, path),
86
- }));
88
+ });
87
89
  exports.stageConfig = Typesafe.record(Typesafe.string, Typesafe.intersection(Typesafe.object({
88
90
  name: Typesafe.union(Typesafe.string, (_, path = []) => (0, utils_1.upperCaseFirst)(String(path[path.length - 2]))),
89
91
  slug: (_, path = []) => String(path[path.length - 2]),
@@ -96,7 +98,7 @@ exports.projectConfigSchema = Typesafe.object({
96
98
  stages: (input, path = []) => Object.values((0, exports.stageConfig)(input, path)),
97
99
  db: Typesafe.intersection(Typesafe.union(Typesafe.object({
98
100
  useTenantDb: Typesafe.literal(true),
99
- }), exports.dbCredentialsSchema), Typesafe.partial({
101
+ }), exports.dbConfigSchema), Typesafe.partial({
100
102
  systemSchema: Typesafe.string,
101
103
  })),
102
104
  });
@@ -1 +1 @@
1
- {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../../src/config/configSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../../src/config/configSchema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"configTemplate.d.ts","sourceRoot":"","sources":["../../../src/config/configTemplate.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,EAAE,GAyD5B,CAAA"}
1
+ {"version":3,"file":"configTemplate.d.ts","sourceRoot":"","sources":["../../../src/config/configTemplate.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,EAAE,GAgF5B,CAAA"}
@@ -10,6 +10,19 @@ exports.configTemplate = {
10
10
  password: `%tenant.env.DB_PASSWORD%`,
11
11
  database: `%tenant.env.DB_NAME%`,
12
12
  ssl: `%?tenant.env.DB_SSL::bool%`,
13
+ queryTimeoutMs: '%?tenant.env.DB_QUERY_TIMEOUT_MS::number%',
14
+ statementTimeoutMs: '%?tenant.env.DB_STATEMENT_TIMEOUT_MS::number%',
15
+ connectionTimeoutMs: '%?tenant.env.DB_CONNECTION_TIMEOUT_MS::number%',
16
+ pool: {
17
+ maxConnections: '%?tenant.env.DB_POOL_MAX_CONNECTIONS::number%',
18
+ maxConnecting: '%?tenant.env.DB_POOL_MAX_CONNECTING::number%',
19
+ maxIdle: '%?tenant.env.DB_POOL_MAX_IDLE::number%',
20
+ reconnectIntervalMs: '%?tenant.env.DB_POOL_RECONNECT_INTERVAL_MS::number%',
21
+ idleTimeoutMs: '%?tenant.env.DB_POOL_IDLE_TIMEOUT_MS::number%',
22
+ acquireTimeoutMs: '%?tenant.env.DB_POOL_ACQUIRE_TIMEOUT_MS::number%',
23
+ maxUses: '%?tenant.env.DB_POOL_MAX_USES::number%',
24
+ maxAgeMs: '%?tenant.env.DB_POOL_MAX_AGE_MS::number%',
25
+ },
13
26
  },
14
27
  mailer: {
15
28
  from: '%?tenant.env.MAILER_FROM%',
@@ -38,6 +51,16 @@ exports.configTemplate = {
38
51
  password: `%?project.secret.db.password||project.env.DB_PASSWORD%`,
39
52
  database: `%?project.env.DB_NAME||project.slug%`,
40
53
  ssl: `%?project.env.DB_SSL::bool%`,
54
+ pool: {
55
+ maxConnections: '%?project.env.DB_POOL_MAX_CONNECTIONS%',
56
+ maxConnecting: '%?project.env.DB_POOL_MAX_CONNECTING%',
57
+ maxIdle: '%?project.env.DB_POOL_MAX_IDLE%',
58
+ reconnectIntervalMs: '%?project.env.DB_POOL_RECONNECT_INTERVAL_MS%',
59
+ idleTimeoutMs: '%?project.env.DB_POOL_IDLE_TIMEOUT_MS%',
60
+ acquireTimeoutMs: '%?project.env.DB_POOL_ACQUIRE_TIMEOUT_MS%',
61
+ maxUses: '%?project.env.DB_POOL_MAX_USES%',
62
+ maxAgeMs: '%?project.env.DB_POOL_MAX_AGE_MS%',
63
+ },
41
64
  },
42
65
  },
43
66
  server: {
@@ -1 +1 @@
1
- {"version":3,"file":"configTemplate.js","sourceRoot":"","sources":["../../../src/config/configTemplate.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAQ;IAClC,MAAM,EAAE;QACP,EAAE,EAAE;YACH,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,8BAA8B;YACpC,IAAI,EAAE,sBAAsB;YAC5B,QAAQ,EAAE,0BAA0B;YACpC,QAAQ,EAAE,sBAAsB;YAChC,GAAG,EAAE,4BAA4B;SACjC;QACD,MAAM,EAAE;YACP,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,mCAAmC;YACzC,IAAI,EAAE,mCAAmC;YACzC,MAAM,EAAE,mCAAmC;YAC3C,IAAI,EAAE,2BAA2B;YACjC,QAAQ,EAAE,+BAA+B;SACzC;QACD,WAAW,EAAE;YACZ,SAAS,EAAE,6BAA6B;YACxC,SAAS,EAAE,6BAA6B;YACxC,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,gCAAgC;YAC9C,UAAU,EAAE,8BAA8B;SAC1C;QACD,OAAO,EAAE;YACR,aAAa,EAAE,iCAAiC;SAChD;KACD;IACD,eAAe,EAAE;QAChB,EAAE,EAAE;YACH,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,gCAAgC;YACtC,IAAI,EAAE,wBAAwB;YAC9B,QAAQ,EAAE,wDAAwD;YAClE,QAAQ,EAAE,sCAAsC;YAChD,GAAG,EAAE,6BAA6B;SAClC;KACD;IACD,MAAM,EAAE;QACP,IAAI,EAAE,8BAA8B;QACpC,cAAc,EAAE,yCAAyC;QACzD,WAAW,EAAE,uCAAuC;QACpD,IAAI,EAAE;YACL,eAAe,EAAE,iDAAiD;SAClE;QACD,YAAY,EAAE;YACb,aAAa,EAAE,+CAA+C;YAC9D,YAAY,EAAE,8CAA8C;YAC5D,mBAAmB,EAAE,sDAAsD;SAC3E;QACD,OAAO,EAAE;YACR,MAAM,EAAE;gBACP,GAAG,EAAE,mBAAmB;aACxB;SACD;KACD;CACD,CAAA"}
1
+ {"version":3,"file":"configTemplate.js","sourceRoot":"","sources":["../../../src/config/configTemplate.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAQ;IAClC,MAAM,EAAE;QACP,EAAE,EAAE;YACH,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,8BAA8B;YACpC,IAAI,EAAE,sBAAsB;YAC5B,QAAQ,EAAE,0BAA0B;YACpC,QAAQ,EAAE,sBAAsB;YAChC,GAAG,EAAE,4BAA4B;YACjC,cAAc,EAAE,2CAA2C;YAC3D,kBAAkB,EAAE,+CAA+C;YACnE,mBAAmB,EAAE,gDAAgD;YACrE,IAAI,EAAE;gBACL,cAAc,EAAE,+CAA+C;gBAC/D,aAAa,EAAE,8CAA8C;gBAC7D,OAAO,EAAE,wCAAwC;gBACjD,mBAAmB,EAAE,qDAAqD;gBAC1E,aAAa,EAAE,+CAA+C;gBAC9D,gBAAgB,EAAE,kDAAkD;gBACpE,OAAO,EAAE,wCAAwC;gBACjD,QAAQ,EAAE,0CAA0C;aACpD;SACD;QACD,MAAM,EAAE;YACP,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,mCAAmC;YACzC,IAAI,EAAE,mCAAmC;YACzC,MAAM,EAAE,mCAAmC;YAC3C,IAAI,EAAE,2BAA2B;YACjC,QAAQ,EAAE,+BAA+B;SACzC;QACD,WAAW,EAAE;YACZ,SAAS,EAAE,6BAA6B;YACxC,SAAS,EAAE,6BAA6B;YACxC,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,gCAAgC;YAC9C,UAAU,EAAE,8BAA8B;SAC1C;QACD,OAAO,EAAE;YACR,aAAa,EAAE,iCAAiC;SAChD;KACD;IACD,eAAe,EAAE;QAChB,EAAE,EAAE;YACH,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,gCAAgC;YACtC,IAAI,EAAE,wBAAwB;YAC9B,QAAQ,EAAE,wDAAwD;YAClE,QAAQ,EAAE,sCAAsC;YAChD,GAAG,EAAE,6BAA6B;YAClC,IAAI,EAAE;gBACL,cAAc,EAAE,wCAAwC;gBACxD,aAAa,EAAE,uCAAuC;gBACtD,OAAO,EAAE,iCAAiC;gBAC1C,mBAAmB,EAAE,8CAA8C;gBACnE,aAAa,EAAE,wCAAwC;gBACvD,gBAAgB,EAAE,2CAA2C;gBAC7D,OAAO,EAAE,iCAAiC;gBAC1C,QAAQ,EAAE,mCAAmC;aAC7C;SACD;KACD;IACD,MAAM,EAAE;QACP,IAAI,EAAE,8BAA8B;QACpC,cAAc,EAAE,yCAAyC;QACzD,WAAW,EAAE,uCAAuC;QACpD,IAAI,EAAE;YACL,eAAe,EAAE,iDAAiD;SAClE;QACD,YAAY,EAAE;YACb,aAAa,EAAE,+CAA+C;YAC9D,YAAY,EAAE,8CAA8C;YAC5D,mBAAmB,EAAE,sDAAsD;SAC3E;QACD,OAAO,EAAE;YACR,MAAM,EAAE;gBACP,GAAG,EAAE,mBAAmB;aACxB;SACD;KACD;CACD,CAAA"}
@@ -1,7 +1,13 @@
1
- import { MasterContainerFactory, MasterContainerArgs } from './MasterContainer';
1
+ import { MasterContainerArgs } from './MasterContainer';
2
2
  import { ProjectConfig } from '@contember/engine-http';
3
3
  import { readConfig } from './config/config';
4
- import { ProcessType } from './utils';
5
- export { MasterContainerFactory, ProjectConfig, readConfig, ProcessType };
4
+ import { serverConfigSchema } from './config/configSchema';
5
+ import { TenantConfigResolver } from './config/tenantConfigResolver';
6
+ import { ProjectGroupContainerFactory } from './projectGroup/ProjectGroupContainer';
7
+ export * from './utils/serverStartup';
8
+ export * from './utils/serverTermination';
9
+ export * from './utils/sentry';
10
+ export * from './MasterContainer';
11
+ export { ProjectConfig, readConfig, serverConfigSchema, TenantConfigResolver, ProjectGroupContainerFactory, };
6
12
  export declare const createContainer: (args: MasterContainerArgs) => import("./MasterContainer").MasterContainer;
7
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,CAAA;AAEzE,eAAO,MAAM,eAAe,SAAU,mBAAmB,gDAExD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAA;AAEnF,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AAEjC,OAAO,EACN,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,4BAA4B,GAC5B,CAAA;AAED,eAAO,MAAM,eAAe,SAAU,mBAAmB,gDAExD,CAAA"}
package/dist/src/index.js CHANGED
@@ -1,12 +1,31 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createContainer = exports.ProcessType = exports.readConfig = exports.MasterContainerFactory = void 0;
17
+ exports.createContainer = exports.ProjectGroupContainerFactory = exports.serverConfigSchema = exports.readConfig = void 0;
4
18
  const MasterContainer_1 = require("./MasterContainer");
5
- Object.defineProperty(exports, "MasterContainerFactory", { enumerable: true, get: function () { return MasterContainer_1.MasterContainerFactory; } });
6
19
  const config_1 = require("./config/config");
7
20
  Object.defineProperty(exports, "readConfig", { enumerable: true, get: function () { return config_1.readConfig; } });
8
- const utils_1 = require("./utils");
9
- Object.defineProperty(exports, "ProcessType", { enumerable: true, get: function () { return utils_1.ProcessType; } });
21
+ const configSchema_1 = require("./config/configSchema");
22
+ Object.defineProperty(exports, "serverConfigSchema", { enumerable: true, get: function () { return configSchema_1.serverConfigSchema; } });
23
+ const ProjectGroupContainer_1 = require("./projectGroup/ProjectGroupContainer");
24
+ Object.defineProperty(exports, "ProjectGroupContainerFactory", { enumerable: true, get: function () { return ProjectGroupContainer_1.ProjectGroupContainerFactory; } });
25
+ __exportStar(require("./utils/serverStartup"), exports);
26
+ __exportStar(require("./utils/serverTermination"), exports);
27
+ __exportStar(require("./utils/sentry"), exports);
28
+ __exportStar(require("./MasterContainer"), exports);
10
29
  const createContainer = (args) => {
11
30
  return new MasterContainer_1.MasterContainerFactory().create(args);
12
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,uDAA+E;AAKtE,uGALA,wCAAsB,OAKA;AAH/B,4CAA4C;AAGI,2FAHvC,mBAAU,OAGuC;AAF1D,mCAAqC;AAEuB,4FAFnD,mBAAW,OAEmD;AAEhE,MAAM,eAAe,GAAG,CAAC,IAAyB,EAAE,EAAE;IAC5D,OAAO,IAAI,wCAAsB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AACjD,CAAC,CAAA;AAFY,QAAA,eAAe,mBAE3B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uDAA+E;AAE/E,4CAA4C;AAY3C,2FAZQ,mBAAU,OAYR;AAXX,wDAA0D;AAYzD,mGAZQ,iCAAkB,OAYR;AAVnB,gFAAmF;AAYlF,6GAZQ,oDAA4B,OAYR;AAV7B,wDAAqC;AACrC,4DAAyC;AACzC,iDAA8B;AAC9B,oDAAiC;AAU1B,MAAM,eAAe,GAAG,CAAC,IAAyB,EAAE,EAAE;IAC5D,OAAO,IAAI,wCAAsB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AACjD,CAAC,CAAA;AAFY,QAAA,eAAe,mBAE3B"}
@@ -34,7 +34,7 @@ class ProjectContainerFactory {
34
34
  .addService('providers', () => this.providers)
35
35
  .addService('schemaVersionBuilder', () => this.schemaVersionBuilder)
36
36
  .addService('project', () => project)
37
- .addService('connection', ({ project }) => new database_1.Connection(project.db, { timing: true }))
37
+ .addService('connection', ({ project }) => database_1.Connection.create(project.db, { timing: true }))
38
38
  .addService('graphQlSchemaBuilderFactory', () => new engine_content_api_1.GraphQlSchemaBuilderFactory())
39
39
  .addService('permissionsByIdentityFactory', ({}) => new engine_content_api_1.PermissionsByIdentityFactory())
40
40
  .addService('graphQlSchemaFactory', ({ project, permissionsByIdentityFactory, graphQlSchemaBuilderFactory, providers }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectContainer.js","sourceRoot":"","sources":["../../../src/project/ProjectContainer.ts"],"names":[],"mappings":";;;AAAA,wCAAwC;AACxC,kDAAgD;AAChD,oEAA2F;AAC3F,sEAAyG;AAEzG,wDAM+B;AAE/B,MAAa,8BAA8B;IAC1C,YACkB,KAAc,EACd,OAAiB,EACjB,SAAoB;QAFpB,UAAK,GAAL,KAAK,CAAS;QACd,YAAO,GAAP,OAAO,CAAU;QACjB,cAAS,GAAT,SAAS,CAAW;IAEtC,CAAC;IAED,MAAM,CAAC,oBAA0C;QAChD,OAAO,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IACnG,CAAC;CACD;AAXD,wEAWC;AAMD,MAAa,uBAAuB;IACnC,YACkB,KAAc,EACd,OAAiB,EACjB,oBAA0C,EAC1C,SAAoB;QAHpB,UAAK,GAAL,KAAK,CAAS;QACd,YAAO,GAAP,OAAO,CAAU;QACjB,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,cAAS,GAAT,SAAS,CAAW;IACnC,CAAC;IAEG,eAAe,CAAC,IAAiC;QACvD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;aAC7B,KAAK,EAAE;aACP,IAAI,CACJ,SAAS,EACT,YAAY,EACZ,8BAA8B,EAC9B,uBAAuB,EACvB,sBAAsB,CACtB,CAAA;IACH,CAAC;IAES,aAAa,CAAC,EAAE,OAAO,EAA+B;QAC/D,OAAO,IAAI,aAAO,CAAC,EAAE,CAAC;aACpB,UAAU,CAAC,WAAW,EAAE,GAAG,EAAE,CAC7B,IAAI,CAAC,SAAS,CAAC;aACf,UAAU,CAAC,sBAAsB,EAAE,GAAG,EAAE,CACxC,IAAI,CAAC,oBAAoB,CAAC;aAC1B,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,CAC3B,OAAO,CAAC;aACR,UAAU,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACzC,IAAI,qBAAU,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aAC7C,UAAU,CAAC,6BAA6B,EAAE,GAAG,EAAE,CAC/C,IAAI,gDAA2B,EAAE,CAAC;aAClC,UAAU,CAAC,8BAA8B,EAAE,CAAC,EAAE,EAAE,EAAE,CAClD,IAAI,iDAA4B,EAAE,CAAC;aACnC,UAAU,CAAC,sBAAsB,EAAE,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,SAAS,EAAE,EAAE,EAAE;YACzH,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO;iBAC/B,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBAC7F,MAAM,CAAC,CAAC,EAAE,EAAkC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YACtD,OAAO,IAAI,kCAAoB,CAAC,2BAA2B,EAAE,4BAA4B,EAAE,YAAY,CAAC,CAAA;QACzG,CAAC,CAAC;aACD,UAAU,CAAC,uBAAuB,EAAE,CAAC,EAAE,oBAAoB,EAAE,EAAE,EAAE,CACjE,IAAI,mCAAqB,CAAC,oBAAoB,CAAC,CAAC;aAChD,UAAU,CAAC,8BAA8B,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,WAClF,OAAA,IAAI,0CAAsB,CAAC,UAAU,CAAC,YAAY,CAAC,MAAA,OAAO,CAAC,EAAE,CAAC,YAAY,mCAAI,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA,EAAA,CAAC,CAAA;IAC7H,CAAC;CACD;AA7CD,0DA6CC"}
1
+ {"version":3,"file":"ProjectContainer.js","sourceRoot":"","sources":["../../../src/project/ProjectContainer.ts"],"names":[],"mappings":";;;AAAA,wCAAwC;AACxC,kDAAgD;AAChD,oEAA2F;AAC3F,sEAAyG;AAEzG,wDAM+B;AAE/B,MAAa,8BAA8B;IAC1C,YACkB,KAAc,EACd,OAAiB,EACjB,SAAoB;QAFpB,UAAK,GAAL,KAAK,CAAS;QACd,YAAO,GAAP,OAAO,CAAU;QACjB,cAAS,GAAT,SAAS,CAAW;IAEtC,CAAC;IAED,MAAM,CAAC,oBAA0C;QAChD,OAAO,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IACnG,CAAC;CACD;AAXD,wEAWC;AAMD,MAAa,uBAAuB;IACnC,YACkB,KAAc,EACd,OAAiB,EACjB,oBAA0C,EAC1C,SAAoB;QAHpB,UAAK,GAAL,KAAK,CAAS;QACd,YAAO,GAAP,OAAO,CAAU;QACjB,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,cAAS,GAAT,SAAS,CAAW;IACnC,CAAC;IAEG,eAAe,CAAC,IAAiC;QACvD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;aAC7B,KAAK,EAAE;aACP,IAAI,CACJ,SAAS,EACT,YAAY,EACZ,8BAA8B,EAC9B,uBAAuB,EACvB,sBAAsB,CACtB,CAAA;IACH,CAAC;IAES,aAAa,CAAC,EAAE,OAAO,EAA+B;QAC/D,OAAO,IAAI,aAAO,CAAC,EAAE,CAAC;aACpB,UAAU,CAAC,WAAW,EAAE,GAAG,EAAE,CAC7B,IAAI,CAAC,SAAS,CAAC;aACf,UAAU,CAAC,sBAAsB,EAAE,GAAG,EAAE,CACxC,IAAI,CAAC,oBAAoB,CAAC;aAC1B,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,CAC3B,OAAO,CAAC;aACR,UAAU,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACzC,qBAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aAChD,UAAU,CAAC,6BAA6B,EAAE,GAAG,EAAE,CAC/C,IAAI,gDAA2B,EAAE,CAAC;aAClC,UAAU,CAAC,8BAA8B,EAAE,CAAC,EAAE,EAAE,EAAE,CAClD,IAAI,iDAA4B,EAAE,CAAC;aACnC,UAAU,CAAC,sBAAsB,EAAE,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,SAAS,EAAE,EAAE,EAAE;YACzH,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO;iBAC/B,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBAC7F,MAAM,CAAC,CAAC,EAAE,EAAkC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YACtD,OAAO,IAAI,kCAAoB,CAAC,2BAA2B,EAAE,4BAA4B,EAAE,YAAY,CAAC,CAAA;QACzG,CAAC,CAAC;aACD,UAAU,CAAC,uBAAuB,EAAE,CAAC,EAAE,oBAAoB,EAAE,EAAE,EAAE,CACjE,IAAI,mCAAqB,CAAC,oBAAoB,CAAC,CAAC;aAChD,UAAU,CAAC,8BAA8B,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,WAClF,OAAA,IAAI,0CAAsB,CAAC,UAAU,CAAC,YAAY,CAAC,MAAA,OAAO,CAAC,EAAE,CAAC,YAAY,mCAAI,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA,EAAA,CAAC,CAAA;IAC7H,CAAC;CACD;AA7CD,0DA6CC"}
@@ -2,6 +2,7 @@ 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';
5
6
  import { ProjectConfigResolver } from '../config/projectConfigResolver';
6
7
  import { TenantConfig } from '../config/config';
7
8
  export declare class ProjectContainerResolver {
@@ -14,9 +15,11 @@ export declare class ProjectContainerResolver {
14
15
  private projectContainers;
15
16
  readonly onCreate: ((container: ProjectContainer) => void | (() => void))[];
16
17
  constructor(projectContainerFactory: ProjectContainerFactory, projectConfigResolver: ProjectConfigResolver, projectManager: ProjectManager, systemProjectInitializer: SystemProjectInitializer, tenantDatabase: DatabaseContext, tenantConfig: TenantConfig);
17
- getAllProjectContainers(): Promise<ProjectContainer[]>;
18
- getProjectContainer(slug: string, alias?: boolean): Promise<ProjectContainer | undefined>;
19
- createProjectContainer(project: ProjectWithSecrets): Promise<ProjectContainer>;
18
+ getProjectContainer(slug: string, { alias, logger }?: {
19
+ alias?: boolean;
20
+ logger?: Logger;
21
+ }): Promise<ProjectContainer | undefined>;
22
+ createProjectContainer(project: ProjectWithSecrets, logger?: Logger): Promise<ProjectContainer>;
20
23
  destroyContainer(slug: string): Promise<void>;
21
24
  }
22
25
  //# sourceMappingURL=ProjectContainerResolver.d.ts.map
@@ -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;AAG7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C,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;IAG/B,uBAAuB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAatD,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IA4BhG,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqB9E,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAc1D"}
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,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C,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,MAAM,EAAE,GAAE;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IA4B5I,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"}
@@ -14,17 +14,7 @@ class ProjectContainerResolver {
14
14
  this.projectContainers = new ProjectContainerStore_1.ProjectContainerStore();
15
15
  this.onCreate = [];
16
16
  }
17
- async getAllProjectContainers() {
18
- const projects = await this.projectManager.getProjects(this.tenantDatabase);
19
- return await Promise.all(projects.map(async (it) => {
20
- const container = await this.getProjectContainer(it.slug);
21
- if (!container) {
22
- throw new Error('should not happen');
23
- }
24
- return container;
25
- }));
26
- }
27
- async getProjectContainer(slug, alias = false) {
17
+ async getProjectContainer(slug, { alias = false, logger } = {}) {
28
18
  const realSlug = this.projectContainers.resolveAlias(slug);
29
19
  if (realSlug) {
30
20
  slug = realSlug;
@@ -45,21 +35,19 @@ class ProjectContainerResolver {
45
35
  if (!project) {
46
36
  return undefined;
47
37
  }
48
- const container = await this.createProjectContainer(project);
38
+ const container = await this.createProjectContainer(project, logger);
49
39
  if (slug !== project.slug) {
50
40
  this.projectContainers.setAlias(project.slug, slug);
51
41
  }
52
42
  return container;
53
43
  }
54
- async createProjectContainer(project) {
44
+ async createProjectContainer(project, logger) {
55
45
  const projectConfig = this.projectConfigResolver(project.slug, project.config, project.secrets, this.tenantConfig);
56
46
  return (await this.projectContainers.fetchContainer(project.slug, async (slug) => {
57
47
  const projectContainer = this.projectContainerFactory.createContainer({
58
48
  project: projectConfig,
59
49
  });
60
- await this.systemProjectInitializer.initialize(projectContainer.systemDatabaseContextFactory, projectContainer.project,
61
- // eslint-disable-next-line no-console
62
- new engine_common_1.Logger(console.log));
50
+ await this.systemProjectInitializer.initialize(projectContainer.systemDatabaseContextFactory, projectContainer.project, logger !== null && logger !== void 0 ? logger : new engine_common_1.Logger(() => null));
63
51
  const cleanups = this.onCreate.map(it => it(projectContainer) || (() => null));
64
52
  return {
65
53
  container: projectContainer,
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectContainerResolver.js","sourceRoot":"","sources":["../../../src/project/ProjectContainerResolver.ts"],"names":[],"mappings":";;;AAIA,mEAA+D;AAC/D,4DAAiD;AAIjD,MAAa,wBAAwB;IAKpC,YACkB,uBAAgD,EAChD,qBAA4C,EAC5C,cAA8B,EAC9B,wBAAkD,EAClD,cAA+B,EAC/B,YAA0B;QAL1B,4BAAuB,GAAvB,uBAAuB,CAAyB;QAChD,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,mBAAc,GAAd,cAAc,CAAgB;QAC9B,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,mBAAc,GAAd,cAAc,CAAiB;QAC/B,iBAAY,GAAZ,YAAY,CAAc;QAVpC,sBAAiB,GAAG,IAAI,6CAAqB,EAAE,CAAA;QAEvC,aAAQ,GAA6D,EAAE,CAAA;IASpF,CAAC;IAEG,KAAK,CAAC,uBAAuB;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3E,OAAO,MAAM,OAAO,CAAC,GAAG,CACvB,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;YACvB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YACzD,IAAI,CAAC,SAAS,EAAE;gBACf,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;aACpC;YACD,OAAO,SAAS,CAAA;QACjB,CAAC,CAAC,CACF,CAAA;IACF,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,IAAY,EAAE,QAAiB,KAAK;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAC1D,IAAI,QAAQ,EAAE;YACb,IAAI,GAAG,QAAQ,CAAA;SACf;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAC1D,IAAI,QAAQ,EAAE;YACb,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAA;YACtC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;YAC7G,IAAI,KAAK,KAAK,OAAO,EAAE;gBACtB,OAAO,CAAC,MAAM,eAAe,CAAC,CAAC,SAAS,CAAA;aACxC;YACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;YACjC,IAAI,KAAK,KAAK,WAAW,EAAE;gBAC1B,OAAO,SAAS,CAAA;aAChB;SACD;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,2BAA2B,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;QACvG,IAAI,CAAC,OAAO,EAAE;YACb,OAAO,SAAS,CAAA;SAChB;QACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAA;QAC5D,IAAI,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;SACnD;QACD,OAAO,SAAS,CAAA;IACjB,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,OAA2B;QAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;QAClH,OAAO,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;YAC9E,MAAM,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC;gBACrE,OAAO,EAAE,aAAa;aACtB,CAAC,CAAA;YACF,MAAM,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAC7C,gBAAgB,CAAC,4BAA4B,EAC7C,gBAAgB,CAAC,OAAO;YACxB,sCAAsC;YACtC,IAAI,sBAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CACvB,CAAA;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAC9E,OAAO;gBACN,SAAS,EAAE,gBAAgB;gBAC3B,QAAQ;gBACR,SAAS,EAAE,OAAO,CAAC,SAAS;aAC5B,CAAA;QACF,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACd,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,IAAY;;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAC1D,IAAI,QAAQ,EAAE;YACb,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAA;YACtC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;YAC5C,MAAA,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,0CAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;YAC9F,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;SAC5C;QACD,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;YACrB,IAAI,MAAM,CAAC,EAAE,EAAE;gBACd,MAAM,CAAC,EAAE,EAAE,CAAA;aACX;QACF,CAAC,CAAC,CAAA;IACH,CAAC;CACD;AA1FD,4DA0FC"}
1
+ {"version":3,"file":"ProjectContainerResolver.js","sourceRoot":"","sources":["../../../src/project/ProjectContainerResolver.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ interface ProjectGroupContainerFactoryArgs {
9
9
  slug: string | undefined;
10
10
  }
11
11
  export declare class ProjectGroupContainerFactory {
12
+ private readonly debug;
12
13
  private readonly providers;
13
14
  private readonly systemContainerFactory;
14
15
  private readonly tenantContainerFactory;
@@ -16,7 +17,7 @@ export declare class ProjectGroupContainerFactory {
16
17
  private readonly projectConfigResolver;
17
18
  private readonly tenantGraphQLHandlerFactory;
18
19
  private readonly systemGraphQLHandlerFactory;
19
- constructor(providers: Providers, systemContainerFactory: SystemContainerFactory, tenantContainerFactory: TenantContainerFactory, projectContainerFactoryFactory: ProjectContainerFactoryFactory, projectConfigResolver: ProjectConfigResolver, tenantGraphQLHandlerFactory: TenantGraphQLHandlerFactory, systemGraphQLHandlerFactory: SystemGraphQLHandlerFactory);
20
+ constructor(debug: boolean, providers: Providers, systemContainerFactory: SystemContainerFactory, tenantContainerFactory: TenantContainerFactory, projectContainerFactoryFactory: ProjectContainerFactoryFactory, projectConfigResolver: ProjectConfigResolver, tenantGraphQLHandlerFactory: TenantGraphQLHandlerFactory, systemGraphQLHandlerFactory: SystemGraphQLHandlerFactory);
20
21
  create({ config, slug }: ProjectGroupContainerFactoryArgs): ProjectGroupContainer;
21
22
  }
22
23
  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,EACrB,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;AAGvE,UAAU,gCAAgC;IAEzC,MAAM,EAAE,YAAY,CAAA;IACpB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CACxB;AAED,qBAAa,4BAA4B;IAEvC,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;gBAN3B,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;IAGnE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,gCAAgC,GAAG,qBAAqB;CA8ExF"}
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;AAGvE,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;gBAP3B,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;IAGnE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,gCAAgC,GAAG,qBAAqB;CAoFxF"}
@@ -7,7 +7,8 @@ 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(providers, systemContainerFactory, tenantContainerFactory, projectContainerFactoryFactory, projectConfigResolver, tenantGraphQLHandlerFactory, systemGraphQLHandlerFactory) {
10
+ constructor(debug, providers, systemContainerFactory, tenantContainerFactory, projectContainerFactoryFactory, projectConfigResolver, tenantGraphQLHandlerFactory, systemGraphQLHandlerFactory) {
11
+ this.debug = debug;
11
12
  this.providers = providers;
12
13
  this.systemContainerFactory = systemContainerFactory;
13
14
  this.tenantContainerFactory = tenantContainerFactory;
@@ -20,16 +21,18 @@ class ProjectGroupContainerFactory {
20
21
  return new dic_1.Builder({})
21
22
  .addService('slug', () => slug)
22
23
  .addService('providers', () => this.providers)
23
- .addService('tenantConnection', () => new database_1.Connection(config.db, {}))
24
+ .addService('tenantDbCredentials', () => config.db)
25
+ .addService('tenantConnection', ({ tenantDbCredentials }) => database_1.Connection.create(tenantDbCredentials, {}))
24
26
  .addService('projectSchemaResolver', () => new project_1.ProjectSchemaResolverProxy())
25
27
  .addService('projectInitializer', () => new project_1.ProjectInitializerProxy())
26
- .addService('tenantContainer', ({ tenantConnection, projectSchemaResolver, projectInitializer }) => {
28
+ .addService('tenantContainer', ({ tenantConnection, tenantDbCredentials, projectSchemaResolver, projectInitializer }) => {
27
29
  const encryptionKey = config.secrets.encryptionKey
28
30
  ? (0, crypto_1.createSecretKey)(Buffer.from(config.secrets.encryptionKey, 'hex'))
29
31
  : undefined;
30
32
  const cryptoWrapper = new engine_http_1.CryptoWrapper(encryptionKey);
31
33
  return this.tenantContainerFactory.create({
32
34
  connection: tenantConnection,
35
+ dbCredentials: tenantDbCredentials,
33
36
  mailOptions: config.mailer,
34
37
  tenantCredentials: config.credentials,
35
38
  projectInitializer,
@@ -56,8 +59,9 @@ class ProjectGroupContainerFactory {
56
59
  .addService('tenantGraphQLHandler', ({ tenantContainer }) => this.tenantGraphQLHandlerFactory.create(tenantContainer.resolvers))
57
60
  .addService('systemGraphQLHandler', ({ systemContainer }) => this.systemGraphQLHandlerFactory.create(systemContainer.systemResolversFactory))
58
61
  .addService('authenticator', ({ tenantDatabase, tenantContainer }) => new engine_http_1.Authenticator(tenantDatabase, tenantContainer.apiKeyManager))
62
+ .addService('projectMembershipResolver', ({ tenantContainer }) => new engine_http_1.ProjectMembershipResolver(this.debug, new engine_http_1.ProjectMembershipFetcher(tenantContainer.projectMemberManager, tenantContainer.databaseContext)))
59
63
  .build()
60
- .pick('projectContainerResolver', 'projectSchemaResolver', 'projectInitializer', 'systemContainer', 'systemGraphQLHandler', 'tenantContainer', 'tenantDatabase', 'authenticator', 'tenantGraphQLHandler', 'slug');
64
+ .pick('projectContainerResolver', 'projectSchemaResolver', 'projectInitializer', 'systemContainer', 'systemGraphQLHandler', 'tenantContainer', 'tenantDatabase', 'authenticator', 'projectMembershipResolver', 'tenantGraphQLHandler', 'slug');
61
65
  }
62
66
  }
63
67
  exports.ProjectGroupContainerFactory = ProjectGroupContainerFactory;
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectGroupContainer.js","sourceRoot":"","sources":["../../../src/projectGroup/ProjectGroupContainer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectGroupContainer.js","sourceRoot":"","sources":["../../../src/projectGroup/ProjectGroupContainer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { ProjectGroupContainer, ProjectGroupResolver as ProjectGroupResolverInterface } from '@contember/engine-http';
2
+ export declare class ProjectGroupResolver implements ProjectGroupResolverInterface {
3
+ private readonly projectGroupContainer;
4
+ constructor(projectGroupContainer: ProjectGroupContainer);
5
+ resolveContainer(): Promise<ProjectGroupContainer>;
6
+ }
7
+ //# sourceMappingURL=ProjectGroupResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectGroupResolver.d.ts","sourceRoot":"","sources":["../../../src/projectGroup/ProjectGroupResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,IAAI,6BAA6B,EAAE,MAAM,wBAAwB,CAAA;AAErH,qBAAa,oBAAqB,YAAW,6BAA6B;IAExE,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBAArB,qBAAqB,EAAE,qBAAqB;IAI9D,gBAAgB,IAAI,OAAO,CAAC,qBAAqB,CAAC;CAGlD"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProjectGroupResolver = void 0;
4
+ class ProjectGroupResolver {
5
+ constructor(projectGroupContainer) {
6
+ this.projectGroupContainer = projectGroupContainer;
7
+ }
8
+ resolveContainer() {
9
+ return Promise.resolve(this.projectGroupContainer);
10
+ }
11
+ }
12
+ exports.ProjectGroupResolver = ProjectGroupResolver;
13
+ //# sourceMappingURL=ProjectGroupResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectGroupResolver.js","sourceRoot":"","sources":["../../../src/projectGroup/ProjectGroupResolver.ts"],"names":[],"mappings":";;;AAEA,MAAa,oBAAoB;IAChC,YACkB,qBAA4C;QAA5C,0BAAqB,GAArB,qBAAqB,CAAuB;IAE9D,CAAC;IAED,gBAAgB;QACf,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IACnD,CAAC;CACD;AATD,oDASC"}
package/dist/src/start.js CHANGED
@@ -29,29 +29,8 @@ 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 path_1 = require("path");
33
- const os_1 = __importDefault(require("os"));
34
- const cluster_1 = __importDefault(require("cluster"));
35
32
  const utils_1 = require("./utils");
36
- const createServerTerminator = () => {
37
- const signals = [
38
- ['SIGHUP', 1],
39
- ['SIGINT', 2],
40
- ['SIGTERM', 15],
41
- ];
42
- let servers = [];
43
- for (const [signal, code] of signals) {
44
- process.on(signal, async () => {
45
- // eslint-disable-next-line no-console
46
- console.log(`process received a ${signal} signal`);
47
- for (const server of servers) {
48
- await new Promise(resolve => server.close(() => resolve(null)));
49
- }
50
- process.exit(128 + code);
51
- });
52
- }
53
- return servers;
54
- };
33
+ const serverStartup_1 = require("./utils/serverStartup");
55
34
  (async () => {
56
35
  var _a;
57
36
  if (process.env.NODE_HEAPDUMP === 'true') {
@@ -59,106 +38,30 @@ const createServerTerminator = () => {
59
38
  console.log('Initializing heapdump');
60
39
  await Promise.resolve().then(() => __importStar(require('heapdump')));
61
40
  }
62
- const isDebug = process.env.NODE_ENV === 'development';
63
- const packageJsonFile = process.env.CONTEMBER_PACKAGE_JSON || (0, path_1.join)(__dirname, '../../package.json');
64
- // eslint-disable-next-line @typescript-eslint/no-var-requires
65
- const version = require(packageJsonFile).version;
66
- if (cluster_1.default.isMaster) {
67
- // eslint-disable-next-line no-console
68
- console.log(`Starting Contember ${version}`);
69
- // eslint-disable-next-line no-console
70
- console.log(`NODE_ENV is set to ${process.env.NODE_ENV}`);
71
- if (isDebug) {
72
- // eslint-disable-next-line no-console
73
- console.log('Starting Contember in debug mode');
74
- // eslint-disable-next-line no-console
75
- console.log('NEVER USE debug mode in production environment');
76
- }
77
- }
41
+ const terminationJobs = [];
42
+ (0, index_1.listenOnProcessTermination)(terminationJobs);
43
+ const isDebug = (0, serverStartup_1.isDebugMode)();
44
+ const version = (0, serverStartup_1.getServerVersion)();
45
+ (0, serverStartup_1.printStartInfo)({ version, isDebug });
78
46
  const plugins = await (0, loadPlugins_1.default)();
79
- const configProcessors = plugins
80
- .map(it => (it.getConfigProcessor ? it.getConfigProcessor() : null))
81
- .filter((it) => it !== null);
82
- const configSources = [];
83
- for (const configType of ['file', 'yaml', 'json']) {
84
- const envValue = process.env['CONTEMBER_CONFIG_' + configType.toUpperCase()];
85
- if (envValue) {
86
- configSources.push({ type: configType, data: envValue });
87
- }
88
- }
89
- const { serverConfig, projectConfigResolver, tenantConfigResolver } = await (0, index_1.readConfig)(configSources, configProcessors);
90
- if (process.argv[2] === 'validate') {
91
- process.exit(0);
92
- }
93
- 'sentry' in serverConfig.logging && (0, utils_1.initSentry)((_a = serverConfig.logging.sentry) === null || _a === void 0 ? void 0 : _a.dsn);
94
- const workerConfig = serverConfig.workerCount || 1;
95
- const workerCount = workerConfig === 'auto' ? os_1.default.cpus().length : Number(workerConfig);
96
- const isClusterMode = workerCount > 1;
97
- const processType = (0, utils_1.getClusterProcessType)(isClusterMode);
47
+ const { serverConfig, projectConfigResolver, tenantConfigResolver } = await (0, serverStartup_1.resolveServerConfig)({ plugins, serverConfigSchema: index_1.serverConfigSchema });
48
+ (0, utils_1.initSentry)((_a = serverConfig.logging.sentry) === null || _a === void 0 ? void 0 : _a.dsn);
98
49
  const container = (0, index_1.createContainer)({
99
50
  debugMode: isDebug,
100
51
  serverConfig,
101
52
  projectConfigResolver,
102
53
  tenantConfigResolver,
103
54
  plugins,
104
- processType,
105
55
  version,
106
56
  });
107
- let initializedProjects = [];
108
- if (cluster_1.default.isMaster) {
109
- const monitoringPort = serverConfig.monitoringPort;
110
- const terminator = createServerTerminator();
111
- terminator.push(container.monitoringKoa.listen(monitoringPort, () => {
112
- // eslint-disable-next-line no-console
113
- console.log(`Monitoring running on http://localhost:${monitoringPort}`);
114
- }));
115
- if (!serverConfig.projectGroup) {
116
- initializedProjects = await container.initializer.initialize();
117
- }
118
- }
119
- const port = serverConfig.port;
120
- const printStarted = () => {
121
- if (serverConfig.projectGroup) {
122
- // eslint-disable-next-line no-console
123
- console.log('Contember Cloud running');
124
- }
125
- else {
126
- // eslint-disable-next-line no-console
127
- console.log(`Contember API running on http://localhost:${port}`);
128
- // eslint-disable-next-line no-console
129
- console.log(initializedProjects.length ? `Initialized projects: ${initializedProjects.join(', ')}` : 'No project initialized');
130
- }
131
- };
132
- if (isClusterMode && cluster_1.default.isMaster) {
57
+ const initializedProjects = await container.initializer.initialize();
58
+ const httpServer = container.koa.listen(serverConfig.port, () => {
133
59
  // eslint-disable-next-line no-console
134
- console.log(`Master ${process.pid} is running`);
135
- for (let i = 0; i < workerCount; i++) {
136
- cluster_1.default.fork();
137
- await (0, utils_1.waitForWorker)(15000);
138
- }
139
- printStarted();
140
- cluster_1.default.on('exit', async (worker, code, signal) => {
141
- // eslint-disable-next-line no-console
142
- console.log(`Worker ${worker.process.pid} died with signal ${signal}, restarting`);
143
- await (0, utils_1.timeout)(2000);
144
- cluster_1.default.fork();
145
- });
146
- }
147
- else {
148
- if (isClusterMode) {
149
- // eslint-disable-next-line no-console
150
- console.log(`Starting worker ${process.pid}`);
151
- }
152
- const serverTerminator = createServerTerminator();
153
- serverTerminator.push(container.koa.listen(port, () => {
154
- if (!isClusterMode) {
155
- printStarted();
156
- }
157
- else {
158
- (0, utils_1.notifyWorkerStarted)();
159
- }
160
- }));
161
- }
60
+ console.log(`Contember API running on http://localhost:${(serverConfig.port)}`);
61
+ // eslint-disable-next-line no-console
62
+ console.log(initializedProjects.length ? `Initialized projects: ${initializedProjects.join(', ')}` : 'No project initialized');
63
+ });
64
+ terminationJobs.push(() => new Promise(resolve => httpServer.close(resolve)));
162
65
  })().catch(e => {
163
66
  // eslint-disable-next-line no-console
164
67
  console.log(e);