mage-ai 0.9.68__py3-none-any.whl → 0.9.69__py3-none-any.whl

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.

Potentially problematic release.


This version of mage-ai might be problematic. Click here for more details.

Files changed (231) hide show
  1. mage_ai/api/resources/SeedResource.py +2 -1
  2. mage_ai/api/resources/SessionResource.py +13 -1
  3. mage_ai/authentication/permissions/constants.py +2 -0
  4. mage_ai/authentication/permissions/seed.py +32 -21
  5. mage_ai/authentication/providers/active_directory.py +4 -3
  6. mage_ai/authentication/providers/okta.py +22 -83
  7. mage_ai/data_preparation/executors/streaming_pipeline_executor.py +77 -7
  8. mage_ai/data_preparation/models/block/__init__.py +7 -3
  9. mage_ai/data_preparation/models/block/data_integration/mixins.py +16 -5
  10. mage_ai/data_preparation/models/block/dynamic/child.py +3 -0
  11. mage_ai/data_preparation/models/block/dynamic/variables.py +2 -2
  12. mage_ai/data_preparation/models/block/extension/utils.py +1 -0
  13. mage_ai/data_preparation/models/block/integration/__init__.py +1 -1
  14. mage_ai/data_preparation/models/block/sql/__init__.py +1 -1
  15. mage_ai/data_preparation/models/pipeline.py +22 -6
  16. mage_ai/data_preparation/models/utils.py +6 -0
  17. mage_ai/data_preparation/models/variable.py +18 -4
  18. mage_ai/data_preparation/repo_manager.py +3 -2
  19. mage_ai/data_preparation/shared/utils.py +1 -1
  20. mage_ai/data_preparation/templates/data_exporters/mysql.py +2 -2
  21. mage_ai/data_preparation/templates/data_exporters/oracledb.py +27 -0
  22. mage_ai/data_preparation/templates/repo/metadata.yaml +1 -0
  23. mage_ai/io/bigquery.py +131 -58
  24. mage_ai/io/mysql.py +38 -6
  25. mage_ai/io/snowflake.py +152 -29
  26. mage_ai/orchestration/db/models/oauth.py +4 -4
  27. mage_ai/orchestration/db/models/schedules.py +9 -2
  28. mage_ai/orchestration/job_manager.py +6 -0
  29. mage_ai/orchestration/pipeline_scheduler_original.py +16 -6
  30. mage_ai/orchestration/queue/celery_queue.py +8 -1
  31. mage_ai/orchestration/queue/process_queue.py +67 -4
  32. mage_ai/orchestration/queue/queue.py +8 -0
  33. mage_ai/server/constants.py +1 -1
  34. mage_ai/server/frontend_dist/404.html +2 -2
  35. mage_ai/server/frontend_dist/_next/static/{i8pymuJDTVHdWjUP1QSh1 → _krrrgup_C-dPOpX36S8I}/_buildManifest.js +1 -1
  36. mage_ai/server/frontend_dist/_next/static/chunks/1557-df144fbd8b2208c3.js +1 -0
  37. mage_ai/server/frontend_dist/_next/static/chunks/2717-d9200be634dd6766.js +1 -0
  38. mage_ai/server/frontend_dist/_next/static/chunks/3548-fa0792ddb88f4646.js +1 -0
  39. mage_ai/server/frontend_dist/_next/static/chunks/5699-6d708c6b2153ea08.js +1 -0
  40. mage_ai/server/frontend_dist/_next/static/chunks/7361-8a23dd8360593e7a.js +1 -0
  41. mage_ai/server/frontend_dist/_next/static/chunks/pages/_app-d9c89527266296f7.js +1 -0
  42. mage_ai/server/frontend_dist/_next/static/chunks/pages/index-4e12783b064c1cfe.js +1 -0
  43. mage_ai/server/frontend_dist/_next/static/chunks/pages/{pipeline-runs-a66b4c7641ae03eb.js → pipeline-runs-3edc6270c5b0e962.js} +1 -1
  44. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/edit-e1dd1ed71d26c10d.js +1 -0
  45. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/settings-59aca25a5b1d3998.js +1 -0
  46. mage_ai/server/{frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/triggers-cb88fd075a357fcf.js → frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/triggers-1bdfda8edc9cf4a8.js} +1 -1
  47. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines-3591d035bb3bb2b8.js +1 -0
  48. mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/platform/preferences-503049734a8b082f.js +1 -0
  49. mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/platform/settings-c2e9ef989c8bfa73.js +1 -0
  50. mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/preferences-5b26eeda8aed8a7b.js +1 -0
  51. mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/{sync-data-79a4cf66a623e667.js → sync-data-8b793b3b696a2cd3.js} +1 -1
  52. mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/{users-86814e581acaf5db.js → users-a4db8710f703c729.js} +1 -1
  53. mage_ai/server/frontend_dist/_next/static/chunks/pages/sign-in-09414a8b66fb6f06.js +1 -0
  54. mage_ai/server/frontend_dist/block-layout.html +2 -2
  55. mage_ai/server/frontend_dist/compute.html +2 -2
  56. mage_ai/server/frontend_dist/files.html +2 -2
  57. mage_ai/server/frontend_dist/global-data-products/[...slug].html +2 -2
  58. mage_ai/server/frontend_dist/global-data-products.html +2 -2
  59. mage_ai/server/frontend_dist/global-hooks/[...slug].html +2 -2
  60. mage_ai/server/frontend_dist/global-hooks.html +2 -2
  61. mage_ai/server/frontend_dist/index.html +2 -2
  62. mage_ai/server/frontend_dist/manage/files.html +2 -2
  63. mage_ai/server/frontend_dist/manage/settings.html +2 -2
  64. mage_ai/server/frontend_dist/manage/users/[user].html +2 -2
  65. mage_ai/server/frontend_dist/manage/users/new.html +2 -2
  66. mage_ai/server/frontend_dist/manage/users.html +2 -2
  67. mage_ai/server/frontend_dist/manage.html +2 -2
  68. mage_ai/server/frontend_dist/oauth.html +2 -2
  69. mage_ai/server/frontend_dist/overview.html +2 -2
  70. mage_ai/server/frontend_dist/pipeline-runs.html +2 -2
  71. mage_ai/server/frontend_dist/pipelines/[pipeline]/backfills/[...slug].html +2 -2
  72. mage_ai/server/frontend_dist/pipelines/[pipeline]/backfills.html +2 -2
  73. mage_ai/server/frontend_dist/pipelines/[pipeline]/dashboard.html +2 -2
  74. mage_ai/server/frontend_dist/pipelines/[pipeline]/edit.html +2 -2
  75. mage_ai/server/frontend_dist/pipelines/[pipeline]/logs.html +2 -2
  76. mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors/block-runs.html +2 -2
  77. mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors/block-runtime.html +2 -2
  78. mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors.html +2 -2
  79. mage_ai/server/frontend_dist/pipelines/[pipeline]/runs/[run].html +2 -2
  80. mage_ai/server/frontend_dist/pipelines/[pipeline]/runs.html +2 -2
  81. mage_ai/server/frontend_dist/pipelines/[pipeline]/settings.html +2 -2
  82. mage_ai/server/frontend_dist/pipelines/[pipeline]/syncs.html +2 -2
  83. mage_ai/server/frontend_dist/pipelines/[pipeline]/triggers/[...slug].html +2 -2
  84. mage_ai/server/frontend_dist/pipelines/[pipeline]/triggers.html +2 -2
  85. mage_ai/server/frontend_dist/pipelines/[pipeline].html +2 -2
  86. mage_ai/server/frontend_dist/pipelines.html +2 -2
  87. mage_ai/server/frontend_dist/platform/global-hooks/[...slug].html +2 -2
  88. mage_ai/server/frontend_dist/platform/global-hooks.html +2 -2
  89. mage_ai/server/frontend_dist/settings/account/profile.html +2 -2
  90. mage_ai/server/frontend_dist/settings/platform/preferences.html +2 -2
  91. mage_ai/server/frontend_dist/settings/platform/settings.html +2 -2
  92. mage_ai/server/frontend_dist/settings/workspace/permissions/[...slug].html +2 -2
  93. mage_ai/server/frontend_dist/settings/workspace/permissions.html +2 -2
  94. mage_ai/server/frontend_dist/settings/workspace/preferences.html +2 -2
  95. mage_ai/server/frontend_dist/settings/workspace/roles/[...slug].html +2 -2
  96. mage_ai/server/frontend_dist/settings/workspace/roles.html +2 -2
  97. mage_ai/server/frontend_dist/settings/workspace/sync-data.html +2 -2
  98. mage_ai/server/frontend_dist/settings/workspace/users/[...slug].html +2 -2
  99. mage_ai/server/frontend_dist/settings/workspace/users.html +2 -2
  100. mage_ai/server/frontend_dist/settings.html +2 -2
  101. mage_ai/server/frontend_dist/sign-in.html +2 -2
  102. mage_ai/server/frontend_dist/templates/[...slug].html +2 -2
  103. mage_ai/server/frontend_dist/templates.html +2 -2
  104. mage_ai/server/frontend_dist/terminal.html +2 -2
  105. mage_ai/server/frontend_dist/test.html +2 -2
  106. mage_ai/server/frontend_dist/triggers.html +2 -2
  107. mage_ai/server/frontend_dist/version-control.html +2 -2
  108. mage_ai/server/frontend_dist_base_path_template/404.html +2 -2
  109. mage_ai/server/frontend_dist_base_path_template/_next/static/{CKCvjsYCf2imD2X8zAOBf → KLL5mirre9d7_ZeEpaw3s}/_buildManifest.js +1 -1
  110. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/1557-df144fbd8b2208c3.js +1 -0
  111. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/2717-d9200be634dd6766.js +1 -0
  112. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/3548-fa0792ddb88f4646.js +1 -0
  113. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/5699-6d708c6b2153ea08.js +1 -0
  114. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/7361-8a23dd8360593e7a.js +1 -0
  115. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/_app-d9c89527266296f7.js +1 -0
  116. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/index-4e12783b064c1cfe.js +1 -0
  117. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/{pipeline-runs-a66b4c7641ae03eb.js → pipeline-runs-3edc6270c5b0e962.js} +1 -1
  118. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/edit-e1dd1ed71d26c10d.js +1 -0
  119. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/settings-59aca25a5b1d3998.js +1 -0
  120. mage_ai/server/{frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/triggers-cb88fd075a357fcf.js → frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/triggers-1bdfda8edc9cf4a8.js} +1 -1
  121. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines-3591d035bb3bb2b8.js +1 -0
  122. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/platform/preferences-503049734a8b082f.js +1 -0
  123. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/platform/settings-c2e9ef989c8bfa73.js +1 -0
  124. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/workspace/preferences-5b26eeda8aed8a7b.js +1 -0
  125. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/workspace/{sync-data-79a4cf66a623e667.js → sync-data-8b793b3b696a2cd3.js} +1 -1
  126. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/workspace/{users-86814e581acaf5db.js → users-a4db8710f703c729.js} +1 -1
  127. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/sign-in-09414a8b66fb6f06.js +1 -0
  128. mage_ai/server/frontend_dist_base_path_template/block-layout.html +2 -2
  129. mage_ai/server/frontend_dist_base_path_template/compute.html +2 -2
  130. mage_ai/server/frontend_dist_base_path_template/files.html +2 -2
  131. mage_ai/server/frontend_dist_base_path_template/global-data-products/[...slug].html +2 -2
  132. mage_ai/server/frontend_dist_base_path_template/global-data-products.html +2 -2
  133. mage_ai/server/frontend_dist_base_path_template/global-hooks/[...slug].html +2 -2
  134. mage_ai/server/frontend_dist_base_path_template/global-hooks.html +2 -2
  135. mage_ai/server/frontend_dist_base_path_template/index.html +2 -2
  136. mage_ai/server/frontend_dist_base_path_template/manage/files.html +2 -2
  137. mage_ai/server/frontend_dist_base_path_template/manage/settings.html +2 -2
  138. mage_ai/server/frontend_dist_base_path_template/manage/users/[user].html +2 -2
  139. mage_ai/server/frontend_dist_base_path_template/manage/users/new.html +2 -2
  140. mage_ai/server/frontend_dist_base_path_template/manage/users.html +2 -2
  141. mage_ai/server/frontend_dist_base_path_template/manage.html +2 -2
  142. mage_ai/server/frontend_dist_base_path_template/oauth.html +2 -2
  143. mage_ai/server/frontend_dist_base_path_template/overview.html +2 -2
  144. mage_ai/server/frontend_dist_base_path_template/pipeline-runs.html +2 -2
  145. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/backfills/[...slug].html +2 -2
  146. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/backfills.html +2 -2
  147. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/dashboard.html +2 -2
  148. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/edit.html +2 -2
  149. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/logs.html +2 -2
  150. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/monitors/block-runs.html +2 -2
  151. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/monitors/block-runtime.html +2 -2
  152. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/monitors.html +2 -2
  153. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/runs/[run].html +2 -2
  154. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/runs.html +2 -2
  155. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/settings.html +2 -2
  156. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/syncs.html +2 -2
  157. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/triggers/[...slug].html +2 -2
  158. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/triggers.html +2 -2
  159. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline].html +2 -2
  160. mage_ai/server/frontend_dist_base_path_template/pipelines.html +2 -2
  161. mage_ai/server/frontend_dist_base_path_template/platform/global-hooks/[...slug].html +2 -2
  162. mage_ai/server/frontend_dist_base_path_template/platform/global-hooks.html +2 -2
  163. mage_ai/server/frontend_dist_base_path_template/settings/account/profile.html +2 -2
  164. mage_ai/server/frontend_dist_base_path_template/settings/platform/preferences.html +2 -2
  165. mage_ai/server/frontend_dist_base_path_template/settings/platform/settings.html +2 -2
  166. mage_ai/server/frontend_dist_base_path_template/settings/workspace/permissions/[...slug].html +2 -2
  167. mage_ai/server/frontend_dist_base_path_template/settings/workspace/permissions.html +2 -2
  168. mage_ai/server/frontend_dist_base_path_template/settings/workspace/preferences.html +2 -2
  169. mage_ai/server/frontend_dist_base_path_template/settings/workspace/roles/[...slug].html +2 -2
  170. mage_ai/server/frontend_dist_base_path_template/settings/workspace/roles.html +2 -2
  171. mage_ai/server/frontend_dist_base_path_template/settings/workspace/sync-data.html +2 -2
  172. mage_ai/server/frontend_dist_base_path_template/settings/workspace/users/[...slug].html +2 -2
  173. mage_ai/server/frontend_dist_base_path_template/settings/workspace/users.html +2 -2
  174. mage_ai/server/frontend_dist_base_path_template/settings.html +2 -2
  175. mage_ai/server/frontend_dist_base_path_template/sign-in.html +2 -2
  176. mage_ai/server/frontend_dist_base_path_template/templates/[...slug].html +2 -2
  177. mage_ai/server/frontend_dist_base_path_template/templates.html +2 -2
  178. mage_ai/server/frontend_dist_base_path_template/terminal.html +2 -2
  179. mage_ai/server/frontend_dist_base_path_template/test.html +2 -2
  180. mage_ai/server/frontend_dist_base_path_template/triggers.html +2 -2
  181. mage_ai/server/frontend_dist_base_path_template/version-control.html +2 -2
  182. mage_ai/server/scheduler_manager.py +7 -0
  183. mage_ai/server/server.py +12 -5
  184. mage_ai/server/websocket_server.py +1 -0
  185. mage_ai/settings/keys/auth.py +2 -0
  186. mage_ai/settings/server.py +1 -1
  187. mage_ai/streaming/sources/influxdb.py +2 -0
  188. mage_ai/streaming/sources/kafka.py +1 -1
  189. mage_ai/tests/api/endpoints/mixins.py +10 -9
  190. mage_ai/tests/api/endpoints/test_seeds.py +24 -0
  191. mage_ai/tests/api/operations/test_sessions.py +53 -2
  192. mage_ai/tests/authentication/providers/test_okta.py +43 -0
  193. mage_ai/tests/orchestration/db/models/test_oauth.py +3 -3
  194. mage_ai/tests/orchestration/queue/test_process_queue.py +1 -0
  195. mage_ai/tests/server/test_server.py +8 -4
  196. {mage_ai-0.9.68.dist-info → mage_ai-0.9.69.dist-info}/METADATA +4 -4
  197. {mage_ai-0.9.68.dist-info → mage_ai-0.9.69.dist-info}/RECORD +203 -200
  198. mage_ai/server/frontend_dist/_next/static/chunks/1557-01f0843dc6ac4971.js +0 -1
  199. mage_ai/server/frontend_dist/_next/static/chunks/2717-b5f9575799b594d5.js +0 -1
  200. mage_ai/server/frontend_dist/_next/static/chunks/3548-961ff79ca70038c7.js +0 -1
  201. mage_ai/server/frontend_dist/_next/static/chunks/5699-6efc749f2f8ddd20.js +0 -1
  202. mage_ai/server/frontend_dist/_next/static/chunks/7361-18d9d8be96e1ce97.js +0 -1
  203. mage_ai/server/frontend_dist/_next/static/chunks/pages/_app-08790743315de36a.js +0 -1
  204. mage_ai/server/frontend_dist/_next/static/chunks/pages/index-13760bb72d823b69.js +0 -1
  205. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/edit-bd0aff5a5ed8888c.js +0 -1
  206. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/settings-d1ee961387c58b7f.js +0 -1
  207. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines-ceb06e1616ee9610.js +0 -1
  208. mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/platform/preferences-8ff16ef9566e911a.js +0 -1
  209. mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/platform/settings-74d76300942dcee8.js +0 -1
  210. mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/preferences-d7a8bc51bb7a1082.js +0 -1
  211. mage_ai/server/frontend_dist/_next/static/chunks/pages/sign-in-f59d34429fe022ee.js +0 -1
  212. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/1557-01f0843dc6ac4971.js +0 -1
  213. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/2717-b5f9575799b594d5.js +0 -1
  214. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/3548-961ff79ca70038c7.js +0 -1
  215. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/5699-6efc749f2f8ddd20.js +0 -1
  216. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/7361-18d9d8be96e1ce97.js +0 -1
  217. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/_app-08790743315de36a.js +0 -1
  218. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/index-13760bb72d823b69.js +0 -1
  219. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/edit-bd0aff5a5ed8888c.js +0 -1
  220. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/settings-d1ee961387c58b7f.js +0 -1
  221. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines-ceb06e1616ee9610.js +0 -1
  222. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/platform/preferences-8ff16ef9566e911a.js +0 -1
  223. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/platform/settings-74d76300942dcee8.js +0 -1
  224. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/workspace/preferences-d7a8bc51bb7a1082.js +0 -1
  225. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/sign-in-f59d34429fe022ee.js +0 -1
  226. /mage_ai/server/frontend_dist/_next/static/{i8pymuJDTVHdWjUP1QSh1 → _krrrgup_C-dPOpX36S8I}/_ssgManifest.js +0 -0
  227. /mage_ai/server/frontend_dist_base_path_template/_next/static/{CKCvjsYCf2imD2X8zAOBf → KLL5mirre9d7_ZeEpaw3s}/_ssgManifest.js +0 -0
  228. {mage_ai-0.9.68.dist-info → mage_ai-0.9.69.dist-info}/LICENSE +0 -0
  229. {mage_ai-0.9.68.dist-info → mage_ai-0.9.69.dist-info}/WHEEL +0 -0
  230. {mage_ai-0.9.68.dist-info → mage_ai-0.9.69.dist-info}/entry_points.txt +0 -0
  231. {mage_ai-0.9.68.dist-info → mage_ai-0.9.69.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><title>Mage</title><meta content="width=device-width, initial-scale=1.0, maximum-scale=5.0, user-scalable=0" name="viewport"/><meta name="next-head-count" content="3"/><link href="/favicon.ico" rel="icon"/><link rel="preload" href="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/css/b59541b123fd7191.css" as="style"/><link rel="stylesheet" href="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/css/b59541b123fd7191.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/webpack-68c003fb6a175cd7.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/framework-22b71764bf44ede4.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/main-70b78159c2bb3fe1.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/pages/_app-08790743315de36a.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/pages/test-bd51b3918b39329e.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/CKCvjsYCf2imD2X8zAOBf/_buildManifest.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/CKCvjsYCf2imD2X8zAOBf/_ssgManifest.js" defer=""></script><style data-styled="" data-styled-version="5.3.6">html{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-overflow-style:scrollbar;}/*!sc*/
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><title>Mage</title><meta content="width=device-width, initial-scale=1.0, maximum-scale=5.0, user-scalable=0" name="viewport"/><meta name="next-head-count" content="3"/><link href="/favicon.ico" rel="icon"/><link rel="preload" href="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/css/b59541b123fd7191.css" as="style"/><link rel="stylesheet" href="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/css/b59541b123fd7191.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/webpack-68c003fb6a175cd7.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/framework-22b71764bf44ede4.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/main-70b78159c2bb3fe1.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/pages/_app-d9c89527266296f7.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/pages/test-bd51b3918b39329e.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/KLL5mirre9d7_ZeEpaw3s/_buildManifest.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/KLL5mirre9d7_ZeEpaw3s/_ssgManifest.js" defer=""></script><style data-styled="" data-styled-version="5.3.6">html{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-overflow-style:scrollbar;}/*!sc*/
2
2
  *,*::before,*::after{-webkit-box-sizing:inherit;box-sizing:inherit;}/*!sc*/
3
3
  data-styled.g4[id="sc-global-czSCUT1"]{content:"sc-global-czSCUT1,"}/*!sc*/
4
4
  .kOVcuR .Toastify__toast-container{margin-top:24px;padding:0 !important;width:500px !important;}/*!sc*/
@@ -9,4 +9,4 @@ data-styled.g4[id="sc-global-czSCUT1"]{content:"sc-global-czSCUT1,"}/*!sc*/
9
9
  .kOVcuR .Toastify__toast--success{background:#00A81A !important;color:#FFFFFF !important;}/*!sc*/
10
10
  .kOVcuR .Toastify__toast--warning{background:#DD9900 !important;color:#FFFFFF !important;}/*!sc*/
11
11
  data-styled.g275[id="ToastWrapper-sc-1a33ph1-0"]{content:"kOVcuR,"}/*!sc*/
12
- </style></head><body><div id="__next"><div class="" style="position:fixed;top:0;left:0;height:2px;background:transparent;z-index:99999999999;width:100%"><div class="" style="height:100%;background:#FF144D;transition:all 500ms ease;width:0%"><div style="box-shadow:0 0 10px #FF144D, 0 0 10px #FF144D;width:5%;opacity:1;position:absolute;height:100%;transition:all 500ms ease;transform:rotate(3deg) translate(0px, -4px);left:-10rem"></div></div></div><div></div><div id="command-center-root"></div><div></div><div></div><div></div><div class="ToastWrapper-sc-1a33ph1-0 kOVcuR"><div class="Toastify"></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{},"currentTheme":{"accent":{"alert":"#F6540B","blue":"#4877FF","blueLight":"rgba(72, 119, 255, 0.5)","contentDefaultTransparent":"rgba(174, 174, 174, 0.5)","cyan":"#65E3FF","cyanLight":"rgba(101, 227, 255, 0.3)","cyanTransparent":"rgba(101, 227, 255, 0.12)","dbt":"#fc6949","dbtDark":"rgba(252, 105, 73, 0.3)","dbtLight":"rgba(252, 105, 73, 0.5)","info":"#00ABFF","infoTransparent":"rgba(0, 171, 255, 0.5)","negative":"#FF1E59","negativeTransparent":"rgba(255, 30, 89, 0.3)","pink":"#FF4FF8","pinkLight":"rgb(255, 79, 248, 0.5)","positive":"#00A81A","primaryTransparent":"rgba(155, 108, 167, 0.5)","purple":"#7D55EC","purpleLight":"rgba(125, 85, 236, 0.5)","rose":"#D1A2AB","roseLight":"rgba(209, 162, 171, 0.5)","sky":"#6AA1E0","skyLight":"rgba(106, 161, 224, 0.5)","teal":"#00B4CC","tealLight":"rgba(0, 180, 204, 0.5)","warning":"#DD9900","warningTransparent":"rgba(221, 153, 0, 0.5)","yellow":"#FFCC19","yellowLight":"rgba(255, 204, 25, 0.5)"},"background":{"blackTransparent":"rgba(0, 0, 0, 0.6)","blackTransparentDark":"rgba(0, 0, 0, 0.8)","chartBlock":"#2E3036","codeArea":"#1E1F24","codeTextarea":"#000000","content":"#1B1C20","danger":"#FFD0DB","dark":"#B1B8C3","dashboard":"#18181C","dashboardTransparent":"rgba(24, 24, 28, 0.1)","header":"#1B1B1B","menu":"#0F4CFF","muted":"#F9FAFC","navigation":"#EDEDED","output":"#2E3036","page":"#1E1F24","panel":"#232429","panelTransparent":"rgba(35, 36, 41, 0.7)","popup":"#27292E","row":"#2C2C2C","row2":"#51535C","scrollbarThumb":"rgba(100, 100, 100, 0.5)","scrollbarThumbHover":"rgba(255, 255, 255, 0.3)","scrollbarTrack":"#2E3036","success":"#8ADE00","successLight":"rgb(138, 222, 0, 0.3)","table":"#292A2F","tag":"#3A4550"},"borders":{"button":"#454850","contrast":"#FFFFFF","danger":"#FF144D","dark":"#000000","darkLight":"#2E3036","info":"#FFCC19","light":"#2F3034","medium":"#1C1C1C","medium2":"#141414","success":"#2FCB52"},"brand":{"earth100":"#C6EEDB","earth200":"#9DDFBF","earth300":"#6BBF96","earth400":"#37A46F","earth400Transparent":"rgba(55, 164, 111, 0.4)","earth500":"#00954C","energy100":"#FFF4BA","energy200":"#FFED92","energy300":"#FFE662","energy400":"#FFDA19","energy400Transparent":"rgba(255, 218, 25, 0.04)","energy500":"#F6C000","fire100":"#FFD7E0","fire200":"#FFA3B9","fire300":"#FF547D","fire400":"#FF144D","fire400Transparent":"rgba(255, 20, 77, 0.4)","fire500":"#EB0032","stone100":"#F3E6D7","stone200":"#E3D4C2","stone400":"#BFA78B","stone500":"#AF8859","water100":"#BDCEFF","water200":"#81A1FF","water300":"#517DFF","water400":"#2A60FE","water400Transparent":"rgba(42, 96, 254, 0.4)","water500":"#0F4CFF","wind100":"#EEEAFF","wind200":"#CCC1F4","wind300":"#A698DD","wind400":"#6B50D7","wind400SuperTransparent":"rgba(107, 80, 215, 0.12)","wind400Transparent":"rgba(107, 80, 215, 0.4)","wind500":"#4E32BC"},"chart":{"backgroundPrimary":"#7D55EC","backgroundSecondary":"#FF144D","backgroundTertiary":"#86E2FF","button1":"#4877FF","button2":"#FFCC19","button3":"#8ADE00","button4":"#FF4FF8","button5":"#B98D95","lines":"#9B6CA7","primary":"#6B50D7","secondary":"#FF144D","tertiary":"#2A60FE"},"content":{"active":"#FFFFFF","default":"#AEAEAE","disabled":"rgba(255, 255, 255, 0.3)","inverted":"#2C2C2C","muted":"#787A85"},"elevation":{"visualizationAccent":"#996CFF","visualizationAccentAlt":"#C1ACF7"},"feature":{"active":"rgba(250, 248, 254, 0.14)","disabled":"rgba(201, 206, 218, 0.12)"},"icons":{"neutral":"#787878"},"interactive":{"activeBorder":"#060606","blackBackgroundTransparent":"rgba(0, 0, 0, 0.5)","checked":"#060606","dangerBorder":"#FF144D","defaultBackground":"#36383F","defaultBackgroundTransparent":"rgba(54, 56, 63, 0.5)","defaultBorder":"#ffffff1a","disabledBorder":"#B1B8C3","focusBackground":"#B1B8C3","focusBorder":"#86E2FF","hoverBackground":"#4E4E4E","hoverBackgroundTransparent":"rgba(78, 78, 78, 0.5)","hoverBlackBackgroundTransparent":"rgba(0, 0, 0, 0.7)","hoverBorder":"#B9BFCA","hoverOverlay":"rgba(255, 255, 255, 0.1)","linkPrimary":"#1752FF","linkPrimaryHover":"#4877FF","linkPrimaryLight":"#5982ff","linkSecondary":"#6B50D7","linkSecondaryDisabled":"#C4B9EF","linkText":"#6AA1E0","linkTextLight":"#9ECBFF","purple":"#885EFF","rowHoverBackground":"rgba(0, 0, 0, 0.1)","transparent":"rgba(255, 255, 255, 0)"},"loader":{"color":"#EB0032","colorInverted":"#8ADE00"},"logo":{"color":"#FFFFFF"},"monotone":{"black":"#060606","blackTransparent":"rgba(0, 0, 0, 0.6)","gray":"#B1B8C3","grey100":"#F2F2F2","grey200":"#D5D7DC","grey300":"#B4B8C0","grey400":"#70747C","grey500":"#51535C","purple":"#6B50D7","white":"#FFFFFF","whiteTransparent":"rgba(255, 255, 255, 0.6)"},"neutral":{"n100":"#E7E8EA","n200":"#D8DADE","n300":"#CBCCD0","n400":"#BCBEC4","n500":"#AEB0B6"},"progress":{"negative":"#FF144D","positive":"#6B50D7"},"shadow":{"base":"12px 40px 120px rgba(0, 0, 0, 0.3)","frame":"0px 10px 40px rgba(0, 0, 0, 0.26)","menu":"4px 10px 20px rgba(6, 6, 6, 0.12)","popup":"10px 20px 40px rgba(0, 0, 0, 0.2)","small":"0px, 4px, rgba(0, 0, 0, 0.25)","window":"0px 10px 60px rgba(0, 0, 0, 0.7)"},"status":{"negative":"#FF144D","positive":"#24B400"},"text":{"fileBrowser":"#787A85"}}},"page":"/test","query":{},"buildId":"CKCvjsYCf2imD2X8zAOBf","assetPrefix":"/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_","nextExport":true,"isFallback":false,"appGip":true,"scriptLoader":[]}</script></body></html>
12
+ </style></head><body><div id="__next"><div class="" style="position:fixed;top:0;left:0;height:2px;background:transparent;z-index:99999999999;width:100%"><div class="" style="height:100%;background:#FF144D;transition:all 500ms ease;width:0%"><div style="box-shadow:0 0 10px #FF144D, 0 0 10px #FF144D;width:5%;opacity:1;position:absolute;height:100%;transition:all 500ms ease;transform:rotate(3deg) translate(0px, -4px);left:-10rem"></div></div></div><div></div><div id="command-center-root"></div><div></div><div></div><div></div><div class="ToastWrapper-sc-1a33ph1-0 kOVcuR"><div class="Toastify"></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{},"currentTheme":{"accent":{"alert":"#F6540B","blue":"#4877FF","blueLight":"rgba(72, 119, 255, 0.5)","contentDefaultTransparent":"rgba(174, 174, 174, 0.5)","cyan":"#65E3FF","cyanLight":"rgba(101, 227, 255, 0.3)","cyanTransparent":"rgba(101, 227, 255, 0.12)","dbt":"#fc6949","dbtDark":"rgba(252, 105, 73, 0.3)","dbtLight":"rgba(252, 105, 73, 0.5)","info":"#00ABFF","infoTransparent":"rgba(0, 171, 255, 0.5)","negative":"#FF1E59","negativeTransparent":"rgba(255, 30, 89, 0.3)","pink":"#FF4FF8","pinkLight":"rgb(255, 79, 248, 0.5)","positive":"#00A81A","primaryTransparent":"rgba(155, 108, 167, 0.5)","purple":"#7D55EC","purpleLight":"rgba(125, 85, 236, 0.5)","rose":"#D1A2AB","roseLight":"rgba(209, 162, 171, 0.5)","sky":"#6AA1E0","skyLight":"rgba(106, 161, 224, 0.5)","teal":"#00B4CC","tealLight":"rgba(0, 180, 204, 0.5)","warning":"#DD9900","warningTransparent":"rgba(221, 153, 0, 0.5)","yellow":"#FFCC19","yellowLight":"rgba(255, 204, 25, 0.5)"},"background":{"blackTransparent":"rgba(0, 0, 0, 0.6)","blackTransparentDark":"rgba(0, 0, 0, 0.8)","chartBlock":"#2E3036","codeArea":"#1E1F24","codeTextarea":"#000000","content":"#1B1C20","danger":"#FFD0DB","dark":"#B1B8C3","dashboard":"#18181C","dashboardTransparent":"rgba(24, 24, 28, 0.1)","header":"#1B1B1B","menu":"#0F4CFF","muted":"#F9FAFC","navigation":"#EDEDED","output":"#2E3036","page":"#1E1F24","panel":"#232429","panelTransparent":"rgba(35, 36, 41, 0.7)","popup":"#27292E","row":"#2C2C2C","row2":"#51535C","scrollbarThumb":"rgba(100, 100, 100, 0.5)","scrollbarThumbHover":"rgba(255, 255, 255, 0.3)","scrollbarTrack":"#2E3036","success":"#8ADE00","successLight":"rgb(138, 222, 0, 0.3)","table":"#292A2F","tag":"#3A4550"},"borders":{"button":"#454850","contrast":"#FFFFFF","danger":"#FF144D","dark":"#000000","darkLight":"#2E3036","info":"#FFCC19","light":"#2F3034","medium":"#1C1C1C","medium2":"#141414","success":"#2FCB52"},"brand":{"earth100":"#C6EEDB","earth200":"#9DDFBF","earth300":"#6BBF96","earth400":"#37A46F","earth400Transparent":"rgba(55, 164, 111, 0.4)","earth500":"#00954C","energy100":"#FFF4BA","energy200":"#FFED92","energy300":"#FFE662","energy400":"#FFDA19","energy400Transparent":"rgba(255, 218, 25, 0.04)","energy500":"#F6C000","fire100":"#FFD7E0","fire200":"#FFA3B9","fire300":"#FF547D","fire400":"#FF144D","fire400Transparent":"rgba(255, 20, 77, 0.4)","fire500":"#EB0032","stone100":"#F3E6D7","stone200":"#E3D4C2","stone400":"#BFA78B","stone500":"#AF8859","water100":"#BDCEFF","water200":"#81A1FF","water300":"#517DFF","water400":"#2A60FE","water400Transparent":"rgba(42, 96, 254, 0.4)","water500":"#0F4CFF","wind100":"#EEEAFF","wind200":"#CCC1F4","wind300":"#A698DD","wind400":"#6B50D7","wind400SuperTransparent":"rgba(107, 80, 215, 0.12)","wind400Transparent":"rgba(107, 80, 215, 0.4)","wind500":"#4E32BC"},"chart":{"backgroundPrimary":"#7D55EC","backgroundSecondary":"#FF144D","backgroundTertiary":"#86E2FF","button1":"#4877FF","button2":"#FFCC19","button3":"#8ADE00","button4":"#FF4FF8","button5":"#B98D95","lines":"#9B6CA7","primary":"#6B50D7","secondary":"#FF144D","tertiary":"#2A60FE"},"content":{"active":"#FFFFFF","default":"#AEAEAE","disabled":"rgba(255, 255, 255, 0.3)","inverted":"#2C2C2C","muted":"#787A85"},"elevation":{"visualizationAccent":"#996CFF","visualizationAccentAlt":"#C1ACF7"},"feature":{"active":"rgba(250, 248, 254, 0.14)","disabled":"rgba(201, 206, 218, 0.12)"},"icons":{"neutral":"#787878"},"interactive":{"activeBorder":"#060606","blackBackgroundTransparent":"rgba(0, 0, 0, 0.5)","checked":"#060606","dangerBorder":"#FF144D","defaultBackground":"#36383F","defaultBackgroundTransparent":"rgba(54, 56, 63, 0.5)","defaultBorder":"#ffffff1a","disabledBorder":"#B1B8C3","focusBackground":"#B1B8C3","focusBorder":"#86E2FF","hoverBackground":"#4E4E4E","hoverBackgroundTransparent":"rgba(78, 78, 78, 0.5)","hoverBlackBackgroundTransparent":"rgba(0, 0, 0, 0.7)","hoverBorder":"#B9BFCA","hoverOverlay":"rgba(255, 255, 255, 0.1)","linkPrimary":"#1752FF","linkPrimaryHover":"#4877FF","linkPrimaryLight":"#5982ff","linkSecondary":"#6B50D7","linkSecondaryDisabled":"#C4B9EF","linkText":"#6AA1E0","linkTextLight":"#9ECBFF","purple":"#885EFF","rowHoverBackground":"rgba(0, 0, 0, 0.1)","transparent":"rgba(255, 255, 255, 0)"},"loader":{"color":"#EB0032","colorInverted":"#8ADE00"},"logo":{"color":"#FFFFFF"},"monotone":{"black":"#060606","blackTransparent":"rgba(0, 0, 0, 0.6)","gray":"#B1B8C3","grey100":"#F2F2F2","grey200":"#D5D7DC","grey300":"#B4B8C0","grey400":"#70747C","grey500":"#51535C","purple":"#6B50D7","white":"#FFFFFF","whiteTransparent":"rgba(255, 255, 255, 0.6)"},"neutral":{"n100":"#E7E8EA","n200":"#D8DADE","n300":"#CBCCD0","n400":"#BCBEC4","n500":"#AEB0B6"},"progress":{"negative":"#FF144D","positive":"#6B50D7"},"shadow":{"base":"12px 40px 120px rgba(0, 0, 0, 0.3)","frame":"0px 10px 40px rgba(0, 0, 0, 0.26)","menu":"4px 10px 20px rgba(6, 6, 6, 0.12)","popup":"10px 20px 40px rgba(0, 0, 0, 0.2)","small":"0px, 4px, rgba(0, 0, 0, 0.25)","window":"0px 10px 60px rgba(0, 0, 0, 0.7)"},"status":{"negative":"#FF144D","positive":"#24B400"},"text":{"fileBrowser":"#787A85"}}},"page":"/test","query":{},"buildId":"KLL5mirre9d7_ZeEpaw3s","assetPrefix":"/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_","nextExport":true,"isFallback":false,"appGip":true,"scriptLoader":[]}</script></body></html>
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta content="width=device-width, initial-scale=1.0, maximum-scale=5.0, user-scalable=0" name="viewport"/><title>Triggers | Mage</title><meta name="next-head-count" content="3"/><link href="/favicon.ico" rel="icon"/><link rel="preload" href="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/css/b59541b123fd7191.css" as="style"/><link rel="stylesheet" href="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/css/b59541b123fd7191.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/webpack-68c003fb6a175cd7.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/framework-22b71764bf44ede4.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/main-70b78159c2bb3fe1.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/pages/_app-08790743315de36a.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/1557-01f0843dc6ac4971.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/9624-59b2f803f9c88cd6.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/pages/triggers-9cba3211434a8966.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/CKCvjsYCf2imD2X8zAOBf/_buildManifest.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/CKCvjsYCf2imD2X8zAOBf/_ssgManifest.js" defer=""></script><style data-styled="" data-styled-version="5.3.6">html{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-overflow-style:scrollbar;}/*!sc*/
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta content="width=device-width, initial-scale=1.0, maximum-scale=5.0, user-scalable=0" name="viewport"/><title>Triggers | Mage</title><meta name="next-head-count" content="3"/><link href="/favicon.ico" rel="icon"/><link rel="preload" href="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/css/b59541b123fd7191.css" as="style"/><link rel="stylesheet" href="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/css/b59541b123fd7191.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/webpack-68c003fb6a175cd7.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/framework-22b71764bf44ede4.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/main-70b78159c2bb3fe1.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/pages/_app-d9c89527266296f7.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/1557-df144fbd8b2208c3.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/9624-59b2f803f9c88cd6.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/pages/triggers-9cba3211434a8966.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/KLL5mirre9d7_ZeEpaw3s/_buildManifest.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/KLL5mirre9d7_ZeEpaw3s/_ssgManifest.js" defer=""></script><style data-styled="" data-styled-version="5.3.6">html{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-overflow-style:scrollbar;}/*!sc*/
2
2
  *,*::before,*::after{-webkit-box-sizing:inherit;box-sizing:inherit;}/*!sc*/
3
3
  data-styled.g4[id="sc-global-czSCUT1"]{content:"sc-global-czSCUT1,"}/*!sc*/
4
4
  .dKQluW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:1;-ms-flex:1;flex:1;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}/*!sc*/
@@ -21,4 +21,4 @@ data-styled.g238[id="indexstyle__VerticalNavigationStyleComponent-sc-ecogjt-1"]{
21
21
  .kOVcuR .Toastify__toast--success{background:#00A81A !important;color:#FFFFFF !important;}/*!sc*/
22
22
  .kOVcuR .Toastify__toast--warning{background:#DD9900 !important;color:#FFFFFF !important;}/*!sc*/
23
23
  data-styled.g275[id="ToastWrapper-sc-1a33ph1-0"]{content:"kOVcuR,"}/*!sc*/
24
- </style></head><body><div id="__next"><div class="" style="position:fixed;top:0;left:0;height:2px;background:transparent;z-index:99999999999;width:100%"><div class="" style="height:100%;background:#FF144D;transition:all 500ms ease;width:0%"><div style="box-shadow:0 0 10px #FF144D, 0 0 10px #FF144D;width:5%;opacity:1;position:absolute;height:100%;transition:all 500ms ease;transform:rotate(3deg) translate(0px, -4px);left:-10rem"></div></div></div><div class="indexstyle__HeaderStyle-sc-1bk8irg-0 gbXfes"><div></div></div><div class="indexstyle__ContainerStyle-sc-ecogjt-0 ijwRXz"><div class="indexstyle__VerticalNavigationStyleComponent-sc-ecogjt-1 jQArIy"><div class="Spacing__SpacingStyle-sc-1mpmtgj-0 hDBiHu"><div></div></div></div><div class="Flex-sc-sgfnl9-0 dKQluW"><div></div></div></div><div id="command-center-root"></div><div></div><div></div><div></div><div class="ToastWrapper-sc-1a33ph1-0 kOVcuR"><div class="Toastify"></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"auth":{"decodedToken":{"expires":0,"token":null}}},"currentTheme":{"accent":{"alert":"#F6540B","blue":"#4877FF","blueLight":"rgba(72, 119, 255, 0.5)","contentDefaultTransparent":"rgba(174, 174, 174, 0.5)","cyan":"#65E3FF","cyanLight":"rgba(101, 227, 255, 0.3)","cyanTransparent":"rgba(101, 227, 255, 0.12)","dbt":"#fc6949","dbtDark":"rgba(252, 105, 73, 0.3)","dbtLight":"rgba(252, 105, 73, 0.5)","info":"#00ABFF","infoTransparent":"rgba(0, 171, 255, 0.5)","negative":"#FF1E59","negativeTransparent":"rgba(255, 30, 89, 0.3)","pink":"#FF4FF8","pinkLight":"rgb(255, 79, 248, 0.5)","positive":"#00A81A","primaryTransparent":"rgba(155, 108, 167, 0.5)","purple":"#7D55EC","purpleLight":"rgba(125, 85, 236, 0.5)","rose":"#D1A2AB","roseLight":"rgba(209, 162, 171, 0.5)","sky":"#6AA1E0","skyLight":"rgba(106, 161, 224, 0.5)","teal":"#00B4CC","tealLight":"rgba(0, 180, 204, 0.5)","warning":"#DD9900","warningTransparent":"rgba(221, 153, 0, 0.5)","yellow":"#FFCC19","yellowLight":"rgba(255, 204, 25, 0.5)"},"background":{"blackTransparent":"rgba(0, 0, 0, 0.6)","blackTransparentDark":"rgba(0, 0, 0, 0.8)","chartBlock":"#2E3036","codeArea":"#1E1F24","codeTextarea":"#000000","content":"#1B1C20","danger":"#FFD0DB","dark":"#B1B8C3","dashboard":"#18181C","dashboardTransparent":"rgba(24, 24, 28, 0.1)","header":"#1B1B1B","menu":"#0F4CFF","muted":"#F9FAFC","navigation":"#EDEDED","output":"#2E3036","page":"#1E1F24","panel":"#232429","panelTransparent":"rgba(35, 36, 41, 0.7)","popup":"#27292E","row":"#2C2C2C","row2":"#51535C","scrollbarThumb":"rgba(100, 100, 100, 0.5)","scrollbarThumbHover":"rgba(255, 255, 255, 0.3)","scrollbarTrack":"#2E3036","success":"#8ADE00","successLight":"rgb(138, 222, 0, 0.3)","table":"#292A2F","tag":"#3A4550"},"borders":{"button":"#454850","contrast":"#FFFFFF","danger":"#FF144D","dark":"#000000","darkLight":"#2E3036","info":"#FFCC19","light":"#2F3034","medium":"#1C1C1C","medium2":"#141414","success":"#2FCB52"},"brand":{"earth100":"#C6EEDB","earth200":"#9DDFBF","earth300":"#6BBF96","earth400":"#37A46F","earth400Transparent":"rgba(55, 164, 111, 0.4)","earth500":"#00954C","energy100":"#FFF4BA","energy200":"#FFED92","energy300":"#FFE662","energy400":"#FFDA19","energy400Transparent":"rgba(255, 218, 25, 0.04)","energy500":"#F6C000","fire100":"#FFD7E0","fire200":"#FFA3B9","fire300":"#FF547D","fire400":"#FF144D","fire400Transparent":"rgba(255, 20, 77, 0.4)","fire500":"#EB0032","stone100":"#F3E6D7","stone200":"#E3D4C2","stone400":"#BFA78B","stone500":"#AF8859","water100":"#BDCEFF","water200":"#81A1FF","water300":"#517DFF","water400":"#2A60FE","water400Transparent":"rgba(42, 96, 254, 0.4)","water500":"#0F4CFF","wind100":"#EEEAFF","wind200":"#CCC1F4","wind300":"#A698DD","wind400":"#6B50D7","wind400SuperTransparent":"rgba(107, 80, 215, 0.12)","wind400Transparent":"rgba(107, 80, 215, 0.4)","wind500":"#4E32BC"},"chart":{"backgroundPrimary":"#7D55EC","backgroundSecondary":"#FF144D","backgroundTertiary":"#86E2FF","button1":"#4877FF","button2":"#FFCC19","button3":"#8ADE00","button4":"#FF4FF8","button5":"#B98D95","lines":"#9B6CA7","primary":"#6B50D7","secondary":"#FF144D","tertiary":"#2A60FE"},"content":{"active":"#FFFFFF","default":"#AEAEAE","disabled":"rgba(255, 255, 255, 0.3)","inverted":"#2C2C2C","muted":"#787A85"},"elevation":{"visualizationAccent":"#996CFF","visualizationAccentAlt":"#C1ACF7"},"feature":{"active":"rgba(250, 248, 254, 0.14)","disabled":"rgba(201, 206, 218, 0.12)"},"icons":{"neutral":"#787878"},"interactive":{"activeBorder":"#060606","blackBackgroundTransparent":"rgba(0, 0, 0, 0.5)","checked":"#060606","dangerBorder":"#FF144D","defaultBackground":"#36383F","defaultBackgroundTransparent":"rgba(54, 56, 63, 0.5)","defaultBorder":"#ffffff1a","disabledBorder":"#B1B8C3","focusBackground":"#B1B8C3","focusBorder":"#86E2FF","hoverBackground":"#4E4E4E","hoverBackgroundTransparent":"rgba(78, 78, 78, 0.5)","hoverBlackBackgroundTransparent":"rgba(0, 0, 0, 0.7)","hoverBorder":"#B9BFCA","hoverOverlay":"rgba(255, 255, 255, 0.1)","linkPrimary":"#1752FF","linkPrimaryHover":"#4877FF","linkPrimaryLight":"#5982ff","linkSecondary":"#6B50D7","linkSecondaryDisabled":"#C4B9EF","linkText":"#6AA1E0","linkTextLight":"#9ECBFF","purple":"#885EFF","rowHoverBackground":"rgba(0, 0, 0, 0.1)","transparent":"rgba(255, 255, 255, 0)"},"loader":{"color":"#EB0032","colorInverted":"#8ADE00"},"logo":{"color":"#FFFFFF"},"monotone":{"black":"#060606","blackTransparent":"rgba(0, 0, 0, 0.6)","gray":"#B1B8C3","grey100":"#F2F2F2","grey200":"#D5D7DC","grey300":"#B4B8C0","grey400":"#70747C","grey500":"#51535C","purple":"#6B50D7","white":"#FFFFFF","whiteTransparent":"rgba(255, 255, 255, 0.6)"},"neutral":{"n100":"#E7E8EA","n200":"#D8DADE","n300":"#CBCCD0","n400":"#BCBEC4","n500":"#AEB0B6"},"progress":{"negative":"#FF144D","positive":"#6B50D7"},"shadow":{"base":"12px 40px 120px rgba(0, 0, 0, 0.3)","frame":"0px 10px 40px rgba(0, 0, 0, 0.26)","menu":"4px 10px 20px rgba(6, 6, 6, 0.12)","popup":"10px 20px 40px rgba(0, 0, 0, 0.2)","small":"0px, 4px, rgba(0, 0, 0, 0.25)","window":"0px 10px 60px rgba(0, 0, 0, 0.7)"},"status":{"negative":"#FF144D","positive":"#24B400"},"text":{"fileBrowser":"#787A85"}}},"page":"/triggers","query":{},"buildId":"CKCvjsYCf2imD2X8zAOBf","assetPrefix":"/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_","nextExport":true,"isFallback":false,"gip":true,"appGip":true,"scriptLoader":[]}</script></body></html>
24
+ </style></head><body><div id="__next"><div class="" style="position:fixed;top:0;left:0;height:2px;background:transparent;z-index:99999999999;width:100%"><div class="" style="height:100%;background:#FF144D;transition:all 500ms ease;width:0%"><div style="box-shadow:0 0 10px #FF144D, 0 0 10px #FF144D;width:5%;opacity:1;position:absolute;height:100%;transition:all 500ms ease;transform:rotate(3deg) translate(0px, -4px);left:-10rem"></div></div></div><div class="indexstyle__HeaderStyle-sc-1bk8irg-0 gbXfes"><div></div></div><div class="indexstyle__ContainerStyle-sc-ecogjt-0 ijwRXz"><div class="indexstyle__VerticalNavigationStyleComponent-sc-ecogjt-1 jQArIy"><div class="Spacing__SpacingStyle-sc-1mpmtgj-0 hDBiHu"><div></div></div></div><div class="Flex-sc-sgfnl9-0 dKQluW"><div></div></div></div><div id="command-center-root"></div><div></div><div></div><div></div><div class="ToastWrapper-sc-1a33ph1-0 kOVcuR"><div class="Toastify"></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"auth":{"decodedToken":{"expires":0,"token":null}}},"currentTheme":{"accent":{"alert":"#F6540B","blue":"#4877FF","blueLight":"rgba(72, 119, 255, 0.5)","contentDefaultTransparent":"rgba(174, 174, 174, 0.5)","cyan":"#65E3FF","cyanLight":"rgba(101, 227, 255, 0.3)","cyanTransparent":"rgba(101, 227, 255, 0.12)","dbt":"#fc6949","dbtDark":"rgba(252, 105, 73, 0.3)","dbtLight":"rgba(252, 105, 73, 0.5)","info":"#00ABFF","infoTransparent":"rgba(0, 171, 255, 0.5)","negative":"#FF1E59","negativeTransparent":"rgba(255, 30, 89, 0.3)","pink":"#FF4FF8","pinkLight":"rgb(255, 79, 248, 0.5)","positive":"#00A81A","primaryTransparent":"rgba(155, 108, 167, 0.5)","purple":"#7D55EC","purpleLight":"rgba(125, 85, 236, 0.5)","rose":"#D1A2AB","roseLight":"rgba(209, 162, 171, 0.5)","sky":"#6AA1E0","skyLight":"rgba(106, 161, 224, 0.5)","teal":"#00B4CC","tealLight":"rgba(0, 180, 204, 0.5)","warning":"#DD9900","warningTransparent":"rgba(221, 153, 0, 0.5)","yellow":"#FFCC19","yellowLight":"rgba(255, 204, 25, 0.5)"},"background":{"blackTransparent":"rgba(0, 0, 0, 0.6)","blackTransparentDark":"rgba(0, 0, 0, 0.8)","chartBlock":"#2E3036","codeArea":"#1E1F24","codeTextarea":"#000000","content":"#1B1C20","danger":"#FFD0DB","dark":"#B1B8C3","dashboard":"#18181C","dashboardTransparent":"rgba(24, 24, 28, 0.1)","header":"#1B1B1B","menu":"#0F4CFF","muted":"#F9FAFC","navigation":"#EDEDED","output":"#2E3036","page":"#1E1F24","panel":"#232429","panelTransparent":"rgba(35, 36, 41, 0.7)","popup":"#27292E","row":"#2C2C2C","row2":"#51535C","scrollbarThumb":"rgba(100, 100, 100, 0.5)","scrollbarThumbHover":"rgba(255, 255, 255, 0.3)","scrollbarTrack":"#2E3036","success":"#8ADE00","successLight":"rgb(138, 222, 0, 0.3)","table":"#292A2F","tag":"#3A4550"},"borders":{"button":"#454850","contrast":"#FFFFFF","danger":"#FF144D","dark":"#000000","darkLight":"#2E3036","info":"#FFCC19","light":"#2F3034","medium":"#1C1C1C","medium2":"#141414","success":"#2FCB52"},"brand":{"earth100":"#C6EEDB","earth200":"#9DDFBF","earth300":"#6BBF96","earth400":"#37A46F","earth400Transparent":"rgba(55, 164, 111, 0.4)","earth500":"#00954C","energy100":"#FFF4BA","energy200":"#FFED92","energy300":"#FFE662","energy400":"#FFDA19","energy400Transparent":"rgba(255, 218, 25, 0.04)","energy500":"#F6C000","fire100":"#FFD7E0","fire200":"#FFA3B9","fire300":"#FF547D","fire400":"#FF144D","fire400Transparent":"rgba(255, 20, 77, 0.4)","fire500":"#EB0032","stone100":"#F3E6D7","stone200":"#E3D4C2","stone400":"#BFA78B","stone500":"#AF8859","water100":"#BDCEFF","water200":"#81A1FF","water300":"#517DFF","water400":"#2A60FE","water400Transparent":"rgba(42, 96, 254, 0.4)","water500":"#0F4CFF","wind100":"#EEEAFF","wind200":"#CCC1F4","wind300":"#A698DD","wind400":"#6B50D7","wind400SuperTransparent":"rgba(107, 80, 215, 0.12)","wind400Transparent":"rgba(107, 80, 215, 0.4)","wind500":"#4E32BC"},"chart":{"backgroundPrimary":"#7D55EC","backgroundSecondary":"#FF144D","backgroundTertiary":"#86E2FF","button1":"#4877FF","button2":"#FFCC19","button3":"#8ADE00","button4":"#FF4FF8","button5":"#B98D95","lines":"#9B6CA7","primary":"#6B50D7","secondary":"#FF144D","tertiary":"#2A60FE"},"content":{"active":"#FFFFFF","default":"#AEAEAE","disabled":"rgba(255, 255, 255, 0.3)","inverted":"#2C2C2C","muted":"#787A85"},"elevation":{"visualizationAccent":"#996CFF","visualizationAccentAlt":"#C1ACF7"},"feature":{"active":"rgba(250, 248, 254, 0.14)","disabled":"rgba(201, 206, 218, 0.12)"},"icons":{"neutral":"#787878"},"interactive":{"activeBorder":"#060606","blackBackgroundTransparent":"rgba(0, 0, 0, 0.5)","checked":"#060606","dangerBorder":"#FF144D","defaultBackground":"#36383F","defaultBackgroundTransparent":"rgba(54, 56, 63, 0.5)","defaultBorder":"#ffffff1a","disabledBorder":"#B1B8C3","focusBackground":"#B1B8C3","focusBorder":"#86E2FF","hoverBackground":"#4E4E4E","hoverBackgroundTransparent":"rgba(78, 78, 78, 0.5)","hoverBlackBackgroundTransparent":"rgba(0, 0, 0, 0.7)","hoverBorder":"#B9BFCA","hoverOverlay":"rgba(255, 255, 255, 0.1)","linkPrimary":"#1752FF","linkPrimaryHover":"#4877FF","linkPrimaryLight":"#5982ff","linkSecondary":"#6B50D7","linkSecondaryDisabled":"#C4B9EF","linkText":"#6AA1E0","linkTextLight":"#9ECBFF","purple":"#885EFF","rowHoverBackground":"rgba(0, 0, 0, 0.1)","transparent":"rgba(255, 255, 255, 0)"},"loader":{"color":"#EB0032","colorInverted":"#8ADE00"},"logo":{"color":"#FFFFFF"},"monotone":{"black":"#060606","blackTransparent":"rgba(0, 0, 0, 0.6)","gray":"#B1B8C3","grey100":"#F2F2F2","grey200":"#D5D7DC","grey300":"#B4B8C0","grey400":"#70747C","grey500":"#51535C","purple":"#6B50D7","white":"#FFFFFF","whiteTransparent":"rgba(255, 255, 255, 0.6)"},"neutral":{"n100":"#E7E8EA","n200":"#D8DADE","n300":"#CBCCD0","n400":"#BCBEC4","n500":"#AEB0B6"},"progress":{"negative":"#FF144D","positive":"#6B50D7"},"shadow":{"base":"12px 40px 120px rgba(0, 0, 0, 0.3)","frame":"0px 10px 40px rgba(0, 0, 0, 0.26)","menu":"4px 10px 20px rgba(6, 6, 6, 0.12)","popup":"10px 20px 40px rgba(0, 0, 0, 0.2)","small":"0px, 4px, rgba(0, 0, 0, 0.25)","window":"0px 10px 60px rgba(0, 0, 0, 0.7)"},"status":{"negative":"#FF144D","positive":"#24B400"},"text":{"fileBrowser":"#787A85"}}},"page":"/triggers","query":{},"buildId":"KLL5mirre9d7_ZeEpaw3s","assetPrefix":"/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_","nextExport":true,"isFallback":false,"gip":true,"appGip":true,"scriptLoader":[]}</script></body></html>
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta content="width=device-width, initial-scale=1.0, maximum-scale=5.0, user-scalable=0" name="viewport"/><title>Version control | Mage</title><meta name="next-head-count" content="3"/><link href="/favicon.ico" rel="icon"/><link rel="preload" href="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/css/b59541b123fd7191.css" as="style"/><link rel="stylesheet" href="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/css/b59541b123fd7191.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/webpack-68c003fb6a175cd7.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/framework-22b71764bf44ede4.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/main-70b78159c2bb3fe1.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/pages/_app-08790743315de36a.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/1557-01f0843dc6ac4971.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/pages/version-control-5753fac7c1bfdc88.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/CKCvjsYCf2imD2X8zAOBf/_buildManifest.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/CKCvjsYCf2imD2X8zAOBf/_ssgManifest.js" defer=""></script><style data-styled="" data-styled-version="5.3.6">html{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-overflow-style:scrollbar;}/*!sc*/
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta content="width=device-width, initial-scale=1.0, maximum-scale=5.0, user-scalable=0" name="viewport"/><title>Version control | Mage</title><meta name="next-head-count" content="3"/><link href="/favicon.ico" rel="icon"/><link rel="preload" href="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/css/b59541b123fd7191.css" as="style"/><link rel="stylesheet" href="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/css/b59541b123fd7191.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/webpack-68c003fb6a175cd7.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/framework-22b71764bf44ede4.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/main-70b78159c2bb3fe1.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/pages/_app-d9c89527266296f7.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/1557-df144fbd8b2208c3.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/chunks/pages/version-control-5753fac7c1bfdc88.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/KLL5mirre9d7_ZeEpaw3s/_buildManifest.js" defer=""></script><script src="/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_/_next/static/KLL5mirre9d7_ZeEpaw3s/_ssgManifest.js" defer=""></script><style data-styled="" data-styled-version="5.3.6">html{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-overflow-style:scrollbar;}/*!sc*/
2
2
  *,*::before,*::after{-webkit-box-sizing:inherit;box-sizing:inherit;}/*!sc*/
3
3
  data-styled.g4[id="sc-global-czSCUT1"]{content:"sc-global-czSCUT1,"}/*!sc*/
4
4
  .dKQluW{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:1;-ms-flex:1;flex:1;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}/*!sc*/
@@ -21,4 +21,4 @@ data-styled.g238[id="indexstyle__VerticalNavigationStyleComponent-sc-ecogjt-1"]{
21
21
  .kOVcuR .Toastify__toast--success{background:#00A81A !important;color:#FFFFFF !important;}/*!sc*/
22
22
  .kOVcuR .Toastify__toast--warning{background:#DD9900 !important;color:#FFFFFF !important;}/*!sc*/
23
23
  data-styled.g275[id="ToastWrapper-sc-1a33ph1-0"]{content:"kOVcuR,"}/*!sc*/
24
- </style></head><body><div id="__next"><div class="" style="position:fixed;top:0;left:0;height:2px;background:transparent;z-index:99999999999;width:100%"><div class="" style="height:100%;background:#FF144D;transition:all 500ms ease;width:0%"><div style="box-shadow:0 0 10px #FF144D, 0 0 10px #FF144D;width:5%;opacity:1;position:absolute;height:100%;transition:all 500ms ease;transform:rotate(3deg) translate(0px, -4px);left:-10rem"></div></div></div><div class="indexstyle__HeaderStyle-sc-1bk8irg-0 gbXfes"><div></div></div><div class="indexstyle__ContainerStyle-sc-ecogjt-0 ijwRXz"><div class="indexstyle__VerticalNavigationStyleComponent-sc-ecogjt-1 jQArIy"><div class="Spacing__SpacingStyle-sc-1mpmtgj-0 hDBiHu"><div></div></div></div><div class="Flex-sc-sgfnl9-0 dKQluW"><div></div></div></div><div id="command-center-root"></div><div></div><div></div><div></div><div class="ToastWrapper-sc-1a33ph1-0 kOVcuR"><div class="Toastify"></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"auth":{"decodedToken":{"expires":0,"token":null}}},"currentTheme":{"accent":{"alert":"#F6540B","blue":"#4877FF","blueLight":"rgba(72, 119, 255, 0.5)","contentDefaultTransparent":"rgba(174, 174, 174, 0.5)","cyan":"#65E3FF","cyanLight":"rgba(101, 227, 255, 0.3)","cyanTransparent":"rgba(101, 227, 255, 0.12)","dbt":"#fc6949","dbtDark":"rgba(252, 105, 73, 0.3)","dbtLight":"rgba(252, 105, 73, 0.5)","info":"#00ABFF","infoTransparent":"rgba(0, 171, 255, 0.5)","negative":"#FF1E59","negativeTransparent":"rgba(255, 30, 89, 0.3)","pink":"#FF4FF8","pinkLight":"rgb(255, 79, 248, 0.5)","positive":"#00A81A","primaryTransparent":"rgba(155, 108, 167, 0.5)","purple":"#7D55EC","purpleLight":"rgba(125, 85, 236, 0.5)","rose":"#D1A2AB","roseLight":"rgba(209, 162, 171, 0.5)","sky":"#6AA1E0","skyLight":"rgba(106, 161, 224, 0.5)","teal":"#00B4CC","tealLight":"rgba(0, 180, 204, 0.5)","warning":"#DD9900","warningTransparent":"rgba(221, 153, 0, 0.5)","yellow":"#FFCC19","yellowLight":"rgba(255, 204, 25, 0.5)"},"background":{"blackTransparent":"rgba(0, 0, 0, 0.6)","blackTransparentDark":"rgba(0, 0, 0, 0.8)","chartBlock":"#2E3036","codeArea":"#1E1F24","codeTextarea":"#000000","content":"#1B1C20","danger":"#FFD0DB","dark":"#B1B8C3","dashboard":"#18181C","dashboardTransparent":"rgba(24, 24, 28, 0.1)","header":"#1B1B1B","menu":"#0F4CFF","muted":"#F9FAFC","navigation":"#EDEDED","output":"#2E3036","page":"#1E1F24","panel":"#232429","panelTransparent":"rgba(35, 36, 41, 0.7)","popup":"#27292E","row":"#2C2C2C","row2":"#51535C","scrollbarThumb":"rgba(100, 100, 100, 0.5)","scrollbarThumbHover":"rgba(255, 255, 255, 0.3)","scrollbarTrack":"#2E3036","success":"#8ADE00","successLight":"rgb(138, 222, 0, 0.3)","table":"#292A2F","tag":"#3A4550"},"borders":{"button":"#454850","contrast":"#FFFFFF","danger":"#FF144D","dark":"#000000","darkLight":"#2E3036","info":"#FFCC19","light":"#2F3034","medium":"#1C1C1C","medium2":"#141414","success":"#2FCB52"},"brand":{"earth100":"#C6EEDB","earth200":"#9DDFBF","earth300":"#6BBF96","earth400":"#37A46F","earth400Transparent":"rgba(55, 164, 111, 0.4)","earth500":"#00954C","energy100":"#FFF4BA","energy200":"#FFED92","energy300":"#FFE662","energy400":"#FFDA19","energy400Transparent":"rgba(255, 218, 25, 0.04)","energy500":"#F6C000","fire100":"#FFD7E0","fire200":"#FFA3B9","fire300":"#FF547D","fire400":"#FF144D","fire400Transparent":"rgba(255, 20, 77, 0.4)","fire500":"#EB0032","stone100":"#F3E6D7","stone200":"#E3D4C2","stone400":"#BFA78B","stone500":"#AF8859","water100":"#BDCEFF","water200":"#81A1FF","water300":"#517DFF","water400":"#2A60FE","water400Transparent":"rgba(42, 96, 254, 0.4)","water500":"#0F4CFF","wind100":"#EEEAFF","wind200":"#CCC1F4","wind300":"#A698DD","wind400":"#6B50D7","wind400SuperTransparent":"rgba(107, 80, 215, 0.12)","wind400Transparent":"rgba(107, 80, 215, 0.4)","wind500":"#4E32BC"},"chart":{"backgroundPrimary":"#7D55EC","backgroundSecondary":"#FF144D","backgroundTertiary":"#86E2FF","button1":"#4877FF","button2":"#FFCC19","button3":"#8ADE00","button4":"#FF4FF8","button5":"#B98D95","lines":"#9B6CA7","primary":"#6B50D7","secondary":"#FF144D","tertiary":"#2A60FE"},"content":{"active":"#FFFFFF","default":"#AEAEAE","disabled":"rgba(255, 255, 255, 0.3)","inverted":"#2C2C2C","muted":"#787A85"},"elevation":{"visualizationAccent":"#996CFF","visualizationAccentAlt":"#C1ACF7"},"feature":{"active":"rgba(250, 248, 254, 0.14)","disabled":"rgba(201, 206, 218, 0.12)"},"icons":{"neutral":"#787878"},"interactive":{"activeBorder":"#060606","blackBackgroundTransparent":"rgba(0, 0, 0, 0.5)","checked":"#060606","dangerBorder":"#FF144D","defaultBackground":"#36383F","defaultBackgroundTransparent":"rgba(54, 56, 63, 0.5)","defaultBorder":"#ffffff1a","disabledBorder":"#B1B8C3","focusBackground":"#B1B8C3","focusBorder":"#86E2FF","hoverBackground":"#4E4E4E","hoverBackgroundTransparent":"rgba(78, 78, 78, 0.5)","hoverBlackBackgroundTransparent":"rgba(0, 0, 0, 0.7)","hoverBorder":"#B9BFCA","hoverOverlay":"rgba(255, 255, 255, 0.1)","linkPrimary":"#1752FF","linkPrimaryHover":"#4877FF","linkPrimaryLight":"#5982ff","linkSecondary":"#6B50D7","linkSecondaryDisabled":"#C4B9EF","linkText":"#6AA1E0","linkTextLight":"#9ECBFF","purple":"#885EFF","rowHoverBackground":"rgba(0, 0, 0, 0.1)","transparent":"rgba(255, 255, 255, 0)"},"loader":{"color":"#EB0032","colorInverted":"#8ADE00"},"logo":{"color":"#FFFFFF"},"monotone":{"black":"#060606","blackTransparent":"rgba(0, 0, 0, 0.6)","gray":"#B1B8C3","grey100":"#F2F2F2","grey200":"#D5D7DC","grey300":"#B4B8C0","grey400":"#70747C","grey500":"#51535C","purple":"#6B50D7","white":"#FFFFFF","whiteTransparent":"rgba(255, 255, 255, 0.6)"},"neutral":{"n100":"#E7E8EA","n200":"#D8DADE","n300":"#CBCCD0","n400":"#BCBEC4","n500":"#AEB0B6"},"progress":{"negative":"#FF144D","positive":"#6B50D7"},"shadow":{"base":"12px 40px 120px rgba(0, 0, 0, 0.3)","frame":"0px 10px 40px rgba(0, 0, 0, 0.26)","menu":"4px 10px 20px rgba(6, 6, 6, 0.12)","popup":"10px 20px 40px rgba(0, 0, 0, 0.2)","small":"0px, 4px, rgba(0, 0, 0, 0.25)","window":"0px 10px 60px rgba(0, 0, 0, 0.7)"},"status":{"negative":"#FF144D","positive":"#24B400"},"text":{"fileBrowser":"#787A85"}}},"page":"/version-control","query":{},"buildId":"CKCvjsYCf2imD2X8zAOBf","assetPrefix":"/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_","nextExport":true,"isFallback":false,"gip":true,"appGip":true,"scriptLoader":[]}</script></body></html>
24
+ </style></head><body><div id="__next"><div class="" style="position:fixed;top:0;left:0;height:2px;background:transparent;z-index:99999999999;width:100%"><div class="" style="height:100%;background:#FF144D;transition:all 500ms ease;width:0%"><div style="box-shadow:0 0 10px #FF144D, 0 0 10px #FF144D;width:5%;opacity:1;position:absolute;height:100%;transition:all 500ms ease;transform:rotate(3deg) translate(0px, -4px);left:-10rem"></div></div></div><div class="indexstyle__HeaderStyle-sc-1bk8irg-0 gbXfes"><div></div></div><div class="indexstyle__ContainerStyle-sc-ecogjt-0 ijwRXz"><div class="indexstyle__VerticalNavigationStyleComponent-sc-ecogjt-1 jQArIy"><div class="Spacing__SpacingStyle-sc-1mpmtgj-0 hDBiHu"><div></div></div></div><div class="Flex-sc-sgfnl9-0 dKQluW"><div></div></div></div><div id="command-center-root"></div><div></div><div></div><div></div><div class="ToastWrapper-sc-1a33ph1-0 kOVcuR"><div class="Toastify"></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"auth":{"decodedToken":{"expires":0,"token":null}}},"currentTheme":{"accent":{"alert":"#F6540B","blue":"#4877FF","blueLight":"rgba(72, 119, 255, 0.5)","contentDefaultTransparent":"rgba(174, 174, 174, 0.5)","cyan":"#65E3FF","cyanLight":"rgba(101, 227, 255, 0.3)","cyanTransparent":"rgba(101, 227, 255, 0.12)","dbt":"#fc6949","dbtDark":"rgba(252, 105, 73, 0.3)","dbtLight":"rgba(252, 105, 73, 0.5)","info":"#00ABFF","infoTransparent":"rgba(0, 171, 255, 0.5)","negative":"#FF1E59","negativeTransparent":"rgba(255, 30, 89, 0.3)","pink":"#FF4FF8","pinkLight":"rgb(255, 79, 248, 0.5)","positive":"#00A81A","primaryTransparent":"rgba(155, 108, 167, 0.5)","purple":"#7D55EC","purpleLight":"rgba(125, 85, 236, 0.5)","rose":"#D1A2AB","roseLight":"rgba(209, 162, 171, 0.5)","sky":"#6AA1E0","skyLight":"rgba(106, 161, 224, 0.5)","teal":"#00B4CC","tealLight":"rgba(0, 180, 204, 0.5)","warning":"#DD9900","warningTransparent":"rgba(221, 153, 0, 0.5)","yellow":"#FFCC19","yellowLight":"rgba(255, 204, 25, 0.5)"},"background":{"blackTransparent":"rgba(0, 0, 0, 0.6)","blackTransparentDark":"rgba(0, 0, 0, 0.8)","chartBlock":"#2E3036","codeArea":"#1E1F24","codeTextarea":"#000000","content":"#1B1C20","danger":"#FFD0DB","dark":"#B1B8C3","dashboard":"#18181C","dashboardTransparent":"rgba(24, 24, 28, 0.1)","header":"#1B1B1B","menu":"#0F4CFF","muted":"#F9FAFC","navigation":"#EDEDED","output":"#2E3036","page":"#1E1F24","panel":"#232429","panelTransparent":"rgba(35, 36, 41, 0.7)","popup":"#27292E","row":"#2C2C2C","row2":"#51535C","scrollbarThumb":"rgba(100, 100, 100, 0.5)","scrollbarThumbHover":"rgba(255, 255, 255, 0.3)","scrollbarTrack":"#2E3036","success":"#8ADE00","successLight":"rgb(138, 222, 0, 0.3)","table":"#292A2F","tag":"#3A4550"},"borders":{"button":"#454850","contrast":"#FFFFFF","danger":"#FF144D","dark":"#000000","darkLight":"#2E3036","info":"#FFCC19","light":"#2F3034","medium":"#1C1C1C","medium2":"#141414","success":"#2FCB52"},"brand":{"earth100":"#C6EEDB","earth200":"#9DDFBF","earth300":"#6BBF96","earth400":"#37A46F","earth400Transparent":"rgba(55, 164, 111, 0.4)","earth500":"#00954C","energy100":"#FFF4BA","energy200":"#FFED92","energy300":"#FFE662","energy400":"#FFDA19","energy400Transparent":"rgba(255, 218, 25, 0.04)","energy500":"#F6C000","fire100":"#FFD7E0","fire200":"#FFA3B9","fire300":"#FF547D","fire400":"#FF144D","fire400Transparent":"rgba(255, 20, 77, 0.4)","fire500":"#EB0032","stone100":"#F3E6D7","stone200":"#E3D4C2","stone400":"#BFA78B","stone500":"#AF8859","water100":"#BDCEFF","water200":"#81A1FF","water300":"#517DFF","water400":"#2A60FE","water400Transparent":"rgba(42, 96, 254, 0.4)","water500":"#0F4CFF","wind100":"#EEEAFF","wind200":"#CCC1F4","wind300":"#A698DD","wind400":"#6B50D7","wind400SuperTransparent":"rgba(107, 80, 215, 0.12)","wind400Transparent":"rgba(107, 80, 215, 0.4)","wind500":"#4E32BC"},"chart":{"backgroundPrimary":"#7D55EC","backgroundSecondary":"#FF144D","backgroundTertiary":"#86E2FF","button1":"#4877FF","button2":"#FFCC19","button3":"#8ADE00","button4":"#FF4FF8","button5":"#B98D95","lines":"#9B6CA7","primary":"#6B50D7","secondary":"#FF144D","tertiary":"#2A60FE"},"content":{"active":"#FFFFFF","default":"#AEAEAE","disabled":"rgba(255, 255, 255, 0.3)","inverted":"#2C2C2C","muted":"#787A85"},"elevation":{"visualizationAccent":"#996CFF","visualizationAccentAlt":"#C1ACF7"},"feature":{"active":"rgba(250, 248, 254, 0.14)","disabled":"rgba(201, 206, 218, 0.12)"},"icons":{"neutral":"#787878"},"interactive":{"activeBorder":"#060606","blackBackgroundTransparent":"rgba(0, 0, 0, 0.5)","checked":"#060606","dangerBorder":"#FF144D","defaultBackground":"#36383F","defaultBackgroundTransparent":"rgba(54, 56, 63, 0.5)","defaultBorder":"#ffffff1a","disabledBorder":"#B1B8C3","focusBackground":"#B1B8C3","focusBorder":"#86E2FF","hoverBackground":"#4E4E4E","hoverBackgroundTransparent":"rgba(78, 78, 78, 0.5)","hoverBlackBackgroundTransparent":"rgba(0, 0, 0, 0.7)","hoverBorder":"#B9BFCA","hoverOverlay":"rgba(255, 255, 255, 0.1)","linkPrimary":"#1752FF","linkPrimaryHover":"#4877FF","linkPrimaryLight":"#5982ff","linkSecondary":"#6B50D7","linkSecondaryDisabled":"#C4B9EF","linkText":"#6AA1E0","linkTextLight":"#9ECBFF","purple":"#885EFF","rowHoverBackground":"rgba(0, 0, 0, 0.1)","transparent":"rgba(255, 255, 255, 0)"},"loader":{"color":"#EB0032","colorInverted":"#8ADE00"},"logo":{"color":"#FFFFFF"},"monotone":{"black":"#060606","blackTransparent":"rgba(0, 0, 0, 0.6)","gray":"#B1B8C3","grey100":"#F2F2F2","grey200":"#D5D7DC","grey300":"#B4B8C0","grey400":"#70747C","grey500":"#51535C","purple":"#6B50D7","white":"#FFFFFF","whiteTransparent":"rgba(255, 255, 255, 0.6)"},"neutral":{"n100":"#E7E8EA","n200":"#D8DADE","n300":"#CBCCD0","n400":"#BCBEC4","n500":"#AEB0B6"},"progress":{"negative":"#FF144D","positive":"#6B50D7"},"shadow":{"base":"12px 40px 120px rgba(0, 0, 0, 0.3)","frame":"0px 10px 40px rgba(0, 0, 0, 0.26)","menu":"4px 10px 20px rgba(6, 6, 6, 0.12)","popup":"10px 20px 40px rgba(0, 0, 0, 0.2)","small":"0px, 4px, rgba(0, 0, 0, 0.25)","window":"0px 10px 60px rgba(0, 0, 0, 0.7)"},"status":{"negative":"#FF144D","positive":"#24B400"},"text":{"fileBrowser":"#787A85"}}},"page":"/version-control","query":{},"buildId":"KLL5mirre9d7_ZeEpaw3s","assetPrefix":"/CLOUD_NOTEBOOK_BASE_PATH_PLACEHOLDER_","nextExport":true,"isFallback":false,"gip":true,"appGip":true,"scriptLoader":[]}</script></body></html>
@@ -9,6 +9,7 @@ import sentry_sdk
9
9
 
10
10
  from mage_ai.orchestration.db.database_manager import database_manager
11
11
  from mage_ai.orchestration.db.process import create_process
12
+ from mage_ai.orchestration.job_manager import job_manager
12
13
  from mage_ai.server.logger import Logger
13
14
  from mage_ai.services.newrelic import initialize_new_relic
14
15
  from mage_ai.settings import (
@@ -47,8 +48,12 @@ def run_scheduler():
47
48
  )
48
49
 
49
50
  try:
51
+ if job_manager is not None:
52
+ job_manager.start()
50
53
  LoopTimeTrigger().start()
51
54
  except Exception as e:
55
+ if job_manager is not None:
56
+ job_manager.stop()
52
57
  logger.exception('Failed to run scheduler.')
53
58
  raise e
54
59
 
@@ -96,6 +101,8 @@ class SchedulerManager:
96
101
  logger.info('Stop scheduler.')
97
102
  if self.is_alive:
98
103
  self.scheduler_process.terminate()
104
+ if job_manager is not None:
105
+ job_manager.stop()
99
106
  self.scheduler_process = None
100
107
  self.status = self.SchedulerStatus.STOPPED
101
108
 
mage_ai/server/server.py CHANGED
@@ -452,12 +452,14 @@ def initialize_user_authentication(project_type: ProjectType) -> Oauth2Applicati
452
452
 
453
453
  # Create new roles on existing users. This should only need to be run once.
454
454
  if project_type == ProjectType.SUB:
455
+ project_uuid = get_project_uuid()
456
+ project_uuid_truncated = project_uuid[:8]
455
457
  Role.create_default_roles(
456
458
  entity=Entity.PROJECT,
457
- entity_id=get_project_uuid(),
458
- prefix=get_repo_name(),
459
+ entity_id=project_uuid,
460
+ name_func=lambda role: f'{role}_{project_uuid_truncated}',
459
461
  )
460
- default_owner_role = Role.get_role(f'{get_repo_name()}_{Role.DefaultRole.OWNER}')
462
+ default_owner_role = Role.get_role(f'{Role.DefaultRole.OWNER}_{project_uuid_truncated}')
461
463
  else:
462
464
  Role.create_default_roles()
463
465
  default_owner_role = Role.get_role(Role.DefaultRole.OWNER)
@@ -573,7 +575,7 @@ async def main(
573
575
  from mage_ai.data_preparation.sync.git_sync import GitSync
574
576
  sync_config = GitConfig.load(config=preferences.sync_config)
575
577
  sync = GitSync(sync_config, setup_repo=True)
576
- if sync_config.sync_on_start:
578
+ if sync_config.remote_repo_link and sync_config.sync_on_start is True:
577
579
  try:
578
580
  sync.sync_data()
579
581
  logger.info(
@@ -671,7 +673,12 @@ async def main(
671
673
  update_settings_on_metadata_change()
672
674
  observer = Observer()
673
675
  event_handler = MetadataEventHandler()
674
- observer.schedule(event_handler, path=get_metadata_path(root_project=True))
676
+ metadata_file = get_metadata_path(root_project=True)
677
+ if not os.path.exists(metadata_file):
678
+ os.makedirs(os.path.dirname(metadata_file), exist_ok=True)
679
+ with open(metadata_file, 'w') as f:
680
+ f.write('')
681
+ observer.schedule(event_handler, path=metadata_file)
675
682
  observer.start()
676
683
 
677
684
  get_messages(
@@ -116,6 +116,7 @@ def run_pipeline(
116
116
  pipeline.execute_sync(
117
117
  global_vars=global_vars,
118
118
  build_block_output_stdout=build_block_output_stdout,
119
+ retry_config=dict(),
119
120
  run_sensors=False,
120
121
  )
121
122
  add_pipeline_message(
@@ -13,6 +13,8 @@ LDAP_DEFAULT_ACCESS = 'LDAP_DEFAULT_ACCESS'
13
13
  LDAP_GROUP_FIELD = 'LDAP_GROUP_FIELD'
14
14
  LDAP_ROLES_MAPPING = 'LDAP_ROLES_MAPPING'
15
15
 
16
+ UPDATE_ROLES_ON_LOGIN = 'UPDATE_ROLES_ON_LOGIN'
17
+
16
18
  # Git settings
17
19
 
18
20
  GIT_REPO_LINK = 'GIT_REPO_LINK'
@@ -79,7 +79,7 @@ SERVER_LOGGING_TEMPLATE = os.getenv(
79
79
  '%(levelname)s:%(name)s:%(message)s',
80
80
  )
81
81
 
82
- INITIAL_METADATA = os.getenv('INITIAL_METADATA', '{{}}')
82
+ INITIAL_METADATA = os.getenv('INITIAL_METADATA')
83
83
 
84
84
  DISABLE_AUTO_BROWSER_OPEN = get_bool_value(os.getenv('DISABLE_AUTO_BROWSER_OPEN', 'False'))
85
85
 
@@ -164,6 +164,7 @@ class InfluxDbSource(BaseSource):
164
164
  'data': {record.get_field(): record.get_value()},
165
165
  'metadata': {
166
166
  'time': int(1e3 * record.get_time().timestamp()),
167
+ 'measurement': record['_measurement'],
167
168
  'tags': {
168
169
  k: v
169
170
  for k, v in record.values.items()
@@ -201,6 +202,7 @@ class InfluxDbSource(BaseSource):
201
202
  'data': {record.get_field(): record.get_value()},
202
203
  'metadata': {
203
204
  'time': int(1e3 * record.get_time().timestamp()),
205
+ 'measurement': record['_measurement'],
204
206
  'tags': {
205
207
  k: v
206
208
  for k, v in record.values.items()
@@ -257,7 +257,7 @@ class KafkaSource(BaseSource):
257
257
 
258
258
  def test_connection(self):
259
259
  self.consumer._client.check_version(timeout=5)
260
- self._print('Test connectino successfully.')
260
+ self._print('Test connection successfully.')
261
261
 
262
262
  def __deserialize_message(self, message):
263
263
  if self.config.serde_config is None:
@@ -813,7 +813,7 @@ class BaseAPIEndpointTest(AsyncDBTestCase):
813
813
  validation = assert_after_create_count(self)
814
814
  self.assertTrue(validation)
815
815
  else:
816
- after_count = len(get_resource().model_class.all())
816
+ after_count = len(get_resource(resource).model_class.all())
817
817
  self.assertEqual(
818
818
  after_count,
819
819
  before_count + 1 if after_create_count is None else after_create_count,
@@ -1096,7 +1096,7 @@ class BaseAPIEndpointTest(AsyncDBTestCase):
1096
1096
 
1097
1097
  self.assertTrue(validation)
1098
1098
  else:
1099
- after_count = len(get_resource().model_class.all())
1099
+ after_count = len(get_resource(resource).model_class.all())
1100
1100
  self.assertEqual(
1101
1101
  after_count,
1102
1102
  before_count - 1 if after_delete_count is None else after_delete_count,
@@ -1132,15 +1132,16 @@ class BaseAPIEndpointTest(AsyncDBTestCase):
1132
1132
  )
1133
1133
  RolePermission.create(permission_id=permission.id, role_id=role.id)
1134
1134
  else:
1135
- permission = Permission.create(
1136
- access=access_for_permissions,
1137
- entity_name=EntityName(entity_name(resource)),
1138
- options=permission_options,
1139
- )
1135
+ e_name = entity_name(resource)
1136
+ if getattr(EntityName, e_name, None) is not None:
1137
+ permission = Permission.create(
1138
+ access=access_for_permissions,
1139
+ entity_name=EntityName(e_name),
1140
+ options=permission_options,
1141
+ )
1142
+ RolePermission.create(permission_id=permission.id, role_id=role.id)
1140
1143
 
1141
1144
  if permission_settings:
1142
1145
  for permission_setting in permission_settings:
1143
1146
  permission_more = Permission.create(**permission_setting)
1144
1147
  RolePermission.create(permission_id=permission_more.id, role_id=role.id)
1145
-
1146
- RolePermission.create(permission_id=permission.id, role_id=role.id)
@@ -0,0 +1,24 @@
1
+ from mage_ai.authentication.permissions.constants import PermissionAccess
2
+ from mage_ai.tests.api.endpoints.mixins import (
3
+ BaseAPIEndpointTest,
4
+ build_create_endpoint_tests,
5
+ )
6
+
7
+
8
+ class SeedAPIEndpointTest(BaseAPIEndpointTest):
9
+ pass
10
+
11
+
12
+ build_create_endpoint_tests(
13
+ SeedAPIEndpointTest,
14
+ resource='seed',
15
+ authentication_accesses=[PermissionAccess.OWNER],
16
+ permissions_accesses=[PermissionAccess.OWNER],
17
+ build_payload=lambda self: dict(
18
+ roles=True,
19
+ permissions=True,
20
+ policy_names=['Block', 'Pipeline', 'Download'],
21
+ ),
22
+ assert_before_create_count=lambda self: True,
23
+ assert_after_create_count=lambda self: True,
24
+ )
@@ -178,7 +178,9 @@ class SessionOperationTests(BaseApiTestCase):
178
178
  @patch('mage_ai.api.resources.SessionResource.AUTHENTICATION_MODE', 'ldap')
179
179
  @patch.object(LDAPConnection, 'authorize')
180
180
  @patch.object(LDAPConnection, 'authenticate')
181
- async def test_ldap_login_with_role_mapping(self, mock_authenticate, mock_authorize):
181
+ async def test_ldap_login_with_role_mapping(
182
+ self, mock_authenticate, mock_authorize
183
+ ):
182
184
  mock_authenticate.return_value = (
183
185
  True,
184
186
  "Yami_Sukehiro",
@@ -188,7 +190,9 @@ class SessionOperationTests(BaseApiTestCase):
188
190
 
189
191
  Role.create_default_roles()
190
192
 
191
- with patch.dict(os.environ, dict(LDAP_ROLES_MAPPING=json.dumps(dict(Admin=['Admin'])))):
193
+ with patch.dict(
194
+ os.environ, dict(LDAP_ROLES_MAPPING=json.dumps(dict(Admin=['Admin'])))
195
+ ):
192
196
  username = self.faker.email()
193
197
  operation = self.build_operation(
194
198
  action=constants.CREATE,
@@ -208,3 +212,50 @@ class SessionOperationTests(BaseApiTestCase):
208
212
  user = User.query.filter(User.username == username).first()
209
213
  self.assertIsNotNone(user)
210
214
  self.assertEqual(user.roles_new[0].name, 'Admin')
215
+
216
+ @patch('mage_ai.api.resources.SessionResource.AUTHENTICATION_MODE', 'ldap')
217
+ @patch.object(LDAPConnection, 'authorize')
218
+ @patch.object(LDAPConnection, 'authenticate')
219
+ async def test_ldap_update_roles_on_login(self, mock_authenticate, mock_authorize):
220
+ mock_authenticate.return_value = (
221
+ True,
222
+ "Yami_Sukehiro",
223
+ dict(memberOf=['Admin']),
224
+ )
225
+ mock_authorize.return_value = True
226
+
227
+ Role.create_default_roles()
228
+
229
+ username = self.faker.email()
230
+
231
+ User.create(
232
+ username=username,
233
+ email=username,
234
+ roles_new=[Role.query.filter(Role.name == 'Admin').first()],
235
+ )
236
+
237
+ with patch.dict(
238
+ os.environ,
239
+ dict(
240
+ LDAP_ROLES_MAPPING=json.dumps(dict(Admin=['Editor'])),
241
+ UPDATE_ROLES_ON_LOGIN='1',
242
+ ),
243
+ ):
244
+ operation = self.build_operation(
245
+ action=constants.CREATE,
246
+ payload=dict(
247
+ session=dict(
248
+ email=username,
249
+ password="black bull",
250
+ )
251
+ ),
252
+ resource='sessions',
253
+ user=None,
254
+ )
255
+ await operation.execute()
256
+
257
+ mock_authenticate.assert_called_once_with(username, "black bull")
258
+ mock_authorize.assert_called_once_with("Yami_Sukehiro")
259
+ user = User.query.filter(User.username == username).first()
260
+ self.assertIsNotNone(user)
261
+ self.assertEqual(user.roles_new[0].name, 'Editor')
@@ -0,0 +1,43 @@
1
+ import os
2
+ import unittest
3
+ from unittest.mock import patch
4
+
5
+ from mage_ai.authentication.providers.okta import OktaProvider
6
+
7
+ test_parameters = [
8
+ ('https://samples.auth0.com', 'test-client-id', 'test-client-secret'),
9
+ ('samples.auth0.com', 'test-client-id', 'test-client-secret'),
10
+ ('', 'test-client-id', 'test-client-secret'),
11
+ ('samples.auth0.com', '', ''),
12
+ ]
13
+
14
+
15
+ class OktaProviderTest(unittest.TestCase):
16
+ def setUp(self):
17
+ self.authorization_endpoint = 'https://samples.auth0.com/authorize'
18
+ self.token_endpoint = 'https://samples.auth0.com/oauth/token'
19
+ self.userinfo_endpoint = 'https://samples.auth0.com/userinfo'
20
+
21
+ def test_okta_provider_initialization(self):
22
+ for url, id, secret in test_parameters:
23
+ with self.subTest():
24
+ with patch.dict(
25
+ os.environ,
26
+ dict(
27
+ OKTA_DOMAIN_URL=url,
28
+ OKTA_CLIENT_ID=id,
29
+ OKTA_CLIENT_SECRET=secret,
30
+ ),
31
+ ):
32
+ if not all([url, id]):
33
+ with self.assertRaises(ValueError):
34
+ provider = OktaProvider()
35
+ else:
36
+ provider = OktaProvider()
37
+ self.assertEqual(
38
+ provider.authorization_endpoint, self.authorization_endpoint
39
+ )
40
+ self.assertEqual(provider.token_endpoint, self.token_endpoint)
41
+ self.assertEqual(
42
+ provider.userinfo_endpoint, self.userinfo_endpoint
43
+ )
@@ -17,7 +17,7 @@ class RoleTests(DBTestCase):
17
17
  Role.create_default_roles(
18
18
  entity=Entity.PROJECT,
19
19
  entity_id=test_entity_id,
20
- prefix='test',
20
+ name_func=lambda x: f'test_{x}',
21
21
  )
22
22
  owner = Role.query.filter(Role.name == 'test_Owner').one_or_none()
23
23
 
@@ -29,12 +29,12 @@ class RoleTests(DBTestCase):
29
29
  Role.create_default_roles(
30
30
  entity=Entity.PROJECT,
31
31
  entity_id=test_entity_id,
32
- prefix='test-2',
32
+ name_func=lambda x: f'test-2_{x}',
33
33
  )
34
34
  Role.create_default_roles(
35
35
  entity=Entity.PROJECT,
36
36
  entity_id=test_entity_id2,
37
- prefix='test-2',
37
+ name_func=lambda x: f'test-2_{x}',
38
38
  )
39
39
  owner = Role.query.filter(Role.name == 'test-2_Owner').one_or_none()
40
40
 
@@ -13,6 +13,7 @@ class ProcessQueueTests(TestCase):
13
13
  def setUp(self):
14
14
  queue_config = QueueConfig.load(config=dict(concurrency=100))
15
15
  self.queue = ProcessQueue(queue_config=queue_config)
16
+ self.queue.start()
16
17
 
17
18
  def test_init(self):
18
19
  self.assertEqual(self.queue.size, 100)
@@ -8,7 +8,7 @@ import tornado.ioloop
8
8
 
9
9
  import mage_ai.server.server as server_module
10
10
  from mage_ai.authentication.passwords import create_bcrypt_hash, generate_salt
11
- from mage_ai.data_preparation.repo_manager import ProjectType
11
+ from mage_ai.data_preparation.repo_manager import ProjectType, get_project_uuid
12
12
  from mage_ai.orchestration.db.models.oauth import (
13
13
  Oauth2Application,
14
14
  Permission,
@@ -21,7 +21,6 @@ from mage_ai.server.server import (
21
21
  make_app,
22
22
  replace_base_path,
23
23
  )
24
- from mage_ai.settings.repo import get_repo_name
25
24
  from mage_ai.tests.base_test import AsyncDBTestCase
26
25
 
27
26
 
@@ -150,7 +149,10 @@ class ServerTests(AsyncDBTestCase):
150
149
  def test_initialize_user_authentication_subproject(self):
151
150
  initialize_user_authentication(ProjectType.SUB)
152
151
 
153
- owner_role = Role.get_role(f'{get_repo_name()}_{Role.DefaultRole.OWNER}')
152
+ project_uuid = get_project_uuid()
153
+ project_uuid_truncated = project_uuid[:8]
154
+
155
+ owner_role = Role.get_role(f'{Role.DefaultRole.OWNER}_{project_uuid_truncated}')
154
156
  self.assertTrue(len(owner_role.users) > 0)
155
157
 
156
158
  owner_user = User.query.filter(User.email == 'admin@admin.com').one_or_none()
@@ -169,7 +171,9 @@ class ServerTests(AsyncDBTestCase):
169
171
  )
170
172
  initialize_user_authentication(ProjectType.SUB)
171
173
 
172
- owner_role = Role.get_role(f'{get_repo_name()}_{Role.DefaultRole.OWNER}')
174
+ project_uuid = get_project_uuid()
175
+ project_uuid_truncated = project_uuid[:8]
176
+ owner_role = Role.get_role(f'{Role.DefaultRole.OWNER}_{project_uuid_truncated}')
173
177
  self.assertTrue(len(owner_role.users) == 0)
174
178
 
175
179
  owner_user = User.query.filter(User.email == 'admin@admin.com').one_or_none()