mage-ai 0.9.17__py3-none-any.whl → 0.9.19__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (130) hide show
  1. mage_ai/api/middleware.py +9 -6
  2. mage_ai/api/policies/PageBlockLayoutPolicy.py +46 -0
  3. mage_ai/api/policies/PipelinePolicy.py +1 -0
  4. mage_ai/api/presenters/PageBlockLayoutPresenter.py +12 -0
  5. mage_ai/api/resources/FileContentResource.py +4 -3
  6. mage_ai/api/resources/PageBlockLayoutResource.py +22 -0
  7. mage_ai/api/resources/PipelineResource.py +60 -13
  8. mage_ai/data_preparation/executors/k8s_pipeline_executor.py +14 -1
  9. mage_ai/data_preparation/models/block/dbt/__init__.py +2 -0
  10. mage_ai/data_preparation/models/block/dbt/utils/__init__.py +2 -1
  11. mage_ai/presenters/__init__.py +0 -0
  12. mage_ai/presenters/block_layout/__init__.py +0 -0
  13. mage_ai/presenters/block_layout/constants.py +1 -0
  14. mage_ai/presenters/block_layout/page.py +86 -0
  15. mage_ai/presenters/constants.py +2 -0
  16. mage_ai/server/api/v1.py +16 -0
  17. mage_ai/server/constants.py +1 -1
  18. mage_ai/server/frontend_dist/404.html +2 -2
  19. mage_ai/server/frontend_dist/404.html.html +2 -2
  20. mage_ai/server/frontend_dist/_next/static/DTEnEDO68KRvd3eboRuhE/_buildManifest.js +1 -0
  21. mage_ai/server/frontend_dist/_next/static/chunks/1484-e209ef2f20fcfc81.js +1 -0
  22. mage_ai/server/frontend_dist/_next/static/chunks/4250-9944d52bed19617c.js +1 -0
  23. mage_ai/server/frontend_dist/_next/static/chunks/pages/overview-d12c3b172bd25751.js +1 -0
  24. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/edit-a214672a55b1ce9f.js +1 -0
  25. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines-bf8a8f58e19dca2d.js +1 -0
  26. mage_ai/server/frontend_dist/files.html +2 -2
  27. mage_ai/server/frontend_dist/global-data-products/[...slug].html +2 -2
  28. mage_ai/server/frontend_dist/global-data-products.html +2 -2
  29. mage_ai/server/frontend_dist/index.html +2 -2
  30. mage_ai/server/frontend_dist/manage/settings.html +2 -2
  31. mage_ai/server/frontend_dist/manage/users/[user].html +2 -2
  32. mage_ai/server/frontend_dist/manage/users/new.html +2 -2
  33. mage_ai/server/frontend_dist/manage/users.html +2 -2
  34. mage_ai/server/frontend_dist/manage.html +2 -2
  35. mage_ai/server/frontend_dist/overview.html +2 -2
  36. mage_ai/server/frontend_dist/pipeline-runs.html +2 -2
  37. mage_ai/server/frontend_dist/pipelines/[pipeline]/backfills/[...slug].html +2 -2
  38. mage_ai/server/frontend_dist/pipelines/[pipeline]/backfills.html +2 -2
  39. mage_ai/server/frontend_dist/pipelines/[pipeline]/edit.html +2 -2
  40. mage_ai/server/frontend_dist/pipelines/[pipeline]/logs.html +2 -2
  41. mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors/block-runs.html +2 -2
  42. mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors/block-runtime.html +2 -2
  43. mage_ai/server/frontend_dist/pipelines/[pipeline]/monitors.html +2 -2
  44. mage_ai/server/frontend_dist/pipelines/[pipeline]/runs/[run].html +2 -2
  45. mage_ai/server/frontend_dist/pipelines/[pipeline]/runs.html +2 -2
  46. mage_ai/server/frontend_dist/pipelines/[pipeline]/settings.html +2 -2
  47. mage_ai/server/frontend_dist/pipelines/[pipeline]/syncs.html +2 -2
  48. mage_ai/server/frontend_dist/pipelines/[pipeline]/triggers/[...slug].html +2 -2
  49. mage_ai/server/frontend_dist/pipelines/[pipeline]/triggers.html +2 -2
  50. mage_ai/server/frontend_dist/pipelines/[pipeline].html +2 -2
  51. mage_ai/server/frontend_dist/pipelines.html +2 -2
  52. mage_ai/server/frontend_dist/settings/account/profile.html +2 -2
  53. mage_ai/server/frontend_dist/settings/workspace/preferences.html +2 -2
  54. mage_ai/server/frontend_dist/settings/workspace/sync-data.html +2 -2
  55. mage_ai/server/frontend_dist/settings/workspace/users.html +2 -2
  56. mage_ai/server/frontend_dist/settings.html +2 -2
  57. mage_ai/server/frontend_dist/sign-in.html +2 -2
  58. mage_ai/server/frontend_dist/templates/[...slug].html +2 -2
  59. mage_ai/server/frontend_dist/templates.html +2 -2
  60. mage_ai/server/frontend_dist/terminal.html +2 -2
  61. mage_ai/server/frontend_dist/test.html +2 -2
  62. mage_ai/server/frontend_dist/triggers.html +2 -2
  63. mage_ai/server/frontend_dist/version-control.html +2 -2
  64. mage_ai/server/frontend_dist_base_path_template/404.html +2 -2
  65. mage_ai/server/frontend_dist_base_path_template/404.html.html +2 -2
  66. mage_ai/server/frontend_dist_base_path_template/_next/static/IH3dqMU16smA5y2jlNbyO/_buildManifest.js +1 -0
  67. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/1484-e209ef2f20fcfc81.js +1 -0
  68. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/4250-9944d52bed19617c.js +1 -0
  69. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/overview-d12c3b172bd25751.js +1 -0
  70. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/edit-a214672a55b1ce9f.js +1 -0
  71. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines-bf8a8f58e19dca2d.js +1 -0
  72. mage_ai/server/frontend_dist_base_path_template/files.html +2 -2
  73. mage_ai/server/frontend_dist_base_path_template/global-data-products/[...slug].html +2 -2
  74. mage_ai/server/frontend_dist_base_path_template/global-data-products.html +2 -2
  75. mage_ai/server/frontend_dist_base_path_template/index.html +2 -2
  76. mage_ai/server/frontend_dist_base_path_template/manage/settings.html +2 -2
  77. mage_ai/server/frontend_dist_base_path_template/manage/users/[user].html +2 -2
  78. mage_ai/server/frontend_dist_base_path_template/manage/users/new.html +2 -2
  79. mage_ai/server/frontend_dist_base_path_template/manage/users.html +2 -2
  80. mage_ai/server/frontend_dist_base_path_template/manage.html +2 -2
  81. mage_ai/server/frontend_dist_base_path_template/overview.html +2 -2
  82. mage_ai/server/frontend_dist_base_path_template/pipeline-runs.html +2 -2
  83. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/backfills/[...slug].html +2 -2
  84. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/backfills.html +2 -2
  85. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/edit.html +2 -2
  86. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/logs.html +2 -2
  87. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/monitors/block-runs.html +2 -2
  88. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/monitors/block-runtime.html +2 -2
  89. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/monitors.html +2 -2
  90. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/runs/[run].html +2 -2
  91. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/runs.html +2 -2
  92. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/settings.html +2 -2
  93. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/syncs.html +2 -2
  94. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/triggers/[...slug].html +2 -2
  95. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline]/triggers.html +2 -2
  96. mage_ai/server/frontend_dist_base_path_template/pipelines/[pipeline].html +2 -2
  97. mage_ai/server/frontend_dist_base_path_template/pipelines.html +2 -2
  98. mage_ai/server/frontend_dist_base_path_template/settings/account/profile.html +2 -2
  99. mage_ai/server/frontend_dist_base_path_template/settings/workspace/preferences.html +2 -2
  100. mage_ai/server/frontend_dist_base_path_template/settings/workspace/sync-data.html +2 -2
  101. mage_ai/server/frontend_dist_base_path_template/settings/workspace/users.html +2 -2
  102. mage_ai/server/frontend_dist_base_path_template/settings.html +2 -2
  103. mage_ai/server/frontend_dist_base_path_template/sign-in.html +2 -2
  104. mage_ai/server/frontend_dist_base_path_template/templates/[...slug].html +2 -2
  105. mage_ai/server/frontend_dist_base_path_template/templates.html +2 -2
  106. mage_ai/server/frontend_dist_base_path_template/terminal.html +2 -2
  107. mage_ai/server/frontend_dist_base_path_template/test.html +2 -2
  108. mage_ai/server/frontend_dist_base_path_template/triggers.html +2 -2
  109. mage_ai/server/frontend_dist_base_path_template/version-control.html +2 -2
  110. mage_ai/server/server.py +6 -0
  111. {mage_ai-0.9.17.dist-info → mage_ai-0.9.19.dist-info}/METADATA +6 -6
  112. {mage_ai-0.9.17.dist-info → mage_ai-0.9.19.dist-info}/RECORD +120 -110
  113. mage_ai/server/frontend_dist/_next/static/1DZSWnWcVE2obH85IV0op/_buildManifest.js +0 -1
  114. mage_ai/server/frontend_dist/_next/static/chunks/1484-65c543b9350ab7a0.js +0 -1
  115. mage_ai/server/frontend_dist/_next/static/chunks/pages/overview-7f790238fe70d9ab.js +0 -1
  116. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines/[pipeline]/edit-158c1a93ac7a951a.js +0 -1
  117. mage_ai/server/frontend_dist/_next/static/chunks/pages/pipelines-cbaf371216a70d43.js +0 -1
  118. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/1484-65c543b9350ab7a0.js +0 -1
  119. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/overview-7f790238fe70d9ab.js +0 -1
  120. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines/[pipeline]/edit-158c1a93ac7a951a.js +0 -1
  121. mage_ai/server/frontend_dist_base_path_template/_next/static/chunks/pages/pipelines-cbaf371216a70d43.js +0 -1
  122. mage_ai/server/frontend_dist_base_path_template/_next/static/soS0jKSs4SMF0J72xdj2L/_buildManifest.js +0 -1
  123. /mage_ai/server/frontend_dist/_next/static/{1DZSWnWcVE2obH85IV0op → DTEnEDO68KRvd3eboRuhE}/_middlewareManifest.js +0 -0
  124. /mage_ai/server/frontend_dist/_next/static/{1DZSWnWcVE2obH85IV0op → DTEnEDO68KRvd3eboRuhE}/_ssgManifest.js +0 -0
  125. /mage_ai/server/frontend_dist_base_path_template/_next/static/{soS0jKSs4SMF0J72xdj2L → IH3dqMU16smA5y2jlNbyO}/_middlewareManifest.js +0 -0
  126. /mage_ai/server/frontend_dist_base_path_template/_next/static/{soS0jKSs4SMF0J72xdj2L → IH3dqMU16smA5y2jlNbyO}/_ssgManifest.js +0 -0
  127. {mage_ai-0.9.17.dist-info → mage_ai-0.9.19.dist-info}/LICENSE +0 -0
  128. {mage_ai-0.9.17.dist-info → mage_ai-0.9.19.dist-info}/WHEEL +0 -0
  129. {mage_ai-0.9.17.dist-info → mage_ai-0.9.19.dist-info}/entry_points.txt +0 -0
  130. {mage_ai-0.9.17.dist-info → mage_ai-0.9.19.dist-info}/top_level.txt +0 -0
mage_ai/api/middleware.py CHANGED
@@ -1,22 +1,26 @@
1
+ import json
1
2
  from json.decoder import JSONDecodeError
3
+
4
+ from tornado.web import RequestHandler
5
+
2
6
  from mage_ai.api.errors import ApiError
3
7
  from mage_ai.api.utils import authenticate_client_and_token, parse_cookie_header
4
8
  from mage_ai.authentication.oauth2 import decode_token
5
9
  from mage_ai.orchestration.db.models.oauth import Oauth2Application
6
- from mage_ai.settings import OAUTH2_APPLICATION_CLIENT_ID, REQUIRE_USER_AUTHENTICATION
7
10
  from mage_ai.server.api.constants import (
8
11
  COOKIE_OAUTH_TOKEN,
9
- ENDPOINTS_BYPASS_OAUTH_CHECK,
10
12
  HEADER_API_KEY,
11
13
  HEADER_OAUTH_TOKEN,
12
14
  URL_PARAMETER_API_KEY,
13
15
  )
16
+ from mage_ai.settings import OAUTH2_APPLICATION_CLIENT_ID, REQUIRE_USER_AUTHENTICATION
14
17
  from mage_ai.shared.array import find
15
- from tornado.web import RequestHandler
16
- import json
17
18
 
18
19
 
19
20
  class OAuthMiddleware(RequestHandler):
21
+ def initialize(self, bypass_oauth_check: bool = False) -> None:
22
+ self.bypass_oauth_check = bypass_oauth_check
23
+
20
24
  def prepare(self):
21
25
  self.request.__setattr__('current_user', None)
22
26
  self.request.__setattr__('error', None)
@@ -26,8 +30,7 @@ class OAuthMiddleware(RequestHandler):
26
30
  if not REQUIRE_USER_AUTHENTICATION:
27
31
  return
28
32
 
29
- paths = [path for path in self.request.uri.split('/') if path]
30
- if any(p in ENDPOINTS_BYPASS_OAUTH_CHECK for p in paths):
33
+ if self.bypass_oauth_check:
31
34
  return
32
35
 
33
36
  api_key = self.request.headers.get(HEADER_API_KEY, None)
@@ -0,0 +1,46 @@
1
+ from mage_ai.api.oauth_scope import OauthScope
2
+ from mage_ai.api.operations import constants
3
+ from mage_ai.api.policies.BasePolicy import BasePolicy
4
+ from mage_ai.api.presenters.PageBlockLayoutPresenter import PageBlockLayoutPresenter
5
+
6
+
7
+ class PageBlockLayoutPolicy(BasePolicy):
8
+ pass
9
+
10
+
11
+ PageBlockLayoutPolicy.allow_actions([
12
+ constants.DETAIL,
13
+ ], scopes=[
14
+ OauthScope.CLIENT_PRIVATE,
15
+ ], condition=lambda policy: policy.has_at_least_viewer_role())
16
+
17
+
18
+ PageBlockLayoutPolicy.allow_actions([
19
+ constants.UPDATE,
20
+ ], scopes=[
21
+ OauthScope.CLIENT_PRIVATE,
22
+ ], condition=lambda policy: policy.has_at_least_editor_role())
23
+
24
+
25
+ PageBlockLayoutPolicy.allow_read(PageBlockLayoutPresenter.default_attributes + [], scopes=[
26
+ OauthScope.CLIENT_PRIVATE,
27
+ ], on_action=[
28
+ constants.DETAIL,
29
+ ], condition=lambda policy: policy.has_at_least_viewer_role())
30
+
31
+
32
+ PageBlockLayoutPolicy.allow_read(PageBlockLayoutPresenter.default_attributes + [], scopes=[
33
+ OauthScope.CLIENT_PRIVATE,
34
+ ], on_action=[
35
+ constants.UPDATE,
36
+ ], condition=lambda policy: policy.has_at_least_editor_role())
37
+
38
+
39
+ PageBlockLayoutPolicy.allow_write([
40
+ 'blocks',
41
+ 'layout',
42
+ ], scopes=[
43
+ OauthScope.CLIENT_PRIVATE,
44
+ ], on_action=[
45
+ constants.UPDATE,
46
+ ], condition=lambda policy: policy.has_at_least_editor_role())
@@ -83,6 +83,7 @@ PipelinePolicy.allow_write([
83
83
  'clone_pipeline_uuid',
84
84
  'custom_template_uuid',
85
85
  'extensions',
86
+ 'llm',
86
87
  'name',
87
88
  'type',
88
89
  ], scopes=[
@@ -0,0 +1,12 @@
1
+ from mage_ai.api.presenters.BasePresenter import BasePresenter
2
+
3
+
4
+ class PageBlockLayoutPresenter(BasePresenter):
5
+ default_attributes = [
6
+ 'blocks',
7
+ 'layout',
8
+ 'uuid',
9
+ ]
10
+
11
+ def present(self, **kwargs):
12
+ return self.resource.model.to_dict()
@@ -16,13 +16,14 @@ class FileContentResource(GenericResource):
16
16
  @safe_db_query
17
17
  def member(self, pk, user, **kwargs):
18
18
  file_path = urllib.parse.unquote(pk)
19
+ file = File.from_path(file_path, get_repo_path())
19
20
  try:
20
- ensure_file_is_in_project(file_path)
21
+ ensure_file_is_in_project(file.file_path)
21
22
  except FileNotInProjectError:
22
23
  error = ApiError.RESOURCE_INVALID.copy()
23
- error.update(message=f'File at path: {file_path} is not in the project directory.')
24
+ error.update(
25
+ message=f'File at path: {file.file_path} is not in the project directory.')
24
26
  raise ApiError(error)
25
- file = File.from_path(file_path, get_repo_path())
26
27
  return self(file, user, **kwargs)
27
28
 
28
29
  async def update(self, payload, **kwargs):
@@ -0,0 +1,22 @@
1
+ import urllib.parse
2
+
3
+ from mage_ai.api.errors import ApiError
4
+ from mage_ai.api.resources.GenericResource import GenericResource
5
+ from mage_ai.presenters.block_layout.page import PageBlockLayout
6
+
7
+
8
+ class PageBlockLayoutResource(GenericResource):
9
+ @classmethod
10
+ def member(self, pk, user, **kwargs):
11
+ uuid = urllib.parse.unquote(pk)
12
+ model = PageBlockLayout.load(uuid)
13
+
14
+ if not model:
15
+ raise ApiError(ApiError.RESOURCE_NOT_FOUND)
16
+
17
+ return self(model, user, **kwargs)
18
+
19
+ def update(self, payload, **kwargs):
20
+ self.model.blocks = payload.get('blocks')
21
+ self.model.layout = payload.get('layout')
22
+ self.model.save()
@@ -1,4 +1,5 @@
1
1
  import asyncio
2
+ from enum import Enum
2
3
  from typing import Dict, List
3
4
 
4
5
  from sqlalchemy import or_
@@ -162,7 +163,7 @@ class PipelineResource(BaseResource):
162
163
 
163
164
  @classmethod
164
165
  @safe_db_query
165
- def create(self, payload, user, **kwargs):
166
+ async def create(self, payload, user, **kwargs):
166
167
  clone_pipeline_uuid = payload.get('clone_pipeline_uuid')
167
168
  template_uuid = payload.get('custom_template_uuid')
168
169
  name = payload.get('name')
@@ -172,24 +173,70 @@ class PipelineResource(BaseResource):
172
173
  if template_uuid:
173
174
  custom_template = CustomPipelineTemplate.load(template_uuid=template_uuid)
174
175
  pipeline = custom_template.create_pipeline(name)
175
- elif clone_pipeline_uuid is None:
176
+ elif clone_pipeline_uuid is not None:
177
+ source = Pipeline.get(clone_pipeline_uuid)
178
+ pipeline = Pipeline.duplicate(source, name)
179
+ else:
176
180
  pipeline = Pipeline.create(
177
181
  name,
178
182
  pipeline_type=pipeline_type,
179
183
  repo_path=get_repo_path(),
180
184
  )
181
- elif llm_payload:
182
- llm_use_case = llm_payload.get('use_case')
183
- # llm_request = llm_payload.get('request')
184
185
 
185
- # llm_resource = await LlmResource.create(llm_payload, user, **kwargs)
186
- # llm_response = llm_resource.model.get('response')
187
-
188
- if LLMUseCase.GENERATE_PIPELINE_WITH_DESCRIPTION == llm_use_case:
189
- pass
190
- else:
191
- source = Pipeline.get(clone_pipeline_uuid)
192
- pipeline = Pipeline.duplicate(source, name)
186
+ if llm_payload:
187
+ llm_use_case = llm_payload.get('use_case')
188
+
189
+ if LLMUseCase.GENERATE_PIPELINE_WITH_DESCRIPTION == llm_use_case:
190
+ llm_resource = await LlmResource.create(llm_payload, user, **kwargs)
191
+ llm_response = llm_resource.model.get('response')
192
+
193
+ blocks_mapping = {}
194
+
195
+ for block_number, block_payload_orig in llm_response.items():
196
+ block_payload = block_payload_orig.copy()
197
+
198
+ configuration = block_payload.get('configuration')
199
+ if configuration:
200
+ for k, v in configuration.items():
201
+ configuration[k] = v.value if isinstance(v, Enum) else v
202
+
203
+ block_payload['configuration'] = configuration
204
+
205
+ block_uuid = f'{pipeline.uuid}_block_{block_number}'
206
+ block_resource = await BlockResource.create(merge_dict(
207
+ dict(
208
+ name=block_uuid,
209
+ type=block_payload.get('block_type'),
210
+ ),
211
+ ignore_keys(block_payload, [
212
+ 'block_type',
213
+ 'upstream_blocks',
214
+ ]),
215
+ ), user, **merge_dict(kwargs, dict(
216
+ parent_model=pipeline,
217
+ )))
218
+
219
+ upstream_block_uuids = block_payload.get('upstream_blocks')
220
+
221
+ pipeline.add_block(
222
+ block_resource.model,
223
+ None,
224
+ priority=len(upstream_block_uuids) if upstream_block_uuids else 0,
225
+ widget=False,
226
+ )
227
+
228
+ blocks_mapping[block_number] = dict(
229
+ block=block_resource.model,
230
+ upstream_block_uuids=upstream_block_uuids,
231
+ )
232
+
233
+ for block_number, config in blocks_mapping.items():
234
+ upstream_block_uuids = config['upstream_block_uuids']
235
+
236
+ if upstream_block_uuids and len(upstream_block_uuids) >= 1:
237
+ block = config['block']
238
+ arr = [f'{pipeline.uuid}_block_{bn}' for bn in upstream_block_uuids]
239
+ block.update(dict(upstream_blocks=arr))
193
240
 
194
241
  return self(pipeline, user, **kwargs)
195
242
 
@@ -2,10 +2,20 @@ import traceback
2
2
  from typing import Dict
3
3
 
4
4
  from mage_ai.data_preparation.executors.pipeline_executor import PipelineExecutor
5
+ from mage_ai.data_preparation.models.pipeline import Pipeline
6
+ from mage_ai.services.k8s.config import K8sExecutorConfig
5
7
  from mage_ai.services.k8s.job_manager import JobManager as K8sJobManager
8
+ from mage_ai.shared.hash import merge_dict
6
9
 
7
10
 
8
11
  class K8sPipelineExecutor(PipelineExecutor):
12
+ def __init__(self, pipeline: Pipeline, execution_partition: str = None):
13
+ super().__init__(pipeline, execution_partition=execution_partition)
14
+ self.executor_config = self.pipeline.repo_config.k8s_executor_config or dict()
15
+ if self.pipeline.executor_config is not None:
16
+ self.executor_config = merge_dict(self.executor_config, self.pipeline.executor_config)
17
+ self.executor_config = K8sExecutorConfig.load(config=self.executor_config)
18
+
9
19
  def cancel(
10
20
  self,
11
21
  pipeline_run_id: int = None,
@@ -42,4 +52,7 @@ class K8sPipelineExecutor(PipelineExecutor):
42
52
  logger=self.logger,
43
53
  logging_tags=kwargs.get('tags', dict()),
44
54
  )
45
- job_manager.run_job(f'{cmd} {options_str}')
55
+ job_manager.run_job(
56
+ f'{cmd} {options_str}',
57
+ k8s_config=self.executor_config,
58
+ )
@@ -297,6 +297,7 @@ class DBTBlock(Block):
297
297
  cmds,
298
298
  preexec_fn=os.setsid, # os.setsid doesn't work on Windows
299
299
  stdout=stdout,
300
+ stderr=subprocess.STDOUT,
300
301
  )
301
302
 
302
303
  if not snapshot:
@@ -319,6 +320,7 @@ class DBTBlock(Block):
319
320
  encoding='utf-8',
320
321
  preexec_fn=os.setsid, # os.setsid doesn't work on Windows
321
322
  stdout=stdout,
323
+ stderr=subprocess.STDOUT,
322
324
  universal_newlines=True,
323
325
  )
324
326
  for line in proc.stdout:
@@ -1166,7 +1166,8 @@ def build_command_line_arguments(
1166
1166
  # If args do not contain "--vars", continue.
1167
1167
  pass
1168
1168
 
1169
- args += content_args
1169
+ # Add non-empty content args
1170
+ args += [c for c in content_args if c]
1170
1171
 
1171
1172
  variables_json = {}
1172
1173
  for k, v in variables.items():
File without changes
File without changes
@@ -0,0 +1 @@
1
+ BLOCK_LAYOUT_FILENAME_WITH_EXTENSION = 'block_layout.yaml'
@@ -0,0 +1,86 @@
1
+ import os
2
+ import shutil
3
+ import yaml
4
+ from dataclasses import dataclass, field
5
+ from typing import Dict
6
+
7
+ from mage_ai.data_preparation.repo_manager import RepoConfig, get_repo_config
8
+ from mage_ai.presenters.block_layout.constants import BLOCK_LAYOUT_FILENAME_WITH_EXTENSION
9
+ from mage_ai.presenters.constants import (
10
+ MAGE_PRESENTERS_DIRECTORY_DEFAULT,
11
+ MAGE_PRESENTERS_DIRECTORY_ENVIRONMENT_VARIABLE_NAME,
12
+ )
13
+ from mage_ai.settings.repo import get_repo_path
14
+ from mage_ai.shared.config import BaseConfig
15
+ from mage_ai.shared.hash import merge_dict
16
+ from mage_ai.shared.io import safe_write
17
+
18
+
19
+ @dataclass
20
+ class PageBlockLayout(BaseConfig):
21
+ blocks: Dict = field(default_factory=dict)
22
+ directory_path: str = None
23
+ layout: Dict = field(default_factory=dict)
24
+ uuid: str = None
25
+
26
+ @classmethod
27
+ def load(self, uuid: str, repo_config=None, repo_path: str = None):
28
+ repo_path_to_use = repo_path or get_repo_path()
29
+
30
+ if repo_config is None:
31
+ repo_config_to_use = get_repo_config(repo_path=repo_path_to_use)
32
+ elif isinstance(repo_config, dict):
33
+ repo_config_to_use = RepoConfig.from_dict(repo_config)
34
+ else:
35
+ repo_config_to_use = repo_config
36
+
37
+ directory_path = os.getenv(
38
+ MAGE_PRESENTERS_DIRECTORY_ENVIRONMENT_VARIABLE_NAME,
39
+ ) or os.path.join(
40
+ repo_config_to_use.variables_dir,
41
+ MAGE_PRESENTERS_DIRECTORY_DEFAULT,
42
+ )
43
+
44
+ file_path = os.path.join(
45
+ directory_path,
46
+ uuid,
47
+ BLOCK_LAYOUT_FILENAME_WITH_EXTENSION,
48
+ )
49
+
50
+ if os.path.isfile(file_path):
51
+ block_layout = super().load(file_path)
52
+ else:
53
+ block_layout = self()
54
+
55
+ block_layout.directory_path = directory_path
56
+ block_layout.uuid = uuid
57
+
58
+ return block_layout
59
+
60
+ @property
61
+ def file_path(self) -> str:
62
+ return os.path.join(
63
+ self.directory_path,
64
+ self.uuid,
65
+ BLOCK_LAYOUT_FILENAME_WITH_EXTENSION,
66
+ )
67
+
68
+ def to_dict(self, include_content: bool = False) -> Dict:
69
+ return merge_dict(self.to_dict_base(), dict(
70
+ uuid=self.uuid,
71
+ ))
72
+
73
+ def to_dict_base(self) -> Dict:
74
+ return dict(
75
+ blocks=self.blocks,
76
+ layout=self.layout,
77
+ )
78
+
79
+ def save(self) -> None:
80
+ content = yaml.safe_dump(self.to_dict_base())
81
+ file_path = self.file_path
82
+ os.makedirs(os.path.dirname(file_path), exist_ok=True)
83
+ safe_write(file_path, content)
84
+
85
+ def delete(self) -> None:
86
+ shutil.rmtree(self.file_path)
@@ -0,0 +1,2 @@
1
+ MAGE_PRESENTERS_DIRECTORY_DEFAULT = '.presenters'
2
+ MAGE_PRESENTERS_DIRECTORY_ENVIRONMENT_VARIABLE_NAME = 'MAGE_PRESENTERS_DIRECTORY'
mage_ai/server/api/v1.py CHANGED
@@ -62,3 +62,19 @@ class ApiResourceListHandler(BaseApiHandler):
62
62
 
63
63
  async def post(self, resource):
64
64
  return await execute_operation(self, resource)
65
+
66
+
67
+ class ApiListHandler(BaseApiHandler):
68
+ def initialize(
69
+ self,
70
+ resource: str,
71
+ bypass_oauth_check: bool = False,
72
+ ):
73
+ super().initialize(bypass_oauth_check=bypass_oauth_check)
74
+ self.resource = resource
75
+
76
+ async def get(self):
77
+ return await execute_operation(self, self.resource)
78
+
79
+ async def post(self):
80
+ return await execute_operation(self, self.resource)
@@ -12,4 +12,4 @@ DATAFRAME_OUTPUT_SAMPLE_COUNT = 10
12
12
  # Dockerfile depends on it because it runs ./scripts/install_mage.sh and uses
13
13
  # the last line to determine the version to install.
14
14
  VERSION = \
15
- '0.9.17'
15
+ '0.9.19'
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta content="width=device-width, initial-scale=1.0, maximum-scale=5.0, user-scalable=0" name="viewport"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><link href="/favicon.ico" rel="icon"/><link rel="preload" href="/_next/static/css/d1e8e64d0b07af2f.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d1e8e64d0b07af2f.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/_next/static/chunks/webpack-8f51011a10b384a1.js" defer=""></script><script src="/_next/static/chunks/framework-7c365855dab1bf41.js" defer=""></script><script src="/_next/static/chunks/main-714e8aae7672e1fc.js" defer=""></script><script src="/_next/static/chunks/pages/_app-b3714d5d4fc803a8.js" defer=""></script><script src="/_next/static/chunks/pages/_error-235304e5badb19eb.js" defer=""></script><script src="/_next/static/1DZSWnWcVE2obH85IV0op/_buildManifest.js" defer=""></script><script src="/_next/static/1DZSWnWcVE2obH85IV0op/_ssgManifest.js" defer=""></script><script src="/_next/static/1DZSWnWcVE2obH85IV0op/_middlewareManifest.js" defer=""></script><style data-styled="" data-styled-version="5.3.6">html{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-overflow-style:scrollbar;}/*!sc*/
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta content="width=device-width, initial-scale=1.0, maximum-scale=5.0, user-scalable=0" name="viewport"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><link href="/favicon.ico" rel="icon"/><link rel="preload" href="/_next/static/css/d1e8e64d0b07af2f.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d1e8e64d0b07af2f.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/_next/static/chunks/webpack-8f51011a10b384a1.js" defer=""></script><script src="/_next/static/chunks/framework-7c365855dab1bf41.js" defer=""></script><script src="/_next/static/chunks/main-714e8aae7672e1fc.js" defer=""></script><script src="/_next/static/chunks/pages/_app-b3714d5d4fc803a8.js" defer=""></script><script src="/_next/static/chunks/pages/_error-235304e5badb19eb.js" defer=""></script><script src="/_next/static/DTEnEDO68KRvd3eboRuhE/_buildManifest.js" defer=""></script><script src="/_next/static/DTEnEDO68KRvd3eboRuhE/_ssgManifest.js" defer=""></script><script src="/_next/static/DTEnEDO68KRvd3eboRuhE/_middlewareManifest.js" defer=""></script><style data-styled="" data-styled-version="5.3.6">html{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-overflow-style:scrollbar;}/*!sc*/
2
2
  *,*::before,*::after{-webkit-box-sizing:inherit;box-sizing:inherit;}/*!sc*/
3
3
  data-styled.g4[id="sc-global-czSCUT1"]{content:"sc-global-czSCUT1,"}/*!sc*/
4
4
  .kOVcuR .Toastify__toast-container{margin-top:24px;padding:0 !important;width:500px !important;}/*!sc*/
@@ -19,4 +19,4 @@ data-styled.g5[id="ToastWrapper-sc-1a33ph1-0"]{content:"kOVcuR,"}/*!sc*/
19
19
  .next-error-h1 {
20
20
  border-right: 1px solid rgba(255, 255, 255, .3);
21
21
  }
22
- }</style><h1 class="next-error-h1" style="display:inline-block;margin:0;margin-right:20px;padding:10px 23px 10px 0;font-size:24px;font-weight:500;vertical-align:top">404<!-- --></h1><div style="display:inline-block;text-align:left;line-height:49px;height:49px;vertical-align:middle"><h2 style="font-size:14px;font-weight:normal;line-height:inherit;margin:0;padding:0">This page could not be found<!-- -->.<!-- --></h2></div></div></div><div></div><div></div><div></div><div class="ToastWrapper-sc-1a33ph1-0 kOVcuR"><div class="Toastify"></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404},"currentTheme":{"accent":{"alert":"#F6540B","blue":"#4877FF","blueLight":"rgba(72, 119, 255, 0.5)","contentDefaultTransparent":"rgba(174, 174, 174, 0.5)","cyan":"#65E3FF","cyanLight":"rgba(101, 227, 255, 0.3)","cyanTransparent":"rgba(101, 227, 255, 0.12)","dbt":"#fc6949","dbtLight":"rgba(252, 105, 73, 0.5)","info":"#00ABFF","infoTransparent":"rgba(0, 171, 255, 0.5)","negative":"#FF1E59","negativeTransparent":"rgba(255, 30, 89, 0.3)","pink":"#FF4FF8","pinkLight":"rgb(255, 79, 248, 0.5)","positive":"#00A81A","primaryTransparent":"rgba(155, 108, 167, 0.5)","purple":"#7D55EC","purpleLight":"rgba(125, 85, 236, 0.5)","rose":"#D1A2AB","roseLight":"rgba(209, 162, 171, 0.5)","sky":"#6AA1E0","skyLight":"rgba(106, 161, 224, 0.05)","teal":"#00B4CC","tealLight":"rgba(0, 180, 204, 0.5)","warning":"#DD9900","warningTransparent":"rgba(221, 153, 0, 0.5)","yellow":"#FFCC19","yellowLight":"rgba(255, 204, 25, 0.5)"},"background":{"chartBlock":"#2E3036","codeArea":"#1E1F24","codeTextarea":"#000000","content":"#1B1C20","danger":"#FFD0DB","dark":"#B1B8C3","dashboard":"#18181C","header":"#1B1B1B","menu":"#0F4CFF","muted":"#F9FAFC","navigation":"#EDEDED","output":"#2E3036","page":"#1E1F24","panel":"#232429","popup":"#27292E","row":"#2C2C2C","row2":"#51535C","scrollbarThumb":"rgba(100, 100, 100, 0.5)","scrollbarThumbHover":"rgba(255, 255, 255, 0.3)","scrollbarTrack":"#2E3036","success":"#8ADE00","successLight":"rgb(138, 222, 0, 0.3)","table":"#292A2F","tag":"#3A4550"},"borders":{"button":"#454850","contrast":"#FFFFFF","danger":"#FF144D","dark":"#000000","info":"#FFCC19","light":"#2F3034","medium":"#1C1C1C","medium2":"#141414","success":"#2FCB52"},"brand":{"earth100":"#C6EEDB","earth200":"#9DDFBF","earth300":"#6BBF96","earth400":"#37A46F","earth400Transparent":"rgba(55, 164, 111, 0.4)","earth500":"#00954C","energy100":"#FFF4BA","energy200":"#FFED92","energy300":"#FFE662","energy400":"#FFDA19","energy400Transparent":"rgba(255, 218, 25, 0.04)","energy500":"#F6C000","fire100":"#FFD7E0","fire200":"#FFA3B9","fire300":"#FF547D","fire400":"#FF144D","fire400Transparent":"rgba(255, 20, 77, 0.4)","fire500":"#EB0032","stone100":"#F3E6D7","stone200":"#E3D4C2","stone400":"#BFA78B","stone500":"#AF8859","water100":"#BDCEFF","water200":"#81A1FF","water300":"#517DFF","water400":"#2A60FE","water400Transparent":"rgba(42, 96, 254, 0.4)","water500":"#0F4CFF","wind100":"#EEEAFF","wind200":"#CCC1F4","wind300":"#A698DD","wind400":"#6B50D7","wind400SuperTransparent":"rgba(107, 80, 215, 0.12)","wind400Transparent":"rgba(107, 80, 215, 0.4)","wind500":"#4E32BC"},"chart":{"backgroundPrimary":"#7D55EC","backgroundSecondary":"#FF144D","backgroundTertiary":"#86E2FF","button1":"#4877FF","button2":"#FFCC19","button3":"#8ADE00","button4":"#FF4FF8","button5":"#B98D95","lines":"#9B6CA7","primary":"#6B50D7","secondary":"#FF144D","tertiary":"#2A60FE"},"content":{"active":"#FFFFFF","default":"#AEAEAE","disabled":"rgba(255, 255, 255, 0.3)","inverted":"#2C2C2C","muted":"#787A85"},"elevation":{"visualizationAccent":"#996CFF","visualizationAccentAlt":"#C1ACF7"},"feature":{"active":"rgba(250, 248, 254, 0.14)","disabled":"rgba(201, 206, 218, 0.12)"},"icons":{"neutral":"#787878"},"interactive":{"activeBorder":"#060606","checked":"#060606","dangerBorder":"#FF144D","defaultBackground":"#36383F","defaultBorder":"#2E3036","disabledBorder":"#B1B8C3","focusBackground":"#B1B8C3","focusBorder":"#86E2FF","hoverBackground":"#4E4E4E","hoverBorder":"#B9BFCA","hoverOverlay":"rgba(255, 255, 255, 0.1)","linkPrimary":"#1752FF","linkPrimaryHover":"#4877FF","linkPrimaryLight":"#5982ff","linkSecondary":"#6B50D7","linkSecondaryDisabled":"#C4B9EF","linkText":"#6AA1E0","linkTextLight":"#9ECBFF","rowHoverBackground":"rgba(0, 0, 0, 0.1)","transparent":"rgba(255, 255, 255, 0)"},"loader":{"color":"#EB0032","colorInverted":"#8ADE00"},"logo":{"color":"#FFFFFF"},"monotone":{"black":"#060606","blackTransparent":"rgba(0, 0, 0, 0.6)","gray":"#B1B8C3","grey100":"#F2F2F2","grey200":"#D5D7DC","grey300":"#B4B8C0","grey400":"#70747C","grey500":"#51535C","purple":"#6B50D7","white":"#FFFFFF","whiteTransparent":"rgba(255, 255, 255, 0.6)"},"neutral":{"n100":"#E7E8EA","n200":"#D8DADE","n300":"#CBCCD0","n400":"#BCBEC4","n500":"#AEB0B6"},"progress":{"negative":"#FF144D","positive":"#6B50D7"},"shadow":{"base":"12px 40px 120px rgba(106, 117, 139, 0.4)","frame":"0px 10px 40px rgba(0, 0, 0, 0.26)","menu":"4px 10px 20px rgba(6, 6, 6, 0.12)","popup":"10px 20px 40px rgba(0, 0, 0, 0.2)","small":"0px, 4px, rgba(0, 0, 0, 0.25)","window":"0px 10px 60px rgba(0, 0, 0, 0.7)"},"status":{"negative":"#FF144D","positive":"#24B400"},"text":{"fileBrowser":"#787A85"}}},"page":"/_error","query":{},"buildId":"1DZSWnWcVE2obH85IV0op","nextExport":true,"isFallback":false,"gip":true,"appGip":true,"scriptLoader":[]}</script></body></html>
22
+ }</style><h1 class="next-error-h1" style="display:inline-block;margin:0;margin-right:20px;padding:10px 23px 10px 0;font-size:24px;font-weight:500;vertical-align:top">404<!-- --></h1><div style="display:inline-block;text-align:left;line-height:49px;height:49px;vertical-align:middle"><h2 style="font-size:14px;font-weight:normal;line-height:inherit;margin:0;padding:0">This page could not be found<!-- -->.<!-- --></h2></div></div></div><div></div><div></div><div></div><div class="ToastWrapper-sc-1a33ph1-0 kOVcuR"><div class="Toastify"></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404},"currentTheme":{"accent":{"alert":"#F6540B","blue":"#4877FF","blueLight":"rgba(72, 119, 255, 0.5)","contentDefaultTransparent":"rgba(174, 174, 174, 0.5)","cyan":"#65E3FF","cyanLight":"rgba(101, 227, 255, 0.3)","cyanTransparent":"rgba(101, 227, 255, 0.12)","dbt":"#fc6949","dbtLight":"rgba(252, 105, 73, 0.5)","info":"#00ABFF","infoTransparent":"rgba(0, 171, 255, 0.5)","negative":"#FF1E59","negativeTransparent":"rgba(255, 30, 89, 0.3)","pink":"#FF4FF8","pinkLight":"rgb(255, 79, 248, 0.5)","positive":"#00A81A","primaryTransparent":"rgba(155, 108, 167, 0.5)","purple":"#7D55EC","purpleLight":"rgba(125, 85, 236, 0.5)","rose":"#D1A2AB","roseLight":"rgba(209, 162, 171, 0.5)","sky":"#6AA1E0","skyLight":"rgba(106, 161, 224, 0.05)","teal":"#00B4CC","tealLight":"rgba(0, 180, 204, 0.5)","warning":"#DD9900","warningTransparent":"rgba(221, 153, 0, 0.5)","yellow":"#FFCC19","yellowLight":"rgba(255, 204, 25, 0.5)"},"background":{"chartBlock":"#2E3036","codeArea":"#1E1F24","codeTextarea":"#000000","content":"#1B1C20","danger":"#FFD0DB","dark":"#B1B8C3","dashboard":"#18181C","header":"#1B1B1B","menu":"#0F4CFF","muted":"#F9FAFC","navigation":"#EDEDED","output":"#2E3036","page":"#1E1F24","panel":"#232429","popup":"#27292E","row":"#2C2C2C","row2":"#51535C","scrollbarThumb":"rgba(100, 100, 100, 0.5)","scrollbarThumbHover":"rgba(255, 255, 255, 0.3)","scrollbarTrack":"#2E3036","success":"#8ADE00","successLight":"rgb(138, 222, 0, 0.3)","table":"#292A2F","tag":"#3A4550"},"borders":{"button":"#454850","contrast":"#FFFFFF","danger":"#FF144D","dark":"#000000","info":"#FFCC19","light":"#2F3034","medium":"#1C1C1C","medium2":"#141414","success":"#2FCB52"},"brand":{"earth100":"#C6EEDB","earth200":"#9DDFBF","earth300":"#6BBF96","earth400":"#37A46F","earth400Transparent":"rgba(55, 164, 111, 0.4)","earth500":"#00954C","energy100":"#FFF4BA","energy200":"#FFED92","energy300":"#FFE662","energy400":"#FFDA19","energy400Transparent":"rgba(255, 218, 25, 0.04)","energy500":"#F6C000","fire100":"#FFD7E0","fire200":"#FFA3B9","fire300":"#FF547D","fire400":"#FF144D","fire400Transparent":"rgba(255, 20, 77, 0.4)","fire500":"#EB0032","stone100":"#F3E6D7","stone200":"#E3D4C2","stone400":"#BFA78B","stone500":"#AF8859","water100":"#BDCEFF","water200":"#81A1FF","water300":"#517DFF","water400":"#2A60FE","water400Transparent":"rgba(42, 96, 254, 0.4)","water500":"#0F4CFF","wind100":"#EEEAFF","wind200":"#CCC1F4","wind300":"#A698DD","wind400":"#6B50D7","wind400SuperTransparent":"rgba(107, 80, 215, 0.12)","wind400Transparent":"rgba(107, 80, 215, 0.4)","wind500":"#4E32BC"},"chart":{"backgroundPrimary":"#7D55EC","backgroundSecondary":"#FF144D","backgroundTertiary":"#86E2FF","button1":"#4877FF","button2":"#FFCC19","button3":"#8ADE00","button4":"#FF4FF8","button5":"#B98D95","lines":"#9B6CA7","primary":"#6B50D7","secondary":"#FF144D","tertiary":"#2A60FE"},"content":{"active":"#FFFFFF","default":"#AEAEAE","disabled":"rgba(255, 255, 255, 0.3)","inverted":"#2C2C2C","muted":"#787A85"},"elevation":{"visualizationAccent":"#996CFF","visualizationAccentAlt":"#C1ACF7"},"feature":{"active":"rgba(250, 248, 254, 0.14)","disabled":"rgba(201, 206, 218, 0.12)"},"icons":{"neutral":"#787878"},"interactive":{"activeBorder":"#060606","checked":"#060606","dangerBorder":"#FF144D","defaultBackground":"#36383F","defaultBorder":"#2E3036","disabledBorder":"#B1B8C3","focusBackground":"#B1B8C3","focusBorder":"#86E2FF","hoverBackground":"#4E4E4E","hoverBorder":"#B9BFCA","hoverOverlay":"rgba(255, 255, 255, 0.1)","linkPrimary":"#1752FF","linkPrimaryHover":"#4877FF","linkPrimaryLight":"#5982ff","linkSecondary":"#6B50D7","linkSecondaryDisabled":"#C4B9EF","linkText":"#6AA1E0","linkTextLight":"#9ECBFF","rowHoverBackground":"rgba(0, 0, 0, 0.1)","transparent":"rgba(255, 255, 255, 0)"},"loader":{"color":"#EB0032","colorInverted":"#8ADE00"},"logo":{"color":"#FFFFFF"},"monotone":{"black":"#060606","blackTransparent":"rgba(0, 0, 0, 0.6)","gray":"#B1B8C3","grey100":"#F2F2F2","grey200":"#D5D7DC","grey300":"#B4B8C0","grey400":"#70747C","grey500":"#51535C","purple":"#6B50D7","white":"#FFFFFF","whiteTransparent":"rgba(255, 255, 255, 0.6)"},"neutral":{"n100":"#E7E8EA","n200":"#D8DADE","n300":"#CBCCD0","n400":"#BCBEC4","n500":"#AEB0B6"},"progress":{"negative":"#FF144D","positive":"#6B50D7"},"shadow":{"base":"12px 40px 120px rgba(106, 117, 139, 0.4)","frame":"0px 10px 40px rgba(0, 0, 0, 0.26)","menu":"4px 10px 20px rgba(6, 6, 6, 0.12)","popup":"10px 20px 40px rgba(0, 0, 0, 0.2)","small":"0px, 4px, rgba(0, 0, 0, 0.25)","window":"0px 10px 60px rgba(0, 0, 0, 0.7)"},"status":{"negative":"#FF144D","positive":"#24B400"},"text":{"fileBrowser":"#787A85"}}},"page":"/_error","query":{},"buildId":"DTEnEDO68KRvd3eboRuhE","nextExport":true,"isFallback":false,"gip":true,"appGip":true,"scriptLoader":[]}</script></body></html>
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta content="width=device-width, initial-scale=1.0, maximum-scale=5.0, user-scalable=0" name="viewport"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><link href="/favicon.ico" rel="icon"/><link rel="preload" href="/_next/static/css/d1e8e64d0b07af2f.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d1e8e64d0b07af2f.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/_next/static/chunks/webpack-8f51011a10b384a1.js" defer=""></script><script src="/_next/static/chunks/framework-7c365855dab1bf41.js" defer=""></script><script src="/_next/static/chunks/main-714e8aae7672e1fc.js" defer=""></script><script src="/_next/static/chunks/pages/_app-b3714d5d4fc803a8.js" defer=""></script><script src="/_next/static/chunks/pages/_error-235304e5badb19eb.js" defer=""></script><script src="/_next/static/1DZSWnWcVE2obH85IV0op/_buildManifest.js" defer=""></script><script src="/_next/static/1DZSWnWcVE2obH85IV0op/_ssgManifest.js" defer=""></script><script src="/_next/static/1DZSWnWcVE2obH85IV0op/_middlewareManifest.js" defer=""></script><style data-styled="" data-styled-version="5.3.6">html{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-overflow-style:scrollbar;}/*!sc*/
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta content="width=device-width, initial-scale=1.0, maximum-scale=5.0, user-scalable=0" name="viewport"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><link href="/favicon.ico" rel="icon"/><link rel="preload" href="/_next/static/css/d1e8e64d0b07af2f.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d1e8e64d0b07af2f.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/_next/static/chunks/webpack-8f51011a10b384a1.js" defer=""></script><script src="/_next/static/chunks/framework-7c365855dab1bf41.js" defer=""></script><script src="/_next/static/chunks/main-714e8aae7672e1fc.js" defer=""></script><script src="/_next/static/chunks/pages/_app-b3714d5d4fc803a8.js" defer=""></script><script src="/_next/static/chunks/pages/_error-235304e5badb19eb.js" defer=""></script><script src="/_next/static/DTEnEDO68KRvd3eboRuhE/_buildManifest.js" defer=""></script><script src="/_next/static/DTEnEDO68KRvd3eboRuhE/_ssgManifest.js" defer=""></script><script src="/_next/static/DTEnEDO68KRvd3eboRuhE/_middlewareManifest.js" defer=""></script><style data-styled="" data-styled-version="5.3.6">html{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-overflow-style:scrollbar;}/*!sc*/
2
2
  *,*::before,*::after{-webkit-box-sizing:inherit;box-sizing:inherit;}/*!sc*/
3
3
  data-styled.g4[id="sc-global-czSCUT1"]{content:"sc-global-czSCUT1,"}/*!sc*/
4
4
  .kOVcuR .Toastify__toast-container{margin-top:24px;padding:0 !important;width:500px !important;}/*!sc*/
@@ -19,4 +19,4 @@ data-styled.g5[id="ToastWrapper-sc-1a33ph1-0"]{content:"kOVcuR,"}/*!sc*/
19
19
  .next-error-h1 {
20
20
  border-right: 1px solid rgba(255, 255, 255, .3);
21
21
  }
22
- }</style><h1 class="next-error-h1" style="display:inline-block;margin:0;margin-right:20px;padding:10px 23px 10px 0;font-size:24px;font-weight:500;vertical-align:top">404<!-- --></h1><div style="display:inline-block;text-align:left;line-height:49px;height:49px;vertical-align:middle"><h2 style="font-size:14px;font-weight:normal;line-height:inherit;margin:0;padding:0">This page could not be found<!-- -->.<!-- --></h2></div></div></div><div></div><div></div><div></div><div class="ToastWrapper-sc-1a33ph1-0 kOVcuR"><div class="Toastify"></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404},"currentTheme":{"accent":{"alert":"#F6540B","blue":"#4877FF","blueLight":"rgba(72, 119, 255, 0.5)","contentDefaultTransparent":"rgba(174, 174, 174, 0.5)","cyan":"#65E3FF","cyanLight":"rgba(101, 227, 255, 0.3)","cyanTransparent":"rgba(101, 227, 255, 0.12)","dbt":"#fc6949","dbtLight":"rgba(252, 105, 73, 0.5)","info":"#00ABFF","infoTransparent":"rgba(0, 171, 255, 0.5)","negative":"#FF1E59","negativeTransparent":"rgba(255, 30, 89, 0.3)","pink":"#FF4FF8","pinkLight":"rgb(255, 79, 248, 0.5)","positive":"#00A81A","primaryTransparent":"rgba(155, 108, 167, 0.5)","purple":"#7D55EC","purpleLight":"rgba(125, 85, 236, 0.5)","rose":"#D1A2AB","roseLight":"rgba(209, 162, 171, 0.5)","sky":"#6AA1E0","skyLight":"rgba(106, 161, 224, 0.05)","teal":"#00B4CC","tealLight":"rgba(0, 180, 204, 0.5)","warning":"#DD9900","warningTransparent":"rgba(221, 153, 0, 0.5)","yellow":"#FFCC19","yellowLight":"rgba(255, 204, 25, 0.5)"},"background":{"chartBlock":"#2E3036","codeArea":"#1E1F24","codeTextarea":"#000000","content":"#1B1C20","danger":"#FFD0DB","dark":"#B1B8C3","dashboard":"#18181C","header":"#1B1B1B","menu":"#0F4CFF","muted":"#F9FAFC","navigation":"#EDEDED","output":"#2E3036","page":"#1E1F24","panel":"#232429","popup":"#27292E","row":"#2C2C2C","row2":"#51535C","scrollbarThumb":"rgba(100, 100, 100, 0.5)","scrollbarThumbHover":"rgba(255, 255, 255, 0.3)","scrollbarTrack":"#2E3036","success":"#8ADE00","successLight":"rgb(138, 222, 0, 0.3)","table":"#292A2F","tag":"#3A4550"},"borders":{"button":"#454850","contrast":"#FFFFFF","danger":"#FF144D","dark":"#000000","info":"#FFCC19","light":"#2F3034","medium":"#1C1C1C","medium2":"#141414","success":"#2FCB52"},"brand":{"earth100":"#C6EEDB","earth200":"#9DDFBF","earth300":"#6BBF96","earth400":"#37A46F","earth400Transparent":"rgba(55, 164, 111, 0.4)","earth500":"#00954C","energy100":"#FFF4BA","energy200":"#FFED92","energy300":"#FFE662","energy400":"#FFDA19","energy400Transparent":"rgba(255, 218, 25, 0.04)","energy500":"#F6C000","fire100":"#FFD7E0","fire200":"#FFA3B9","fire300":"#FF547D","fire400":"#FF144D","fire400Transparent":"rgba(255, 20, 77, 0.4)","fire500":"#EB0032","stone100":"#F3E6D7","stone200":"#E3D4C2","stone400":"#BFA78B","stone500":"#AF8859","water100":"#BDCEFF","water200":"#81A1FF","water300":"#517DFF","water400":"#2A60FE","water400Transparent":"rgba(42, 96, 254, 0.4)","water500":"#0F4CFF","wind100":"#EEEAFF","wind200":"#CCC1F4","wind300":"#A698DD","wind400":"#6B50D7","wind400SuperTransparent":"rgba(107, 80, 215, 0.12)","wind400Transparent":"rgba(107, 80, 215, 0.4)","wind500":"#4E32BC"},"chart":{"backgroundPrimary":"#7D55EC","backgroundSecondary":"#FF144D","backgroundTertiary":"#86E2FF","button1":"#4877FF","button2":"#FFCC19","button3":"#8ADE00","button4":"#FF4FF8","button5":"#B98D95","lines":"#9B6CA7","primary":"#6B50D7","secondary":"#FF144D","tertiary":"#2A60FE"},"content":{"active":"#FFFFFF","default":"#AEAEAE","disabled":"rgba(255, 255, 255, 0.3)","inverted":"#2C2C2C","muted":"#787A85"},"elevation":{"visualizationAccent":"#996CFF","visualizationAccentAlt":"#C1ACF7"},"feature":{"active":"rgba(250, 248, 254, 0.14)","disabled":"rgba(201, 206, 218, 0.12)"},"icons":{"neutral":"#787878"},"interactive":{"activeBorder":"#060606","checked":"#060606","dangerBorder":"#FF144D","defaultBackground":"#36383F","defaultBorder":"#2E3036","disabledBorder":"#B1B8C3","focusBackground":"#B1B8C3","focusBorder":"#86E2FF","hoverBackground":"#4E4E4E","hoverBorder":"#B9BFCA","hoverOverlay":"rgba(255, 255, 255, 0.1)","linkPrimary":"#1752FF","linkPrimaryHover":"#4877FF","linkPrimaryLight":"#5982ff","linkSecondary":"#6B50D7","linkSecondaryDisabled":"#C4B9EF","linkText":"#6AA1E0","linkTextLight":"#9ECBFF","rowHoverBackground":"rgba(0, 0, 0, 0.1)","transparent":"rgba(255, 255, 255, 0)"},"loader":{"color":"#EB0032","colorInverted":"#8ADE00"},"logo":{"color":"#FFFFFF"},"monotone":{"black":"#060606","blackTransparent":"rgba(0, 0, 0, 0.6)","gray":"#B1B8C3","grey100":"#F2F2F2","grey200":"#D5D7DC","grey300":"#B4B8C0","grey400":"#70747C","grey500":"#51535C","purple":"#6B50D7","white":"#FFFFFF","whiteTransparent":"rgba(255, 255, 255, 0.6)"},"neutral":{"n100":"#E7E8EA","n200":"#D8DADE","n300":"#CBCCD0","n400":"#BCBEC4","n500":"#AEB0B6"},"progress":{"negative":"#FF144D","positive":"#6B50D7"},"shadow":{"base":"12px 40px 120px rgba(106, 117, 139, 0.4)","frame":"0px 10px 40px rgba(0, 0, 0, 0.26)","menu":"4px 10px 20px rgba(6, 6, 6, 0.12)","popup":"10px 20px 40px rgba(0, 0, 0, 0.2)","small":"0px, 4px, rgba(0, 0, 0, 0.25)","window":"0px 10px 60px rgba(0, 0, 0, 0.7)"},"status":{"negative":"#FF144D","positive":"#24B400"},"text":{"fileBrowser":"#787A85"}}},"page":"/_error","query":{},"buildId":"1DZSWnWcVE2obH85IV0op","nextExport":true,"isFallback":false,"gip":true,"appGip":true,"scriptLoader":[]}</script></body></html>
22
+ }</style><h1 class="next-error-h1" style="display:inline-block;margin:0;margin-right:20px;padding:10px 23px 10px 0;font-size:24px;font-weight:500;vertical-align:top">404<!-- --></h1><div style="display:inline-block;text-align:left;line-height:49px;height:49px;vertical-align:middle"><h2 style="font-size:14px;font-weight:normal;line-height:inherit;margin:0;padding:0">This page could not be found<!-- -->.<!-- --></h2></div></div></div><div></div><div></div><div></div><div class="ToastWrapper-sc-1a33ph1-0 kOVcuR"><div class="Toastify"></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404},"currentTheme":{"accent":{"alert":"#F6540B","blue":"#4877FF","blueLight":"rgba(72, 119, 255, 0.5)","contentDefaultTransparent":"rgba(174, 174, 174, 0.5)","cyan":"#65E3FF","cyanLight":"rgba(101, 227, 255, 0.3)","cyanTransparent":"rgba(101, 227, 255, 0.12)","dbt":"#fc6949","dbtLight":"rgba(252, 105, 73, 0.5)","info":"#00ABFF","infoTransparent":"rgba(0, 171, 255, 0.5)","negative":"#FF1E59","negativeTransparent":"rgba(255, 30, 89, 0.3)","pink":"#FF4FF8","pinkLight":"rgb(255, 79, 248, 0.5)","positive":"#00A81A","primaryTransparent":"rgba(155, 108, 167, 0.5)","purple":"#7D55EC","purpleLight":"rgba(125, 85, 236, 0.5)","rose":"#D1A2AB","roseLight":"rgba(209, 162, 171, 0.5)","sky":"#6AA1E0","skyLight":"rgba(106, 161, 224, 0.05)","teal":"#00B4CC","tealLight":"rgba(0, 180, 204, 0.5)","warning":"#DD9900","warningTransparent":"rgba(221, 153, 0, 0.5)","yellow":"#FFCC19","yellowLight":"rgba(255, 204, 25, 0.5)"},"background":{"chartBlock":"#2E3036","codeArea":"#1E1F24","codeTextarea":"#000000","content":"#1B1C20","danger":"#FFD0DB","dark":"#B1B8C3","dashboard":"#18181C","header":"#1B1B1B","menu":"#0F4CFF","muted":"#F9FAFC","navigation":"#EDEDED","output":"#2E3036","page":"#1E1F24","panel":"#232429","popup":"#27292E","row":"#2C2C2C","row2":"#51535C","scrollbarThumb":"rgba(100, 100, 100, 0.5)","scrollbarThumbHover":"rgba(255, 255, 255, 0.3)","scrollbarTrack":"#2E3036","success":"#8ADE00","successLight":"rgb(138, 222, 0, 0.3)","table":"#292A2F","tag":"#3A4550"},"borders":{"button":"#454850","contrast":"#FFFFFF","danger":"#FF144D","dark":"#000000","info":"#FFCC19","light":"#2F3034","medium":"#1C1C1C","medium2":"#141414","success":"#2FCB52"},"brand":{"earth100":"#C6EEDB","earth200":"#9DDFBF","earth300":"#6BBF96","earth400":"#37A46F","earth400Transparent":"rgba(55, 164, 111, 0.4)","earth500":"#00954C","energy100":"#FFF4BA","energy200":"#FFED92","energy300":"#FFE662","energy400":"#FFDA19","energy400Transparent":"rgba(255, 218, 25, 0.04)","energy500":"#F6C000","fire100":"#FFD7E0","fire200":"#FFA3B9","fire300":"#FF547D","fire400":"#FF144D","fire400Transparent":"rgba(255, 20, 77, 0.4)","fire500":"#EB0032","stone100":"#F3E6D7","stone200":"#E3D4C2","stone400":"#BFA78B","stone500":"#AF8859","water100":"#BDCEFF","water200":"#81A1FF","water300":"#517DFF","water400":"#2A60FE","water400Transparent":"rgba(42, 96, 254, 0.4)","water500":"#0F4CFF","wind100":"#EEEAFF","wind200":"#CCC1F4","wind300":"#A698DD","wind400":"#6B50D7","wind400SuperTransparent":"rgba(107, 80, 215, 0.12)","wind400Transparent":"rgba(107, 80, 215, 0.4)","wind500":"#4E32BC"},"chart":{"backgroundPrimary":"#7D55EC","backgroundSecondary":"#FF144D","backgroundTertiary":"#86E2FF","button1":"#4877FF","button2":"#FFCC19","button3":"#8ADE00","button4":"#FF4FF8","button5":"#B98D95","lines":"#9B6CA7","primary":"#6B50D7","secondary":"#FF144D","tertiary":"#2A60FE"},"content":{"active":"#FFFFFF","default":"#AEAEAE","disabled":"rgba(255, 255, 255, 0.3)","inverted":"#2C2C2C","muted":"#787A85"},"elevation":{"visualizationAccent":"#996CFF","visualizationAccentAlt":"#C1ACF7"},"feature":{"active":"rgba(250, 248, 254, 0.14)","disabled":"rgba(201, 206, 218, 0.12)"},"icons":{"neutral":"#787878"},"interactive":{"activeBorder":"#060606","checked":"#060606","dangerBorder":"#FF144D","defaultBackground":"#36383F","defaultBorder":"#2E3036","disabledBorder":"#B1B8C3","focusBackground":"#B1B8C3","focusBorder":"#86E2FF","hoverBackground":"#4E4E4E","hoverBorder":"#B9BFCA","hoverOverlay":"rgba(255, 255, 255, 0.1)","linkPrimary":"#1752FF","linkPrimaryHover":"#4877FF","linkPrimaryLight":"#5982ff","linkSecondary":"#6B50D7","linkSecondaryDisabled":"#C4B9EF","linkText":"#6AA1E0","linkTextLight":"#9ECBFF","rowHoverBackground":"rgba(0, 0, 0, 0.1)","transparent":"rgba(255, 255, 255, 0)"},"loader":{"color":"#EB0032","colorInverted":"#8ADE00"},"logo":{"color":"#FFFFFF"},"monotone":{"black":"#060606","blackTransparent":"rgba(0, 0, 0, 0.6)","gray":"#B1B8C3","grey100":"#F2F2F2","grey200":"#D5D7DC","grey300":"#B4B8C0","grey400":"#70747C","grey500":"#51535C","purple":"#6B50D7","white":"#FFFFFF","whiteTransparent":"rgba(255, 255, 255, 0.6)"},"neutral":{"n100":"#E7E8EA","n200":"#D8DADE","n300":"#CBCCD0","n400":"#BCBEC4","n500":"#AEB0B6"},"progress":{"negative":"#FF144D","positive":"#6B50D7"},"shadow":{"base":"12px 40px 120px rgba(106, 117, 139, 0.4)","frame":"0px 10px 40px rgba(0, 0, 0, 0.26)","menu":"4px 10px 20px rgba(6, 6, 6, 0.12)","popup":"10px 20px 40px rgba(0, 0, 0, 0.2)","small":"0px, 4px, rgba(0, 0, 0, 0.25)","window":"0px 10px 60px rgba(0, 0, 0, 0.7)"},"status":{"negative":"#FF144D","positive":"#24B400"},"text":{"fileBrowser":"#787A85"}}},"page":"/_error","query":{},"buildId":"DTEnEDO68KRvd3eboRuhE","nextExport":true,"isFallback":false,"gip":true,"appGip":true,"scriptLoader":[]}</script></body></html>
@@ -0,0 +1 @@
1
+ self.__BUILD_MANIFEST=function(s,e,i,a,c,t,n,p,l,u,g,d,r,f,k,b,h,j,o,m,_,w,v,y,I,B,F,A,D,E,L,M,N,S,T,U){return{__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":["static/chunks/pages/index-32917acd76697307.js"],"/_error":["static/chunks/pages/_error-235304e5badb19eb.js"],"/files":[s,a,d,v,"static/chunks/5643-1f8a6d8a392fe96b.js",e,i,c,t,r,f,B,"static/chunks/pages/files-4dd0647a0f9de375.js"],"/global-data-products":[s,a,e,i,c,h,y,D,"static/chunks/pages/global-data-products-e3e61463b386d805.js"],"/global-data-products/[...slug]":[s,a,e,i,c,h,y,D,"static/chunks/pages/global-data-products/[...slug]-76692897b5c7427a.js"],"/manage":[s,a,d,e,i,c,t,r,"static/chunks/pages/manage-4d1967a685b5a7d7.js"],"/manage/settings":[s,a,d,"static/chunks/4398-5d5c07021ccd37b8.js",e,i,t,r,"static/chunks/pages/manage/settings-06b47c144682af33.js"],"/manage/users":[s,e,i,c,"static/chunks/pages/manage/users-ec748f838b7b8fad.js"],"/manage/users/new":[s,e,i,I,"static/chunks/pages/manage/users/new-dd41d718cbb5990c.js"],"/manage/users/[user]":[s,e,i,c,I,"static/chunks/pages/manage/users/[user]-3b502aa6d1a04cad.js"],"/overview":[s,a,p,l,g,d,k,j,o,m,e,i,c,t,u,r,b,f,_,F,E,L,"static/chunks/pages/overview-d12c3b172bd25751.js"],"/pipeline-runs":[s,a,e,i,c,h,"static/chunks/pages/pipeline-runs-a358405cc6851b55.js"],"/pipelines":[s,a,p,l,g,d,k,o,e,i,c,t,u,r,b,f,_,F,E,"static/chunks/pages/pipelines-bf8a8f58e19dca2d.js"],"/pipelines/[pipeline]":["static/chunks/pages/pipelines/[pipeline]-ca9457e1a6bced4b.js"],"/pipelines/[pipeline]/backfills":[s,a,e,i,c,n,"static/chunks/pages/pipelines/[pipeline]/backfills-63f0524bf604ad08.js"],"/pipelines/[pipeline]/backfills/[...slug]":[s,a,p,l,g,w,A,e,i,c,t,n,u,h,"static/chunks/pages/pipelines/[pipeline]/backfills/[...slug]-af67323af26d9cbf.js"],"/pipelines/[pipeline]/edit":[M,s,a,p,l,g,d,k,j,w,o,m,v,N,"static/chunks/2991-d0b13a172f9c1dcd.js",e,i,c,t,u,r,b,f,_,B,S,"static/chunks/pages/pipelines/[pipeline]/edit-a214672a55b1ce9f.js"],"/pipelines/[pipeline]/logs":[s,a,p,k,A,e,i,c,t,n,b,"static/chunks/pages/pipelines/[pipeline]/logs-648c7ba3b2f86ab7.js"],"/pipelines/[pipeline]/monitors":[s,a,j,m,"static/chunks/2834-d2a1c03968995e8e.js",e,i,n,L,"static/chunks/pages/pipelines/[pipeline]/monitors-9fa0c4ce1c921a41.js"],"/pipelines/[pipeline]/monitors/block-runs":[s,a,j,m,"static/chunks/9404-1fb0792716d46efc.js",e,i,t,n,"static/chunks/pages/pipelines/[pipeline]/monitors/block-runs-9eef0c0e0826758c.js"],"/pipelines/[pipeline]/monitors/block-runtime":[M,s,a,j,m,"static/chunks/9464-84f4879568c00a93.js",e,i,t,n,"static/chunks/pages/pipelines/[pipeline]/monitors/block-runtime-cd53b52bb605efc5.js"],"/pipelines/[pipeline]/runs":[s,a,p,l,g,w,e,i,c,t,n,u,h,T,"static/chunks/pages/pipelines/[pipeline]/runs-9e9fcf3d102d0321.js"],"/pipelines/[pipeline]/runs/[run]":[s,a,p,l,g,k,j,w,N,e,i,c,t,n,u,b,S,T,"static/chunks/pages/pipelines/[pipeline]/runs/[run]-b6c0e3072d70a707.js"],"/pipelines/[pipeline]/settings":[s,a,e,i,n,U,"static/chunks/pages/pipelines/[pipeline]/settings-f9aa70996abe640b.js"],"/pipelines/[pipeline]/syncs":[s,a,e,i,c,n,"static/chunks/pages/pipelines/[pipeline]/syncs-8cbd966d8080a862.js"],"/pipelines/[pipeline]/triggers":[s,a,p,l,e,i,c,t,n,u,y,"static/chunks/pages/pipelines/[pipeline]/triggers-8c40192b2d7f80c2.js"],"/pipelines/[pipeline]/triggers/[...slug]":[s,a,p,l,g,w,A,"static/chunks/9302-913007e2f801ad65.js",e,i,c,t,n,u,h,U,"static/chunks/pages/pipelines/[pipeline]/triggers/[...slug]-a17b40b59c866699.js"],"/settings":["static/chunks/pages/settings-d594a66a568306da.js"],"/settings/account/profile":[s,e,i,I,"static/chunks/pages/settings/account/profile-c3ff06a12baa40a2.js"],"/settings/workspace/preferences":[s,e,i,"static/chunks/pages/settings/workspace/preferences-60b4398d7ae00206.js"],"/settings/workspace/sync-data":[s,e,i,"static/chunks/pages/settings/workspace/sync-data-05b53444f0e7449b.js"],"/settings/workspace/users":[s,e,i,c,I,"static/chunks/pages/settings/workspace/users-1fa319d0e4cfbe4e.js"],"/sign-in":[s,e,"static/chunks/pages/sign-in-a5e9561a6c0d2e38.js"],"/templates":[s,a,p,l,g,d,k,o,e,i,c,t,u,r,b,f,_,F,"static/chunks/pages/templates-ce2a29d477a6ce94.js"],"/templates/[...slug]":[s,a,p,l,g,d,k,o,e,i,c,t,u,r,b,f,_,"static/chunks/pages/templates/[...slug]-c21b269750441494.js"],"/terminal":[s,e,i,"static/chunks/pages/terminal-5f9487966e297cc5.js"],"/test":[v,"static/chunks/pages/test-b24d77dc84843924.js"],"/triggers":[s,a,e,i,c,y,"static/chunks/pages/triggers-a50d6461a2faa665.js"],"/version-control":[s,a,v,"static/chunks/7768-2325216ed654ad05.js",e,i,c,t,f,B,"static/chunks/pages/version-control-1dc780d52fbd1573.js"],sortedPages:["/","/_app","/_error","/files","/global-data-products","/global-data-products/[...slug]","/manage","/manage/settings","/manage/users","/manage/users/new","/manage/users/[user]","/overview","/pipeline-runs","/pipelines","/pipelines/[pipeline]","/pipelines/[pipeline]/backfills","/pipelines/[pipeline]/backfills/[...slug]","/pipelines/[pipeline]/edit","/pipelines/[pipeline]/logs","/pipelines/[pipeline]/monitors","/pipelines/[pipeline]/monitors/block-runs","/pipelines/[pipeline]/monitors/block-runtime","/pipelines/[pipeline]/runs","/pipelines/[pipeline]/runs/[run]","/pipelines/[pipeline]/settings","/pipelines/[pipeline]/syncs","/pipelines/[pipeline]/triggers","/pipelines/[pipeline]/triggers/[...slug]","/settings","/settings/account/profile","/settings/workspace/preferences","/settings/workspace/sync-data","/settings/workspace/users","/sign-in","/templates","/templates/[...slug]","/terminal","/test","/triggers","/version-control"]}}("static/chunks/844-1e171f361e63b36d.js","static/chunks/1424-165f8ba2645e5d79.js","static/chunks/1005-a2f0e3ee378ef02b.js","static/chunks/9902-b7981346a40ecdc3.js","static/chunks/7815-b236acd0d9bbf1c0.js","static/chunks/6422-3f8c932bf4363924.js","static/chunks/547-bd961ea93f3eb98b.js","static/chunks/426-df62b0bd693bbb87.js","static/chunks/1774-aa51ef1da7217ff9.js","static/chunks/8952-050e60a8b1eaa32a.js","static/chunks/8792-10e45963e2486454.js","static/chunks/8789-4f858e520d46973b.js","static/chunks/7722-76c724a66240561b.js","static/chunks/3391-e1578fe1bdb5a557.js","static/chunks/4259-b71c17f69499f7bd.js","static/chunks/4822-ee62acb1927c8150.js","static/chunks/7496-2cbb5a6e63fe5e1a.js","static/chunks/5896-42c94d54cd2c5706.js","static/chunks/9055-d0d25298cb5f4e45.js","static/chunks/2714-1e79e9f2e998b544.js","static/chunks/1484-e209ef2f20fcfc81.js","static/chunks/7849-1081cd94cceb0227.js","static/chunks/7011-81dd8269c4806d26.js","static/chunks/7225-3460871e3daa1137.js","static/chunks/3881-131cf690e54c23a3.js","static/chunks/6299-9b785c07dacf22b3.js","static/chunks/2485-39885e5335888821.js","static/chunks/4495-4f0340aa82e0c623.js","static/chunks/1933-bf7e70107a50ed59.js","static/chunks/4250-9944d52bed19617c.js","static/chunks/6786-56e7c873e9fc25b1.js","static/chunks/29107295-989a0767a635d9d5.js","static/chunks/5872-1767c45ee6690ae5.js","static/chunks/437-331193bd9b2fe777.js","static/chunks/1805-fd8a9883931b898e.js","static/chunks/8190-d38ed1133030797d.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();