mage-ai 0.8.98__tar.gz → 0.8.99__tar.gz
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-0.8.98/mage_ai.egg-info → mage-ai-0.8.99}/PKG-INFO +1 -1
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/OauthPolicy.py +15 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/SessionPolicy.py +2 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/PipelinePresenter.py +1 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/SyncPresenter.py +1 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/OauthResource.py +28 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/PipelineResource.py +5 -1
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/SessionResource.py +18 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/WorkspaceResource.py +3 -2
- mage-ai-0.8.99/mage_ai/authentication/oauth/active_directory.py +17 -0
- mage-ai-0.8.99/mage_ai/authentication/oauth/constants.py +12 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/cli/main.py +56 -49
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/cluster_manager/kubernetes/workload_manager.py +46 -9
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/git/__init__.py +1 -1
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/dbt/utils/__init__.py +32 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/sql/__init__.py +3 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/pipeline.py +4 -1
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/preferences.py +4 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/repo_manager.py +5 -1
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/sync/__init__.py +1 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/sync/git_sync.py +2 -5
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/utils.py +2 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/pipeline_scheduler.py +19 -8
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/queue/process_queue.py +15 -12
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/api/clusters.py +1 -1
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/constants.py +1 -1
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/404.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/404.html.html +2 -2
- {mage-ai-0.8.98/mage_ai/server/frontend_dist/_next/static/-1TwyIVv18EeGuJPahFzG → mage-ai-0.8.99/mage_ai/server/frontend_dist/_next/static/WRxCTOtmZhTqQws_7OJZD}/_buildManifest.js +1 -1
- mage-ai-0.8.98/mage_ai/server/frontend_dist/_next/static/chunks/9350-1ff50f1d7b9ee754.js → mage-ai-0.8.99/mage_ai/server/frontend_dist/_next/static/chunks/9350-5191c83a8d0cf454.js +1 -1
- mage-ai-0.8.98/mage_ai/server/frontend_dist/_next/static/chunks/pages/_app-1a7dd14f59bb82dc.js → mage-ai-0.8.99/mage_ai/server/frontend_dist/_next/static/chunks/pages/_app-171846e16d26855a.js +1 -1
- mage-ai-0.8.98/mage_ai/server/frontend_dist/_next/static/chunks/pages/manage-3f5032353f15dd3c.js → mage-ai-0.8.99/mage_ai/server/frontend_dist/_next/static/chunks/pages/manage-af11f9cf94024ac0.js +1 -1
- mage-ai-0.8.98/mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/sync-data-513e80a872b783a7.js → mage-ai-0.8.99/mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/sync-data-90f8830890036eb2.js +1 -1
- mage-ai-0.8.99/mage_ai/server/frontend_dist/_next/static/chunks/pages/sign-in-a1871b8a537d823c.js +1 -0
- mage-ai-0.8.99/mage_ai/server/frontend_dist/_next/static/chunks/pages/version-control-48859b4e9c846212.js +1 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/files.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/index.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/manage/settings.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/manage/users/[user].html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/manage/users/new.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/manage/users.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/manage.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/pipeline-runs.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/pipelines/[pipeline]/backfills/[...slug].html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/pipelines/[pipeline]/backfills.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/pipelines/[pipeline]/edit.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/pipelines/[pipeline]/logs.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors/block-runs.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors/block-runtime.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/pipelines/[pipeline]/runs/[run].html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/pipelines/[pipeline]/runs.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/pipelines/[pipeline]/settings.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/pipelines/[pipeline]/syncs.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/pipelines/[pipeline]/triggers/[...slug].html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/pipelines/[pipeline]/triggers.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/pipelines/[pipeline].html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/pipelines.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/settings/account/profile.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/settings/workspace/preferences.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/settings/workspace/sync-data.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/settings/workspace/users.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/settings.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/sign-in.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/terminal.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/test.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/triggers.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/version-control.html +2 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/scheduler_manager.py +7 -2
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/server.py +21 -0
- mage-ai-0.8.99/mage_ai/services/newrelic/__init__.py +21 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/settings/__init__.py +10 -1
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/shared/hash.py +2 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_preparation/models/test_pipeline.py +5 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99/mage_ai.egg-info}/PKG-INFO +1 -1
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai.egg-info/SOURCES.txt +11 -9
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai.egg-info/requires.txt +3 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/requirements.txt +2 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/setup.py +3 -1
- mage-ai-0.8.98/mage_ai/authentication/oauth/constants.py +0 -3
- mage-ai-0.8.98/mage_ai/server/frontend_dist/_next/static/chunks/pages/sign-in-2925c2c1b0c5559a.js +0 -1
- mage-ai-0.8.98/mage_ai/server/frontend_dist/_next/static/chunks/pages/version-control-63fbd3334e4509d7.js +0 -1
- {mage-ai-0.8.98 → mage-ai-0.8.99}/LICENSE +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/MANIFEST.in +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/README.md +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/api_context.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/errors.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/logging.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/middleware.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/monitors/BaseMonitor.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/monitors/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/oauth_scope.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/operations/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/operations/base.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/operations/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/AutocompleteItemPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/BackfillPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/BasePolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/BlockOutputPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/BlockPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/BlockRunPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/BlockTemplatePolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/ClusterPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/DataProviderPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/EventRulePolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/ExtensionOptionPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/FileContentPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/FilePolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/FileVersionPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/FolderPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/GitBranchPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/GitFilePolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/IntegrationDestinationPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/IntegrationSourcePolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/IntegrationSourceStreamPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/KernelPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/LogPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/MonitorStatPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/OutputPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/PipelinePolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/PipelineRunPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/PipelineSchedulePolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/ProjectPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/PullRequestPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/RolePolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/SchedulerPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/SecretPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/StatusPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/SyncPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/UserPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/VariablePolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/WidgetPolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/WorkspacePolicy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/policies/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/AutocompleteItemPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/BackfillPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/BasePresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/BlockOutputPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/BlockPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/BlockRunPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/BlockTemplatePresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/ClusterPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/DataProviderPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/EventRulePresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/ExtensionOptionPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/FileContentPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/FilePresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/FileVersionPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/FolderPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/GitBranchPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/GitFilePresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/IntegrationDestinationPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/IntegrationSourcePresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/IntegrationSourceStreamPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/KernelPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/LogPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/MonitorStatPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/OauthPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/OutputPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/PipelineRunPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/PipelineSchedulePresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/ProjectPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/PullRequestPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/RolePresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/SchedulerPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/SecretPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/SessionPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/StatusPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/UserPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/VariablePresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/WidgetPresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/WorkspacePresenter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/mixins/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/presenters/mixins/users.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/AutocompleteItemResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/BackfillResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/BaseResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/BlockOutputResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/BlockResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/BlockRunResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/BlockTemplateResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/ClusterResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/DataProviderResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/DatabaseResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/EventRuleResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/ExtensionOptionResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/FileContentResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/FileResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/FileVersionResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/FolderResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/GenericResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/GitBranchResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/GitFileResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/IntegrationDestinationResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/IntegrationSourceResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/IntegrationSourceStreamResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/KernelResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/LogResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/MonitorStatResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/OutputResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/PipelineRunResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/PipelineScheduleResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/ProjectResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/PullRequestResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/Resource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/RoleResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/SchedulerResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/SecretResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/StatusResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/SyncResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/UserResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/VariableResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/WidgetResource.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/mixins/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/shared/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/shared/collections.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/resources/shared/collective_loaders.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/result_set.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/utils.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/api/views.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/authentication/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/authentication/ldap.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/authentication/oauth/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/authentication/oauth/utils.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/authentication/oauth2.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/authentication/passwords.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/autocomplete/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/autocomplete/utils.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/cli/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/cli/utils.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/cluster_manager/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/cluster_manager/aws/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/cluster_manager/aws/ecs_task_manager.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/cluster_manager/aws/emr_cluster_manager.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/cluster_manager/cluster_manager.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/cluster_manager/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/cluster_manager/gcp/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/cluster_manager/gcp/cloud_run_service_manager.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/cluster_manager/kubernetes/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/analysis/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/analysis/calculator.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/analysis/charts.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/analysis/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/cleaning_rules/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/cleaning_rules/base.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/cleaning_rules/clean_column_names.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/cleaning_rules/fix_syntax_errors.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/cleaning_rules/impute_values.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/cleaning_rules/reformat_values.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/cleaning_rules/remove_collinear_columns.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/cleaning_rules/remove_columns_with_high_empty_rate.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/cleaning_rules/remove_columns_with_single_value.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/cleaning_rules/remove_duplicate_rows.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/cleaning_rules/remove_outliers.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/column_types/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/column_types/column_type_detector.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/column_types/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/data_cleaner.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/estimators/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/estimators/base.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/estimators/encoders.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/estimators/outlier_removal.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/pipelines/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/pipelines/base.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/shared/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/shared/utils.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/statistics/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/statistics/calculator.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/action_code.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/base.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/column.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/custom_action.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/dependency_resolution.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/helpers.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/row.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/shared.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/spark/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/spark/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/spark/transformers.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/udf/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/udf/addition.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/udf/base.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/udf/constant.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/udf/date_trunc.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/udf/difference.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/udf/distance_between.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/udf/divide.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/udf/formatted_date.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/udf/if_else.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/udf/multiply.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/udf/string_replace.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/udf/string_split.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/udf/substring.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/utils.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_cleaner/transformer_actions/variable_replacer.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_integrations/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_integrations/destinations/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_integrations/destinations/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_integrations/logger/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_integrations/logger/utils.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_integrations/sources/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_integrations/sources/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_integrations/utils/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_integrations/utils/config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_integrations/utils/parsers.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_integrations/utils/scheduler.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/decorators.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/executors/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/executors/azure_container_instance_executor.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/executors/block_executor.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/executors/ecs_block_executor.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/executors/executor_factory.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/executors/gcp_cloud_run_block_executor.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/executors/k8s_block_executor.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/executors/k8s_pipeline_executor.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/executors/pipeline_executor.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/executors/pyspark_block_executor.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/executors/pyspark_pipeline_executor.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/executors/streaming_pipeline_executor.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/git/api.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/logging/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/logging/gcs_logger_manager.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/logging/logger.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/logging/logger_manager.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/logging/logger_manager_factory.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/logging/s3_logger_manager.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/dbt/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/errors.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/extension/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/extension/block.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/extension/great_expectations.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/extension/utils.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/integration/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/r/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/r/templates/data_exporter.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/r/templates/data_loader.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/r/templates/transformer.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/sql/bigquery.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/sql/clickhouse.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/sql/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/sql/druid.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/sql/mssql.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/sql/mysql.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/sql/postgres.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/sql/redshift.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/sql/snowflake.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/sql/spark.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/sql/trino.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/sql/utils/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/sql/utils/shared.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/utils.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/errors.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/file.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/pipelines/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/pipelines/integration_pipeline.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/pipelines/utils.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/project.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/triggers/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/utils.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/variable.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/widget/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/widget/charts.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/widget/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/widget/utils.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/shared/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/shared/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/shared/retry.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/shared/secrets.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/shared/stream.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/shared/utils.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/storage/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/storage/base_storage.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/storage/local_storage.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/storage/s3_storage.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/storage/utils.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/sync/base_sync.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/callbacks/base.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/callbacks/default.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/callbacks/orchestration/triggers/default.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/conditionals/base.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/custom/python/default.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/azure_blob_storage.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/bigquery.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/default.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/deltalake/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/deltalake/azure_blob_storage.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/deltalake/default.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/deltalake/gcs.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/deltalake/s3.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/file.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/google_cloud_storage.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/mongodb.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/mysql.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/orchestration/triggers/default.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/postgres.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/pyspark/default.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/pyspark/s3.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/r/default.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/redshift.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/s3.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/snowflake.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/streaming/dummy.yaml +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/streaming/kafka.yaml +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/streaming/kinesis.yaml +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/streaming/mongodb.yaml +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/streaming/opensearch.yaml +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_exporters/streaming/s3.yaml +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/api.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/azure_blob_storage.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/bigquery.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/default.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/deltalake/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/deltalake/azure_blob_storage.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/deltalake/default.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/deltalake/gcs.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/deltalake/s3.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/druid.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/file.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/google_cloud_storage.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/mongodb.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/mysql.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/oracledb.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/orchestration/triggers/default.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/postgres.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/pyspark/default.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/pyspark/s3.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/r/default.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/redshift.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/s3.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/snowflake.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/streaming/amazon_sqs.yaml +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/streaming/azure_event_hub.yaml +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/streaming/google_cloud_pubsub.yaml +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/streaming/kafka.yaml +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/streaming/kinesis.yaml +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/data_loaders/streaming/rabbitmq.yaml +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/extensions/great_expectations/default.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/main/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/main/metadata.yaml +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/pipeline/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/pipeline/metadata.yaml +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/pipeline_execution/emr_bootstrap.sh +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/pipeline_execution/spark_script.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/repo/.gitignore +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/repo/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/repo/charts/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/repo/custom/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/repo/data_exporters/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/repo/data_exporters/export_titanic_clean.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/repo/data_loaders/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/repo/data_loaders/load_titanic.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/repo/dbt/profiles.yml +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/repo/extensions/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/repo/io_config.yaml +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/repo/metadata.yaml +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/repo/pipelines/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/repo/pipelines/example_pipeline/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/repo/pipelines/example_pipeline/metadata.yaml +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/repo/requirements.txt +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/repo/scratchpads/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/repo/transformers/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/repo/transformers/fill_in_missing_values.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/repo/utils/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/sensors/bigquery.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/sensors/default.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/sensors/mysql.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/sensors/postgres.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/sensors/redshift.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/sensors/s3.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/sensors/snowflake.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/template.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/testable.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/data_warehouse_transformer.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/default.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/default_pyspark.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/default_streaming.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/r/default.r +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/suggestion_fmt.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/action.jinja +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/average.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/clean_column_name.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/count.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/count_distinct.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/diff.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/first.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/fix_syntax_errors.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/impute.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/last.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/max.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/median.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/min.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/normalize.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/reformat.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/remove.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/remove_outliers.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/select.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/shift_down.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/shift_up.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/standardize.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/column/sum.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/row/drop_duplicate.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/row/filter.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/row/remove.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/templates/transformers/transformer_actions/row/sort.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/utils/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/utils/block/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/utils/block/convert_content.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/variable_manager.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/errors/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/errors/base.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/extensions/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/extensions/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/extensions/dbt/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/extensions/dbt/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/extensions/great_expectations/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/extensions/great_expectations/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/azure_blob_storage.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/base.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/bigquery.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/clickhouse.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/druid.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/export_utils.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/file.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/google_cloud_storage.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/io_config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/mongodb.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/mssql.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/mysql.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/oracledb.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/postgres.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/redshift.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/s3.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/snowflake.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/spark.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/sql.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/trino.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/io/utils.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/airflow.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/backfills/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/backfills/service.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/alembic.ini +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/database_manager.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/errors.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/README.md +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/env.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/script.py.mako +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/053ee2c10d85_add_completed_at.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/067326f43bc3_add_variables_to_pipelinerun.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/1a737bdee53b_add_preferences_to_user.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/1bfc6d904929_add_indices_to_schedule_models.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/1d8e65aeefdd_add_settings_to_pipeline_schedule.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/1f9353eddbc6_add_secrets_table.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/21e31d66ccea_add_pipeline_uuid_index_to_pipeline_.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/2266370f589b_add_indexes_to_pipeline_run.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/26305e46df52_create_backfills_table.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/3fafd217efa7_add_event_matcher_model.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/52ab80005742_add_variables_to_pipeline_schedule.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/5cd59ec4cf1d_add_passed_sla_to_pipeline_run.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/643b6e65e814_add_unique_indexes_on_authentication_.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/66e67039b8a2_add_executor_type_to_pipeline_run.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/6aecc9bc451c_update_schedule_type_enum.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/7ac6fed06918_add_token_column_to_pipeline_schedule_.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/83a74eca6ea1_create_user_roles_roles_and_permissions.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/847ea6602d6f_add_upstream_failed_to_block_run_status.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/84de4cdd6126_add_sla_to_pipeline_schedule.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/8971d4cd5b39_add_event_variables_and_metadata_to_.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/97ff9f55a3c0_create_users_oauth2_applications_and_.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/b01be687e537_add_started_at_to_block_run.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/c07a23ff782b_add_initial_tables.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/dfe49d040487_add_condition_failed_status_to_block_.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/e7beb59b44f9_add_repo_path_to_pipeline_schedule.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/migrations/versions/ec5df57a1c60_add_metrics_to_block_runs.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/models/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/models/base.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/models/oauth.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/models/schedules.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/models/secrets.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/db/process.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/execution_process_manager.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/job_manager.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/metrics/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/metrics/pipeline_run.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/monitor/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/monitor/monitor_stats.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/notification/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/notification/config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/notification/sender.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/queue/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/queue/celery_queue.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/queue/config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/queue/queue.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/queue/queue_factory.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/run_status_checker.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/triggers/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/triggers/api.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/triggers/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/triggers/event_trigger.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/triggers/loop_time_trigger.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/triggers/time_trigger.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/utils/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/orchestration/utils/resources.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/sample_datasets/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/sample_datasets/product_purchases.csv +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/sample_datasets/salary_survey.csv +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/sample_datasets/titanic_survival.csv +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/sample_datasets/user_emails.csv +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/active_kernel.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/api/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/api/base.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/api/blocks.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/api/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/api/downloads.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/api/errors.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/api/events.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/api/integration_sources.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/api/projects.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/api/triggers.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/api/v1.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/app.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/client/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/client/mage.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/data/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/data/base.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/data/models.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/docs_server.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/execution_manager.py +0 -0
- {mage-ai-0.8.98/mage_ai/server/frontend_dist/_next/static/-1TwyIVv18EeGuJPahFzG → mage-ai-0.8.99/mage_ai/server/frontend_dist/_next/static/WRxCTOtmZhTqQws_7OJZD}/_middlewareManifest.js +0 -0
- {mage-ai-0.8.98/mage_ai/server/frontend_dist/_next/static/-1TwyIVv18EeGuJPahFzG → mage-ai-0.8.99/mage_ai/server/frontend_dist/_next/static/WRxCTOtmZhTqQws_7OJZD}/_ssgManifest.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/1005-d364db1eba919edd.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/1150.1378afaa474df64a.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/1240.0819f45820d22263.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/1286-b90bd4b7f8abfc3a.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/1424-90c0f66ba2f86b88.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/1450.d383f64c169d4278.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/1774-aa51ef1da7217ff9.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/2481.0454a0e25dc7e027.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/2508.724531e7f9cf5f36.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/2545.8371b39c898ae92b.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/261.0a24b4ece1d29aa1.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/266.e301071d22592682.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/2714-1e79e9f2e998b544.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/2786-7af4c9bf2a4cc59f.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/29107295-989a0767a635d9d5.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/2920.fb0b924e801abbd0.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/3453.992f4b1667e9882c.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/3467.38cd0654ba6f788f.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/3752-5fd670b1a1c2dd6e.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/3835.df296b4e4078e985.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/3883-c95563b9f60ae526.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/3898.880191695bb05845.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/4042.5e16d36209052351.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/4092.536ee541241f4538.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/4127-3b7aa3d094304e35.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/4259-b71c17f69499f7bd.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/4388.04098706f32e69e7.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/440.3ab77942f659ea0c.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/4407-5d6ce62e21d9364e.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/4450.79f14f763d55c63e.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/4454.13a2404adecaa39e.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/4495-4f0340aa82e0c623.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/4776.753ad29fa0a29a4a.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/4804-01a10103ebe26ca8.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/4822-aea254026405c098.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/4883.a5bb0edbf8f3cc8f.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/5008.29c2662ecc2b04c7.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/5104.1edcf4437c471dd4.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/5164.857023e800905b6f.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/547-7c60d654aca692e2.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/551-506f3e09bb4033e2.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/5729.0f2748e9e6dab951.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/5824.628653557e904674.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/5872-1767c45ee6690ae5.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/5896-10a676bcc86978cc.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/6042.c59010de9e699437.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/6115.0c85e507543394ea.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/6116.871a682ddf535aca.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/6434.10380ee0968636ba.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/6443.7b6d2b4e51018184.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/6507.d3a17777d2c294e6.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/6694-c8f2a68074420906.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/6958.8f39c585d36737a7.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/7011-81dd8269c4806d26.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/7107-b89772bb2a2669df.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/72fdc299.2d5ec188af5d0049.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/739.3d24945544b37e52.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/7400-9031de945bce2a47.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/7607-324c3a1e4e7d0628.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/7722-a74e6f977993e75e.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/7815-6eb7d2c7b62e0b18.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/792.010ca00d79b2112f.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/7947.77be4bec4d47774e.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/7951.fee8b6c27c9ef777.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/8018.968bf87c390e3312.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/8097.b0345f30a7390c1d.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/8256.290ceb269b1ffe26.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/826.75268ee34f93393a.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/8277.5003e1d94bb85156.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/8312-e3c26b4fc7afd6df.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/844-1e171f361e63b36d.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/8735-ade9aa7568d373ef.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/8762.dff300f86bef8573.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/8789-4f858e520d46973b.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/8807.a68c69c8fe0a8c01.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/8849.db0d50b4d84b09a6.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/8901.21d26d5a1ee473fe.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/8920.5700e380a2999098.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/9258.6c6ef544c701a011.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/9307.d4baf7aebbcef1f0.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/9361.a0820e3069f5ef74.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/9363.6b811b4c86277e07.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/9437.a3c32f45cf9ef69b.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/9566.f8bd24768ed14ecb.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/9633.40e5056ca1e2b22a.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/9785.5ff26cb26d84d6a1.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/9832-f97919376d52e3bf.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/9855.c4394a68322be9f8.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/9927.e82a3e1e21990d77.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/bd1a647f.fe5d87096be24a62.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/framework-7c365855dab1bf41.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/main-bb0dd5375146d7fd.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/_error-235304e5badb19eb.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/files-e4e778f8f5e1bf2e.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/index-b6cd94a079629572.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/manage/settings-c788c1b127999825.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/manage/users/[user]-b4650224a19e8fe6.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/manage/users/new-931eb719e3fae29c.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/manage/users-d3724bde0b186dd9.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipeline-runs-5c96190c27f65d97.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/backfills/[...slug]-34326db259f922d1.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/backfills-c46015c4f25b5234.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/edit-503ecb7a72257b79.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/logs-a959e5a6c11d93fe.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/monitors/block-runs-d94ca17a9fcbd017.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/monitors/block-runtime-972502b4d77b7407.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/monitors-092f364100995ba6.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/runs/[run]-2994b8ab7862c07b.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/runs-7b31b851e2544b42.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/settings-55748e7fcf738d91.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/syncs-22ce754d4343025a.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/triggers/[...slug]-4445619d4eabe065.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/triggers-b7db0b682fadb840.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]-ca9457e1a6bced4b.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines-b7934a8ee5b45736.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/account/profile-ee0931af3abb55b3.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/preferences-f8a59d718751be9a.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/settings/workspace/users-9f82673fc438ea83.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/settings-d594a66a568306da.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/terminal-0d2260ad08dfe44a.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/test-b24d77dc84843924.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/pages/triggers-d9d92753838d5c60.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/polyfills-5cd94c89d3acac5f.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/chunks/webpack-8f51011a10b384a1.js +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/_next/static/css/d1e8e64d0b07af2f.css +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/favicon.ico +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Fira_Code/ttf/FiraCode-Bold.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Fira_Code/ttf/FiraCode-Light.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Fira_Code/ttf/FiraCode-Medium.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Fira_Code/ttf/FiraCode-Regular.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Fira_Code/ttf/FiraCode-Retina.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Fira_Code/ttf/FiraCode-SemiBold.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto/LICENSE.txt +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-Black.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-BlackItalic.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-Bold.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-BoldItalic.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-Italic.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-Light.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-LightItalic.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-Medium.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-MediumItalic.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-Regular.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-Thin.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto/Roboto-ThinItalic.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/LICENSE.txt +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/README.txt +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/RobotoMono-Italic-VariableFont_wght.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/RobotoMono-VariableFont_wght.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-Bold.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-BoldItalic.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-ExtraLight.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-ExtraLightItalic.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-Italic.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-Light.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-LightItalic.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-Medium.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-MediumItalic.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-Regular.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-SemiBold.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-SemiBoldItalic.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-Thin.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/fonts/Roboto_Mono/static/RobotoMono-ThinItalic.ttf +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/images/backfill.jpg +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/images/banner-shape-purple-peach.jpg +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/images/dashboard-api-key.webp +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/images/extensions/dbt/logo.png +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/images/extensions/great_expectations/logo.png +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/images/extra.jpg +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/images/monitor.jpg +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/images/run B.jpg +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/images/sessions/abstract.png +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/frontend_dist/vercel.svg +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/kernel_output_parser.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/kernels.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/logger.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/subscriber.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/terminal_server.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/utils/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/utils/frontend_renderer.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/utils/output_display.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/server/websocket_server.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/airbyte/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/airbyte/client.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/airbyte/config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/airbyte/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/airbyte/exceptions.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/airbyte/server.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/aws/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/aws/ecs/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/aws/ecs/config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/aws/ecs/ecs.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/aws/emr/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/aws/emr/config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/aws/emr/emr.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/aws/emr/emr_basics.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/aws/emr/launcher.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/aws/emr/resource_manager.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/aws/events/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/aws/events/events.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/aws/s3/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/aws/s3/s3.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/aws/secrets_manager/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/aws/secrets_manager/secrets_manager.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/azure/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/azure/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/azure/container_instance/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/azure/container_instance/config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/azure/container_instance/container_instance.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/datadog/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/dbt/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/dbt/config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/dbt/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/dbt/dbt.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/email/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/email/config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/email/email.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/gcp/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/gcp/cloud_run/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/gcp/cloud_run/cloud_run.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/gcp/cloud_run/config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/google_chat/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/google_chat/config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/google_chat/google_chat.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/hightouch/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/hightouch/config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/hightouch/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/hightouch/hightouch.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/k8s/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/k8s/config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/k8s/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/k8s/job_manager.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/metaplane/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/metaplane/config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/metaplane/metaplane.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/opsgenie/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/opsgenie/config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/opsgenie/opsgenie.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/slack/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/slack/config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/slack/slack.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/spark/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/spark/config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/spark/spark.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/stitch/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/stitch/config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/stitch/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/stitch/stitch.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/teams/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/teams/config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/teams/teams.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/tracking/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/services/tracking/metrics.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/shared/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/shared/array.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/shared/code.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/shared/config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/shared/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/shared/conversions.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/shared/custom_types.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/shared/dates.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/shared/environments.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/shared/http_client.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/shared/io.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/shared/logger.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/shared/multi.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/shared/parsers.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/shared/retry.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/shared/security.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/shared/strings.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/shared/urls.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/shared/utils.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/streaming/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/streaming/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/streaming/sinks/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/streaming/sinks/amazon_s3.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/streaming/sinks/base.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/streaming/sinks/dummy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/streaming/sinks/kafka.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/streaming/sinks/kinesis.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/streaming/sinks/mongodb.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/streaming/sinks/opensearch.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/streaming/sinks/sink_factory.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/streaming/sources/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/streaming/sources/amazon_sqs.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/streaming/sources/azure_event_hub.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/streaming/sources/base.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/streaming/sources/google_cloud_pubsub.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/streaming/sources/kafka.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/streaming/sources/kinesis.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/streaming/sources/rabbitmq.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/streaming/sources/shared.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/streaming/sources/source_factory.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/api/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/api/operations/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/api/operations/test_base.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/api/operations/test_operations.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/api/operations/test_pipeline_schedules.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/api/operations/test_sessions.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/api/operations/test_syncs.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/api/operations/test_users.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/api/test_utils.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/base_test.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/cleaning_rules/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/cleaning_rules/test_clean_column_names.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/cleaning_rules/test_fix_syntax_error.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/cleaning_rules/test_impute_values.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/cleaning_rules/test_reformat_values.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/cleaning_rules/test_remove_collinear_columns.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/cleaning_rules/test_remove_columns_with_high_empty_rate.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/cleaning_rules/test_remove_columns_with_single_value.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/cleaning_rules/test_remove_duplicate_rows.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/cleaning_rules/test_remove_outliers.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/statistics/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/statistics/test_calculator.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/test_column_type_detector.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/transformer_actions/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/transformer_actions/shared.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/transformer_actions/test_base.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/transformer_actions/test_column.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/transformer_actions/test_custom_actions.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/transformer_actions/test_helpers.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/transformer_actions/test_row.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/transformer_actions/test_utils.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_cleaner/transformer_actions/test_variable_replacer.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_preparation/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_preparation/git/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_preparation/git/test_git.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_preparation/models/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_preparation/models/block/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_preparation/models/block/test_sql.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_preparation/models/test_block.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_preparation/models/test_variable.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_preparation/test_templates.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/data_preparation/test_variable_manager.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/factory.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/io/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/io/test_config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/io/test_export_utils.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/orchestration/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/orchestration/db/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/orchestration/db/test_models.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/orchestration/notification/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/orchestration/notification/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/orchestration/notification/test_config.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/orchestration/notification/test_sender.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/orchestration/queue/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/orchestration/queue/test_process_queue.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/orchestration/test_execution_process_manager.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/orchestration/test_job_manager.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/orchestration/test_pipeline_scheduler.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/orchestration/triggers/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/orchestration/triggers/test_event_trigger.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/orchestration/triggers/test_loop_time_trigger.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/services/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/services/aws/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/services/aws/s3/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/services/aws/s3/test_s3.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/services/datadog/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/services/datadog/test_datadog.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/services/k8s/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/services/k8s/test_job_manager.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/shared/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/shared/test_hash.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/shared/test_io.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/shared/test_retry.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/shared/test_security.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/streaming/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/streaming/sinks/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/streaming/sinks/test_amazon_s3.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/streaming/sinks/test_dummy.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/streaming/sinks/test_kinesis.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/streaming/sinks/test_mongodb.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/streaming/sinks/test_opensearch.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/streaming/sinks/test_sink_factory.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/streaming/sources/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/streaming/sources/test_amazon_sqs.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/streaming/sources/test_azure_event_hub.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/streaming/sources/test_google_cloud_pubsub.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/streaming/sources/test_kafka.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/streaming/sources/test_kinesis.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/streaming/sources/test_rabbitmq.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/streaming/sources/test_source_factory.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/tests/test_shared.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/usage_statistics/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/usage_statistics/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/usage_statistics/logger.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/utils/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/utils/code.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/utils/logger/__init__.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/utils/logger/constants.py +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai.egg-info/dependency_links.txt +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai.egg-info/entry_points.txt +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai.egg-info/top_level.txt +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/pyproject.toml +0 -0
- {mage-ai-0.8.98 → mage-ai-0.8.99}/setup.cfg +0 -0
|
@@ -10,9 +10,16 @@ class OauthPolicy(BasePolicy):
|
|
|
10
10
|
|
|
11
11
|
OauthPolicy.allow_actions([
|
|
12
12
|
constants.CREATE,
|
|
13
|
+
], scopes=[
|
|
14
|
+
OauthScope.CLIENT_PRIVATE,
|
|
15
|
+
], condition=lambda policy: policy.has_at_least_viewer_role())
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
OauthPolicy.allow_actions([
|
|
13
19
|
constants.DETAIL,
|
|
14
20
|
], scopes=[
|
|
15
21
|
OauthScope.CLIENT_PRIVATE,
|
|
22
|
+
OauthScope.CLIENT_PUBLIC,
|
|
16
23
|
], condition=lambda policy: policy.has_at_least_viewer_role())
|
|
17
24
|
|
|
18
25
|
|
|
@@ -20,6 +27,13 @@ OauthPolicy.allow_read(OauthPresenter.default_attributes, scopes=[
|
|
|
20
27
|
OauthScope.CLIENT_PRIVATE,
|
|
21
28
|
], on_action=[
|
|
22
29
|
constants.CREATE,
|
|
30
|
+
], condition=lambda policy: policy.has_at_least_viewer_role())
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
OauthPolicy.allow_read(OauthPresenter.default_attributes, scopes=[
|
|
34
|
+
OauthScope.CLIENT_PRIVATE,
|
|
35
|
+
OauthScope.CLIENT_PUBLIC,
|
|
36
|
+
], on_action=[
|
|
23
37
|
constants.DETAIL,
|
|
24
38
|
], condition=lambda policy: policy.has_at_least_viewer_role())
|
|
25
39
|
|
|
@@ -40,4 +54,5 @@ OauthPolicy.allow_query([
|
|
|
40
54
|
constants.DETAIL,
|
|
41
55
|
], scopes=[
|
|
42
56
|
OauthScope.CLIENT_PRIVATE,
|
|
57
|
+
OauthScope.CLIENT_PUBLIC,
|
|
43
58
|
], condition=lambda policy: policy.has_at_least_viewer_role())
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import json
|
|
1
2
|
import urllib.parse
|
|
2
3
|
from datetime import datetime, timedelta
|
|
3
4
|
|
|
@@ -5,13 +6,17 @@ from mage_ai.api.errors import ApiError
|
|
|
5
6
|
from mage_ai.api.resources.GenericResource import GenericResource
|
|
6
7
|
from mage_ai.authentication.oauth2 import generate_access_token
|
|
7
8
|
from mage_ai.authentication.oauth.constants import (
|
|
9
|
+
ACTIVE_DIRECTORY_CLIENT_ID,
|
|
8
10
|
GITHUB_CLIENT_ID,
|
|
9
11
|
GITHUB_STATE,
|
|
12
|
+
OAUTH_PROVIDER_ACTIVE_DIRECTORY,
|
|
10
13
|
OAUTH_PROVIDER_GITHUB,
|
|
14
|
+
VALID_OAUTH_PROVIDERS,
|
|
11
15
|
)
|
|
12
16
|
from mage_ai.authentication.oauth.utils import access_tokens_for_provider
|
|
13
17
|
from mage_ai.orchestration.db import safe_db_query
|
|
14
18
|
from mage_ai.orchestration.db.models.oauth import Oauth2AccessToken, Oauth2Application
|
|
19
|
+
from mage_ai.settings import ACTIVE_DIRECTORY_DIRECTORY_ID
|
|
15
20
|
|
|
16
21
|
|
|
17
22
|
class OauthResource(GenericResource):
|
|
@@ -23,7 +28,7 @@ class OauthResource(GenericResource):
|
|
|
23
28
|
provider = payload.get('provider')
|
|
24
29
|
token = payload.get('token')
|
|
25
30
|
|
|
26
|
-
if not provider or provider not in
|
|
31
|
+
if not provider or provider not in VALID_OAUTH_PROVIDERS:
|
|
27
32
|
error.update(dict(message='Invalid provider.'))
|
|
28
33
|
raise ApiError(error)
|
|
29
34
|
|
|
@@ -66,7 +71,7 @@ class OauthResource(GenericResource):
|
|
|
66
71
|
model = dict(provider=pk)
|
|
67
72
|
|
|
68
73
|
error = ApiError.RESOURCE_INVALID.copy()
|
|
69
|
-
if pk not in
|
|
74
|
+
if pk not in VALID_OAUTH_PROVIDERS:
|
|
70
75
|
error.update(dict(message='Invalid provider.'))
|
|
71
76
|
raise ApiError(error)
|
|
72
77
|
|
|
@@ -95,5 +100,26 @@ class OauthResource(GenericResource):
|
|
|
95
100
|
query_strings.append(f'{k}={v}')
|
|
96
101
|
|
|
97
102
|
model['url'] = f"https://github.com/login/oauth/authorize?{'&'.join(query_strings)}"
|
|
103
|
+
elif OAUTH_PROVIDER_ACTIVE_DIRECTORY == pk:
|
|
104
|
+
ad_directory_id = ACTIVE_DIRECTORY_DIRECTORY_ID
|
|
105
|
+
if ad_directory_id:
|
|
106
|
+
mage_redirect_uri = '?'.join([
|
|
107
|
+
redirect_uri,
|
|
108
|
+
f'provider={pk}',
|
|
109
|
+
])
|
|
110
|
+
query = dict(
|
|
111
|
+
client_id=ACTIVE_DIRECTORY_CLIENT_ID,
|
|
112
|
+
redirect_uri=f'https://api.mage.ai/v1/oauth/{pk}',
|
|
113
|
+
response_type='code',
|
|
114
|
+
scope='User.Read',
|
|
115
|
+
state=urllib.parse.quote_plus(json.dumps(dict(
|
|
116
|
+
redirect_uri=mage_redirect_uri,
|
|
117
|
+
tenant_id=ad_directory_id,
|
|
118
|
+
))),
|
|
119
|
+
)
|
|
120
|
+
query_strings = []
|
|
121
|
+
for k, v in query.items():
|
|
122
|
+
query_strings.append(f'{k}={v}')
|
|
123
|
+
model['url'] = f"https://login.microsoftonline.com/{ad_directory_id}/oauth2/v2.0/authorize?{'&'.join(query_strings)}" # noqa: E501
|
|
98
124
|
|
|
99
125
|
return self(model, user, **kwargs)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
|
|
3
|
+
from sqlalchemy import or_
|
|
3
4
|
from sqlalchemy.orm import aliased
|
|
4
5
|
|
|
5
6
|
from mage_ai.api.operations.constants import DELETE
|
|
@@ -81,7 +82,10 @@ class PipelineResource(BaseResource):
|
|
|
81
82
|
]).
|
|
82
83
|
filter(
|
|
83
84
|
a.pipeline_uuid.in_(pipeline_uuids),
|
|
84
|
-
|
|
85
|
+
or_(
|
|
86
|
+
a.repo_path == get_repo_path(),
|
|
87
|
+
a.repo_path.is_(None),
|
|
88
|
+
)
|
|
85
89
|
)
|
|
86
90
|
).all()
|
|
87
91
|
return group_by(lambda x: x.pipeline_uuid, result)
|
|
@@ -4,6 +4,8 @@ from mage_ai.api.errors import ApiError
|
|
|
4
4
|
from mage_ai.api.resources.BaseResource import BaseResource
|
|
5
5
|
from mage_ai.authentication.ldap import new_ldap_connection
|
|
6
6
|
from mage_ai.authentication.oauth2 import encode_token, generate_access_token
|
|
7
|
+
from mage_ai.authentication.oauth.active_directory import get_user_info
|
|
8
|
+
from mage_ai.authentication.oauth.constants import OAUTH_PROVIDER_ACTIVE_DIRECTORY
|
|
7
9
|
from mage_ai.authentication.passwords import verify_password
|
|
8
10
|
from mage_ai.orchestration.db import safe_db_query
|
|
9
11
|
from mage_ai.orchestration.db.models.oauth import Role, User
|
|
@@ -18,6 +20,22 @@ class SessionResource(BaseResource):
|
|
|
18
20
|
email = payload.get('email')
|
|
19
21
|
password = payload.get('password')
|
|
20
22
|
username = payload.get('username')
|
|
23
|
+
token = payload.get('token')
|
|
24
|
+
provider = payload.get('provider')
|
|
25
|
+
|
|
26
|
+
if token and provider:
|
|
27
|
+
if provider == OAUTH_PROVIDER_ACTIVE_DIRECTORY:
|
|
28
|
+
user_info = get_user_info(token)
|
|
29
|
+
principal_name = user_info.get('userPrincipalName')
|
|
30
|
+
user = User.query.filter(User.email == principal_name).first()
|
|
31
|
+
if not user: # noqa: E712
|
|
32
|
+
print('first user login, creating user.')
|
|
33
|
+
user = User.create(
|
|
34
|
+
username=principal_name,
|
|
35
|
+
email=principal_name,
|
|
36
|
+
)
|
|
37
|
+
oauth_token = generate_access_token(user, kwargs['oauth_client'])
|
|
38
|
+
return self(oauth_token, user, **kwargs)
|
|
21
39
|
|
|
22
40
|
error = ApiError.RESOURCE_NOT_FOUND
|
|
23
41
|
error.update({'message': 'Email/username and/or password invalid.'})
|
|
@@ -46,7 +46,8 @@ class WorkspaceResource(GenericResource):
|
|
|
46
46
|
query_user = None
|
|
47
47
|
if user_id:
|
|
48
48
|
user_id = user_id[0]
|
|
49
|
-
|
|
49
|
+
if user_id:
|
|
50
|
+
query_user = User.query.get(user_id)
|
|
50
51
|
|
|
51
52
|
instances = self.get_instances(cluster_type)
|
|
52
53
|
instance_map = {
|
|
@@ -313,7 +314,7 @@ class WorkspaceResource(GenericResource):
|
|
|
313
314
|
namespace = os.getenv(KUBE_NAMESPACE)
|
|
314
315
|
workload_manager = WorkloadManager(namespace)
|
|
315
316
|
|
|
316
|
-
instances = workload_manager.
|
|
317
|
+
instances = workload_manager.list_workloads()
|
|
317
318
|
elif cluster_type == ClusterType.ECS:
|
|
318
319
|
from mage_ai.cluster_manager.aws.ecs_task_manager import EcsTaskManager
|
|
319
320
|
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from typing import Dict
|
|
2
|
+
|
|
3
|
+
import requests
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def get_user_info(token: str) -> Dict:
|
|
7
|
+
url = 'https://graph.microsoft.com/v1.0/me'
|
|
8
|
+
|
|
9
|
+
headers = {
|
|
10
|
+
'Content-Type': 'application\\json',
|
|
11
|
+
'Authorization': 'Bearer {}'.format(token)
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
resp = requests.get(url, headers=headers)
|
|
15
|
+
result = resp.json()
|
|
16
|
+
|
|
17
|
+
return result
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
ACTIVE_DIRECTORY_CLIENT_ID = '51aec820-9d49-40a9-b046-17c1f28f620d'
|
|
2
|
+
|
|
3
|
+
GITHUB_CLIENT_ID = '8577f13ddc81e2848b07'
|
|
4
|
+
GITHUB_STATE = '1337'
|
|
5
|
+
|
|
6
|
+
OAUTH_PROVIDER_ACTIVE_DIRECTORY = 'active_directory'
|
|
7
|
+
OAUTH_PROVIDER_GITHUB = 'github'
|
|
8
|
+
|
|
9
|
+
VALID_OAUTH_PROVIDERS = [
|
|
10
|
+
OAUTH_PROVIDER_ACTIVE_DIRECTORY,
|
|
11
|
+
OAUTH_PROVIDER_GITHUB,
|
|
12
|
+
]
|
|
@@ -10,6 +10,7 @@ from typer.core import TyperGroup
|
|
|
10
10
|
|
|
11
11
|
from mage_ai.cli.utils import parse_runtime_variables
|
|
12
12
|
from mage_ai.data_preparation.repo_manager import ProjectType
|
|
13
|
+
from mage_ai.services.newrelic import initialize_new_relic
|
|
13
14
|
from mage_ai.shared.constants import InstanceType
|
|
14
15
|
|
|
15
16
|
|
|
@@ -191,6 +192,9 @@ def run(
|
|
|
191
192
|
project_path = os.path.abspath(project_path)
|
|
192
193
|
set_repo_path(project_path)
|
|
193
194
|
|
|
195
|
+
from contextlib import nullcontext
|
|
196
|
+
|
|
197
|
+
import newrelic.agent
|
|
194
198
|
import sentry_sdk
|
|
195
199
|
|
|
196
200
|
from mage_ai.data_preparation.executors.executor_factory import ExecutorFactory
|
|
@@ -207,55 +211,58 @@ def run(
|
|
|
207
211
|
sentry_dsn,
|
|
208
212
|
traces_sample_rate=SENTRY_TRACES_SAMPLE_RATE,
|
|
209
213
|
)
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
214
|
+
(enable_new_relic, application) = initialize_new_relic()
|
|
215
|
+
|
|
216
|
+
with newrelic.agent.BackgroundTask(application, name="mage-run", group='Task') \
|
|
217
|
+
if enable_new_relic else nullcontext():
|
|
218
|
+
runtime_variables = dict()
|
|
219
|
+
if runtime_vars is not None:
|
|
220
|
+
runtime_variables = parse_runtime_variables(runtime_vars)
|
|
221
|
+
|
|
222
|
+
sys.path.append(os.path.dirname(project_path))
|
|
223
|
+
pipeline = Pipeline.get(pipeline_uuid, repo_path=project_path)
|
|
224
|
+
|
|
225
|
+
db_connection.start_session()
|
|
226
|
+
|
|
227
|
+
if pipeline_run_id is None:
|
|
228
|
+
default_variables = get_global_variables(pipeline_uuid)
|
|
229
|
+
global_vars = merge_dict(default_variables, runtime_variables)
|
|
230
|
+
else:
|
|
231
|
+
pipeline_run = PipelineRun.query.get(pipeline_run_id)
|
|
232
|
+
global_vars = pipeline_run.get_variables(extra_variables=runtime_variables)
|
|
233
|
+
|
|
234
|
+
if template_runtime_configuration is not None:
|
|
235
|
+
template_runtime_configuration = json.loads(template_runtime_configuration)
|
|
236
|
+
|
|
237
|
+
if block_uuid is None:
|
|
238
|
+
ExecutorFactory.get_pipeline_executor(
|
|
239
|
+
pipeline,
|
|
240
|
+
execution_partition=execution_partition,
|
|
241
|
+
executor_type=executor_type,
|
|
242
|
+
).execute(
|
|
243
|
+
analyze_outputs=False,
|
|
244
|
+
global_vars=global_vars,
|
|
245
|
+
pipeline_run_id=pipeline_run_id,
|
|
246
|
+
run_sensors=not skip_sensors,
|
|
247
|
+
run_tests=test,
|
|
248
|
+
update_status=False,
|
|
249
|
+
)
|
|
250
|
+
else:
|
|
251
|
+
ExecutorFactory.get_block_executor(
|
|
252
|
+
pipeline,
|
|
253
|
+
block_uuid,
|
|
254
|
+
execution_partition=execution_partition,
|
|
255
|
+
executor_type=executor_type,
|
|
256
|
+
).execute(
|
|
257
|
+
analyze_outputs=False,
|
|
258
|
+
block_run_id=block_run_id,
|
|
259
|
+
callback_url=callback_url,
|
|
260
|
+
global_vars=global_vars,
|
|
261
|
+
pipeline_run_id=pipeline_run_id,
|
|
262
|
+
template_runtime_configuration=template_runtime_configuration,
|
|
263
|
+
update_status=False,
|
|
264
|
+
)
|
|
265
|
+
print('Pipeline run completed.')
|
|
259
266
|
|
|
260
267
|
|
|
261
268
|
@app.command()
|
|
@@ -26,6 +26,7 @@ from mage_ai.orchestration.constants import (
|
|
|
26
26
|
DB_USER,
|
|
27
27
|
)
|
|
28
28
|
from mage_ai.settings import MAGE_SETTINGS_ENVIRONMENT_VARIABLES
|
|
29
|
+
from mage_ai.shared.array import find
|
|
29
30
|
|
|
30
31
|
|
|
31
32
|
class WorkloadManager:
|
|
@@ -53,24 +54,57 @@ class WorkloadManager:
|
|
|
53
54
|
|
|
54
55
|
return False
|
|
55
56
|
|
|
56
|
-
def
|
|
57
|
+
def list_workloads(self):
|
|
57
58
|
services = self.core_client.list_namespaced_service(self.namespace).items
|
|
58
|
-
|
|
59
|
+
workloads_list = []
|
|
60
|
+
|
|
61
|
+
pods = self.core_client.list_namespaced_pod(self.namespace).items
|
|
62
|
+
pod_map = dict()
|
|
63
|
+
for pod in pods:
|
|
64
|
+
try:
|
|
65
|
+
name = pod.metadata.labels.get('app')
|
|
66
|
+
pod_map[name] = pod
|
|
67
|
+
except Exception:
|
|
68
|
+
pass
|
|
59
69
|
for service in services:
|
|
60
70
|
try:
|
|
61
71
|
labels = service.metadata.labels
|
|
62
72
|
if not labels.get('dev-instance'):
|
|
63
73
|
continue
|
|
64
|
-
|
|
65
|
-
|
|
74
|
+
name = labels.get('app')
|
|
75
|
+
pod = pod_map[name]
|
|
76
|
+
service_type = service.spec.type
|
|
77
|
+
workload = dict(
|
|
66
78
|
name=labels.get('app'),
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
79
|
+
type=service_type,
|
|
80
|
+
)
|
|
81
|
+
if pod:
|
|
82
|
+
status = pod.status.phase
|
|
83
|
+
workload['status'] = status.upper()
|
|
84
|
+
|
|
85
|
+
node_name = pod.spec.node_name
|
|
86
|
+
ip = None
|
|
87
|
+
if service_type == 'NodePort':
|
|
88
|
+
try:
|
|
89
|
+
if node_name:
|
|
90
|
+
items = self.core_client.list_node(
|
|
91
|
+
field_selector=f'metadata.name={node_name}').items
|
|
92
|
+
node = items[0]
|
|
93
|
+
ip = find(
|
|
94
|
+
lambda a: a.type == 'ExternalIP',
|
|
95
|
+
node.status.addresses
|
|
96
|
+
).address
|
|
97
|
+
if ip:
|
|
98
|
+
node_port = service.spec.ports[0].node_port
|
|
99
|
+
workload['ip'] = f'{ip}:{node_port}'
|
|
100
|
+
except Exception:
|
|
101
|
+
pass
|
|
102
|
+
|
|
103
|
+
workloads_list.append(workload)
|
|
70
104
|
except Exception:
|
|
71
105
|
pass
|
|
72
106
|
|
|
73
|
-
return
|
|
107
|
+
return workloads_list
|
|
74
108
|
|
|
75
109
|
def create_workload(
|
|
76
110
|
self,
|
|
@@ -88,7 +122,10 @@ class WorkloadManager:
|
|
|
88
122
|
'service_account_name',
|
|
89
123
|
os.getenv(KUBE_SERVICE_ACCOUNT_NAME),
|
|
90
124
|
)
|
|
91
|
-
storage_class_name = kwargs.get(
|
|
125
|
+
storage_class_name = kwargs.get(
|
|
126
|
+
'storage_class_name',
|
|
127
|
+
os.getenv(KUBE_STORAGE_CLASS_NAME, 'default'),
|
|
128
|
+
)
|
|
92
129
|
storage_access_mode = kwargs.get('storage_access_mode', 'ReadWriteOnce')
|
|
93
130
|
storage_request_size = kwargs.get('storage_request_size', 2)
|
|
94
131
|
|
|
@@ -486,7 +486,7 @@ class Git:
|
|
|
486
486
|
self._run_command(cmd)
|
|
487
487
|
print(f'Installing {requirements_file} completed successfully.')
|
|
488
488
|
except Exception as err:
|
|
489
|
-
print(f'Skip installing {requirements_file} due to error: {err}')
|
|
489
|
+
print(f'Skip installing {requirements_file} due to error: {str(err)}')
|
|
490
490
|
pass
|
|
491
491
|
|
|
492
492
|
def __create_ssh_keys(self) -> str:
|
{mage-ai-0.8.98 → mage-ai-0.8.99}/mage_ai/data_preparation/models/block/dbt/utils/__init__.py
RENAMED
|
@@ -28,6 +28,7 @@ from mage_ai.data_preparation.models.block.sql import (
|
|
|
28
28
|
snowflake,
|
|
29
29
|
spark,
|
|
30
30
|
trino,
|
|
31
|
+
clickhouse,
|
|
31
32
|
)
|
|
32
33
|
from mage_ai.data_preparation.models.constants import BlockLanguage, BlockType
|
|
33
34
|
from mage_ai.data_preparation.repo_manager import get_repo_path
|
|
@@ -597,6 +598,23 @@ def config_file_loader_and_configuration(block, profile_target: str) -> Dict:
|
|
|
597
598
|
data_provider_schema=schema,
|
|
598
599
|
export_write_policy=ExportWritePolicy.REPLACE,
|
|
599
600
|
)
|
|
601
|
+
elif DataSource.CLICKHOUSE == profile_type:
|
|
602
|
+
database = profile.get('schema')
|
|
603
|
+
interface = profile.get('driver')
|
|
604
|
+
|
|
605
|
+
config_file_loader = ConfigFileLoader(config=dict(
|
|
606
|
+
CLICKHOUSE_DATABASE=database,
|
|
607
|
+
CLICKHOUSE_HOST=profile.get('host'),
|
|
608
|
+
CLICKHOUSE_INTERFACE=interface,
|
|
609
|
+
CLICKHOUSE_PASSWORD=profile.get('password'),
|
|
610
|
+
CLICKHOUSE_PORT=profile.get('port'),
|
|
611
|
+
CLICKHOUSE_USERNAME=profile.get('user'),
|
|
612
|
+
))
|
|
613
|
+
configuration = dict(
|
|
614
|
+
data_provider=profile_type,
|
|
615
|
+
data_provider_database=database,
|
|
616
|
+
export_write_policy=ExportWritePolicy.REPLACE,
|
|
617
|
+
)
|
|
600
618
|
|
|
601
619
|
if not config_file_loader or not configuration:
|
|
602
620
|
attr = parse_attributes(block)
|
|
@@ -733,6 +751,15 @@ def create_upstream_tables(
|
|
|
733
751
|
block,
|
|
734
752
|
**kwargs_shared,
|
|
735
753
|
)
|
|
754
|
+
elif DataSource.CLICKHOUSE == data_provider:
|
|
755
|
+
from mage_ai.io.clickhouse import ClickHouse
|
|
756
|
+
|
|
757
|
+
loader = ClickHouse.with_config(config_file_loader)
|
|
758
|
+
clickhouse.create_upstream_block_tables(
|
|
759
|
+
loader,
|
|
760
|
+
block,
|
|
761
|
+
**kwargs_shared,
|
|
762
|
+
)
|
|
736
763
|
|
|
737
764
|
block.upstream_blocks = upstream_blocks_init
|
|
738
765
|
|
|
@@ -930,6 +957,11 @@ def execute_query(
|
|
|
930
957
|
|
|
931
958
|
with Trino.with_config(config_file_loader) as loader:
|
|
932
959
|
return loader.load(query_string, **shared_kwargs)
|
|
960
|
+
elif DataSource.CLICKHOUSE == data_provider:
|
|
961
|
+
from mage_ai.io.clickhouse import ClickHouse
|
|
962
|
+
|
|
963
|
+
loader = ClickHouse.with_config(config_file_loader)
|
|
964
|
+
return loader.load(query_string, **shared_kwargs)
|
|
933
965
|
|
|
934
966
|
|
|
935
967
|
def query_from_compiled_sql(block, profile_target: str, limit: int = None) -> DataFrame:
|
|
@@ -137,8 +137,9 @@ def execute_sql_code(
|
|
|
137
137
|
NotFound: 404 Not found: Table database:schema.table_name
|
|
138
138
|
was not found in location XX
|
|
139
139
|
"""
|
|
140
|
+
total_retries = 5
|
|
140
141
|
tries = 0
|
|
141
|
-
while tries <
|
|
142
|
+
while tries < total_retries:
|
|
142
143
|
sleep(tries)
|
|
143
144
|
tries += 1
|
|
144
145
|
try:
|
|
@@ -149,7 +150,7 @@ def execute_sql_code(
|
|
|
149
150
|
)
|
|
150
151
|
return [result]
|
|
151
152
|
except Exception as err:
|
|
152
|
-
if '404' not in str(err):
|
|
153
|
+
if '404' not in str(err) or tries == total_retries:
|
|
153
154
|
raise err
|
|
154
155
|
elif DataSource.CLICKHOUSE.value == data_provider:
|
|
155
156
|
from mage_ai.io.clickhouse import ClickHouse
|
|
@@ -53,6 +53,7 @@ class Pipeline:
|
|
|
53
53
|
self.executor_type = None
|
|
54
54
|
self.executor_config = dict()
|
|
55
55
|
self.name = None
|
|
56
|
+
self.notification_config = dict()
|
|
56
57
|
self.repo_path = repo_path or get_repo_path()
|
|
57
58
|
self.schedules = []
|
|
58
59
|
self.uuid = uuid
|
|
@@ -425,7 +426,8 @@ class Pipeline:
|
|
|
425
426
|
self.callback_configs = config.get('callbacks') or []
|
|
426
427
|
self.conditional_configs = config.get('conditionals') or []
|
|
427
428
|
self.executor_type = config.get('executor_type')
|
|
428
|
-
self.executor_config = config.get('
|
|
429
|
+
self.executor_config = config.get('executor_config') or dict()
|
|
430
|
+
self.notification_config = config.get('notification_config') or dict()
|
|
429
431
|
self.spark_config = config.get('spark_config') or dict()
|
|
430
432
|
self.widget_configs = config.get('widgets') or []
|
|
431
433
|
|
|
@@ -543,6 +545,7 @@ class Pipeline:
|
|
|
543
545
|
executor_count=self.executor_count,
|
|
544
546
|
executor_type=self.executor_type,
|
|
545
547
|
name=self.name,
|
|
548
|
+
notification_config=self.notification_config,
|
|
546
549
|
type=self.type.value if type(self.type) is not str else self.type,
|
|
547
550
|
updated_at=self.updated_at,
|
|
548
551
|
uuid=self.uuid,
|
|
@@ -16,7 +16,8 @@ GIT_USERNAME_VAR = 'GIT_USERNAME'
|
|
|
16
16
|
GIT_EMAIL_VAR = 'GIT_EMAIL'
|
|
17
17
|
GIT_AUTH_TYPE_VAR = 'GIT_AUTH_TYPE'
|
|
18
18
|
GIT_BRANCH_VAR = 'GIT_BRANCH'
|
|
19
|
-
|
|
19
|
+
GIT_SYNC_ON_PIPELINE_RUN_VAR = 'GIT_SYNC_ON_PIPELINE_RUN'
|
|
20
|
+
GIT_SYNC_ON_START_VAR = 'GIT_SYNC_ON_PIPELINE_RUN'
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
class Preferences:
|
|
@@ -52,7 +53,8 @@ class Preferences:
|
|
|
52
53
|
username=os.getenv(GIT_USERNAME_VAR),
|
|
53
54
|
email=os.getenv(GIT_EMAIL_VAR),
|
|
54
55
|
branch=os.getenv(GIT_BRANCH_VAR),
|
|
55
|
-
sync_on_pipeline_run=bool(int(os.getenv(
|
|
56
|
+
sync_on_pipeline_run=bool(int(os.getenv(GIT_SYNC_ON_PIPELINE_RUN_VAR) or 0)),
|
|
57
|
+
sync_on_start=bool(int(os.getenv(GIT_SYNC_ON_START_VAR) or 0)),
|
|
56
58
|
)
|
|
57
59
|
else:
|
|
58
60
|
project_sync_config = project_preferences.get('sync_config', dict())
|
|
@@ -213,7 +213,11 @@ def get_repo_config(repo_path=None) -> RepoConfig:
|
|
|
213
213
|
|
|
214
214
|
|
|
215
215
|
def get_project_type(repo_path=None) -> ProjectType:
|
|
216
|
-
|
|
216
|
+
try:
|
|
217
|
+
return get_repo_config(repo_path=repo_path).project_type
|
|
218
|
+
except Exception:
|
|
219
|
+
# default to standalone project type
|
|
220
|
+
return ProjectType.STANDALONE
|
|
217
221
|
|
|
218
222
|
|
|
219
223
|
def set_repo_path(repo_path: str) -> None:
|
|
@@ -21,6 +21,7 @@ class GitConfig(BaseConfig):
|
|
|
21
21
|
repo_path: str = os.getcwd()
|
|
22
22
|
branch: str = 'main'
|
|
23
23
|
sync_on_pipeline_run: bool = False
|
|
24
|
+
sync_on_start: bool = False
|
|
24
25
|
auth_type: AuthType = AuthType.SSH
|
|
25
26
|
# User settings moved to UserGitConfig, these will be used for Git syncs
|
|
26
27
|
username: str = ''
|
|
@@ -11,12 +11,9 @@ class GitSync(BaseSync):
|
|
|
11
11
|
self.git_manager = Git(sync_config)
|
|
12
12
|
|
|
13
13
|
def sync_data(self):
|
|
14
|
-
|
|
15
|
-
f'Syncing data with remote repo {self.remote_repo_link}',
|
|
16
|
-
verbose=True,
|
|
17
|
-
):
|
|
18
|
-
self.git_manager.reset(self.branch)
|
|
14
|
+
self.git_manager.reset(self.branch)
|
|
19
15
|
|
|
16
|
+
# Reset git sync by cloning the remote repo
|
|
20
17
|
def reset(self):
|
|
21
18
|
with VerboseFunctionExec(
|
|
22
19
|
f'Attempting to clone from remote repo {self.remote_repo_link}',
|
|
@@ -51,6 +51,8 @@ def write_template(template_source: str, dest_path: str) -> None:
|
|
|
51
51
|
template_source (str): Template source code to write to file
|
|
52
52
|
dest_path (str): Destination file to write template source code to.
|
|
53
53
|
"""
|
|
54
|
+
os.makedirs(os.path.dirname(dest_path), exist_ok=True)
|
|
55
|
+
|
|
54
56
|
with open(dest_path, 'w') as foutput:
|
|
55
57
|
foutput.write(template_source)
|
|
56
58
|
|