mage-ai 0.9.75__py3-none-any.whl → 0.9.77__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.
- mage_ai/api/policies/PipelineSchedulePolicy.py +1 -0
- mage_ai/api/presenters/PipelineSchedulePresenter.py +11 -2
- mage_ai/api/resources/GitFileResource.py +8 -0
- mage_ai/api/resources/PipelineScheduleResource.py +11 -3
- mage_ai/api/resources/PipelineTriggerResource.py +3 -1
- mage_ai/api/resources/SessionResource.py +2 -2
- mage_ai/api/resources/SyncResource.py +1 -1
- mage_ai/api/resources/UserResource.py +1 -1
- mage_ai/cli/main.py +6 -1
- mage_ai/data_integrations/destinations/constants.py +2 -0
- mage_ai/data_integrations/sources/constants.py +2 -0
- mage_ai/data_preparation/executors/block_executor.py +8 -3
- mage_ai/data_preparation/executors/pipeline_executor.py +35 -19
- mage_ai/data_preparation/models/block/__init__.py +29 -23
- mage_ai/data_preparation/models/block/dbt/dbt_adapter.py +20 -8
- mage_ai/data_preparation/models/block/dynamic/constants.py +0 -1
- mage_ai/data_preparation/models/block/dynamic/counter.py +1 -3
- mage_ai/data_preparation/models/block/outputs.py +1 -1
- mage_ai/data_preparation/models/block/r/__init__.py +16 -5
- mage_ai/data_preparation/models/block/sql/__init__.py +2 -0
- mage_ai/data_preparation/models/block/sql/mssql.py +8 -0
- mage_ai/data_preparation/models/block/sql/utils/shared.py +6 -2
- mage_ai/data_preparation/models/constants.py +3 -0
- mage_ai/data_preparation/models/pipeline.py +1 -1
- mage_ai/data_preparation/storage/local_storage.py +4 -1
- mage_ai/data_preparation/templates/constants.py +7 -0
- mage_ai/data_preparation/templates/data_loaders/airtable.py +28 -0
- mage_ai/data_preparation/templates/repo/io_config.yaml +2 -0
- mage_ai/io/airtable.py +104 -0
- mage_ai/io/base.py +1 -0
- mage_ai/io/bigquery.py +36 -0
- mage_ai/io/config.py +6 -0
- mage_ai/io/mssql.py +21 -9
- mage_ai/io/mysql.py +6 -1
- mage_ai/io/postgres.py +3 -0
- mage_ai/io/redshift.py +13 -0
- mage_ai/io/sql.py +1 -0
- mage_ai/orchestration/db/__init__.py +20 -0
- mage_ai/orchestration/db/migrations/versions/39d36f1dab73_create_genericjob.py +47 -0
- mage_ai/orchestration/db/models/oauth.py +2 -1
- mage_ai/orchestration/db/models/schedules.py +107 -5
- mage_ai/orchestration/db/models/secrets.py +11 -1
- mage_ai/orchestration/job_manager.py +19 -0
- mage_ai/orchestration/metrics/pipeline_run.py +1 -1
- mage_ai/orchestration/notification/sender.py +2 -2
- mage_ai/orchestration/pipeline_scheduler_original.py +150 -6
- mage_ai/orchestration/pipeline_scheduler_project_platform.py +4 -5
- mage_ai/orchestration/queue/config.py +11 -1
- mage_ai/orchestration/queue/process_queue.py +2 -0
- mage_ai/orchestration/utils/distributed_lock.py +8 -1
- mage_ai/server/api/base.py +41 -0
- mage_ai/server/api/constants.py +1 -0
- mage_ai/server/api/triggers.py +9 -0
- mage_ai/server/constants.py +1 -1
- mage_ai/server/frontend_dist/404.html +2 -2
- mage_ai/server/frontend_dist/_next/static/chunks/449-5e2253c6aba42557.js +1 -0
- mage_ai/server/frontend_dist/_next/static/chunks/pages/_app-782dd4a6b13e1c42.js +2 -0
- mage_ai/server/frontend_dist/_next/static/chunks/pages/manage/users-5db54821a3059c69.js +1 -0
- mage_ai/server/frontend_dist/_next/static/chunks/pages/overview-f65416f6dbe30ad3.js +1 -0
- mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/settings-03d9bca3bc5e6088.js +1 -0
- mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines-d25d07db166cbb04.js +1 -0
- mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/users-fa61dc6c1370e6a5.js +1 -0
- mage_ai/server/frontend_dist/_next/static/chunks/{webpack-0bc44da590c7cf85.js → webpack-b9a067f3bd0a3a05.js} +1 -1
- mage_ai/server/frontend_dist/_next/static/{38-PtskJFUTYUpRhT1qF_ → qR0jauUABqPaFMjUsYeoG}/_buildManifest.js +1 -1
- mage_ai/server/frontend_dist/block-layout.html +2 -2
- mage_ai/server/frontend_dist/compute.html +2 -2
- mage_ai/server/frontend_dist/files.html +2 -2
- mage_ai/server/frontend_dist/global-data-products/[...slug].html +2 -2
- mage_ai/server/frontend_dist/global-data-products.html +2 -2
- mage_ai/server/frontend_dist/global-hooks/[...slug].html +2 -2
- mage_ai/server/frontend_dist/global-hooks.html +2 -2
- mage_ai/server/frontend_dist/index.html +2 -2
- mage_ai/server/frontend_dist/manage/files.html +2 -2
- mage_ai/server/frontend_dist/manage/overview.html +2 -2
- mage_ai/server/frontend_dist/manage/pipeline-runs.html +2 -2
- mage_ai/server/frontend_dist/manage/settings.html +2 -2
- mage_ai/server/frontend_dist/manage/users/[user].html +2 -2
- mage_ai/server/frontend_dist/manage/users/new.html +2 -2
- mage_ai/server/frontend_dist/manage/users.html +2 -2
- mage_ai/server/frontend_dist/manage.html +2 -2
- mage_ai/server/frontend_dist/oauth.html +3 -3
- mage_ai/server/frontend_dist/overview.html +2 -2
- mage_ai/server/frontend_dist/pipeline-runs.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/backfills/[...slug].html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/backfills.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/dashboard.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/edit.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/logs.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors/block-runs.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors/block-runtime.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/runs/[run].html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/runs.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/settings.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/syncs.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/triggers/[...slug].html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline]/triggers.html +2 -2
- mage_ai/server/frontend_dist/pipelines/[pipeline].html +2 -2
- mage_ai/server/frontend_dist/pipelines.html +2 -2
- mage_ai/server/frontend_dist/platform/global-hooks/[...slug].html +2 -2
- mage_ai/server/frontend_dist/platform/global-hooks.html +2 -2
- mage_ai/server/frontend_dist/settings/account/profile.html +2 -2
- mage_ai/server/frontend_dist/settings/platform/preferences.html +2 -2
- mage_ai/server/frontend_dist/settings/platform/settings.html +2 -2
- mage_ai/server/frontend_dist/settings/workspace/permissions/[...slug].html +2 -2
- mage_ai/server/frontend_dist/settings/workspace/permissions.html +2 -2
- mage_ai/server/frontend_dist/settings/workspace/preferences.html +2 -2
- mage_ai/server/frontend_dist/settings/workspace/roles/[...slug].html +2 -2
- mage_ai/server/frontend_dist/settings/workspace/roles.html +2 -2
- mage_ai/server/frontend_dist/settings/workspace/sync-data.html +2 -2
- mage_ai/server/frontend_dist/settings/workspace/users/[...slug].html +2 -2
- mage_ai/server/frontend_dist/settings/workspace/users.html +2 -2
- mage_ai/server/frontend_dist/settings.html +2 -2
- mage_ai/server/frontend_dist/sign-in.html +5 -5
- mage_ai/server/frontend_dist/templates/[...slug].html +2 -2
- mage_ai/server/frontend_dist/templates.html +2 -2
- mage_ai/server/frontend_dist/terminal.html +2 -2
- mage_ai/server/frontend_dist/test.html +2 -2
- mage_ai/server/frontend_dist/triggers.html +2 -2
- mage_ai/server/frontend_dist/v2/canvas.html +2 -2
- mage_ai/server/frontend_dist/v2.html +2 -2
- mage_ai/server/frontend_dist/version-control.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/404.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/449-5e2253c6aba42557.js +1 -0
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/_app-ee5e328aaf51c698.js +2 -0
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/manage/users-5db54821a3059c69.js +1 -0
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/overview-f65416f6dbe30ad3.js +1 -0
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/settings-03d9bca3bc5e6088.js +1 -0
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines-d25d07db166cbb04.js +1 -0
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/workspace/users-fa61dc6c1370e6a5.js +1 -0
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/{webpack-12ad70eb5c31aa92.js → webpack-5f4be622608d9267.js} +1 -1
- mage_ai/server/frontend_dist_base_path_template/_next/static/{dxnSzgIvSG4Ke5LM-tPQX → iCySon3_GCldnbC5U7C-s}/_buildManifest.js +1 -1
- mage_ai/server/frontend_dist_base_path_template/block-layout.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/compute.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/files.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/global-data-products/[...slug].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/global-data-products.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/global-hooks/[...slug].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/global-hooks.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/index.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/manage/files.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/manage/overview.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/manage/pipeline-runs.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/manage/settings.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/manage/users/[user].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/manage/users/new.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/manage/users.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/manage.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/oauth.html +3 -3
- mage_ai/server/frontend_dist_base_path_template/overview.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipeline-runs.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/backfills/[...slug].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/backfills.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/dashboard.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/edit.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/logs.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/monitors/block-runs.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/monitors/block-runtime.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/monitors.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/runs/[run].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/runs.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/settings.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/syncs.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/triggers/[...slug].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/triggers.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/pipelines.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/platform/global-hooks/[...slug].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/platform/global-hooks.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/account/profile.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/platform/preferences.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/platform/settings.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/workspace/permissions/[...slug].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/workspace/permissions.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/workspace/preferences.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/workspace/roles/[...slug].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/workspace/roles.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/workspace/sync-data.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/workspace/users/[...slug].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings/workspace/users.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/settings.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/sign-in.html +5 -5
- mage_ai/server/frontend_dist_base_path_template/templates/[...slug].html +2 -2
- mage_ai/server/frontend_dist_base_path_template/templates.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/terminal.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/test.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/triggers.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/v2/canvas.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/v2.html +2 -2
- mage_ai/server/frontend_dist_base_path_template/version-control.html +2 -2
- mage_ai/server/scheduler_manager.py +2 -0
- mage_ai/server/terminal_server.py +3 -0
- mage_ai/settings/server.py +4 -0
- mage_ai/streaming/sources/kafka.py +2 -1
- mage_ai/tests/data_preparation/executors/test_block_executor.py +3 -3
- mage_ai/tests/data_preparation/models/block/dynamic/test_counter.py +1 -3
- mage_ai/tests/data_preparation/models/test_variable.py +2 -0
- mage_ai/tests/io/create_table/test_postgresql.py +3 -2
- mage_ai/tests/orchestration/notification/test_sender.py +5 -1
- mage_ai/tests/streaming/sources/test_kafka.py +2 -2
- mage_ai/usage_statistics/logger.py +99 -15
- mage_ai-0.9.77.dist-info/METADATA +356 -0
- {mage_ai-0.9.75.dist-info → mage_ai-0.9.77.dist-info}/RECORD +211 -208
- {mage_ai-0.9.75.dist-info → mage_ai-0.9.77.dist-info}/WHEEL +1 -1
- mage_ai/server/frontend_dist/_next/static/chunks/449-f689774546860ca4.js +0 -1
- mage_ai/server/frontend_dist/_next/static/chunks/pages/_app-13bf3b7dcef50c29.js +0 -2
- mage_ai/server/frontend_dist/_next/static/chunks/pages/manage/users-b99379d0aa6a8c25.js +0 -1
- mage_ai/server/frontend_dist/_next/static/chunks/pages/overview-e51cd04bd4d1fffe.js +0 -1
- mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/settings-0abf8a1b7243f93b.js +0 -1
- mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines-38187954b6ec4b40.js +0 -1
- mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/users-3ee783f5139c76a1.js +0 -1
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/449-f689774546860ca4.js +0 -1
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/_app-0392ef723ea2c6f8.js +0 -2
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/manage/users-b99379d0aa6a8c25.js +0 -1
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/overview-e51cd04bd4d1fffe.js +0 -1
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/settings-0abf8a1b7243f93b.js +0 -1
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines-38187954b6ec4b40.js +0 -1
- mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/settings/workspace/users-3ee783f5139c76a1.js +0 -1
- mage_ai-0.9.75.dist-info/METADATA +0 -377
- /mage_ai/server/frontend_dist/_next/static/chunks/pages/{_app-13bf3b7dcef50c29.js.LICENSE.txt → _app-782dd4a6b13e1c42.js.LICENSE.txt} +0 -0
- /mage_ai/server/frontend_dist/_next/static/{38-PtskJFUTYUpRhT1qF_ → qR0jauUABqPaFMjUsYeoG}/_ssgManifest.js +0 -0
- /mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/{_app-0392ef723ea2c6f8.js.LICENSE.txt → _app-ee5e328aaf51c698.js.LICENSE.txt} +0 -0
- /mage_ai/server/frontend_dist_base_path_template/_next/static/{dxnSzgIvSG4Ke5LM-tPQX → iCySon3_GCldnbC5U7C-s}/_ssgManifest.js +0 -0
- {mage_ai-0.9.75.dist-info → mage_ai-0.9.77.dist-info}/entry_points.txt +0 -0
- {mage_ai-0.9.75.dist-info → mage_ai-0.9.77.dist-info/licenses}/LICENSE +0 -0
- {mage_ai-0.9.75.dist-info → mage_ai-0.9.77.dist-info}/top_level.txt +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1911],{12222:function(e,r,n){"use strict";n.r(r);var t=n(77837),u=n(82394),o=n(38860),i=n.n(o),s=n(82684),c=n(34376),a=n(71180),l=n(85854),f=n(93808),d=n(38276),p=n(75499),b=n(30160),v=n(59533),w=n(35686),h=n(98464),m=n(72473),O=n(70515),_=n(75083),j=n(72619),y=n(50178),P=n(42122),Z=n(69419),g=n(28598);function E(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function x(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?E(Object(n),!0).forEach((function(r){(0,u.Z)(e,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):E(Object(n)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))}))}return e}function k(){var e=(0,c.useRouter)(),r=(0,s.useState)(null),n=r[0],t=r[1],u=((0,y.PR)(null==e?void 0:e.basePath)||{}).owner,o=(0,s.useState)(null),i=o[0],f=o[1],E=w.ZP.users.list({},{revalidateOnFocus:!1}),k=E.data;E.mutate;(0,s.useEffect)((function(){(0,j.bB)(k,t)}),[k]);var S=(0,s.useMemo)((function(){return(null==k?void 0:k.users)||[]}),[null==k?void 0:k.users]),R=w.ZP.users.detail(null==i?void 0:i.user_id,{},{revalidateOnFocus:!1}),N=R.data;R.mutate;(0,s.useEffect)((function(){(0,j.bB)(N,t)}),[N]);var D=null==N?void 0:N.user,C=(0,Z.iV)(),T=(0,h.Z)(C);return(0,s.useEffect)((function(){var e=C.add_new_user,r=C.user_id;if(!(0,P.Xy)(C,T)){var n=x(x({},T),C);r?n.user_id=r:delete n.user_id,e?n.add_new_user=e:delete n.add_new_user,f(n)}}),[C,T]),(0,g.jsxs)(v.Z,{breadcrumbs:[{label:function(){return"Workspaces"},linkProps:{as:"/manage",href:"/manage"}},{bold:!0,label:function(){return"Users"}}],errors:n,pageName:_.L6.USERS,children:[u&&(0,g.jsx)(d.Z,{p:O.cd,children:(0,g.jsx)(a.ZP,{beforeIcon:(0,g.jsx)(m.Add,{}),onClick:function(){return e.push("/manage/users/new")},primary:!0,children:"Add new user"})}),(0,g.jsx)(d.Z,{p:O.cd,children:(0,g.jsx)(l.Z,{children:"Users"})}),(0,g.jsx)(p.Z,{columnFlex:[1,1,1],columns:[{uuid:"Username"},{uuid:"Email"},{uuid:"Role"}],isSelectedRow:function(e){var r;return(null===(r=S[e])||void 0===r?void 0:r.id)===(null==D?void 0:D.id)},onClickRow:function(r){var n,t=null===(n=S[r])||void 0===n?void 0:n.id;e.push("/manage/users/[user]","/manage/users/".concat(t))},rows:S.map((function(e){var r=e.email,n=e.roles_display,t=e.roles_new,u=e.username;return[(0,g.jsx)(b.ZP,{bold:!0,children:u},"username"),(0,g.jsx)(b.ZP,{default:!0,children:r},"email"),(0,g.jsx)(b.ZP,{default:!0,children:t&&t[0]?t[0].name:n},"roles")]})),uuid:"pipeline-runs"})]})}k.getInitialProps=(0,t.Z)(i().mark((function e(){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{});case 1:case"end":return e.stop()}}),e)}))),r.default=(0,f.Z)(k)},72695:function(e,r,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/manage/users",function(){return n(12222)}])},80022:function(e,r,n){"use strict";function t(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(r,{Z:function(){return t}})},15544:function(e,r,n){"use strict";function t(e){return t=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},t(e)}n.d(r,{Z:function(){return t}})},13692:function(e,r,n){"use strict";n.d(r,{Z:function(){return u}});var t=n(61049);function u(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),r&&(0,t.Z)(e,r)}},93189:function(e,r,n){"use strict";n.d(r,{Z:function(){return o}});var t=n(12539),u=n(80022);function o(e,r){if(r&&("object"===t(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return(0,u.Z)(e)}}},function(e){e.O(0,[449,1598,9774,2888,179],(function(){return r=72695,e(e.s=r);var r}));var r=e.O();_N_E=r}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1709],{81066:function(e,n,t){"use strict";t.d(n,{B:function(){return p}});var r=t(82394),i=t(46732),o=t(68562),u=t(72473),c=t(8059),l=t(70515),a=t(28598);function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function d(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?s(Object(t),!0).forEach((function(n){(0,r.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var p={bold:!0,greyBorder:!0,paddingBottom:9,paddingTop:9};n.Z=function(e){var n=e.addButtonMenuOpen,t=e.addButtonMenuRef,r=e.isLoading,s=e.label,f=e.menuItems,b=e.onClick,h=e.onClickCallback;return(0,a.jsx)(i.Z,{disableKeyboardShortcuts:!0,items:f,onClickCallback:h,onClickOutside:h,open:n,parentRef:t,roundedStyle:!0,topOffset:1,uuid:"Table/Toolbar/NewItemMenu",children:(0,a.jsx)(o.ZP,d(d({},p),{},{background:c.eW,beforeElement:(0,a.jsx)(u.Add,{size:2.5*l.iI}),loading:r,onClick:function(e){e.preventDefault(),null==b||b()},uuid:"shared/AddButton/index",children:s}))})}},46568:function(e,n,t){"use strict";var r=t(82394),i=t(26304),o=(t(82684),t(33591)),u=t(28598),c=["children","fullHeight","gutter","style"];function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){(0,r.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}n.Z=function(e){var n=e.children,t=e.fullHeight,r=e.gutter,l=e.style,s=void 0===l?{}:l,d=(0,i.Z)(e,c),p=a({},s);return r&&(p.paddingLeft=r,p.paddingRight=p.paddingLeft),t&&(p.height="100%"),(0,u.jsx)(o.Col,a(a({},d),{},{style:p,children:n}))}},82682:function(e,n,t){"use strict";var r=t(82394),i=t(26304),o=t(82684),u=t(33591),c=t(28598),l=["children","fullHeight","gutter","justifyContent","style"];function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function s(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?a(Object(t),!0).forEach((function(n){(0,r.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}n.Z=function(e){var n=e.children,t=e.fullHeight,r=e.gutter,a=e.justifyContent,d=e.style,p=void 0===d?{}:d,f=(0,i.Z)(e,l),b=s({},p);return r&&(b.marginLeft=-1*r,b.marginRight=b.marginLeft),t&&(b.height="100%"),(0,c.jsx)(u.Row,s(s({},f),{},{justifyContent:a,style:b,children:o.Children.map(n,(function(e,n){return e&&o.cloneElement(e,{gutter:r,key:n})}))}))}},94542:function(e,n,t){"use strict";t.d(n,{J:function(){return o},X:function(){return u}});var r=t(46568),i=t(82682),o=r.Z,u=i.Z},95660:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return De}});var r=t(77837),i=t(82394),o=t(75582),u=t(38860),c=t.n(u),l=t(83455),a=t(82684),s=t(34376),d=t(92083),p=t.n(d),f=t(52749),b=t(81066),h=t(53998),m=t(36065),y=t(60523),g=t(90299),j=t(76111),v=t(94629),O=t(55485),Z=t(85854),_=t(48670),x=t(97618),P=t(38276),w=t(30160),C=t(9518),k=t(44897),T=t(42631),E=t(70515),I=12.5*E.iI,D=8*E.iI,N=5*E.iI,S=3*E.iI,R=C.default.div.withConfig({displayName:"indexstyle__TileContainerStyle",componentId:"sc-c3nc3q-0"})(["padding:","px;border-radius:","px;height:","px;width:","px;"," ",""],2.5*E.iI,T.TR,I,I,(function(e){return"\n background-color: ".concat((e.theme||k.Z).background.chartBlock,";\n ")}),(function(e){return e.compact&&"\n height: ".concat(D,"px;\n width: ").concat(D,"px;\n ")})),L=t(28598);var M=function(e){var n=e.Icon,t=e.compact,r=e.label;return(0,L.jsx)(R,{compact:t,children:(0,L.jsxs)(O.ZP,{alignItems:"center",flexDirection:"column",justifyContent:"center",children:[(0,L.jsx)(n,{size:t?S:N}),(0,L.jsx)(P.Z,{mb:"4px"}),(0,L.jsx)(w.ZP,{bold:!0,small:t,children:r})]})})},A=t(12468),B=C.default.div.withConfig({displayName:"indexstyle__MetricsSummaryContainerStyle",componentId:"sc-nu65g1-0"})(["width:100%;padding:","px;border-radius:","px;",""],2*E.iI,T.n_,(function(e){return"\n border: ".concat(T.YF,"px ").concat(T.M8," ").concat((e.theme||k.Z).interactive.defaultBorder,";\n box-shadow: ").concat((e.theme||k.Z).shadow.frame,";\n ")})),H=C.default.div.withConfig({displayName:"indexstyle__MetricContainerStyle",componentId:"sc-nu65g1-1"})(["display:flex;flex:1;align-items:center;justify-content:space-between;",""],(function(e){return e.includeLeftBorder&&"\n @media (min-width: 1200px) {\n padding-left: 24px;\n border-left: ".concat(T.YF,"px ").concat(T.M8," ").concat((e.theme||k.Z).interactive.defaultBorder,";\n }\n ")})),U=t(57653),Y=t(94542),q=t(41143),V=t(39598),F=t(81728),X=t(48277),G=t(79221),J=t(70320),z=t(86735);function K(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function $(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?K(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):K(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var W=function(e){var n=e.pipelineRunCountByPipelineType,t=(0,J.qB)(),r=(0,a.useMemo)((function(){if(!n)return[];var e=JSON.parse(JSON.stringify(n)),t=e[U.qL.PYTHON]||{};return Object.entries(e[U.qL.PYSPARK]||{}).forEach((function(e){var n=(0,o.Z)(e,2),r=n[0],i=n[1];t[r]?t[r]+=i:t[r]=i})),e[U.qL.PYTHON]=t,delete e[U.qL.PYSPARK],(0,z.mr)(Object.entries(e).filter((function(e){var n=(0,o.Z)(e,2),t=(n[0],n[1]);return 0!==Object.keys(t).length})))}),[n]),i=(0,a.useMemo)((function(){return t?(0,L.jsx)(P.Z,{ml:"4px",children:(0,L.jsx)(A.Z,$($({},V.m),{},{label:"Please note that these metrics are based on UTC time."}))}):null}),[t]);return(0,L.jsxs)(B,{children:[(0,L.jsxs)(O.ZP,{alignItems:"center",children:[(0,L.jsx)(w.ZP,{bold:!0,large:!0,children:"Pipeline run metrics"}),i]}),(0,L.jsx)(P.Z,{mb:2}),(0,L.jsx)(Y.X,{style:{gap:"16px"},children:r.map((function(e,n){var t=(0,o.Z)(e,2),i=t[0],u=t[1];return(0,L.jsxs)(H,{includeLeftBorder:0!==n,children:[(0,L.jsx)(M,{Icon:U.Mj[i],label:U.G7[i]}),(0,z.mr)(Object.entries(u)).map((function(e,n){var t=(0,o.Z)(e,2),r=t[0],i=t[1];return(0,L.jsx)(P.Z,{px:1,children:(0,L.jsxs)(x.Z,{flexDirection:"column",children:[(0,L.jsx)(w.ZP,{children:(0,F.kC)(r)}),(0,L.jsx)(w.ZP,{bold:!0,danger:r===q.V.FAILED&&i>0,title:(0,X.uf)(i),xlarge:!0,children:(0,G.P5)(i,{maxFractionDigits:1,minAmount:1e3})})]})},"".concat(r,"_").concat(n))})),(0,L.jsx)(P.Z,{pr:n!==r.length-1?2:0})]},"".concat(i,"_metric"))}))})]})},Q=t(29241),ee=t(65956),ne=t(55729),te=t(93808),re=t(82359),ie=t(4190),oe=t(67913),ue=t(35686),ce=t(35058),le=t(64657),ae=t(44425),se=t(75399),de=t(23780),pe=t(46684),fe=t(61556),be=t(32929),he=t(17380),me=t(3917),ye=t(50389),ge=t(68899),je=t(24491),ve=t(65458),Oe=t(15610),Ze=t(72619),_e=t(69419),xe=t(89538),Pe=t(70026),we=t(53808);function Ce(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function ke(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?Ce(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):Ce(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var Te={mt:2,mx:3},Ee={refreshInterval:6e4,revalidateOnFocus:!1};function Ie(e){var n,t,r=e.tab,u=(0,a.useRef)(null),c=(0,a.useRef)(!1),d=(0,a.useRef)(null),x=((0,_e.iV)(),(0,s.useRouter)()),C=(0,a.useRef)(null),T=(0,a.useMemo)((function(){return ye.hS}),[]),I=(0,a.useState)(T.find((function(e){var n;return e.uuid===(r||(null===(n=(0,we.U2)(we.Xq))||void 0===n?void 0:n.uuid))}))||ye.xM),D=I[0],N=I[1],S=(0,a.useState)(!1),R=S[0],M=S[1],B=(0,a.useState)(null),H=B[0],Y=B[1],G=null==D?void 0:D.uuid,K=(0,a.useMemo)((function(){return(0,me.jV)(G,{isoString:!0})}),[G]),$=(0,a.useMemo)((function(){return{group_by_pipeline_type:1,start_time:K}}),[K]),te=(0,a.useState)(),Ce=te[0],Ie=te[1],De=(0,l.Db)((function(){var e,n;return null===(e=ue.ZP.monitor_stats)||void 0===e?void 0:e.detailAsync(fe.h.PIPELINE_RUN_COUNT,$,{signal:null==u||null===(n=u.current)||void 0===n?void 0:n.signal})}),{onSuccess:function(e){return(0,Ze.wD)(e,{callback:function(e){var n=e.monitor_stat.stats;Ie(n)}})}}),Ne=(0,o.Z)(De,2),Se=Ne[0],Re=Ne[1].isLoading,Le=(0,a.useCallback)((function(e){var n;null!==(null==u?void 0:u.current)&&(null==u||null===(n=u.current)||void 0===n||n.abort());u.current=new AbortController,N((function(n){var t="function"==typeof e?e(n):e;return(null==n?void 0:n.uuid)!==(null==t?void 0:t.uuid)&&((0,Oe.u)((0,i.Z)({},he.i,null==t?void 0:t.uuid),{replaceParams:!0}),Se()),(0,we.t8)(we.Xq,t),t}))}),[Se]);(0,a.useEffect)((function(){var e;(null!=c&&c.current||(c.current=!0,Se()),r)||(0,Oe.u)((0,i.Z)({},he.i,D?null==D?void 0:D.uuid:null==T||null===(e=T[0])||void 0===e?void 0:e.uuid),{pushHistory:!1})}),[T,Se,D,r]);var Me,Ae=ue.ZP.pipeline_runs.list({_limit:50,include_pipeline_type:1,"order_by[]":"created_at desc",start_timestamp:(0,me.A5)(K),status:q.V.FAILED},ke({},Ee)).data,Be=(0,a.useMemo)((function(){return((null==Ae?void 0:Ae.pipeline_runs)||[]).filter((function(e){return null!==e.pipeline_type}))}),[null==Ae?void 0:Ae.pipeline_runs]),He=(0,a.useMemo)((function(){return(0,z.vM)(Be,(function(e){return e.pipeline_type}))}),[Be]),Ue=He.integration,Ye=void 0===Ue?[]:Ue,qe=He.python,Ve=void 0===qe?[]:qe,Fe=He.streaming,Xe=void 0===Fe?[]:Fe,Ge=(0,a.useMemo)((function(){return(0,me.Y_)(me.yD[G]+1)}),[G]),Je=(0,a.useMemo)((function(){return(0,je.i)(Ce,Ge)}),[Ce,Ge]),ze=Je.pipelineRunCountByPipelineType,Ke=Je.totalPipelineRunCount,$e=Je.ungroupedPipelineRunData,We=(0,a.useMemo)((function(){return(0,me.Ro)(me.yD[G],{endDateOnly:G===me.vk.TODAY})}),[G]),Qe=(Me=function(e){return x.push("/pipelines/[pipeline]/edit","/pipelines/".concat(e,"/edit"))},(0,l.Db)(ue.ZP.pipelines.useCreate(),{onSuccess:function(e){return(0,Ze.wD)(e,{callback:function(e){var n=e.pipeline.uuid;null==Me||Me(n)},onErrorCallback:function(e,n){return Y({errors:n,response:e})}})}})),en=(0,o.Z)(Qe,2),nn=en[0],tn=en[1].isLoading,rn=ue.ZP.projects.list(),on=rn.data,un=rn.mutate,cn=(0,a.useMemo)((function(){var e;return null==on||null===(e=on.projects)||void 0===e?void 0:e[0]}),[on]),ln=(0,a.useMemo)((function(){var e;return(0,J.hY)(null==cn||null===(e=cn.features)||void 0===e?void 0:e[re.d.LOCAL_TIMEZONE])}),[null==cn?void 0:cn.features]),an=(0,xe.dd)((function(e){var n=e.pipelineType;return(0,L.jsx)(j.Z,{onClose:pn,onSave:function(e){var t=e.name,r=e.description,i=e.tags;nn({pipeline:{description:r,name:t,tags:i,type:n}})},pipelineType:n})}),{},[nn],{background:!0,disableEscape:!0,uuid:"overview/create_pipeline"}),sn=(0,o.Z)(an,2),dn=sn[0],pn=sn[1],fn=(0,xe.dd)((function(){return(0,L.jsx)(de.BC,{children:(0,L.jsx)(y.Z,{contained:!0,onClickCustomTemplate:function(e){nn({pipeline:{custom_template_uuid:null==e?void 0:e.template_uuid,name:(0,F.Y6)()}}).then((function(){mn()}))},showBreadcrumbs:!0,tabs:[be.A2]})})}),{},[],{background:!0,uuid:"browse_templates"}),bn=(0,o.Z)(fn,2),hn=bn[0],mn=bn[1],yn=(0,xe.dd)((function(){return(0,L.jsx)(Pe.Z,{onCancel:vn})}),{},[,],{background:!0,uuid:"import_pipeline"}),gn=(0,o.Z)(yn,2),jn=gn[0],vn=gn[1],On=(0,xe.dd)((function(e){var n=e.cancelButtonText,t=(e.header,e.onCancel),r=e.onSaveSuccess;return(0,L.jsx)(de.BC,{children:(0,L.jsx)(ne.Z,{cancelButtonText:n,contained:!0,header:(0,L.jsx)(P.Z,{mb:E.HN,children:(0,L.jsxs)(ee.Z,{children:[(0,L.jsx)(w.ZP,{warning:!0,children:"You need to add an OpenAI API key to your project before you can generate pipelines using AI."}),(0,L.jsx)(P.Z,{mt:1,children:(0,L.jsxs)(w.ZP,{warning:!0,children:["Read"," ",(0,L.jsx)(_.Z,{href:"https://help.openai.com/en/articles/4936850-where-do-i-find-my-secret-api-key",openNewWindow:!0,children:"OpenAI’s documentation"})," ","to get your API key."]})})]})}),onCancel:function(){null==t||t(),xn()},onSaveSuccess:function(e){un(),xn(),null==r||r(e)}})})}),{},[un],{background:!0,uuid:"configure_project"}),Zn=(0,o.Z)(On,2),_n=Zn[0],xn=Zn[1],Pn=(0,xe.dd)((function(){return(0,L.jsx)(de.BC,{children:(0,L.jsx)(f.Z,{createPipeline:nn,isLoading:tn,onClose:kn})})}),{},[nn,tn],{background:!0,disableClickOutside:!0,disableCloseButton:!0,uuid:"AI_modal"}),wn=(0,o.Z)(Pn,2),Cn=wn[0],kn=wn[1],Tn=(0,a.useMemo)((function(){return(0,ve.d)(nn,{showAIModal:function(){null!=cn&&cn.openai_api_key?Cn():_n({onSaveSuccess:function(){Cn()}})},showBrowseTemplates:hn,showCreatePipelineModal:dn,showImportPipelineModal:jn})}),[nn,cn,Cn,hn,_n,dn,jn]),En=(0,a.useMemo)((function(){return(0,L.jsx)(b.Z,{addButtonMenuOpen:R,addButtonMenuRef:C,isLoading:tn,label:"New pipeline",menuItems:Tn,onClick:function(){return M((function(e){return!e}))},onClickCallback:function(){return M(!1)}})}),[R,tn,Tn]),In=(0,a.useMemo)((function(){return ln?(0,L.jsx)(P.Z,{ml:"4px",children:(0,L.jsx)(A.Z,ke(ke({},V.m),{},{label:"Please note that these counts are based on UTC time."}))}):null}),[ln]),Dn=(0,a.useMemo)((function(){var e,n,t,r,o,u,c="Pipelines",l=(0,F.kE)("".concat(c,"_overview_dashboard_").concat((0,F.Lo)())),a="Trigger active status",s=(0,F.kE)("".concat(a,"_overview_dashboard_").concat((0,F.Lo)())),d="Pipeline run status",p=(0,F.kE)("".concat(d,"_overview_dashboard_").concat((0,F.Lo)())),f="Pipeline runs daily",b=(0,F.kE)("".concat(f,"_overview_dashboard_").concat((0,F.Lo)())),h="Completed pipeline runs daily",m=(0,F.kE)("".concat(h,"_overview_dashboard_").concat((0,F.Lo)())),y="Failed pipeline runs daily",g=(0,F.kE)("".concat(y,"_overview_dashboard_").concat((0,F.Lo)())),j="Running pipelines",v=(0,F.kE)("".concat(j,"_overview_dashboard_").concat((0,F.Lo)())),O={type:se.XO.PIPELINE_SCHEDULES},Z={type:se.XO.PIPELINE_RUNS},_={configuration:(e={},(0,i.Z)(e,ce.eN,["execution_date"]),(0,i.Z)(e,ce.bE,[{aggregation:ce.os.COUNT_DISTINCT,column:"id"}]),(0,i.Z)(e,ce.Yg,ce.aE.DAY),(0,i.Z)(e,"chart_type",ce.oV.TIME_SERIES_LINE_CHART),e),data_source:Z,type:ae.tf.CHART};return{blocks:(u={},(0,i.Z)(u,l,{configuration:(n={},(0,i.Z)(n,ce.eN,["type"]),(0,i.Z)(n,ce.bE,[{aggregation:ce.os.COUNT_DISTINCT,column:"uuid"}]),(0,i.Z)(n,ce.$1,ce.MP.DESCENDING),(0,i.Z)(n,"chart_style",ce.JT.HORIZONTAL),(0,i.Z)(n,"chart_type",ce.oV.BAR_CHART),n),data_source:{type:se.XO.PIPELINES},name:c,type:ae.tf.CHART,uuid:l}),(0,i.Z)(u,s,{configuration:(t={},(0,i.Z)(t,ce.eN,["status"]),(0,i.Z)(t,ce.bE,[{aggregation:ce.os.COUNT_DISTINCT,column:"id"}]),(0,i.Z)(t,ce.$1,ce.MP.DESCENDING),(0,i.Z)(t,"chart_type",ce.oV.BAR_CHART),t),data_source:O,name:a,type:ae.tf.CHART,uuid:s}),(0,i.Z)(u,p,{configuration:(r={},(0,i.Z)(r,ce.eN,["status"]),(0,i.Z)(r,ce.bE,[{aggregation:ce.os.COUNT_DISTINCT,column:"id"}]),(0,i.Z)(r,ce.$1,ce.MP.DESCENDING),(0,i.Z)(r,"chart_style",ce.JT.HORIZONTAL),(0,i.Z)(r,"chart_type",ce.oV.BAR_CHART),r),data_source:Z,name:d,type:ae.tf.CHART,uuid:p}),(0,i.Z)(u,b,ke(ke({},_),{},{name:f,uuid:b})),(0,i.Z)(u,m,ke(ke({},_),{},{content:"\n@data_source\ndef d(df):\n return df[df['status'] == '".concat(q.V.COMPLETED,"']\n"),name:h,uuid:m})),(0,i.Z)(u,g,ke(ke({},_),{},{content:"\n@data_source\ndef d(df):\n return df[df['status'] == '".concat(q.V.FAILED,"']\n"),name:y,uuid:g})),(0,i.Z)(u,v,{configuration:(o={},(0,i.Z)(o,ce.eN,["backfill_id","completed_at","created_at","execution_date","executor_type","id","pipeline_schedule_id","pipeline_uuid","started_at","status"]),(0,i.Z)(o,"chart_type",ce.oV.TABLE),o),content:"\n@data_source\ndef d(df):\n return df[df['status'] == '".concat(q.V.RUNNING,"']\n"),data_source:Z,name:j,type:ae.tf.CHART,uuid:v}),u),layout:[[{block_uuid:l,width:1},{block_uuid:s,width:1}],[{block_uuid:p,width:1},{block_uuid:b,width:2}],[{block_uuid:m,width:1},{block_uuid:g,width:1}],[{block_uuid:v,width:1}]]}}),[]);return(0,L.jsxs)(v.Z,{errors:H,setErrors:Y,title:"Overview",uuid:"overview/index",children:[(0,L.jsx)(Q.Z,{backgroundColor:k.Z.background.panel,ref:d,children:(0,L.jsx)(P.Z,{py:2,children:(0,L.jsxs)(O.ZP,{alignItems:"center",children:[(0,L.jsx)(P.Z,{ml:3,children:En}),(0,L.jsx)(g.Z,{onClickTab:function(e){var n=e.uuid;Le((function(){return T.find((function(e){return n===e.uuid}))}))},regularSizeText:!0,selectedTabUUID:G,tabs:T})]})})}),ye.oP.uuid===(null==D?void 0:D.uuid)&&(0,L.jsx)(m.Z,{leftOffset:ge.k1-1,pageBlockLayoutTemplate:Dn,topOffset:pe.Mz+(null==d||null===(n=d.current)||void 0===n||null===(t=n.getBoundingClientRect())||void 0===t?void 0:t.height),uuid:"overview/dashboard"}),ye.oP.uuid!==(null==D?void 0:D.uuid)&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(P.Z,{mx:3,my:2,children:[(0,L.jsxs)(Z.Z,{level:4,children:[G===me.vk.TODAY&&"".concat((0,F.kC)(me.vk.TODAY)," (UTC): ").concat(We),G!==me.vk.TODAY&&"".concat((0,F.kC)(me.s8[G])," (UTC): ").concat(We)]}),(0,L.jsx)(P.Z,{mt:2,children:Re?(0,L.jsx)(P.Z,{mx:2,my:11,children:(0,L.jsx)(ie.Z,{inverted:!0})}):(0,L.jsx)(W,{pipelineRunCountByPipelineType:ze})}),(0,L.jsxs)(P.Z,{mt:2,children:[(0,L.jsx)(P.Z,{ml:2,children:(0,L.jsxs)(O.ZP,{alignItems:"center",children:[(0,L.jsxs)(w.ZP,{bold:!0,large:!0,children:[Re?"--":(0,X.uf)(Ke)," total pipeline runs"]}),In]})}),(0,L.jsx)(P.Z,{mt:1,children:(0,L.jsx)(h.Z,{backgroundColor:k.Z.background.panel,colors:le.NU,data:$e,getXValue:function(e){return e.date},height:200,keys:le.hu,margin:{bottom:30,left:35,right:0,top:10},tooltipLeftOffset:le.CD,xLabelFormat:function(e){return p()(e).format("MMM DD")}})})]})]}),(0,L.jsx)(P.Z,ke(ke({},Te),{},{children:(0,L.jsxs)(O.ZP,{alignItems:"center",justifyContent:"center",children:[(0,L.jsx)(oe.Z,{pipelineRuns:Be,pipelineType:U.LM}),(0,L.jsx)(P.Z,{ml:2}),(0,L.jsx)(oe.Z,{pipelineRuns:Ve,pipelineType:U.qL.PYTHON})]})})),(0,L.jsx)(P.Z,ke(ke({},Te),{},{children:(0,L.jsxs)(O.ZP,{alignItems:"center",justifyContent:"center",children:[(0,L.jsx)(oe.Z,{pipelineRuns:Ye,pipelineType:U.qL.INTEGRATION}),(0,L.jsx)(P.Z,{ml:2}),(0,L.jsx)(oe.Z,{pipelineRuns:Xe,pipelineType:U.qL.STREAMING})]})})),(0,L.jsx)(P.Z,{mb:2})]})]})}Ie.getInitialProps=function(){var e=(0,r.Z)(c().mark((function e(n){var t,r;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{tab:null!=n&&null!==(t=n.query)&&void 0!==t&&t.tab?null==n||null===(r=n.query)||void 0===r?void 0:r.tab:null});case 1:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}();var De=(0,te.Z)(Ie)},56655:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/overview",function(){return t(95660)}])}},function(e){e.O(0,[3662,125,2714,1799,140,2996,449,8095,4241,4168,8023,523,6065,5831,3548,5627,6362,9774,2888,179],(function(){return n=56655,e(e.s=n);var n}));var n=e.O();_N_E=n}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8170],{81334:function(e,n,t){"use strict";t.d(n,{Z:function(){return w}});var r=t(82394),i=t(82684),o=t(27277),u=t(31882),l=t(38276),c=t(48381),s=t(30160),a=t(17488),d=t(9518),p=t(44897),f=t(42631),g=t(47041),v=t(70515),h=d.default.div.withConfig({displayName:"indexstyle__DropdownStyle",componentId:"sc-suwkha-0"})([""," border-radius:","px;max-height:","px;overflow:auto;position:absolute;width:100%;z-index:1;"," ",""],g.w5,f.BG,40*v.iI,(function(e){return"\n background-color: ".concat((e.theme.background||p.Z.background).popup,";\n box-shadow: ").concat((e.theme.shadow||p.Z.shadow).popup,";\n ")}),(function(e){return e.topOffset&&"\n top: ".concat(e.topOffset-.5*v.iI,"px;\n ")})),m=d.default.div.withConfig({displayName:"indexstyle__RowStyle",componentId:"sc-suwkha-1"})(["padding:","px;position:relative;z-index:2;&:hover{cursor:pointer;}",""],.5*v.iI,(function(e){return e.highlighted&&"\n background-color: ".concat((e.theme.interactive||p.Z.interactive).hoverBackground,";\n ")})),_=t(39643),y=t(95924),b=t(86735),j=t(44688),x=t(28598);function O(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function Z(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?O(Object(t),!0).forEach((function(n){(0,r.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):O(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var w=function(e){var n,t=e.removeTag,r=e.selectTag,d=e.selectedTags,p=void 0===d?[]:d,f=e.tags,g=void 0===f?[]:f,v=e.uuid,O=(0,i.useRef)(null),w=(0,i.useState)(!1),P=w[0],k=w[1],C=(0,i.useState)(null),S=C[0],E=C[1],N=(0,i.useMemo)((function(){return(0,b.YC)(g||[],"uuid")}),[g]),T=(0,i.useMemo)((function(){return null==N?void 0:N.map((function(e){return{itemObject:e,searchQueries:[e.uuid],value:e.uuid}}))}),[N]),D=(0,i.useMemo)((function(){return(null==S?void 0:S.length)>=1?T.concat({itemObject:{uuid:S},searchQueries:[S],value:"Add tag: ".concat(S)}):T}),[T,S]),I=(0,j.y)(),R=I.registerOnKeyDown,M=I.unregisterOnKeyDown;return(0,i.useEffect)((function(){return function(){return M(v)}}),[M,v]),null==R||R(v,(function(e,n){var t;P&&n[_.vP]&&(k(!1),null==O||null===(t=O.current)||void 0===t||t.blur())}),[P,O]),(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(c.Z,{onClickTag:t,tags:p}),(0,x.jsxs)(l.Z,{mt:1,style:{position:"relative"},children:[(0,x.jsx)(a.Z,{onBlur:function(){return setTimeout((function(){return k(!1)}),150)},onChange:function(e){return E(e.target.value)},onFocus:function(){return k(!0)},ref:O,value:S||""}),(0,x.jsx)(h,{topOffset:null==O||null===(n=O.current)||void 0===n?void 0:n.getBoundingClientRect().height,children:(0,x.jsx)(o.Z,{eventProperties:{eventParameters:{item_type:"tag"}},itemGroups:[{items:P?D:[],renderItem:function(e,n){var t=e.value;return(0,x.jsx)(m,Z(Z({},n),{},{onClick:function(e){var t;(0,y.j)(e),null==n||null===(t=n.onClick)||void 0===t||t.call(n,e)},children:(0,x.jsx)(u.Z,{small:!0,children:(0,x.jsx)(s.ZP,{children:t})})}))}}],onSelectItem:function(e){var n=e.itemObject;null==r||r(n),E(null)},searchQuery:S,uuid:v})})]})]})}},68781:function(e,n,t){"use strict";var r;t.d(n,{R:function(){return i}}),function(e){e.AZURE_CONTAINER_INSTANCE="azure_container_instance",e.ECS="ecs",e.GCP_CLOUD_RUN="gcp_cloud_run",e.K8S="k8s",e.LOCAL_PYTHON="local_python",e.PYSPARK="pyspark"}(r||(r={}));var i=[r.AZURE_CONTAINER_INSTANCE,r.ECS,r.GCP_CLOUD_RUN,r.K8S,r.LOCAL_PYTHON,r.PYSPARK]},37003:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return B}});var r=t(77837),i=t(75582),o=t(82394),u=t(38860),l=t.n(u),c=t(82684),s=t(34376),a=t(75457),d=t(93808),p=t(71180),f=t(70652),g=t(55485),v=t(85854),h=t(48670),m=t(57653),_=t(44085),y=t(88543),b=t(38276),j=t(81334),x=t(30160),O=t(17488),Z=t(35686),w=t(98464),P=t(77417),k=t(68781),C=t(78419),S=t(70515),E=t(53808),N=t(42122),T=t(81728),D=t(86735),I=t(28598);function R(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function M(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?R(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):R(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var A=function(e){var n,t,r,i,u,l,s,a,d,R,A,F,U=e.isPipelineUpdating,H=e.pipeline,L=e.updatePipeline,G=(0,P.Z)().project,K=(0,c.useRef)(null),B=(0,c.useRef)(null),Y=null==H?void 0:H.uuid,z=(0,c.useMemo)((function(){return(null==H?void 0:H.blocks)||[]}),[H]),W=(0,c.useState)(!1),Q=W[0],X=W[1],q=(0,c.useState)(!1),J=q[0],$=q[1],V=(0,c.useState)(null),ee=V[0],ne=V[1],te=(0,w.Z)(H);(0,c.useEffect)((function(){(0,N.Xy)(H,te)||ne(H)}),[H,te]);var re=(0,c.useCallback)((function(e){X(!0),ne(e)}),[]),ie="".concat(C.g6,"_").concat(Y),oe=(0,c.useState)({}),ue=oe[0],le=oe[1],ce="".concat(C.vF,"_").concat(Y),se=(0,c.useState)(!1),ae=se[0],de=se[1],pe=(0,c.useCallback)((function(e){le((function(n){var t=e(n);return(0,E.t8)(ie,JSON.stringify(t)),t}))}),[ie,le]),fe=(0,c.useCallback)((function(e){de((function(n){var t=e(n);return(0,E.t8)(ce,t),t}))}),[ce,de]);(0,c.useEffect)((function(){var e=(0,E.U2)(ie);e&&(0,T.Pb)(e)&&le(JSON.parse(e))}),[ie,le]),(0,c.useEffect)((function(){var e=(0,E.U2)(ce);e&&de(e)}),[ce,de]);var ge=(0,c.useMemo)((function(){return null==ee?void 0:ee.executor_type}),[ee]);(0,c.useEffect)((function(){J||!ge||k.R.find((function(e){return e===ge}))||$(!0)}),[J,ge]);var ve=(0,c.useMemo)((function(){return(null==z?void 0:z.filter((function(e){var n=e.uuid;return!(null==ue||!ue[n])}))).length===z.length}),[z,ue]),he=(0,c.useMemo)((function(){return!(null!=z&&z.length)}),[z]),me=(0,c.useMemo)((function(){return(null==ee?void 0:ee.tags)||[]}),[ee]),_e=Z.ZP.tags.list().data,ye=(0,c.useMemo)((function(){return((null==_e?void 0:_e.tags)||[]).filter((function(e){var n=e.uuid;return!me.includes(n)}))}),[_e,me]),be=(0,c.useMemo)((function(){var e;return null==G||null===(e=G.pipelines)||void 0===e?void 0:e.settings}),[G]),je=(0,c.useMemo)((function(){var e,n,t;return(null==be||null===(e=be.triggers)||void 0===e?void 0:e.save_in_code_automatically)&&void 0===(null==ee||null===(n=ee.settings)||void 0===n||null===(t=n.triggers)||void 0===t?void 0:t.save_in_code_automatically)}),[ee,be]);return(0,I.jsxs)(b.Z,{p:S.cd,children:[(0,I.jsxs)(y.Z,{title:"Details",children:[(0,I.jsx)(y.S,{invalid:Q&&!(null!=ee&&ee.name),textInput:{onChange:function(e){return re((function(n){return M(M({},n),{},{name:e.target.value})}))},value:null==ee?void 0:ee.name},title:"Pipeline name"}),(0,I.jsx)(y.S,{textInput:{onChange:function(e){return re((function(n){return M(M({},n),{},{description:e.target.value})}))},placeholder:"Enter description...",value:(null==ee?void 0:ee.description)||""},title:"Pipeline description"}),(0,I.jsx)(y.S,{description:"When enabled, this setting allows sharing of objects and memory space across blocks within a single pipeline.",title:"Run pipeline in a single process",toggleSwitch:{checked:!(null==ee||!ee.run_pipeline_in_one_process),onCheck:function(e){return re((function(n){return M(M({},n),{},{run_pipeline_in_one_process:e(null==n?void 0:n.run_pipeline_in_one_process)})}))}}}),(0,I.jsx)(y.S,{description:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(x.ZP,{muted:!0,small:!0,children:"Every time a trigger is created or updated in this pipeline, it’ll be automatically be persisted it in code."}),(null==be||null===(n=be.triggers)||void 0===n?void 0:n.save_in_code_automatically)&&(0,I.jsx)(x.ZP,{small:!0,warning:!0,children:"This settings is enabled at the project level. Changing the value here will only affect this pipeline."})]}),title:"Save triggers in code automatically",toggleSwitch:{checked:je||!(null==ee||null===(t=ee.settings)||void 0===t||null===(r=t.triggers)||void 0===r||!r.save_in_code_automatically),onCheck:function(e){return re((function(n){var t,r,i;return M(M({},n),{},{settings:M(M({},null==n?void 0:n.settings),{},{triggers:M(M({},null==n||null===(t=n.settings)||void 0===t?void 0:t.triggers),{},{save_in_code_automatically:e(je||(null==n||null===(r=n.settings)||void 0===r||null===(i=r.triggers)||void 0===i?void 0:i.save_in_code_automatically))})})})}))}}})]}),(0,I.jsx)(b.Z,{mt:S.HN,children:(0,I.jsxs)(y.Z,{title:"Pipeline level concurrency",children:[(0,I.jsx)(y.S,{description:(0,I.jsx)(I.Fragment,{children:(0,I.jsx)(x.ZP,{muted:!0,small:!0,children:"Limit the concurrent pipeline runs across all trigers in this pipeline."})}),textInput:{monospace:!0,onChange:function(e){return re((function(n){return M(M({},n),{},{concurrency_config:M(M({},null==n?void 0:n.concurrency_config),{},{pipeline_run_limit_all_triggers:Number(e.target.value)})})}))},placeholder:"e.g. 40",type:"number",value:String((null==ee||null===(i=ee.concurrency_config)||void 0===i?void 0:i.pipeline_run_limit_all_triggers)||"")},title:"Pipeline run limit across all triggers"}),(0,I.jsx)(y.S,{description:(0,I.jsx)(I.Fragment,{children:(0,I.jsx)(x.ZP,{muted:!0,small:!0,children:"Limit the concurrent pipeline runs in a single trigger for this pipeline."})}),textInput:{monospace:!0,onChange:function(e){return re((function(n){return M(M({},n),{},{concurrency_config:M(M({},null==n?void 0:n.concurrency_config),{},{pipeline_run_limit:Number(e.target.value)})})}))},placeholder:"e.g. 10",type:"number",value:String((null==ee||null===(u=ee.concurrency_config)||void 0===u?void 0:u.pipeline_run_limit)||"")},title:"Pipeline run limit in 1 trigger"}),(0,I.jsx)(y.S,{description:(0,I.jsx)(I.Fragment,{children:(0,I.jsx)(x.ZP,{muted:!0,small:!0,children:"Limit the concurrent blocks runs in one pipeline run."})}),textInput:{monospace:!0,onChange:function(e){return re((function(n){return M(M({},n),{},{concurrency_config:M(M({},null==n?void 0:n.concurrency_config),{},{block_run_limit:Number(e.target.value)})})}))},placeholder:"e.g. 20",type:"number",value:String((null==ee||null===(l=ee.concurrency_config)||void 0===l?void 0:l.block_run_limit)||"")},title:"Block run limit"}),(0,I.jsx)(y.S,{description:(0,I.jsx)(I.Fragment,{children:(0,I.jsx)(x.ZP,{muted:!0,small:!0,children:"Choose whether to wait or skip when the pipeline run limit is reached."})}),selectInput:{onChange:function(e){return re((function(n){return M(M({},n),{},{concurrency_config:M(M({},null==n?void 0:n.concurrency_config),{},{on_pipeline_run_limit_reached:e.target.value})})}))},options:null===(s=Object.values(m.pF))||void 0===s?void 0:s.map((function(e){return{label:(0,T.kC)(e),value:e}})),placeholder:"Select an option",value:(null==ee||null===(a=ee.concurrency_config)||void 0===a?void 0:a.on_pipeline_run_limit_reached)||""},title:"How to handle new pipeline runs when limit reached"})]})}),(0,I.jsxs)(b.Z,{mt:S.HN,children:[(0,I.jsx)(v.Z,{children:"Executor type"}),(0,I.jsxs)(x.ZP,{muted:!0,children:["For more information on this setting, please read the ",(0,I.jsx)(h.Z,{href:"https://docs.mage.ai/production/configuring-production-settings/compute-resource#2-set-executor-type-and-customize-the-compute-resource-of-the-mage-executor",openNewWindow:!0,children:"documentation"}),"."]}),(0,I.jsxs)(b.Z,{mt:1,children:[!J&&(0,I.jsx)(_.Z,{label:"Executor type",onChange:function(e){return re((function(n){return M(M({},n),{},{executor_type:e.target.value})}))},primary:!0,ref:K,value:(null==ee?void 0:ee.executor_type)||"",children:k.R.map((function(e){return(0,I.jsx)("option",{value:e,children:e},e)}))}),J&&(0,I.jsx)(O.Z,{label:"Executor type",monospace:!0,onChange:function(e){return re((function(n){return M(M({},n),{},{executor_type:e.target.value})}))},ref:B,setContentOnMount:!0,value:(null==ee?void 0:ee.executor_type)||""}),(0,I.jsx)(b.Z,{mt:1,children:(0,I.jsx)(h.Z,{muted:!0,onClick:function(){J?(re((function(e){return M(M({},e),{},{executor_type:null==H?void 0:H.executor_type})})),setTimeout((function(){var e;return null==K||null===(e=K.current)||void 0===e?void 0:e.focus()}),1)):setTimeout((function(){var e;return null==B||null===(e=B.current)||void 0===e?void 0:e.focus()}),1),$(!J)},preventDefault:!0,small:!0,children:J?"Select a preset executor type":"Enter a custom executor type"})})]})]}),(0,I.jsxs)(b.Z,{mt:S.HN,children:[(0,I.jsx)(v.Z,{children:"Retry configuration"}),(0,I.jsxs)(x.ZP,{muted:!0,children:["For more information on this setting, please read the ",(0,I.jsx)(h.Z,{href:"https://docs.mage.ai/orchestration/pipeline-runs/retrying-block-runs",openNewWindow:!0,children:"documentation"}),"."]}),(0,I.jsx)(b.Z,{mt:1,children:(0,I.jsxs)(g.ZP,{children:[(0,I.jsx)(O.Z,{label:"Retries",monospace:!0,onChange:function(e){return re((function(n){return M(M({},n),{},{retry_config:M(M({},null==n?void 0:n.retry_config),{},{retries:void 0!==e.target.value&&null!==e.target.value?Number(e.target.value):e.target.value})})}))},setContentOnMount:!0,type:"number",value:(null==ee||null===(d=ee.retry_config)||void 0===d?void 0:d.retries)||""}),(0,I.jsx)(b.Z,{mr:1}),(0,I.jsx)(O.Z,{label:"Delay",monospace:!0,onChange:function(e){return re((function(n){return M(M({},n),{},{retry_config:M(M({},null==n?void 0:n.retry_config),{},{delay:void 0!==e.target.value&&null!==e.target.value?Number(e.target.value):e.target.value})})}))},setContentOnMount:!0,type:"number",value:(null==ee||null===(R=ee.retry_config)||void 0===R?void 0:R.delay)||""}),(0,I.jsx)(b.Z,{mr:1}),(0,I.jsx)(O.Z,{label:"Max delay",monospace:!0,onChange:function(e){return re((function(n){return M(M({},n),{},{retry_config:M(M({},null==n?void 0:n.retry_config),{},{max_delay:void 0!==e.target.value&&null!==e.target.value?Number(e.target.value):e.target.value})})}))},setContentOnMount:!0,type:"number",value:(null==ee||null===(A=ee.retry_config)||void 0===A?void 0:A.max_delay)||""}),(0,I.jsx)(b.Z,{mr:1}),(0,I.jsx)(f.Z,{checked:!(null==ee||null===(F=ee.retry_config)||void 0===F||!F.exponential_backoff),label:"Exponential backoff",onClick:function(){return re((function(e){var n;return M(M({},e),{},{retry_config:M(M({},null==e?void 0:e.retry_config),{},{exponential_backoff:!(null!=e&&null!==(n=e.retry_config)&&void 0!==n&&n.exponential_backoff)})})}))}})]})})]}),(0,I.jsxs)(b.Z,{mt:S.HN,children:[(0,I.jsx)(v.Z,{children:"Tags"}),(0,I.jsx)(b.Z,{mt:1,children:(0,I.jsx)(j.Z,{removeTag:function(e){re((function(n){return M(M({},n),{},{tags:me.filter((function(n){return n!==e.uuid}))})}))},selectTag:function(e){re((function(n){return M(M({},n),{},{tags:(0,D.$C)(e.uuid,me,(function(n){return n===e.uuid}))})}))},selectedTags:null==me?void 0:me.map((function(e){return{uuid:e}})),tags:ye,uuid:"TagsAutocompleteInputField-".concat(null==H?void 0:H.uuid)})})]}),(0,I.jsx)(b.Z,{mt:S.HN,children:(0,I.jsx)(g.ZP,{children:(0,I.jsx)(p.ZP,{disabled:!Q,loading:U,onClick:function(){return L({concurrency_config:null==ee?void 0:ee.concurrency_config,description:null==ee?void 0:ee.description,executor_type:null==ee?void 0:ee.executor_type,name:null==ee?void 0:ee.name,retry_config:null==ee?void 0:ee.retry_config,run_pipeline_in_one_process:null==ee?void 0:ee.run_pipeline_in_one_process,settings:null==ee?void 0:ee.settings,tags:null==ee?void 0:ee.tags}).then((function(){return X(!1)}))},primary:!0,children:"Save pipeline settings"})})}),(0,I.jsx)(b.Z,{mt:S.HN,children:(0,I.jsx)(f.Z,{checked:ve&&!he,disabled:he,label:"Hide all blocks in notebook",onClick:function(){return pe((function(){return ve?{}:null==z?void 0:z.reduce((function(e,n){var t=n.uuid;return M(M({},e),{},(0,o.Z)({},t,!0))}),{})}))}})}),(0,I.jsx)(b.Z,{mt:S.Mq,children:(0,I.jsx)(f.Z,{checked:ae,label:"When running a block while editing a pipeline, output the block messages to the logs",onClick:function(){return fe((function(e){return!e}))}})})]})},F=t(28795),U=t(83455),H=t(72619);function L(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function G(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?L(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):L(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function K(e){var n=e.pipeline,t=(0,s.useRouter)(),r=(0,c.useState)(null),o=r[0],u=r[1],l=null==n?void 0:n.uuid,d=Z.ZP.pipelines.detail(l).data,p=G(G({},null==d?void 0:d.pipeline),n),f=(0,U.Db)(Z.ZP.pipelines.useUpdate(l,{update_content:!0}),{onSuccess:function(e){return(0,H.wD)(e,{callback:function(e){if(null!=e&&e.pipeline){var n=e.pipeline.uuid;l!==n&&(window.location.href="".concat(null==t?void 0:t.basePath,"/pipelines/").concat(n,"/settings"))}},onErrorCallback:function(e,n){return u({errors:n,response:e})}})}}),g=(0,i.Z)(f,2),v=g[0],h=g[1].isLoading;return(0,I.jsx)(a.Z,{breadcrumbs:[{label:function(){return"Settings"}}],errors:o,pageName:F.M.SETTINGS,pipeline:p,setErrors:u,title:function(e){var n=e.name;return"".concat(n," settings")},uuid:"".concat(F.M.SETTINGS,"_").concat(l),children:p&&(0,I.jsx)(A,{isPipelineUpdating:h,pipeline:p,updatePipeline:function(e){return v({pipeline:e})}})})}K.getInitialProps=function(){var e=(0,r.Z)(l().mark((function e(n){var t;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.query.pipeline,e.abrupt("return",{pipeline:{uuid:t}});case 2:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}();var B=(0,d.Z)(K)},59606:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/pipelines/[pipeline]/settings",function(){return t(37003)}])},80022:function(e,n,t){"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}t.d(n,{Z:function(){return r}})},15544:function(e,n,t){"use strict";function r(e){return r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},r(e)}t.d(n,{Z:function(){return r}})},13692:function(e,n,t){"use strict";t.d(n,{Z:function(){return i}});var r=t(61049);function i(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),n&&(0,r.Z)(e,n)}},93189:function(e,n,t){"use strict";t.d(n,{Z:function(){return o}});var r=t(12539),i=t(80022);function o(e,n){if(n&&("object"===r(n)||"function"==typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return(0,i.Z)(e)}}},function(e){e.O(0,[449,3782,9774,2888,179],(function(){return n=59606,e(e.s=n);var n}));var n=e.O();_N_E=n}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1221],{8666:function(e,n,i){"use strict";var t;i.d(n,{b:function(){return t}}),function(e){e.BLOCK="block",e.PIPELINE="pipeline"}(t||(t={}))},55620:function(e,n,i){"use strict";i.r(n),i.d(n,{default:function(){return De}});var t=i(77837),u=i(75582),r=i(21831),l=i(82394),o=i(38860),c=i.n(o),s=i(12691),a=i.n(s),d=i(82684),p=i(83455),f=i(34376),v=i(52749),h=i(60523),m=i(71180),b=i(90299),g=i(31882),j=i(76111),Z=i(94629),C=i(97618),_=i(55485),x=i(68562),P=i(65956),I=i(38276),k=i(30160),T=i(35576),y=i(17488),w=i(28598);var S=function(e){var n=e.description,i=e.isLoading,t=e.maxWidth,u=e.minWidth,r=e.noEmptyValue,l=e.onClose,o=e.onSave,c=e.textArea,s=e.title,a=e.value,p=(0,d.useRef)(null),f=(0,d.useState)(a),v=f[0],h=f[1],b=c?T.Z:y.Z;return(0,d.useEffect)((function(){var e;null==p||null===(e=p.current)||void 0===e||e.focus()}),[]),(0,w.jsxs)(P.Z,{maxWidth:t,minWidth:u,children:[(0,w.jsx)(k.ZP,{bold:!0,children:s}),(0,w.jsx)(I.Z,{mt:1,children:(0,w.jsx)(b,{monospace:!0,onChange:function(e){return h(e.target.value)},ref:p,rows:c?7:null,value:v})}),n&&(0,w.jsx)(I.Z,{mt:2,children:(0,w.jsx)(k.ZP,{muted:!0,small:!0,children:n})}),(0,w.jsx)(I.Z,{mt:3,children:(0,w.jsxs)(_.ZP,{children:[(0,w.jsx)(x.ZP,{bold:!0,inline:!0,loading:i,onClick:function(){v===a||r&&!v?l():o(v)},outline:!0,primary:!0,uuid:"Inputs/InputModal/SaveInput",children:"Save"}),(0,w.jsx)(I.Z,{ml:1}),(0,w.jsx)(m.ZP,{onClick:l,children:"Cancel"})]})})]})},O=i(48670),E=i(55072),A=i(57653),D=i(55729),M=i(93808),R=i(82359),G=i(44085),$=i(4190),U=i(75499),L=i(48381),N=i(85544),B=i(70026),H=i(35686),F=i(44897),Y=i(77417),Q=i(42631),z=i(44425),V=i(72473),q=i(23780),W=i(8666),K=i(46684),X=i(53808),J="pipeline_list_filters",ee="pipeline_list_group_bys",ne="pipeline_list_sort_column_index",ie="pipeline_list_sort_direction",te="pipeline_list_selected_tab_uuid";function ue(e){return(0,X.t8)(J,e),e}function re(e){return(0,X.t8)(ee,e),e}var le=i(11498),oe=i(32929),ce=i(44898),se=i(70515),ae=i(30229),de=i(81655),pe=i(31608),fe=i(81728),ve=i(3917),he=i(72619),me=i(69419),be=i(65458),ge=i(15610),je=i(42122),Ze=i(95924),Ce=i(86735),_e=i(70320),xe=i(89538),Pe=i(44952);function Ie(e,n){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),i.push.apply(i,t)}return i}function ke(e){for(var n=1;n<arguments.length;n++){var i=null!=arguments[n]?arguments[n]:{};n%2?Ie(Object(i),!0).forEach((function(n){(0,l.Z)(e,n,i[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):Ie(Object(i)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(i,n))}))}return e}var Te={Icon:V.Schedule,label:function(){return"Recently viewed"},uuid:"recent"},ye={Icon:V.PipelineV3,label:function(e){return null!=e&&e.count?"All pipelines › ".concat((null==e?void 0:e.count)||0):"All pipelines"},uuid:"all"},we=[ye,Te],Se="tab",Oe=[A.$1.SEARCH],Ee={borderRadius:"".concat(Q.BG,"px"),iconOnly:!0,noBackground:!0,noBorder:!0,outline:!0,padding:"4px"};function Ae(){var e,n=(0,f.useRouter)(),i=(0,d.useRef)(null),t=(0,d.useRef)(null),o=(0,d.useRef)(null),c=(0,d.useRef)(null),s=(0,Y.Z)(),x=s.fetchProjects,T=s.project,y=(0,d.useState)(null),M=y[0],Q=y[1],Ie=(0,d.useState)(null),Ae=Ie[0],De=Ie[1],Me=(0,d.useState)(null),Re=Me[0],Ge=Me[1],$e=(0,d.useCallback)((function(e){Ge(e),clearTimeout(c.current),c.current=setTimeout((function(){var n;return(0,ge.u)((n={},(0,l.Z)(n,le.$D.OFFSET,0),(0,l.Z)(n,A.$1.SEARCH,e),n))}),500)}),[Ge]),Ue=(0,d.useState)({}),Le=Ue[0],Ne=Ue[1],Be=(0,d.useState)(null),He=Be[0],Fe=Be[1],Ye=(0,me.iV)(),Qe=ke({},(0,me.DQ)(Ye,[A.$1.SEARCH,A.$1.STATUS,A.$1.TAG,A.$1.TYPE].concat((0,r.Z)(le.RG)))),ze=(0,d.useMemo)((function(){return null==Ye?void 0:Ye[Se]}),[Ye]);(0,d.useEffect)((function(){var e;Q(null==i||null===(e=i.current)||void 0===e?void 0:e.getBoundingClientRect().height)}),[Ye,i]);var Ve=(0,d.useMemo)((function(){var e;return(0,_e.hY)(null==T||null===(e=T.features)||void 0===e?void 0:e[R.d.LOCAL_TIMEZONE])}),[null==T?void 0:T.features]),qe=(0,d.useMemo)((function(){var e;return null==T||null===(e=T.features)||void 0===e?void 0:e[R.d.OPERATION_HISTORY]}),[T]),We=(0,d.useMemo)((function(){return Ve?de.O$:{}}),[Ve]),Ke=H.ZP.pipelines.list(ke(ke({},Qe),{},{include_schedules:1}),{revalidateOnFocus:!1}),Xe=Ke.data,Je=Ke.mutate,en=(0,d.useMemo)((function(){return(null==Ye?void 0:Ye[A.$1.HISTORY_DAYS])||7}),[Ye]),nn=H.ZP.pipelines.list(ke(ke({},Qe),{},(e={},(0,l.Z)(e,A.$1.HISTORY_DAYS,(0,fe.HW)(en)?Number(en):en),(0,l.Z)(e,"include_schedules",1),e)),{},{pauseFetch:!qe||!ze||Te.uuid!==ze}),tn=nn.data,un=nn.mutate,rn=(0,d.useCallback)((function(e){return e}),[]),ln=(0,d.useMemo)((function(){var e=rn((null==Xe?void 0:Xe.pipelines)||[]);if(null!=Ye&&Ye[A.$1.TAG]){var n=Ye[A.$1.TAG];e=e.filter((function(e){var i=e.tags;return i.some((function(e){return n.includes(e)}))||0===i.length&&n.includes(A.$1.NO_TAGS)}))}return e}),[Xe,rn,Ye]),on=(0,d.useMemo)((function(){return rn((null==tn?void 0:tn.pipelines)||[])}),[tn,rn]),cn=(0,d.useMemo)((function(){return[1,2,3,4,5,6,8,9]}),[]),sn=null==Ye?void 0:Ye[de.lG.SORT_COL_IDX],an=null==Ye?void 0:Ye[de.lG.SORT_DIRECTION],dn=(0,d.useMemo)((function(){return sn?{columnIndex:+sn,sortDirection:an||de.sh.ASC}:void 0}),[sn,an]),pn=null==Ye?void 0:Ye[A.$1.GROUP],fn=(0,p.Db)((function(e){var n=e.pipelineUUID,i=e.filesOnly,t=void 0!==i&&i;return H.ZP.downloads.pipelines.useCreate(n)({download:{ignore_folder_structure:t}})}),{onSuccess:function(e){return(0,he.wD)(e,{callback:function(){var n=e.data.download.token;(0,Pe.K)(n)},onErrorCallback:function(e,n){return Fe({errors:n,response:e})}})}}),vn=(0,u.Z)(fn,1)[0];(0,d.useEffect)((function(){null!=Qe&&Qe[A.$1.SEARCH]&&null===Re&&Ge(null==Qe?void 0:Qe[A.$1.SEARCH])}),[Qe,Re,Ge]),(0,d.useEffect)((function(){var e,n={};if(!sn){var i=(0,X.U2)(ne,null),t=(0,X.U2)(ie,de.sh.ASC);null!==i&&(n[de.lG.SORT_COL_IDX]=i,n[de.lG.SORT_DIRECTION]=t)}qe&&(ze?(0,X.t8)(te,ze):n[Se]=(0,X.U2)(te,null==we||null===(e=we[0])||void 0===e?void 0:e.uuid));if(pn)re((0,l.Z)({},pn,!0));else{var r,o=(0,X.U2)(ee,{});o&&Object.entries(o).forEach((function(e){var n=(0,u.Z)(e,2),i=n[0],t=n[1];!r&&t&&(r=i)})),r&&(n[A.$1.GROUP]=r)}if((0,je.Qr)(Qe)){var c=(0,l.Z)({},le.$D.LIMIT,E.Q),s=(0,X.U2)(J,{});s&&Object.entries(s).forEach((function(e){var n=(0,u.Z)(e,2),i=n[0],t=n[1];null!=t&&(le.RG.includes(i)||Oe.includes(i)?c[i]=t:(c[i]=[],Object.entries(t).forEach((function(e){var n=(0,u.Z)(e,2),t=n[0];n[1]&&c[i].push(t)}))))})),(0,je.Qr)(c)||(n={},Object.entries(ke(ke({},n),c)||{}).forEach((function(e){var i=(0,u.Z)(e,2),t=i[0],r=i[1];null!=r&&(n[t]=r)})))}else{var a={};Object.entries(Qe).forEach((function(e){var n=(0,u.Z)(e,2),i=n[0],t=n[1];a[i]={};var r,l=t;null!=t&&(le.RG.includes(i)||Oe.includes(i)?a[i]=l:(Array.isArray(l)||(l=[l]),l&&Array.isArray(l)&&(null===(r=l)||void 0===r||r.forEach((function(e){a[i][e]=!0})))))})),ue((0,je.hB)(a))}(0,je.Qr)(n)||(0,ge.u)((0,je.hB)(n),{pushHistory:!1})}),[pn,qe,Qe,ze,cn,sn,an]),(0,d.useEffect)((function(){(0,he.bB)(Xe,Fe)}),[Xe]);var hn=function(e){return(0,p.Db)(H.ZP.pipelines.useCreate(),{onSuccess:function(n){return(0,he.wD)(n,{callback:function(n){var i=n.pipeline.uuid;null==e||e(i)},onErrorCallback:function(e,n){return Fe({errors:n,response:e})}})}})},mn=hn((function(e){return n.push("/pipelines/[pipeline]/edit","/pipelines/".concat(e,"/edit"))})),bn=(0,u.Z)(mn,2),gn=bn[0],jn=bn[1].isLoading,Zn=hn((function(){null==Je||Je(),null==un||un()})),Cn=(0,u.Z)(Zn,2),_n=Cn[0],xn=Cn[1].isLoading,Pn=(0,p.Db)((function(e){return H.ZP.pipelines.useUpdate(e.uuid)({pipeline:e})}),{onSuccess:function(e){return(0,he.wD)(e,{callback:function(e){var n=e.pipeline.uuid;Ne((function(e){return ke(ke({},e),{},(0,l.Z)({},n,!1))})),Je(),null==un||un(),null==Un||Un(),De(null)},onErrorCallback:function(e,n){var i,t=null==e||null===(i=e.url_parameters)||void 0===i?void 0:i.pk;Ne((function(e){return ke(ke({},e),{},(0,l.Z)({},t,!1))})),Fe({errors:n,response:e})}})}}),In=(0,u.Z)(Pn,2),kn=In[0],Tn=In[1].isLoading,yn=(0,p.Db)((function(e){return H.ZP.pipelines.useDelete(e)()}),{onSuccess:function(e){return(0,he.wD)(e,{callback:function(){null==Je||Je(),null==un||un()},onErrorCallback:function(e,n){return Fe({errors:n,response:e})}})}}),wn=(0,u.Z)(yn,2),Sn=wn[0],On=wn[1].isLoading,En=(0,xe.dd)((function(e){var n=e.pipelineType;return(0,w.jsx)(j.Z,{onClose:Mn,onSave:function(e){var i=e.name,t=e.description,u=e.tags;gn({pipeline:{description:t,name:i,tags:u,type:n}})},pipelineType:n})}),{},[gn],{background:!0,disableEscape:!0,uuid:"overview/create_pipeline"}),An=(0,u.Z)(En,2),Dn=An[0],Mn=An[1],Rn=(0,xe.dd)((function(e){var n=e.pipeline,i=e.pipelineDescription,t=e.pipelineName;return(0,w.jsx)(S,{isLoading:Tn,minWidth:55*se.iI,noEmptyValue:!!t,onClose:Un,onSave:function(e){var i=n||Ae;if(i){var u=i.uuid,r={uuid:u};t?r.name=e:r.description=e,Ne((function(e){return ke(ke({},e),{},(0,l.Z)({},u,!0))})),kn(r)}},textArea:!t,title:t?"Rename pipeline":"Edit description for ".concat(null==n?void 0:n.uuid),value:t||i})}),{},[Tn,Ae],{background:!0,uuid:"rename_pipeline_and_save"}),Gn=(0,u.Z)(Rn,2),$n=Gn[0],Un=Gn[1],Ln=(0,xe.dd)((function(){return(0,w.jsx)(B.Z,{fetchPipelines:Je,onCancel:Hn})}),{},[Je],{background:!0,uuid:"upload_pipeline"}),Nn=(0,u.Z)(Ln,2),Bn=Nn[0],Hn=Nn[1],Fn=(0,xe.dd)((function(){return(0,w.jsx)(q.BC,{children:(0,w.jsx)(h.Z,{contained:!0,onClickCustomTemplate:function(e){gn({pipeline:{custom_template_uuid:null==e?void 0:e.template_uuid,name:(0,fe.Y6)()}}).then((function(){zn()}))},showBreadcrumbs:!0,tabs:[oe.A2]})})}),{},[gn],{background:!0,uuid:"browse_templates"}),Yn=(0,u.Z)(Fn,2),Qn=Yn[0],zn=Yn[1],Vn=(0,xe.dd)((function(e){var n=e.cancelButtonText,i=(e.header,e.onCancel),t=e.onSaveSuccess;return(0,w.jsx)(q.BC,{children:(0,w.jsx)(D.Z,{cancelButtonText:n,contained:!0,header:(0,w.jsx)(I.Z,{mb:se.HN,children:(0,w.jsxs)(P.Z,{children:[(0,w.jsx)(k.ZP,{warning:!0,children:"You need to add an OpenAI API key to your project before you can generate pipelines using AI."}),(0,w.jsx)(I.Z,{mt:1,children:(0,w.jsxs)(k.ZP,{warning:!0,children:["Read ",(0,w.jsx)(O.Z,{href:"https://help.openai.com/en/articles/4936850-where-do-i-find-my-secret-api-key",openNewWindow:!0,children:"OpenAI’s documentation"})," to get your API key."]})})]})}),onCancel:function(){null==i||i(),Kn()},onSaveSuccess:function(e){x(),Kn(),null==t||t(e)}})})}),{},[x],{background:!0,uuid:"configure_project"}),qn=(0,u.Z)(Vn,2),Wn=qn[0],Kn=qn[1],Xn=(0,xe.dd)((function(){return(0,w.jsx)(q.BC,{children:(0,w.jsx)(v.Z,{createPipeline:gn,isLoading:jn,onClose:ni})})}),{},[gn,jn],{background:!0,disableClickOutside:!0,disableCloseButton:!0,uuid:"AI_modal"}),Jn=(0,u.Z)(Xn,2),ei=Jn[0],ni=Jn[1],ii=(0,d.useMemo)((function(){return(0,be.d)(gn,{showAIModal:function(){null!=T&&T.openai_api_key?ei():Wn({onSaveSuccess:function(){ei()}})},showBrowseTemplates:Qn,showCreatePipelineModal:Dn,showImportPipelineModal:Bn})}),[gn,T,ei,Qn,Wn,Dn,Bn]),ti=H.ZP.tags.list().data,ui=(0,d.useMemo)((function(){return(0,Ce.YC)((null==ti?void 0:ti.tags)||[],(function(e){return e.uuid}))}),[ti]),ri=(0,d.useMemo)((function(){return(0,w.jsx)(N.Z,{addButtonProps:{isLoading:jn,label:"New",menuItems:ii},deleteRowProps:{confirmationMessage:"This is irreversible and will immediately delete everything associated with the pipeline, including its blocks, triggers, runs, logs, and history.",isLoading:On,item:"pipeline",onDelete:function(){window.confirm("Are you sure you want to delete pipeline ".concat(null==Ae?void 0:Ae.uuid,"?"))&&Sn(null==Ae?void 0:Ae.uuid)}},extraActionButtonProps:{Icon:V.Clone,confirmationDescription:"Cloning the selected pipeline will create a new pipeline with the same configuration and code blocks. The blocks use the same block files as the original pipeline. Pipeline triggers, runs, backfills, and logs are not copied over to the new pipeline.",confirmationMessage:"Do you want to clone the pipeline ".concat(null==Ae?void 0:Ae.uuid,"?"),isLoading:xn,onClick:function(){return _n({pipeline:{clone_pipeline_uuid:null==Ae?void 0:Ae.uuid}})},openConfirmationDialogue:!0,tooltip:"Clone pipeline"},filterOptions:{status:A.kA,tag:[A.$1.NO_TAGS].concat((0,r.Z)(ui.map((function(e){return e.uuid})))),type:Object.values(A.qL)},filterValueLabelMapping:{status:A.kA.reduce((function(e,n){return ke(ke({},e),{},(0,l.Z)({},n,(0,fe.J3)((0,fe.kC)(n))))}),{}),tag:ke((0,l.Z)({},A.$1.NO_TAGS,"No tags"),ui.reduce((function(e,n){var i=n.uuid;return ke(ke({},e),{},(0,l.Z)({},i,i))}),{})),type:A.G7},groupButtonProps:{groupByLabel:pn,menuItems:[{beforeIcon:pn===A.r0.STATUS?(0,w.jsx)(V.Check,{fill:F.Z.content.default,size:1.5*se.iI}):(0,w.jsx)(V.Circle,{muted:!0,size:1.5*se.iI}),label:function(){return(0,fe.kC)(A.r0.STATUS)},onClick:function(){var e=pn===A.r0.STATUS?null:A.r0.STATUS;e||re({}),(0,ge.u)((0,l.Z)({},A.$1.GROUP,e),{pushHistory:!0})},uuid:"Pipelines/GroupMenu/Status"},{beforeIcon:pn===A.r0.TAG?(0,w.jsx)(V.Check,{fill:F.Z.content.default,size:1.5*se.iI}):(0,w.jsx)(V.Circle,{muted:!0,size:1.5*se.iI}),label:function(){return(0,fe.kC)(A.r0.TAG)},onClick:function(){var e=pn===A.r0.TAG?null:A.r0.TAG;e||re({}),(0,ge.u)((0,l.Z)({},A.$1.GROUP,e),{pushHistory:!0})},uuid:"Pipelines/GroupMenu/Tag"},{beforeIcon:pn===A.r0.TYPE?(0,w.jsx)(V.Check,{fill:F.Z.content.default,size:1.5*se.iI}):(0,w.jsx)(V.Circle,{muted:!0,size:1.5*se.iI}),label:function(){return(0,fe.kC)(A.r0.TYPE)},onClick:function(){var e=pn===A.r0.TYPE?null:A.r0.TYPE;e||re({}),(0,ge.u)((0,l.Z)({},A.$1.GROUP,e),{pushHistory:!0})},uuid:"Pipelines/GroupMenu/Type"}]},moreActionsMenuItems:[{label:function(){return"Rename pipeline"},onClick:function(){return $n({pipelineName:null==Ae?void 0:Ae.name})},uuid:"Pipelines/MoreActionsMenu/Rename"},{label:function(){return"Edit description"},onClick:function(){return $n({pipeline:Ae,pipelineDescription:null==Ae?void 0:Ae.description})},uuid:"Pipelines/MoreActionsMenu/EditDescription"}],onClickFilterDefaults:function(){ue({}),Ge(""),null==Je||Je().then((function(){var e;(0,ge.u)((e={},(0,l.Z)(e,le.$D.LIMIT,(null==Qe?void 0:Qe[le.$D.LIMIT])||E.Q),(0,l.Z)(e,A.$1.SEARCH,""),e),{replaceParams:!0})}))},onFilterApply:function(e,n){Object.values(n).every((function(e){return!(null!=e&&e.length)}))&&ue({})},query:Qe,resetLimitOnFilterApply:!0,searchProps:{onChange:$e,value:Re},selectedRowId:null==Ae?void 0:Ae.uuid,setSelectedRow:De})}),[_n,Sn,Je,pn,xn,jn,On,ii,Qe,Re,Ae,$e,$n,ui]),li=(0,d.useCallback)((function(e){var n={};null==e||e.forEach((function(e,i){var t=null==e?void 0:e[pn];if(A.r0.STATUS===pn){var u=(e||{}).schedules,r=void 0===u?[]:u,l=r.length;t=r.find((function(e){var n=e.status;return ae.fq.ACTIVE===n}))?A.QK.ACTIVE:l>=1?A.QK.INACTIVE:A.QK.NO_SCHEDULES}else if(A.r0.TAG===pn){t=(null==e?void 0:e.tags)?(0,Ce.YC)(e.tags,(function(e){return e})).join(", "):""}n[t]||(n[t]=[]),n[t].push(i)}));var i=[],t=[];A.r0.STATUS===pn?Object.values(A.QK).forEach((function(e){i.push(n[e]),t.push((0,fe.vg)(e))})):A.r0.TAG===pn?(0,Ce.YC)(Object.keys(n),(function(e){return e})).forEach((function(e){i.push(n[e]),e?t.push(e.split(", ").map((function(e,n){return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)("div",{style:{marginLeft:n>=1?4:0}},"".concat(e,"-").concat(n,"-spacing")),(0,w.jsx)(g.Z,{small:!0,children:(0,w.jsx)(k.ZP,{children:e})},"".concat(e,"-").concat(n))]})}))):t.push("No tags")})):A.r0.TYPE===pn&&Object.values(A.qL).forEach((function(e){i.push(n[e]),t.push(A.G7[e])}));var u=[],r=[];return null==i||i.forEach((function(e,n){null!=e&&(null==e?void 0:e.length)>=1&&(r.push(e),u.push(null==t?void 0:t[n]))})),{rowGroupHeaders:u,rowsGroupedByIndex:r}}),[pn]),oi=(0,d.useMemo)((function(){return li(ln)}),[li,ln]),ci=oi.rowGroupHeaders,si=oi.rowsGroupedByIndex,ai=(0,d.useMemo)((function(){return li(on)}),[li,on]),di=ai.rowGroupHeaders,pi=ai.rowsGroupedByIndex,fi=(0,d.useCallback)((function(e,i,u){return(0,w.jsx)(U.Z,{columnFlex:[null,null,null,2,null,null,null,1,null,null,null],columns:[{label:function(){return""},uuid:"action"},{uuid:(0,fe.kC)(A.r0.STATUS)},{uuid:"Name"},{uuid:"Description"},{uuid:(0,fe.kC)(A.r0.TYPE)},ke(ke({},We),{},{uuid:"Updated at"}),ke(ke({},We),{},{uuid:"Created at"}),{uuid:"Tags"},{uuid:"Blocks"},{uuid:"Triggers"},{center:!0,label:function(){return""},uuid:"Actions"}],isSelectedRow:function(n){var i;return(null===(i=e[n])||void 0===i?void 0:i.uuid)===(null==Ae?void 0:Ae.uuid)},localStorageKeySortColIdx:ne,localStorageKeySortDirection:ie,onClickRow:function(n){return De((function(i){var t=e[n];return(null==i?void 0:i.uuid)!==(null==t?void 0:t.uuid)?t:null}))},onDoubleClickRow:function(i){n.push("/pipelines/[pipeline]/edit","/pipelines/".concat(e[i].uuid,"/edit"))},ref:t,renderRightClickMenuItems:function(i){var t=e[i];return[{label:function(){return"Edit description"},onClick:function(){return $n({pipeline:t,pipelineDescription:null==t?void 0:t.description})},uuid:"edit_description"},{label:function(){return"Rename"},onClick:function(){return $n({pipeline:t,pipelineName:null==t?void 0:t.name})},uuid:"rename"},{label:function(){return"Clone"},onClick:function(){return _n({pipeline:{clone_pipeline_uuid:null==t?void 0:t.uuid}})},uuid:"clone"},{label:function(){return"Download (keep folder structure)"},onClick:function(){vn({filesOnly:!1,pipelineUUID:null==t?void 0:t.uuid})},uuid:"download_keep_folder_structure"},{label:function(){return"Download (without folder structure)"},onClick:function(){vn({filesOnly:!0,pipelineUUID:null==t?void 0:t.uuid})},uuid:"download_without_folder_structure"},{label:function(){return"Add/Remove tags"},onClick:function(){n.push("/pipelines/[pipeline]/settings","/pipelines/".concat(null==t?void 0:t.uuid,"/settings"))},uuid:"add_tags"},{label:function(){return"Create template"},onClick:function(){n.push("/templates?object_type=".concat(ce.R,"&new=1&pipeline_uuid=").concat(null==t?void 0:t.uuid))},uuid:"create_custom_template"},{label:function(){return"Create global data product"},onClick:function(){n.push("/global-data-products?object_type=".concat(W.b.PIPELINE,"&new=1&object_uuid=").concat(null==t?void 0:t.uuid))},uuid:"create_global_data_product"},{label:function(){return"Delete"},onClick:function(){window.confirm("Are you sure you want to delete pipeline ".concat(null==t?void 0:t.uuid,"?"))&&Sn(null==t?void 0:t.uuid)},uuid:"delete"}]},rightClickMenuHeight:252,rightClickMenuWidth:30*se.iI,rowGroupHeaders:i,rows:null==e?void 0:e.map((function(e,i){var t=e.blocks,u=e.created_at,r=e.description,o=e.schedules,c=e.tags,s=e.type,d=e.updated_at,p=e.uuid,f=t.filter((function(e){var n=e.type;return z.tf.SCRATCHPAD!==n})).length,v=o.length,h=o.find((function(e){var n=e.status;return ae.fq.ACTIVE===n})),b=s===A.ad,g=(0,w.jsx)("div",{children:(0,w.jsx)(L.Z,{tags:null==c?void 0:c.map((function(e){return{uuid:e}}))})},"pipeline_tags_".concat(i));return[v>=1||Le[p]?(0,w.jsx)(m.ZP,{iconOnly:!0,loading:!!Le[p],noBackground:!0,noBorder:!0,noPadding:!0,onClick:function(n){(0,Ze.j)(n),Ne((function(e){return ke(ke({},e),{},(0,l.Z)({},p,!0))})),kn(ke(ke({},e),{},{status:h?ae.fq.INACTIVE:ae.fq.ACTIVE}))},children:h?(0,w.jsx)(V.Pause,{muted:!0,size:2*se.iI}):(0,w.jsx)(V.PlayButtonFilled,{default:!0,size:2*se.iI})}):null,(0,w.jsx)(k.ZP,{default:!h,monospace:!0,success:!!h,children:h?ae.fq.ACTIVE:v>=1?ae.fq.INACTIVE:"no schedules"},"pipeline_status_".concat(i)),(0,w.jsx)(a(),{as:"/pipelines/".concat(p),href:"/pipelines/[pipeline]",passHref:!0,children:(0,w.jsx)(O.Z,{sameColorAsText:!0,children:p})},"pipeline_name_".concat(i)),(0,w.jsx)(k.ZP,{default:!0,preWrap:!0,title:r,children:r},"pipeline_description_".concat(i)),(0,w.jsx)(k.ZP,{bold:b,danger:b,children:b?(0,fe.kC)(A.ad):A.G7[s]},"pipeline_type_".concat(i)),(0,w.jsx)(k.ZP,{monospace:!0,small:!0,title:d?(0,ve._6)(d):null,children:d?(0,ve.XG)((0,ve.d$)(d,{includeSeconds:!0,utcFormat:!0}),Ve):(0,w.jsx)(w.Fragment,{children:"—"})},"pipeline_updated_at_".concat(i)),(0,w.jsx)(k.ZP,{monospace:!0,small:!0,title:u?(0,ve._6)(u):null,children:u?(0,ve.XG)(u.slice(0,19),Ve):(0,w.jsx)(w.Fragment,{children:"—"})},"pipeline_created_at_".concat(i)),g,(0,w.jsx)(k.ZP,{default:0===f,monospace:!0,children:f},"pipeline_block_count_".concat(i)),(0,w.jsx)(k.ZP,{default:0===v,monospace:!0,children:v},"pipeline_trigger_count_".concat(i)),(0,w.jsxs)(C.Z,{flex:1,justifyContent:"flex-end",children:[(0,w.jsx)(m.ZP,ke(ke({},Ee),{},{onClick:function(){vn({pipelineUUID:p})},title:"Download (keep folder structure)",children:(0,w.jsx)(V.Save,{default:!0,size:2*se.iI})})),(0,w.jsx)(I.Z,{mr:1}),(0,w.jsx)(m.ZP,ke(ke({},Ee),{},{onClick:function(){n.push("/pipelines/[pipeline]","/pipelines/".concat(p))},title:"Detail",children:(0,w.jsx)(V.Open,{default:!0,size:2*se.iI})})),(0,w.jsx)(I.Z,{mr:1}),(0,w.jsx)(m.ZP,ke(ke({},Ee),{},{onClick:function(){n.push("/pipelines/[pipeline]/logs","/pipelines/".concat(p,"/logs"))},title:"Logs",children:(0,w.jsx)(V.File,{default:!0,size:2*se.iI})}))]},"chevron_icon_".concat(i))]})),rowsGroupedByIndex:u,sortableColumnIndexes:cn,sortedColumn:dn,stickyHeader:!0,uuid:"pipelines_table"})}),[_n,Sn,vn,Ve,Le,n,Ae,Ne,De,$n,cn,dn,We,kn]),vi=(0,d.useMemo)((function(){return fi(ln,ci,si)}),[ln,fi,ci,si]),hi=(0,d.useMemo)((function(){return fi(on,di,pi)}),[on,fi,di,pi]),mi=(0,d.useMemo)((function(){return(null==ln?void 0:ln.length)||0}),[ln]),bi=(0,d.useMemo)((function(){return(null==on?void 0:on.length)||0}),[on]),gi=(0,d.useMemo)((function(){return(!qe||ye.uuid===ze)&&!mi||qe&&Te.uuid===ze&&!bi}),[qe,mi,bi,ze]),ji=(0,d.useMemo)((function(){var e=null==Qe?void 0:Qe[le.$D.LIMIT];return(0,w.jsxs)(_.ZP,{alignItems:"center",children:[(0,w.jsx)(k.ZP,{muted:!0,small:!0,children:"Per page"}),(0,w.jsx)(I.Z,{mr:1}),(0,w.jsxs)(G.Z,{compact:!0,onChange:function(e){var n;return(0,ge.u)((n={},(0,l.Z)(n,le.$D.LIMIT,e.target.value),(0,l.Z)(n,le.$D.OFFSET,0),n),{pushHistory:!0})},small:!0,value:e,children:[e&&(e>5*E.Q||e%E.Q)&&(0,w.jsx)("option",{value:e,children:e}),(0,Ce.w6)(5).map((function(e,n){var i=(n+1)*E.Q;return(0,w.jsx)("option",{value:i,children:i},i)}))]})]})}),[Qe]),Zi=(0,d.useMemo)((function(){var e,n,i=Xe;qe&&Te.uuid===ze&&(i=tn);var t=(null===(e=i)||void 0===e||null===(n=e.metadata)||void 0===n?void 0:n.count)||0,u=(null==Qe?void 0:Qe[le.$D.LIMIT])||E.Q,r=(null==Qe?void 0:Qe[le.$D.OFFSET])||0,o=Math.ceil(t/u);return(0,w.jsx)(I.Z,{p:se.cd,children:(0,w.jsx)(E.ZP,{maxPages:E.Et,onUpdate:function(e){var n=Number(e);(0,ge.u)((0,l.Z)({},le.$D.OFFSET,n*u))},page:Math.floor(r/u),totalPages:o})})}),[Xe,tn,qe,Qe,ze]);return(0,w.jsxs)(Z.Z,{errors:He,setErrors:Fe,subheaderChildren:(0,w.jsxs)(_.ZP,{alignItems:"center",justifyContent:"space-between",children:[ri,ji]}),title:"Pipelines",uuid:"pipelines/index",children:[qe&&(0,w.jsx)(I.Z,{px:se.cd,ref:i,children:(0,w.jsx)(b.Z,{noPadding:!0,onClickTab:function(e){var n,i=e.uuid;return(0,ge.u)((n={},(0,l.Z)(n,Se,i),(0,l.Z)(n,le.$D.OFFSET,0),n),{pushHistory:!0})},regularSizeText:!0,selectedTabUUID:ze,tabs:we.map((function(e){var n=e.Icon,i=e.label;return{Icon:n,label:function(){var e;return i({count:null==Xe||null===(e=Xe.metadata)||void 0===e?void 0:e.count})},uuid:e.uuid}})),underlineStyle:!0})}),gi?(0,w.jsx)(I.Z,{p:se.Mq,children:Xe?(0,w.jsx)(k.ZP,{bold:!0,default:!0,monospace:!0,muted:!0,children:"No pipelines available"}):(0,w.jsx)($.Z,{inverted:!0,large:!0})}):null,(0,w.jsxs)(pe.cl,{hide:gi,includePadding:!!pn,maxHeight:"calc(100vh - ".concat(K.Mz+74+(M||44)+68,"px)"),children:[(!qe||ye.uuid===ze)&&vi,qe&&Te.uuid===ze&&hi]}),(0,w.jsx)("div",{ref:o,children:Zi})]})}Ae.getInitialProps=(0,t.Z)(c().mark((function e(){return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{});case 1:case"end":return e.stop()}}),e)})));var De=(0,M.Z)(Ae)},79274:function(e,n,i){(window.__NEXT_P=window.__NEXT_P||[]).push(["/pipelines",function(){return i(55620)}])},80022:function(e,n,i){"use strict";function t(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}i.d(n,{Z:function(){return t}})},15544:function(e,n,i){"use strict";function t(e){return t=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},t(e)}i.d(n,{Z:function(){return t}})},13692:function(e,n,i){"use strict";i.d(n,{Z:function(){return u}});var t=i(61049);function u(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),n&&(0,t.Z)(e,n)}},93189:function(e,n,i){"use strict";i.d(n,{Z:function(){return r}});var t=i(12539),u=i(80022);function r(e,n){if(n&&("object"===t(n)||"function"==typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return(0,u.Z)(e)}}},function(e){e.O(0,[449,4241,5544,523,3548,5627,9774,2888,179],(function(){return n=79274,e(e.s=n);var n}));var n=e.O();_N_E=n}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2287],{87992:function(e,n,r){"use strict";r.r(n);var u=r(77837),s=r(38860),t=r.n(s),i=r(82684),a=r(34376),l=r(71180),d=r(15338),c=r(93808),o=r(28274),f=r(38276),m=r(75499),p=r(30160),h=r(37361),_=r(35686),w=r(72473),x=r(70515),v=r(24755),P=r(3917),Z=r(50178),j=r(28598);function b(){var e=(0,a.useRouter)(),n=(0,i.useState)(!1),r=n[0],u=n[1],s=(0,Z.PR)(null==e?void 0:e.basePath)||{},t=(s.id,s.owner),c=_.ZP.users.list({},{revalidateOnFocus:!1}).data,b=(0,i.useMemo)((function(){return(null==c?void 0:c.users)||[]}),[null==c?void 0:c.users]),k=[{bold:!r,label:function(){return"Users"}}];return r?(k[0].onClick=function(){return u(!1)},k.push({bold:!0,label:function(){return"New user"}})):k[0].linkProps={href:"/settings/workspace/users"},(0,j.jsxs)(o.Z,{appendBreadcrumbs:!0,breadcrumbs:k,title:"Users",uuidItemSelected:v.B2.USERS,uuidWorkspaceSelected:v.Pl.USER_MANAGEMENT,children:[r&&(0,j.jsx)(h.Z,{contained:!0,onCancel:function(){return u(!1)}}),!r&&(0,j.jsxs)(j.Fragment,{children:[t&&(0,j.jsx)(f.Z,{p:x.cd,children:(0,j.jsx)(l.ZP,{beforeIcon:(0,j.jsx)(w.AddUserSmileyFace,{}),onClick:function(){return u(!0)},primary:!0,children:"Add new user"})}),(0,j.jsx)(d.Z,{light:!0}),(0,j.jsx)(m.Z,{columnFlex:[null,1,1,1,1,null,null],columns:[{label:function(){return""},uuid:"avatar"},{uuid:"Username"},{uuid:"First name"},{uuid:"Last name"},{uuid:"Email"},{uuid:"Role"},{rightAligned:!0,uuid:"Created"}],onClickRow:function(n){var r,u=null===(r=b[n])||void 0===r?void 0:r.id;e.push("/settings/workspace/users/".concat(u))},rows:b.map((function(e){var n=e.avatar,r=e.created_at,u=e.email,s=e.first_name,t=e.last_name,i=e.roles_display,a=e.roles_new,l=e.username,d=a||[];return d.sort((function(e,n){return e.id-n.id})),[(0,j.jsx)(p.ZP,{large:!0,rightAligned:!0,children:n},"avatar"),(0,j.jsx)(p.ZP,{children:l||"-"},"username"),(0,j.jsx)(p.ZP,{default:!0,children:s||"-"},"firstName"),(0,j.jsx)(p.ZP,{default:!0,children:t||"-"},"lastName"),(0,j.jsx)(p.ZP,{default:!0,children:u},"email"),(0,j.jsx)(p.ZP,{default:!0,children:d.length>0?d[0].name:i},"roles"),(0,j.jsx)(p.ZP,{default:!0,monospace:!0,children:r&&(0,P.d$)(r)},"created")]})),uuid:"pipeline-runs"})]})]})}b.getInitialProps=(0,u.Z)(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{});case 1:case"end":return e.stop()}}),e)}))),n.default=(0,c.Z)(b)},48673:function(e,n,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/settings/workspace/users",function(){return r(87992)}])}},function(e){e.O(0,[449,5699,3958,9774,2888,179],(function(){return n=48673,e(e.s=n);var n}));var n=e.O();_N_E=n}]);
|
|
@@ -1,377 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: mage-ai
|
|
3
|
-
Version: 0.9.75
|
|
4
|
-
Summary: Mage is a tool for building and deploying data pipelines.
|
|
5
|
-
Home-page: https://github.com/mage-ai/mage-ai
|
|
6
|
-
Author: Mage
|
|
7
|
-
Author-email: eng@mage.ai
|
|
8
|
-
Classifier: Programming Language :: Python :: 3
|
|
9
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
10
|
-
Classifier: Operating System :: OS Independent
|
|
11
|
-
Requires-Python: >=3.7
|
|
12
|
-
Description-Content-Type: text/markdown
|
|
13
|
-
License-File: LICENSE
|
|
14
|
-
Requires-Dist: cachetools
|
|
15
|
-
Requires-Dist: Faker==4.14.0
|
|
16
|
-
Requires-Dist: GitPython==3.1.41
|
|
17
|
-
Requires-Dist: Jinja2==3.1.3
|
|
18
|
-
Requires-Dist: Pillow==10.3.0
|
|
19
|
-
Requires-Dist: PyGithub==1.59.0
|
|
20
|
-
Requires-Dist: PyJWT==2.6.0
|
|
21
|
-
Requires-Dist: aiofiles==22.1.0
|
|
22
|
-
Requires-Dist: aiohttp==3.10.0
|
|
23
|
-
Requires-Dist: alembic>=1.7.5
|
|
24
|
-
Requires-Dist: bcrypt==4.0.1
|
|
25
|
-
Requires-Dist: croniter==1.3.7
|
|
26
|
-
Requires-Dist: cryptography==42.0.0
|
|
27
|
-
Requires-Dist: dask>=2022.2.0
|
|
28
|
-
Requires-Dist: datadog==0.44.0
|
|
29
|
-
Requires-Dist: freezegun==1.2.2
|
|
30
|
-
Requires-Dist: great-expectations==0.18.12
|
|
31
|
-
Requires-Dist: httpx==0.23.1
|
|
32
|
-
Requires-Dist: inflection==0.5.1
|
|
33
|
-
Requires-Dist: ipykernel==6.15.0
|
|
34
|
-
Requires-Dist: ipython==8.10.0
|
|
35
|
-
Requires-Dist: itsdangerous~=1.1.0
|
|
36
|
-
Requires-Dist: joblib>=1.1.0
|
|
37
|
-
Requires-Dist: jupyter-server==2.14.1
|
|
38
|
-
Requires-Dist: jupyter-client==7.4.4
|
|
39
|
-
Requires-Dist: ldap3==2.9.1
|
|
40
|
-
Requires-Dist: memory-profiler
|
|
41
|
-
Requires-Dist: newrelic==8.8.0
|
|
42
|
-
Requires-Dist: numpy>=1.22.0
|
|
43
|
-
Requires-Dist: pandas>=1.3.0
|
|
44
|
-
Requires-Dist: polars<0.19.2,>=0.18.0
|
|
45
|
-
Requires-Dist: protobuf~=4.21.12
|
|
46
|
-
Requires-Dist: psutil==5.9.8
|
|
47
|
-
Requires-Dist: pyarrow>=14.0.1
|
|
48
|
-
Requires-Dist: python-dateutil==2.8.2
|
|
49
|
-
Requires-Dist: pytz>=2022.2.1
|
|
50
|
-
Requires-Dist: pyyaml~=6.0
|
|
51
|
-
Requires-Dist: redis~=5.0.1
|
|
52
|
-
Requires-Dist: requests~=2.31.0
|
|
53
|
-
Requires-Dist: ruamel.yaml==0.17.17
|
|
54
|
-
Requires-Dist: scikit-learn>=1.0
|
|
55
|
-
Requires-Dist: sentry-sdk==1.19.1
|
|
56
|
-
Requires-Dist: setuptools==70.0.0
|
|
57
|
-
Requires-Dist: simplejson
|
|
58
|
-
Requires-Dist: six>=1.15.0
|
|
59
|
-
Requires-Dist: sqlalchemy<2.0.0,>=1.4.20
|
|
60
|
-
Requires-Dist: sqlglot[rs]
|
|
61
|
-
Requires-Dist: terminado==0.17.1
|
|
62
|
-
Requires-Dist: thefuzz[speedup]==0.19.0
|
|
63
|
-
Requires-Dist: tornado==6.3.3
|
|
64
|
-
Requires-Dist: typer[all]==0.9.0
|
|
65
|
-
Requires-Dist: typing-extensions==4.10.0
|
|
66
|
-
Requires-Dist: watchdog==4.0.0
|
|
67
|
-
Requires-Dist: Werkzeug==3.0.3
|
|
68
|
-
Provides-Extra: ai
|
|
69
|
-
Requires-Dist: astor>=0.8.1; extra == "ai"
|
|
70
|
-
Requires-Dist: langchain==0.1.6; extra == "ai"
|
|
71
|
-
Requires-Dist: langchain-community<0.0.20; extra == "ai"
|
|
72
|
-
Requires-Dist: openai==1.39.0; extra == "ai"
|
|
73
|
-
Provides-Extra: all
|
|
74
|
-
Requires-Dist: PyGithub==1.59.0; extra == "all"
|
|
75
|
-
Requires-Dist: astor>=0.8.1; extra == "all"
|
|
76
|
-
Requires-Dist: aws-secretsmanager-caching==1.1.1.5; extra == "all"
|
|
77
|
-
Requires-Dist: azure-eventhub==5.11.2; extra == "all"
|
|
78
|
-
Requires-Dist: azure-identity==1.12.0; extra == "all"
|
|
79
|
-
Requires-Dist: azure-keyvault-certificates==4.6.0; extra == "all"
|
|
80
|
-
Requires-Dist: azure-keyvault-secrets==4.6.0; extra == "all"
|
|
81
|
-
Requires-Dist: azure-mgmt-containerinstance==10.1.0; extra == "all"
|
|
82
|
-
Requires-Dist: azure-storage-blob==12.14.1; extra == "all"
|
|
83
|
-
Requires-Dist: boto3==1.26.60; extra == "all"
|
|
84
|
-
Requires-Dist: botocore==1.29.60; extra == "all"
|
|
85
|
-
Requires-Dist: clickhouse-connect~=0.6.23; extra == "all"
|
|
86
|
-
Requires-Dist: confluent-avro~=1.8.0; extra == "all"
|
|
87
|
-
Requires-Dist: db-dtypes==1.0.5; extra == "all"
|
|
88
|
-
Requires-Dist: dbt-bigquery==1.7.2; extra == "all"
|
|
89
|
-
Requires-Dist: dbt-clickhouse==1.7.1; extra == "all"
|
|
90
|
-
Requires-Dist: dbt-core==1.7.4; extra == "all"
|
|
91
|
-
Requires-Dist: dbt-duckdb==1.7.0; extra == "all"
|
|
92
|
-
Requires-Dist: dbt-postgres==1.7.4; extra == "all"
|
|
93
|
-
Requires-Dist: dbt-redshift==1.7.1; extra == "all"
|
|
94
|
-
Requires-Dist: dbt-snowflake==1.7.1; extra == "all"
|
|
95
|
-
Requires-Dist: dbt-spark==1.7.1; extra == "all"
|
|
96
|
-
Requires-Dist: dbt-sqlserver==1.7.4; extra == "all"
|
|
97
|
-
Requires-Dist: dbt-trino==1.7.1; extra == "all"
|
|
98
|
-
Requires-Dist: duckdb==1.0.0; extra == "all"
|
|
99
|
-
Requires-Dist: elasticsearch==8.15.1; extra == "all"
|
|
100
|
-
Requires-Dist: google-api-core~=2.15.0; extra == "all"
|
|
101
|
-
Requires-Dist: google-api-python-client~=2.70.0; extra == "all"
|
|
102
|
-
Requires-Dist: google-cloud-bigquery~=3.14.1; extra == "all"
|
|
103
|
-
Requires-Dist: google-cloud-iam~=2.13.0; extra == "all"
|
|
104
|
-
Requires-Dist: google-cloud-pubsub~=2.19.0; extra == "all"
|
|
105
|
-
Requires-Dist: google-cloud-run~=0.10.1; extra == "all"
|
|
106
|
-
Requires-Dist: google-cloud-storage~=2.5.0; extra == "all"
|
|
107
|
-
Requires-Dist: great-expectations==0.18.12; extra == "all"
|
|
108
|
-
Requires-Dist: gspread==5.7.2; extra == "all"
|
|
109
|
-
Requires-Dist: influxdb-client==1.36.1; extra == "all"
|
|
110
|
-
Requires-Dist: kafka-python==2.0.2; extra == "all"
|
|
111
|
-
Requires-Dist: kubernetes>=28.1.0; extra == "all"
|
|
112
|
-
Requires-Dist: langchain==0.1.6; extra == "all"
|
|
113
|
-
Requires-Dist: langchain-community<0.0.20; extra == "all"
|
|
114
|
-
Requires-Dist: ldap3==2.9.1; extra == "all"
|
|
115
|
-
Requires-Dist: nats-py==2.6.0; extra == "all"
|
|
116
|
-
Requires-Dist: openai==1.39.0; extra == "all"
|
|
117
|
-
Requires-Dist: opensearch-py==2.0.0; extra == "all"
|
|
118
|
-
Requires-Dist: opentelemetry-api==1.22.0; extra == "all"
|
|
119
|
-
Requires-Dist: opentelemetry-exporter-prometheus==0.43b0; extra == "all"
|
|
120
|
-
Requires-Dist: opentelemetry-instrumentation-tornado==0.43b0; extra == "all"
|
|
121
|
-
Requires-Dist: opentelemetry-exporter-otlp==1.22.0; extra == "all"
|
|
122
|
-
Requires-Dist: opentelemetry-instrumentation-sqlalchemy==0.43b0; extra == "all"
|
|
123
|
-
Requires-Dist: oracledb==1.3.1; extra == "all"
|
|
124
|
-
Requires-Dist: pika==1.3.1; extra == "all"
|
|
125
|
-
Requires-Dist: pinotdb==5.1.0; extra == "all"
|
|
126
|
-
Requires-Dist: prometheus-client>=0.18.0; extra == "all"
|
|
127
|
-
Requires-Dist: protobuf~=4.21.12; extra == "all"
|
|
128
|
-
Requires-Dist: psycopg2-binary==2.9.3; extra == "all"
|
|
129
|
-
Requires-Dist: psycopg2==2.9.3; extra == "all"
|
|
130
|
-
Requires-Dist: pyairtable==2.3.3; extra == "all"
|
|
131
|
-
Requires-Dist: pydruid==0.6.5; extra == "all"
|
|
132
|
-
Requires-Dist: pymongo==4.3.3; extra == "all"
|
|
133
|
-
Requires-Dist: redshift-connector==2.0.915; extra == "all"
|
|
134
|
-
Requires-Dist: lxml==4.9.4; extra == "all"
|
|
135
|
-
Requires-Dist: requests-aws4auth==1.1.2; extra == "all"
|
|
136
|
-
Requires-Dist: snowflake-connector-python==3.7.1; extra == "all"
|
|
137
|
-
Requires-Dist: sshtunnel==0.4.0; extra == "all"
|
|
138
|
-
Requires-Dist: stomp.py==8.1.0; extra == "all"
|
|
139
|
-
Requires-Dist: thefuzz[speedup]==0.19.0; extra == "all"
|
|
140
|
-
Requires-Dist: trino~=0.326; extra == "all"
|
|
141
|
-
Requires-Dist: nkeys~=0.1.0; python_version < "3.12" and extra == "all"
|
|
142
|
-
Requires-Dist: pyodbc==4.0.35; python_version < "3.12" and extra == "all"
|
|
143
|
-
Requires-Dist: nkeys~=0.2.0; python_version >= "3.12" and extra == "all"
|
|
144
|
-
Requires-Dist: pyodbc==5.0.1; python_version >= "3.12" and extra == "all"
|
|
145
|
-
Provides-Extra: azure
|
|
146
|
-
Requires-Dist: azure-eventhub==5.11.2; extra == "azure"
|
|
147
|
-
Requires-Dist: azure-identity==1.12.0; extra == "azure"
|
|
148
|
-
Requires-Dist: azure-keyvault-secrets==4.6.0; extra == "azure"
|
|
149
|
-
Requires-Dist: azure-keyvault-certificates==4.6.0; extra == "azure"
|
|
150
|
-
Requires-Dist: azure-mgmt-containerinstance==10.1.0; extra == "azure"
|
|
151
|
-
Requires-Dist: azure-storage-blob==12.14.1; extra == "azure"
|
|
152
|
-
Provides-Extra: bigquery
|
|
153
|
-
Requires-Dist: google-cloud-bigquery~=3.0; extra == "bigquery"
|
|
154
|
-
Requires-Dist: db-dtypes==1.0.5; extra == "bigquery"
|
|
155
|
-
Provides-Extra: chroma
|
|
156
|
-
Requires-Dist: chromadb>=0.4.17; extra == "chroma"
|
|
157
|
-
Provides-Extra: clickhouse
|
|
158
|
-
Requires-Dist: clickhouse-connect~=0.6.23; extra == "clickhouse"
|
|
159
|
-
Provides-Extra: dbt
|
|
160
|
-
Requires-Dist: dbt-bigquery==1.7.2; extra == "dbt"
|
|
161
|
-
Requires-Dist: dbt-clickhouse==1.7.1; extra == "dbt"
|
|
162
|
-
Requires-Dist: dbt-core==1.7.4; extra == "dbt"
|
|
163
|
-
Requires-Dist: dbt-duckdb==1.7.0; extra == "dbt"
|
|
164
|
-
Requires-Dist: dbt-postgres==1.7.4; extra == "dbt"
|
|
165
|
-
Requires-Dist: dbt-redshift==1.7.1; extra == "dbt"
|
|
166
|
-
Requires-Dist: dbt-snowflake==1.7.1; extra == "dbt"
|
|
167
|
-
Requires-Dist: dbt-spark==1.7.1; extra == "dbt"
|
|
168
|
-
Requires-Dist: dbt-sqlserver==1.7.4; extra == "dbt"
|
|
169
|
-
Requires-Dist: dbt-trino==1.7.1; extra == "dbt"
|
|
170
|
-
Requires-Dist: trino~=0.326; extra == "dbt"
|
|
171
|
-
Provides-Extra: google-cloud-storage
|
|
172
|
-
Requires-Dist: google-cloud-storage==2.5.0; extra == "google-cloud-storage"
|
|
173
|
-
Requires-Dist: gspread==5.7.2; extra == "google-cloud-storage"
|
|
174
|
-
Provides-Extra: hdf5
|
|
175
|
-
Requires-Dist: tables==3.7.0; python_version < "3.11" and extra == "hdf5"
|
|
176
|
-
Requires-Dist: tables==3.10.1; python_version >= "3.11" and extra == "hdf5"
|
|
177
|
-
Provides-Extra: mysql
|
|
178
|
-
Requires-Dist: mysql-connector-python~=8.2.0; python_version < "3.11" and extra == "mysql"
|
|
179
|
-
Requires-Dist: mysql-connector-python~=9.0.0; python_version >= "3.11" and extra == "mysql"
|
|
180
|
-
Provides-Extra: oracle
|
|
181
|
-
Requires-Dist: oracledb==1.3.1; python_version < "3.12" and extra == "oracle"
|
|
182
|
-
Requires-Dist: oracledb==2.4.1; python_version >= "3.12" and extra == "oracle"
|
|
183
|
-
Provides-Extra: postgres
|
|
184
|
-
Requires-Dist: psycopg2==2.9.3; extra == "postgres"
|
|
185
|
-
Requires-Dist: psycopg2-binary==2.9.3; extra == "postgres"
|
|
186
|
-
Requires-Dist: sshtunnel==0.4.0; extra == "postgres"
|
|
187
|
-
Provides-Extra: qdrant
|
|
188
|
-
Requires-Dist: qdrant-client==1.6.9; extra == "qdrant"
|
|
189
|
-
Requires-Dist: sentence-transformers==2.2.2; extra == "qdrant"
|
|
190
|
-
Provides-Extra: redshift
|
|
191
|
-
Requires-Dist: boto3==1.26.60; extra == "redshift"
|
|
192
|
-
Requires-Dist: redshift-connector==2.0.915; extra == "redshift"
|
|
193
|
-
Requires-Dist: lxml==4.9.4; extra == "redshift"
|
|
194
|
-
Provides-Extra: s3
|
|
195
|
-
Requires-Dist: boto3==1.26.60; extra == "s3"
|
|
196
|
-
Requires-Dist: botocore==1.29.60; extra == "s3"
|
|
197
|
-
Provides-Extra: snowflake
|
|
198
|
-
Requires-Dist: snowflake-connector-python==3.7.1; extra == "snowflake"
|
|
199
|
-
Provides-Extra: spark
|
|
200
|
-
Requires-Dist: boto3==1.26.60; extra == "spark"
|
|
201
|
-
Requires-Dist: botocore==1.29.60; extra == "spark"
|
|
202
|
-
Provides-Extra: streaming
|
|
203
|
-
Requires-Dist: confluent-avro~=1.8.0; extra == "streaming"
|
|
204
|
-
Requires-Dist: elasticsearch==8.15.1; extra == "streaming"
|
|
205
|
-
Requires-Dist: influxdb-client==1.36.1; extra == "streaming"
|
|
206
|
-
Requires-Dist: kafka-python==2.0.2; extra == "streaming"
|
|
207
|
-
Requires-Dist: nats-py==2.6.0; extra == "streaming"
|
|
208
|
-
Requires-Dist: opensearch-py==2.0.0; extra == "streaming"
|
|
209
|
-
Requires-Dist: pika==1.3.1; extra == "streaming"
|
|
210
|
-
Requires-Dist: pymongo==4.3.3; extra == "streaming"
|
|
211
|
-
Requires-Dist: requests-aws4auth==1.1.2; extra == "streaming"
|
|
212
|
-
Requires-Dist: stomp.py==8.1.0; extra == "streaming"
|
|
213
|
-
Requires-Dist: nkeys~=0.1.0; python_version < "3.12" and extra == "streaming"
|
|
214
|
-
Requires-Dist: nkeys~=0.2.0; python_version >= "3.12" and extra == "streaming"
|
|
215
|
-
|
|
216
|
-
<div align="left">
|
|
217
|
-
<h1>Mage AI</h1>
|
|
218
|
-
|
|
219
|
-
<p>Give your data team magical powers.</p>
|
|
220
|
-
|
|
221
|
-
<a href="https://mage.ai"><img alt="Mage AI GitHub repo stars" src="https://img.shields.io/github/stars/mage-ai/mage-ai?style=for-the-badge&logo=github&labelColor=000000&logoColor=FFFFFF&label=stars&color=0500ff" /></a>
|
|
222
|
-
<a href="https://hub.docker.com/r/mageai/mageai"><img alt="Mage AI Docker downloads" src="https://img.shields.io/docker/pulls/mageai/mageai?style=for-the-badge&logo=docker&labelColor=000000&logoColor=FFFFFF&label=pulls&color=6A35FF" /></a>
|
|
223
|
-
<a href="https://github.com/mage-ai/mage-ai/blob/master/LICENSE"><img alt="Mage AI license" src="https://img.shields.io/github/license/mage-ai/mage-ai?style=for-the-badge&logo=codeigniter&labelColor=000000&logoColor=FFFFFF&label=license&color=FFCC19" /></a>
|
|
224
|
-
<a href="https://www.mage.ai/chat"><img alt="Join the Mage AI community" src="https://img.shields.io/badge/Join%20the%20community-black.svg?style=for-the-badge&logo=lightning&labelColor=000000&logoColor=FFFFFF&label=&color=DD55FF&logoWidth=20" /></a>
|
|
225
|
-
|
|
226
|
-
</div>
|
|
227
|
-
|
|
228
|
-
<br />
|
|
229
|
-
|
|
230
|
-
<a href="https://mage.ai/pro">
|
|
231
|
-
<picture>
|
|
232
|
-
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/mage-ai/assets/blob/main/oss/hero.png?raw=true">
|
|
233
|
-
<img alt="Mage AI hero" src="https://github.com/mage-ai/assets/blob/main/oss/hero.png?raw=true" />
|
|
234
|
-
</picture>
|
|
235
|
-
</a>
|
|
236
|
-
|
|
237
|
-
<br />
|
|
238
|
-
<br />
|
|
239
|
-
|
|
240
|
-
Mage is a hybrid framework for transforming and integrating data. It combines the best of both worlds: the flexibility of notebooks with the rigor of modular code.
|
|
241
|
-
|
|
242
|
-
<br />
|
|
243
|
-
|
|
244
|
-
- Extract and synchronize data from 3rd party sources.
|
|
245
|
-
- Transform data with real-time and batch pipelines using Python, SQL, and R.
|
|
246
|
-
- Load data into your data warehouse or data lake using our pre-built connectors.
|
|
247
|
-
- Run, monitor, and orchestrate thousands of pipelines without losing sleep.
|
|
248
|
-
|
|
249
|
-
<br />
|
|
250
|
-
|
|
251
|
-
Plus hundreds of enterprise-class features, infrastructure innovations, and magical surprises.
|
|
252
|
-
|
|
253
|
-
<h1></h1>
|
|
254
|
-
|
|
255
|
-
#### Available in two spellbinding versions
|
|
256
|
-
|
|
257
|
-
<br />
|
|
258
|
-
|
|
259
|
-
<table style="width: 100%; border: none;" cellspacing="0" cellpadding="0" border="0">
|
|
260
|
-
<tr>
|
|
261
|
-
<td rowspan="2">
|
|
262
|
-
<a href="https://mage.ai/pro">
|
|
263
|
-
<img alt="Mage Pro" width="124" align="left" src="https://github.com/mage-ai/assets/blob/main/oss/card-pro.png?raw=true" />
|
|
264
|
-
</a>
|
|
265
|
-
<b>For teams.</b> Fully managed platform
|
|
266
|
-
for integrating and transforming data.
|
|
267
|
-
</td>
|
|
268
|
-
<td rowspan="2">
|
|
269
|
-
<a href="https://github.com/mage-ai/mage-ai?tab=readme-ov-file#its-magic">
|
|
270
|
-
<img alt="Mage OSS" width="124" align="left" src="https://github.com/mage-ai/assets/blob/main/oss/card-oss.png?raw=true" />
|
|
271
|
-
</a>
|
|
272
|
-
<b>Self-hosted.</b> System to build, run, and
|
|
273
|
-
manage data pipelines.
|
|
274
|
-
</td>
|
|
275
|
-
</tr>
|
|
276
|
-
</table>
|
|
277
|
-
|
|
278
|
-
<br />
|
|
279
|
-
|
|
280
|
-
<a href="https://mage.ai/pro">
|
|
281
|
-
<img alt="Try out Mage Pro" src="https://img.shields.io/badge/try%20it%20out%20now-black.svg?style=for-the-badge&logo=artifacthub&labelColor=6A35FF&logoColor=FFFFFF&label=mage%20pro&color=6A35FF">
|
|
282
|
-
</a>
|
|
283
|
-
|
|
284
|
-
<br />
|
|
285
|
-
<br />
|
|
286
|
-
|
|
287
|
-
<div align="left">
|
|
288
|
-
|
|
289
|
-
# It’s magic.
|
|
290
|
-
|
|
291
|
-
<p align="left">
|
|
292
|
-
For documentation on getting started, how to develop, and how to deploy to production check out the live
|
|
293
|
-
<br />
|
|
294
|
-
<a
|
|
295
|
-
href="https://docs.mage.ai?source=github"
|
|
296
|
-
target="_blank"
|
|
297
|
-
><b>Developer documentation portal</b></a>.
|
|
298
|
-
</p>
|
|
299
|
-
|
|
300
|
-
<br />
|
|
301
|
-
|
|
302
|
-
## 🏃♀️ Install
|
|
303
|
-
|
|
304
|
-
The recommended way to install the latest version of Mage is through Docker with the following command:
|
|
305
|
-
|
|
306
|
-
```bash
|
|
307
|
-
docker pull mageai/mageai:latest
|
|
308
|
-
```
|
|
309
|
-
|
|
310
|
-
You can also install Mage using pip or conda, though this may cause dependency issues without the proper environment.
|
|
311
|
-
|
|
312
|
-
```bash
|
|
313
|
-
pip install mage-ai
|
|
314
|
-
```
|
|
315
|
-
```bash
|
|
316
|
-
conda install -c conda-forge mage-ai
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
Looking for help? The _fastest_ way to get started is by checking out our documentation [here](https://docs.mage.ai/getting-started/setup).
|
|
320
|
-
|
|
321
|
-
Looking for quick examples? Open a [demo](https://demo.mage.ai/) project right in your browser or check out our [guides](https://docs.mage.ai/guides/overview).
|
|
322
|
-
|
|
323
|
-
## 🎮 Demo
|
|
324
|
-
|
|
325
|
-
### Live demo
|
|
326
|
-
|
|
327
|
-
Build and run a data pipeline with our <b>[demo app](https://demo.mage.ai/)</b>.
|
|
328
|
-
|
|
329
|
-
> WARNING
|
|
330
|
-
>
|
|
331
|
-
> The live demo is public to everyone, please don’t save anything sensitive (e.g. passwords, secrets, etc).
|
|
332
|
-
### Demo video (5 min)
|
|
333
|
-
|
|
334
|
-
[](https://youtu.be/GswOdShLGmg)
|
|
335
|
-
|
|
336
|
-
<sub><i>Click the image to play video</i></sub>
|
|
337
|
-
|
|
338
|
-
<br />
|
|
339
|
-
|
|
340
|
-
## 🔮 [Features](https://docs.mage.ai/about/features)
|
|
341
|
-
|
|
342
|
-
| | | |
|
|
343
|
-
| --- | --- | --- |
|
|
344
|
-
| 🎶 | <b>[Orchestration](https://docs.mage.ai/design/data-pipeline-management)</b> | Schedule and manage data pipelines with observability. |
|
|
345
|
-
| 📓 | <b>[Notebook](https://docs.mage.ai/about/features#notebook-for-building-data-pipelines)</b> | Interactive Python, SQL, & R editor for coding data pipelines. |
|
|
346
|
-
| 🏗️ | <b>[Data integrations](https://docs.mage.ai/data-integrations/overview)</b> | Synchronize data from 3rd party sources to your internal destinations. |
|
|
347
|
-
| 🚰 | <b>[Streaming pipelines](https://docs.mage.ai/guides/streaming-pipeline)</b> | Ingest and transform real-time data. |
|
|
348
|
-
| ❎ | <b>[dbt](https://docs.mage.ai/dbt/overview)</b> | Build, run, and manage your dbt models with Mage. |
|
|
349
|
-
|
|
350
|
-
<br />
|
|
351
|
-
|
|
352
|
-
<b>A sample data pipeline defined across 3 files ➝</b>
|
|
353
|
-
|
|
354
|
-
<br />
|
|
355
|
-
|
|
356
|
-
1. Load data ➝
|
|
357
|
-
```python
|
|
358
|
-
@data_loader
|
|
359
|
-
def load_csv_from_file() -> pl.DataFrame:
|
|
360
|
-
return pl.read_csv('default_repo/titanic.csv')
|
|
361
|
-
```
|
|
362
|
-
1. Transform data ➝
|
|
363
|
-
```python
|
|
364
|
-
@transformer
|
|
365
|
-
def select_columns_from_df(df: pl.DataFrame, *args) -> pl.DataFrame:
|
|
366
|
-
return df[['Age', 'Fare', 'Survived']]
|
|
367
|
-
```
|
|
368
|
-
1. Export data ➝
|
|
369
|
-
```python
|
|
370
|
-
@data_exporter
|
|
371
|
-
def export_titanic_data_to_disk(df: pl.DataFrame) -> None:
|
|
372
|
-
df.to_csv('default_repo/titanic_transformed.csv')
|
|
373
|
-
```
|
|
374
|
-
|
|
375
|
-
<br />
|
|
376
|
-
|
|
377
|
-
[<img alt="Water mage casting spell" height="300" src="https://github.com/mage-ai/assets/blob/main/mage-water-charging-up.svg?raw=True" />](https://www.mage.ai/)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|