@contember/engine-system-api 2.0.0-alpha.8 → 2.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (533) hide show
  1. package/dist/development/index.cjs +2 -2
  2. package/dist/development/index.js +2 -2
  3. package/dist/development/src/SystemContainer.cjs +4 -3
  4. package/dist/development/src/SystemContainer.cjs.map +1 -1
  5. package/dist/development/src/SystemContainer.js +5 -4
  6. package/dist/development/src/SystemContainer.js.map +1 -1
  7. package/dist/development/src/migrations/2020-03-27-130000-project-migrations.cjs.map +1 -1
  8. package/dist/development/src/migrations/2020-03-27-130000-project-migrations.js.map +1 -1
  9. package/dist/development/src/migrations/2020-05-06-150000-composed-primary.cjs +1 -2
  10. package/dist/development/src/migrations/2020-05-06-150000-composed-primary.cjs.map +1 -1
  11. package/dist/development/src/migrations/2020-05-06-150000-composed-primary.js +1 -2
  12. package/dist/development/src/migrations/2020-05-06-150000-composed-primary.js.map +1 -1
  13. package/dist/development/src/migrations/2020-06-01-103000-event-trigger-perf.cjs +1 -2
  14. package/dist/development/src/migrations/2020-06-01-103000-event-trigger-perf.cjs.map +1 -1
  15. package/dist/development/src/migrations/2020-06-01-103000-event-trigger-perf.js +1 -2
  16. package/dist/development/src/migrations/2020-06-01-103000-event-trigger-perf.js.map +1 -1
  17. package/dist/development/src/migrations/2021-05-07-155800-event-log-rework.cjs +1 -2
  18. package/dist/development/src/migrations/2021-05-07-155800-event-log-rework.cjs.map +1 -1
  19. package/dist/development/src/migrations/2021-05-07-155800-event-log-rework.js +1 -2
  20. package/dist/development/src/migrations/2021-05-07-155800-event-log-rework.js.map +1 -1
  21. package/dist/development/src/migrations/2021-05-19-1232000-event-log-fix-constraint.cjs +1 -2
  22. package/dist/development/src/migrations/2021-05-19-1232000-event-log-fix-constraint.cjs.map +1 -1
  23. package/dist/development/src/migrations/2021-05-19-1232000-event-log-fix-constraint.js +1 -2
  24. package/dist/development/src/migrations/2021-05-19-1232000-event-log-fix-constraint.js.map +1 -1
  25. package/dist/development/src/migrations/2022-10-03-110000-table-on-delete.cjs +1 -1
  26. package/dist/development/src/migrations/2022-10-03-110000-table-on-delete.cjs.map +1 -1
  27. package/dist/development/src/migrations/2022-10-03-110000-table-on-delete.js +1 -1
  28. package/dist/development/src/migrations/2022-10-03-110000-table-on-delete.js.map +1 -1
  29. package/dist/development/src/migrations/2023-09-11-174000-fix-on-delete.cjs +1 -1
  30. package/dist/development/src/migrations/2023-09-11-174000-fix-on-delete.cjs.map +1 -1
  31. package/dist/development/src/migrations/2023-09-11-174000-fix-on-delete.js +1 -1
  32. package/dist/development/src/migrations/2023-09-11-174000-fix-on-delete.js.map +1 -1
  33. package/dist/development/src/migrations/2023-10-19-173000-fix-unique.cjs +1 -1
  34. package/dist/development/src/migrations/2023-10-19-173000-fix-unique.cjs.map +1 -1
  35. package/dist/development/src/migrations/2023-10-19-173000-fix-unique.js +1 -1
  36. package/dist/development/src/migrations/2023-10-19-173000-fix-unique.js.map +1 -1
  37. package/dist/development/src/migrations/2024-06-28-153000-schema.cjs +18 -0
  38. package/dist/development/src/migrations/2024-06-28-153000-schema.cjs.map +1 -0
  39. package/dist/development/src/migrations/2024-06-28-153000-schema.js +19 -0
  40. package/dist/development/src/migrations/2024-06-28-153000-schema.js.map +1 -0
  41. package/dist/development/src/migrations/2024-06-28-153001-schema-init.cjs +12 -0
  42. package/dist/development/src/migrations/2024-06-28-153001-schema-init.cjs.map +1 -0
  43. package/dist/development/src/migrations/2024-06-28-153001-schema-init.js +13 -0
  44. package/dist/development/src/migrations/2024-06-28-153001-schema-init.js.map +1 -0
  45. package/dist/development/src/migrations/2024-07-29-150000-event-data-index.cjs +11 -0
  46. package/dist/development/src/migrations/2024-07-29-150000-event-data-index.cjs.map +1 -0
  47. package/dist/development/src/migrations/2024-07-29-150000-event-data-index.js +12 -0
  48. package/dist/development/src/migrations/2024-07-29-150000-event-data-index.js.map +1 -0
  49. package/dist/development/src/migrations/runner.cjs +11 -5
  50. package/dist/development/src/migrations/runner.cjs.map +1 -1
  51. package/dist/development/src/migrations/runner.js +11 -5
  52. package/dist/development/src/migrations/runner.js.map +1 -1
  53. package/dist/development/src/migrations/snapshot-factory.cjs +1 -1
  54. package/dist/development/src/migrations/snapshot-factory.cjs.map +1 -1
  55. package/dist/development/src/migrations/snapshot-factory.js +1 -1
  56. package/dist/development/src/migrations/snapshot-factory.js.map +1 -1
  57. package/dist/development/src/migrations/snapshot.cjs +17 -1
  58. package/dist/development/src/migrations/snapshot.cjs.map +1 -1
  59. package/dist/development/src/migrations/snapshot.js +17 -1
  60. package/dist/development/src/migrations/snapshot.js.map +1 -1
  61. package/dist/development/src/model/ProjectInitializer.cjs.map +1 -1
  62. package/dist/development/src/model/ProjectInitializer.js.map +1 -1
  63. package/dist/development/src/model/ProjectTruncateExecutor.cjs.map +1 -1
  64. package/dist/development/src/model/ProjectTruncateExecutor.js.map +1 -1
  65. package/dist/development/src/model/authorization/AuthorizationActions.cjs +1 -0
  66. package/dist/development/src/model/authorization/AuthorizationActions.cjs.map +1 -1
  67. package/dist/development/src/model/authorization/AuthorizationActions.js +1 -0
  68. package/dist/development/src/model/authorization/AuthorizationActions.js.map +1 -1
  69. package/dist/development/src/model/authorization/Identity.cjs.map +1 -1
  70. package/dist/development/src/model/authorization/Identity.js.map +1 -1
  71. package/dist/development/src/model/authorization/PermissionsFactory.cjs +1 -0
  72. package/dist/development/src/model/authorization/PermissionsFactory.cjs.map +1 -1
  73. package/dist/development/src/model/authorization/PermissionsFactory.js +1 -0
  74. package/dist/development/src/model/authorization/PermissionsFactory.js.map +1 -1
  75. package/dist/development/src/model/authorization/StagePermissionsFactory.cjs +4 -5
  76. package/dist/development/src/model/authorization/StagePermissionsFactory.cjs.map +1 -1
  77. package/dist/development/src/model/authorization/StagePermissionsFactory.js +4 -5
  78. package/dist/development/src/model/authorization/StagePermissionsFactory.js.map +1 -1
  79. package/dist/development/src/model/authorization/StageScope.cjs +2 -2
  80. package/dist/development/src/model/authorization/StageScope.cjs.map +1 -1
  81. package/dist/development/src/model/authorization/StageScope.js +2 -2
  82. package/dist/development/src/model/authorization/StageScope.js.map +1 -1
  83. package/dist/development/src/model/authorization/SwitchEvaluatorNode.cjs.map +1 -1
  84. package/dist/development/src/model/authorization/SwitchEvaluatorNode.js.map +1 -1
  85. package/dist/development/src/model/commands/CommandBus.cjs.map +1 -1
  86. package/dist/development/src/model/commands/CommandBus.js.map +1 -1
  87. package/dist/development/src/model/commands/events/TruncateEventsCommand.cjs.map +1 -1
  88. package/dist/development/src/model/commands/events/TruncateEventsCommand.js.map +1 -1
  89. package/dist/development/src/model/commands/migrations/DeleteMigrationCommand.cjs.map +1 -1
  90. package/dist/development/src/model/commands/migrations/DeleteMigrationCommand.js.map +1 -1
  91. package/dist/development/src/model/commands/migrations/ModifyMigrationCommand.cjs.map +1 -1
  92. package/dist/development/src/model/commands/migrations/ModifyMigrationCommand.js.map +1 -1
  93. package/dist/development/src/model/commands/migrations/SaveMigrationCommand.cjs.map +1 -1
  94. package/dist/development/src/model/commands/migrations/SaveMigrationCommand.js.map +1 -1
  95. package/dist/development/src/model/commands/schema/SaveSchemaCommand.cjs +28 -0
  96. package/dist/development/src/model/commands/schema/SaveSchemaCommand.cjs.map +1 -0
  97. package/dist/development/src/model/commands/schema/SaveSchemaCommand.js +28 -0
  98. package/dist/development/src/model/commands/schema/SaveSchemaCommand.js.map +1 -0
  99. package/dist/development/src/model/commands/stages/CreateStageCommand.cjs.map +1 -1
  100. package/dist/development/src/model/commands/stages/CreateStageCommand.js.map +1 -1
  101. package/dist/development/src/model/database/DatabaseContext.cjs.map +1 -1
  102. package/dist/development/src/model/database/DatabaseContext.js.map +1 -1
  103. package/dist/development/src/model/dtos/ExecutedMigration.cjs.map +1 -1
  104. package/dist/development/src/model/dtos/ExecutedMigration.js.map +1 -1
  105. package/dist/development/src/model/events/EventResponseBuilder.cjs.map +1 -1
  106. package/dist/development/src/model/events/EventResponseBuilder.js.map +1 -1
  107. package/dist/development/src/model/events/EventResponseHelper.cjs.map +1 -1
  108. package/dist/development/src/model/events/EventResponseHelper.js.map +1 -1
  109. package/dist/development/src/model/events/identityUtils.cjs.map +1 -1
  110. package/dist/development/src/model/events/identityUtils.js.map +1 -1
  111. package/dist/development/src/model/events/types.cjs.map +1 -1
  112. package/dist/development/src/model/events/types.js.map +1 -1
  113. package/dist/development/src/model/helpers/modelHelpers.cjs.map +1 -1
  114. package/dist/development/src/model/helpers/modelHelpers.js.map +1 -1
  115. package/dist/development/src/model/metadata/SchemaDatabaseMetadataResolverStore.cjs.map +1 -1
  116. package/dist/development/src/model/metadata/SchemaDatabaseMetadataResolverStore.js.map +1 -1
  117. package/dist/development/src/model/migrations/ExecutedMigrationsResolver.cjs.map +1 -1
  118. package/dist/development/src/model/migrations/ExecutedMigrationsResolver.js.map +1 -1
  119. package/dist/development/src/model/migrations/MigrationAlterer.cjs +10 -0
  120. package/dist/development/src/model/migrations/MigrationAlterer.cjs.map +1 -1
  121. package/dist/development/src/model/migrations/MigrationAlterer.js +10 -0
  122. package/dist/development/src/model/migrations/MigrationAlterer.js.map +1 -1
  123. package/dist/development/src/model/migrations/ProjectMigrator.cjs +29 -10
  124. package/dist/development/src/model/migrations/ProjectMigrator.cjs.map +1 -1
  125. package/dist/development/src/model/migrations/ProjectMigrator.js +30 -11
  126. package/dist/development/src/model/migrations/ProjectMigrator.js.map +1 -1
  127. package/dist/development/src/model/migrations/SchemaProvider.cjs +58 -0
  128. package/dist/development/src/model/migrations/SchemaProvider.cjs.map +1 -0
  129. package/dist/development/src/model/migrations/SchemaProvider.js +58 -0
  130. package/dist/development/src/model/migrations/SchemaProvider.js.map +1 -0
  131. package/dist/development/src/model/queries/events/EventQueryHelpers.cjs.map +1 -1
  132. package/dist/development/src/model/queries/events/EventQueryHelpers.js.map +1 -1
  133. package/dist/development/src/model/queries/events/EventsQuery.cjs +10 -14
  134. package/dist/development/src/model/queries/events/EventsQuery.cjs.map +1 -1
  135. package/dist/development/src/model/queries/events/EventsQuery.js +10 -14
  136. package/dist/development/src/model/queries/events/EventsQuery.js.map +1 -1
  137. package/dist/development/src/model/queries/events/LatestTransactionIdByStageQuery.cjs.map +1 -1
  138. package/dist/development/src/model/queries/events/LatestTransactionIdByStageQuery.js.map +1 -1
  139. package/dist/development/src/model/queries/events/OldValuesQuery.cjs.map +1 -1
  140. package/dist/development/src/model/queries/events/OldValuesQuery.js.map +1 -1
  141. package/dist/development/src/model/queries/migrations/ExecutedMigrationByVersionQuery.cjs.map +1 -1
  142. package/dist/development/src/model/queries/migrations/ExecutedMigrationByVersionQuery.js.map +1 -1
  143. package/dist/development/src/model/queries/migrations/ExecutedMigrationsQuery.cjs.map +1 -1
  144. package/dist/development/src/model/queries/migrations/ExecutedMigrationsQuery.js.map +1 -1
  145. package/dist/development/src/model/queries/schema/SchemaQuery.cjs +34 -0
  146. package/dist/development/src/model/queries/schema/SchemaQuery.cjs.map +1 -0
  147. package/dist/development/src/model/queries/schema/SchemaQuery.js +34 -0
  148. package/dist/development/src/model/queries/schema/SchemaQuery.js.map +1 -0
  149. package/dist/development/src/model/queries/stages/StageBySlugQuery.cjs.map +1 -1
  150. package/dist/development/src/model/queries/stages/StageBySlugQuery.js.map +1 -1
  151. package/dist/development/src/model/queries/stages/StagesQuery.cjs.map +1 -1
  152. package/dist/development/src/model/queries/stages/StagesQuery.js.map +1 -1
  153. package/dist/development/src/model/stages/StageCreator.cjs.map +1 -1
  154. package/dist/development/src/model/stages/StageCreator.js.map +1 -1
  155. package/dist/development/src/resolvers/ResolverFactory.cjs +6 -2
  156. package/dist/development/src/resolvers/ResolverFactory.cjs.map +1 -1
  157. package/dist/development/src/resolvers/ResolverFactory.js +7 -3
  158. package/dist/development/src/resolvers/ResolverFactory.js.map +1 -1
  159. package/dist/development/src/resolvers/SystemResolverContext.cjs +5 -5
  160. package/dist/development/src/resolvers/SystemResolverContext.cjs.map +1 -1
  161. package/dist/development/src/resolvers/SystemResolverContext.js +5 -5
  162. package/dist/development/src/resolvers/SystemResolverContext.js.map +1 -1
  163. package/dist/development/src/resolvers/mutation/MigrateMutationResolver.cjs +0 -1
  164. package/dist/development/src/resolvers/mutation/MigrateMutationResolver.cjs.map +1 -1
  165. package/dist/development/src/resolvers/mutation/MigrateMutationResolver.js +0 -1
  166. package/dist/development/src/resolvers/mutation/MigrateMutationResolver.js.map +1 -1
  167. package/dist/development/src/resolvers/mutation/MigrationAlterMutationResolver.cjs +0 -1
  168. package/dist/development/src/resolvers/mutation/MigrationAlterMutationResolver.cjs.map +1 -1
  169. package/dist/development/src/resolvers/mutation/MigrationAlterMutationResolver.js +0 -1
  170. package/dist/development/src/resolvers/mutation/MigrationAlterMutationResolver.js.map +1 -1
  171. package/dist/development/src/resolvers/mutation/TruncateMutationResolver.cjs +1 -1
  172. package/dist/development/src/resolvers/mutation/TruncateMutationResolver.cjs.map +1 -1
  173. package/dist/development/src/resolvers/mutation/TruncateMutationResolver.js +1 -1
  174. package/dist/development/src/resolvers/mutation/TruncateMutationResolver.js.map +1 -1
  175. package/dist/development/src/resolvers/query/EventsQueryResolver.cjs +0 -1
  176. package/dist/development/src/resolvers/query/EventsQueryResolver.cjs.map +1 -1
  177. package/dist/development/src/resolvers/query/EventsQueryResolver.js +0 -1
  178. package/dist/development/src/resolvers/query/EventsQueryResolver.js.map +1 -1
  179. package/dist/development/src/resolvers/query/ExecutedMigrationsQueryResolver.cjs +0 -1
  180. package/dist/development/src/resolvers/query/ExecutedMigrationsQueryResolver.cjs.map +1 -1
  181. package/dist/development/src/resolvers/query/ExecutedMigrationsQueryResolver.js +0 -1
  182. package/dist/development/src/resolvers/query/ExecutedMigrationsQueryResolver.js.map +1 -1
  183. package/dist/development/src/resolvers/query/SchemaQueryResolver.cjs +23 -0
  184. package/dist/development/src/resolvers/query/SchemaQueryResolver.cjs.map +1 -0
  185. package/dist/development/src/resolvers/query/SchemaQueryResolver.js +23 -0
  186. package/dist/development/src/resolvers/query/SchemaQueryResolver.js.map +1 -0
  187. package/dist/development/src/resolvers/query/StagesQueryResolver.cjs +0 -1
  188. package/dist/development/src/resolvers/query/StagesQueryResolver.cjs.map +1 -1
  189. package/dist/development/src/resolvers/query/StagesQueryResolver.js +0 -1
  190. package/dist/development/src/resolvers/query/StagesQueryResolver.js.map +1 -1
  191. package/dist/development/src/resolvers/types/EventOldValuesResolver.cjs.map +1 -1
  192. package/dist/development/src/resolvers/types/EventOldValuesResolver.js.map +1 -1
  193. package/dist/development/src/resolvers/types/OldValuesHelpers.cjs +0 -1
  194. package/dist/development/src/resolvers/types/OldValuesHelpers.cjs.map +1 -1
  195. package/dist/development/src/resolvers/types/OldValuesHelpers.js +0 -1
  196. package/dist/development/src/resolvers/types/OldValuesHelpers.js.map +1 -1
  197. package/dist/development/src/schema/dev.graphql.cjs.map +1 -1
  198. package/dist/development/src/schema/system.graphql.cjs +3 -1
  199. package/dist/development/src/schema/system.graphql.cjs.map +1 -1
  200. package/dist/development/src/schema/system.graphql.js +3 -1
  201. package/dist/development/src/schema/system.graphql.js.map +1 -1
  202. package/dist/development/src/schema/types.cjs.map +1 -1
  203. package/dist/development/src/schema/types.js.map +1 -1
  204. package/dist/development/src/utils/MapSet.cjs.map +1 -1
  205. package/dist/development/src/utils/MapSet.js.map +1 -1
  206. package/dist/development/src/utils/Response.cjs.map +1 -1
  207. package/dist/development/src/utils/Response.js.map +1 -1
  208. package/dist/development/src/utils/batchQuery.cjs.map +1 -1
  209. package/dist/development/src/utils/batchQuery.js.map +1 -1
  210. package/dist/production/index.cjs +2 -2
  211. package/dist/production/index.js +2 -2
  212. package/dist/production/src/SystemContainer.cjs +4 -3
  213. package/dist/production/src/SystemContainer.cjs.map +1 -1
  214. package/dist/production/src/SystemContainer.js +5 -4
  215. package/dist/production/src/SystemContainer.js.map +1 -1
  216. package/dist/production/src/migrations/2020-03-27-130000-project-migrations.cjs.map +1 -1
  217. package/dist/production/src/migrations/2020-03-27-130000-project-migrations.js.map +1 -1
  218. package/dist/production/src/migrations/2020-05-06-150000-composed-primary.cjs +1 -2
  219. package/dist/production/src/migrations/2020-05-06-150000-composed-primary.cjs.map +1 -1
  220. package/dist/production/src/migrations/2020-05-06-150000-composed-primary.js +1 -2
  221. package/dist/production/src/migrations/2020-05-06-150000-composed-primary.js.map +1 -1
  222. package/dist/production/src/migrations/2020-06-01-103000-event-trigger-perf.cjs +1 -2
  223. package/dist/production/src/migrations/2020-06-01-103000-event-trigger-perf.cjs.map +1 -1
  224. package/dist/production/src/migrations/2020-06-01-103000-event-trigger-perf.js +1 -2
  225. package/dist/production/src/migrations/2020-06-01-103000-event-trigger-perf.js.map +1 -1
  226. package/dist/production/src/migrations/2021-05-07-155800-event-log-rework.cjs +1 -2
  227. package/dist/production/src/migrations/2021-05-07-155800-event-log-rework.cjs.map +1 -1
  228. package/dist/production/src/migrations/2021-05-07-155800-event-log-rework.js +1 -2
  229. package/dist/production/src/migrations/2021-05-07-155800-event-log-rework.js.map +1 -1
  230. package/dist/production/src/migrations/2021-05-19-1232000-event-log-fix-constraint.cjs +1 -2
  231. package/dist/production/src/migrations/2021-05-19-1232000-event-log-fix-constraint.cjs.map +1 -1
  232. package/dist/production/src/migrations/2021-05-19-1232000-event-log-fix-constraint.js +1 -2
  233. package/dist/production/src/migrations/2021-05-19-1232000-event-log-fix-constraint.js.map +1 -1
  234. package/dist/production/src/migrations/2022-10-03-110000-table-on-delete.cjs +1 -1
  235. package/dist/production/src/migrations/2022-10-03-110000-table-on-delete.cjs.map +1 -1
  236. package/dist/production/src/migrations/2022-10-03-110000-table-on-delete.js +1 -1
  237. package/dist/production/src/migrations/2022-10-03-110000-table-on-delete.js.map +1 -1
  238. package/dist/production/src/migrations/2023-09-11-174000-fix-on-delete.cjs +1 -1
  239. package/dist/production/src/migrations/2023-09-11-174000-fix-on-delete.cjs.map +1 -1
  240. package/dist/production/src/migrations/2023-09-11-174000-fix-on-delete.js +1 -1
  241. package/dist/production/src/migrations/2023-09-11-174000-fix-on-delete.js.map +1 -1
  242. package/dist/production/src/migrations/2023-10-19-173000-fix-unique.cjs +1 -1
  243. package/dist/production/src/migrations/2023-10-19-173000-fix-unique.cjs.map +1 -1
  244. package/dist/production/src/migrations/2023-10-19-173000-fix-unique.js +1 -1
  245. package/dist/production/src/migrations/2023-10-19-173000-fix-unique.js.map +1 -1
  246. package/dist/production/src/migrations/2024-06-28-153000-schema.cjs +18 -0
  247. package/dist/production/src/migrations/2024-06-28-153000-schema.cjs.map +1 -0
  248. package/dist/production/src/migrations/2024-06-28-153000-schema.js +19 -0
  249. package/dist/production/src/migrations/2024-06-28-153000-schema.js.map +1 -0
  250. package/dist/production/src/migrations/2024-06-28-153001-schema-init.cjs +12 -0
  251. package/dist/production/src/migrations/2024-06-28-153001-schema-init.cjs.map +1 -0
  252. package/dist/production/src/migrations/2024-06-28-153001-schema-init.js +13 -0
  253. package/dist/production/src/migrations/2024-06-28-153001-schema-init.js.map +1 -0
  254. package/dist/production/src/migrations/2024-07-29-150000-event-data-index.cjs +11 -0
  255. package/dist/production/src/migrations/2024-07-29-150000-event-data-index.cjs.map +1 -0
  256. package/dist/production/src/migrations/2024-07-29-150000-event-data-index.js +12 -0
  257. package/dist/production/src/migrations/2024-07-29-150000-event-data-index.js.map +1 -0
  258. package/dist/production/src/migrations/runner.cjs +11 -5
  259. package/dist/production/src/migrations/runner.cjs.map +1 -1
  260. package/dist/production/src/migrations/runner.js +11 -5
  261. package/dist/production/src/migrations/runner.js.map +1 -1
  262. package/dist/production/src/migrations/snapshot-factory.cjs +1 -1
  263. package/dist/production/src/migrations/snapshot-factory.cjs.map +1 -1
  264. package/dist/production/src/migrations/snapshot-factory.js +1 -1
  265. package/dist/production/src/migrations/snapshot-factory.js.map +1 -1
  266. package/dist/production/src/migrations/snapshot.cjs +17 -1
  267. package/dist/production/src/migrations/snapshot.cjs.map +1 -1
  268. package/dist/production/src/migrations/snapshot.js +17 -1
  269. package/dist/production/src/migrations/snapshot.js.map +1 -1
  270. package/dist/production/src/model/ProjectInitializer.cjs.map +1 -1
  271. package/dist/production/src/model/ProjectInitializer.js.map +1 -1
  272. package/dist/production/src/model/ProjectTruncateExecutor.cjs.map +1 -1
  273. package/dist/production/src/model/ProjectTruncateExecutor.js.map +1 -1
  274. package/dist/production/src/model/authorization/AuthorizationActions.cjs +1 -0
  275. package/dist/production/src/model/authorization/AuthorizationActions.cjs.map +1 -1
  276. package/dist/production/src/model/authorization/AuthorizationActions.js +1 -0
  277. package/dist/production/src/model/authorization/AuthorizationActions.js.map +1 -1
  278. package/dist/production/src/model/authorization/Identity.cjs.map +1 -1
  279. package/dist/production/src/model/authorization/Identity.js.map +1 -1
  280. package/dist/production/src/model/authorization/PermissionsFactory.cjs +1 -0
  281. package/dist/production/src/model/authorization/PermissionsFactory.cjs.map +1 -1
  282. package/dist/production/src/model/authorization/PermissionsFactory.js +1 -0
  283. package/dist/production/src/model/authorization/PermissionsFactory.js.map +1 -1
  284. package/dist/production/src/model/authorization/StagePermissionsFactory.cjs +4 -5
  285. package/dist/production/src/model/authorization/StagePermissionsFactory.cjs.map +1 -1
  286. package/dist/production/src/model/authorization/StagePermissionsFactory.js +4 -5
  287. package/dist/production/src/model/authorization/StagePermissionsFactory.js.map +1 -1
  288. package/dist/production/src/model/authorization/StageScope.cjs +2 -2
  289. package/dist/production/src/model/authorization/StageScope.cjs.map +1 -1
  290. package/dist/production/src/model/authorization/StageScope.js +2 -2
  291. package/dist/production/src/model/authorization/StageScope.js.map +1 -1
  292. package/dist/production/src/model/authorization/SwitchEvaluatorNode.cjs.map +1 -1
  293. package/dist/production/src/model/authorization/SwitchEvaluatorNode.js.map +1 -1
  294. package/dist/production/src/model/commands/CommandBus.cjs.map +1 -1
  295. package/dist/production/src/model/commands/CommandBus.js.map +1 -1
  296. package/dist/production/src/model/commands/events/TruncateEventsCommand.cjs.map +1 -1
  297. package/dist/production/src/model/commands/events/TruncateEventsCommand.js.map +1 -1
  298. package/dist/production/src/model/commands/migrations/DeleteMigrationCommand.cjs.map +1 -1
  299. package/dist/production/src/model/commands/migrations/DeleteMigrationCommand.js.map +1 -1
  300. package/dist/production/src/model/commands/migrations/ModifyMigrationCommand.cjs.map +1 -1
  301. package/dist/production/src/model/commands/migrations/ModifyMigrationCommand.js.map +1 -1
  302. package/dist/production/src/model/commands/migrations/SaveMigrationCommand.cjs.map +1 -1
  303. package/dist/production/src/model/commands/migrations/SaveMigrationCommand.js.map +1 -1
  304. package/dist/production/src/model/commands/schema/SaveSchemaCommand.cjs +28 -0
  305. package/dist/production/src/model/commands/schema/SaveSchemaCommand.cjs.map +1 -0
  306. package/dist/production/src/model/commands/schema/SaveSchemaCommand.js +28 -0
  307. package/dist/production/src/model/commands/schema/SaveSchemaCommand.js.map +1 -0
  308. package/dist/production/src/model/commands/stages/CreateStageCommand.cjs.map +1 -1
  309. package/dist/production/src/model/commands/stages/CreateStageCommand.js.map +1 -1
  310. package/dist/production/src/model/database/DatabaseContext.cjs.map +1 -1
  311. package/dist/production/src/model/database/DatabaseContext.js.map +1 -1
  312. package/dist/production/src/model/dtos/ExecutedMigration.cjs.map +1 -1
  313. package/dist/production/src/model/dtos/ExecutedMigration.js.map +1 -1
  314. package/dist/production/src/model/events/EventResponseBuilder.cjs.map +1 -1
  315. package/dist/production/src/model/events/EventResponseBuilder.js.map +1 -1
  316. package/dist/production/src/model/events/EventResponseHelper.cjs.map +1 -1
  317. package/dist/production/src/model/events/EventResponseHelper.js.map +1 -1
  318. package/dist/production/src/model/events/identityUtils.cjs.map +1 -1
  319. package/dist/production/src/model/events/identityUtils.js.map +1 -1
  320. package/dist/production/src/model/events/types.cjs.map +1 -1
  321. package/dist/production/src/model/events/types.js.map +1 -1
  322. package/dist/production/src/model/helpers/modelHelpers.cjs.map +1 -1
  323. package/dist/production/src/model/helpers/modelHelpers.js.map +1 -1
  324. package/dist/production/src/model/metadata/SchemaDatabaseMetadataResolverStore.cjs.map +1 -1
  325. package/dist/production/src/model/metadata/SchemaDatabaseMetadataResolverStore.js.map +1 -1
  326. package/dist/production/src/model/migrations/ExecutedMigrationsResolver.cjs.map +1 -1
  327. package/dist/production/src/model/migrations/ExecutedMigrationsResolver.js.map +1 -1
  328. package/dist/production/src/model/migrations/MigrationAlterer.cjs +10 -0
  329. package/dist/production/src/model/migrations/MigrationAlterer.cjs.map +1 -1
  330. package/dist/production/src/model/migrations/MigrationAlterer.js +10 -0
  331. package/dist/production/src/model/migrations/MigrationAlterer.js.map +1 -1
  332. package/dist/production/src/model/migrations/ProjectMigrator.cjs +29 -10
  333. package/dist/production/src/model/migrations/ProjectMigrator.cjs.map +1 -1
  334. package/dist/production/src/model/migrations/ProjectMigrator.js +30 -11
  335. package/dist/production/src/model/migrations/ProjectMigrator.js.map +1 -1
  336. package/dist/production/src/model/migrations/SchemaProvider.cjs +58 -0
  337. package/dist/production/src/model/migrations/SchemaProvider.cjs.map +1 -0
  338. package/dist/production/src/model/migrations/SchemaProvider.js +58 -0
  339. package/dist/production/src/model/migrations/SchemaProvider.js.map +1 -0
  340. package/dist/production/src/model/queries/events/EventQueryHelpers.cjs.map +1 -1
  341. package/dist/production/src/model/queries/events/EventQueryHelpers.js.map +1 -1
  342. package/dist/production/src/model/queries/events/EventsQuery.cjs +10 -14
  343. package/dist/production/src/model/queries/events/EventsQuery.cjs.map +1 -1
  344. package/dist/production/src/model/queries/events/EventsQuery.js +10 -14
  345. package/dist/production/src/model/queries/events/EventsQuery.js.map +1 -1
  346. package/dist/production/src/model/queries/events/LatestTransactionIdByStageQuery.cjs.map +1 -1
  347. package/dist/production/src/model/queries/events/LatestTransactionIdByStageQuery.js.map +1 -1
  348. package/dist/production/src/model/queries/events/OldValuesQuery.cjs.map +1 -1
  349. package/dist/production/src/model/queries/events/OldValuesQuery.js.map +1 -1
  350. package/dist/production/src/model/queries/migrations/ExecutedMigrationByVersionQuery.cjs.map +1 -1
  351. package/dist/production/src/model/queries/migrations/ExecutedMigrationByVersionQuery.js.map +1 -1
  352. package/dist/production/src/model/queries/migrations/ExecutedMigrationsQuery.cjs.map +1 -1
  353. package/dist/production/src/model/queries/migrations/ExecutedMigrationsQuery.js.map +1 -1
  354. package/dist/production/src/model/queries/schema/SchemaQuery.cjs +34 -0
  355. package/dist/production/src/model/queries/schema/SchemaQuery.cjs.map +1 -0
  356. package/dist/production/src/model/queries/schema/SchemaQuery.js +34 -0
  357. package/dist/production/src/model/queries/schema/SchemaQuery.js.map +1 -0
  358. package/dist/production/src/model/queries/stages/StageBySlugQuery.cjs.map +1 -1
  359. package/dist/production/src/model/queries/stages/StageBySlugQuery.js.map +1 -1
  360. package/dist/production/src/model/queries/stages/StagesQuery.cjs.map +1 -1
  361. package/dist/production/src/model/queries/stages/StagesQuery.js.map +1 -1
  362. package/dist/production/src/model/stages/StageCreator.cjs.map +1 -1
  363. package/dist/production/src/model/stages/StageCreator.js.map +1 -1
  364. package/dist/production/src/resolvers/ResolverFactory.cjs +6 -2
  365. package/dist/production/src/resolvers/ResolverFactory.cjs.map +1 -1
  366. package/dist/production/src/resolvers/ResolverFactory.js +7 -3
  367. package/dist/production/src/resolvers/ResolverFactory.js.map +1 -1
  368. package/dist/production/src/resolvers/SystemResolverContext.cjs +5 -5
  369. package/dist/production/src/resolvers/SystemResolverContext.cjs.map +1 -1
  370. package/dist/production/src/resolvers/SystemResolverContext.js +5 -5
  371. package/dist/production/src/resolvers/SystemResolverContext.js.map +1 -1
  372. package/dist/production/src/resolvers/mutation/MigrateMutationResolver.cjs +0 -1
  373. package/dist/production/src/resolvers/mutation/MigrateMutationResolver.cjs.map +1 -1
  374. package/dist/production/src/resolvers/mutation/MigrateMutationResolver.js +0 -1
  375. package/dist/production/src/resolvers/mutation/MigrateMutationResolver.js.map +1 -1
  376. package/dist/production/src/resolvers/mutation/MigrationAlterMutationResolver.cjs +0 -1
  377. package/dist/production/src/resolvers/mutation/MigrationAlterMutationResolver.cjs.map +1 -1
  378. package/dist/production/src/resolvers/mutation/MigrationAlterMutationResolver.js +0 -1
  379. package/dist/production/src/resolvers/mutation/MigrationAlterMutationResolver.js.map +1 -1
  380. package/dist/production/src/resolvers/mutation/TruncateMutationResolver.cjs +1 -1
  381. package/dist/production/src/resolvers/mutation/TruncateMutationResolver.cjs.map +1 -1
  382. package/dist/production/src/resolvers/mutation/TruncateMutationResolver.js +1 -1
  383. package/dist/production/src/resolvers/mutation/TruncateMutationResolver.js.map +1 -1
  384. package/dist/production/src/resolvers/query/EventsQueryResolver.cjs +0 -1
  385. package/dist/production/src/resolvers/query/EventsQueryResolver.cjs.map +1 -1
  386. package/dist/production/src/resolvers/query/EventsQueryResolver.js +0 -1
  387. package/dist/production/src/resolvers/query/EventsQueryResolver.js.map +1 -1
  388. package/dist/production/src/resolvers/query/ExecutedMigrationsQueryResolver.cjs +0 -1
  389. package/dist/production/src/resolvers/query/ExecutedMigrationsQueryResolver.cjs.map +1 -1
  390. package/dist/production/src/resolvers/query/ExecutedMigrationsQueryResolver.js +0 -1
  391. package/dist/production/src/resolvers/query/ExecutedMigrationsQueryResolver.js.map +1 -1
  392. package/dist/production/src/resolvers/query/SchemaQueryResolver.cjs +23 -0
  393. package/dist/production/src/resolvers/query/SchemaQueryResolver.cjs.map +1 -0
  394. package/dist/production/src/resolvers/query/SchemaQueryResolver.js +23 -0
  395. package/dist/production/src/resolvers/query/SchemaQueryResolver.js.map +1 -0
  396. package/dist/production/src/resolvers/query/StagesQueryResolver.cjs +0 -1
  397. package/dist/production/src/resolvers/query/StagesQueryResolver.cjs.map +1 -1
  398. package/dist/production/src/resolvers/query/StagesQueryResolver.js +0 -1
  399. package/dist/production/src/resolvers/query/StagesQueryResolver.js.map +1 -1
  400. package/dist/production/src/resolvers/types/EventOldValuesResolver.cjs.map +1 -1
  401. package/dist/production/src/resolvers/types/EventOldValuesResolver.js.map +1 -1
  402. package/dist/production/src/resolvers/types/OldValuesHelpers.cjs +0 -1
  403. package/dist/production/src/resolvers/types/OldValuesHelpers.cjs.map +1 -1
  404. package/dist/production/src/resolvers/types/OldValuesHelpers.js +0 -1
  405. package/dist/production/src/resolvers/types/OldValuesHelpers.js.map +1 -1
  406. package/dist/production/src/schema/dev.graphql.cjs.map +1 -1
  407. package/dist/production/src/schema/system.graphql.cjs +3 -1
  408. package/dist/production/src/schema/system.graphql.cjs.map +1 -1
  409. package/dist/production/src/schema/system.graphql.js +3 -1
  410. package/dist/production/src/schema/system.graphql.js.map +1 -1
  411. package/dist/production/src/schema/types.cjs.map +1 -1
  412. package/dist/production/src/schema/types.js.map +1 -1
  413. package/dist/production/src/utils/MapSet.cjs.map +1 -1
  414. package/dist/production/src/utils/MapSet.js.map +1 -1
  415. package/dist/production/src/utils/Response.cjs.map +1 -1
  416. package/dist/production/src/utils/Response.js.map +1 -1
  417. package/dist/production/src/utils/batchQuery.cjs.map +1 -1
  418. package/dist/production/src/utils/batchQuery.js.map +1 -1
  419. package/dist/tests/cases/unit/eventsQuery.test.d.ts +2 -0
  420. package/dist/tests/cases/unit/eventsQuery.test.d.ts.map +1 -0
  421. package/dist/tests/src/uuid.d.ts +3 -0
  422. package/dist/tests/src/uuid.d.ts.map +1 -0
  423. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  424. package/dist/types/SystemContainer.d.ts +8 -6
  425. package/dist/types/SystemContainer.d.ts.map +1 -1
  426. package/dist/types/index.d.ts +1 -1
  427. package/dist/types/index.d.ts.map +1 -1
  428. package/dist/types/migrations/2024-06-28-153000-schema.d.ts +3 -0
  429. package/dist/types/migrations/2024-06-28-153000-schema.d.ts.map +1 -0
  430. package/dist/types/migrations/2024-06-28-153001-schema-init.d.ts +4 -0
  431. package/dist/types/migrations/2024-06-28-153001-schema-init.d.ts.map +1 -0
  432. package/dist/types/migrations/2024-07-29-150000-event-data-index.d.ts +3 -0
  433. package/dist/types/migrations/2024-07-29-150000-event-data-index.d.ts.map +1 -0
  434. package/dist/types/migrations/runner.d.ts +3 -3
  435. package/dist/types/migrations/runner.d.ts.map +1 -1
  436. package/dist/types/migrations/snapshot.d.ts.map +1 -1
  437. package/dist/types/migrations/types.d.ts +2 -2
  438. package/dist/types/migrations/types.d.ts.map +1 -1
  439. package/dist/types/model/SchemaGetter.d.ts +6 -0
  440. package/dist/types/model/SchemaGetter.d.ts.map +1 -0
  441. package/dist/types/model/authorization/AuthorizationActions.d.ts +5 -0
  442. package/dist/types/model/authorization/AuthorizationActions.d.ts.map +1 -1
  443. package/dist/types/model/authorization/PermissionsFactory.d.ts.map +1 -1
  444. package/dist/types/model/authorization/StagePermissionsFactory.d.ts +4 -4
  445. package/dist/types/model/authorization/StagePermissionsFactory.d.ts.map +1 -1
  446. package/dist/types/model/authorization/StageScope.d.ts.map +1 -1
  447. package/dist/types/model/commands/schema/SaveSchemaCommand.d.ts +8 -0
  448. package/dist/types/model/commands/schema/SaveSchemaCommand.d.ts.map +1 -0
  449. package/dist/types/model/dependencies/content/ContentQueryExecutor.d.ts +3 -2
  450. package/dist/types/model/dependencies/content/ContentQueryExecutor.d.ts.map +1 -1
  451. package/dist/types/model/migrations/MigrationAlterer.d.ts +4 -0
  452. package/dist/types/model/migrations/MigrationAlterer.d.ts.map +1 -1
  453. package/dist/types/model/migrations/ProjectMigrator.d.ts +3 -3
  454. package/dist/types/model/migrations/ProjectMigrator.d.ts.map +1 -1
  455. package/dist/types/model/migrations/SchemaProvider.d.ts +28 -0
  456. package/dist/types/model/migrations/SchemaProvider.d.ts.map +1 -0
  457. package/dist/types/model/migrations/index.d.ts +1 -1
  458. package/dist/types/model/migrations/index.d.ts.map +1 -1
  459. package/dist/types/model/queries/events/EventsQuery.d.ts.map +1 -1
  460. package/dist/types/model/queries/index.d.ts +1 -0
  461. package/dist/types/model/queries/index.d.ts.map +1 -1
  462. package/dist/types/model/queries/schema/SchemaQuery.d.ts +8 -0
  463. package/dist/types/model/queries/schema/SchemaQuery.d.ts.map +1 -0
  464. package/dist/types/model/queries/schema/index.d.ts +2 -0
  465. package/dist/types/model/queries/schema/index.d.ts.map +1 -0
  466. package/dist/types/resolvers/ResolverFactory.d.ts +3 -1
  467. package/dist/types/resolvers/ResolverFactory.d.ts.map +1 -1
  468. package/dist/types/resolvers/SystemResolverContext.d.ts +4 -4
  469. package/dist/types/resolvers/SystemResolverContext.d.ts.map +1 -1
  470. package/dist/types/resolvers/query/SchemaQueryResolver.d.ts +7 -0
  471. package/dist/types/resolvers/query/SchemaQueryResolver.d.ts.map +1 -0
  472. package/dist/types/schema/system.graphql.d.ts.map +1 -1
  473. package/dist/types/schema/types.d.ts +14 -2
  474. package/dist/types/schema/types.d.ts.map +1 -1
  475. package/dist/types/tsconfig.tsbuildinfo +1 -1
  476. package/graphql.codegen.yml +3 -1
  477. package/package.json +17 -24
  478. package/src/SystemContainer.ts +14 -13
  479. package/src/bin/runMigrations.ts +4 -4
  480. package/src/index.ts +3 -2
  481. package/src/migrations/2020-05-06-150000-composed-primary.ts +1 -1
  482. package/src/migrations/2020-06-01-103000-event-trigger-perf.ts +1 -1
  483. package/src/migrations/2021-05-07-155800-event-log-rework.ts +1 -1
  484. package/src/migrations/2021-05-19-1232000-event-log-fix-constraint.ts +1 -1
  485. package/src/migrations/2022-10-03-110000-table-on-delete.ts +1 -1
  486. package/src/migrations/2023-09-11-174000-fix-on-delete.ts +1 -1
  487. package/src/migrations/2023-10-19-173000-fix-unique.ts +1 -1
  488. package/src/migrations/2024-06-28-153000-schema.ts +20 -0
  489. package/src/migrations/2024-06-28-153001-schema-init.ts +12 -0
  490. package/src/migrations/2024-07-29-150000-event-data-index.ts +11 -0
  491. package/src/migrations/runner.ts +10 -4
  492. package/src/migrations/snapshot-factory.ts +1 -1
  493. package/src/migrations/snapshot.ts +17 -1
  494. package/src/migrations/types.ts +2 -2
  495. package/src/model/SchemaGetter.ts +3 -0
  496. package/src/model/authorization/AuthorizationActions.ts +1 -0
  497. package/src/model/authorization/PermissionsFactory.ts +1 -0
  498. package/src/model/authorization/StagePermissionsFactory.ts +5 -5
  499. package/src/model/authorization/StageScope.ts +2 -2
  500. package/src/model/commands/schema/SaveSchemaCommand.ts +31 -0
  501. package/src/model/dependencies/content/ContentQueryExecutor.ts +3 -2
  502. package/src/model/migrations/MigrationAlterer.ts +14 -0
  503. package/src/model/migrations/ProjectMigrator.ts +34 -12
  504. package/src/model/migrations/SchemaProvider.ts +77 -0
  505. package/src/model/migrations/index.ts +1 -1
  506. package/src/model/queries/events/EventsQuery.ts +15 -17
  507. package/src/model/queries/index.ts +1 -0
  508. package/src/model/queries/schema/SchemaQuery.ts +48 -0
  509. package/src/model/queries/schema/index.ts +1 -0
  510. package/src/resolvers/ResolverFactory.ts +9 -1
  511. package/src/resolvers/SystemResolverContext.ts +8 -13
  512. package/src/resolvers/mutation/TruncateMutationResolver.ts +1 -1
  513. package/src/resolvers/query/SchemaQueryResolver.ts +19 -0
  514. package/src/schema/system.graphql.ts +3 -1
  515. package/src/schema/types.ts +13 -3
  516. package/tests/cases/migrations/2020-05-06-150000-composed-primary.test.ts +12 -3
  517. package/tests/cases/migrations/2020-06-01-103000-event-trigger-perf.test.ts +12 -3
  518. package/tests/cases/migrations/2022-10-03-110000-table-on-delete.test.ts +20 -8
  519. package/tests/cases/migrations/2023-09-11-174000-fix-on-delete.test.ts +37 -16
  520. package/tests/cases/migrations/2023-10-19-173000-fix-unique.test.ts +12 -3
  521. package/tests/cases/unit/eventsQuery.test.ts +39 -0
  522. package/tests/src/uuid.ts +4 -0
  523. package/dist/development/src/model/migrations/SchemaVersionBuilder.cjs +0 -37
  524. package/dist/development/src/model/migrations/SchemaVersionBuilder.cjs.map +0 -1
  525. package/dist/development/src/model/migrations/SchemaVersionBuilder.js +0 -37
  526. package/dist/development/src/model/migrations/SchemaVersionBuilder.js.map +0 -1
  527. package/dist/production/src/model/migrations/SchemaVersionBuilder.cjs +0 -37
  528. package/dist/production/src/model/migrations/SchemaVersionBuilder.cjs.map +0 -1
  529. package/dist/production/src/model/migrations/SchemaVersionBuilder.js +0 -37
  530. package/dist/production/src/model/migrations/SchemaVersionBuilder.js.map +0 -1
  531. package/dist/types/model/migrations/SchemaVersionBuilder.d.ts +0 -37
  532. package/dist/types/model/migrations/SchemaVersionBuilder.d.ts.map +0 -1
  533. package/src/model/migrations/SchemaVersionBuilder.ts +0 -43
@@ -7,6 +7,8 @@ config:
7
7
  scalars:
8
8
  DateTime: Date
9
9
  Json: unknown
10
+ PrimaryKey: "string | number"
11
+ ContentSchema: unknown
10
12
  generates:
11
13
  ./src/schema/types.ts:
12
14
  config:
@@ -17,4 +19,4 @@ generates:
17
19
  - "typescript-resolvers"
18
20
  hooks:
19
21
  afterAllFileWrite:
20
- - eslint --fix
22
+ - bun run -T eslint --fix
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contember/engine-system-api",
3
- "version": "2.0.0-alpha.8",
3
+ "version": "2.0.0-beta.1",
4
4
  "license": "Apache-2.0",
5
5
  "main": "./dist/production/index.js",
6
6
  "typings": "./dist/types/index.d.ts",
@@ -22,36 +22,29 @@
22
22
  }
23
23
  }
24
24
  },
25
- "scripts": {
26
- "generate": "gql-gen --config graphql.codegen.yml"
27
- },
28
25
  "dependencies": {
29
- "@contember/authorization": "2.0.0-alpha.8",
30
- "@contember/database": "2.0.0-alpha.8",
31
- "@contember/database-migrations": "2.0.0-alpha.8",
32
- "@contember/dic": "2.0.0-alpha.8",
33
- "@contember/graphql-utils": "2.0.0-alpha.8",
34
- "@contember/logger": "2.0.0-alpha.8",
35
- "@contember/queryable": "2.0.0-alpha.8",
36
- "@contember/schema": "2.0.0-alpha.8",
37
- "@contember/schema-migrations": "2.0.0-alpha.8",
38
- "@contember/schema-utils": "2.0.0-alpha.8",
39
- "@graphql-tools/utils": "^10.0.8",
26
+ "@contember/authorization": "2.0.0-beta.1",
27
+ "@contember/database": "2.0.0-beta.1",
28
+ "@contember/database-migrations": "2.0.0-beta.1",
29
+ "@contember/dic": "2.0.0-beta.1",
30
+ "@contember/graphql-utils": "2.0.0-beta.1",
31
+ "@contember/logger": "2.0.0-beta.1",
32
+ "@contember/queryable": "2.0.0-beta.1",
33
+ "@contember/schema": "2.0.0-beta.1",
34
+ "@contember/schema-migrations": "2.0.0-beta.1",
35
+ "@contember/schema-utils": "2.0.0-beta.1",
36
+ "@graphql-tools/utils": "^10.5.5",
40
37
  "graphql-tag": "^2.12.6"
41
38
  },
42
39
  "devDependencies": {
43
- "@contember/schema-definition": "2.0.0-alpha.8",
44
- "@graphql-codegen/cli": "^5.0.0",
45
- "@graphql-codegen/typescript": "^4.0.1",
46
- "@graphql-codegen/typescript-operations": "^4.0.1",
47
- "@graphql-codegen/typescript-resolvers": "^4.0.1",
48
- "@types/node": "^20.9.0",
49
- "graphql": "^16.8.1",
50
- "pg": "^8.11.3"
40
+ "@contember/schema-definition": "2.0.0-beta.1",
41
+ "@types/node": "^20.16.11",
42
+ "graphql": "^16.9.0",
43
+ "pg": "^8.12.0"
51
44
  },
52
45
  "peerDependencies": {
53
46
  "graphql": ">= 14.6.0",
54
47
  "pg": "^8.9.0"
55
48
  },
56
49
  "type": "module"
57
- }
50
+ }
@@ -16,7 +16,6 @@ import {
16
16
  PermissionsFactory,
17
17
  ProjectMigrator,
18
18
  ProjectTruncateExecutor,
19
- SchemaVersionBuilder,
20
19
  } from './model'
21
20
  import { UuidProvider } from './utils'
22
21
  import {
@@ -31,12 +30,14 @@ import {
31
30
  } from './resolvers'
32
31
  import { EventOldValuesResolver } from './resolvers/types'
33
32
  import { DatabaseMetadataResolver } from '@contember/database'
33
+ import { SchemaProvider } from './model'
34
+ import { SchemaQueryResolver } from './resolvers/query/SchemaQueryResolver'
34
35
 
35
36
  export interface SystemContainer {
36
37
  systemResolversFactory: ResolverFactory
37
38
  authorizator: Authorizator
38
39
  resolverContextFactory: SystemResolverContextFactory
39
- schemaVersionBuilder: SchemaVersionBuilder
40
+ schemaProvider: SchemaProvider
40
41
  }
41
42
 
42
43
  type Args = {
@@ -58,7 +59,7 @@ export class SystemContainerFactory {
58
59
  'systemResolversFactory',
59
60
  'authorizator',
60
61
  'resolverContextFactory',
61
- 'schemaVersionBuilder',
62
+ 'schemaProvider',
62
63
  )
63
64
  }
64
65
  public createBuilder({ identityFetcher }: Args) {
@@ -73,26 +74,24 @@ export class SystemContainerFactory {
73
74
  new SchemaMigrator(modificationHandlerFactory))
74
75
  .addService('executedMigrationsResolver', ({}) =>
75
76
  new ExecutedMigrationsResolver())
76
- .addService('schemaVersionBuilder', ({ executedMigrationsResolver, schemaMigrator }) =>
77
- new SchemaVersionBuilder(executedMigrationsResolver, schemaMigrator))
77
+ .addService('schemaProvider', ({ executedMigrationsResolver, schemaMigrator }) =>
78
+ new SchemaProvider(executedMigrationsResolver, schemaMigrator))
78
79
  .addService('accessEvaluator', ({}) =>
79
80
  new AccessEvaluator.PermissionEvaluator(new PermissionsFactory().create()))
80
81
  .addService('authorizator', ({ accessEvaluator }): Authorizator =>
81
82
  new Authorizator.Default(accessEvaluator))
82
- .addService('schemaDiffer', ({ schemaMigrator }) =>
83
- new SchemaDiffer(schemaMigrator))
84
83
  .addService('migrationDescriber', ({ modificationHandlerFactory }) =>
85
84
  new MigrationDescriber(modificationHandlerFactory))
86
85
  .addService('databaseMetadataResolver', () =>
87
86
  new DatabaseMetadataResolver())
88
87
  .addService('migrationsDatabaseMetadataResolverStoreFactory', ({ databaseMetadataResolver }) =>
89
88
  new MigrationsDatabaseMetadataResolverStoreFactory(databaseMetadataResolver))
90
- .addService('projectMigrator', ({ migrationDescriber, schemaVersionBuilder, executedMigrationsResolver, migrationsDatabaseMetadataResolverStoreFactory }) =>
91
- new ProjectMigrator(migrationDescriber, schemaVersionBuilder, executedMigrationsResolver, migrationsDatabaseMetadataResolverStoreFactory, this.contentQueryExecutor))
89
+ .addService('projectMigrator', ({ migrationDescriber, schemaProvider, executedMigrationsResolver, migrationsDatabaseMetadataResolverStoreFactory }) =>
90
+ new ProjectMigrator(migrationDescriber, schemaProvider, executedMigrationsResolver, migrationsDatabaseMetadataResolverStoreFactory, this.contentQueryExecutor))
92
91
  .addService('projectTruncateExecutor', () =>
93
92
  new ProjectTruncateExecutor())
94
- .addService('migrationAlterer', () =>
95
- new MigrationAlterer())
93
+ .addService('migrationAlterer', ({ schemaProvider }) =>
94
+ new MigrationAlterer(schemaProvider))
96
95
  .addService('eventResponseBuilder', ({ identityFetcher }) =>
97
96
  new EventResponseBuilder(identityFetcher))
98
97
  .addService('stagesQueryResolver', () =>
@@ -109,8 +108,10 @@ export class SystemContainerFactory {
109
108
  new EventsQueryResolver(eventResponseBuilder))
110
109
  .addService('eventOldValuesResolver', () =>
111
110
  new EventOldValuesResolver())
112
- .addService('systemResolversFactory', ({ stagesQueryResolver, executedMigrationsQueryResolver, migrateMutationResolver, truncateMutationResolver, migrationAlterMutationResolver, eventsQueryResolver, eventOldValuesResolver }) =>
113
- new ResolverFactory(stagesQueryResolver, executedMigrationsQueryResolver, migrateMutationResolver, truncateMutationResolver, migrationAlterMutationResolver, eventsQueryResolver, eventOldValuesResolver))
111
+ .addService('schemaQueryResolver', () =>
112
+ new SchemaQueryResolver())
113
+ .addService('systemResolversFactory', ({ stagesQueryResolver, executedMigrationsQueryResolver, migrateMutationResolver, truncateMutationResolver, migrationAlterMutationResolver, eventsQueryResolver, eventOldValuesResolver, schemaQueryResolver }) =>
114
+ new ResolverFactory(stagesQueryResolver, executedMigrationsQueryResolver, migrateMutationResolver, truncateMutationResolver, migrationAlterMutationResolver, eventsQueryResolver, eventOldValuesResolver, schemaQueryResolver))
114
115
  .addService('resolverContextFactory', ({ authorizator }) =>
115
116
  new SystemResolverContextFactory(authorizator))
116
117
  }
@@ -1,6 +1,6 @@
1
1
  import { SystemMigrationsRunner } from '../migrations'
2
- import { DatabaseContextFactory, emptyVersionedSchema, SchemaVersionBuilder } from '../model'
3
- import { Connection, DatabaseMetadataResolver, emptyDatabaseMetadata } from '@contember/database'
2
+ import { DatabaseContextFactory, emptyVersionedSchema, SchemaProvider } from '../model'
3
+ import { DatabaseMetadataResolver, emptyDatabaseMetadata } from '@contember/database'
4
4
  import { createLogger, PrettyPrintLoggerHandler } from '@contember/logger'
5
5
 
6
6
 
@@ -20,8 +20,8 @@ import { createLogger, PrettyPrintLoggerHandler } from '@contember/logger'
20
20
  }),
21
21
  { db: dbConfig, slug: 'test', stages: [], systemSchema: 'system' },
22
22
  {
23
- buildSchema: () => Promise.resolve(emptyVersionedSchema),
24
- } as unknown as SchemaVersionBuilder,
23
+ buildSchemaFromMigrations: () => Promise.resolve(emptyVersionedSchema),
24
+ } as unknown as SchemaProvider,
25
25
  {},
26
26
  {
27
27
  resolveMetadata: () => Promise.resolve(emptyDatabaseMetadata),
package/src/index.ts CHANGED
@@ -16,12 +16,13 @@ export {
16
16
  LatestTransactionIdByStageQuery,
17
17
  ProjectInitializer,
18
18
  ProjectMigrator,
19
- SchemaVersionBuilder,
20
19
  type Stage,
21
20
  StageBySlugQuery,
22
21
  StageCreator,
23
22
  StagesQuery,
24
- type VersionedSchema,
23
+ SchemaProvider,
24
+ type SchemaMeta,
25
+ type SchemaWithMeta,
25
26
  } from './model'
26
27
  export * from './SystemContainer'
27
28
  export * from './resolvers'
@@ -58,7 +58,7 @@ const migrateEvents = (builder: MigrationBuilder, tableName: string, primaryKeys
58
58
  }
59
59
 
60
60
  export default async function (builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {
61
- const schema = await args.schemaResolver(args.connection)
61
+ const schema = (await args.schemaResolver(args.connection)).schema
62
62
  const tablesToMigrate = getJunctionTables(schema.model)
63
63
  const schemas = args.project.stages.map(it => `stage_${it.slug}`)
64
64
  for (const table of tablesToMigrate) {
@@ -16,7 +16,7 @@ const createEventStatementTrigger = (builder: MigrationBuilder, tableName: Name)
16
16
  }
17
17
 
18
18
  export default async function (builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {
19
- const schema = await args.schemaResolver(args.connection)
19
+ const schema = (await args.schemaResolver(args.connection)).schema
20
20
  const junctionTables = getJunctionTables(schema.model)
21
21
  const schemas = args.project.stages.map(it => `stage_${it.slug}`)
22
22
  builder.sql(`CREATE OR REPLACE FUNCTION "trigger_event"() RETURNS TRIGGER AS $$
@@ -18,7 +18,7 @@ const createTrxEvent = (builder: MigrationBuilder, tableName: Name) => {
18
18
  }
19
19
 
20
20
  export default async function (builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {
21
- const schema = await args.schemaResolver(args.connection)
21
+ const schema = (await args.schemaResolver(args.connection)).schema
22
22
  const junctionTables = getJunctionTables(schema.model)
23
23
  const schemas = args.project.stages.map(it => `stage_${it.slug}`)
24
24
  builder.sql(`LOCK TABLE event`)
@@ -21,7 +21,7 @@ const recreateTrigger = (builder: MigrationBuilder, tableName: Name) => {
21
21
  }
22
22
 
23
23
  export default async function (builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {
24
- const schema = await args.schemaResolver(args.connection)
24
+ const schema = (await args.schemaResolver(args.connection)).schema
25
25
  const junctionTables = getJunctionTables(schema.model)
26
26
  const schemas = args.project.stages.map(it => `stage_${it.slug}`)
27
27
 
@@ -5,7 +5,7 @@ import { acceptFieldVisitor } from '@contember/schema-utils'
5
5
  import { Model } from '@contember/schema'
6
6
 
7
7
  export default async function (builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {
8
- const schema = await args.schemaResolver(args.connection)
8
+ const schema = (await args.schemaResolver(args.connection)).schema
9
9
  const stages = (await args.connection.query<{schema: string}>('SELECT schema FROM stage')).rows
10
10
  const metadataByStage: Record<string, DatabaseMetadata> = {}
11
11
 
@@ -5,7 +5,7 @@ import { acceptFieldVisitor } from '@contember/schema-utils'
5
5
  import { Model } from '@contember/schema'
6
6
 
7
7
  export default async function (builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {
8
- const schema = await args.schemaResolver(args.connection)
8
+ const schema = (await args.schemaResolver(args.connection)).schema
9
9
  const stages = (await args.connection.query<{schema: string}>('SELECT schema FROM stage')).rows
10
10
  const metadataByStage: Record<string, DatabaseMetadata> = {}
11
11
 
@@ -4,7 +4,7 @@ import { SystemMigrationArgs } from './types'
4
4
  import { getUniqueConstraintColumns } from '@contember/schema-migrations'
5
5
 
6
6
  export default async function (builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {
7
- const schema = await args.schemaResolver(args.connection)
7
+ const schema = (await args.schemaResolver(args.connection)).schema
8
8
  const stages = (await args.connection.query<{schema: string}>('SELECT schema FROM stage')).rows
9
9
  const metadataByStage: Record<string, DatabaseMetadata> = {}
10
10
 
@@ -0,0 +1,20 @@
1
+ import { MigrationBuilder } from '@contember/database-migrations'
2
+
3
+ // deliberately using "JSON" instead of "JSONB" to preserve the order of keys
4
+
5
+ const sql = `
6
+ CREATE TYPE SCHEMA_SINGLE AS ENUM ('single');
7
+ CREATE TABLE "schema"
8
+ (
9
+ id SCHEMA_SINGLE NOT NULL PRIMARY KEY DEFAULT 'single',
10
+ schema JSON NOT NULL,
11
+ updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
12
+ checksum CHAR(32) NOT NULL,
13
+ version VARCHAR(20) NOT NULL,
14
+ migration_id INT NOT NULL REFERENCES schema_migration(id) DEFERRABLE INITIALLY DEFERRED
15
+ );
16
+ `
17
+
18
+ export default async function (builder: MigrationBuilder) {
19
+ builder.sql(sql)
20
+ }
@@ -0,0 +1,12 @@
1
+ import { escapeValue, MigrationArgs, MigrationBuilder } from '@contember/database-migrations'
2
+ import { SystemMigrationArgs } from './types'
3
+
4
+
5
+ export default async function (builder: MigrationBuilder, args: MigrationArgs<SystemMigrationArgs>) {
6
+ const schema = await args.schemaResolver(args.connection)
7
+ if (!schema.meta.id) {
8
+ return
9
+ }
10
+ builder.sql(`INSERT INTO schema(schema, checksum, version, migration_id)
11
+ VALUES(${escapeValue(JSON.stringify(schema.schema))}, ${escapeValue(schema.meta.checksum)}, ${escapeValue(schema.meta.version)}, ${schema.meta.id})`)
12
+ }
@@ -0,0 +1,11 @@
1
+ import { MigrationBuilder } from '@contember/database-migrations'
2
+
3
+ const sql = `
4
+ CREATE INDEX IF NOT EXISTS system_event_data_row_id_0 ON event_data USING btree ((row_ids -> 0));
5
+ CREATE INDEX IF NOT EXISTS system_event_data_row_id_1 ON event_data USING btree ((row_ids -> 1));
6
+ DROP INDEX IF EXISTS system_event_row_id;
7
+ `
8
+
9
+ export default async function (builder: MigrationBuilder) {
10
+ builder.sql(sql)
11
+ }
@@ -26,10 +26,13 @@ import _20230911174000fixondelete from './2023-09-11-174000-fix-on-delete'
26
26
  import _20231019173000fixunique from './2023-10-19-173000-fix-unique'
27
27
  import _20231024140000schemanullablechecksum from './2023-10-24-140000-schema-nullable-checksum'
28
28
  import _20240628150000migrationsdropsequence from './2024-06-28-150000-migrations-drop-sequence'
29
+ import _20240628153000schema from './2024-06-28-153000-schema'
30
+ import _20240628153001schemainit from './2024-06-28-153001-schema-init'
31
+ import _20240729150000eventdataindex from './2024-07-29-150000-event-data-index'
29
32
  import snapshot from './snapshot'
30
33
 
31
34
  import { Connection, createDatabaseIfNotExists, DatabaseConfig, DatabaseMetadataResolver } from '@contember/database'
32
- import { DatabaseContextFactory, SchemaVersionBuilder } from '../model'
35
+ import { DatabaseContextFactory, SchemaProvider } from '../model'
33
36
  import { ProjectConfig } from '../types'
34
37
  import { Logger } from '@contember/logger'
35
38
 
@@ -56,6 +59,9 @@ const migrations = {
56
59
  '2023-10-19-173000-fix-unique': _20231019173000fixunique,
57
60
  '2023-10-24-140000-schema-nullable-checksum': _20231024140000schemanullablechecksum,
58
61
  '2024-06-28-150000-migrations-drop-sequence': _20240628150000migrationsdropsequence,
62
+ '2024-06-28-153000-schema': _20240628153000schema,
63
+ '2024-06-28-153001-schema-init': _20240628153001schemainit,
64
+ '2024-07-29-150000-event-data-index': _20240729150000eventdataindex,
59
65
  }
60
66
 
61
67
 
@@ -63,7 +69,7 @@ export class SystemMigrationsRunner {
63
69
  constructor(
64
70
  private readonly databaseContextFactory: DatabaseContextFactory,
65
71
  private readonly project: ProjectConfig & { db: DatabaseConfig },
66
- private readonly schemaVersionBuilder: SchemaVersionBuilder,
72
+ private readonly schemaProvider: SchemaProvider,
67
73
  private readonly migrationGroups: Record<string, MigrationGroup<unknown>>,
68
74
  private readonly databaseMetadataResolver: DatabaseMetadataResolver,
69
75
  ) {
@@ -72,9 +78,9 @@ export class SystemMigrationsRunner {
72
78
  await createDatabaseIfNotExists(this.project.db, message => typeof message === 'string' ? logger.warn(message) : logger.error(message))
73
79
  const singleConnection = Connection.createSingle(this.project.db, err => logger.error(err))
74
80
  await singleConnection.scope(async connection => {
75
- const schemaResolver = (connection: Connection.ConnectionLike) => {
81
+ const schemaResolver = async (connection: Connection.ConnectionLike) => {
76
82
  const dbContextMigrations = this.databaseContextFactory.create(connection)
77
- return this.schemaVersionBuilder.buildSchema(dbContextMigrations)
83
+ return await this.schemaProvider.buildSchemaFromMigrations(dbContextMigrations)
78
84
  }
79
85
  const migrationResolver = new GroupMigrationsResolver(
80
86
  new SnapshotMigrationResolver(snapshot, migrations),
@@ -10,7 +10,7 @@ export const snapshotMigration = (sqlFactory: (args: { randomUuidFn: string }) =
10
10
  WHERE pg_namespace.nspname = 'pg_catalog' AND pg_proc.proname = 'gen_random_uuid'
11
11
  `)
12
12
  let randomUuidFn: string = 'uuid_generate_v4'
13
- if (hasGenRandomUuid.rowCount > 0) {
13
+ if ((hasGenRandomUuid.rowCount ?? 0) > 0) {
14
14
  randomUuidFn = 'gen_random_uuid'
15
15
  } else {
16
16
  const hasUuidGenV4 = await args.connection.query(`
@@ -8,6 +8,9 @@ CREATE TYPE "schema_migration_type" AS ENUM (
8
8
  'schema',
9
9
  'content'
10
10
  );
11
+ CREATE TYPE "schema_single" AS ENUM (
12
+ 'single'
13
+ );
11
14
  CREATE FUNCTION "trigger_event"() RETURNS "trigger"
12
15
  LANGUAGE "plpgsql"
13
16
  AS $$
@@ -115,6 +118,14 @@ CREATE TABLE "event_data" (
115
118
  "identity_id" "uuid" NOT NULL,
116
119
  "transaction_id" "uuid" DEFAULT COALESCE((NULLIF("current_setting"('system.transaction_id'::"text", true), ''::"text"))::"uuid", ("set_config"('system.transaction_id'::"text", ("${randomUuidFn}"())::"text", true))::"uuid") NOT NULL
117
120
  );
121
+ CREATE TABLE "schema" (
122
+ "id" "schema_single" DEFAULT 'single'::"schema_single" NOT NULL,
123
+ "schema" "json" NOT NULL,
124
+ "updated_at" timestamp with time zone DEFAULT "now"() NOT NULL,
125
+ "checksum" character(32) NOT NULL,
126
+ "version" character varying(20) NOT NULL,
127
+ "migration_id" integer NOT NULL
128
+ );
118
129
  CREATE TABLE "schema_migration" (
119
130
  "id" integer NOT NULL,
120
131
  "version" character varying(20) NOT NULL,
@@ -143,6 +154,8 @@ ALTER TABLE ONLY "schema_migration"
143
154
  ADD CONSTRAINT "schema_migration_pkey" PRIMARY KEY ("id");
144
155
  ALTER TABLE ONLY "schema_migration"
145
156
  ADD CONSTRAINT "schema_migration_version_key" UNIQUE ("version");
157
+ ALTER TABLE ONLY "schema"
158
+ ADD CONSTRAINT "schema_pkey" PRIMARY KEY ("id");
146
159
  ALTER TABLE ONLY "stage"
147
160
  ADD CONSTRAINT "stage_pkey" PRIMARY KEY ("id");
148
161
  ALTER TABLE ONLY "stage"
@@ -155,11 +168,14 @@ CREATE INDEX "event_data_created" ON "event_data" USING "btree" ("created_at");
155
168
  CREATE INDEX "system_event2_table_name" ON "event_data" USING "btree" ("table_name");
156
169
  CREATE INDEX "system_event2_transaction" ON "event_data" USING "btree" ("transaction_id");
157
170
  CREATE INDEX "system_event2_type" ON "event_data" USING "btree" ("type");
158
- CREATE INDEX "system_event_row_id" ON "event_data" USING "btree" ("row_ids");
171
+ CREATE INDEX "system_event_data_row_id_0" ON "event_data" USING "btree" ((("row_ids" -> 0)));
172
+ CREATE INDEX "system_event_data_row_id_1" ON "event_data" USING "btree" ((("row_ids" -> 1)));
159
173
  CREATE INDEX "system_schema_migration_version" ON "schema_migration" USING "btree" ("version");
160
174
  CREATE INDEX "transaction_applied" ON "stage_transaction" USING "btree" ("applied_at");
161
175
  ALTER TABLE ONLY "event_data"
162
176
  ADD CONSTRAINT "event_data_schema_id_fkey" FOREIGN KEY ("schema_id") REFERENCES "schema_migration"("id");
177
+ ALTER TABLE ONLY "schema"
178
+ ADD CONSTRAINT "schema_migration_id_fkey" FOREIGN KEY ("migration_id") REFERENCES "schema_migration"("id") DEFERRABLE INITIALLY DEFERRED;
163
179
  ALTER TABLE ONLY "stage_transaction"
164
180
  ADD CONSTRAINT "stage_transaction_stage_id_fkey" FOREIGN KEY ("stage_id") REFERENCES "stage"("id") ON DELETE CASCADE;
165
181
  `)
@@ -1,9 +1,9 @@
1
- import { Schema } from '@contember/schema'
2
1
  import { ProjectConfig } from '../types'
3
2
  import { Connection, DatabaseMetadata } from '@contember/database'
3
+ import { SchemaWithMeta } from '../model'
4
4
 
5
5
  export interface SystemMigrationArgs {
6
- schemaResolver: (connection: Connection.ConnectionLike) => Promise<Schema>
6
+ schemaResolver: (connection: Connection.ConnectionLike) => Promise<SchemaWithMeta>
7
7
  databaseMetadataResolver: (connection: Connection.ConnectionLike, schema: string) => Promise<DatabaseMetadata>
8
8
  project: ProjectConfig
9
9
  }
@@ -0,0 +1,3 @@
1
+ import { Schema } from '@contember/schema'
2
+
3
+ export type SchemaGetter = (options?: { normalize?: boolean; stage?: string }) => Promise<Schema>
@@ -9,4 +9,5 @@ export namespace AuthorizationActions {
9
9
 
10
10
  export const PROJECT_MIGRATE = Authorizator.createAction(Resources.project, 'migrate')
11
11
  export const PROJECT_LIST_MIGRATIONS = Authorizator.createAction(Resources.project, 'listMigrations')
12
+ export const PROJECT_SHOW_SCHEMA = Authorizator.createAction(Resources.project, 'showSchema')
12
13
  }
@@ -8,6 +8,7 @@ export class PermissionsFactory {
8
8
  permissions.allow(ProjectRole.ADMIN, { resource: Permissions.ALL, privilege: Permissions.ALL })
9
9
  permissions.allow(ProjectRole.DEPLOYER, AuthorizationActions.PROJECT_MIGRATE)
10
10
  permissions.allow(ProjectRole.DEPLOYER, AuthorizationActions.PROJECT_LIST_MIGRATIONS)
11
+ permissions.allow(ProjectRole.DEPLOYER, AuthorizationActions.PROJECT_SHOW_SCHEMA)
11
12
 
12
13
  return permissions
13
14
  }
@@ -1,15 +1,15 @@
1
- import { Acl, Schema } from '@contember/schema'
1
+ import { Acl } from '@contember/schema'
2
2
  import { Permissions } from '@contember/authorization'
3
- import { filterSchemaByStage } from '@contember/schema-utils'
4
3
  import { AuthorizationActions } from './AuthorizationActions'
4
+ import { SchemaGetter } from '../SchemaGetter'
5
5
 
6
6
  export class StagePermissionsFactory {
7
- constructor(private readonly schema: Schema) {}
7
+ constructor(private readonly getSchema: SchemaGetter) {}
8
8
 
9
- public create(stage: string): Permissions {
9
+ public async create(stage: string): Promise<Permissions> {
10
10
  const permissions = new Permissions()
11
11
 
12
- const filteredSchema = filterSchemaByStage(this.schema, stage)
12
+ const filteredSchema = await this.getSchema({ stage })
13
13
 
14
14
  const rolePermissions = this.createRolePermissions(filteredSchema.acl)
15
15
  Object.entries(rolePermissions).forEach(([role, value]) => {
@@ -6,8 +6,8 @@ import { StagePermissionsFactory } from './StagePermissionsFactory'
6
6
  export class StageScope implements AuthorizationScope<Identity> {
7
7
  constructor(private readonly stage: string, private readonly stagePermissionsFactory: StagePermissionsFactory) {}
8
8
 
9
- getIdentityAccess(identity: Identity): Promise<AccessNode> {
10
- const permissions = this.stagePermissionsFactory.create(this.stage)
9
+ async getIdentityAccess(identity: Identity): Promise<AccessNode> {
10
+ const permissions = await this.stagePermissionsFactory.create(this.stage)
11
11
  const roles = new AccessNode.Roles(identity.roles)
12
12
  const permissionEvaluator = new AccessEvaluator.PermissionEvaluator(permissions)
13
13
  const node = new SwitchEvaluatorNode(roles, permissionEvaluator)
@@ -0,0 +1,31 @@
1
+ import { ConflictActionType, InsertBuilder } from '@contember/database'
2
+ import { Command } from '../Command'
3
+ import { SchemaWithMeta } from '../../migrations'
4
+
5
+ export class SaveSchemaCommand implements Command<void> {
6
+ constructor(private readonly input: SchemaWithMeta) {}
7
+
8
+ public async execute({ db }: Command.Args): Promise<void> {
9
+ if (!this.input.meta.updatedAt) {
10
+ throw new Error('Cannot persist empty schema')
11
+ }
12
+
13
+ await InsertBuilder.create()
14
+ .into('schema')
15
+ .values({
16
+ schema: this.input.schema,
17
+ updated_at: this.input.meta.updatedAt.toISOString(),
18
+ checksum: this.input.meta.checksum,
19
+ version: this.input.meta.version,
20
+ migration_id: this.input.meta.id,
21
+ })
22
+ .onConflict(ConflictActionType.update, ['id'], {
23
+ schema: expr => expr.select(['excluded', 'schema']),
24
+ updated_at: expr => expr.select(['excluded', 'updated_at']),
25
+ checksum: expr => expr.select(['excluded', 'checksum']),
26
+ version: expr => expr.select(['excluded', 'version']),
27
+ migration_id: expr => expr.select(['excluded', 'migration_id']),
28
+ })
29
+ .execute(db)
30
+ }
31
+ }
@@ -1,11 +1,12 @@
1
1
  import { Stage } from '../../dtos'
2
2
  import { DatabaseContext } from '../../database'
3
- import { Schema } from '@contember/schema'
4
3
  import { ExecutionResult } from 'graphql'
5
4
  import { DatabaseMetadata } from '@contember/database'
5
+ import { Schema } from '@contember/schema'
6
6
 
7
7
  export interface ContentQueryExecutorContext {
8
- schema: Schema & { id: number }
8
+ schema: Schema
9
+ schemaMeta: { id: number }
9
10
  identity: { id: string }
10
11
  db: DatabaseContext
11
12
  stage: Stage
@@ -3,8 +3,15 @@ import { DeleteMigrationCommand } from '../commands'
3
3
  import { Response, ResponseError, ResponseOk } from '../../utils'
4
4
  import { Migration } from '@contember/schema-migrations'
5
5
  import { ModifyMigrationCommand } from '../commands/migrations/ModifyMigrationCommand'
6
+ import { SchemaProvider } from './SchemaProvider'
7
+ import { SaveSchemaCommand } from '../commands/schema/SaveSchemaCommand'
6
8
 
7
9
  export class MigrationAlterer {
10
+ constructor(
11
+ private readonly schemaProvider: SchemaProvider,
12
+ ) {
13
+ }
14
+
8
15
  public async deleteMigration(
9
16
  db: DatabaseContext,
10
17
  version: string,
@@ -15,6 +22,7 @@ export class MigrationAlterer {
15
22
  await db.client.connection.rollback()
16
23
  return new ResponseError(DeleteMigrationErrorCode.notFound, `Migration ${version} was not found`)
17
24
  }
25
+ await this.refreshSchema(db)
18
26
  return new ResponseOk(undefined)
19
27
  })
20
28
  }
@@ -30,9 +38,15 @@ export class MigrationAlterer {
30
38
  await db.client.connection.rollback()
31
39
  return new ResponseError(UpdateMigrationErrorCode.notFound, `Migration ${version} was not found`)
32
40
  }
41
+ await this.refreshSchema(db)
33
42
  return new ResponseOk(undefined)
34
43
  })
35
44
  }
45
+
46
+ private async refreshSchema(db: DatabaseContext): Promise<void> {
47
+ const schemaWithMeta = await this.schemaProvider.buildSchemaFromMigrations(db)
48
+ await db.commandBus.execute(new SaveSchemaCommand(schemaWithMeta))
49
+ }
36
50
  }
37
51
 
38
52
  export enum DeleteMigrationErrorCode {