mage-ai 0.9.74__py3-none-any.whl → 0.9.75__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 (329) hide show
  1. mage_ai/ai/llm_pipeline_wizard.py +6 -4
  2. mage_ai/ai/openai_client.py +7 -5
  3. mage_ai/data_integrations/destinations/constants.py +1 -0
  4. mage_ai/data_preparation/models/block/__init__.py +4 -4
  5. mage_ai/data_preparation/models/constants.py +1 -1
  6. mage_ai/data_preparation/models/pipeline.py +5 -0
  7. mage_ai/data_preparation/templates/data_exporters/streaming/elasticsearch.yaml +3 -0
  8. mage_ai/data_preparation/templates/data_loaders/streaming/nats.yaml +6 -3
  9. mage_ai/io/base.py +29 -1
  10. mage_ai/io/oracledb.py +2 -4
  11. mage_ai/io/postgres.py +38 -19
  12. mage_ai/io/utils.py +18 -0
  13. mage_ai/orchestration/db/__init__.py +3 -3
  14. mage_ai/server/constants.py +1 -1
  15. mage_ai/server/frontend_dist/404.html +3 -3
  16. mage_ai/server/frontend_dist/_next/static/38-PtskJFUTYUpRhT1qF_/_buildManifest.js +1 -0
  17. mage_ai/server/frontend_dist/_next/static/chunks/{1187-839336d276186105.js → 1187-4560c3895e1d7099.js} +1 -1
  18. mage_ai/server/frontend_dist/_next/static/chunks/{1598-0adca9dce3ba4c60.js → 1598-cbf3f5a6078fc3f5.js} +1 -1
  19. mage_ai/server/frontend_dist/_next/static/chunks/2717-638a944d24d5abde.js +1 -0
  20. mage_ai/server/frontend_dist/_next/static/chunks/3548-36f746b1824004f2.js +1 -0
  21. mage_ai/server/frontend_dist/_next/static/chunks/{3763-39a5174f6a3924db.js → 3763-aabe2703076636b0.js} +1 -1
  22. mage_ai/server/frontend_dist/_next/static/chunks/3782-3e2acb5ed45b582b.js +1 -0
  23. mage_ai/server/frontend_dist/_next/static/chunks/449-f689774546860ca4.js +1 -0
  24. mage_ai/server/{frontend_dist_base_path_template/_next/static/chunks/5627-d5e559859dd0e1e0.js → frontend_dist/_next/static/chunks/5627-10e76bafa5a26f5f.js} +1 -1
  25. mage_ai/server/frontend_dist/_next/static/chunks/{5699-e49718dfc9eb2854.js → 5699-e99379e332bd0b41.js} +1 -1
  26. mage_ai/server/frontend_dist/_next/static/chunks/{7966-163da2621b8c987c.js → 7966-a5a7db345ce81263.js} +1 -1
  27. mage_ai/server/frontend_dist/_next/static/chunks/pages/{_app-5bdff745074fb350.js → _app-13bf3b7dcef50c29.js} +2 -2
  28. mage_ai/server/{frontend_dist_base_path_template/_next/static/chunks/pages/compute-ed67fa8e81662e8b.js → frontend_dist/_next/static/chunks/pages/compute-9e2dea78024e3bb4.js} +1 -1
  29. mage_ai/server/{frontend_dist_base_path_template/_next/static/chunks/pages/files-e0ecd7ced09a63b2.js → frontend_dist/_next/static/chunks/pages/files-e08c7fe76f968f9c.js} +1 -1
  30. mage_ai/server/frontend_dist/_next/static/chunks/pages/global-data-products/{[...slug]-c7a729477ecda50e.js → [...slug]-30c3807057a4e65b.js} +1 -1
  31. mage_ai/server/frontend_dist/_next/static/chunks/pages/{global-data-products-fd6ae6a358a60a0c.js → global-data-products-8dcb3b31af9e0e39.js} +1 -1
  32. mage_ai/server/{frontend_dist_base_path_template/_next/static/chunks/pages/global-hooks/[...slug]-8e50243797a7fe59.js → frontend_dist/_next/static/chunks/pages/global-hooks/[...slug]-85a64b64d27214b6.js} +1 -1
  33. mage_ai/server/frontend_dist/_next/static/chunks/pages/{global-hooks-d0c003446332dc0d.js → global-hooks-4ff959d51b8a9502.js} +1 -1
  34. mage_ai/server/frontend_dist/_next/static/chunks/pages/manage/{files-a69ed8e9f814490c.js → files-d08a460641d0efaa.js} +1 -1
  35. mage_ai/server/frontend_dist/_next/static/chunks/pages/manage/{overview-1aad7093c6d39257.js → overview-aae747f487e08d51.js} +1 -1
  36. mage_ai/server/frontend_dist/_next/static/chunks/pages/manage/{pipeline-runs-528d30e0d13b0cc7.js → pipeline-runs-09a842d64a6ada62.js} +1 -1
  37. mage_ai/server/frontend_dist/_next/static/chunks/pages/manage/{settings-fb9201d9cf63031d.js → settings-2e98e57d9376a458.js} +1 -1
  38. mage_ai/server/frontend_dist/_next/static/chunks/pages/manage/users/{[user]-000f5a980a07da39.js → [user]-7be6e41ad66089bb.js} +1 -1
  39. mage_ai/server/{frontend_dist_base_path_template/_next/static/chunks/pages/manage/users/new-e4e613f6e817a733.js → frontend_dist/_next/static/chunks/pages/manage/users/new-4c088833063bfa07.js} +1 -1
  40. mage_ai/server/frontend_dist/_next/static/chunks/pages/manage/{users-a5e9d77ed5b50205.js → users-b99379d0aa6a8c25.js} +1 -1
  41. mage_ai/server/{frontend_dist_base_path_template/_next/static/chunks/pages/manage-34d718b8a4066c23.js → frontend_dist/_next/static/chunks/pages/manage-868fcd8cbeb265f0.js} +1 -1
  42. mage_ai/server/frontend_dist/_next/static/chunks/pages/{oauth-3bfd1b8d7f036726.js → oauth-6ceceb62191dfe8a.js} +1 -1
  43. mage_ai/server/frontend_dist/_next/static/chunks/pages/overview-e51cd04bd4d1fffe.js +1 -0
  44. mage_ai/server/frontend_dist/_next/static/chunks/pages/{pipeline-runs-5f8c100e648efa8a.js → pipeline-runs-2d0136b51b57de93.js} +1 -1
  45. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/backfills/{[...slug]-688c652f3296bb9c.js → [...slug]-1ad5238742e25b4c.js} +1 -1
  46. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/backfills-bd11e87d026bfbf9.js +1 -0
  47. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/{dashboard-1236e36d39b1637d.js → dashboard-0f4f47f721b0723f.js} +1 -1
  48. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/edit-432da20df91511fb.js +1 -0
  49. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/logs-fe91dfb0091f6bc6.js +1 -0
  50. mage_ai/server/{frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/monitors/block-runs-0d68d4bf6290fefb.js → frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/monitors/block-runs-cf794b2d22a80f31.js} +1 -1
  51. mage_ai/server/{frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/monitors/block-runtime-9254358d58f07714.js → frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/monitors/block-runtime-a964caef91bed9e1.js} +1 -1
  52. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/{monitors-821001e690caebe2.js → monitors-80bebb4401eefe25.js} +1 -1
  53. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/runs/[run]-2eae7cb017027682.js +1 -0
  54. mage_ai/server/{frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/runs-2d4b2a0800a66b33.js → frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/runs-e3d7fdfeb7f806f7.js} +1 -1
  55. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/{settings-cd49372ae1702963.js → settings-0abf8a1b7243f93b.js} +1 -1
  56. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/syncs-707ed8ca942ca802.js +1 -0
  57. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/triggers/{[...slug]-259143ed3cf59e31.js → [...slug]-8429f17d4146e1ec.js} +1 -1
  58. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/triggers-193045d9836d8d80.js +1 -0
  59. mage_ai/server/{frontend_dist_base_path_template/_next/static/chunks/pages/pipelines-b578b075a8d857e3.js → frontend_dist/_next/static/chunks/pages/pipelines-38187954b6ec4b40.js} +1 -1
  60. mage_ai/server/frontend_dist/_next/static/chunks/pages/platform/global-hooks/{[...slug]-5eeec927e4202b63.js → [...slug]-6834ae87bd668cb2.js} +1 -1
  61. mage_ai/server/{frontend_dist_base_path_template/_next/static/chunks/pages/platform/global-hooks-fbe9ad995d46d837.js → frontend_dist/_next/static/chunks/pages/platform/global-hooks-b3f7309a23e592b2.js} +1 -1
  62. mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/account/{profile-fc659962d4015cb3.js → profile-f8b7374385e1f1bf.js} +1 -1
  63. mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/platform/preferences-8de68502a9afa299.js +1 -0
  64. mage_ai/server/{frontend_dist_base_path_template/_next/static/chunks/pages/settings/platform/settings-a4f88c334414402b.js → frontend_dist/_next/static/chunks/pages/settings/platform/settings-50fb6a34f3913f1f.js} +1 -1
  65. mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/permissions/{[...slug]-4deb9579ef99a3c6.js → [...slug]-2e5c098c21ea32b7.js} +1 -1
  66. mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/{permissions-e0cda2f2bfce8d61.js → permissions-54e4b15b9585bfc4.js} +1 -1
  67. mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/preferences-040f83d75d0f6537.js +1 -0
  68. mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/roles/{[...slug]-910257d16c604ebd.js → [...slug]-95088f43034e3c95.js} +1 -1
  69. mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/{roles-4f7a0756806cee34.js → roles-e9149e1fcf218f42.js} +1 -1
  70. mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/{sync-data-208d6f955204d704.js → sync-data-75b67ae4a00818ef.js} +1 -1
  71. mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/users/{[...slug]-c89dc67e5a1706a8.js → [...slug]-557dda05ca6c6124.js} +1 -1
  72. mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/{users-5212c01a9dc558da.js → users-3ee783f5139c76a1.js} +1 -1
  73. mage_ai/server/frontend_dist/_next/static/chunks/pages/{sign-in-054b33312d3193c3.js → sign-in-593c40985d63fcf7.js} +1 -1
  74. mage_ai/server/frontend_dist/_next/static/chunks/pages/templates/{[...slug]-b6ed6a5d818bfd20.js → [...slug]-252c4b6b818345d5.js} +1 -1
  75. mage_ai/server/frontend_dist/_next/static/chunks/pages/{templates-852357bc983af2ea.js → templates-ca528bc607753ab8.js} +1 -1
  76. mage_ai/server/{frontend_dist_base_path_template/_next/static/chunks/pages/terminal-1f9c56d671bbc67d.js → frontend_dist/_next/static/chunks/pages/terminal-287362c1defcc96b.js} +1 -1
  77. mage_ai/server/frontend_dist/_next/static/chunks/pages/test-2f83af8c9f1378fe.js +1 -0
  78. mage_ai/server/frontend_dist/_next/static/chunks/pages/triggers-d9de73fb799efed8.js +1 -0
  79. mage_ai/server/{frontend_dist_base_path_template/_next/static/chunks/pages/version-control-ae3469b992a341d6.js → frontend_dist/_next/static/chunks/pages/version-control-573f0225d7a703ed.js} +1 -1
  80. mage_ai/server/frontend_dist/_next/static/chunks/{webpack-b9a067f3bd0a3a05.js → webpack-0bc44da590c7cf85.js} +1 -1
  81. mage_ai/server/frontend_dist/block-layout.html +3 -3
  82. mage_ai/server/frontend_dist/compute.html +6 -6
  83. mage_ai/server/frontend_dist/files.html +6 -6
  84. mage_ai/server/frontend_dist/global-data-products/[...slug].html +6 -6
  85. mage_ai/server/frontend_dist/global-data-products.html +6 -6
  86. mage_ai/server/frontend_dist/global-hooks/[...slug].html +6 -6
  87. mage_ai/server/frontend_dist/global-hooks.html +6 -6
  88. mage_ai/server/frontend_dist/index.html +3 -3
  89. mage_ai/server/frontend_dist/manage/files.html +6 -6
  90. mage_ai/server/frontend_dist/manage/overview.html +6 -6
  91. mage_ai/server/frontend_dist/manage/pipeline-runs.html +6 -6
  92. mage_ai/server/frontend_dist/manage/settings.html +6 -6
  93. mage_ai/server/frontend_dist/manage/users/[user].html +6 -6
  94. mage_ai/server/frontend_dist/manage/users/new.html +6 -6
  95. mage_ai/server/frontend_dist/manage/users.html +6 -6
  96. mage_ai/server/frontend_dist/manage.html +6 -6
  97. mage_ai/server/frontend_dist/oauth.html +5 -5
  98. mage_ai/server/frontend_dist/overview.html +6 -6
  99. mage_ai/server/frontend_dist/pipeline-runs.html +6 -6
  100. mage_ai/server/frontend_dist/pipelines/[pipeline]/backfills/[...slug].html +6 -6
  101. mage_ai/server/frontend_dist/pipelines/[pipeline]/backfills.html +6 -6
  102. mage_ai/server/frontend_dist/pipelines/[pipeline]/dashboard.html +6 -6
  103. mage_ai/server/frontend_dist/pipelines/[pipeline]/edit.html +3 -3
  104. mage_ai/server/frontend_dist/pipelines/[pipeline]/logs.html +6 -6
  105. mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors/block-runs.html +6 -6
  106. mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors/block-runtime.html +6 -6
  107. mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors.html +6 -6
  108. mage_ai/server/frontend_dist/pipelines/[pipeline]/runs/[run].html +6 -6
  109. mage_ai/server/frontend_dist/pipelines/[pipeline]/runs.html +6 -6
  110. mage_ai/server/frontend_dist/pipelines/[pipeline]/settings.html +6 -6
  111. mage_ai/server/frontend_dist/pipelines/[pipeline]/syncs.html +6 -6
  112. mage_ai/server/frontend_dist/pipelines/[pipeline]/triggers/[...slug].html +6 -6
  113. mage_ai/server/frontend_dist/pipelines/[pipeline]/triggers.html +6 -6
  114. mage_ai/server/frontend_dist/pipelines/[pipeline].html +3 -3
  115. mage_ai/server/frontend_dist/pipelines.html +6 -6
  116. mage_ai/server/frontend_dist/platform/global-hooks/[...slug].html +6 -6
  117. mage_ai/server/frontend_dist/platform/global-hooks.html +6 -6
  118. mage_ai/server/frontend_dist/settings/account/profile.html +6 -6
  119. mage_ai/server/frontend_dist/settings/platform/preferences.html +6 -6
  120. mage_ai/server/frontend_dist/settings/platform/settings.html +6 -6
  121. mage_ai/server/frontend_dist/settings/workspace/permissions/[...slug].html +6 -6
  122. mage_ai/server/frontend_dist/settings/workspace/permissions.html +6 -6
  123. mage_ai/server/frontend_dist/settings/workspace/preferences.html +6 -6
  124. mage_ai/server/frontend_dist/settings/workspace/roles/[...slug].html +6 -6
  125. mage_ai/server/frontend_dist/settings/workspace/roles.html +6 -6
  126. mage_ai/server/frontend_dist/settings/workspace/sync-data.html +6 -6
  127. mage_ai/server/frontend_dist/settings/workspace/users/[...slug].html +6 -6
  128. mage_ai/server/frontend_dist/settings/workspace/users.html +6 -6
  129. mage_ai/server/frontend_dist/settings.html +3 -3
  130. mage_ai/server/frontend_dist/sign-in.html +7 -7
  131. mage_ai/server/frontend_dist/templates/[...slug].html +6 -6
  132. mage_ai/server/frontend_dist/templates.html +6 -6
  133. mage_ai/server/frontend_dist/terminal.html +6 -6
  134. mage_ai/server/frontend_dist/test.html +3 -3
  135. mage_ai/server/frontend_dist/triggers.html +6 -6
  136. mage_ai/server/frontend_dist/v2/canvas.html +2 -2
  137. mage_ai/server/frontend_dist/v2.html +2 -2
  138. mage_ai/server/frontend_dist/version-control.html +6 -6
  139. mage_ai/server/frontend_dist_base_path_template/404.html +3 -3
  140. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/{1187-839336d276186105.js → 1187-4560c3895e1d7099.js} +1 -1
  141. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/{1598-0adca9dce3ba4c60.js → 1598-cbf3f5a6078fc3f5.js} +1 -1
  142. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/2717-638a944d24d5abde.js +1 -0
  143. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/3548-36f746b1824004f2.js +1 -0
  144. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/{3763-39a5174f6a3924db.js → 3763-aabe2703076636b0.js} +1 -1
  145. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/3782-3e2acb5ed45b582b.js +1 -0
  146. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/449-f689774546860ca4.js +1 -0
  147. mage_ai/server/{frontend_dist/_next/static/chunks/5627-d5e559859dd0e1e0.js → frontend_dist_base_path_template/_next/static/chunks/5627-10e76bafa5a26f5f.js} +1 -1
  148. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/{5699-e49718dfc9eb2854.js → 5699-e99379e332bd0b41.js} +1 -1
  149. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/{7966-163da2621b8c987c.js → 7966-a5a7db345ce81263.js} +1 -1
  150. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/{_app-90de19bc03f1484b.js → _app-0392ef723ea2c6f8.js} +2 -2
  151. mage_ai/server/{frontend_dist/_next/static/chunks/pages/compute-ed67fa8e81662e8b.js → frontend_dist_base_path_template/_next/static/chunks/pages/compute-9e2dea78024e3bb4.js} +1 -1
  152. mage_ai/server/{frontend_dist/_next/static/chunks/pages/files-e0ecd7ced09a63b2.js → frontend_dist_base_path_template/_next/static/chunks/pages/files-e08c7fe76f968f9c.js} +1 -1
  153. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/global-data-products/{[...slug]-c7a729477ecda50e.js → [...slug]-30c3807057a4e65b.js} +1 -1
  154. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/{global-data-products-fd6ae6a358a60a0c.js → global-data-products-8dcb3b31af9e0e39.js} +1 -1
  155. mage_ai/server/{frontend_dist/_next/static/chunks/pages/global-hooks/[...slug]-8e50243797a7fe59.js → frontend_dist_base_path_template/_next/static/chunks/pages/global-hooks/[...slug]-85a64b64d27214b6.js} +1 -1
  156. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/{global-hooks-d0c003446332dc0d.js → global-hooks-4ff959d51b8a9502.js} +1 -1
  157. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/manage/{files-a69ed8e9f814490c.js → files-d08a460641d0efaa.js} +1 -1
  158. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/manage/{overview-1aad7093c6d39257.js → overview-aae747f487e08d51.js} +1 -1
  159. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/manage/{pipeline-runs-528d30e0d13b0cc7.js → pipeline-runs-09a842d64a6ada62.js} +1 -1
  160. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/manage/{settings-fb9201d9cf63031d.js → settings-2e98e57d9376a458.js} +1 -1
  161. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/manage/users/{[user]-000f5a980a07da39.js → [user]-7be6e41ad66089bb.js} +1 -1
  162. mage_ai/server/{frontend_dist/_next/static/chunks/pages/manage/users/new-e4e613f6e817a733.js → frontend_dist_base_path_template/_next/static/chunks/pages/manage/users/new-4c088833063bfa07.js} +1 -1
  163. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/manage/{users-a5e9d77ed5b50205.js → users-b99379d0aa6a8c25.js} +1 -1
  164. mage_ai/server/{frontend_dist/_next/static/chunks/pages/manage-34d718b8a4066c23.js → frontend_dist_base_path_template/_next/static/chunks/pages/manage-868fcd8cbeb265f0.js} +1 -1
  165. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/{oauth-3bfd1b8d7f036726.js → oauth-6ceceb62191dfe8a.js} +1 -1
  166. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/overview-e51cd04bd4d1fffe.js +1 -0
  167. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/{pipeline-runs-5f8c100e648efa8a.js → pipeline-runs-2d0136b51b57de93.js} +1 -1
  168. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/backfills/{[...slug]-688c652f3296bb9c.js → [...slug]-1ad5238742e25b4c.js} +1 -1
  169. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/backfills-bd11e87d026bfbf9.js +1 -0
  170. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/{dashboard-1236e36d39b1637d.js → dashboard-0f4f47f721b0723f.js} +1 -1
  171. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/edit-432da20df91511fb.js +1 -0
  172. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/logs-fe91dfb0091f6bc6.js +1 -0
  173. mage_ai/server/{frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/monitors/block-runs-0d68d4bf6290fefb.js → frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/monitors/block-runs-cf794b2d22a80f31.js} +1 -1
  174. mage_ai/server/{frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/monitors/block-runtime-9254358d58f07714.js → frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/monitors/block-runtime-a964caef91bed9e1.js} +1 -1
  175. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/{monitors-821001e690caebe2.js → monitors-80bebb4401eefe25.js} +1 -1
  176. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/runs/[run]-2eae7cb017027682.js +1 -0
  177. mage_ai/server/{frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/runs-2d4b2a0800a66b33.js → frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/runs-e3d7fdfeb7f806f7.js} +1 -1
  178. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/{settings-cd49372ae1702963.js → settings-0abf8a1b7243f93b.js} +1 -1
  179. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/syncs-707ed8ca942ca802.js +1 -0
  180. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/triggers/{[...slug]-259143ed3cf59e31.js → [...slug]-8429f17d4146e1ec.js} +1 -1
  181. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/triggers-193045d9836d8d80.js +1 -0
  182. mage_ai/server/{frontend_dist/_next/static/chunks/pages/pipelines-b578b075a8d857e3.js → frontend_dist_base_path_template/_next/static/chunks/pages/pipelines-38187954b6ec4b40.js} +1 -1
  183. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/platform/global-hooks/{[...slug]-5eeec927e4202b63.js → [...slug]-6834ae87bd668cb2.js} +1 -1
  184. mage_ai/server/{frontend_dist/_next/static/chunks/pages/platform/global-hooks-fbe9ad995d46d837.js → frontend_dist_base_path_template/_next/static/chunks/pages/platform/global-hooks-b3f7309a23e592b2.js} +1 -1
  185. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/account/{profile-fc659962d4015cb3.js → profile-f8b7374385e1f1bf.js} +1 -1
  186. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/platform/preferences-8de68502a9afa299.js +1 -0
  187. mage_ai/server/{frontend_dist/_next/static/chunks/pages/settings/platform/settings-a4f88c334414402b.js → frontend_dist_base_path_template/_next/static/chunks/pages/settings/platform/settings-50fb6a34f3913f1f.js} +1 -1
  188. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/workspace/permissions/{[...slug]-4deb9579ef99a3c6.js → [...slug]-2e5c098c21ea32b7.js} +1 -1
  189. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/workspace/{permissions-e0cda2f2bfce8d61.js → permissions-54e4b15b9585bfc4.js} +1 -1
  190. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/workspace/preferences-040f83d75d0f6537.js +1 -0
  191. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/workspace/roles/{[...slug]-910257d16c604ebd.js → [...slug]-95088f43034e3c95.js} +1 -1
  192. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/workspace/{roles-4f7a0756806cee34.js → roles-e9149e1fcf218f42.js} +1 -1
  193. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/workspace/{sync-data-208d6f955204d704.js → sync-data-75b67ae4a00818ef.js} +1 -1
  194. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/workspace/users/{[...slug]-c89dc67e5a1706a8.js → [...slug]-557dda05ca6c6124.js} +1 -1
  195. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/workspace/{users-5212c01a9dc558da.js → users-3ee783f5139c76a1.js} +1 -1
  196. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/{sign-in-054b33312d3193c3.js → sign-in-593c40985d63fcf7.js} +1 -1
  197. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/templates/{[...slug]-b6ed6a5d818bfd20.js → [...slug]-252c4b6b818345d5.js} +1 -1
  198. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/{templates-852357bc983af2ea.js → templates-ca528bc607753ab8.js} +1 -1
  199. mage_ai/server/{frontend_dist/_next/static/chunks/pages/terminal-1f9c56d671bbc67d.js → frontend_dist_base_path_template/_next/static/chunks/pages/terminal-287362c1defcc96b.js} +1 -1
  200. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/test-2f83af8c9f1378fe.js +1 -0
  201. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/triggers-d9de73fb799efed8.js +1 -0
  202. mage_ai/server/{frontend_dist/_next/static/chunks/pages/version-control-ae3469b992a341d6.js → frontend_dist_base_path_template/_next/static/chunks/pages/version-control-573f0225d7a703ed.js} +1 -1
  203. mage_ai/server/frontend_dist_base_path_template/_next/static/dxnSzgIvSG4Ke5LM-tPQX/_buildManifest.js +1 -0
  204. mage_ai/server/frontend_dist_base_path_template/block-layout.html +3 -3
  205. mage_ai/server/frontend_dist_base_path_template/compute.html +6 -6
  206. mage_ai/server/frontend_dist_base_path_template/files.html +6 -6
  207. mage_ai/server/frontend_dist_base_path_template/global-data-products/[...slug].html +6 -6
  208. mage_ai/server/frontend_dist_base_path_template/global-data-products.html +6 -6
  209. mage_ai/server/frontend_dist_base_path_template/global-hooks/[...slug].html +6 -6
  210. mage_ai/server/frontend_dist_base_path_template/global-hooks.html +6 -6
  211. mage_ai/server/frontend_dist_base_path_template/index.html +3 -3
  212. mage_ai/server/frontend_dist_base_path_template/manage/files.html +6 -6
  213. mage_ai/server/frontend_dist_base_path_template/manage/overview.html +6 -6
  214. mage_ai/server/frontend_dist_base_path_template/manage/pipeline-runs.html +6 -6
  215. mage_ai/server/frontend_dist_base_path_template/manage/settings.html +6 -6
  216. mage_ai/server/frontend_dist_base_path_template/manage/users/[user].html +6 -6
  217. mage_ai/server/frontend_dist_base_path_template/manage/users/new.html +6 -6
  218. mage_ai/server/frontend_dist_base_path_template/manage/users.html +6 -6
  219. mage_ai/server/frontend_dist_base_path_template/manage.html +6 -6
  220. mage_ai/server/frontend_dist_base_path_template/oauth.html +5 -5
  221. mage_ai/server/frontend_dist_base_path_template/overview.html +6 -6
  222. mage_ai/server/frontend_dist_base_path_template/pipeline-runs.html +6 -6
  223. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/backfills/[...slug].html +6 -6
  224. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/backfills.html +6 -6
  225. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/dashboard.html +6 -6
  226. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/edit.html +3 -3
  227. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/logs.html +6 -6
  228. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/monitors/block-runs.html +6 -6
  229. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/monitors/block-runtime.html +6 -6
  230. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/monitors.html +6 -6
  231. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/runs/[run].html +6 -6
  232. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/runs.html +6 -6
  233. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/settings.html +6 -6
  234. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/syncs.html +6 -6
  235. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/triggers/[...slug].html +6 -6
  236. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/triggers.html +6 -6
  237. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline].html +3 -3
  238. mage_ai/server/frontend_dist_base_path_template/pipelines.html +6 -6
  239. mage_ai/server/frontend_dist_base_path_template/platform/global-hooks/[...slug].html +6 -6
  240. mage_ai/server/frontend_dist_base_path_template/platform/global-hooks.html +6 -6
  241. mage_ai/server/frontend_dist_base_path_template/settings/account/profile.html +6 -6
  242. mage_ai/server/frontend_dist_base_path_template/settings/platform/preferences.html +6 -6
  243. mage_ai/server/frontend_dist_base_path_template/settings/platform/settings.html +6 -6
  244. mage_ai/server/frontend_dist_base_path_template/settings/workspace/permissions/[...slug].html +6 -6
  245. mage_ai/server/frontend_dist_base_path_template/settings/workspace/permissions.html +6 -6
  246. mage_ai/server/frontend_dist_base_path_template/settings/workspace/preferences.html +6 -6
  247. mage_ai/server/frontend_dist_base_path_template/settings/workspace/roles/[...slug].html +6 -6
  248. mage_ai/server/frontend_dist_base_path_template/settings/workspace/roles.html +6 -6
  249. mage_ai/server/frontend_dist_base_path_template/settings/workspace/sync-data.html +6 -6
  250. mage_ai/server/frontend_dist_base_path_template/settings/workspace/users/[...slug].html +6 -6
  251. mage_ai/server/frontend_dist_base_path_template/settings/workspace/users.html +6 -6
  252. mage_ai/server/frontend_dist_base_path_template/settings.html +3 -3
  253. mage_ai/server/frontend_dist_base_path_template/sign-in.html +7 -7
  254. mage_ai/server/frontend_dist_base_path_template/templates/[...slug].html +6 -6
  255. mage_ai/server/frontend_dist_base_path_template/templates.html +6 -6
  256. mage_ai/server/frontend_dist_base_path_template/terminal.html +6 -6
  257. mage_ai/server/frontend_dist_base_path_template/test.html +3 -3
  258. mage_ai/server/frontend_dist_base_path_template/triggers.html +6 -6
  259. mage_ai/server/frontend_dist_base_path_template/v2/canvas.html +2 -2
  260. mage_ai/server/frontend_dist_base_path_template/v2.html +2 -2
  261. mage_ai/server/frontend_dist_base_path_template/version-control.html +6 -6
  262. mage_ai/server/server.py +9 -0
  263. mage_ai/services/teams/config.py +13 -2
  264. mage_ai/services/teams/teams.py +13 -11
  265. mage_ai/shared/constants.py +3 -1
  266. mage_ai/shared/enum.py +2 -5
  267. mage_ai/shared/environments.py +27 -3
  268. mage_ai/streaming/sinks/elasticsearch.py +15 -5
  269. mage_ai/tests/api/endpoints/test_blocks.py +1 -101
  270. mage_ai/tests/api/endpoints/test_configuration_options.py +1 -48
  271. mage_ai/tests/api/endpoints/test_configuration_options_project_platform.py +68 -0
  272. mage_ai/tests/api/endpoints/test_custom_designs.py +1 -106
  273. mage_ai/tests/api/endpoints/test_custom_designs_project_platform.py +132 -0
  274. mage_ai/tests/api/endpoints/test_dbt_blocks.py +111 -0
  275. mage_ai/tests/api/endpoints/test_file_contents.py +0 -48
  276. mage_ai/tests/api/endpoints/test_file_contents_with_project_platform.py +66 -0
  277. mage_ai/tests/api/endpoints/test_pipelines.py +0 -134
  278. mage_ai/tests/api/endpoints/test_pipelines_with_project_platform.py +143 -0
  279. mage_ai/tests/data_preparation/models/block/hook/test_hook_block.py +3 -3
  280. mage_ai/tests/data_preparation/models/test_block.py +7 -0
  281. mage_ai/tests/data_preparation/test_repo_manager.py +0 -63
  282. mage_ai/tests/data_preparation/test_repo_manager_project_platform.py +67 -0
  283. mage_ai/tests/data_preparation/test_variable_manager.py +0 -51
  284. mage_ai/tests/data_preparation/test_variable_manager_project_platform.py +41 -0
  285. mage_ai/tests/io/create_table/test_postgresql.py +27 -0
  286. mage_ai/tests/orchestration/notification/test_config.py +3 -3
  287. mage_ai-0.9.75.dist-info/METADATA +377 -0
  288. {mage_ai-0.9.74.dist-info → mage_ai-0.9.75.dist-info}/RECORD +296 -289
  289. {mage_ai-0.9.74.dist-info → mage_ai-0.9.75.dist-info}/WHEEL +1 -1
  290. mage_ai/server/frontend_dist/_next/static/chunks/1557-1ad0c64c2d08e569.js +0 -1
  291. mage_ai/server/frontend_dist/_next/static/chunks/2717-d65056b6b5e124eb.js +0 -1
  292. mage_ai/server/frontend_dist/_next/static/chunks/3548-b2c5edfb710886a6.js +0 -1
  293. mage_ai/server/frontend_dist/_next/static/chunks/3782-4b3091e550f809a2.js +0 -1
  294. mage_ai/server/frontend_dist/_next/static/chunks/pages/overview-69af3253ad0d0d89.js +0 -1
  295. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/backfills-fe112809feb25b05.js +0 -1
  296. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/edit-e9ca358209cdf93d.js +0 -1
  297. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/logs-a29f1615d2e7d330.js +0 -1
  298. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/runs/[run]-6d382ae5bad9745c.js +0 -1
  299. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/syncs-135be8974f7f5f2b.js +0 -1
  300. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/triggers-3af13e89adff4d6c.js +0 -1
  301. mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/platform/preferences-058d283ee178c038.js +0 -1
  302. mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/preferences-7b02bb70462144cb.js +0 -1
  303. mage_ai/server/frontend_dist/_next/static/chunks/pages/test-86b12cc12d4a625f.js +0 -1
  304. mage_ai/server/frontend_dist/_next/static/chunks/pages/triggers-2481c40b18d5b6d4.js +0 -1
  305. mage_ai/server/frontend_dist/_next/static/pLWT6Sqd09xYpufCVIqnz/_buildManifest.js +0 -1
  306. mage_ai/server/frontend_dist_base_path_template/_next/static/JQewSAObpbhO0wrdAM6Ng/_buildManifest.js +0 -1
  307. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/1557-1ad0c64c2d08e569.js +0 -1
  308. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/2717-d65056b6b5e124eb.js +0 -1
  309. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/3548-b2c5edfb710886a6.js +0 -1
  310. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/3782-4b3091e550f809a2.js +0 -1
  311. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/overview-69af3253ad0d0d89.js +0 -1
  312. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/backfills-fe112809feb25b05.js +0 -1
  313. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/edit-e9ca358209cdf93d.js +0 -1
  314. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/logs-a29f1615d2e7d330.js +0 -1
  315. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/runs/[run]-6d382ae5bad9745c.js +0 -1
  316. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/syncs-135be8974f7f5f2b.js +0 -1
  317. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/triggers-3af13e89adff4d6c.js +0 -1
  318. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/platform/preferences-058d283ee178c038.js +0 -1
  319. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/workspace/preferences-7b02bb70462144cb.js +0 -1
  320. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/test-86b12cc12d4a625f.js +0 -1
  321. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/triggers-2481c40b18d5b6d4.js +0 -1
  322. mage_ai-0.9.74.dist-info/METADATA +0 -544
  323. /mage_ai/server/frontend_dist/_next/static/{pLWT6Sqd09xYpufCVIqnz → 38-PtskJFUTYUpRhT1qF_}/_ssgManifest.js +0 -0
  324. /mage_ai/server/frontend_dist/_next/static/chunks/pages/{_app-5bdff745074fb350.js.LICENSE.txt → _app-13bf3b7dcef50c29.js.LICENSE.txt} +0 -0
  325. /mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/{_app-90de19bc03f1484b.js.LICENSE.txt → _app-0392ef723ea2c6f8.js.LICENSE.txt} +0 -0
  326. /mage_ai/server/frontend_dist_base_path_template/_next/static/{JQewSAObpbhO0wrdAM6Ng → dxnSzgIvSG4Ke5LM-tPQX}/_ssgManifest.js +0 -0
  327. {mage_ai-0.9.74.dist-info → mage_ai-0.9.75.dist-info}/LICENSE +0 -0
  328. {mage_ai-0.9.74.dist-info → mage_ai-0.9.75.dist-info}/entry_points.txt +0 -0
  329. {mage_ai-0.9.74.dist-info → mage_ai-0.9.75.dist-info}/top_level.txt +0 -0
@@ -156,16 +156,18 @@ TEMPLATE_CLASSIFICATION_FUNCTION = [
156
156
  "type": "string",
157
157
  "description": "Programming language of the code block. "
158
158
  f"Default value is {BlockLanguage.__name__}__python.",
159
- "enum": [f"{BlockLanguage.__name__}__{type.name.lower()}"
160
- for type in BlockLanguage]
159
+ "enum": [
160
+ f"{BlockLanguage.__name__}__{type.name.lower()}"
161
+ for type in BlockLanguage]
161
162
  },
162
163
  PipelineType.__name__: {
163
164
  "type": "string",
164
165
  "description": "Type of pipeline to build. Default value is "
165
166
  f"{PipelineType.__name__}__python if pipeline type "
166
167
  "is not mentioned in the description.",
167
- "enum": [f"{PipelineType.__name__}__{type.name.lower()}"
168
- for type in PipelineType]
168
+ "enum": [
169
+ f"{PipelineType.__name__}__{type.name.lower()}"
170
+ for type in PipelineType]
169
171
  },
170
172
  ActionType.__name__: {
171
173
  "type": "string",
@@ -42,16 +42,18 @@ tools = [
42
42
  "type": "string",
43
43
  "description": "Programming language of the code block. "
44
44
  f"Default value is {BlockLanguage.__name__}__python.",
45
- "enum": [f"{BlockLanguage.__name__}__{type.name.lower()}"
46
- for type in BlockLanguage]
45
+ "enum": [
46
+ f"{BlockLanguage.__name__}__{type.name.lower()}"
47
+ for type in BlockLanguage]
47
48
  },
48
49
  PipelineType.__name__: {
49
50
  "type": "string",
50
51
  "description": "Type of pipeline to build. Default value is "
51
52
  f"{PipelineType.__name__}__python if pipeline type "
52
53
  "is not mentioned in the description.",
53
- "enum": [f"{PipelineType.__name__}__{type.name.lower()}"
54
- for type in PipelineType]
54
+ "enum": [
55
+ f"{PipelineType.__name__}__{type.name.lower()}"
56
+ for type in PipelineType]
55
57
  },
56
58
  ActionType.__name__: {
57
59
  "type": "string",
@@ -85,7 +87,7 @@ class OpenAIClient(AIClient):
85
87
  open_ai_config.openai_api_key or os.getenv('OPENAI_API_KEY')
86
88
  openai.api_key = openai_api_key
87
89
  self.llm = OpenAI(openai_api_key=openai_api_key, temperature=0)
88
- self.openai_client = OpenAILib()
90
+ self.openai_client = OpenAILib(api_key=openai_api_key)
89
91
 
90
92
  def __chat_completion_request(self, messages):
91
93
  try:
@@ -1,4 +1,5 @@
1
1
  DESTINATIONS = [
2
+ dict(name='Airtable'),
2
3
  dict(name='Amazon S3'),
3
4
  dict(name='BigQuery'),
4
5
  dict(name='Clickhouse'),
@@ -878,7 +878,7 @@ class Block(
878
878
  relative_path: bool = False,
879
879
  ) -> str:
880
880
  file_extension = BLOCK_LANGUAGE_TO_FILE_EXTENSION[language]
881
- block_directory = block_type + 's' if block_type != BlockType.CUSTOM else block_type
881
+ block_directory = f'{block_type}s' if block_type != BlockType.CUSTOM else block_type
882
882
 
883
883
  parts = []
884
884
  if not relative_path:
@@ -1010,7 +1010,7 @@ class Block(
1010
1010
  self,
1011
1011
  content: str,
1012
1012
  ) -> str:
1013
- return '@' + self.type + '\n' + content
1013
+ return f'@{self.type}\n{content}'
1014
1014
 
1015
1015
  @classmethod
1016
1016
  def after_create(cls, block: 'Block', **kwargs) -> None:
@@ -1199,7 +1199,7 @@ class Block(
1199
1199
 
1200
1200
  @classmethod
1201
1201
  def file_directory_name(self, block_type: BlockType) -> str:
1202
- return block_type + 's' if block_type != BlockType.CUSTOM else block_type
1202
+ return f'{block_type}s' if block_type != BlockType.CUSTOM else block_type
1203
1203
 
1204
1204
  @classmethod
1205
1205
  def block_type_from_path(
@@ -1218,7 +1218,7 @@ class Block(
1218
1218
  for block_type in BlockType:
1219
1219
  if BlockType.CUSTOM == block_type and dir_name == block_type:
1220
1220
  return BlockType.CUSTOM
1221
- elif dir_name == block_type + 's':
1221
+ elif dir_name == f'{block_type}s':
1222
1222
  return block_type
1223
1223
 
1224
1224
  @classmethod
@@ -15,7 +15,7 @@ DATA_INTEGRATION_CATALOG_FILE = 'data_integration_catalog.json'
15
15
  DATAFRAME_ANALYSIS_MAX_COLUMNS = 100
16
16
  DATAFRAME_ANALYSIS_MAX_ROWS = 100_000
17
17
  DATAFRAME_SAMPLE_COUNT = 1000
18
- DATAFRAME_SAMPLE_COUNT_PREVIEW = 10
18
+ DATAFRAME_SAMPLE_COUNT_PREVIEW = int(os.getenv('DATAFRAME_SAMPLE_COUNT_PREVIEW', 10) or 10)
19
19
  DATAFRAME_SAMPLE_MAX_COLUMNS = 1000
20
20
  DYNAMIC_CHILD_BLOCK_SAMPLE_COUNT_PREVIEW = 10
21
21
  LOGS_SUBDIR = '.logs'
@@ -4,6 +4,7 @@ import json
4
4
  import os
5
5
  import shutil
6
6
  import tempfile
7
+ import time
7
8
  import zipfile
8
9
  from datetime import datetime, timezone
9
10
  from io import BytesIO
@@ -2328,6 +2329,10 @@ class Pipeline:
2328
2329
  extension_uuid: str = None,
2329
2330
  widget: bool = False,
2330
2331
  ):
2332
+ # Introduce a small delay to prevent multiple changes from generating
2333
+ # identical timestamps for the pipeline YAML file
2334
+ time.sleep(0.0004)
2335
+
2331
2336
  blocks_current = sorted([b.uuid for b in self.blocks_by_uuid.values()])
2332
2337
 
2333
2338
  if block_uuid is not None:
@@ -2,6 +2,9 @@ connector_type: elasticsearch
2
2
  host: http://localhost
3
3
  index_name: elastic_index
4
4
  api_key: api_key_for_elastic_search
5
+ # # When using Data streams this must be set to create as they are Append-only indexes
6
+ # _op_type: None / index, create or update
7
+ # _source: None (Default '_doc') / Specify the source field
5
8
  # # Whether to verify SSL certificates to authenticate.
6
9
  # verify_certs: true
7
10
  # ca_cert: "certificate.cert"
@@ -17,9 +17,12 @@ timeout: 5
17
17
 
18
18
  # Optional: TLS configuration
19
19
  use_tls: false
20
- # cafile: "path/to/ca.pem"
21
- # certfile: "path/to/client-cert.pem"
22
- # keyfile: "path/to/client-key.pem"
20
+
21
+ # Optional: SSL configuration
22
+ # ssl_config:
23
+ # cafile: "path/to/ca.pem"
24
+ # certfile: "path/to/client-cert.pem"
25
+ # keyfile: "path/to/client-key.pem"
23
26
 
24
27
  # Optional: NKEY seed string
25
28
  # nkeys_seed_str: "SUAPAEYJQOQHJ4"
mage_ai/io/base.py CHANGED
@@ -47,6 +47,26 @@ class FileFormat(StrEnum):
47
47
  PARQUET = 'parquet'
48
48
  HDF5 = 'hdf5'
49
49
  XML = 'xml'
50
+ EXCEL = 'excel'
51
+
52
+ @classmethod
53
+ def from_extension(cls, ext: str):
54
+ if ext == 'csv':
55
+ return cls.CSV
56
+ elif ext == 'json':
57
+ return cls.JSON
58
+ elif ext == 'parquet':
59
+ return cls.PARQUET
60
+ elif ext == 'hdf5':
61
+ return cls.HDF5
62
+ elif ext == 'xml':
63
+ return cls.XML
64
+ elif ext in ('xls', 'xlsx'):
65
+ return cls.EXCEL
66
+ else:
67
+ raise ValueError(
68
+ f'None file format found for this file extension: {ext}'
69
+ )
50
70
 
51
71
 
52
72
  class ExportWritePolicy(BaseEnum):
@@ -126,7 +146,9 @@ class BaseFile(BaseIO):
126
146
  pass
127
147
 
128
148
  def _get_file_format(self, filepath: Union[os.PathLike, str]) -> str:
129
- return os.path.splitext(os.path.basename(filepath))[-1][1:]
149
+ return FileFormat.from_extension(
150
+ os.path.splitext(os.path.basename(filepath))[-1][1:]
151
+ )
130
152
 
131
153
  def __get_reader(self, format: Union[FileFormat, str, None]) -> Callable:
132
154
  """
@@ -151,6 +173,8 @@ class BaseFile(BaseIO):
151
173
  return pd.read_hdf
152
174
  elif format == FileFormat.XML:
153
175
  return pd.read_xml
176
+ elif format == FileFormat.EXCEL:
177
+ return pd.read_excel
154
178
  else:
155
179
  raise ValueError(f"Invalid format '{format}' specified.")
156
180
 
@@ -249,6 +273,8 @@ class BaseFile(BaseIO):
249
273
  return df.write_hdf5
250
274
  elif format == FileFormat.XML:
251
275
  return df.write_xml
276
+ elif format == FileFormat.EXCEL:
277
+ return df.write_excel
252
278
  return df.write_parquet
253
279
 
254
280
  elif isinstance(df, DataFrame): # pandas DataFrame
@@ -260,6 +286,8 @@ class BaseFile(BaseIO):
260
286
  return df.to_hdf
261
287
  elif format == FileFormat.XML:
262
288
  return df.to_xml
289
+ elif format == FileFormat.EXCEL:
290
+ return df.to_excel
263
291
  return df.to_parquet
264
292
 
265
293
  def __del__(self):
mage_ai/io/oracledb.py CHANGED
@@ -244,10 +244,8 @@ FETCH FIRST {limit} ROWS ONLY
244
244
  # Remove extraneous surrounding double quotes
245
245
  # that get added while performing conversion to string.
246
246
  df_[col] = df_[col].apply(lambda x: x.strip('"') if x and isinstance(x, str) else x)
247
- df_.replace({np.NaN: None}, inplace=True)
248
- values = []
249
- for i in range(0, len(df_)):
250
- values.append(tuple(df_.fillna('').values[i]))
247
+ df_.fillna('', inplace=True)
248
+ values = list(df_.itertuples(index=False, name=None))
251
249
 
252
250
  # Create values placeholder
253
251
  colmn_names = df.columns.tolist()
mage_ai/io/postgres.py CHANGED
@@ -99,6 +99,8 @@ class Postgres(BaseSQL):
99
99
  password = self.settings['password']
100
100
  port = self.settings['port']
101
101
  user = self.settings['user']
102
+ keepalives = self.settings.get('keepalives', 1)
103
+ keepalives_idle = self.settings.get('keepalives_idle', 300)
102
104
  if self.settings['connection_method'] == 'ssh_tunnel':
103
105
  ssh_setting = dict(ssh_username=self.settings['ssh_username'])
104
106
  if self.settings['ssh_pkey'] is not None:
@@ -128,19 +130,35 @@ class Postgres(BaseSQL):
128
130
  host = '127.0.0.1'
129
131
  port = self.ssh_tunnel.local_bind_port
130
132
 
131
- connect_opts = dict(
132
- database=database,
133
- host=host,
134
- password=password,
135
- port=port,
136
- user=user,
137
- keepalives=1,
138
- keepalives_idle=300,
133
+ connect_opts = self.settings.copy()
134
+ # See recognized keyword parameters for psycopg2.connect()
135
+ # https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS
136
+ unrecognized_keys = [
137
+ 'dbname',
138
+ 'schema',
139
+ 'connection_method',
140
+ 'ssh_host',
141
+ 'ssh_port',
142
+ 'ssh_username',
143
+ 'ssh_password',
144
+ 'ssh_pkey',
145
+ "verbose"
146
+ ]
147
+ for key in unrecognized_keys:
148
+ connect_opts.pop(key, None)
149
+
150
+ connect_opts.update(
151
+ {
152
+ 'database': database,
153
+ 'host': host,
154
+ 'password': password,
155
+ 'port': port,
156
+ 'user': user,
157
+ 'keepalives': keepalives,
158
+ 'keepalives_idle': keepalives_idle,
159
+ }
139
160
  )
140
161
 
141
- if self.settings.get('connect_timeout'):
142
- connect_opts['connect_timeout'] = self.settings['connect_timeout']
143
-
144
162
  try:
145
163
  self._ctx = connect(**connect_opts)
146
164
  except Exception:
@@ -277,6 +295,14 @@ class Postgres(BaseSQL):
277
295
 
278
296
  return 'text'
279
297
 
298
+ @staticmethod
299
+ def _clean_array_value(val: str) -> str:
300
+ if val is None or type(val) is not str or len(val) < 2:
301
+ return val
302
+ if val[0] == '[' and val[-1] == ']':
303
+ return str(val).replace('[', '{').replace(']', '}')
304
+ return val
305
+
280
306
  def upload_dataframe(
281
307
  self,
282
308
  cursor: _psycopg.cursor,
@@ -298,13 +324,6 @@ class Postgres(BaseSQL):
298
324
  # Use COPY command
299
325
  use_insert_command = False
300
326
 
301
- def clean_array_value(val):
302
- if val is None or type(val) is not str or len(val) < 2:
303
- return val
304
- if val[0] == '[' and val[-1] == ']':
305
- return '{' + val[1:-1] + '}'
306
- return val
307
-
308
327
  def serialize_obj(val):
309
328
  if type(val) is dict or type(val) is np.ndarray:
310
329
  return simplejson.dumps(
@@ -319,7 +338,7 @@ class Postgres(BaseSQL):
319
338
  ignore_nan=True,
320
339
  )
321
340
  elif not use_insert_command and type(val) is list:
322
- return clean_array_value(simplejson.dumps(
341
+ return self._clean_array_value(simplejson.dumps(
323
342
  val,
324
343
  default=encode_complex,
325
344
  ignore_nan=True,
mage_ai/io/utils.py CHANGED
@@ -29,3 +29,21 @@ def escape_quotes(line: str, single: bool = True, double: bool = True) -> str:
29
29
  if double:
30
30
  new_line = new_line.replace('\"', '\\"')
31
31
  return new_line
32
+
33
+
34
+ def map_json_to_airtable(data_types):
35
+ # Extract the non-null type (ignoring 'null')
36
+ data_type = next((t for t in data_types if t != 'null'), 'string')
37
+
38
+ # Mapping from JSON types to Airtable types
39
+ type_mapping = {
40
+ 'string': 'multilineText',
41
+ 'integer': 'number',
42
+ 'boolean': 'checkbox',
43
+ 'array': 'multipleSelects',
44
+ 'object': 'singleCollaborator',
45
+ 'number': 'number',
46
+ 'date-time': 'dateTime'
47
+ }
48
+
49
+ return type_mapping.get(data_type, 'str')
@@ -13,7 +13,7 @@ from mage_ai.orchestration.db.setup import get_postgres_connection_url
13
13
  from mage_ai.orchestration.db.utils import get_user_info_from_db_connection_url
14
14
  from mage_ai.settings import OTEL_EXPORTER_OTLP_ENDPOINT
15
15
  from mage_ai.settings.repo import get_variables_dir
16
- from mage_ai.shared.environments import is_debug, is_test
16
+ from mage_ai.shared.environments import is_debug, is_test_mage
17
17
 
18
18
  DB_RETRY_COUNT = 2
19
19
  TEST_DB = 'test.db'
@@ -28,7 +28,7 @@ db_kwargs = dict(
28
28
  if OTEL_EXPORTER_OTLP_ENDPOINT:
29
29
  from opentelemetry.instrumentation.sqlalchemy import SQLAlchemyInstrumentor
30
30
 
31
- if is_test():
31
+ if is_test_mage():
32
32
  db_connection_url = f'sqlite:///{TEST_DB}'
33
33
  db_kwargs['connect_args']['check_same_thread'] = False
34
34
  elif not db_connection_url:
@@ -37,7 +37,7 @@ elif not db_connection_url:
37
37
  if pg_db_connection_url:
38
38
  db_connection_url = pg_db_connection_url
39
39
  else:
40
- if is_test():
40
+ if is_test_mage():
41
41
  db_connection_url = f'sqlite:///{TEST_DB}'
42
42
  elif os.path.exists(os.path.join('mage_ai', 'orchestration', 'db')):
43
43
  # For local dev environment
@@ -12,4 +12,4 @@ DATAFRAME_OUTPUT_SAMPLE_COUNT = 10
12
12
  # Dockerfile depends on it because it runs ./scripts/install_mage.sh and uses
13
13
  # the last line to determine the version to install.
14
14
  VERSION = \
15
- '0.9.74'
15
+ '0.9.75'
@@ -27,7 +27,7 @@
27
27
  };
28
28
  }
29
29
  })();
30
- </script><link rel="preload" href="/_next/static/css/18782af6d2c4e826.css" as="style"/><link rel="stylesheet" href="/_next/static/css/18782af6d2c4e826.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-b9a067f3bd0a3a05.js" defer=""></script><script src="/_next/static/chunks/framework-ea07653270784974.js" defer=""></script><script src="/_next/static/chunks/main-f39b6301263551db.js" defer=""></script><script src="/_next/static/chunks/pages/_app-5bdff745074fb350.js" defer=""></script><script src="/_next/static/chunks/pages/404-8ecd93274c427b76.js" defer=""></script><script src="/_next/static/pLWT6Sqd09xYpufCVIqnz/_buildManifest.js" defer=""></script><script src="/_next/static/pLWT6Sqd09xYpufCVIqnz/_ssgManifest.js" defer=""></script><style data-styled="" data-styled-version="5.3.11">html{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-overflow-style:scrollbar;}/*!sc*/
30
+ </script><link rel="preload" href="/_next/static/css/18782af6d2c4e826.css" as="style"/><link rel="stylesheet" href="/_next/static/css/18782af6d2c4e826.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-0bc44da590c7cf85.js" defer=""></script><script src="/_next/static/chunks/framework-ea07653270784974.js" defer=""></script><script src="/_next/static/chunks/main-f39b6301263551db.js" defer=""></script><script src="/_next/static/chunks/pages/_app-13bf3b7dcef50c29.js" defer=""></script><script src="/_next/static/chunks/pages/404-8ecd93274c427b76.js" defer=""></script><script src="/_next/static/38-PtskJFUTYUpRhT1qF_/_buildManifest.js" defer=""></script><script src="/_next/static/38-PtskJFUTYUpRhT1qF_/_ssgManifest.js" defer=""></script><style data-styled="" data-styled-version="5.3.11">html{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-overflow-style:scrollbar;}/*!sc*/
31
31
  *,*::before,*::after{-webkit-box-sizing:inherit;box-sizing:inherit;}/*!sc*/
32
32
  data-styled.g4[id="sc-global-czSCUT1"]{content:"sc-global-czSCUT1,"}/*!sc*/
33
33
  .cGTklP{margin-top:16px;margin-bottom:16px;}/*!sc*/
@@ -45,5 +45,5 @@ data-styled.g81[id="Headline__H1Style-sc-12jzt2e-2"]{content:"wrkfv,"}/*!sc*/
45
45
  .dionUf .Toastify__toast--info{background:#00A81A !important;color:#FFFFFF !important;}/*!sc*/
46
46
  .dionUf .Toastify__toast--success{background:#00A81A !important;color:#FFFFFF !important;}/*!sc*/
47
47
  .dionUf .Toastify__toast--warning{background:#DD9900 !important;color:#FFFFFF !important;}/*!sc*/
48
- data-styled.g277[id="ToastWrapper-sc-1a33ph1-0"]{content:"dionUf,"}/*!sc*/
49
- </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><main style="align-items:center;display:flex;flex-direction:column;height:100vh;margin-top:16rem"><svg width="84.70857142857143" height="64" viewBox="0 0 20 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path opacity="0.4" d="M15.3266 0L19.2641 1.82961e-06L11.9687 14L8.03125 14L15.3266 0Z" fill="url(#paint0_linear_1303_5)"></path><path d="M11.9692 1.82961e-06L8.03164 0L0.736328 14L4.67383 14L8.03164 7.55626V14H11.9691V8.38194e-05L11.9692 1.82961e-06Z" fill="url(#paint1_linear_1303_5)"></path><path d="M15.3269 2.57679e-06H19.2644V14H15.3269V2.57679e-06Z" fill="url(#paint2_linear_1303_5)"></path><defs><linearGradient id="paint0_linear_1303_5" x1="8.03125" y1="7" x2="19.2641" y2="7" gradientUnits="userSpaceOnUse"><stop offset="0.28125" stop-color="#7D55EC"></stop><stop offset="1" stop-color="#2AB2FE"></stop></linearGradient><linearGradient id="paint1_linear_1303_5" x1="0.736328" y1="7" x2="19.2644" y2="7" gradientUnits="userSpaceOnUse"><stop offset="0.28125" stop-color="#7D55EC"></stop><stop offset="1" stop-color="#2AB2FE"></stop></linearGradient><linearGradient id="paint2_linear_1303_5" x1="0.736328" y1="7" x2="19.2644" y2="7" gradientUnits="userSpaceOnUse"><stop offset="0.28125" stop-color="#7D55EC"></stop><stop offset="1" stop-color="#2AB2FE"></stop></linearGradient></defs></svg><div class="Spacing__SpacingStyle-sc-1mpmtgj-0 cGTklP"><div class="Headline__HeadlineContainerStyle-sc-12jzt2e-0 hxvzgz"><h1 class="Headline__H1Style-sc-12jzt2e-2 wrkfv">404 - Page Not Found<!-- --></h1></div></div><p class="Text__TextStyle-sc-sl5nur-0 cKjmRF">You will be redirected to the Pipelines dashboard in <!-- -->5<!-- --> seconds.<!-- --></p></main><div id="command-center-root"></div><div></div><div></div><div></div><div class="ToastWrapper-sc-1a33ph1-0 dionUf"><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":"/404","query":{},"buildId":"pLWT6Sqd09xYpufCVIqnz","nextExport":true,"isFallback":false,"appGip":true,"scriptLoader":[]}</script></body></html>
48
+ data-styled.g279[id="ToastWrapper-sc-1a33ph1-0"]{content:"dionUf,"}/*!sc*/
49
+ </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><main style="align-items:center;display:flex;flex-direction:column;height:100vh;margin-top:16rem"><svg width="84.70857142857143" height="64" viewBox="0 0 20 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path opacity="0.4" d="M15.3266 0L19.2641 1.82961e-06L11.9687 14L8.03125 14L15.3266 0Z" fill="url(#paint0_linear_1303_5)"></path><path d="M11.9692 1.82961e-06L8.03164 0L0.736328 14L4.67383 14L8.03164 7.55626V14H11.9691V8.38194e-05L11.9692 1.82961e-06Z" fill="url(#paint1_linear_1303_5)"></path><path d="M15.3269 2.57679e-06H19.2644V14H15.3269V2.57679e-06Z" fill="url(#paint2_linear_1303_5)"></path><defs><linearGradient id="paint0_linear_1303_5" x1="8.03125" y1="7" x2="19.2641" y2="7" gradientUnits="userSpaceOnUse"><stop offset="0.28125" stop-color="#7D55EC"></stop><stop offset="1" stop-color="#2AB2FE"></stop></linearGradient><linearGradient id="paint1_linear_1303_5" x1="0.736328" y1="7" x2="19.2644" y2="7" gradientUnits="userSpaceOnUse"><stop offset="0.28125" stop-color="#7D55EC"></stop><stop offset="1" stop-color="#2AB2FE"></stop></linearGradient><linearGradient id="paint2_linear_1303_5" x1="0.736328" y1="7" x2="19.2644" y2="7" gradientUnits="userSpaceOnUse"><stop offset="0.28125" stop-color="#7D55EC"></stop><stop offset="1" stop-color="#2AB2FE"></stop></linearGradient></defs></svg><div class="Spacing__SpacingStyle-sc-1mpmtgj-0 cGTklP"><div class="Headline__HeadlineContainerStyle-sc-12jzt2e-0 hxvzgz"><h1 class="Headline__H1Style-sc-12jzt2e-2 wrkfv">404 - Page Not Found<!-- --></h1></div></div><p class="Text__TextStyle-sc-sl5nur-0 cKjmRF">You will be redirected to the Pipelines dashboard in <!-- -->5<!-- --> seconds.<!-- --></p></main><div id="command-center-root"></div><div></div><div></div><div></div><div class="ToastWrapper-sc-1a33ph1-0 dionUf"><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":"/404","query":{},"buildId":"38-PtskJFUTYUpRhT1qF_","nextExport":true,"isFallback":false,"appGip":true,"scriptLoader":[]}</script></body></html>
@@ -0,0 +1 @@
1
+ self.__BUILD_MANIFEST=function(s,e,i,a,t,c,n,p,l,g,u,r,o,k,d,b,f,h,j,m,w,v,_,y,I,B,F,A,D,E,L,M,N,S,T){return{__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":["static/chunks/pages/index-00ff043e2b1e43f2.js"],"/404":["static/chunks/pages/404-8ecd93274c427b76.js"],"/_error":["static/chunks/pages/_error-b2c101c3f6329265.js"],"/block-layout":[r,a,t,n,l,b,g,o,f,v,"static/chunks/pages/block-layout-9bed8fa86d923ab9.js"],"/compute":[s,F,"static/chunks/pages/compute-9e2dea78024e3bb4.js"],"/files":[s,"static/chunks/pages/files-e08c7fe76f968f9c.js"],"/global-data-products":[s,p,h,A,"static/chunks/pages/global-data-products-8dcb3b31af9e0e39.js"],"/global-data-products/[...slug]":[s,p,h,A,"static/chunks/pages/global-data-products/[...slug]-30c3807057a4e65b.js"],"/global-hooks":[s,j,"static/chunks/pages/global-hooks-4ff959d51b8a9502.js"],"/global-hooks/[...slug]":[s,j,"static/chunks/pages/global-hooks/[...slug]-85a64b64d27214b6.js"],"/manage":[s,c,k,"static/chunks/pages/manage-868fcd8cbeb265f0.js"],"/manage/files":[s,c,"static/chunks/pages/manage/files-d08a460641d0efaa.js"],"/manage/overview":[a,t,s,c,_,D,"static/chunks/pages/manage/overview-aae747f487e08d51.js"],"/manage/pipeline-runs":[s,c,p,k,"static/chunks/pages/manage/pipeline-runs-09a842d64a6ada62.js"],"/manage/settings":[s,c,"static/chunks/pages/manage/settings-2e98e57d9376a458.js"],"/manage/users":[s,c,"static/chunks/pages/manage/users-b99379d0aa6a8c25.js"],"/manage/users/new":[s,c,"static/chunks/pages/manage/users/new-4c088833063bfa07.js"],"/manage/users/[user]":[s,c,"static/chunks/pages/manage/users/[user]-7be6e41ad66089bb.js"],"/oauth":[s,"static/chunks/pages/oauth-6ceceb62191dfe8a.js"],"/overview":[r,a,t,n,l,b,s,g,d,o,f,m,v,_,y,E,D,"static/chunks/pages/overview-e51cd04bd4d1fffe.js"],"/pipeline-runs":[s,p,k,"static/chunks/pages/pipeline-runs-2d0136b51b57de93.js"],"/pipelines":[s,d,k,m,y,E,"static/chunks/pages/pipelines-38187954b6ec4b40.js"],"/pipelines/[pipeline]":["static/chunks/pages/pipelines/[pipeline]-1a0d1ab496183686.js"],"/pipelines/[pipeline]/backfills":[s,e,"static/chunks/pages/pipelines/[pipeline]/backfills-bd11e87d026bfbf9.js"],"/pipelines/[pipeline]/backfills/[...slug]":[u,w,s,e,p,"static/chunks/pages/pipelines/[pipeline]/backfills/[...slug]-1ad5238742e25b4c.js"],"/pipelines/[pipeline]/dashboard":[r,a,t,n,l,b,s,e,g,o,f,v,"static/chunks/pages/pipelines/[pipeline]/dashboard-0f4f47f721b0723f.js"],"/pipelines/[pipeline]/edit":[r,a,t,n,u,l,b,s,g,d,o,f,m,I,y,F,"static/chunks/pages/pipelines/[pipeline]/edit-432da20df91511fb.js"],"/pipelines/[pipeline]/logs":[w,s,e,"static/chunks/pages/pipelines/[pipeline]/logs-fe91dfb0091f6bc6.js"],"/pipelines/[pipeline]/monitors":[a,t,s,e,_,"static/chunks/pages/pipelines/[pipeline]/monitors-80bebb4401eefe25.js"],"/pipelines/[pipeline]/monitors/block-runs":[a,t,s,e,"static/chunks/pages/pipelines/[pipeline]/monitors/block-runs-cf794b2d22a80f31.js"],"/pipelines/[pipeline]/monitors/block-runtime":[r,a,t,n,s,e,o,"static/chunks/pages/pipelines/[pipeline]/monitors/block-runtime-a964caef91bed9e1.js"],"/pipelines/[pipeline]/runs":[u,s,e,p,"static/chunks/pages/pipelines/[pipeline]/runs-e3d7fdfeb7f806f7.js"],"/pipelines/[pipeline]/runs/[run]":[a,n,u,l,s,e,g,I,"static/chunks/pages/pipelines/[pipeline]/runs/[run]-2eae7cb017027682.js"],"/pipelines/[pipeline]/settings":[s,e,"static/chunks/pages/pipelines/[pipeline]/settings-0abf8a1b7243f93b.js"],"/pipelines/[pipeline]/syncs":[s,e,"static/chunks/pages/pipelines/[pipeline]/syncs-707ed8ca942ca802.js"],"/pipelines/[pipeline]/triggers":[u,w,L,s,e,k,h,M,"static/chunks/pages/pipelines/[pipeline]/triggers-193045d9836d8d80.js"],"/pipelines/[pipeline]/triggers/[...slug]":[u,w,L,s,e,p,M,"static/chunks/pages/pipelines/[pipeline]/triggers/[...slug]-8429f17d4146e1ec.js"],"/platform/global-hooks":[s,j,"static/chunks/pages/platform/global-hooks-b3f7309a23e592b2.js"],"/platform/global-hooks/[...slug]":[s,j,"static/chunks/pages/platform/global-hooks/[...slug]-6834ae87bd668cb2.js"],"/settings":["static/chunks/pages/settings-8097291375b16889.js"],"/settings/account/profile":[s,i,B,"static/chunks/pages/settings/account/profile-f8b7374385e1f1bf.js"],"/settings/platform/preferences":[s,i,"static/chunks/pages/settings/platform/preferences-8de68502a9afa299.js"],"/settings/platform/settings":[s,i,"static/chunks/pages/settings/platform/settings-50fb6a34f3913f1f.js"],"/settings/workspace/permissions":[s,i,N,"static/chunks/pages/settings/workspace/permissions-54e4b15b9585bfc4.js"],"/settings/workspace/permissions/[...slug]":[s,i,N,"static/chunks/pages/settings/workspace/permissions/[...slug]-2e5c098c21ea32b7.js"],"/settings/workspace/preferences":[s,i,"static/chunks/pages/settings/workspace/preferences-040f83d75d0f6537.js"],"/settings/workspace/roles":[s,i,S,"static/chunks/pages/settings/workspace/roles-e9149e1fcf218f42.js"],"/settings/workspace/roles/[...slug]":[s,i,S,"static/chunks/pages/settings/workspace/roles/[...slug]-95088f43034e3c95.js"],"/settings/workspace/sync-data":[a,n,l,s,i,g,I,"static/chunks/pages/settings/workspace/sync-data-75b67ae4a00818ef.js"],"/settings/workspace/users":[s,i,B,"static/chunks/pages/settings/workspace/users-3ee783f5139c76a1.js"],"/settings/workspace/users/[...slug]":[s,i,B,"static/chunks/pages/settings/workspace/users/[...slug]-557dda05ca6c6124.js"],"/sign-in":[s,"static/chunks/pages/sign-in-593c40985d63fcf7.js"],"/templates":[s,d,m,"static/chunks/pages/templates-ca528bc607753ab8.js"],"/templates/[...slug]":[s,d,"static/chunks/pages/templates/[...slug]-252c4b6b818345d5.js"],"/terminal":[s,"static/chunks/pages/terminal-287362c1defcc96b.js"],"/test":["static/chunks/pages/test-2f83af8c9f1378fe.js"],"/triggers":[s,h,"static/chunks/pages/triggers-d9de73fb799efed8.js"],"/v2":[T,"static/chunks/pages/v2-892b95c22b554fd1.js"],"/v2/canvas":[T,"static/chunks/pages/v2/canvas-df87d3d3a268f07d.js"],"/version-control":[s,"static/chunks/pages/version-control-573f0225d7a703ed.js"],sortedPages:["/","/404","/_app","/_error","/block-layout","/compute","/files","/global-data-products","/global-data-products/[...slug]","/global-hooks","/global-hooks/[...slug]","/manage","/manage/files","/manage/overview","/manage/pipeline-runs","/manage/settings","/manage/users","/manage/users/new","/manage/users/[user]","/oauth","/overview","/pipeline-runs","/pipelines","/pipelines/[pipeline]","/pipelines/[pipeline]/backfills","/pipelines/[pipeline]/backfills/[...slug]","/pipelines/[pipeline]/dashboard","/pipelines/[pipeline]/edit","/pipelines/[pipeline]/logs","/pipelines/[pipeline]/monitors","/pipelines/[pipeline]/monitors/block-runs","/pipelines/[pipeline]/monitors/block-runtime","/pipelines/[pipeline]/runs","/pipelines/[pipeline]/runs/[run]","/pipelines/[pipeline]/settings","/pipelines/[pipeline]/syncs","/pipelines/[pipeline]/triggers","/pipelines/[pipeline]/triggers/[...slug]","/platform/global-hooks","/platform/global-hooks/[...slug]","/settings","/settings/account/profile","/settings/platform/preferences","/settings/platform/settings","/settings/workspace/permissions","/settings/workspace/permissions/[...slug]","/settings/workspace/preferences","/settings/workspace/roles","/settings/workspace/roles/[...slug]","/settings/workspace/sync-data","/settings/workspace/users","/settings/workspace/users/[...slug]","/sign-in","/templates","/templates/[...slug]","/terminal","/test","/triggers","/v2","/v2/canvas","/version-control"]}}("static/chunks/449-f689774546860ca4.js","static/chunks/3782-3e2acb5ed45b582b.js","static/chunks/5699-e99379e332bd0b41.js","static/chunks/125-5337af3c1566ed8e.js","static/chunks/2714-4ad4b9ab70fe921f.js","static/chunks/1598-cbf3f5a6078fc3f5.js","static/chunks/1799-33afa1735e3b9e98.js","static/chunks/7966-a5a7db345ce81263.js","static/chunks/140-3a57c1c5d23f15d8.js","static/chunks/8095-aae2b7f0865f00a3.js","static/chunks/7849-e52eeca7d1a2b973.js","static/chunks/29107295-c0a511dcab14f9e9.js","static/chunks/4168-f97c0dd41e6f2b34.js","static/chunks/5544-3427bdf859d76f34.js","static/chunks/4241-88dd28b784f9aac7.js","static/chunks/2996-ffd19c1564306530.js","static/chunks/8023-ba84a62148ef4d48.js","static/chunks/9624-34e996a8c64019f9.js","static/chunks/1187-4560c3895e1d7099.js","static/chunks/523-f571fbd8d2f28011.js","static/chunks/2055-2325ad52bb24afdc.js","static/chunks/6065-0893edae462093a7.js","static/chunks/5831-ceee68103fba06ca.js","static/chunks/3548-36f746b1824004f2.js","static/chunks/4982-85811e261efb3ac7.js","static/chunks/3958-7e08e5b7c9734ee7.js","static/chunks/3366-38098792730e685a.js","static/chunks/3763-aabe2703076636b0.js","static/chunks/6362-78fe21a880d615f1.js","static/chunks/5627-10e76bafa5a26f5f.js","static/chunks/26-d3f1e439a49f6b82.js","static/chunks/2717-638a944d24d5abde.js","static/chunks/7779-bb567cebf2096f8b.js","static/chunks/1376-e135518430c473c7.js","static/chunks/9580-29d3a9839aec37a6.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();