apache-airflow-providers-edge3 1.3.0rc1__py3-none-any.whl → 1.4.1__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.
Files changed (34) hide show
  1. airflow/providers/edge3/__init__.py +1 -1
  2. airflow/providers/edge3/cli/api_client.py +9 -3
  3. airflow/providers/edge3/cli/worker.py +16 -10
  4. airflow/providers/edge3/example_dags/win_test.py +1 -1
  5. airflow/providers/edge3/executors/edge_executor.py +37 -6
  6. airflow/providers/edge3/models/edge_job.py +18 -15
  7. airflow/providers/edge3/models/edge_logs.py +11 -8
  8. airflow/providers/edge3/models/edge_worker.py +44 -26
  9. airflow/providers/edge3/openapi/v2-edge-generated.yaml +13 -33
  10. airflow/providers/edge3/plugins/edge_executor_plugin.py +26 -19
  11. airflow/providers/edge3/plugins/www/dist/main.umd.cjs +14 -66
  12. airflow/providers/edge3/plugins/www/openapi-gen/requests/schemas.gen.ts +4 -4
  13. airflow/providers/edge3/plugins/www/openapi-gen/requests/services.gen.ts +10 -10
  14. airflow/providers/edge3/plugins/www/openapi-gen/requests/types.gen.ts +21 -21
  15. airflow/providers/edge3/plugins/www/package.json +26 -26
  16. airflow/providers/edge3/plugins/www/pnpm-lock.yaml +1637 -1683
  17. airflow/providers/edge3/plugins/www/src/components/ui/Alert.tsx +0 -1
  18. airflow/providers/edge3/plugins/www/src/layouts/EdgeLayout.tsx +9 -10
  19. airflow/providers/edge3/plugins/www/src/layouts/NavTabs.tsx +1 -8
  20. airflow/providers/edge3/plugins/www/src/main.tsx +5 -4
  21. airflow/providers/edge3/plugins/www/src/pages/JobsPage.tsx +7 -8
  22. airflow/providers/edge3/plugins/www/src/theme.ts +0 -1
  23. airflow/providers/edge3/plugins/www/src/utils/index.ts +0 -1
  24. airflow/providers/edge3/plugins/www/vite.config.ts +2 -1
  25. airflow/providers/edge3/version_compat.py +5 -0
  26. airflow/providers/edge3/worker_api/routes/_v2_compat.py +1 -0
  27. airflow/providers/edge3/worker_api/routes/jobs.py +5 -6
  28. airflow/providers/edge3/worker_api/routes/ui.py +8 -3
  29. airflow/providers/edge3/worker_api/routes/worker.py +9 -5
  30. {apache_airflow_providers_edge3-1.3.0rc1.dist-info → apache_airflow_providers_edge3-1.4.1.dist-info}/METADATA +35 -14
  31. {apache_airflow_providers_edge3-1.3.0rc1.dist-info → apache_airflow_providers_edge3-1.4.1.dist-info}/RECORD +33 -34
  32. airflow/providers/edge3/plugins/www/src/utils/tokenHandler.ts +0 -51
  33. {apache_airflow_providers_edge3-1.3.0rc1.dist-info → apache_airflow_providers_edge3-1.4.1.dist-info}/WHEEL +0 -0
  34. {apache_airflow_providers_edge3-1.3.0rc1.dist-info → apache_airflow_providers_edge3-1.4.1.dist-info}/entry_points.txt +0 -0
@@ -16,7 +16,6 @@
16
16
  * specific language governing permissions and limitations
17
17
  * under the License.
18
18
  */
19
-
20
19
  /* eslint-disable no-extra-boolean-cast */
21
20
  import { Alert as ChakraAlert } from "@chakra-ui/react";
22
21
  import { forwardRef } from "react";
@@ -17,7 +17,7 @@
17
17
  * under the License.
18
18
  */
19
19
  import { Box } from "@chakra-ui/react";
20
- import { BrowserRouter, Route, Routes } from "react-router-dom";
20
+ import { Navigate, Route, Routes } from "react-router-dom";
21
21
 
22
22
  import { JobsPage } from "src/pages/JobsPage";
23
23
  import { WorkerPage } from "src/pages/WorkerPage";
@@ -26,19 +26,18 @@ import { NavTabs } from "./NavTabs";
26
26
 
27
27
  export const EdgeLayout = () => {
28
28
  const tabs = [
29
- { label: "Edge Worker", value: "plugin/edge_worker" },
30
- { label: "Edge Jobs", value: "plugin/edge_jobs" },
29
+ { label: "Edge Worker", value: "worker" },
30
+ { label: "Edge Jobs", value: "jobs" },
31
31
  ];
32
32
 
33
33
  return (
34
34
  <Box p={2} /* Compensate for parent padding from ExternalView */>
35
- <BrowserRouter>
36
- <NavTabs tabs={tabs} />
37
- <Routes>
38
- <Route path="plugin/edge_worker" element={<WorkerPage />} />
39
- <Route path="plugin/edge_jobs" element={<JobsPage />} />
40
- </Routes>
41
- </BrowserRouter>
35
+ <NavTabs tabs={tabs} />
36
+ <Routes>
37
+ <Route index element={<Navigate to="worker" replace />} />
38
+ <Route path="worker" element={<WorkerPage />} />
39
+ <Route path="jobs" element={<JobsPage />} />
40
+ </Routes>
42
41
  </Box>
43
42
  );
44
43
  };
@@ -33,14 +33,7 @@ export const NavTabs = ({ tabs }: Props) => {
33
33
  return (
34
34
  <Flex alignItems="center" borderBottomWidth={1} mb={2} ref={containerRef}>
35
35
  {tabs.map(({ icon, label, value }) => (
36
- <NavLink
37
- end
38
- key={value}
39
- title={label}
40
- to={{
41
- pathname: value,
42
- }}
43
- >
36
+ <NavLink end key={value} title={label} to={value}>
44
37
  {({ isActive }) => (
45
38
  <Center
46
39
  borderBottomColor="border.info"
@@ -18,12 +18,11 @@
18
18
  */
19
19
  import { ChakraProvider } from "@chakra-ui/react";
20
20
  import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
21
- import axios from "axios";
21
+ import { OpenAPI } from "openapi/requests/core/OpenAPI";
22
22
  import { FC } from "react";
23
23
 
24
24
  import { ColorModeProvider } from "src/context/colorMode";
25
25
  import { EdgeLayout } from "src/layouts/EdgeLayout";
26
- import { tokenHandler } from "src/utils";
27
26
 
28
27
  import { system } from "./theme";
29
28
 
@@ -33,8 +32,10 @@ export type PluginComponentProps = object;
33
32
  * Main plugin component
34
33
  */
35
34
  const PluginComponent: FC<PluginComponentProps> = () => {
36
- // ensure HTTP API calls are authenticated with current session token
37
- axios.interceptors.request.use(tokenHandler);
35
+ // Set the base URL for OpenAPI client from the HTML base tag
36
+ const baseHref = document.querySelector("head > base")?.getAttribute("href") ?? "";
37
+ const baseUrl = new URL(baseHref, globalThis.location.origin);
38
+ OpenAPI.BASE = baseUrl.pathname.replace(/\/$/, ""); // Remove trailing slash
38
39
 
39
40
  const queryClient = new QueryClient({
40
41
  defaultOptions: {
@@ -16,9 +16,9 @@
16
16
  * specific language governing permissions and limitations
17
17
  * under the License.
18
18
  */
19
- import { Box, Link, Table, Text } from "@chakra-ui/react";
19
+ import { Box, Table, Text } from "@chakra-ui/react";
20
20
  import { useUiServiceJobs } from "openapi/queries";
21
- import { Link as RouterLink } from "react-router-dom";
21
+ import { Link } from "react-router-dom";
22
22
  import TimeAgo from "react-timeago";
23
23
 
24
24
  import { ErrorAlert } from "src/components/ErrorAlert";
@@ -60,22 +60,21 @@ export const JobsPage = () => {
60
60
  key={`${job.dag_id}.${job.run_id}.${job.task_id}.${job.map_index}.${job.try_number}`}
61
61
  >
62
62
  <Table.Cell>
63
- {/* TODO Check why <Link to={`/dags/${job.dag_id}`}> is not working via react-router-dom! */}
64
- <Link href={`../dags/${job.dag_id}`}>{job.dag_id}</Link>
63
+ <Link to={`/dags/${job.dag_id}`}>{job.dag_id}</Link>
65
64
  </Table.Cell>
66
65
  <Table.Cell>
67
- <Link href={`../dags/${job.dag_id}/runs/${job.run_id}`}>{job.run_id}</Link>
66
+ <Link to={`/dags/${job.dag_id}/runs/${job.run_id}`}>{job.run_id}</Link>
68
67
  </Table.Cell>
69
68
  <Table.Cell>
70
69
  {job.map_index >= 0 ? (
71
70
  <Link
72
- href={`../dags/${job.dag_id}/runs/${job.run_id}/tasks/${job.task_id}/mapped/${job.map_index}?try_number=${job.try_number}`}
71
+ to={`/dags/${job.dag_id}/runs/${job.run_id}/tasks/${job.task_id}/mapped/${job.map_index}?try_number=${job.try_number}`}
73
72
  >
74
73
  {job.task_id}
75
74
  </Link>
76
75
  ) : (
77
76
  <Link
78
- href={`../dags/${job.dag_id}/runs/${job.run_id}/tasks/${job.task_id}?try_number=${job.try_number}`}
77
+ to={`/dags/${job.dag_id}/runs/${job.run_id}/tasks/${job.task_id}?try_number=${job.try_number}`}
79
78
  >
80
79
  {job.task_id}
81
80
  </Link>
@@ -91,7 +90,7 @@ export const JobsPage = () => {
91
90
  {job.queued_dttm ? <TimeAgo date={job.queued_dttm} live={false} /> : undefined}
92
91
  </Table.Cell>
93
92
  <Table.Cell>
94
- <RouterLink to={`/plugin/edge_worker#${job.edge_worker}`}>{job.edge_worker}</RouterLink>
93
+ <Link to={`../worker#${job.edge_worker}`}>{job.edge_worker}</Link>
95
94
  </Table.Cell>
96
95
  <Table.Cell>
97
96
  {job.last_update ? <TimeAgo date={job.last_update} live={false} /> : undefined}
@@ -16,7 +16,6 @@
16
16
  * specific language governing permissions and limitations
17
17
  * under the License.
18
18
  */
19
-
20
19
  /* eslint-disable perfectionist/sort-objects */
21
20
  import { createSystem, defaultConfig, defineConfig } from "@chakra-ui/react";
22
21
  import type { CSSProperties } from "react";
@@ -19,4 +19,3 @@
19
19
 
20
20
  export { autoRefreshInterval } from "./config";
21
21
  export { useContainerWidth } from "./useContainerWidth";
22
- export { tokenHandler } from "./tokenHandler";
@@ -38,11 +38,12 @@ export default defineConfig(({ command }) => {
38
38
  name: "AirflowPlugin",
39
39
  },
40
40
  rollupOptions: {
41
- external: ["react", "react-dom"],
41
+ external: ["react", "react-dom", "react-router-dom", "react/jsx-runtime"],
42
42
  output: {
43
43
  globals: {
44
44
  react: "React",
45
45
  "react-dom": "ReactDOM",
46
+ "react-router-dom": "ReactRouterDOM",
46
47
  "react/jsx-runtime": "ReactJSXRuntime",
47
48
  },
48
49
  },
@@ -34,3 +34,8 @@ def get_base_airflow_version_tuple() -> tuple[int, int, int]:
34
34
 
35
35
  AIRFLOW_V_3_0_PLUS = get_base_airflow_version_tuple() >= (3, 0, 0)
36
36
  AIRFLOW_V_3_1_PLUS = get_base_airflow_version_tuple() >= (3, 1, 0)
37
+
38
+ __all__ = [
39
+ "AIRFLOW_V_3_0_PLUS",
40
+ "AIRFLOW_V_3_1_PLUS",
41
+ ]
@@ -68,6 +68,7 @@ else:
68
68
  HTTP_204_NO_CONTENT = 204
69
69
  HTTP_400_BAD_REQUEST = 400
70
70
  HTTP_403_FORBIDDEN = 403
71
+ HTTP_404_NOT_FOUND = 404
71
72
  HTTP_500_INTERNAL_SERVER_ERROR = 500
72
73
 
73
74
  class HTTPException(ProblemException): # type: ignore[no-redef]
@@ -21,6 +21,7 @@ from typing import Annotated
21
21
 
22
22
  from sqlalchemy import select, update
23
23
 
24
+ from airflow.providers.common.compat.sdk import timezone
24
25
  from airflow.providers.edge3.models.edge_job import EdgeJobModel
25
26
  from airflow.providers.edge3.worker_api.auth import jwt_token_authorization_rest
26
27
  from airflow.providers.edge3.worker_api.datamodels import (
@@ -38,8 +39,6 @@ from airflow.providers.edge3.worker_api.routes._v2_compat import (
38
39
  status,
39
40
  )
40
41
  from airflow.stats import Stats
41
- from airflow.utils import timezone
42
- from airflow.utils.sqlalchemy import with_row_locks
43
42
  from airflow.utils.state import TaskInstanceState
44
43
 
45
44
  jobs_router = AirflowRouter(tags=["Jobs"], prefix="/jobs")
@@ -78,8 +77,8 @@ def fetch(
78
77
  if body.queues:
79
78
  query = query.where(EdgeJobModel.queue.in_(body.queues))
80
79
  query = query.limit(1)
81
- query = with_row_locks(query, of=EdgeJobModel, session=session, skip_locked=True)
82
- job: EdgeJobModel = session.scalar(query)
80
+ query = query.with_for_update(skip_locked=True)
81
+ job: EdgeJobModel | None = session.scalar(query)
83
82
  if not job:
84
83
  return None
85
84
  job.state = TaskInstanceState.RUNNING
@@ -148,7 +147,7 @@ def state(
148
147
  )
149
148
  Stats.incr("edge_worker.ti.finish", tags=tags)
150
149
 
151
- query = (
150
+ query2 = (
152
151
  update(EdgeJobModel)
153
152
  .where(
154
153
  EdgeJobModel.dag_id == dag_id,
@@ -159,4 +158,4 @@ def state(
159
158
  )
160
159
  .values(state=state, last_update=timezone.utcnow())
161
160
  )
162
- session.execute(query)
161
+ session.execute(query2)
@@ -18,6 +18,7 @@
18
18
  from __future__ import annotations
19
19
 
20
20
  from datetime import datetime
21
+ from typing import TYPE_CHECKING
21
22
 
22
23
  from fastapi import Depends, HTTPException, status
23
24
  from sqlalchemy import select
@@ -44,6 +45,10 @@ from airflow.providers.edge3.worker_api.datamodels_ui import (
44
45
  Worker,
45
46
  WorkerCollectionResponse,
46
47
  )
48
+ from airflow.utils.state import TaskInstanceState
49
+
50
+ if TYPE_CHECKING:
51
+ from sqlalchemy.engine import ScalarResult
47
52
 
48
53
  ui_router = AirflowRouter(tags=["UI"])
49
54
 
@@ -59,7 +64,7 @@ def worker(
59
64
  ) -> WorkerCollectionResponse:
60
65
  """Return Edge Workers."""
61
66
  query = select(EdgeWorkerModel).order_by(EdgeWorkerModel.worker_name)
62
- workers: list[EdgeWorkerModel] = session.scalars(query)
67
+ workers: ScalarResult[EdgeWorkerModel] = session.scalars(query)
63
68
 
64
69
  result = [
65
70
  Worker(
@@ -91,7 +96,7 @@ def jobs(
91
96
  ) -> JobCollectionResponse:
92
97
  """Return Edge Jobs."""
93
98
  query = select(EdgeJobModel).order_by(EdgeJobModel.queued_dttm)
94
- jobs: list[EdgeJobModel] = session.scalars(query)
99
+ jobs: ScalarResult[EdgeJobModel] = session.scalars(query)
95
100
 
96
101
  result = [
97
102
  Job(
@@ -100,7 +105,7 @@ def jobs(
100
105
  run_id=j.run_id,
101
106
  map_index=j.map_index,
102
107
  try_number=j.try_number,
103
- state=j.state,
108
+ state=TaskInstanceState(j.state),
104
109
  queue=j.queue,
105
110
  queued_dttm=j.queued_dttm,
106
111
  edge_worker=j.edge_worker,
@@ -22,6 +22,7 @@ from typing import Annotated
22
22
 
23
23
  from sqlalchemy import select
24
24
 
25
+ from airflow.providers.common.compat.sdk import timezone
25
26
  from airflow.providers.edge3.models.edge_worker import EdgeWorkerModel, EdgeWorkerState, set_metrics
26
27
  from airflow.providers.edge3.worker_api.auth import jwt_token_authorization_rest
27
28
  from airflow.providers.edge3.worker_api.datamodels import (
@@ -41,7 +42,6 @@ from airflow.providers.edge3.worker_api.routes._v2_compat import (
41
42
  status,
42
43
  )
43
44
  from airflow.stats import Stats
44
- from airflow.utils import timezone
45
45
 
46
46
  worker_router = AirflowRouter(
47
47
  tags=["Worker"],
@@ -172,7 +172,7 @@ def register(
172
172
  """Register a new worker to the backend."""
173
173
  _assert_version(body.sysinfo)
174
174
  query = select(EdgeWorkerModel).where(EdgeWorkerModel.worker_name == worker_name)
175
- worker: EdgeWorkerModel = session.scalar(query)
175
+ worker: EdgeWorkerModel | None = session.scalar(query)
176
176
  if not worker:
177
177
  worker = EdgeWorkerModel(worker_name=worker_name, state=body.state, queues=body.queues)
178
178
  worker.state = redefine_state(worker.state, body.state)
@@ -194,7 +194,9 @@ def set_state(
194
194
  ) -> WorkerSetStateReturn:
195
195
  """Set state of worker and returns the current assigned queues."""
196
196
  query = select(EdgeWorkerModel).where(EdgeWorkerModel.worker_name == worker_name)
197
- worker: EdgeWorkerModel = session.scalar(query)
197
+ worker: EdgeWorkerModel | None = session.scalar(query)
198
+ if not worker:
199
+ raise HTTPException(status.HTTP_404_NOT_FOUND, "Worker not found")
198
200
  worker.state = redefine_state(worker.state, body.state)
199
201
  worker.maintenance_comment = redefine_maintenance_comments(
200
202
  worker.maintenance_comment, body.maintenance_comments
@@ -213,7 +215,7 @@ def set_state(
213
215
  free_concurrency=int(body.sysinfo["free_concurrency"]),
214
216
  queues=worker.queues,
215
217
  )
216
- _assert_version(body.sysinfo) # Exception only after worker state is in the DB
218
+ _assert_version(body.sysinfo) # Exception only after worker state is in the DB
217
219
  return WorkerSetStateReturn(
218
220
  state=worker.state, queues=worker.queues, maintenance_comments=worker.maintenance_comment
219
221
  )
@@ -229,7 +231,9 @@ def update_queues(
229
231
  session: SessionDep,
230
232
  ) -> None:
231
233
  query = select(EdgeWorkerModel).where(EdgeWorkerModel.worker_name == worker_name)
232
- worker: EdgeWorkerModel = session.scalar(query)
234
+ worker: EdgeWorkerModel | None = session.scalar(query)
235
+ if not worker:
236
+ raise HTTPException(status.HTTP_404_NOT_FOUND, "Worker not found")
233
237
  if body.new_queues:
234
238
  worker.add_queues(body.new_queues)
235
239
  if body.remove_queues:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-edge3
3
- Version: 1.3.0rc1
3
+ Version: 1.4.1
4
4
  Summary: Provider package apache-airflow-providers-edge3 for Apache Airflow
5
5
  Keywords: airflow-provider,edge3,airflow,integration
6
6
  Author-email: Apache Software Foundation <dev@airflow.apache.org>
@@ -20,12 +20,13 @@ Classifier: Programming Language :: Python :: 3.11
20
20
  Classifier: Programming Language :: Python :: 3.12
21
21
  Classifier: Programming Language :: Python :: 3.13
22
22
  Classifier: Topic :: System :: Monitoring
23
- Requires-Dist: apache-airflow>=2.10.0rc1
23
+ Requires-Dist: apache-airflow>=2.10.0,!=3.1.0
24
+ Requires-Dist: apache-airflow-providers-common-compat>=1.8.0
24
25
  Requires-Dist: pydantic>=2.11.0
25
26
  Requires-Dist: retryhttp>=1.2.0,!=1.3.0
26
27
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
27
- Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-edge3/1.3.0/changelog.html
28
- Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-edge3/1.3.0
28
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.4.1/changelog.html
29
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.4.1
29
30
  Project-URL: Mastodon, https://fosstodon.org/@airflow
30
31
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
31
32
  Project-URL: Source Code, https://github.com/apache/airflow
@@ -56,7 +57,7 @@ Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
56
57
 
57
58
  Package ``apache-airflow-providers-edge3``
58
59
 
59
- Release: ``1.3.0``
60
+ Release: ``1.4.1``
60
61
 
61
62
 
62
63
  Handle edge workers on remote sites via HTTP(s) connection and orchestrates work over distributed sites.
@@ -81,7 +82,7 @@ This is a provider package for ``edge3`` provider. All classes for this provider
81
82
  are in ``airflow.providers.edge3`` python package.
82
83
 
83
84
  You can find package information and changelog for the provider
84
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.3.0/>`_.
85
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.4.1/>`_.
85
86
 
86
87
  Installation
87
88
  ------------
@@ -95,14 +96,34 @@ The package supports the following python versions: 3.10,3.11,3.12,3.13
95
96
  Requirements
96
97
  ------------
97
98
 
98
- ================== ===================
99
- PIP package Version required
100
- ================== ===================
101
- ``apache-airflow`` ``>=2.10.0``
102
- ``pydantic`` ``>=2.11.0``
103
- ``retryhttp`` ``>=1.2.0,!=1.3.0``
104
- ================== ===================
99
+ ========================================== ====================
100
+ PIP package Version required
101
+ ========================================== ====================
102
+ ``apache-airflow`` ``>=2.10.0,!=3.1.0``
103
+ ``apache-airflow-providers-common-compat`` ``>=1.8.0``
104
+ ``pydantic`` ``>=2.11.0``
105
+ ``retryhttp`` ``>=1.2.0,!=1.3.0``
106
+ ========================================== ====================
107
+
108
+ Cross provider package dependencies
109
+ -----------------------------------
110
+
111
+ Those are dependencies that might be needed in order to use all the features of the package.
112
+ You need to install the specified providers in order to use them.
113
+
114
+ You can install such cross-provider dependencies when installing from PyPI. For example:
115
+
116
+ .. code-block:: bash
117
+
118
+ pip install apache-airflow-providers-edge3[common.compat]
119
+
120
+
121
+ ================================================================================================================== =================
122
+ Dependent package Extra
123
+ ================================================================================================================== =================
124
+ `apache-airflow-providers-common-compat <https://airflow.apache.org/docs/apache-airflow-providers-common-compat>`_ ``common.compat``
125
+ ================================================================================================================== =================
105
126
 
106
127
  The changelog for the provider package can be found in the
107
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.3.0/changelog.html>`_.
128
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.4.1/changelog.html>`_.
108
129
 
@@ -1,28 +1,28 @@
1
1
  airflow/providers/edge3/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850
2
- airflow/providers/edge3/__init__.py,sha256=vT6YKrohbryLOfXpKveRM0-hfus4_pJ9k-nCpQ8Rq4A,1494
2
+ airflow/providers/edge3/__init__.py,sha256=YJGs4Uf4WWsejZd4Uumqg7rX6HFH8Z1mDA3I79ElcH0,1494
3
3
  airflow/providers/edge3/get_provider_info.py,sha256=Ek27-dB4UALHUFYoYjtoQIGq0p7zeHcEgmELHvpVmCU,6836
4
- airflow/providers/edge3/version_compat.py,sha256=OMSc1Esqxt7BSjjyG6zWo_4pgW0dGi-71UXSuUKT8jE,1603
4
+ airflow/providers/edge3/version_compat.py,sha256=JRhqYf4UklO3xwmtCRPSXLQqq0yD1pCts3bhwxgVC0s,1670
5
5
  airflow/providers/edge3/cli/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
6
- airflow/providers/edge3/cli/api_client.py,sha256=334KHVB4eMSzRpQ5emS56o-RTUJQprxf5Q3xQldCHDQ,7440
6
+ airflow/providers/edge3/cli/api_client.py,sha256=IxG1dae4aemhO8yfKDA71PYSuBdf2ouGur8Cem1Ys4c,7489
7
7
  airflow/providers/edge3/cli/dataclasses.py,sha256=JUuvvmzSVWvG9uOEfzLIiXrTZ-HbESvu50jkPpVIYVw,2895
8
8
  airflow/providers/edge3/cli/edge_command.py,sha256=aZ8P9x9FBR_pyuDxi6LaLkz4ubGOBDk1RNNp0ppTbKY,21747
9
9
  airflow/providers/edge3/cli/signalling.py,sha256=sf4S6j6OoP0bLkda3UlCmlZabjv5wsMypy3kAvx56Z0,3220
10
- airflow/providers/edge3/cli/worker.py,sha256=hYRx6LjP4bWnD8k0i8L7c1zto2BMiutY2Jxd7yZIMXE,17216
10
+ airflow/providers/edge3/cli/worker.py,sha256=_ykOpA-io31TxOsjoGpfCtXPC60_E2boQJDjAtqSVIM,17626
11
11
  airflow/providers/edge3/example_dags/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
12
12
  airflow/providers/edge3/example_dags/integration_test.py,sha256=_bY2tVjUZvKAJXzm0Ozrwas0efRU4X9kULKWxu7LYB4,6264
13
13
  airflow/providers/edge3/example_dags/win_notepad.py,sha256=zYcrKqODN4KLZQ-5wNnZQQskrDd5LA-nKJNgKQDntSE,2832
14
- airflow/providers/edge3/example_dags/win_test.py,sha256=Dv2PZ1miG2ypwUK_mMQdBlFdCtpR9o8EBkq1edoYF4Q,13539
14
+ airflow/providers/edge3/example_dags/win_test.py,sha256=9iZ8Ro1Pi9RhYVcFFyyzpb6q3M0Qt8Ft1wJUF1O3dQc,13565
15
15
  airflow/providers/edge3/executors/__init__.py,sha256=y830gGSKCvjOcLwLuCDp84NCrHWWB9RSSH1qvJpFhyY,923
16
- airflow/providers/edge3/executors/edge_executor.py,sha256=fsGOiJNp6RNT1xGFtV8G0Y-nUfT2daBtZeJBh2MZAZ4,18013
16
+ airflow/providers/edge3/executors/edge_executor.py,sha256=_KWbjIe9KbosUKfoYZpeONNZnIdrqNK3ja3YzENL-pE,19336
17
17
  airflow/providers/edge3/models/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
18
- airflow/providers/edge3/models/edge_job.py,sha256=3D5HAzcVkyI2bxl3pVbbRxjIz--Tnr_eNFiw2oI6gEQ,3167
19
- airflow/providers/edge3/models/edge_logs.py,sha256=bNstp7gR54O2vbxzz4NTL0erbifFbGUjZ-YOM0I4sqk,2768
20
- airflow/providers/edge3/models/edge_worker.py,sha256=wUxDfxN-Hb4oAyHiA3TdwriIbgostHyg0fquyy37rEI,12405
18
+ airflow/providers/edge3/models/edge_job.py,sha256=PQRZcrl8RCj9d8xvdNFit7UJ6zRxvME_gZBLyBTN_70,3621
19
+ airflow/providers/edge3/models/edge_logs.py,sha256=rFVz4gR0GYiEpwai5Q2C5znkiuaUQTjq5EhfLnQUeZQ,3022
20
+ airflow/providers/edge3/models/edge_worker.py,sha256=kQV344idLt-ldk5Ru5V4g4RaaPlZA4H7XlWul5_KSuU,13789
21
21
  airflow/providers/edge3/openapi/__init__.py,sha256=0O-WvmDx8GeKSoECpHYrbe0hW-LgjlKny3VqTCpBQeQ,927
22
22
  airflow/providers/edge3/openapi/edge_worker_api_v1.yaml,sha256=GAE2IdOXmcUueNy5KFkLBgNpoWnOjnHT9TrW5NZEWpI,24938
23
- airflow/providers/edge3/openapi/v2-edge-generated.yaml,sha256=Log1huZkCqBTei1Z9no-O6pSQWPphHJTO5nBda7MFEw,40489
23
+ airflow/providers/edge3/openapi/v2-edge-generated.yaml,sha256=VBjkPbZjG73QiU75H7UK45q0lLpMsK5E45L9j-LQypI,39727
24
24
  airflow/providers/edge3/plugins/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
25
- airflow/providers/edge3/plugins/edge_executor_plugin.py,sha256=Ajc2cpX68Kf3dKlBluXDPoEeVIQN6qBQZS7KG3_ucd8,12741
25
+ airflow/providers/edge3/plugins/edge_executor_plugin.py,sha256=VUPAH-goiwEWmlJy01Sp5X0tn_jkkiMrpCFURh4RyOY,13020
26
26
  airflow/providers/edge3/plugins/templates/edge_worker_hosts.html,sha256=0_P2yfZwpy3Kvqd3GBvu_PgmmKCUbso3ieW8aYa76iU,8997
27
27
  airflow/providers/edge3/plugins/templates/edge_worker_jobs.html,sha256=bZ-6ysmIy6j4eR_TPHiqbgb3qpNMKCcEEB-SpxuxNgc,2831
28
28
  airflow/providers/edge3/plugins/www/.gitignore,sha256=glCQO0xBUzFDPKNjn3_mw7F6e51j3sjyo4knJAUqMz4,281
@@ -31,16 +31,16 @@ airflow/providers/edge3/plugins/www/.prettierrc,sha256=l0bDuMVuy86p4BwgAssF2AqJL
31
31
  airflow/providers/edge3/plugins/www/README.md,sha256=VLm9Gf_vSdATdAaSeHDkKHmw3Oo_r4ZIHyu_8o0hju4,5110
32
32
  airflow/providers/edge3/plugins/www/eslint.config.js,sha256=8KEosRBtZkvb2mZYWagAukze0WUu8hrPWz4eSj1ONKE,1851
33
33
  airflow/providers/edge3/plugins/www/index.html,sha256=PsqOtfHrJYYwQjxqcAkVOmsl2cRJe8biKygXJjAj2ng,413
34
- airflow/providers/edge3/plugins/www/package.json,sha256=7gagPyIlh-DzD_iYc2zW0RkzyPtyPfVNpuT95RIEOGA,2450
35
- airflow/providers/edge3/plugins/www/pnpm-lock.yaml,sha256=MV2XlPs4AhZQyaWBt8bXQqJfCzF860Kzky9yUDnq8o0,220866
34
+ airflow/providers/edge3/plugins/www/package.json,sha256=hvYwweROXrpWJNDpR0rVpH_tgLfEg1_hwC8zjNW5aIk,2446
35
+ airflow/providers/edge3/plugins/www/pnpm-lock.yaml,sha256=nvW-vQc0CYiwWKffQdFRostOzQe4V4AuPyITGd8jyho,219643
36
36
  airflow/providers/edge3/plugins/www/testsSetup.ts,sha256=x1L_lXmigZgufra1L32Xcci_lLifbaG_tP6vx6gPscc,852
37
37
  airflow/providers/edge3/plugins/www/tsconfig.app.json,sha256=zpihgvrBvwjOwtHddJtYUi7Gp26diFtNYmJ7XlM3GUU,753
38
38
  airflow/providers/edge3/plugins/www/tsconfig.json,sha256=jZfUc2grkJB0eRDSFPEPfmBblsr__nGAww3ojidM0ho,158
39
39
  airflow/providers/edge3/plugins/www/tsconfig.lib.json,sha256=Z5M3uhtIZ0Uc9CFjc7Fro7sWv9iOP3z0iX-dzmdTBtQ,392
40
40
  airflow/providers/edge3/plugins/www/tsconfig.node.json,sha256=On9I0qUPqRSyxJNKP5OlnWX_rYR1CKZV8A3IgF1UxvE,680
41
- airflow/providers/edge3/plugins/www/vite.config.ts,sha256=d1AANLpXH9lmreFQXxKJDGLDK20GOSp2tlhcKT9aLQk,2876
41
+ airflow/providers/edge3/plugins/www/vite.config.ts,sha256=mxAyXyZhIaFA46v7DY4yAo__y6gs9YXuIIPEhN-6xis,2971
42
42
  airflow/providers/edge3/plugins/www/dist/main.d.ts,sha256=eZKjnWzeXgUOt4RhqL-a2YYXWpSCboNcEQs5ZykL0kk,10
43
- airflow/providers/edge3/plugins/www/dist/main.umd.cjs,sha256=GJ9n3CbnTmtQsUXuMXuy0mCdfUXdwPhNr47aUBlvACM,562721
43
+ airflow/providers/edge3/plugins/www/dist/main.umd.cjs,sha256=QA22cjW1aG-FJ-fnc437p52Iw7vNNisn75-c4QEHlFQ,560410
44
44
  airflow/providers/edge3/plugins/www/openapi-gen/queries/common.ts,sha256=mnY7x73LFNTprAZjwPRbl9W1VSmKXPflqtaQa4ocOxw,3531
45
45
  airflow/providers/edge3/plugins/www/openapi-gen/queries/ensureQueryData.ts,sha256=CCvoih7AKo7voklUkF6EjcjMMVB0HOTY53mBFn2Nly0,1317
46
46
  airflow/providers/edge3/plugins/www/openapi-gen/queries/index.ts,sha256=p941sYs7pyF4XLKPxPgBXIko0H6s2U4sowFygzJ6Jos,114
@@ -49,9 +49,9 @@ airflow/providers/edge3/plugins/www/openapi-gen/queries/prefetch.ts,sha256=pRKqx
49
49
  airflow/providers/edge3/plugins/www/openapi-gen/queries/queries.ts,sha256=XQUk9_HwXC3A-3X_QeiB5V_Q3n1jv6Cql__-x4CPmBM,9616
50
50
  airflow/providers/edge3/plugins/www/openapi-gen/queries/suspense.ts,sha256=fB73K0oi6HFwvqVz8q3zM-lOp6H4EMS2zt3Lqii59cA,2186
51
51
  airflow/providers/edge3/plugins/www/openapi-gen/requests/index.ts,sha256=eykx9J6S_c0q9PV3cHOSrSw9OnGo7njAdBjYO3VA_N8,326
52
- airflow/providers/edge3/plugins/www/openapi-gen/requests/schemas.gen.ts,sha256=Vu5-aOO7-RU3QwS4G-4420bnNrj5W0ao4hcfDi_n_rc,20065
53
- airflow/providers/edge3/plugins/www/openapi-gen/requests/services.gen.ts,sha256=D-vVoLWvjh9qDoBnjtLgHESYUTC0S_GJcclCqH4_IBY,15177
54
- airflow/providers/edge3/plugins/www/openapi-gen/requests/types.gen.ts,sha256=Sn6qG4qSAjCDB6gAAG-PU-Mwct2h7RENhdkyxxQeFzc,18943
52
+ airflow/providers/edge3/plugins/www/openapi-gen/requests/schemas.gen.ts,sha256=5x9zAxJcNwBnRPR4gfNbSTmwWAo1NpuoBwN3Fzr5Ilg,20065
53
+ airflow/providers/edge3/plugins/www/openapi-gen/requests/services.gen.ts,sha256=x02frfqDlIJ6qez5CJRPpESVFBvfUO03FRCES_eqzWM,15207
54
+ airflow/providers/edge3/plugins/www/openapi-gen/requests/types.gen.ts,sha256=qP3NbFB6BjQfg3PnSIXbS1ZF94HZc7jNyhMZTz05OQo,19003
55
55
  airflow/providers/edge3/plugins/www/openapi-gen/requests/core/ApiError.ts,sha256=lfUGx_azgmK9WTL4eCD6q3MSHgi9kwbORAtzKpRD_pU,611
56
56
  airflow/providers/edge3/plugins/www/openapi-gen/requests/core/ApiRequestOptions.ts,sha256=TXwm2FFITqANuXL9C6kdYUtG6TJEuQWtERQOrbS1zxA,617
57
57
  airflow/providers/edge3/plugins/www/openapi-gen/requests/core/ApiResult.ts,sha256=i4pH_Yw7ZHyZmsb4PIXn8LhRqJVMFIp4fZ6OkPO32k4,166
@@ -59,8 +59,8 @@ airflow/providers/edge3/plugins/www/openapi-gen/requests/core/CancelablePromise.
59
59
  airflow/providers/edge3/plugins/www/openapi-gen/requests/core/OpenAPI.ts,sha256=Gu0_JlDV061xLt7NF2w9zb2gpP84-rybL86sgX71Ef0,1477
60
60
  airflow/providers/edge3/plugins/www/openapi-gen/requests/core/request.ts,sha256=jG833drJAZFBKN9hnEL6RIRmAfys9eb5rC8p99wBWXk,9598
61
61
  airflow/providers/edge3/plugins/www/src/dev.tsx,sha256=5sZlduF3IFFXKZMxV06hLsxhcCuWNzUMM4Ni1RITG8w,1114
62
- airflow/providers/edge3/plugins/www/src/main.tsx,sha256=Iv_6Ln7cYlcsZT8C3vDsJGRY3YdDwVBe86CrcCs7euQ,1837
63
- airflow/providers/edge3/plugins/www/src/theme.ts,sha256=jHKET2sbLILW2nrARgAL5cXYfAxOIoIt16WruK26Ies,21459
62
+ airflow/providers/edge3/plugins/www/src/main.tsx,sha256=mY1QGUj7UNDq1H0AbG5lOK1Z3889iQrtPGOfwOBEb3A,1999
63
+ airflow/providers/edge3/plugins/www/src/theme.ts,sha256=6Fbo0Mwbah6HTupBYyUqOt_T8DAZtDG2UABtOoxUe1w,21458
64
64
  airflow/providers/edge3/plugins/www/src/vite-env.d.ts,sha256=eY6SmeO3WS4Bxne5yY6kn_PXLilnlFfluNuZswLUDys,848
65
65
  airflow/providers/edge3/plugins/www/src/components/AddQueueButton.tsx,sha256=Ahyf0_NXqEM0UjIdMyTuANKToD1coqfEjdsQiudK_Fg,4159
66
66
  airflow/providers/edge3/plugins/www/src/components/ErrorAlert.tsx,sha256=4DFdnxEPWRBHCvMm5q5HKMH4D223jMNUX6zxKdZStNM,2182
@@ -75,7 +75,7 @@ airflow/providers/edge3/plugins/www/src/components/WorkerOperations.tsx,sha256=N
75
75
  airflow/providers/edge3/plugins/www/src/components/WorkerShutdownButton.tsx,sha256=IehKTRjCOkDuN1FeSQR-2TCxuK3BaN4VIWz_LBC9bjM,3629
76
76
  airflow/providers/edge3/plugins/www/src/components/WorkerStateBadge.tsx,sha256=tJX9FifJZKt4WqUyaTwMFxreTGpqxXK6-idfFSvNfXQ,3925
77
77
  airflow/providers/edge3/plugins/www/src/components/WorkerStateIcon.tsx,sha256=kJ3HgTLlQb5xBph9Cb-LxYLO-d7DMMURBbq-asfXDo0,2158
78
- airflow/providers/edge3/plugins/www/src/components/ui/Alert.tsx,sha256=gvndA8o2UqF0tfqijDZD4NkZ_DGBQK4Xj-oPKSgjEGw,2200
78
+ airflow/providers/edge3/plugins/www/src/components/ui/Alert.tsx,sha256=mE0yClICatcUqESJEWFxbVZsBrWBAZqeaSqAzHdIDe8,2199
79
79
  airflow/providers/edge3/plugins/www/src/components/ui/CloseButton.tsx,sha256=ZsaWKOHXz5Ic20l9nxy1IUNFJqvTXEn6Tnz6LVha1ZM,1341
80
80
  airflow/providers/edge3/plugins/www/src/components/ui/ScrollToAnchor.tsx,sha256=iznVBnAu5kbGY-F8YoDu1ZXrm_K-0mnqsfVCv0adVP8,1653
81
81
  airflow/providers/edge3/plugins/www/src/components/ui/createToaster.ts,sha256=kuOy0Zs_gLXSWJguySQALqjn1r5KPB90Hci8sVKbjrE,955
@@ -83,16 +83,15 @@ airflow/providers/edge3/plugins/www/src/components/ui/index.ts,sha256=oMFdotQy8u
83
83
  airflow/providers/edge3/plugins/www/src/context/colorMode/ColorModeProvider.tsx,sha256=D9tDe9sYEQvCSQ_3fmf6zCaS9rZnzWoZrvb3qrJ0qf0,1024
84
84
  airflow/providers/edge3/plugins/www/src/context/colorMode/index.ts,sha256=nTdA6xva8PrXEybO-JdQN4oSY9GHlHCPvUwREzJvhDM,879
85
85
  airflow/providers/edge3/plugins/www/src/context/colorMode/useColorMode.tsx,sha256=YYcXELSveM_10fOwZeCh9yxiN8H7essKz1QDiy9Jio8,1122
86
- airflow/providers/edge3/plugins/www/src/layouts/EdgeLayout.tsx,sha256=1VBqDFOsmj3GUz9xOv94t7ntNs1mwWZwYb-RMFxoaiU,1573
87
- airflow/providers/edge3/plugins/www/src/layouts/NavTabs.tsx,sha256=I3UV7KnEhIXfyYVRf4muloLAcpx_x6dFIPGSTRwMQfI,2126
88
- airflow/providers/edge3/plugins/www/src/pages/JobsPage.tsx,sha256=9spI-Ru7ANKkadWGiiILHnllbc-TRmIA4iY3-YM5Kww,4971
86
+ airflow/providers/edge3/plugins/www/src/layouts/EdgeLayout.tsx,sha256=17S8T1rnKA9416bz1yTeybK4_U_ENx2PbnezyN9PcXg,1532
87
+ airflow/providers/edge3/plugins/www/src/layouts/NavTabs.tsx,sha256=BA1BHI6VAu_8uB3hkCtEhrvKjxoE5taPQUAI2_1UXHQ,2040
88
+ airflow/providers/edge3/plugins/www/src/pages/JobsPage.tsx,sha256=tBgeEsd5TRDkwcsH2x3oOCMKyC4ak6GzfRbAZK6vjLI,4801
89
89
  airflow/providers/edge3/plugins/www/src/pages/WorkerPage.tsx,sha256=nvEuqk0tr1Y_JMGJTYDzmdadwB-LiJ4OrdmqNfHhiwA,5070
90
90
  airflow/providers/edge3/plugins/www/src/res/README.md,sha256=v9BEjvcB_pOcCP0bCL8wZ00xovBdzSk79FPFlqM9ZoQ,1010
91
91
  airflow/providers/edge3/plugins/www/src/res/cloud-computer-dark.svg,sha256=o_HFnxsF9M8BbBgIMXuAv3gO0Wc7owQDg5hvw-Pz3ek,368
92
92
  airflow/providers/edge3/plugins/www/src/res/cloud-computer.svg,sha256=oRbCGtHKdKwIqa3_540Np4Td5fkhu1YQ0n--OCRrkyw,365
93
93
  airflow/providers/edge3/plugins/www/src/utils/config.ts,sha256=XTd5NDxkuNshitc1pL6zANnwBnOh8srKnLGfoKJLL80,1118
94
- airflow/providers/edge3/plugins/www/src/utils/index.ts,sha256=IAP8x06DtpblvwRBr2n9XZeC4HoX45haHr8r-S80rKM,962
95
- airflow/providers/edge3/plugins/www/src/utils/tokenHandler.ts,sha256=aLNV3b1_vYL_FnwPExMZozUMFCtR0cATAXk7c0t92yM,1690
94
+ airflow/providers/edge3/plugins/www/src/utils/index.ts,sha256=h1cm1iCT0LPIY_VzgKkstdUdIHodFoZW8SwSAUImQpA,915
96
95
  airflow/providers/edge3/plugins/www/src/utils/useContainerWidth.ts,sha256=lLNc0NGM9y9ao538_MvbTiOBK3UYhNfBPX_PvRslCSg,1386
97
96
  airflow/providers/edge3/worker_api/__init__.py,sha256=nnPvxWGTEKZ9YyB1Yd7P9IvDOenK01LVHm22Owwxj3g,839
98
97
  airflow/providers/edge3/worker_api/app.py,sha256=yM2S2JLYE2lS4kN88XYnbeKKRa8vqVVhRq10yA_X0ig,3003
@@ -100,14 +99,14 @@ airflow/providers/edge3/worker_api/auth.py,sha256=nmwfUz-nokUKyQp-UKwlMn-i2U5AXz
100
99
  airflow/providers/edge3/worker_api/datamodels.py,sha256=FAiXqnrSN8zH4YE2fUMjXfXcH9cHlhRh4uZvvr936Ys,6696
101
100
  airflow/providers/edge3/worker_api/datamodels_ui.py,sha256=yPEdtZ7noV5BBNXvA9F-pqVDq7UxTIKUdoUf3_FTDdE,2795
102
101
  airflow/providers/edge3/worker_api/routes/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
103
- airflow/providers/edge3/worker_api/routes/_v2_compat.py,sha256=PuzSL9dMuji_MsluCoPdCvYboqJD0h4zERcIoB5kJvI,4543
102
+ airflow/providers/edge3/worker_api/routes/_v2_compat.py,sha256=R5w5XPBnOCr9AV-DXZFOP60CRaI9JwTR_kSXwMzt7HU,4576
104
103
  airflow/providers/edge3/worker_api/routes/_v2_routes.py,sha256=xcbf6RdOHx5zOl9JlIAW9nQhiy3ju-EIyq1tbXGJSYc,10800
105
104
  airflow/providers/edge3/worker_api/routes/health.py,sha256=1nRn_lvGhaMkGKGeEJbD_p7tJdMbC1LhEmwuQbqI9oE,1076
106
- airflow/providers/edge3/worker_api/routes/jobs.py,sha256=UK1w6nXEUadOLwE9abZ4jHH4KtbvXcwaAF0EnwSa3y4,5733
105
+ airflow/providers/edge3/worker_api/routes/jobs.py,sha256=oFf7E4IBX39npRyptISPy5ApgnKmXOwMJMefvF5iIcw,5678
107
106
  airflow/providers/edge3/worker_api/routes/logs.py,sha256=uk0SZ5hAimj3sAcq1FYCDu0AXYNeTeyjZDGBvw-986E,4945
108
- airflow/providers/edge3/worker_api/routes/ui.py,sha256=qXELQI6RZ80fLDTB0K6Z2H__ofJwRSvK6J1UYW3JC7g,9786
109
- airflow/providers/edge3/worker_api/routes/worker.py,sha256=BGARu1RZ74lW9X-ltuMYbbVXczm_MZdqHaai2MhDWtY,8969
110
- apache_airflow_providers_edge3-1.3.0rc1.dist-info/entry_points.txt,sha256=7WUIGfd3o9NvvbK5trbZxNXTgYGc6pqg74wZPigbx5o,206
111
- apache_airflow_providers_edge3-1.3.0rc1.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
112
- apache_airflow_providers_edge3-1.3.0rc1.dist-info/METADATA,sha256=z5gA4C_5R8AxkU4m8k7N3zhvYdL_kOhSaA49ezjekGw,4761
113
- apache_airflow_providers_edge3-1.3.0rc1.dist-info/RECORD,,
107
+ airflow/providers/edge3/worker_api/routes/ui.py,sha256=yjdNQ7N0h7g7rSzsi4r5inwi4rxlHCdmtYA-ZTWRu6k,9970
108
+ airflow/providers/edge3/worker_api/routes/worker.py,sha256=PWgD77rTOCqRGGp5TU4wYPbbu64aCbUrCgwLJEm9iQ8,9199
109
+ apache_airflow_providers_edge3-1.4.1.dist-info/entry_points.txt,sha256=7WUIGfd3o9NvvbK5trbZxNXTgYGc6pqg74wZPigbx5o,206
110
+ apache_airflow_providers_edge3-1.4.1.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
111
+ apache_airflow_providers_edge3-1.4.1.dist-info/METADATA,sha256=xYGoBe1Y1YPFwGEP1kNVVGigbFQnm9uWykv2lgPBShg,6113
112
+ apache_airflow_providers_edge3-1.4.1.dist-info/RECORD,,
@@ -1,51 +0,0 @@
1
- /*!
2
- * Licensed to the Apache Software Foundation (ASF) under one
3
- * or more contributor license agreements. See the NOTICE file
4
- * distributed with this work for additional information
5
- * regarding copyright ownership. The ASF licenses this file
6
- * to you under the Apache License, Version 2.0 (the
7
- * "License"); you may not use this file except in compliance
8
- * with the License. You may obtain a copy of the License at
9
- *
10
- * http://www.apache.org/licenses/LICENSE-2.0
11
- *
12
- * Unless required by applicable law or agreed to in writing,
13
- * software distributed under the License is distributed on an
14
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
- * KIND, either express or implied. See the License for the
16
- * specific language governing permissions and limitations
17
- * under the License.
18
- */
19
- import type { InternalAxiosRequestConfig } from "axios";
20
-
21
- export const TOKEN_STORAGE_KEY = "token";
22
- const getTokenFromCookies = (): string | undefined => {
23
- const cookies = document.cookie.split(";");
24
-
25
- for (const cookie of cookies) {
26
- const [name, token] = cookie.split("=");
27
-
28
- if (name?.trim() === "_token" && token !== undefined) {
29
- localStorage.setItem(TOKEN_STORAGE_KEY, token);
30
- document.cookie = "_token=; expires=Sat, 01 Jan 2000 00:00:00 UTC; path=/;";
31
-
32
- return token;
33
- }
34
- }
35
-
36
- return undefined;
37
- };
38
-
39
- export const tokenHandler = (config: InternalAxiosRequestConfig) => {
40
- const token = localStorage.getItem(TOKEN_STORAGE_KEY) ?? getTokenFromCookies();
41
-
42
- if (token !== undefined) {
43
- config.headers.Authorization = `Bearer ${token}`;
44
- }
45
-
46
- return config;
47
- };
48
-
49
- export const clearToken = () => {
50
- localStorage.removeItem(TOKEN_STORAGE_KEY);
51
- };