openmetadata-managed-apis 1.6.9.0__tar.gz → 1.10.4.2.dev0__tar.gz

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

Potentially problematic release.


This version of openmetadata-managed-apis might be problematic. Click here for more details.

Files changed (68) hide show
  1. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/PKG-INFO +10 -6
  2. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/README.md +8 -4
  3. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/__init__.py +3 -3
  4. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/api/apis_metadata.py +3 -3
  5. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/api/app.py +3 -3
  6. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/api/config.py +3 -3
  7. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/api/error_handlers.py +3 -3
  8. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/api/response.py +3 -3
  9. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/api/routes/delete.py +3 -3
  10. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/api/routes/deploy.py +3 -3
  11. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/api/routes/disable.py +3 -3
  12. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/api/routes/enable.py +3 -3
  13. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/api/routes/health.py +3 -3
  14. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/api/routes/health_auth.py +3 -3
  15. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/api/routes/ip.py +3 -3
  16. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/api/routes/kill.py +3 -3
  17. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/api/routes/last_dag_logs.py +17 -5
  18. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/api/routes/run_automation.py +4 -4
  19. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/api/routes/status.py +3 -3
  20. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/api/routes/trigger.py +11 -6
  21. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/api/utils.py +23 -3
  22. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/operations/delete.py +3 -3
  23. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/operations/deploy.py +5 -3
  24. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/operations/health.py +3 -3
  25. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/operations/kill_all.py +3 -3
  26. openmetadata_managed_apis-1.10.4.2.dev0/openmetadata_managed_apis/operations/last_dag_logs.py +229 -0
  27. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/operations/state.py +3 -3
  28. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/operations/status.py +3 -3
  29. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/operations/trigger.py +8 -5
  30. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/plugin.py +3 -3
  31. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/utils/parser.py +3 -3
  32. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/views/rest_api.py +3 -3
  33. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/workflows/config.py +3 -3
  34. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/workflows/ingestion/application.py +19 -10
  35. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/workflows/ingestion/auto_classification.py +16 -11
  36. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/workflows/ingestion/common.py +46 -15
  37. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/workflows/ingestion/dbt.py +4 -3
  38. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/workflows/ingestion/elasticsearch_sink.py +3 -3
  39. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/workflows/ingestion/es_reindex.py +4 -3
  40. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/workflows/ingestion/lineage.py +4 -3
  41. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/workflows/ingestion/metadata.py +4 -3
  42. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/workflows/ingestion/profiler.py +16 -11
  43. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/workflows/ingestion/registry.py +3 -3
  44. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/workflows/ingestion/test_suite.py +16 -11
  45. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/workflows/ingestion/usage.py +12 -10
  46. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/workflows/workflow_builder.py +3 -3
  47. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/workflows/workflow_factory.py +3 -3
  48. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis.egg-info/PKG-INFO +10 -6
  49. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/pyproject.toml +2 -2
  50. openmetadata_managed_apis-1.6.9.0/openmetadata_managed_apis/operations/last_dag_logs.py +0 -114
  51. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/LICENSE +0 -0
  52. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/api/__init__.py +0 -0
  53. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/api/routes/__init__.py +0 -0
  54. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/operations/__init__.py +0 -0
  55. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/resources/__init__.py +0 -0
  56. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/resources/dag_runner.j2 +0 -0
  57. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/utils/__init__.py +0 -0
  58. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/utils/logger.py +0 -0
  59. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/views/__init__.py +0 -0
  60. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/views/templates/rest_api/index.html +0 -0
  61. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/workflows/__init__.py +0 -0
  62. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis/workflows/ingestion/__init__.py +0 -0
  63. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis.egg-info/SOURCES.txt +0 -0
  64. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis.egg-info/dependency_links.txt +0 -0
  65. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis.egg-info/entry_points.txt +0 -0
  66. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis.egg-info/requires.txt +0 -0
  67. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/openmetadata_managed_apis.egg-info/top_level.txt +0 -0
  68. {openmetadata_managed_apis-1.6.9.0 → openmetadata_managed_apis-1.10.4.2.dev0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openmetadata_managed_apis
3
- Version: 1.6.9.0
3
+ Version: 1.10.4.2.dev0
4
4
  Summary: Airflow REST APIs to create and manage DAGS
5
5
  Author: OpenMetadata Committers
6
6
  License: Apache License
@@ -207,7 +207,7 @@ License: Apache License
207
207
  Project-URL: Homepage, https://open-metadata.org/
208
208
  Project-URL: Documentation, https://docs.open-metadata.org/
209
209
  Project-URL: Source, https://github.com/open-metadata/OpenMetadata
210
- Requires-Python: >=3.8
210
+ Requires-Python: >=3.9
211
211
  Description-Content-Type: text/markdown
212
212
  License-File: LICENSE
213
213
  Requires-Dist: pendulum~=3.0
@@ -229,11 +229,15 @@ OpenMetadata workflow definition and manage DAGS and tasks.
229
229
 
230
230
  ## Development
231
231
 
232
- You can run `make branch=issue-3659-v2 test_up` and specify any branch from OpenMetadata that you'd
233
- need to test the changes in the APIs. This will prepare a separated airflow container.
232
+ The file [`development/airflow/airflow.cfg`](./development/airflow/airflow.cfg) contains configuration which runs based on
233
+ the airflow server deployed by the quick-start and development compose files.
234
234
 
235
- The command will build the image by downloading the branch changes inside the container. This helps us
236
- test the REST APIs using some ongoing changes on OpenMetadata as well.
235
+ You ca run the following command to start the development environment:
236
+
237
+ ```bash
238
+ export AIRFLOW_HOME=$(pwd)/openmetadata-airflow-managed-api/development/airflow
239
+ airflow webserver
240
+ ```
237
241
 
238
242
  ## Requirements
239
243
 
@@ -5,11 +5,15 @@ OpenMetadata workflow definition and manage DAGS and tasks.
5
5
 
6
6
  ## Development
7
7
 
8
- You can run `make branch=issue-3659-v2 test_up` and specify any branch from OpenMetadata that you'd
9
- need to test the changes in the APIs. This will prepare a separated airflow container.
8
+ The file [`development/airflow/airflow.cfg`](./development/airflow/airflow.cfg) contains configuration which runs based on
9
+ the airflow server deployed by the quick-start and development compose files.
10
10
 
11
- The command will build the image by downloading the branch changes inside the container. This helps us
12
- test the REST APIs using some ongoing changes on OpenMetadata as well.
11
+ You ca run the following command to start the development environment:
12
+
13
+ ```bash
14
+ export AIRFLOW_HOME=$(pwd)/openmetadata-airflow-managed-api/development/airflow
15
+ airflow webserver
16
+ ```
13
17
 
14
18
  ## Requirements
15
19
 
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -16,7 +16,11 @@ from typing import Callable
16
16
 
17
17
  from flask import Blueprint, Response, request
18
18
  from openmetadata_managed_apis.api.response import ApiResponse
19
- from openmetadata_managed_apis.api.utils import get_arg_dag_id, get_request_arg
19
+ from openmetadata_managed_apis.api.utils import (
20
+ get_arg_dag_id,
21
+ get_request_arg,
22
+ sanitize_task_id,
23
+ )
20
24
  from openmetadata_managed_apis.operations.last_dag_logs import last_dag_logs
21
25
  from openmetadata_managed_apis.utils.logger import routes_logger
22
26
 
@@ -45,7 +49,15 @@ def get_fn(blueprint: Blueprint) -> Callable:
45
49
  """
46
50
 
47
51
  dag_id = get_arg_dag_id()
48
- task_id = get_request_arg(request, "task_id")
52
+ raw_task_id = get_request_arg(request, "task_id")
53
+ task_id = sanitize_task_id(raw_task_id)
54
+
55
+ if task_id is None:
56
+ return ApiResponse.error(
57
+ status=ApiResponse.STATUS_BAD_REQUEST,
58
+ error="Invalid or missing task_id parameter",
59
+ )
60
+
49
61
  after = get_request_arg(request, "after", raise_missing=False)
50
62
 
51
63
  try:
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -19,7 +19,7 @@ from openmetadata_managed_apis.api.response import ApiResponse
19
19
  from openmetadata_managed_apis.utils.logger import routes_logger
20
20
  from pydantic import ValidationError
21
21
 
22
- from metadata.automations.runner import execute
22
+ from metadata.automations.execute_runner import execute
23
23
  from metadata.ingestion.api.parser import parse_automation_workflow_gracefully
24
24
  from metadata.utils.secrets.secrets_manager_factory import SecretsManagerFactory
25
25
 
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -16,7 +16,11 @@ from typing import Callable
16
16
 
17
17
  from flask import Blueprint, Response, request
18
18
  from openmetadata_managed_apis.api.response import ApiResponse
19
- from openmetadata_managed_apis.api.utils import get_request_arg, get_request_dag_id
19
+ from openmetadata_managed_apis.api.utils import (
20
+ get_request_arg,
21
+ get_request_conf,
22
+ get_request_dag_id,
23
+ )
20
24
  from openmetadata_managed_apis.operations.trigger import trigger
21
25
  from openmetadata_managed_apis.utils.logger import routes_logger
22
26
 
@@ -41,13 +45,14 @@ def get_fn(blueprint: Blueprint) -> Callable:
41
45
  @security.requires_access([(permissions.ACTION_CAN_EDIT, permissions.RESOURCE_DAG)])
42
46
  def trigger_dag() -> Response:
43
47
  """
44
- Trigger a dag run
48
+ Trigger a dag run with optional configuration
45
49
  """
46
50
  dag_id = get_request_dag_id()
47
51
 
48
52
  try:
49
53
  run_id = get_request_arg(request, "run_id", raise_missing=False)
50
- response = trigger(dag_id, run_id)
54
+ conf = get_request_conf()
55
+ response = trigger(dag_id, run_id, conf=conf)
51
56
 
52
57
  return response
53
58
 
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -53,6 +53,16 @@ def clean_dag_id(raw_dag_id: Optional[str]) -> Optional[str]:
53
53
  return re.sub("[^0-9a-zA-Z-_]+", "_", raw_dag_id) if raw_dag_id else None
54
54
 
55
55
 
56
+ def sanitize_task_id(raw_task_id: Optional[str]) -> Optional[str]:
57
+ """
58
+ Sanitize task_id to prevent path traversal attacks.
59
+ Only allows alphanumeric characters, dashes, and underscores.
60
+ :param raw_task_id: Raw task ID from user input
61
+ :return: Sanitized task ID safe for file path construction
62
+ """
63
+ return re.sub("[^0-9a-zA-Z-_]+", "_", raw_task_id) if raw_task_id else None
64
+
65
+
56
66
  def get_request_arg(req, arg, raise_missing: bool = True) -> Optional[str]:
57
67
  """
58
68
  Pick up the `arg` from the flask `req`.
@@ -99,6 +109,16 @@ def get_request_dag_id() -> Optional[str]:
99
109
  return clean_dag_id(raw_dag_id)
100
110
 
101
111
 
112
+ def get_request_conf() -> Optional[dict]:
113
+ """
114
+ Try to fetch the conf from the JSON request. Return None if no conf is provided.
115
+ """
116
+ try:
117
+ return request.get_json().get("conf")
118
+ except Exception:
119
+ return None
120
+
121
+
102
122
  def get_dagbag():
103
123
  """
104
124
  Load the dagbag from Airflow settings
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -97,6 +97,8 @@ class DagDeployer:
97
97
  Store the airflow pipeline config in a JSON file and
98
98
  return the path for the Jinja rendering.
99
99
  """
100
+ # Create directory if it doesn't exist
101
+ dag_config_file_path.parent.mkdir(parents=True, exist_ok=True)
100
102
 
101
103
  logger.info(f"Saving file to {dag_config_file_path}")
102
104
  with open(dag_config_file_path, "w") as outfile:
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -1,8 +1,8 @@
1
- # Copyright 2021 Collate
2
- # Licensed under the Apache License, Version 2.0 (the "License");
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
- # http://www.apache.org/licenses/LICENSE-2.0
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
6
  # Unless required by applicable law or agreed to in writing, software
7
7
  # distributed under the License is distributed on an "AS IS" BASIS,
8
8
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.