apache-airflow-providers-edge3 1.1.3__py3-none-any.whl → 1.2.0rc1__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 (75) hide show
  1. airflow/providers/edge3/__init__.py +1 -1
  2. airflow/providers/edge3/cli/worker.py +6 -2
  3. airflow/providers/edge3/example_dags/integration_test.py +6 -2
  4. airflow/providers/edge3/example_dags/win_test.py +6 -1
  5. airflow/providers/edge3/openapi/v2-edge-generated.yaml +1138 -0
  6. airflow/providers/edge3/plugins/edge_executor_plugin.py +43 -3
  7. airflow/providers/edge3/plugins/www/.gitignore +27 -0
  8. airflow/providers/edge3/plugins/www/.prettierignore +6 -0
  9. airflow/providers/edge3/plugins/www/.prettierrc +13 -0
  10. airflow/providers/edge3/plugins/www/README.md +141 -0
  11. airflow/providers/edge3/plugins/www/dist/main.d.ts +1 -0
  12. airflow/providers/edge3/plugins/www/dist/main.umd.cjs +124 -0
  13. airflow/providers/edge3/plugins/www/eslint.config.js +54 -0
  14. airflow/providers/edge3/plugins/www/index.html +13 -0
  15. airflow/providers/edge3/plugins/www/openapi-gen/queries/common.ts +33 -0
  16. airflow/providers/edge3/plugins/www/openapi-gen/queries/ensureQueryData.ts +16 -0
  17. airflow/providers/edge3/plugins/www/openapi-gen/queries/index.ts +4 -0
  18. airflow/providers/edge3/plugins/www/openapi-gen/queries/infiniteQueries.ts +2 -0
  19. airflow/providers/edge3/plugins/www/openapi-gen/queries/prefetch.ts +16 -0
  20. airflow/providers/edge3/plugins/www/openapi-gen/queries/queries.ts +87 -0
  21. airflow/providers/edge3/plugins/www/openapi-gen/queries/suspense.ts +16 -0
  22. airflow/providers/edge3/plugins/www/openapi-gen/requests/core/ApiError.ts +21 -0
  23. airflow/providers/edge3/plugins/www/openapi-gen/requests/core/ApiRequestOptions.ts +21 -0
  24. airflow/providers/edge3/plugins/www/openapi-gen/requests/core/ApiResult.ts +7 -0
  25. airflow/providers/edge3/plugins/www/openapi-gen/requests/core/CancelablePromise.ts +126 -0
  26. airflow/providers/edge3/plugins/www/openapi-gen/requests/core/OpenAPI.ts +57 -0
  27. airflow/providers/edge3/plugins/www/openapi-gen/requests/core/request.ts +347 -0
  28. airflow/providers/edge3/plugins/www/openapi-gen/requests/index.ts +7 -0
  29. airflow/providers/edge3/plugins/www/openapi-gen/requests/schemas.gen.ts +700 -0
  30. airflow/providers/edge3/plugins/www/openapi-gen/requests/services.gen.ts +289 -0
  31. airflow/providers/edge3/plugins/www/openapi-gen/requests/types.gen.ts +655 -0
  32. airflow/providers/edge3/plugins/www/package.json +80 -0
  33. airflow/providers/edge3/plugins/www/pnpm-lock.yaml +6653 -0
  34. airflow/providers/edge3/plugins/www/src/components/ErrorAlert.tsx +66 -0
  35. airflow/providers/edge3/plugins/www/src/components/StateBadge.tsx +43 -0
  36. airflow/providers/edge3/plugins/www/src/components/StateIcon.tsx +58 -0
  37. airflow/providers/edge3/plugins/www/src/components/WorkerStateBadge.tsx +71 -0
  38. airflow/providers/edge3/plugins/www/src/components/WorkerStateIcon.tsx +57 -0
  39. airflow/providers/edge3/plugins/www/src/components/ui/Alert.tsx +62 -0
  40. airflow/providers/edge3/plugins/www/src/components/ui/CloseButton.tsx +32 -0
  41. airflow/providers/edge3/plugins/www/src/components/ui/index.ts +20 -0
  42. airflow/providers/edge3/plugins/www/src/context/colorMode/ColorModeProvider.tsx +24 -0
  43. airflow/providers/edge3/plugins/www/src/context/colorMode/index.ts +21 -0
  44. airflow/providers/edge3/plugins/www/src/context/colorMode/useColorMode.tsx +32 -0
  45. airflow/providers/edge3/plugins/www/src/dev.tsx +29 -0
  46. airflow/providers/edge3/plugins/www/src/layouts/EdgeLayout.tsx +44 -0
  47. airflow/providers/edge3/plugins/www/src/layouts/NavTabs.tsx +63 -0
  48. airflow/providers/edge3/plugins/www/src/main.tsx +58 -0
  49. airflow/providers/edge3/plugins/www/src/pages/JobsPage.tsx +88 -0
  50. airflow/providers/edge3/plugins/www/src/pages/WorkerPage.tsx +105 -0
  51. airflow/providers/edge3/plugins/www/src/res/README.md +24 -0
  52. airflow/providers/edge3/plugins/www/src/res/cloud-computer-dark.svg +3 -0
  53. airflow/providers/edge3/plugins/www/src/res/cloud-computer.svg +3 -0
  54. airflow/providers/edge3/plugins/www/src/theme.ts +176 -0
  55. airflow/providers/edge3/plugins/www/src/utils/config.ts +23 -0
  56. airflow/providers/edge3/plugins/www/src/utils/index.ts +22 -0
  57. airflow/providers/edge3/plugins/www/src/utils/tokenHandler.ts +51 -0
  58. airflow/providers/edge3/plugins/www/src/utils/useContainerWidth.ts +43 -0
  59. airflow/providers/edge3/plugins/www/src/vite-env.d.ts +20 -0
  60. airflow/providers/edge3/plugins/www/testsSetup.ts +19 -0
  61. airflow/providers/edge3/plugins/www/tsconfig.app.json +31 -0
  62. airflow/providers/edge3/plugins/www/tsconfig.json +8 -0
  63. airflow/providers/edge3/plugins/www/tsconfig.lib.json +15 -0
  64. airflow/providers/edge3/plugins/www/tsconfig.node.json +29 -0
  65. airflow/providers/edge3/plugins/www/vite.config.ts +95 -0
  66. airflow/providers/edge3/version_compat.py +1 -0
  67. airflow/providers/edge3/worker_api/app.py +34 -8
  68. airflow/providers/edge3/worker_api/datamodels_ui.py +67 -0
  69. airflow/providers/edge3/worker_api/routes/health.py +1 -1
  70. airflow/providers/edge3/worker_api/routes/ui.py +102 -0
  71. {apache_airflow_providers_edge3-1.1.3.dist-info → apache_airflow_providers_edge3-1.2.0rc1.dist-info}/METADATA +8 -9
  72. apache_airflow_providers_edge3-1.2.0rc1.dist-info/RECORD +103 -0
  73. apache_airflow_providers_edge3-1.1.3.dist-info/RECORD +0 -41
  74. {apache_airflow_providers_edge3-1.1.3.dist-info → apache_airflow_providers_edge3-1.2.0rc1.dist-info}/WHEEL +0 -0
  75. {apache_airflow_providers_edge3-1.1.3.dist-info → apache_airflow_providers_edge3-1.2.0rc1.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,31 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "compilerOptions": {
4
+ "target": "ES2022",
5
+ "useDefineForClassFields": true,
6
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
7
+ "module": "ESNext",
8
+ "skipLibCheck": true,
9
+
10
+ /* Bundler mode */
11
+ "moduleResolution": "bundler",
12
+ "allowImportingTsExtensions": true,
13
+ "isolatedModules": true,
14
+ "moduleDetection": "force",
15
+ "noEmit": true,
16
+ "jsx": "react-jsx",
17
+
18
+ /* Linting */
19
+ "strict": true,
20
+ "noUnusedLocals": true,
21
+ "noUnusedParameters": true,
22
+ "noFallthroughCasesInSwitch": true,
23
+ "noUncheckedIndexedAccess": true,
24
+ "baseUrl": ".",
25
+ "paths": {
26
+ "src/*": ["./src/*"],
27
+ "openapi/*": ["./openapi-gen/*"]
28
+ }
29
+ },
30
+ "include": ["src"]
31
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "files": [],
3
+ "references": [
4
+ { "path": "./tsconfig.app.json" },
5
+ { "path": "./tsconfig.node.json" },
6
+ { "path": "./tsconfig.lib.json" }
7
+ ]
8
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "./tsconfig.app.json",
4
+ "compilerOptions": {
5
+ "declaration": true,
6
+ "declarationMap": true,
7
+ "emitDeclarationOnly": true,
8
+ "outDir": "./dist",
9
+ "rootDir": "./src",
10
+ "noEmit": false,
11
+ "allowImportingTsExtensions": false
12
+ },
13
+ "include": ["src/main.tsx"],
14
+ "exclude": ["**/*.test.*", "**/*.spec.*"]
15
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "compilerOptions": {
4
+ "target": "ES2022",
5
+ "lib": ["ES2023"],
6
+ "module": "ESNext",
7
+ "skipLibCheck": true,
8
+
9
+ /* Bundler mode */
10
+ "moduleResolution": "bundler",
11
+ "allowImportingTsExtensions": true,
12
+ "isolatedModules": true,
13
+ "moduleDetection": "force",
14
+ "noEmit": true,
15
+
16
+ /* Linting */
17
+ "strict": true,
18
+ "noUnusedLocals": true,
19
+ "noUnusedParameters": true,
20
+ "noFallthroughCasesInSwitch": true,
21
+ "noUncheckedIndexedAccess": true,
22
+ "baseUrl": ".",
23
+ "paths": {
24
+ "src/*": ["./src/*"],
25
+ "openapi/*": ["./openapi-gen/*"]
26
+ }
27
+ },
28
+ "include": ["vite.config.ts"]
29
+ }
@@ -0,0 +1,95 @@
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 react from "@vitejs/plugin-react-swc";
20
+ import { resolve } from "node:path";
21
+ import cssInjectedByJsPlugin from "vite-plugin-css-injected-by-js";
22
+ import dts from "vite-plugin-dts";
23
+ import { defineConfig } from "vitest/config";
24
+
25
+ // https://vitejs.dev/config/
26
+ export default defineConfig(({ command }) => {
27
+ const isLibraryBuild = command === "build";
28
+
29
+ return {
30
+ base: "./",
31
+ build: isLibraryBuild
32
+ ? {
33
+ chunkSizeWarningLimit: 1600,
34
+ lib: {
35
+ entry: resolve("src", "main.tsx"),
36
+ fileName: "main",
37
+ formats: ["umd"],
38
+ name: "AirflowPlugin",
39
+ },
40
+ rollupOptions: {
41
+ external: ["react", "react-dom"],
42
+ output: {
43
+ globals: {
44
+ react: "React",
45
+ "react/jsx-runtime": "ReactJSXRuntime",
46
+ },
47
+ },
48
+ },
49
+ }
50
+ : {
51
+ // Development build configuration
52
+ chunkSizeWarningLimit: 1600,
53
+ },
54
+ define: {
55
+ global: "globalThis",
56
+ "process.env": "{}",
57
+ // Define process.env for browser compatibility
58
+ "process.env.NODE_ENV": JSON.stringify("production"),
59
+ },
60
+ plugins: [
61
+ react(),
62
+ cssInjectedByJsPlugin(),
63
+ ...(isLibraryBuild
64
+ ? [
65
+ dts({
66
+ include: ["src/main.tsx"],
67
+ insertTypesEntry: true,
68
+ outDir: "dist",
69
+ }),
70
+ ]
71
+ : []),
72
+ ],
73
+ resolve: { alias: { openapi: "/openapi-gen", src: "/src" } },
74
+ server: {
75
+ cors: true, // Only used by the dev server.
76
+ proxy: {
77
+ "/edge_worker": {
78
+ changeOrigin: true,
79
+ target: "http://localhost:28080",
80
+ },
81
+ },
82
+ },
83
+ test: {
84
+ coverage: {
85
+ include: ["src/**/*.ts", "src/**/*.tsx"],
86
+ },
87
+ css: true,
88
+ environment: "happy-dom",
89
+ globals: true,
90
+ mockReset: true,
91
+ restoreMocks: true,
92
+ setupFiles: "./testsSetup.ts",
93
+ },
94
+ };
95
+ });
@@ -33,3 +33,4 @@ def get_base_airflow_version_tuple() -> tuple[int, int, int]:
33
33
 
34
34
 
35
35
  AIRFLOW_V_3_0_PLUS = get_base_airflow_version_tuple() >= (3, 0, 0)
36
+ AIRFLOW_V_3_1_PLUS = get_base_airflow_version_tuple() >= (3, 1, 0)
@@ -16,11 +16,15 @@
16
16
  # under the License.
17
17
  from __future__ import annotations
18
18
 
19
+ from pathlib import Path
20
+
19
21
  from fastapi import FastAPI
22
+ from fastapi.staticfiles import StaticFiles
20
23
 
21
24
  from airflow.providers.edge3.worker_api.routes.health import health_router
22
25
  from airflow.providers.edge3.worker_api.routes.jobs import jobs_router
23
26
  from airflow.providers.edge3.worker_api.routes.logs import logs_router
27
+ from airflow.providers.edge3.worker_api.routes.ui import ui_router
24
28
  from airflow.providers.edge3.worker_api.routes.worker import worker_router
25
29
 
26
30
 
@@ -29,15 +33,37 @@ def create_edge_worker_api_app() -> FastAPI:
29
33
  edge_worker_api_app = FastAPI(
30
34
  title="Airflow Edge Worker API",
31
35
  description=(
32
- "This is Airflow Edge Worker API - which is a the access endpoint for workers running on remote "
33
- "sites serving for Apache Airflow jobs. It also proxies internal API to edge endpoints. It is "
34
- "not intended to be used by any external code. You can find more information in AIP-69 "
35
- "https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=301795932"
36
+ "This is Airflow Edge Worker API - this is a the access endpoint for workers running on remote "
37
+ "sites serving for Apache Airflow jobs. It also serves for the Edge Worker UI and provides "
38
+ "endpoints for React web app.\n"
39
+ "All endpoints under ``/edge_worker/v1`` are used by remote workers and need a specific JWT token.\n"
40
+ "All endpoints under ``/edge_worker/ui`` are used by UI and can be accessed with normal authentication. "
41
+ "Please assume UI endpoints to change and not be stable."
36
42
  ),
37
43
  )
38
44
 
39
- edge_worker_api_app.include_router(health_router)
40
- edge_worker_api_app.include_router(jobs_router)
41
- edge_worker_api_app.include_router(logs_router)
42
- edge_worker_api_app.include_router(worker_router)
45
+ edge_worker_api_app.include_router(jobs_router, prefix="/v1")
46
+ edge_worker_api_app.include_router(logs_router, prefix="/v1")
47
+ edge_worker_api_app.include_router(worker_router, prefix="/v1")
48
+ edge_worker_api_app.include_router(health_router, prefix="/v1")
49
+ edge_worker_api_app.include_router(ui_router, prefix="/ui")
50
+
51
+ # Fix mimetypes to serve cjs files correctly
52
+ import mimetypes
53
+
54
+ if ".cjs" not in mimetypes.suffix_map:
55
+ mimetypes.add_type("application/javascript", ".cjs")
56
+
57
+ www_files = Path(__file__).parents[1] / "plugins" / "www"
58
+ edge_worker_api_app.mount(
59
+ "/static",
60
+ StaticFiles(directory=(www_files / "dist").absolute(), html=True),
61
+ name="react_static_plugin_files",
62
+ )
63
+ edge_worker_api_app.mount(
64
+ "/res",
65
+ StaticFiles(directory=(www_files / "src" / "res").absolute(), html=True),
66
+ name="react_res_plugin_files",
67
+ )
68
+
43
69
  return edge_worker_api_app
@@ -0,0 +1,67 @@
1
+ # Licensed to the Apache Software Foundation (ASF) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The ASF licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+ from __future__ import annotations
18
+
19
+ from datetime import datetime
20
+ from typing import (
21
+ Annotated,
22
+ )
23
+
24
+ from pydantic import Field
25
+
26
+ from airflow.api_fastapi.core_api.base import BaseModel
27
+ from airflow.providers.edge3.worker_api.datamodels import EdgeJobBase, WorkerStateBody
28
+ from airflow.utils.state import TaskInstanceState # noqa: TC001
29
+
30
+
31
+ class Worker(WorkerStateBody):
32
+ """Details of the worker state sent to the scheduler."""
33
+
34
+ worker_name: Annotated[str, Field(description="Name of the worker.")]
35
+ first_online: Annotated[datetime | None, Field(description="When the worker was first online.")] = None
36
+ last_heartbeat: Annotated[
37
+ datetime | None, Field(description="When the worker last sent a heartbeat.")
38
+ ] = None
39
+
40
+
41
+ class WorkerCollectionResponse(BaseModel):
42
+ """Worker Collection serializer."""
43
+
44
+ workers: list[Worker]
45
+ total_entries: int
46
+
47
+
48
+ class Job(EdgeJobBase):
49
+ """Details of the job sent to the scheduler."""
50
+
51
+ state: Annotated[TaskInstanceState, Field(description="State of the job from the view of the executor.")]
52
+ queue: Annotated[
53
+ str,
54
+ Field(description="Queue for which the task is scheduled/running."),
55
+ ]
56
+ queued_dttm: Annotated[datetime | None, Field(description="When the job was queued.")] = None
57
+ edge_worker: Annotated[
58
+ str | None, Field(description="The worker processing the job during execution.")
59
+ ] = None
60
+ last_update: Annotated[datetime | None, Field(description="Last heartbeat of the job.")] = None
61
+
62
+
63
+ class JobCollectionResponse(BaseModel):
64
+ """Job Collection serializer."""
65
+
66
+ jobs: list[Job]
67
+ total_entries: int
@@ -19,7 +19,7 @@ from __future__ import annotations
19
19
 
20
20
  from airflow.providers.edge3.worker_api.routes._v2_compat import AirflowRouter
21
21
 
22
- health_router = AirflowRouter(tags=["Health"])
22
+ health_router = AirflowRouter(tags=["Monitor"])
23
23
 
24
24
 
25
25
  @health_router.get("/health")
@@ -0,0 +1,102 @@
1
+ # Licensed to the Apache Software Foundation (ASF) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The ASF licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ from __future__ import annotations
19
+
20
+ from fastapi import Depends
21
+ from sqlalchemy import select
22
+
23
+ from airflow.api_fastapi.auth.managers.models.resource_details import AccessView
24
+ from airflow.api_fastapi.common.db.common import SessionDep # noqa: TC001
25
+ from airflow.api_fastapi.common.router import AirflowRouter
26
+ from airflow.api_fastapi.core_api.security import requires_access_view
27
+ from airflow.providers.edge3.models.edge_job import EdgeJobModel
28
+ from airflow.providers.edge3.models.edge_worker import EdgeWorkerModel
29
+ from airflow.providers.edge3.worker_api.datamodels_ui import (
30
+ Job,
31
+ JobCollectionResponse,
32
+ Worker,
33
+ WorkerCollectionResponse,
34
+ )
35
+
36
+ ui_router = AirflowRouter(tags=["UI"])
37
+
38
+
39
+ @ui_router.get(
40
+ "/worker",
41
+ dependencies=[
42
+ Depends(requires_access_view(access_view=AccessView.JOBS)),
43
+ ],
44
+ )
45
+ def worker(
46
+ session: SessionDep,
47
+ ) -> WorkerCollectionResponse:
48
+ """Return Edge Workers."""
49
+ query = select(EdgeWorkerModel).order_by(EdgeWorkerModel.worker_name)
50
+ workers: list[EdgeWorkerModel] = session.scalars(query)
51
+
52
+ result = [
53
+ Worker(
54
+ worker_name=w.worker_name,
55
+ queues=w.queues,
56
+ state=w.state,
57
+ jobs_active=w.jobs_active,
58
+ sysinfo=w.sysinfo_json or {},
59
+ maintenance_comments=w.maintenance_comment,
60
+ first_online=w.first_online,
61
+ last_heartbeat=w.last_update,
62
+ )
63
+ for w in workers
64
+ ]
65
+ return WorkerCollectionResponse(
66
+ workers=result,
67
+ total_entries=len(result),
68
+ )
69
+
70
+
71
+ @ui_router.get(
72
+ "/jobs",
73
+ dependencies=[
74
+ Depends(requires_access_view(access_view=AccessView.JOBS)),
75
+ ],
76
+ )
77
+ def jobs(
78
+ session: SessionDep,
79
+ ) -> JobCollectionResponse:
80
+ """Return Edge Jobs."""
81
+ query = select(EdgeJobModel).order_by(EdgeJobModel.queued_dttm)
82
+ jobs: list[EdgeJobModel] = session.scalars(query)
83
+
84
+ result = [
85
+ Job(
86
+ dag_id=j.dag_id,
87
+ task_id=j.task_id,
88
+ run_id=j.run_id,
89
+ map_index=j.map_index,
90
+ try_number=j.try_number,
91
+ state=j.state,
92
+ queue=j.queue,
93
+ queued_dttm=j.queued_dttm,
94
+ edge_worker=j.edge_worker,
95
+ last_update=j.last_update,
96
+ )
97
+ for j in jobs
98
+ ]
99
+ return JobCollectionResponse(
100
+ jobs=result,
101
+ total_entries=len(result),
102
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-edge3
3
- Version: 1.1.3
3
+ Version: 1.2.0rc1
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,12 @@ 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.0
23
+ Requires-Dist: apache-airflow>=2.10.0rc1
24
24
  Requires-Dist: pydantic>=2.11.0
25
25
  Requires-Dist: retryhttp>=1.2.0,!=1.3.0
26
26
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
27
- Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.1.3/changelog.html
28
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.1.3
27
+ Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-edge3/1.2.0/changelog.html
28
+ Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-edge3/1.2.0
29
29
  Project-URL: Mastodon, https://fosstodon.org/@airflow
30
30
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
31
31
  Project-URL: Source Code, https://github.com/apache/airflow
@@ -56,9 +56,8 @@ Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
56
56
 
57
57
  Package ``apache-airflow-providers-edge3``
58
58
 
59
- Release: ``1.1.3``
59
+ Release: ``1.2.0``
60
60
 
61
- Release Date: ``|PypiReleaseDate|``
62
61
 
63
62
  Handle edge workers on remote sites via HTTP(s) connection and orchestrates work over distributed sites.
64
63
 
@@ -82,12 +81,12 @@ This is a provider package for ``edge3`` provider. All classes for this provider
82
81
  are in ``airflow.providers.edge3`` python package.
83
82
 
84
83
  You can find package information and changelog for the provider
85
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.1.3/>`_.
84
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.2.0/>`_.
86
85
 
87
86
  Installation
88
87
  ------------
89
88
 
90
- You can install this package on top of an existing Airflow 2 installation (see ``Requirements`` below
89
+ You can install this package on top of an existing Airflow installation (see ``Requirements`` below
91
90
  for the minimum Airflow version supported) via
92
91
  ``pip install apache-airflow-providers-edge3``
93
92
 
@@ -105,5 +104,5 @@ PIP package Version required
105
104
  ================== ===================
106
105
 
107
106
  The changelog for the provider package can be found in the
108
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.1.3/changelog.html>`_.
107
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.2.0/changelog.html>`_.
109
108
 
@@ -0,0 +1,103 @@
1
+ airflow/providers/edge3/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850
2
+ airflow/providers/edge3/__init__.py,sha256=0XLD5y7rsAnoja7NzOrsd5B1NpLtduJa_hHW2mh1Xtw,1494
3
+ airflow/providers/edge3/get_provider_info.py,sha256=Ek27-dB4UALHUFYoYjtoQIGq0p7zeHcEgmELHvpVmCU,6836
4
+ airflow/providers/edge3/version_compat.py,sha256=OMSc1Esqxt7BSjjyG6zWo_4pgW0dGi-71UXSuUKT8jE,1603
5
+ airflow/providers/edge3/cli/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
6
+ airflow/providers/edge3/cli/api_client.py,sha256=334KHVB4eMSzRpQ5emS56o-RTUJQprxf5Q3xQldCHDQ,7440
7
+ airflow/providers/edge3/cli/dataclasses.py,sha256=JUuvvmzSVWvG9uOEfzLIiXrTZ-HbESvu50jkPpVIYVw,2895
8
+ airflow/providers/edge3/cli/edge_command.py,sha256=qfHjVxA8QJ6zD8Eb8Ipieso4wo51_3MBaTtuSSIEOI4,20339
9
+ airflow/providers/edge3/cli/signalling.py,sha256=sf4S6j6OoP0bLkda3UlCmlZabjv5wsMypy3kAvx56Z0,3220
10
+ airflow/providers/edge3/cli/worker.py,sha256=f_ydI9Z7Ey4rJPnast3CAAuf8DZiBrKOXNUbpq5OTew,17385
11
+ airflow/providers/edge3/example_dags/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
12
+ airflow/providers/edge3/example_dags/integration_test.py,sha256=_bY2tVjUZvKAJXzm0Ozrwas0efRU4X9kULKWxu7LYB4,6264
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
15
+ airflow/providers/edge3/executors/__init__.py,sha256=y830gGSKCvjOcLwLuCDp84NCrHWWB9RSSH1qvJpFhyY,923
16
+ airflow/providers/edge3/executors/edge_executor.py,sha256=fsGOiJNp6RNT1xGFtV8G0Y-nUfT2daBtZeJBh2MZAZ4,18013
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=z3Rru2iFqaFVyvJ6vBQ4-W0T9MenDHip6bJHfLqI6K4,12102
21
+ airflow/providers/edge3/openapi/__init__.py,sha256=0O-WvmDx8GeKSoECpHYrbe0hW-LgjlKny3VqTCpBQeQ,927
22
+ airflow/providers/edge3/openapi/edge_worker_api_v1.yaml,sha256=GAE2IdOXmcUueNy5KFkLBgNpoWnOjnHT9TrW5NZEWpI,24938
23
+ airflow/providers/edge3/openapi/v2-edge-generated.yaml,sha256=rCoakQu0LR_Jl7NCVusSCn8uSW89V7wrK8Av1r3krGs,33676
24
+ airflow/providers/edge3/plugins/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
25
+ airflow/providers/edge3/plugins/edge_executor_plugin.py,sha256=Ajc2cpX68Kf3dKlBluXDPoEeVIQN6qBQZS7KG3_ucd8,12741
26
+ airflow/providers/edge3/plugins/templates/edge_worker_hosts.html,sha256=0_P2yfZwpy3Kvqd3GBvu_PgmmKCUbso3ieW8aYa76iU,8997
27
+ airflow/providers/edge3/plugins/templates/edge_worker_jobs.html,sha256=bZ-6ysmIy6j4eR_TPHiqbgb3qpNMKCcEEB-SpxuxNgc,2831
28
+ airflow/providers/edge3/plugins/www/.gitignore,sha256=glCQO0xBUzFDPKNjn3_mw7F6e51j3sjyo4knJAUqMz4,281
29
+ airflow/providers/edge3/plugins/www/.prettierignore,sha256=3FQ52dyPew57fO1lXEQTVRKfJClYQaM5tVkKWKSv4hg,56
30
+ airflow/providers/edge3/plugins/www/.prettierrc,sha256=l0bDuMVuy86p4BwgAssF2AqJL6x_pZMSt8vm401QHyo,365
31
+ airflow/providers/edge3/plugins/www/README.md,sha256=VLm9Gf_vSdATdAaSeHDkKHmw3Oo_r4ZIHyu_8o0hju4,5110
32
+ airflow/providers/edge3/plugins/www/eslint.config.js,sha256=8KEosRBtZkvb2mZYWagAukze0WUu8hrPWz4eSj1ONKE,1851
33
+ airflow/providers/edge3/plugins/www/index.html,sha256=PsqOtfHrJYYwQjxqcAkVOmsl2cRJe8biKygXJjAj2ng,413
34
+ airflow/providers/edge3/plugins/www/package.json,sha256=9e0z6polyYW-_LRdJU-6-OD2JKOs2zQBKdiVHi6p5qM,2381
35
+ airflow/providers/edge3/plugins/www/pnpm-lock.yaml,sha256=6ZgC4tmmVhawGa7Hyqxv3MfASaOAeF_sbdcM3MZJBog,216063
36
+ airflow/providers/edge3/plugins/www/testsSetup.ts,sha256=x1L_lXmigZgufra1L32Xcci_lLifbaG_tP6vx6gPscc,852
37
+ airflow/providers/edge3/plugins/www/tsconfig.app.json,sha256=zpihgvrBvwjOwtHddJtYUi7Gp26diFtNYmJ7XlM3GUU,753
38
+ airflow/providers/edge3/plugins/www/tsconfig.json,sha256=jZfUc2grkJB0eRDSFPEPfmBblsr__nGAww3ojidM0ho,158
39
+ airflow/providers/edge3/plugins/www/tsconfig.lib.json,sha256=Z5M3uhtIZ0Uc9CFjc7Fro7sWv9iOP3z0iX-dzmdTBtQ,392
40
+ airflow/providers/edge3/plugins/www/tsconfig.node.json,sha256=On9I0qUPqRSyxJNKP5OlnWX_rYR1CKZV8A3IgF1UxvE,680
41
+ airflow/providers/edge3/plugins/www/vite.config.ts,sha256=V2XLg7JUx10H_JeHGDmznAsRZw8cJd8NZx3bZ0gS4eI,2806
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=SYbnGEgErqeIgz4emyUAZx9skUXLWEQTFyWEIYd-lf8,504507
44
+ airflow/providers/edge3/plugins/www/openapi-gen/queries/common.ts,sha256=2e7JKQUXQB4rkjwPXTe1VoJPlNoLi_qBi1DOMcoo7vg,2721
45
+ airflow/providers/edge3/plugins/www/openapi-gen/queries/ensureQueryData.ts,sha256=CCvoih7AKo7voklUkF6EjcjMMVB0HOTY53mBFn2Nly0,1317
46
+ airflow/providers/edge3/plugins/www/openapi-gen/queries/index.ts,sha256=p941sYs7pyF4XLKPxPgBXIko0H6s2U4sowFygzJ6Jos,114
47
+ airflow/providers/edge3/plugins/www/openapi-gen/queries/infiniteQueries.ts,sha256=1Oy_tZ9ORQp_IbfL50MHgh9kYHXNxn2p89eVsxG-RtQ,61
48
+ airflow/providers/edge3/plugins/www/openapi-gen/queries/prefetch.ts,sha256=pRKqxicGVetBFpV1UCWI9p5i5_EI2jCfOHgR44JhDRs,1301
49
+ airflow/providers/edge3/plugins/www/openapi-gen/queries/queries.ts,sha256=OLYVdvGAIc9MEI7y9Hx1t4xdzUKeZCd6308gePKGtrw,6206
50
+ airflow/providers/edge3/plugins/www/openapi-gen/queries/suspense.ts,sha256=fB73K0oi6HFwvqVz8q3zM-lOp6H4EMS2zt3Lqii59cA,2186
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=ZrCutRrFdsNbEyIj27rQLZsR4zQTSKAjzt42o9wpRXY,19657
53
+ airflow/providers/edge3/plugins/www/openapi-gen/requests/services.gen.ts,sha256=6FrNQ_KZPUR234zuqRvFHgYfqe4VVbdGzhbhaW9Z5VY,9832
54
+ airflow/providers/edge3/plugins/www/openapi-gen/requests/types.gen.ts,sha256=RNMN8BLyk3ScbTi8axD8vu2p9d-ePM0tSXOkqGvRMO8,15269
55
+ airflow/providers/edge3/plugins/www/openapi-gen/requests/core/ApiError.ts,sha256=lfUGx_azgmK9WTL4eCD6q3MSHgi9kwbORAtzKpRD_pU,611
56
+ airflow/providers/edge3/plugins/www/openapi-gen/requests/core/ApiRequestOptions.ts,sha256=TXwm2FFITqANuXL9C6kdYUtG6TJEuQWtERQOrbS1zxA,617
57
+ airflow/providers/edge3/plugins/www/openapi-gen/requests/core/ApiResult.ts,sha256=i4pH_Yw7ZHyZmsb4PIXn8LhRqJVMFIp4fZ6OkPO32k4,166
58
+ airflow/providers/edge3/plugins/www/openapi-gen/requests/core/CancelablePromise.ts,sha256=ZjI34GKHYGvnzNuJLdyVYjUq7BXe3KmDrIQATCsbF8w,3258
59
+ airflow/providers/edge3/plugins/www/openapi-gen/requests/core/OpenAPI.ts,sha256=Gu0_JlDV061xLt7NF2w9zb2gpP84-rybL86sgX71Ef0,1477
60
+ airflow/providers/edge3/plugins/www/openapi-gen/requests/core/request.ts,sha256=jG833drJAZFBKN9hnEL6RIRmAfys9eb5rC8p99wBWXk,9598
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=c_UfM2PXZxjIHvyxcfchXKmXptrqA1YbAW550Xg32Yk,6856
64
+ airflow/providers/edge3/plugins/www/src/vite-env.d.ts,sha256=eY6SmeO3WS4Bxne5yY6kn_PXLilnlFfluNuZswLUDys,848
65
+ airflow/providers/edge3/plugins/www/src/components/ErrorAlert.tsx,sha256=4DFdnxEPWRBHCvMm5q5HKMH4D223jMNUX6zxKdZStNM,2182
66
+ airflow/providers/edge3/plugins/www/src/components/StateBadge.tsx,sha256=rORPnRI5h2oJaOGffnW7x4EgP6O_IbHAqA_6jO3DQUw,1506
67
+ airflow/providers/edge3/plugins/www/src/components/StateIcon.tsx,sha256=Bdrl_DOjV5lN4fXHVmxLK_OjNpODQiy2Fqk3iA5Z87s,2131
68
+ airflow/providers/edge3/plugins/www/src/components/WorkerStateBadge.tsx,sha256=BefwNkMPxplc26c_SqiiWB1y_IGDUzRtIu7uyvhv2bw,2135
69
+ airflow/providers/edge3/plugins/www/src/components/WorkerStateIcon.tsx,sha256=kJ3HgTLlQb5xBph9Cb-LxYLO-d7DMMURBbq-asfXDo0,2158
70
+ airflow/providers/edge3/plugins/www/src/components/ui/Alert.tsx,sha256=gvndA8o2UqF0tfqijDZD4NkZ_DGBQK4Xj-oPKSgjEGw,2200
71
+ airflow/providers/edge3/plugins/www/src/components/ui/CloseButton.tsx,sha256=ZsaWKOHXz5Ic20l9nxy1IUNFJqvTXEn6Tnz6LVha1ZM,1341
72
+ airflow/providers/edge3/plugins/www/src/components/ui/index.ts,sha256=0-HHyE8t8AA63LCcFygeK0OcavKw_zOhdTTYfHWUDhc,835
73
+ airflow/providers/edge3/plugins/www/src/context/colorMode/ColorModeProvider.tsx,sha256=TBTDueq9Pfv52BUdP47qCnhgsywGS1MrRg-AkJZb65U,1065
74
+ airflow/providers/edge3/plugins/www/src/context/colorMode/index.ts,sha256=nTdA6xva8PrXEybO-JdQN4oSY9GHlHCPvUwREzJvhDM,879
75
+ airflow/providers/edge3/plugins/www/src/context/colorMode/useColorMode.tsx,sha256=c00cGOKmck1JMyQBq4_rtkbKtHat_XStsJS6NSyOobI,1166
76
+ airflow/providers/edge3/plugins/www/src/layouts/EdgeLayout.tsx,sha256=1VBqDFOsmj3GUz9xOv94t7ntNs1mwWZwYb-RMFxoaiU,1573
77
+ airflow/providers/edge3/plugins/www/src/layouts/NavTabs.tsx,sha256=I3UV7KnEhIXfyYVRf4muloLAcpx_x6dFIPGSTRwMQfI,2126
78
+ airflow/providers/edge3/plugins/www/src/pages/JobsPage.tsx,sha256=mC6x1TAxzo8v_zdlWW-N-AZi_KSrX_Nx4AHRXpd7Xf4,3392
79
+ airflow/providers/edge3/plugins/www/src/pages/WorkerPage.tsx,sha256=HOTJayfJNl6bv30CYrqgIMDnyNYHQWjdk4yLRlqE6sY,3891
80
+ airflow/providers/edge3/plugins/www/src/res/README.md,sha256=v9BEjvcB_pOcCP0bCL8wZ00xovBdzSk79FPFlqM9ZoQ,1010
81
+ airflow/providers/edge3/plugins/www/src/res/cloud-computer-dark.svg,sha256=o_HFnxsF9M8BbBgIMXuAv3gO0Wc7owQDg5hvw-Pz3ek,368
82
+ airflow/providers/edge3/plugins/www/src/res/cloud-computer.svg,sha256=oRbCGtHKdKwIqa3_540Np4Td5fkhu1YQ0n--OCRrkyw,365
83
+ airflow/providers/edge3/plugins/www/src/utils/config.ts,sha256=XTd5NDxkuNshitc1pL6zANnwBnOh8srKnLGfoKJLL80,1118
84
+ airflow/providers/edge3/plugins/www/src/utils/index.ts,sha256=IAP8x06DtpblvwRBr2n9XZeC4HoX45haHr8r-S80rKM,962
85
+ airflow/providers/edge3/plugins/www/src/utils/tokenHandler.ts,sha256=aLNV3b1_vYL_FnwPExMZozUMFCtR0cATAXk7c0t92yM,1690
86
+ airflow/providers/edge3/plugins/www/src/utils/useContainerWidth.ts,sha256=lLNc0NGM9y9ao538_MvbTiOBK3UYhNfBPX_PvRslCSg,1386
87
+ airflow/providers/edge3/worker_api/__init__.py,sha256=nnPvxWGTEKZ9YyB1Yd7P9IvDOenK01LVHm22Owwxj3g,839
88
+ airflow/providers/edge3/worker_api/app.py,sha256=yM2S2JLYE2lS4kN88XYnbeKKRa8vqVVhRq10yA_X0ig,3003
89
+ airflow/providers/edge3/worker_api/auth.py,sha256=nmwfUz-nokUKyQp-UKwlMn-i2U5AXzq7c8Xfrt_bGeU,4867
90
+ airflow/providers/edge3/worker_api/datamodels.py,sha256=FAiXqnrSN8zH4YE2fUMjXfXcH9cHlhRh4uZvvr936Ys,6696
91
+ airflow/providers/edge3/worker_api/datamodels_ui.py,sha256=xROczXO2M9aiVMbMScaztOFtJ6AWlAw5lGpvtyNX-rc,2425
92
+ airflow/providers/edge3/worker_api/routes/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
93
+ airflow/providers/edge3/worker_api/routes/_v2_compat.py,sha256=PuzSL9dMuji_MsluCoPdCvYboqJD0h4zERcIoB5kJvI,4543
94
+ airflow/providers/edge3/worker_api/routes/_v2_routes.py,sha256=xcbf6RdOHx5zOl9JlIAW9nQhiy3ju-EIyq1tbXGJSYc,10800
95
+ airflow/providers/edge3/worker_api/routes/health.py,sha256=1nRn_lvGhaMkGKGeEJbD_p7tJdMbC1LhEmwuQbqI9oE,1076
96
+ airflow/providers/edge3/worker_api/routes/jobs.py,sha256=UK1w6nXEUadOLwE9abZ4jHH4KtbvXcwaAF0EnwSa3y4,5733
97
+ airflow/providers/edge3/worker_api/routes/logs.py,sha256=uk0SZ5hAimj3sAcq1FYCDu0AXYNeTeyjZDGBvw-986E,4945
98
+ airflow/providers/edge3/worker_api/routes/ui.py,sha256=bZXjN1RqNyjLW8xwDV7OGrAxM9FHrj7bs4l-r4HbLk8,3174
99
+ airflow/providers/edge3/worker_api/routes/worker.py,sha256=BGARu1RZ74lW9X-ltuMYbbVXczm_MZdqHaai2MhDWtY,8969
100
+ apache_airflow_providers_edge3-1.2.0rc1.dist-info/entry_points.txt,sha256=7WUIGfd3o9NvvbK5trbZxNXTgYGc6pqg74wZPigbx5o,206
101
+ apache_airflow_providers_edge3-1.2.0rc1.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
102
+ apache_airflow_providers_edge3-1.2.0rc1.dist-info/METADATA,sha256=PVs_hf3O2QPtB7hMzzkF1p56nG6DrqixBhhB2nT2a0U,4761
103
+ apache_airflow_providers_edge3-1.2.0rc1.dist-info/RECORD,,
@@ -1,41 +0,0 @@
1
- airflow/providers/edge3/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850
2
- airflow/providers/edge3/__init__.py,sha256=BjORgGO_bF2ofz3p_XipVRgv7thzIxVbHYrpwdW4qvA,1494
3
- airflow/providers/edge3/get_provider_info.py,sha256=Ek27-dB4UALHUFYoYjtoQIGq0p7zeHcEgmELHvpVmCU,6836
4
- airflow/providers/edge3/version_compat.py,sha256=j5PCtXvZ71aBjixu-EFTNtVDPsngzzs7os0ZQDgFVDk,1536
5
- airflow/providers/edge3/cli/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
6
- airflow/providers/edge3/cli/api_client.py,sha256=334KHVB4eMSzRpQ5emS56o-RTUJQprxf5Q3xQldCHDQ,7440
7
- airflow/providers/edge3/cli/dataclasses.py,sha256=JUuvvmzSVWvG9uOEfzLIiXrTZ-HbESvu50jkPpVIYVw,2895
8
- airflow/providers/edge3/cli/edge_command.py,sha256=qfHjVxA8QJ6zD8Eb8Ipieso4wo51_3MBaTtuSSIEOI4,20339
9
- airflow/providers/edge3/cli/signalling.py,sha256=sf4S6j6OoP0bLkda3UlCmlZabjv5wsMypy3kAvx56Z0,3220
10
- airflow/providers/edge3/cli/worker.py,sha256=x1SX5J2mFgfUTERKv5m8lDxNnoss3BV4F7Jgv6u8rPg,17259
11
- airflow/providers/edge3/example_dags/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
12
- airflow/providers/edge3/example_dags/integration_test.py,sha256=4iXvv379nFPxF1_gfbqb5NW1z-24MscYWLDxDwTNbPo,6120
13
- airflow/providers/edge3/example_dags/win_notepad.py,sha256=zYcrKqODN4KLZQ-5wNnZQQskrDd5LA-nKJNgKQDntSE,2832
14
- airflow/providers/edge3/example_dags/win_test.py,sha256=aZ5UbgrDsxmxPgxE6OXZV-LBhRgH0QR7xCt5mcxT7uQ,13392
15
- airflow/providers/edge3/executors/__init__.py,sha256=y830gGSKCvjOcLwLuCDp84NCrHWWB9RSSH1qvJpFhyY,923
16
- airflow/providers/edge3/executors/edge_executor.py,sha256=fsGOiJNp6RNT1xGFtV8G0Y-nUfT2daBtZeJBh2MZAZ4,18013
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=z3Rru2iFqaFVyvJ6vBQ4-W0T9MenDHip6bJHfLqI6K4,12102
21
- airflow/providers/edge3/openapi/__init__.py,sha256=0O-WvmDx8GeKSoECpHYrbe0hW-LgjlKny3VqTCpBQeQ,927
22
- airflow/providers/edge3/openapi/edge_worker_api_v1.yaml,sha256=GAE2IdOXmcUueNy5KFkLBgNpoWnOjnHT9TrW5NZEWpI,24938
23
- airflow/providers/edge3/plugins/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
24
- airflow/providers/edge3/plugins/edge_executor_plugin.py,sha256=cJcjmk-4OYBISpeGFXGvi78GPZ5EFgymzBm6FWvMMFA,10992
25
- airflow/providers/edge3/plugins/templates/edge_worker_hosts.html,sha256=0_P2yfZwpy3Kvqd3GBvu_PgmmKCUbso3ieW8aYa76iU,8997
26
- airflow/providers/edge3/plugins/templates/edge_worker_jobs.html,sha256=bZ-6ysmIy6j4eR_TPHiqbgb3qpNMKCcEEB-SpxuxNgc,2831
27
- airflow/providers/edge3/worker_api/__init__.py,sha256=nnPvxWGTEKZ9YyB1Yd7P9IvDOenK01LVHm22Owwxj3g,839
28
- airflow/providers/edge3/worker_api/app.py,sha256=Dda2VjkzgBtbQbSWSVEAoqd22RlqvBMyiPau65uKkv4,2006
29
- airflow/providers/edge3/worker_api/auth.py,sha256=nmwfUz-nokUKyQp-UKwlMn-i2U5AXzq7c8Xfrt_bGeU,4867
30
- airflow/providers/edge3/worker_api/datamodels.py,sha256=FAiXqnrSN8zH4YE2fUMjXfXcH9cHlhRh4uZvvr936Ys,6696
31
- airflow/providers/edge3/worker_api/routes/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
32
- airflow/providers/edge3/worker_api/routes/_v2_compat.py,sha256=PuzSL9dMuji_MsluCoPdCvYboqJD0h4zERcIoB5kJvI,4543
33
- airflow/providers/edge3/worker_api/routes/_v2_routes.py,sha256=xcbf6RdOHx5zOl9JlIAW9nQhiy3ju-EIyq1tbXGJSYc,10800
34
- airflow/providers/edge3/worker_api/routes/health.py,sha256=XxqIppnRA138Q6mAHCdyL2JvoeeganUiI-TXyXSPTGo,1075
35
- airflow/providers/edge3/worker_api/routes/jobs.py,sha256=UK1w6nXEUadOLwE9abZ4jHH4KtbvXcwaAF0EnwSa3y4,5733
36
- airflow/providers/edge3/worker_api/routes/logs.py,sha256=uk0SZ5hAimj3sAcq1FYCDu0AXYNeTeyjZDGBvw-986E,4945
37
- airflow/providers/edge3/worker_api/routes/worker.py,sha256=BGARu1RZ74lW9X-ltuMYbbVXczm_MZdqHaai2MhDWtY,8969
38
- apache_airflow_providers_edge3-1.1.3.dist-info/entry_points.txt,sha256=7WUIGfd3o9NvvbK5trbZxNXTgYGc6pqg74wZPigbx5o,206
39
- apache_airflow_providers_edge3-1.1.3.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
40
- apache_airflow_providers_edge3-1.1.3.dist-info/METADATA,sha256=Q_0GBApe8amF0E0-_69-wVMrDOc9QBYaKTNkTgsY8yA,4779
41
- apache_airflow_providers_edge3-1.1.3.dist-info/RECORD,,