@contember/engine-tenant-api 1.2.1 → 1.3.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/dist/src/TenantContainer.d.ts +1 -1
  2. package/dist/src/TenantContainer.d.ts.map +1 -1
  3. package/dist/src/TenantContainer.js +2 -0
  4. package/dist/src/TenantContainer.js.map +1 -1
  5. package/dist/src/bin/runMigrations.d.ts +2 -0
  6. package/dist/src/bin/runMigrations.d.ts.map +1 -0
  7. package/dist/src/bin/runMigrations.js +28 -0
  8. package/dist/src/bin/runMigrations.js.map +1 -0
  9. package/dist/src/migrations/2018-08-02-174310-init.d.ts +3 -0
  10. package/dist/src/migrations/2018-08-02-174310-init.d.ts.map +1 -0
  11. package/dist/src/migrations/2018-08-02-174310-init.js +64 -0
  12. package/dist/src/migrations/2018-08-02-174310-init.js.map +1 -0
  13. package/dist/src/migrations/2018-09-03-140621-identity-project.d.ts +3 -0
  14. package/dist/src/migrations/2018-09-03-140621-identity-project.d.ts.map +1 -0
  15. package/dist/src/migrations/2018-09-03-140621-identity-project.js +33 -0
  16. package/dist/src/migrations/2018-09-03-140621-identity-project.js.map +1 -0
  17. package/dist/src/migrations/2018-10-26-165450-setup-api-key.d.ts +3 -0
  18. package/dist/src/migrations/2018-10-26-165450-setup-api-key.d.ts.map +1 -0
  19. package/dist/src/migrations/2018-10-26-165450-setup-api-key.js +27 -0
  20. package/dist/src/migrations/2018-10-26-165450-setup-api-key.js.map +1 -0
  21. package/dist/src/migrations/2018-10-26-175155-variables.d.ts +3 -0
  22. package/dist/src/migrations/2018-10-26-175155-variables.d.ts.map +1 -0
  23. package/dist/src/migrations/2018-10-26-175155-variables.js +23 -0
  24. package/dist/src/migrations/2018-10-26-175155-variables.js.map +1 -0
  25. package/dist/src/migrations/2019-02-18-110949-project-slug.d.ts +3 -0
  26. package/dist/src/migrations/2019-02-18-110949-project-slug.d.ts.map +1 -0
  27. package/dist/src/migrations/2019-02-18-110949-project-slug.js +18 -0
  28. package/dist/src/migrations/2019-02-18-110949-project-slug.js.map +1 -0
  29. package/dist/src/migrations/2019-02-18-160155-session-expiration.d.ts +3 -0
  30. package/dist/src/migrations/2019-02-18-160155-session-expiration.d.ts.map +1 -0
  31. package/dist/src/migrations/2019-02-18-160155-session-expiration.js +11 -0
  32. package/dist/src/migrations/2019-02-18-160155-session-expiration.js.map +1 -0
  33. package/dist/src/migrations/2019-05-03-163729-api-key-disabled-at.d.ts +3 -0
  34. package/dist/src/migrations/2019-05-03-163729-api-key-disabled-at.d.ts.map +1 -0
  35. package/dist/src/migrations/2019-05-03-163729-api-key-disabled-at.js +18 -0
  36. package/dist/src/migrations/2019-05-03-163729-api-key-disabled-at.js.map +1 -0
  37. package/dist/src/migrations/2019-08-14-153300-project-slug-unique.d.ts +3 -0
  38. package/dist/src/migrations/2019-08-14-153300-project-slug-unique.d.ts.map +1 -0
  39. package/dist/src/migrations/2019-08-14-153300-project-slug-unique.js +11 -0
  40. package/dist/src/migrations/2019-08-14-153300-project-slug-unique.js.map +1 -0
  41. package/dist/src/migrations/2019-09-06-111000-membership.d.ts +3 -0
  42. package/dist/src/migrations/2019-09-06-111000-membership.d.ts.map +1 -0
  43. package/dist/src/migrations/2019-09-06-111000-membership.js +51 -0
  44. package/dist/src/migrations/2019-09-06-111000-membership.js.map +1 -0
  45. package/dist/src/migrations/2019-09-06-111001-drop-old-member.d.ts +3 -0
  46. package/dist/src/migrations/2019-09-06-111001-drop-old-member.d.ts.map +1 -0
  47. package/dist/src/migrations/2019-09-06-111001-drop-old-member.js +11 -0
  48. package/dist/src/migrations/2019-09-06-111001-drop-old-member.js.map +1 -0
  49. package/dist/src/migrations/2020-01-29-idenity-note.d.ts +3 -0
  50. package/dist/src/migrations/2020-01-29-idenity-note.d.ts.map +1 -0
  51. package/dist/src/migrations/2020-01-29-idenity-note.js +18 -0
  52. package/dist/src/migrations/2020-01-29-idenity-note.js.map +1 -0
  53. package/dist/src/migrations/2020-04-17-fix-person-index.d.ts +3 -0
  54. package/dist/src/migrations/2020-04-17-fix-person-index.d.ts.map +1 -0
  55. package/dist/src/migrations/2020-04-17-fix-person-index.js +12 -0
  56. package/dist/src/migrations/2020-04-17-fix-person-index.js.map +1 -0
  57. package/dist/src/migrations/2020-05-01-170000-api-key-index.d.ts +3 -0
  58. package/dist/src/migrations/2020-05-01-170000-api-key-index.d.ts.map +1 -0
  59. package/dist/src/migrations/2020-05-01-170000-api-key-index.js +10 -0
  60. package/dist/src/migrations/2020-05-01-170000-api-key-index.js.map +1 -0
  61. package/dist/src/migrations/2020-06-08-134000-tenant-credentials.d.ts.map +1 -1
  62. package/dist/src/migrations/2020-06-08-134000-tenant-credentials.js +2 -50
  63. package/dist/src/migrations/2020-06-08-134000-tenant-credentials.js.map +1 -1
  64. package/dist/src/migrations/2020-08-07-110000-person-otp.d.ts +3 -0
  65. package/dist/src/migrations/2020-08-07-110000-person-otp.d.ts.map +1 -0
  66. package/dist/src/migrations/2020-08-07-110000-person-otp.js +12 -0
  67. package/dist/src/migrations/2020-08-07-110000-person-otp.js.map +1 -0
  68. package/dist/src/migrations/2020-08-17-162200-mail-templates.d.ts +3 -0
  69. package/dist/src/migrations/2020-08-17-162200-mail-templates.d.ts.map +1 -0
  70. package/dist/src/migrations/2020-08-17-162200-mail-templates.js +23 -0
  71. package/dist/src/migrations/2020-08-17-162200-mail-templates.js.map +1 -0
  72. package/dist/src/migrations/2020-08-21-143400-person-password-reset.d.ts +3 -0
  73. package/dist/src/migrations/2020-08-21-143400-person-password-reset.d.ts.map +1 -0
  74. package/dist/src/migrations/2020-08-21-143400-person-password-reset.js +23 -0
  75. package/dist/src/migrations/2020-08-21-143400-person-password-reset.js.map +1 -0
  76. package/dist/src/migrations/2020-09-07-094200-identity-provider.d.ts +3 -0
  77. package/dist/src/migrations/2020-09-07-094200-identity-provider.d.ts.map +1 -0
  78. package/dist/src/migrations/2020-09-07-094200-identity-provider.js +17 -0
  79. package/dist/src/migrations/2020-09-07-094200-identity-provider.js.map +1 -0
  80. package/dist/src/migrations/2021-03-28-134000-timestamp.d.ts +3 -0
  81. package/dist/src/migrations/2021-03-28-134000-timestamp.d.ts.map +1 -0
  82. package/dist/src/migrations/2021-03-28-134000-timestamp.js +27 -0
  83. package/dist/src/migrations/2021-03-28-134000-timestamp.js.map +1 -0
  84. package/dist/src/migrations/2021-07-26-105000-project-config.d.ts +3 -0
  85. package/dist/src/migrations/2021-07-26-105000-project-config.d.ts.map +1 -0
  86. package/dist/src/migrations/2021-07-26-105000-project-config.js +12 -0
  87. package/dist/src/migrations/2021-07-26-105000-project-config.js.map +1 -0
  88. package/dist/src/migrations/2021-07-26-132000-project-secrets.d.ts +3 -0
  89. package/dist/src/migrations/2021-07-26-132000-project-secrets.d.ts.map +1 -0
  90. package/dist/src/migrations/2021-07-26-132000-project-secrets.js +24 -0
  91. package/dist/src/migrations/2021-07-26-132000-project-secrets.js.map +1 -0
  92. package/dist/src/migrations/2021-07-27-174000-project-alias-index.d.ts +3 -0
  93. package/dist/src/migrations/2021-07-27-174000-project-alias-index.d.ts.map +1 -0
  94. package/dist/src/migrations/2021-07-27-174000-project-alias-index.js +10 -0
  95. package/dist/src/migrations/2021-07-27-174000-project-alias-index.js.map +1 -0
  96. package/dist/src/migrations/2021-11-24-130000-person-password-null.d.ts +3 -0
  97. package/dist/src/migrations/2021-11-24-130000-person-password-null.d.ts.map +1 -0
  98. package/dist/src/migrations/2021-11-24-130000-person-password-null.js +10 -0
  99. package/dist/src/migrations/2021-11-24-130000-person-password-null.js.map +1 -0
  100. package/dist/src/migrations/2021-11-24-161500-mail-template-project-null.d.ts +3 -0
  101. package/dist/src/migrations/2021-11-24-161500-mail-template-project-null.d.ts.map +1 -0
  102. package/dist/src/migrations/2021-11-24-161500-mail-template-project-null.js +18 -0
  103. package/dist/src/migrations/2021-11-24-161500-mail-template-project-null.js.map +1 -0
  104. package/dist/src/migrations/2022-01-04-144000-person-unique-identity.d.ts +3 -0
  105. package/dist/src/migrations/2022-01-04-144000-person-unique-identity.d.ts.map +1 -0
  106. package/dist/src/migrations/2022-01-04-144000-person-unique-identity.js +11 -0
  107. package/dist/src/migrations/2022-01-04-144000-person-unique-identity.js.map +1 -0
  108. package/dist/src/migrations/2022-02-09-111800-fix-crypted.d.ts +3 -0
  109. package/dist/src/migrations/2022-02-09-111800-fix-crypted.d.ts.map +1 -0
  110. package/dist/src/migrations/2022-02-09-111800-fix-crypted.js +22 -0
  111. package/dist/src/migrations/2022-02-09-111800-fix-crypted.js.map +1 -0
  112. package/dist/src/migrations/2022-02-11-153000-idp-auto-sign-up.d.ts +3 -0
  113. package/dist/src/migrations/2022-02-11-153000-idp-auto-sign-up.d.ts.map +1 -0
  114. package/dist/src/migrations/2022-02-11-153000-idp-auto-sign-up.js +11 -0
  115. package/dist/src/migrations/2022-02-11-153000-idp-auto-sign-up.js.map +1 -0
  116. package/dist/src/migrations/2022-06-29-105000-person-idp.d.ts +3 -0
  117. package/dist/src/migrations/2022-06-29-105000-person-idp.d.ts.map +1 -0
  118. package/dist/src/migrations/2022-06-29-105000-person-idp.js +23 -0
  119. package/dist/src/migrations/2022-06-29-105000-person-idp.js.map +1 -0
  120. package/dist/src/migrations/2022-07-07-135000-person-email-opt-uniq.d.ts +3 -0
  121. package/dist/src/migrations/2022-07-07-135000-person-email-opt-uniq.d.ts.map +1 -0
  122. package/dist/src/migrations/2022-07-07-135000-person-email-opt-uniq.js +12 -0
  123. package/dist/src/migrations/2022-07-07-135000-person-email-opt-uniq.js.map +1 -0
  124. package/dist/src/migrations/2022-07-07-141000-person-display-name.d.ts +3 -0
  125. package/dist/src/migrations/2022-07-07-141000-person-display-name.d.ts.map +1 -0
  126. package/dist/src/migrations/2022-07-07-141000-person-display-name.js +13 -0
  127. package/dist/src/migrations/2022-07-07-141000-person-display-name.js.map +1 -0
  128. package/dist/src/migrations/2022-07-14-145000-person-login-options.d.ts +3 -0
  129. package/dist/src/migrations/2022-07-14-145000-person-login-options.d.ts.map +1 -0
  130. package/dist/src/migrations/2022-07-14-145000-person-login-options.js +15 -0
  131. package/dist/src/migrations/2022-07-14-145000-person-login-options.js.map +1 -0
  132. package/dist/src/migrations/2022-11-08-project-update-notification.d.ts +3 -0
  133. package/dist/src/migrations/2022-11-08-project-update-notification.d.ts.map +1 -0
  134. package/dist/src/migrations/2022-11-08-project-update-notification.js +64 -0
  135. package/dist/src/migrations/2022-11-08-project-update-notification.js.map +1 -0
  136. package/dist/src/migrations/runner.d.ts +1 -1
  137. package/dist/src/migrations/runner.d.ts.map +1 -1
  138. package/dist/src/migrations/runner.js +68 -5
  139. package/dist/src/migrations/runner.js.map +1 -1
  140. package/dist/src/migrations/snapshot-factory.d.ts +5 -0
  141. package/dist/src/migrations/snapshot-factory.d.ts.map +1 -0
  142. package/dist/src/migrations/snapshot-factory.js +18 -0
  143. package/dist/src/migrations/snapshot-factory.js.map +1 -0
  144. package/dist/src/migrations/snapshot.d.ts +4 -0
  145. package/dist/src/migrations/snapshot.d.ts.map +1 -0
  146. package/dist/src/migrations/snapshot.js +202 -0
  147. package/dist/src/migrations/snapshot.js.map +1 -0
  148. package/dist/src/migrations/tenantCredentials.d.ts +4 -0
  149. package/dist/src/migrations/tenantCredentials.d.ts.map +1 -0
  150. package/dist/src/migrations/tenantCredentials.js +57 -0
  151. package/dist/src/migrations/tenantCredentials.js.map +1 -0
  152. package/dist/src/migrations/types.d.ts +2 -0
  153. package/dist/src/migrations/types.d.ts.map +1 -1
  154. package/dist/src/model/commands/idp/UpdateIdpCommand.d.ts +1 -0
  155. package/dist/src/model/commands/idp/UpdateIdpCommand.d.ts.map +1 -1
  156. package/dist/src/model/queries/membership/ProjectMembersQuery.d.ts +3 -3
  157. package/dist/src/model/queries/membership/ProjectMembersQuery.d.ts.map +1 -1
  158. package/dist/src/model/queries/membership/ProjectMembersQuery.js +22 -10
  159. package/dist/src/model/queries/membership/ProjectMembersQuery.js.map +1 -1
  160. package/dist/src/model/service/IDPSignInManager.d.ts +3 -3
  161. package/dist/src/model/service/IDPSignInManager.d.ts.map +1 -1
  162. package/dist/src/model/service/IDPSignInManager.js +13 -5
  163. package/dist/src/model/service/IDPSignInManager.js.map +1 -1
  164. package/dist/src/model/service/ProjectMemberManager.d.ts +2 -2
  165. package/dist/src/model/service/ProjectMemberManager.d.ts.map +1 -1
  166. package/dist/src/model/service/ProjectMemberManager.js +2 -2
  167. package/dist/src/model/service/ProjectMemberManager.js.map +1 -1
  168. package/dist/src/model/service/idp/IDPHandlerRegistry.d.ts +2 -2
  169. package/dist/src/model/service/idp/IDPHandlerRegistry.d.ts.map +1 -1
  170. package/dist/src/model/service/idp/IDPHandlerRegistry.js.map +1 -1
  171. package/dist/src/model/service/idp/IDPManager.d.ts.map +1 -1
  172. package/dist/src/model/service/idp/IDPManager.js +7 -2
  173. package/dist/src/model/service/idp/IDPManager.js.map +1 -1
  174. package/dist/src/model/service/idp/IdentityProviderHandler.d.ts +6 -9
  175. package/dist/src/model/service/idp/IdentityProviderHandler.d.ts.map +1 -1
  176. package/dist/src/model/service/idp/index.d.ts +3 -1
  177. package/dist/src/model/service/idp/index.d.ts.map +1 -1
  178. package/dist/src/model/service/idp/index.js +3 -1
  179. package/dist/src/model/service/idp/index.js.map +1 -1
  180. package/dist/src/model/service/idp/providers/AppleProvider.d.ts +29 -0
  181. package/dist/src/model/service/idp/providers/AppleProvider.d.ts.map +1 -0
  182. package/dist/src/model/service/idp/providers/AppleProvider.js +79 -0
  183. package/dist/src/model/service/idp/providers/AppleProvider.js.map +1 -0
  184. package/dist/src/model/service/idp/providers/FacebookProvider.d.ts +27 -0
  185. package/dist/src/model/service/idp/providers/FacebookProvider.d.ts.map +1 -0
  186. package/dist/src/model/service/idp/providers/FacebookProvider.js +137 -0
  187. package/dist/src/model/service/idp/providers/FacebookProvider.js.map +1 -0
  188. package/dist/src/model/service/idp/providers/OIDCHelpers.d.ts +10 -0
  189. package/dist/src/model/service/idp/providers/OIDCHelpers.d.ts.map +1 -0
  190. package/dist/src/model/service/idp/providers/OIDCHelpers.js +56 -0
  191. package/dist/src/model/service/idp/providers/OIDCHelpers.js.map +1 -0
  192. package/dist/src/model/service/idp/providers/OIDCProvider.d.ts +19 -0
  193. package/dist/src/model/service/idp/providers/OIDCProvider.d.ts.map +1 -0
  194. package/dist/src/model/service/idp/providers/OIDCProvider.js +40 -0
  195. package/dist/src/model/service/idp/providers/OIDCProvider.js.map +1 -0
  196. package/dist/src/model/service/idp/providers/OIDCTypes.d.ts +62 -0
  197. package/dist/src/model/service/idp/providers/OIDCTypes.d.ts.map +1 -0
  198. package/dist/src/model/service/idp/providers/OIDCTypes.js +56 -0
  199. package/dist/src/model/service/idp/providers/OIDCTypes.js.map +1 -0
  200. package/dist/src/model/service/idp/providers/helpers.d.ts +3 -0
  201. package/dist/src/model/service/idp/providers/helpers.d.ts.map +1 -0
  202. package/dist/src/model/service/idp/providers/helpers.js +40 -0
  203. package/dist/src/model/service/idp/providers/helpers.js.map +1 -0
  204. package/dist/src/model/utils/DatabaseContext.d.ts +1 -0
  205. package/dist/src/model/utils/DatabaseContext.d.ts.map +1 -1
  206. package/dist/src/model/utils/DatabaseContext.js +5 -0
  207. package/dist/src/model/utils/DatabaseContext.js.map +1 -1
  208. package/dist/src/resolvers/mutation/idp/UpdateIDPMutationResolver.d.ts.map +1 -1
  209. package/dist/src/resolvers/mutation/idp/UpdateIDPMutationResolver.js +4 -3
  210. package/dist/src/resolvers/mutation/idp/UpdateIDPMutationResolver.js.map +1 -1
  211. package/dist/src/resolvers/mutation/person/IDPMutationResolver.d.ts.map +1 -1
  212. package/dist/src/resolvers/mutation/person/IDPMutationResolver.js +10 -3
  213. package/dist/src/resolvers/mutation/person/IDPMutationResolver.js.map +1 -1
  214. package/dist/src/resolvers/types/ProjectTypeResolver.d.ts.map +1 -1
  215. package/dist/src/resolvers/types/ProjectTypeResolver.js +14 -6
  216. package/dist/src/resolvers/types/ProjectTypeResolver.js.map +1 -1
  217. package/dist/src/schema/index.d.ts +26 -8
  218. package/dist/src/schema/index.d.ts.map +1 -1
  219. package/dist/src/schema/index.js +1 -0
  220. package/dist/src/schema/index.js.map +1 -1
  221. package/dist/src/schema/tenant.graphql.d.ts.map +1 -1
  222. package/dist/src/schema/tenant.graphql.js +32 -6
  223. package/dist/src/schema/tenant.graphql.js.map +1 -1
  224. package/dist/src/tsconfig.tsbuildinfo +1 -1
  225. package/dist/tests/cases/integration/db/invite.test.js +2 -2
  226. package/dist/tests/cases/integration/db/unmanagedInvite.test.js +2 -2
  227. package/dist/{src → tests/cases}/migrations/2020-06-08-134000-tenant-credentials.test.d.ts +1 -1
  228. package/dist/tests/cases/migrations/2020-06-08-134000-tenant-credentials.test.d.ts.map +1 -0
  229. package/dist/{src → tests/cases}/migrations/2020-06-08-134000-tenant-credentials.test.js +19 -9
  230. package/dist/tests/cases/migrations/2020-06-08-134000-tenant-credentials.test.js.map +1 -0
  231. package/dist/tests/src/IdPMock.d.ts +4 -4
  232. package/dist/tests/src/IdPMock.d.ts.map +1 -1
  233. package/dist/tests/src/IdPMock.js +2 -2
  234. package/dist/tests/src/IdPMock.js.map +1 -1
  235. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  236. package/package.json +14 -13
  237. package/src/TenantContainer.ts +4 -2
  238. package/src/bin/runMigrations.ts +32 -0
  239. package/src/migrations/{2018-08-02-174310-init.sql → 2018-08-02-174310-init.ts} +8 -1
  240. package/src/migrations/{2018-09-03-140621-identity-project.sql → 2018-09-03-140621-identity-project.ts} +8 -0
  241. package/src/migrations/{2018-10-26-165450-setup-api-key.sql → 2018-10-26-165450-setup-api-key.ts} +8 -0
  242. package/src/migrations/{2018-10-26-175155-variables.sql → 2018-10-26-175155-variables.ts} +7 -0
  243. package/src/migrations/{2019-02-18-110949-project-slug.sql → 2019-02-18-110949-project-slug.ts} +8 -0
  244. package/src/migrations/2019-02-18-160155-session-expiration.ts +10 -0
  245. package/src/migrations/{2019-05-03-163729-api-key-disabled-at.sql → 2019-05-03-163729-api-key-disabled-at.ts} +8 -0
  246. package/src/migrations/2019-08-14-153300-project-slug-unique.ts +10 -0
  247. package/src/migrations/{2019-09-06-111000-membership.sql → 2019-09-06-111000-membership.ts} +8 -0
  248. package/src/migrations/2019-09-06-111001-drop-old-member.ts +10 -0
  249. package/src/migrations/2020-01-29-idenity-note.ts +18 -0
  250. package/src/migrations/2020-04-17-fix-person-index.ts +12 -0
  251. package/src/migrations/2020-05-01-170000-api-key-index.ts +10 -0
  252. package/src/migrations/2020-06-08-134000-tenant-credentials.ts +3 -54
  253. package/src/migrations/2020-08-07-110000-person-otp.ts +12 -0
  254. package/src/migrations/{2020-08-17-162200-mail-templates.sql → 2020-08-17-162200-mail-templates.ts} +8 -0
  255. package/src/migrations/{2020-08-21-143400-person-password-reset.sql → 2020-08-21-143400-person-password-reset.ts} +8 -0
  256. package/src/migrations/{2020-09-07-094200-identity-provider.sql → 2020-09-07-094200-identity-provider.ts} +8 -0
  257. package/src/migrations/{2021-03-28-134000-timestamp.sql → 2021-03-28-134000-timestamp.ts} +9 -0
  258. package/src/migrations/2021-07-26-105000-project-config.ts +12 -0
  259. package/src/migrations/{2021-07-26-132000-project-secrets.sql → 2021-07-26-132000-project-secrets.ts} +8 -0
  260. package/src/migrations/2021-07-27-174000-project-alias-index.ts +10 -0
  261. package/src/migrations/2021-11-24-130000-person-password-null.ts +10 -0
  262. package/src/migrations/{2021-11-24-161500-mail-template-project-null.sql → 2021-11-24-161500-mail-template-project-null.ts} +8 -0
  263. package/src/migrations/2022-01-04-144000-person-unique-identity.ts +10 -0
  264. package/src/migrations/{2022-02-09-111800-fix-crypted.sql → 2022-02-09-111800-fix-crypted.ts} +8 -0
  265. package/src/migrations/2022-02-11-153000-idp-auto-sign-up.ts +10 -0
  266. package/src/migrations/{2022-06-29-105000-person-idp.sql → 2022-06-29-105000-person-idp.ts} +8 -0
  267. package/src/migrations/2022-07-07-135000-person-email-opt-uniq.ts +11 -0
  268. package/src/migrations/2022-07-07-141000-person-display-name.ts +13 -0
  269. package/src/migrations/{2022-07-14-145000-person-login-options.sql → 2022-07-14-145000-person-login-options.ts} +9 -0
  270. package/src/migrations/2022-11-08-project-update-notification.ts +64 -0
  271. package/src/migrations/runner.ts +72 -8
  272. package/src/migrations/snapshot-factory.ts +21 -0
  273. package/src/migrations/snapshot-template-end.txt +10 -0
  274. package/src/migrations/snapshot-template-start.txt +6 -0
  275. package/src/migrations/snapshot.ts +202 -0
  276. package/src/migrations/tenantCredentials.ts +58 -0
  277. package/src/migrations/types.ts +3 -0
  278. package/src/model/commands/idp/UpdateIdpCommand.ts +1 -0
  279. package/src/model/queries/membership/ProjectMembersQuery.ts +23 -14
  280. package/src/model/service/IDPSignInManager.ts +13 -10
  281. package/src/model/service/ProjectMemberManager.ts +3 -3
  282. package/src/model/service/idp/IDPHandlerRegistry.ts +3 -3
  283. package/src/model/service/idp/IDPManager.ts +6 -2
  284. package/src/model/service/idp/IdentityProviderHandler.ts +7 -15
  285. package/src/model/service/idp/index.ts +3 -1
  286. package/src/model/service/idp/providers/AppleProvider.ts +65 -0
  287. package/src/model/service/idp/providers/FacebookProvider.ts +125 -0
  288. package/src/model/service/idp/providers/OIDCHelpers.ts +54 -0
  289. package/src/model/service/idp/providers/OIDCProvider.ts +40 -0
  290. package/src/model/service/idp/providers/OIDCTypes.ts +61 -0
  291. package/src/model/service/idp/providers/helpers.ts +12 -0
  292. package/src/model/utils/DatabaseContext.ts +6 -0
  293. package/src/resolvers/mutation/idp/UpdateIDPMutationResolver.ts +1 -0
  294. package/src/resolvers/mutation/person/IDPMutationResolver.ts +9 -7
  295. package/src/resolvers/types/ProjectTypeResolver.ts +9 -2
  296. package/src/schema/index.ts +28 -8
  297. package/src/schema/tenant.graphql.ts +32 -6
  298. package/src/tsconfig.json +10 -30
  299. package/tests/cases/integration/db/invite.test.ts +2 -2
  300. package/tests/cases/integration/db/unmanagedInvite.test.ts +2 -2
  301. package/{src → tests/cases}/migrations/2020-06-08-134000-tenant-credentials.test.ts +17 -9
  302. package/tests/src/IdPMock.ts +4 -4
  303. package/tests/tsconfig.json +2 -6
  304. package/tsconfig.json +2 -6
  305. package/dist/src/migrations/2020-06-08-134000-tenant-credentials.test.d.ts.map +0 -1
  306. package/dist/src/migrations/2020-06-08-134000-tenant-credentials.test.js.map +0 -1
  307. package/dist/src/model/service/idp/OIDCProvider.d.ts +0 -25
  308. package/dist/src/model/service/idp/OIDCProvider.d.ts.map +0 -1
  309. package/dist/src/model/service/idp/OIDCProvider.js +0 -108
  310. package/dist/src/model/service/idp/OIDCProvider.js.map +0 -1
  311. package/src/migrations/2019-02-18-160155-session-expiration.sql +0 -2
  312. package/src/migrations/2019-08-14-153300-project-slug-unique.sql +0 -2
  313. package/src/migrations/2019-09-06-111001-drop-old-member.sql +0 -2
  314. package/src/migrations/2020-01-29-idenity-note.sql +0 -9
  315. package/src/migrations/2020-04-17-fix-person-index.sql +0 -3
  316. package/src/migrations/2020-05-01-170000-api-key-index.sql +0 -1
  317. package/src/migrations/2020-08-07-110000-person-otp.sql +0 -3
  318. package/src/migrations/2021-07-26-105000-project-config.sql +0 -3
  319. package/src/migrations/2021-07-27-174000-project-alias-index.sql +0 -1
  320. package/src/migrations/2021-11-24-130000-person-password-null.sql +0 -1
  321. package/src/migrations/2022-01-04-144000-person-unique-identity.sql +0 -2
  322. package/src/migrations/2022-02-11-153000-idp-auto-sign-up.sql +0 -2
  323. package/src/migrations/2022-07-07-135000-person-email-opt-uniq.sql +0 -3
  324. package/src/migrations/2022-07-07-141000-person-display-name.sql +0 -4
  325. package/src/model/service/idp/OIDCProvider.ts +0 -100
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sql = `
4
+ CREATE FUNCTION project_updated()
5
+ RETURNS TRIGGER AS
6
+ $$
7
+ BEGIN
8
+ NEW.updated_at = 'now';
9
+ PERFORM pg_notify('project_updated', new.id::text);
10
+ RETURN new;
11
+ END;
12
+ $$ LANGUAGE plpgsql;
13
+
14
+ CREATE FUNCTION project_deleted()
15
+ RETURNS TRIGGER AS
16
+ $$
17
+ BEGIN
18
+ PERFORM pg_notify('project_updated', old.id::text);
19
+ RETURN NULL;
20
+ END;
21
+ $$ LANGUAGE plpgsql;
22
+
23
+
24
+ CREATE FUNCTION project_secret_updated()
25
+ RETURNS TRIGGER AS
26
+ $$
27
+ BEGIN
28
+ UPDATE project SET updated_at = 'now' WHERE id = COALESCE(new.project_id, old.project_id);
29
+ PERFORM pg_notify('project_updated', COALESCE(new.project_id, old.project_id)::TEXT);
30
+ RETURN NULL;
31
+ END;
32
+ $$ LANGUAGE plpgsql;
33
+
34
+ CREATE TRIGGER project_updated
35
+ BEFORE INSERT OR UPDATE OF name, slug, config
36
+ ON project
37
+ FOR EACH ROW
38
+ EXECUTE PROCEDURE project_updated();
39
+
40
+ CREATE TRIGGER project_deleted
41
+ AFTER DELETE
42
+ ON project
43
+ FOR EACH ROW
44
+ EXECUTE PROCEDURE project_deleted();
45
+
46
+ CREATE TRIGGER project_secret_updated
47
+ AFTER DELETE OR INSERT OR UPDATE
48
+ ON project_secret
49
+ FOR EACH ROW
50
+ EXECUTE PROCEDURE project_secret_updated();
51
+
52
+
53
+ DO LANGUAGE plpgsql
54
+ $$
55
+ BEGIN
56
+ EXECUTE FORMAT('ALTER FUNCTION project_secret_updated() SET SEARCH_PATH = %s', QUOTE_IDENT(CURRENT_SCHEMA()));
57
+ END
58
+ $$;
59
+ `;
60
+ async function default_1(builder) {
61
+ builder.sql(sql);
62
+ }
63
+ exports.default = default_1;
64
+ //# sourceMappingURL=2022-11-08-project-update-notification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2022-11-08-project-update-notification.js","sourceRoot":"","sources":["../../../src/migrations/2022-11-08-project-update-notification.ts"],"names":[],"mappings":";;AAEA,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDX,CAAA;AAEc,KAAK,oBAAW,OAAyB;IACvD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACjB,CAAC;AAFD,4BAEC"}
@@ -13,7 +13,7 @@ export declare class TenantMigrationsRunner {
13
13
  private readonly schema;
14
14
  private readonly tenantCredentials;
15
15
  private readonly providers;
16
- constructor(db: DatabaseConfig, schema: string, tenantCredentials: TenantCredentials, providers: Providers);
16
+ constructor(db: DatabaseConfig, schema: string, tenantCredentials: TenantCredentials, providers: Pick<Providers, 'bcrypt' | 'uuid'>);
17
17
  run(logger: Logger): Promise<{
18
18
  name: string;
19
19
  }[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/migrations/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,cAAc,EAAgB,MAAM,qBAAqB,CAAA;AAIzG,OAAO,EAAoB,SAAS,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,MAAM,WAAW,iBAAiB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;CACrB;AAQD,qBAAa,sBAAsB;IAEjC,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAHT,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,SAAS;IAIzB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAkB7D"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/migrations/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,cAAc,EAAgB,MAAM,qBAAqB,CAAA;AAoCzG,OAAO,EAAoB,SAAS,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,MAAM,WAAW,iBAAiB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;CACrB;AAqCD,qBAAa,sBAAsB;IAEjC,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAHT,EAAE,EAAE,cAAc,EAClB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAC;IAIlD,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAqB7D"}
@@ -6,12 +6,73 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TenantMigrationsRunner = void 0;
7
7
  const database_1 = require("@contember/database");
8
8
  const database_migrations_1 = require("@contember/database-migrations");
9
+ const _2018_08_02_174310_init_1 = __importDefault(require("./2018-08-02-174310-init"));
10
+ const _2018_09_03_140621_identity_project_1 = __importDefault(require("./2018-09-03-140621-identity-project"));
11
+ const _2018_10_26_165450_setup_api_key_1 = __importDefault(require("./2018-10-26-165450-setup-api-key"));
12
+ const _2018_10_26_175155_variables_1 = __importDefault(require("./2018-10-26-175155-variables"));
13
+ const _2019_02_18_110949_project_slug_1 = __importDefault(require("./2019-02-18-110949-project-slug"));
14
+ const _2019_02_18_160155_session_expiration_1 = __importDefault(require("./2019-02-18-160155-session-expiration"));
15
+ const _2019_05_03_163729_api_key_disabled_at_1 = __importDefault(require("./2019-05-03-163729-api-key-disabled-at"));
16
+ const _2019_08_14_153300_project_slug_unique_1 = __importDefault(require("./2019-08-14-153300-project-slug-unique"));
17
+ const _2019_09_06_111000_membership_1 = __importDefault(require("./2019-09-06-111000-membership"));
18
+ const _2019_09_06_111001_drop_old_member_1 = __importDefault(require("./2019-09-06-111001-drop-old-member"));
19
+ const _2020_01_29_idenity_note_1 = __importDefault(require("./2020-01-29-idenity-note"));
20
+ const _2020_04_17_fix_person_index_1 = __importDefault(require("./2020-04-17-fix-person-index"));
21
+ const _2020_05_01_170000_api_key_index_1 = __importDefault(require("./2020-05-01-170000-api-key-index"));
9
22
  const _2020_06_08_134000_tenant_credentials_1 = __importDefault(require("./2020-06-08-134000-tenant-credentials"));
23
+ const _2020_08_07_110000_person_otp_1 = __importDefault(require("./2020-08-07-110000-person-otp"));
24
+ const _2020_08_17_162200_mail_templates_1 = __importDefault(require("./2020-08-17-162200-mail-templates"));
25
+ const _2020_08_21_143400_person_password_reset_1 = __importDefault(require("./2020-08-21-143400-person-password-reset"));
26
+ const _2020_09_07_094200_identity_provider_1 = __importDefault(require("./2020-09-07-094200-identity-provider"));
27
+ const _2021_03_28_134000_timestamp_1 = __importDefault(require("./2021-03-28-134000-timestamp"));
28
+ const _2021_07_26_105000_project_config_1 = __importDefault(require("./2021-07-26-105000-project-config"));
29
+ const _2021_07_26_132000_project_secrets_1 = __importDefault(require("./2021-07-26-132000-project-secrets"));
30
+ const _2021_07_27_174000_project_alias_index_1 = __importDefault(require("./2021-07-27-174000-project-alias-index"));
31
+ const _2021_11_24_130000_person_password_null_1 = __importDefault(require("./2021-11-24-130000-person-password-null"));
32
+ const _2021_11_24_161500_mail_template_project_null_1 = __importDefault(require("./2021-11-24-161500-mail-template-project-null"));
33
+ const _2022_01_04_144000_person_unique_identity_1 = __importDefault(require("./2022-01-04-144000-person-unique-identity"));
34
+ const _2022_02_09_111800_fix_crypted_1 = __importDefault(require("./2022-02-09-111800-fix-crypted"));
35
+ const _2022_02_11_153000_idp_auto_sign_up_1 = __importDefault(require("./2022-02-11-153000-idp-auto-sign-up"));
36
+ const _2022_06_29_105000_person_idp_1 = __importDefault(require("./2022-06-29-105000-person-idp"));
37
+ const _2022_07_07_135000_person_email_opt_uniq_1 = __importDefault(require("./2022-07-07-135000-person-email-opt-uniq"));
38
+ const _2022_07_07_141000_person_display_name_1 = __importDefault(require("./2022-07-07-141000-person-display-name"));
39
+ const _2022_07_14_145000_person_login_options_1 = __importDefault(require("./2022-07-14-145000-person-login-options"));
40
+ const _2022_11_08_project_update_notification_1 = __importDefault(require("./2022-11-08-project-update-notification"));
41
+ const snapshot_1 = __importDefault(require("./snapshot"));
10
42
  const model_1 = require("../model");
11
- const getMigrations = () => {
12
- return (0, database_migrations_1.loadMigrations)(process.env.CONTEMBER_TENANT_MIGRATIONS_DIR || __dirname, [
13
- new database_migrations_1.Migration('2020-06-08-134000-tenant-credentials', _2020_06_08_134000_tenant_credentials_1.default),
14
- ]);
43
+ const migrations = {
44
+ '2018-08-02-174310-init': _2018_08_02_174310_init_1.default,
45
+ '2018-09-03-140621-identity-project': _2018_09_03_140621_identity_project_1.default,
46
+ '2018-10-26-165450-setup-api-key': _2018_10_26_165450_setup_api_key_1.default,
47
+ '2018-10-26-175155-variables': _2018_10_26_175155_variables_1.default,
48
+ '2019-02-18-110949-project-slug': _2019_02_18_110949_project_slug_1.default,
49
+ '2019-02-18-160155-session-expiration': _2019_02_18_160155_session_expiration_1.default,
50
+ '2019-05-03-163729-api-key-disabled-at': _2019_05_03_163729_api_key_disabled_at_1.default,
51
+ '2019-08-14-153300-project-slug-unique': _2019_08_14_153300_project_slug_unique_1.default,
52
+ '2019-09-06-111000-membership': _2019_09_06_111000_membership_1.default,
53
+ '2019-09-06-111001-drop-old-member': _2019_09_06_111001_drop_old_member_1.default,
54
+ '2020-01-29-idenity-note': _2020_01_29_idenity_note_1.default,
55
+ '2020-04-17-fix-person-index': _2020_04_17_fix_person_index_1.default,
56
+ '2020-05-01-170000-api-key-index': _2020_05_01_170000_api_key_index_1.default,
57
+ '2020-06-08-134000-tenant-credentials': _2020_06_08_134000_tenant_credentials_1.default,
58
+ '2020-08-07-110000-person-otp': _2020_08_07_110000_person_otp_1.default,
59
+ '2020-08-17-162200-mail-templates': _2020_08_17_162200_mail_templates_1.default,
60
+ '2020-08-21-143400-person-password-reset': _2020_08_21_143400_person_password_reset_1.default,
61
+ '2020-09-07-094200-identity-provider': _2020_09_07_094200_identity_provider_1.default,
62
+ '2021-03-28-134000-timestamp': _2021_03_28_134000_timestamp_1.default,
63
+ '2021-07-26-105000-project-config': _2021_07_26_105000_project_config_1.default,
64
+ '2021-07-26-132000-project-secrets': _2021_07_26_132000_project_secrets_1.default,
65
+ '2021-07-27-174000-project-alias-index': _2021_07_27_174000_project_alias_index_1.default,
66
+ '2021-11-24-130000-person-password-null': _2021_11_24_130000_person_password_null_1.default,
67
+ '2021-11-24-161500-mail-template-project-null': _2021_11_24_161500_mail_template_project_null_1.default,
68
+ '2022-01-04-144000-person-unique-identity': _2022_01_04_144000_person_unique_identity_1.default,
69
+ '2022-02-09-111800-fix-crypted': _2022_02_09_111800_fix_crypted_1.default,
70
+ '2022-02-11-153000-idp-auto-sign-up': _2022_02_11_153000_idp_auto_sign_up_1.default,
71
+ '2022-06-29-105000-person-idp': _2022_06_29_105000_person_idp_1.default,
72
+ '2022-07-07-135000-person-email-opt-uniq': _2022_07_07_135000_person_email_opt_uniq_1.default,
73
+ '2022-07-07-141000-person-display-name': _2022_07_07_141000_person_display_name_1.default,
74
+ '2022-07-14-145000-person-login-options': _2022_07_14_145000_person_login_options_1.default,
75
+ '2022-11-08-project-update-notification': _2022_11_08_project_update_notification_1.default,
15
76
  };
16
77
  class TenantMigrationsRunner {
17
78
  constructor(db, schema, tenantCredentials, providers) {
@@ -24,7 +85,8 @@ class TenantMigrationsRunner {
24
85
  await (0, database_1.createDatabaseIfNotExists)(this.db, message => typeof message === 'string' ? logger.warn(message) : logger.error(message));
25
86
  const connection = database_1.Connection.createSingle(this.db, err => logger.error(err));
26
87
  const result = await connection.scope(async (connection) => {
27
- const innerRunner = new database_migrations_1.MigrationsRunner(connection, this.schema, getMigrations);
88
+ const migrationsResolver = new database_migrations_1.SnapshotMigrationResolver(snapshot_1.default, migrations);
89
+ const innerRunner = new database_migrations_1.MigrationsRunner(connection, this.schema, migrationsResolver);
28
90
  return await innerRunner.migrate(message => logger.warn(message), {
29
91
  getCredentials: async () => {
30
92
  var _a;
@@ -35,6 +97,7 @@ class TenantMigrationsRunner {
35
97
  rootPasswordBcrypted: this.tenantCredentials.rootPassword ? await this.providers.bcrypt(this.tenantCredentials.rootPassword) : undefined,
36
98
  });
37
99
  },
100
+ providers: this.providers,
38
101
  });
39
102
  });
40
103
  await connection.end();
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/migrations/runner.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAyG;AAEzG,wEAAkH;AAClH,mHAAsE;AACtE,oCAAsD;AAWtD,MAAM,aAAa,GAAG,GAA8C,EAAE;IACrE,OAAO,IAAA,oCAAc,EAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,SAAS,EAAE;QAC/E,IAAI,+BAAS,CAAC,sCAAsC,EAAE,+CAAiB,CAAC;KACxE,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAa,sBAAsB;IAClC,YACkB,EAAkB,EAClB,MAAc,EACd,iBAAoC,EACpC,SAAoB;QAHpB,OAAE,GAAF,EAAE,CAAgB;QAClB,WAAM,GAAN,MAAM,CAAQ;QACd,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,cAAS,GAAT,SAAS,CAAW;IAEtC,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,MAAc;QAC9B,MAAM,IAAA,oCAAyB,EAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;QAC/H,MAAM,UAAU,GAAG,qBAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;QAC7E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,EAAC,UAAU,EAAC,EAAE;YACxD,MAAM,WAAW,GAAG,IAAI,sCAAkB,CAAsB,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;YACvG,OAAO,MAAM,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBACjE,cAAc,EAAE,KAAK,IAAI,EAAE;;oBAAC,OAAA,CAAC;wBAC5B,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;wBACnH,aAAa,EAAE,MAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,mCAC/C,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;wBACvG,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,SAAS;wBAC3C,oBAAoB,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;qBACxI,CAAC,CAAA;iBAAA;aACF,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;QACF,MAAM,UAAU,CAAC,GAAG,EAAE,CAAA;QACtB,OAAO,MAAM,CAAA;IACd,CAAC;CACD;AA3BD,wDA2BC"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/migrations/runner.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAyG;AAEzG,wEAAkH;AAClH,uFAA0D;AAC1D,+GAAiF;AACjF,yGAA0E;AAC1E,iGAAoE;AACpE,uGAAyE;AACzE,mHAAqF;AACrF,qHAAqF;AACrF,qHAAsF;AACtF,mGAAsE;AACtE,6GAA8E;AAC9E,yFAA4D;AAC5D,iGAAmE;AACnE,yGAA0E;AAC1E,mHAAqF;AACrF,mGAAqE;AACrE,2GAA6E;AAC7E,yHAA0F;AAC1F,iHAAmF;AACnF,iGAAoE;AACpE,2GAA6E;AAC7E,6GAA+E;AAC/E,qHAAsF;AACtF,uHAAwF;AACxF,mIAAmG;AACnG,2HAA4F;AAC5F,qGAAuE;AACvE,+GAA+E;AAC/E,mGAAqE;AACrE,yHAAyF;AACzF,qHAAsF;AACtF,uHAAwF;AACxF,uHAAyF;AACzF,0DAAiC;AACjC,oCAAsD;AAWtD,MAAM,UAAU,GAAG;IAClB,wBAAwB,EAAE,iCAAmB;IAC7C,oCAAoC,EAAE,6CAA8B;IACpE,iCAAiC,EAAE,0CAA0B;IAC7D,6BAA6B,EAAE,sCAAwB;IACvD,gCAAgC,EAAE,yCAA0B;IAC5D,sCAAsC,EAAE,+CAAgC;IACxE,uCAAuC,EAAE,gDAA+B;IACxE,uCAAuC,EAAE,gDAAgC;IACzE,8BAA8B,EAAE,uCAAyB;IACzD,mCAAmC,EAAE,4CAA4B;IACjE,yBAAyB,EAAE,kCAAoB;IAC/C,6BAA6B,EAAE,sCAAuB;IACtD,iCAAiC,EAAE,0CAA0B;IAC7D,sCAAsC,EAAE,+CAAgC;IACxE,8BAA8B,EAAE,uCAAwB;IACxD,kCAAkC,EAAE,2CAA4B;IAChE,yCAAyC,EAAE,kDAAkC;IAC7E,qCAAqC,EAAE,8CAA+B;IACtE,6BAA6B,EAAE,sCAAwB;IACvD,kCAAkC,EAAE,2CAA4B;IAChE,mCAAmC,EAAE,4CAA6B;IAClE,uCAAuC,EAAE,gDAAgC;IACzE,wCAAwC,EAAE,iDAAiC;IAC3E,8CAA8C,EAAE,uDAAsC;IACtF,0CAA0C,EAAE,mDAAmC;IAC/E,+BAA+B,EAAE,wCAAyB;IAC1D,oCAAoC,EAAE,6CAA4B;IAClE,8BAA8B,EAAE,uCAAwB;IACxD,yCAAyC,EAAE,kDAAiC;IAC5E,uCAAuC,EAAE,gDAAgC;IACzE,wCAAwC,EAAE,iDAAiC;IAC3E,wCAAwC,EAAE,iDAAkC;CAC5E,CAAA;AAED,MAAa,sBAAsB;IAClC,YACkB,EAAkB,EAClB,MAAc,EACd,iBAAoC,EACpC,SAA6C;QAH7C,OAAE,GAAF,EAAE,CAAgB;QAClB,WAAM,GAAN,MAAM,CAAQ;QACd,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,cAAS,GAAT,SAAS,CAAoC;IAE/D,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,MAAc;QAC9B,MAAM,IAAA,oCAAyB,EAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;QAC/H,MAAM,UAAU,GAAG,qBAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;QAC7E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,EAAC,UAAU,EAAC,EAAE;YACxD,MAAM,kBAAkB,GAAG,IAAI,+CAAyB,CAAC,kBAAQ,EAAE,UAAU,CAAC,CAAA;YAE9E,MAAM,WAAW,GAAG,IAAI,sCAAkB,CAAsB,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;YAC5G,OAAO,MAAM,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBACjE,cAAc,EAAE,KAAK,IAAI,EAAE;;oBAAC,OAAA,CAAC;wBAC5B,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;wBACnH,aAAa,EAAE,MAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,mCAC/C,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;wBACvG,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,SAAS;wBAC3C,oBAAoB,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;qBACxI,CAAC,CAAA;iBAAA;gBACF,SAAS,EAAE,IAAI,CAAC,SAAS;aACzB,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;QACF,MAAM,UAAU,CAAC,GAAG,EAAE,CAAA;QACtB,OAAO,MAAM,CAAA;IACd,CAAC;CACD;AA9BD,wDA8BC"}
@@ -0,0 +1,5 @@
1
+ import { MigrationArgs, MigrationBuilder } from '@contember/database-migrations';
2
+ import { TenantMigrationArgs } from './types';
3
+ declare const _default: (sqlFactory: () => string) => Promise<(builder: MigrationBuilder, args: MigrationArgs<TenantMigrationArgs>) => Promise<void>>;
4
+ export default _default;
5
+ //# sourceMappingURL=snapshot-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-factory.d.ts","sourceRoot":"","sources":["../../../src/migrations/snapshot-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;qCAGX,MAAM,MAAM,uBACtB,gBAAgB,QAAQ,cAAc,mBAAmB,CAAC;AADlF,wBAgBC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tenantCredentials_1 = require("./tenantCredentials");
4
+ exports.default = async (sqlFactory) => {
5
+ return async (builder, args) => {
6
+ const sql = sqlFactory();
7
+ builder.sql(sql);
8
+ builder.sql(`DO LANGUAGE plpgsql
9
+ $$
10
+ BEGIN
11
+ EXECUTE FORMAT('ALTER FUNCTION project_secret_updated() SET SEARCH_PATH = %s', QUOTE_IDENT(CURRENT_SCHEMA()));
12
+ END
13
+ $$;
14
+ `);
15
+ await (0, tenantCredentials_1.createCredentials)(builder, args);
16
+ };
17
+ };
18
+ //# sourceMappingURL=snapshot-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-factory.js","sourceRoot":"","sources":["../../../src/migrations/snapshot-factory.ts"],"names":[],"mappings":";;AAEA,2DAAuD;AAEvD,kBAAe,KAAK,EAAE,UAAwB,EAAE,EAAE;IACjD,OAAO,KAAK,EAAE,OAAyB,EAAE,IAAwC,EAAE,EAAE;QAEpF,MAAM,GAAG,GAAG,UAAU,EAAE,CAAA;QACxB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAEhB,OAAO,CAAC,GAAG,CAAC;;;;;;CAMb,CAAC,CAAA;QAEA,MAAM,IAAA,qCAAiB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACvC,CAAC,CAAA;AACF,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { MigrationBuilder } from '@contember/database-migrations';
2
+ import { TenantMigrationArgs } from './types';
3
+ export default function (builder: MigrationBuilder, args: TenantMigrationArgs): Promise<void>;
4
+ //# sourceMappingURL=snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/migrations/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAG7C,yBAA+B,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,mBAAmB,iBAqMlF"}
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tenantCredentials_1 = require("./tenantCredentials");
4
+ async function default_1(builder, args) {
5
+ builder.sql(`
6
+ CREATE FUNCTION "project_deleted"() RETURNS "trigger"
7
+ LANGUAGE "plpgsql"
8
+ AS $$
9
+ BEGIN
10
+ PERFORM pg_notify('project_updated', old.id::text);
11
+ RETURN NULL;
12
+ END;
13
+ $$;
14
+ CREATE FUNCTION "project_secret_updated"() RETURNS "trigger"
15
+ LANGUAGE "plpgsql"
16
+ AS $$
17
+ BEGIN
18
+ UPDATE project SET updated_at = 'now' WHERE id = COALESCE(new.project_id, old.project_id);
19
+ PERFORM pg_notify('project_updated', COALESCE(new.project_id, old.project_id)::TEXT);
20
+ RETURN NULL;
21
+ END;
22
+ $$;
23
+ CREATE FUNCTION "project_updated"() RETURNS "trigger"
24
+ LANGUAGE "plpgsql"
25
+ AS $$
26
+ BEGIN
27
+ NEW.updated_at = 'now';
28
+ PERFORM pg_notify('project_updated', new.id::text);
29
+ RETURN new;
30
+ END;
31
+ $$;
32
+ CREATE TABLE "api_key" (
33
+ "id" "uuid" NOT NULL,
34
+ "token_hash" "text" NOT NULL,
35
+ "type" "text" NOT NULL,
36
+ "identity_id" "uuid" NOT NULL,
37
+ "expires_at" timestamp with time zone,
38
+ "created_at" timestamp with time zone NOT NULL,
39
+ "expiration" integer,
40
+ "disabled_at" timestamp with time zone
41
+ );
42
+ CREATE TABLE "identity" (
43
+ "id" "uuid" NOT NULL,
44
+ "parent_id" "uuid",
45
+ "roles" "jsonb" NOT NULL,
46
+ "description" "text",
47
+ "created_at" timestamp with time zone NOT NULL
48
+ );
49
+ CREATE TABLE "identity_provider" (
50
+ "id" "uuid" NOT NULL,
51
+ "slug" "text" NOT NULL,
52
+ "type" "text" NOT NULL,
53
+ "configuration" "jsonb" NOT NULL,
54
+ "disabled_at" timestamp with time zone,
55
+ "auto_sign_up" boolean DEFAULT false NOT NULL,
56
+ "exclusive" boolean DEFAULT false
57
+ );
58
+ CREATE TABLE "mail_template" (
59
+ "id" "uuid" NOT NULL,
60
+ "project_id" "uuid",
61
+ "mail_type" "text" NOT NULL,
62
+ "variant" "text" NOT NULL,
63
+ "subject" "text" NOT NULL,
64
+ "content" "text" NOT NULL,
65
+ "use_layout" boolean NOT NULL
66
+ );
67
+ CREATE TABLE "person" (
68
+ "id" "uuid" NOT NULL,
69
+ "email" "text",
70
+ "password_hash" "text",
71
+ "identity_id" "uuid" NOT NULL,
72
+ "otp_uri" "text",
73
+ "otp_activated_at" timestamp with time zone,
74
+ "name" "text",
75
+ "idp_only" boolean DEFAULT false NOT NULL,
76
+ CONSTRAINT "idp_only_no_email" CHECK ((("idp_only" = false) OR (("idp_only" = true) AND ("email" IS NULL))))
77
+ );
78
+ CREATE TABLE "person_identity_provider" (
79
+ "id" "uuid" NOT NULL,
80
+ "person_id" "uuid" NOT NULL,
81
+ "identity_provider_id" "uuid" NOT NULL,
82
+ "created_at" timestamp with time zone DEFAULT "now"() NOT NULL,
83
+ "external_identifier" "text" NOT NULL
84
+ );
85
+ CREATE TABLE "person_password_reset" (
86
+ "id" "uuid" NOT NULL,
87
+ "token_hash" "text" NOT NULL,
88
+ "person_id" "uuid" NOT NULL,
89
+ "expires_at" timestamp with time zone NOT NULL,
90
+ "created_at" timestamp with time zone NOT NULL,
91
+ "used_at" timestamp with time zone
92
+ );
93
+ CREATE TABLE "project" (
94
+ "id" "uuid" NOT NULL,
95
+ "name" "text" NOT NULL,
96
+ "slug" "text" NOT NULL,
97
+ "config" "jsonb" DEFAULT '{}'::"jsonb" NOT NULL,
98
+ "updated_at" timestamp with time zone DEFAULT "now"() NOT NULL
99
+ );
100
+ CREATE TABLE "project_membership" (
101
+ "id" "uuid" NOT NULL,
102
+ "project_id" "uuid" NOT NULL,
103
+ "identity_id" "uuid" NOT NULL,
104
+ "role" "text" NOT NULL
105
+ );
106
+ CREATE TABLE "project_membership_variable" (
107
+ "id" "uuid" NOT NULL,
108
+ "membership_id" "uuid" NOT NULL,
109
+ "variable" "text" NOT NULL,
110
+ "value" "jsonb" NOT NULL
111
+ );
112
+ CREATE TABLE "project_secret" (
113
+ "id" "uuid" NOT NULL,
114
+ "project_id" "uuid" NOT NULL,
115
+ "key" "text" NOT NULL,
116
+ "created_at" timestamp with time zone NOT NULL,
117
+ "updated_at" timestamp with time zone NOT NULL,
118
+ "value" "bytea" NOT NULL,
119
+ "version" smallint NOT NULL
120
+ );
121
+ ALTER TABLE ONLY "api_key"
122
+ ADD CONSTRAINT "api_key_id" PRIMARY KEY ("id");
123
+ ALTER TABLE ONLY "person"
124
+ ADD CONSTRAINT "email_unique" UNIQUE ("email");
125
+ ALTER TABLE ONLY "identity"
126
+ ADD CONSTRAINT "identity_id" PRIMARY KEY ("id");
127
+ ALTER TABLE ONLY "identity_provider"
128
+ ADD CONSTRAINT "identity_provider_id" PRIMARY KEY ("id");
129
+ ALTER TABLE ONLY "identity_provider"
130
+ ADD CONSTRAINT "identity_provider_slug_key" UNIQUE ("slug");
131
+ ALTER TABLE ONLY "mail_template"
132
+ ADD CONSTRAINT "mail_template_pkey" PRIMARY KEY ("id");
133
+ ALTER TABLE ONLY "person"
134
+ ADD CONSTRAINT "person_id" PRIMARY KEY ("id");
135
+ ALTER TABLE ONLY "person"
136
+ ADD CONSTRAINT "person_identity_id_key" UNIQUE ("identity_id");
137
+ ALTER TABLE ONLY "person_identity_provider"
138
+ ADD CONSTRAINT "person_identity_provider_pkey" PRIMARY KEY ("id");
139
+ ALTER TABLE ONLY "person_password_reset"
140
+ ADD CONSTRAINT "person_password_reset_id" PRIMARY KEY ("id");
141
+ ALTER TABLE ONLY "project"
142
+ ADD CONSTRAINT "project_id" PRIMARY KEY ("id");
143
+ ALTER TABLE ONLY "project_membership"
144
+ ADD CONSTRAINT "project_membership_pkey" PRIMARY KEY ("id");
145
+ ALTER TABLE ONLY "project_membership_variable"
146
+ ADD CONSTRAINT "project_membership_variable_pkey" PRIMARY KEY ("id");
147
+ ALTER TABLE ONLY "project_membership_variable"
148
+ ADD CONSTRAINT "project_membership_variable_unique" UNIQUE ("membership_id", "variable");
149
+ ALTER TABLE ONLY "project_secret"
150
+ ADD CONSTRAINT "project_secret_pkey" PRIMARY KEY ("id");
151
+ CREATE INDEX "api_key_identity_id" ON "api_key" USING "btree" ("identity_id");
152
+ CREATE UNIQUE INDEX "api_key_token_hash" ON "api_key" USING "btree" ("token_hash");
153
+ CREATE INDEX "identity_parent_id" ON "identity" USING "btree" ("parent_id");
154
+ CREATE UNIQUE INDEX "mail_template_identifier" ON "mail_template" USING "btree" ("project_id", "mail_type", "variant") WHERE ("project_id" IS NOT NULL);
155
+ CREATE UNIQUE INDEX "mail_template_identifier_global" ON "mail_template" USING "btree" ("mail_type", "variant") WHERE ("project_id" IS NULL);
156
+ CREATE INDEX "mail_template_project_index" ON "mail_template" USING "btree" ("project_id");
157
+ CREATE INDEX "person_identity_id" ON "person" USING "btree" ("identity_id");
158
+ CREATE UNIQUE INDEX "person_identity_provider_identifier" ON "person_identity_provider" USING "btree" ("identity_provider_id", "external_identifier");
159
+ CREATE INDEX "person_identity_provider_person_id" ON "person_identity_provider" USING "btree" ("person_id");
160
+ CREATE UNIQUE INDEX "person_password_reset_token" ON "person_password_reset" USING "btree" ("token_hash");
161
+ CREATE INDEX "project_alias" ON "project" USING "gin" ((("config" -> 'alias'::"text")));
162
+ CREATE INDEX "project_membership_identity_index" ON "project_membership" USING "btree" ("identity_id");
163
+ CREATE UNIQUE INDEX "project_membership_unique" ON "project_membership" USING "btree" ("project_id", "identity_id", "role");
164
+ CREATE INDEX "project_secret_project_index" ON "project_secret" USING "btree" ("project_id");
165
+ CREATE UNIQUE INDEX "project_secret_unique" ON "project_secret" USING "btree" ("project_id", "key");
166
+ CREATE UNIQUE INDEX "project_slug" ON "project" USING "btree" ("slug");
167
+ CREATE TRIGGER "project_deleted" AFTER DELETE ON "project" FOR EACH ROW EXECUTE FUNCTION "project_deleted"();
168
+ CREATE TRIGGER "project_secret_updated" AFTER INSERT OR DELETE OR UPDATE ON "project_secret" FOR EACH ROW EXECUTE FUNCTION "project_secret_updated"();
169
+ CREATE TRIGGER "project_updated" BEFORE INSERT OR UPDATE OF "name", "slug", "config" ON "project" FOR EACH ROW EXECUTE FUNCTION "project_updated"();
170
+ ALTER TABLE ONLY "api_key"
171
+ ADD CONSTRAINT "api_key_identity_id_fkey" FOREIGN KEY ("identity_id") REFERENCES "identity"("id");
172
+ ALTER TABLE ONLY "identity"
173
+ ADD CONSTRAINT "identity_parent_id_fkey" FOREIGN KEY ("parent_id") REFERENCES "identity"("id");
174
+ ALTER TABLE ONLY "mail_template"
175
+ ADD CONSTRAINT "mail_template_project" FOREIGN KEY ("project_id") REFERENCES "project"("id") ON DELETE CASCADE;
176
+ ALTER TABLE ONLY "person"
177
+ ADD CONSTRAINT "person_identity_id_fkey" FOREIGN KEY ("identity_id") REFERENCES "identity"("id");
178
+ ALTER TABLE ONLY "person_identity_provider"
179
+ ADD CONSTRAINT "person_identity_provider_idp" FOREIGN KEY ("identity_provider_id") REFERENCES "identity_provider"("id") ON DELETE CASCADE;
180
+ ALTER TABLE ONLY "person_identity_provider"
181
+ ADD CONSTRAINT "person_identity_provider_person" FOREIGN KEY ("person_id") REFERENCES "person"("id") ON DELETE CASCADE;
182
+ ALTER TABLE ONLY "person_password_reset"
183
+ ADD CONSTRAINT "person_password_reset_person" FOREIGN KEY ("person_id") REFERENCES "person"("id") ON DELETE CASCADE;
184
+ ALTER TABLE ONLY "project_membership"
185
+ ADD CONSTRAINT "project_membership_identity" FOREIGN KEY ("identity_id") REFERENCES "identity"("id") ON DELETE CASCADE;
186
+ ALTER TABLE ONLY "project_membership"
187
+ ADD CONSTRAINT "project_membership_project" FOREIGN KEY ("project_id") REFERENCES "project"("id") ON DELETE CASCADE;
188
+ ALTER TABLE ONLY "project_membership_variable"
189
+ ADD CONSTRAINT "project_membership_variable_membership" FOREIGN KEY ("membership_id") REFERENCES "project_membership"("id") ON DELETE CASCADE;
190
+ ALTER TABLE ONLY "project_secret"
191
+ ADD CONSTRAINT "project_secret_project" FOREIGN KEY ("project_id") REFERENCES "project"("id") ON DELETE CASCADE;
192
+ DO LANGUAGE plpgsql
193
+ $$
194
+ BEGIN
195
+ EXECUTE FORMAT('ALTER FUNCTION project_secret_updated() SET SEARCH_PATH = %s', QUOTE_IDENT(CURRENT_SCHEMA()));
196
+ END
197
+ $$;
198
+ `);
199
+ await (0, tenantCredentials_1.createCredentials)(builder, args);
200
+ }
201
+ exports.default = default_1;
202
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/migrations/snapshot.ts"],"names":[],"mappings":";;AAEA,2DAAuD;AAExC,KAAK,oBAAW,OAAyB,EAAE,IAAyB;IAClF,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiMZ,CAAC,CAAA;IAED,MAAM,IAAA,qCAAiB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AACvC,CAAC;AArMD,4BAqMC"}
@@ -0,0 +1,4 @@
1
+ import { MigrationBuilder } from '@contember/database-migrations';
2
+ import { TenantMigrationArgs } from './types';
3
+ export declare const createCredentials: (builder: MigrationBuilder, args: TenantMigrationArgs) => Promise<void>;
4
+ //# sourceMappingURL=tenantCredentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenantCredentials.d.ts","sourceRoot":"","sources":["../../../src/migrations/tenantCredentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAE7C,eAAO,MAAM,iBAAiB,YAAmB,gBAAgB,QAAQ,mBAAmB,kBAsD3F,CAAA"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createCredentials = void 0;
4
+ const database_migrations_1 = require("@contember/database-migrations");
5
+ const createCredentials = async (builder, args) => {
6
+ const credentials = await args.getCredentials();
7
+ if (credentials.loginTokenHash) {
8
+ const tokenHash = credentials.loginTokenHash;
9
+ builder.sql(`
10
+ WITH identity AS (
11
+ INSERT INTO identity(id, parent_id, roles, description, created_at)
12
+ VALUES (${(0, database_migrations_1.escapeValue)(args.providers.uuid())}, NULL, '["login"]'::JSONB, 'Login key', now()) RETURNING id
13
+ )
14
+ INSERT INTO api_key (id, token_hash, type, identity_id, disabled_at, expires_at, expiration, created_at)
15
+ SELECT ${(0, database_migrations_1.escapeValue)(args.providers.uuid())}, ${(0, database_migrations_1.escapeValue)(tokenHash)}, 'permanent', identity.id, NULL, NULL, NULL, now()
16
+ FROM identity
17
+ `);
18
+ }
19
+ if (!credentials.rootTokenHash) {
20
+ throw 'Please specify a root token using CONTEMBER_ROOT_TOKEN env variable.';
21
+ }
22
+ if (credentials.rootEmail && !credentials.rootPasswordBcrypted) {
23
+ throw 'Please specify a root password using CONTEMBER_ROOT_PASSWORD env variable.';
24
+ }
25
+ const rootEmail = credentials.rootPasswordBcrypted ? credentials.rootEmail || 'root@localhost' : null;
26
+ const rootPasswordHash = credentials.rootPasswordBcrypted || null;
27
+ const rootTokenHash = credentials.rootTokenHash;
28
+ builder.sql(`
29
+ WITH identity AS (
30
+ INSERT INTO identity(id, parent_id, roles, description, created_at)
31
+ VALUES (
32
+ ${(0, database_migrations_1.escapeValue)(args.providers.uuid())},
33
+ NULL,
34
+ '["super_admin"]'::JSONB
35
+ || (CASE WHEN ${(0, database_migrations_1.escapeValue)(rootEmail)} IS NOT NULL THEN '["person"]'::JSONB ELSE '[]'::JSONB END),
36
+ 'Superadmin',
37
+ now()
38
+ ) RETURNING id
39
+ ),
40
+ person AS (
41
+ INSERT INTO person(id, email, password_hash, identity_id)
42
+ SELECT ${(0, database_migrations_1.escapeValue)(args.providers.uuid())}, ${(0, database_migrations_1.escapeValue)(rootEmail)}, ${(0, database_migrations_1.escapeValue)(rootPasswordHash)}, identity.id
43
+ FROM identity
44
+ WHERE ${(0, database_migrations_1.escapeValue)(rootEmail)} IS NOT NULL
45
+ RETURNING id
46
+ ),
47
+ api_key AS (
48
+ INSERT INTO api_key (id, token_hash, type, identity_id, disabled_at, expires_at, expiration, created_at)
49
+ SELECT ${(0, database_migrations_1.escapeValue)(args.providers.uuid())}, ${(0, database_migrations_1.escapeValue)(rootTokenHash)}, 'permanent', identity.id, NULL, NULL, NULL, now()
50
+ FROM identity WHERE ${(0, database_migrations_1.escapeValue)(rootTokenHash)} IS NOT NULL
51
+ RETURNING id
52
+ )
53
+ SELECT * FROM person, api_key
54
+ `);
55
+ };
56
+ exports.createCredentials = createCredentials;
57
+ //# sourceMappingURL=tenantCredentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenantCredentials.js","sourceRoot":"","sources":["../../../src/migrations/tenantCredentials.ts"],"names":[],"mappings":";;;AAAA,wEAA8E;AAGvE,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAAyB,EAAE,IAAyB,EAAE,EAAE;IAC/F,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;IAC/C,IAAI,WAAW,CAAC,cAAc,EAAE;QAC/B,MAAM,SAAS,GAAG,WAAW,CAAC,cAAc,CAAA;QAC5C,OAAO,CAAC,GAAG,CAAC;;;cAGA,IAAA,iCAAW,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;;;YAGpC,IAAA,iCAAW,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,IAAA,iCAAW,EAAC,SAAS,CAAC;;IAErE,CAAC,CAAA;KACH;IAED,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;QAC/B,MAAM,sEAAsE,CAAA;KAC5E;IAED,IAAI,WAAW,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE;QAC/D,MAAM,4EAA4E,CAAA;KAClF;IACD,MAAM,SAAS,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,IAAI,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAA;IACrG,MAAM,gBAAgB,GAAG,WAAW,CAAC,oBAAoB,IAAI,IAAI,CAAA;IAEjE,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAA;IAE/C,OAAO,CAAC,GAAG,CAAC;;;;QAIL,IAAA,iCAAW,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;;;uBAGnB,IAAA,iCAAW,EAAC,SAAS,CAAC;;;;;;;aAOhC,IAAA,iCAAW,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,IAAA,iCAAW,EAAC,SAAS,CAAC,KAAK,IAAA,iCAAW,EAAC,gBAAgB,CAAC;;YAEhG,IAAA,iCAAW,EAAC,SAAS,CAAC;;;;;aAKrB,IAAA,iCAAW,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,IAAA,iCAAW,EAAC,aAAa,CAAC;0BACpD,IAAA,iCAAW,EAAC,aAAa,CAAC;;;;GAIjD,CAAC,CAAA;AACJ,CAAC,CAAA;AAtDY,QAAA,iBAAiB,qBAsD7B"}
@@ -1,3 +1,4 @@
1
+ import { Providers } from '../model';
1
2
  export interface TenantMigrationArgs {
2
3
  getCredentials: () => Promise<{
3
4
  loginTokenHash?: string;
@@ -5,5 +6,6 @@ export interface TenantMigrationArgs {
5
6
  rootTokenHash?: string;
6
7
  rootPasswordBcrypted?: string;
7
8
  }>;
9
+ providers: Pick<Providers, 'uuid'>;
8
10
  }
9
11
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/migrations/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IACnC,cAAc,EAAE,MAAO,OAAO,CAAC;QAC9B,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,oBAAoB,CAAC,EAAE,MAAM,CAAA;KAC7B,CAAC,CAAA;CACF"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/migrations/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,MAAM,WAAW,mBAAmB;IACnC,cAAc,EAAE,MAAO,OAAO,CAAC;QAC9B,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,oBAAoB,CAAC,EAAE,MAAM,CAAA;KAC7B,CAAC,CAAA;IACF,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;CAClC"}
@@ -9,5 +9,6 @@ export declare class UpdateIdpCommand implements Command<void> {
9
9
  export declare type UpdateIdpData = {
10
10
  options?: Partial<IdentityProviderData['options']>;
11
11
  configuration?: IdentityProviderData['configuration'];
12
+ type?: string;
12
13
  };
13
14
  //# sourceMappingURL=UpdateIdpCommand.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateIdpCommand.d.ts","sourceRoot":"","sources":["../../../../../src/model/commands/idp/UpdateIdpCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEjD,qBAAa,gBAAiB,YAAW,OAAO,CAAC,IAAI,CAAC;IAEpD,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,IAAI;gBADJ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,aAAa;IAItB,OAAO,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAc7D;AAED,oBAAY,aAAa,GAAG;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAA;IAClD,aAAa,CAAC,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAA;CACrD,CAAA"}
1
+ {"version":3,"file":"UpdateIdpCommand.d.ts","sourceRoot":"","sources":["../../../../../src/model/commands/idp/UpdateIdpCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEjD,qBAAa,gBAAiB,YAAW,OAAO,CAAC,IAAI,CAAC;IAEpD,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,IAAI;gBADJ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,aAAa;IAItB,OAAO,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAc7D;AAED,oBAAY,aAAa,GAAG;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAA;IAClD,aAAa,CAAC,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAA;IACrD,IAAI,CAAC,EAAE,MAAM,CAAA;CACb,CAAA"}
@@ -1,9 +1,9 @@
1
1
  import { DatabaseQuery, DatabaseQueryable } from '@contember/database';
2
- import { MemberType } from '../../../schema';
2
+ import { ProjectMembersInput } from '../../../schema';
3
3
  export declare class ProjectMembersQuery extends DatabaseQuery<ProjectMembersQueryResult> {
4
4
  private readonly projectId;
5
- private readonly memberType?;
6
- constructor(projectId: string, memberType?: MemberType | undefined);
5
+ private readonly projectMemberInput;
6
+ constructor(projectId: string, projectMemberInput: ProjectMembersInput);
7
7
  fetch({ db }: DatabaseQueryable): Promise<ProjectMembersQueryResult>;
8
8
  }
9
9
  export interface ProjectMembersQueryRow {
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectMembersQuery.d.ts","sourceRoot":"","sources":["../../../../../src/model/queries/membership/ProjectMembersQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,aAAa,EAAE,iBAAiB,EAAiB,MAAM,qBAAqB,CAAA;AACvG,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,qBAAa,mBAAoB,SAAQ,aAAa,CAAC,yBAAyB,CAAC;IAE/E,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;gBADX,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,wBAAY;IAKnC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,yBAAyB,CAAC;CA0B1E;AAED,MAAM,WAAW,sBAAsB;IACtC,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;CACnB;AAED,oBAAY,yBAAyB,GAAG,sBAAsB,EAAE,CAAA"}
1
+ {"version":3,"file":"ProjectMembersQuery.d.ts","sourceRoot":"","sources":["../../../../../src/model/queries/membership/ProjectMembersQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAiB,MAAM,qBAAqB,CAAA;AACrF,OAAO,EAAc,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAGjE,qBAAa,mBAAoB,SAAQ,aAAa,CAAC,yBAAyB,CAAC;IAG/E,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBADlB,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,mBAAmB;IAKnD,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAiC1E;AAED,MAAM,WAAW,sBAAsB;IACtC,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;CACnB;AAED,oBAAY,yBAAyB,GAAG,sBAAsB,EAAE,CAAA"}