gooddata-pipelines 1.48.0__tar.gz → 1.48.1.dev2__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 gooddata-pipelines might be problematic. Click here for more details.
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/PKG-INFO +11 -14
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/README.md +9 -12
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/backup_and_restore/models/storage.py +4 -1
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/backup_and_restore/storage/s3_storage.py +19 -4
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/poetry.lock +9 -51
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/pyproject.toml +2 -2
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/.gitignore +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/LICENSE.txt +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/Makefile +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/TODO.md +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/_version.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/api/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/api/exceptions.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/api/gooddata_api.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/api/gooddata_api_wrapper.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/api/gooddata_sdk.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/api/utils.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/backup_and_restore/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/backup_and_restore/backup_input_processor.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/backup_and_restore/backup_manager.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/backup_and_restore/constants.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/backup_and_restore/csv_reader.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/backup_and_restore/models/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/backup_and_restore/models/input_type.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/backup_and_restore/models/workspace_response.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/backup_and_restore/storage/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/backup_and_restore/storage/base_storage.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/backup_and_restore/storage/local_storage.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/logger/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/logger/logger.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/assets/wdf_setting.json +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/entities/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/entities/user_data_filters/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/entities/user_data_filters/models/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/entities/user_data_filters/models/udf_models.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/entities/user_data_filters/user_data_filters.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/entities/users/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/entities/users/models/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/entities/users/models/permissions.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/entities/users/models/user_groups.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/entities/users/models/users.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/entities/users/permissions.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/entities/users/user_groups.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/entities/users/users.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/entities/workspaces/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/entities/workspaces/models.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/entities/workspaces/workspace.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/entities/workspaces/workspace_data_filters.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/entities/workspaces/workspace_data_parser.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/entities/workspaces/workspace_data_validator.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/provisioning.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/utils/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/utils/context_objects.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/utils/exceptions.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/provisioning/utils/utils.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/py.typed +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/backup_and_restore/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/backup_and_restore/test_backup.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/backup_and_restore/test_backup_input_processor.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/conftest.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_conf.yaml +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid1/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid1/analytics_model/analytical_dashboard_extensions/.gitkeep +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid1/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid1/analytics_model/analytical_dashboards/.gitkeep +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid1/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid1/analytics_model/dashboard_plugins/.gitkeep +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid1/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid1/analytics_model/filter_contexts/.gitkeep +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid1/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid1/analytics_model/metrics/.gitkeep +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid1/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid1/analytics_model/visualization_objects/.gitkeep +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid1/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid1/ldm/datasets/test.yaml +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid1/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid1/ldm/date_instances/testinstance.yaml +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid2/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid2/analytics_model/analytical_dashboard_extensions/.gitkeep +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid2/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid2/analytics_model/analytical_dashboards/id.yaml +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid2/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid2/analytics_model/dashboard_plugins/.gitkeep +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid2/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid2/analytics_model/filter_contexts/id.yaml +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid2/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid2/analytics_model/metrics/.gitkeep +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid2/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid2/analytics_model/visualization_objects/test.yaml +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid2/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid2/ldm/datasets/.gitkeep +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid2/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid2/ldm/date_instances/.gitkeep +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid3/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid3/analytics_model/analytical_dashboard_extensions/.gitkeep +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid3/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid3/analytics_model/analytical_dashboards/.gitkeep +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid3/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid3/analytics_model/dashboard_plugins/.gitkeep +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid3/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid3/analytics_model/filter_contexts/.gitkeep +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid3/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid3/analytics_model/metrics/.gitkeep +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid3/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid3/analytics_model/visualization_objects/.gitkeep +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid3/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid3/ldm/datasets/.gitkeep +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid3/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid3/ldm/date_instances/.gitkeep +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_exports/services/wsid3/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid3/user_data_filters/.gitkeep +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_local_conf.yaml +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/mock_responses.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/panther/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/panther/test_api_wrapper.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/panther/test_sdk_wrapper.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/provisioning/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/provisioning/entities/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/provisioning/entities/users/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/provisioning/entities/users/test_permissions.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/provisioning/entities/users/test_user_groups.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/provisioning/entities/users/test_users.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/provisioning/entities/workspaces/__init__.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/provisioning/entities/workspaces/test_provisioning.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/provisioning/entities/workspaces/test_workspace.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/provisioning/entities/workspaces/test_workspace_data_filters.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/provisioning/entities/workspaces/test_workspace_data_parser.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/provisioning/entities/workspaces/test_workspace_data_validator.py +0 -0
- {gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tox.ini +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gooddata-pipelines
|
|
3
|
-
Version: 1.48.
|
|
3
|
+
Version: 1.48.1.dev2
|
|
4
4
|
Author-email: GoodData <support@gooddata.com>
|
|
5
5
|
License: MIT
|
|
6
6
|
License-File: LICENSE.txt
|
|
7
7
|
Requires-Python: >=3.10
|
|
8
8
|
Requires-Dist: boto3-stubs<2.0.0,>=1.39.3
|
|
9
9
|
Requires-Dist: boto3<2.0.0,>=1.39.3
|
|
10
|
-
Requires-Dist: gooddata-sdk~=1.48.
|
|
10
|
+
Requires-Dist: gooddata-sdk~=1.48.1.dev2
|
|
11
11
|
Requires-Dist: pydantic<3.0.0,>=2.11.3
|
|
12
12
|
Requires-Dist: requests<3.0.0,>=2.32.3
|
|
13
13
|
Requires-Dist: types-pyyaml<7.0.0,>=6.0.12.20250326
|
|
@@ -22,9 +22,9 @@ Description-Content-Type: text/markdown
|
|
|
22
22
|
|
|
23
23
|
# GoodData Pipelines
|
|
24
24
|
|
|
25
|
-
A high
|
|
25
|
+
A high-level library for automating the lifecycle of GoodData Cloud (GDC).
|
|
26
26
|
|
|
27
|
-
You can use the package to manage following
|
|
27
|
+
You can use the package to manage following resources in GDC:
|
|
28
28
|
|
|
29
29
|
1. Provisioning (create, update, delete)
|
|
30
30
|
- User profiles
|
|
@@ -36,7 +36,7 @@ You can use the package to manage following resoursec in GDC:
|
|
|
36
36
|
1. _[PLANNED]:_ Custom fields management
|
|
37
37
|
- extend the Logical Data Model of a child workspace
|
|
38
38
|
|
|
39
|
-
In case you are not interested in incorporating a library in your own program
|
|
39
|
+
In case you are not interested in incorporating a library in your own program but would like to use a ready-made script, consider having a look at [GoodData Productivity Tools](https://github.com/gooddata/gooddata-productivity-tools).
|
|
40
40
|
|
|
41
41
|
## Provisioning
|
|
42
42
|
|
|
@@ -53,23 +53,20 @@ import os
|
|
|
53
53
|
from csv import DictReader
|
|
54
54
|
from pathlib import Path
|
|
55
55
|
|
|
56
|
-
# Import the Entity Provisioner class and
|
|
56
|
+
# Import the Entity Provisioner class and corresponding model from gooddata_pipelines library
|
|
57
57
|
from gooddata_pipelines import UserFullLoad, UserProvisioner
|
|
58
|
+
from gooddata_pipelines.logger.logger import LogObserver
|
|
58
59
|
|
|
59
|
-
#
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
setup_logging()
|
|
60
|
+
# Optionally, subscribe a standard Python logger to the LogObserver
|
|
61
|
+
import logging
|
|
63
62
|
logger = logging.getLogger(__name__)
|
|
63
|
+
LogObserver().subscribe(logger)
|
|
64
64
|
|
|
65
65
|
# Create the Provisioner instance - you can also create the instance from a GDC yaml profile
|
|
66
66
|
provisioner = UserProvisioner(
|
|
67
67
|
host=os.environ["GDC_HOSTNAME"], token=os.environ["GDC_AUTH_TOKEN"]
|
|
68
68
|
)
|
|
69
69
|
|
|
70
|
-
# Optional: subscribe to logs
|
|
71
|
-
provisioner.logger.subscribe(logger)
|
|
72
|
-
|
|
73
70
|
# Load your data from your data source
|
|
74
71
|
source_data_path: Path = Path("path/to/some.csv")
|
|
75
72
|
source_data_reader = DictReader(source_data_path.read_text().splitlines())
|
|
@@ -82,4 +79,4 @@ full_load_data: list[UserFullLoad] = UserFullLoad.from_list_of_dicts(
|
|
|
82
79
|
provisioner.full_load(full_load_data)
|
|
83
80
|
```
|
|
84
81
|
|
|
85
|
-
Ready
|
|
82
|
+
Ready-made scripts covering the basic use cases can be found here in the [GoodData Productivity Tools](https://github.com/gooddata/gooddata-productivity-tools) repository
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# GoodData Pipelines
|
|
2
2
|
|
|
3
|
-
A high
|
|
3
|
+
A high-level library for automating the lifecycle of GoodData Cloud (GDC).
|
|
4
4
|
|
|
5
|
-
You can use the package to manage following
|
|
5
|
+
You can use the package to manage following resources in GDC:
|
|
6
6
|
|
|
7
7
|
1. Provisioning (create, update, delete)
|
|
8
8
|
- User profiles
|
|
@@ -14,7 +14,7 @@ You can use the package to manage following resoursec in GDC:
|
|
|
14
14
|
1. _[PLANNED]:_ Custom fields management
|
|
15
15
|
- extend the Logical Data Model of a child workspace
|
|
16
16
|
|
|
17
|
-
In case you are not interested in incorporating a library in your own program
|
|
17
|
+
In case you are not interested in incorporating a library in your own program but would like to use a ready-made script, consider having a look at [GoodData Productivity Tools](https://github.com/gooddata/gooddata-productivity-tools).
|
|
18
18
|
|
|
19
19
|
## Provisioning
|
|
20
20
|
|
|
@@ -31,23 +31,20 @@ import os
|
|
|
31
31
|
from csv import DictReader
|
|
32
32
|
from pathlib import Path
|
|
33
33
|
|
|
34
|
-
# Import the Entity Provisioner class and
|
|
34
|
+
# Import the Entity Provisioner class and corresponding model from gooddata_pipelines library
|
|
35
35
|
from gooddata_pipelines import UserFullLoad, UserProvisioner
|
|
36
|
+
from gooddata_pipelines.logger.logger import LogObserver
|
|
36
37
|
|
|
37
|
-
#
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
setup_logging()
|
|
38
|
+
# Optionally, subscribe a standard Python logger to the LogObserver
|
|
39
|
+
import logging
|
|
41
40
|
logger = logging.getLogger(__name__)
|
|
41
|
+
LogObserver().subscribe(logger)
|
|
42
42
|
|
|
43
43
|
# Create the Provisioner instance - you can also create the instance from a GDC yaml profile
|
|
44
44
|
provisioner = UserProvisioner(
|
|
45
45
|
host=os.environ["GDC_HOSTNAME"], token=os.environ["GDC_AUTH_TOKEN"]
|
|
46
46
|
)
|
|
47
47
|
|
|
48
|
-
# Optional: subscribe to logs
|
|
49
|
-
provisioner.logger.subscribe(logger)
|
|
50
|
-
|
|
51
48
|
# Load your data from your data source
|
|
52
49
|
source_data_path: Path = Path("path/to/some.csv")
|
|
53
50
|
source_data_reader = DictReader(source_data_path.read_text().splitlines())
|
|
@@ -60,4 +57,4 @@ full_load_data: list[UserFullLoad] = UserFullLoad.from_list_of_dicts(
|
|
|
60
57
|
provisioner.full_load(full_load_data)
|
|
61
58
|
```
|
|
62
59
|
|
|
63
|
-
Ready
|
|
60
|
+
Ready-made scripts covering the basic use cases can be found here in the [GoodData Productivity Tools](https://github.com/gooddata/gooddata-productivity-tools) repository
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# (C) 2025 GoodData Corporation
|
|
2
2
|
|
|
3
3
|
from enum import Enum
|
|
4
|
-
from typing import Annotated, TypeAlias
|
|
4
|
+
from typing import Annotated, TypeAlias, Optional
|
|
5
5
|
|
|
6
6
|
import yaml
|
|
7
7
|
from pydantic import BaseModel, Field
|
|
@@ -22,6 +22,9 @@ class S3StorageConfig(BaseModel):
|
|
|
22
22
|
backup_path: str
|
|
23
23
|
bucket: str
|
|
24
24
|
profile: str = "default"
|
|
25
|
+
aws_access_key_id: Optional[str] = None
|
|
26
|
+
aws_secret_access_key: Optional[str] = None
|
|
27
|
+
aws_default_region: Optional[str] = None
|
|
25
28
|
|
|
26
29
|
|
|
27
30
|
class LocalStorageConfig(BaseModel):
|
|
@@ -21,8 +21,7 @@ class S3Storage(BackupStorage):
|
|
|
21
21
|
raise ValueError("S3 storage config is required")
|
|
22
22
|
|
|
23
23
|
self._config = conf.storage
|
|
24
|
-
self.
|
|
25
|
-
self._session = self._create_boto_session(self._profile)
|
|
24
|
+
self._session = self._create_boto_session(self._config)
|
|
26
25
|
self._resource = self._session.resource("s3")
|
|
27
26
|
self._bucket = self._resource.Bucket(self._config.bucket) # type: ignore [missing library stubs]
|
|
28
27
|
suffix = "/" if not self._config.backup_path.endswith("/") else ""
|
|
@@ -30,9 +29,25 @@ class S3Storage(BackupStorage):
|
|
|
30
29
|
|
|
31
30
|
self._verify_connection()
|
|
32
31
|
|
|
33
|
-
def _create_boto_session(self,
|
|
32
|
+
def _create_boto_session(self, config: S3StorageConfig) -> boto3.Session:
|
|
33
|
+
if config.aws_access_key_id and config.aws_secret_access_key:
|
|
34
|
+
if not config.aws_default_region:
|
|
35
|
+
self.logger.warning(
|
|
36
|
+
"No AWS region specified. Defaulting to us-east-1."
|
|
37
|
+
)
|
|
38
|
+
try:
|
|
39
|
+
return boto3.Session(
|
|
40
|
+
aws_access_key_id=config.aws_access_key_id,
|
|
41
|
+
aws_secret_access_key=config.aws_secret_access_key,
|
|
42
|
+
region_name=config.aws_default_region,
|
|
43
|
+
)
|
|
44
|
+
except Exception:
|
|
45
|
+
self.logger.warning(
|
|
46
|
+
"Failed to create boto3 session with supplied credentials. Falling back to profile..."
|
|
47
|
+
)
|
|
48
|
+
|
|
34
49
|
try:
|
|
35
|
-
return boto3.Session(profile_name=profile)
|
|
50
|
+
return boto3.Session(profile_name=config.profile)
|
|
36
51
|
except Exception:
|
|
37
52
|
self.logger.warning(
|
|
38
53
|
'AWS profile "[default]" not found. Trying other fallback methods...'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# (C) 2025 GoodData Corporation
|
|
2
|
-
# This file is automatically @generated by Poetry 2.1.
|
|
2
|
+
# This file is automatically @generated by Poetry 2.1.4 and should not be changed by hand.
|
|
3
3
|
|
|
4
4
|
[[package]]
|
|
5
5
|
name = "annotated-types"
|
|
@@ -541,10 +541,6 @@ files = [
|
|
|
541
541
|
{file = "Brotli-1.1.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a37b8f0391212d29b3a91a799c8e4a2855e0576911cdfb2515487e30e322253d"},
|
|
542
542
|
{file = "Brotli-1.1.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e84799f09591700a4154154cab9787452925578841a94321d5ee8fb9a9a328f0"},
|
|
543
543
|
{file = "Brotli-1.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f66b5337fa213f1da0d9000bc8dc0cb5b896b726eefd9c6046f699b169c41b9e"},
|
|
544
|
-
{file = "Brotli-1.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5dab0844f2cf82be357a0eb11a9087f70c5430b2c241493fc122bb6f2bb0917c"},
|
|
545
|
-
{file = "Brotli-1.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e4fe605b917c70283db7dfe5ada75e04561479075761a0b3866c081d035b01c1"},
|
|
546
|
-
{file = "Brotli-1.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:1e9a65b5736232e7a7f91ff3d02277f11d339bf34099a56cdab6a8b3410a02b2"},
|
|
547
|
-
{file = "Brotli-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:58d4b711689366d4a03ac7957ab8c28890415e267f9b6589969e74b6e42225ec"},
|
|
548
544
|
{file = "Brotli-1.1.0-cp310-cp310-win32.whl", hash = "sha256:be36e3d172dc816333f33520154d708a2657ea63762ec16b62ece02ab5e4daf2"},
|
|
549
545
|
{file = "Brotli-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:0c6244521dda65ea562d5a69b9a26120769b7a9fb3db2fe9545935ed6735b128"},
|
|
550
546
|
{file = "Brotli-1.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a3daabb76a78f829cafc365531c972016e4aa8d5b4bf60660ad8ecee19df7ccc"},
|
|
@@ -557,14 +553,8 @@ files = [
|
|
|
557
553
|
{file = "Brotli-1.1.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:19c116e796420b0cee3da1ccec3b764ed2952ccfcc298b55a10e5610ad7885f9"},
|
|
558
554
|
{file = "Brotli-1.1.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:510b5b1bfbe20e1a7b3baf5fed9e9451873559a976c1a78eebaa3b86c57b4265"},
|
|
559
555
|
{file = "Brotli-1.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a1fd8a29719ccce974d523580987b7f8229aeace506952fa9ce1d53a033873c8"},
|
|
560
|
-
{file = "Brotli-1.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c247dd99d39e0338a604f8c2b3bc7061d5c2e9e2ac7ba9cc1be5a69cb6cd832f"},
|
|
561
|
-
{file = "Brotli-1.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1b2c248cd517c222d89e74669a4adfa5577e06ab68771a529060cf5a156e9757"},
|
|
562
|
-
{file = "Brotli-1.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:2a24c50840d89ded6c9a8fdc7b6ed3692ed4e86f1c4a4a938e1e92def92933e0"},
|
|
563
|
-
{file = "Brotli-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f31859074d57b4639318523d6ffdca586ace54271a73ad23ad021acd807eb14b"},
|
|
564
556
|
{file = "Brotli-1.1.0-cp311-cp311-win32.whl", hash = "sha256:39da8adedf6942d76dc3e46653e52df937a3c4d6d18fdc94a7c29d263b1f5b50"},
|
|
565
557
|
{file = "Brotli-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:aac0411d20e345dc0920bdec5548e438e999ff68d77564d5e9463a7ca9d3e7b1"},
|
|
566
|
-
{file = "Brotli-1.1.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:32d95b80260d79926f5fab3c41701dbb818fde1c9da590e77e571eefd14abe28"},
|
|
567
|
-
{file = "Brotli-1.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b760c65308ff1e462f65d69c12e4ae085cff3b332d894637f6273a12a482d09f"},
|
|
568
558
|
{file = "Brotli-1.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:316cc9b17edf613ac76b1f1f305d2a748f1b976b033b049a6ecdfd5612c70409"},
|
|
569
559
|
{file = "Brotli-1.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:caf9ee9a5775f3111642d33b86237b05808dafcd6268faa492250e9b78046eb2"},
|
|
570
560
|
{file = "Brotli-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70051525001750221daa10907c77830bc889cb6d865cc0b813d9db7fefc21451"},
|
|
@@ -575,24 +565,8 @@ files = [
|
|
|
575
565
|
{file = "Brotli-1.1.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:4093c631e96fdd49e0377a9c167bfd75b6d0bad2ace734c6eb20b348bc3ea180"},
|
|
576
566
|
{file = "Brotli-1.1.0-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e4c4629ddad63006efa0ef968c8e4751c5868ff0b1c5c40f76524e894c50248"},
|
|
577
567
|
{file = "Brotli-1.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:861bf317735688269936f755fa136a99d1ed526883859f86e41a5d43c61d8966"},
|
|
578
|
-
{file = "Brotli-1.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:87a3044c3a35055527ac75e419dfa9f4f3667a1e887ee80360589eb8c90aabb9"},
|
|
579
|
-
{file = "Brotli-1.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c5529b34c1c9d937168297f2c1fde7ebe9ebdd5e121297ff9c043bdb2ae3d6fb"},
|
|
580
|
-
{file = "Brotli-1.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ca63e1890ede90b2e4454f9a65135a4d387a4585ff8282bb72964fab893f2111"},
|
|
581
|
-
{file = "Brotli-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e79e6520141d792237c70bcd7a3b122d00f2613769ae0cb61c52e89fd3443839"},
|
|
582
568
|
{file = "Brotli-1.1.0-cp312-cp312-win32.whl", hash = "sha256:5f4d5ea15c9382135076d2fb28dde923352fe02951e66935a9efaac8f10e81b0"},
|
|
583
569
|
{file = "Brotli-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:906bc3a79de8c4ae5b86d3d75a8b77e44404b0f4261714306e3ad248d8ab0951"},
|
|
584
|
-
{file = "Brotli-1.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8bf32b98b75c13ec7cf774164172683d6e7891088f6316e54425fde1efc276d5"},
|
|
585
|
-
{file = "Brotli-1.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7bc37c4d6b87fb1017ea28c9508b36bbcb0c3d18b4260fcdf08b200c74a6aee8"},
|
|
586
|
-
{file = "Brotli-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c0ef38c7a7014ffac184db9e04debe495d317cc9c6fb10071f7fefd93100a4f"},
|
|
587
|
-
{file = "Brotli-1.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91d7cc2a76b5567591d12c01f019dd7afce6ba8cba6571187e21e2fc418ae648"},
|
|
588
|
-
{file = "Brotli-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a93dde851926f4f2678e704fadeb39e16c35d8baebd5252c9fd94ce8ce68c4a0"},
|
|
589
|
-
{file = "Brotli-1.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f0db75f47be8b8abc8d9e31bc7aad0547ca26f24a54e6fd10231d623f183d089"},
|
|
590
|
-
{file = "Brotli-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6967ced6730aed543b8673008b5a391c3b1076d834ca438bbd70635c73775368"},
|
|
591
|
-
{file = "Brotli-1.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7eedaa5d036d9336c95915035fb57422054014ebdeb6f3b42eac809928e40d0c"},
|
|
592
|
-
{file = "Brotli-1.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d487f5432bf35b60ed625d7e1b448e2dc855422e87469e3f450aa5552b0eb284"},
|
|
593
|
-
{file = "Brotli-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:832436e59afb93e1836081a20f324cb185836c617659b07b129141a8426973c7"},
|
|
594
|
-
{file = "Brotli-1.1.0-cp313-cp313-win32.whl", hash = "sha256:43395e90523f9c23a3d5bdf004733246fba087f2948f87ab28015f12359ca6a0"},
|
|
595
|
-
{file = "Brotli-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:9011560a466d2eb3f5a6e4929cf4a09be405c64154e12df0dd72713f6500e32b"},
|
|
596
570
|
{file = "Brotli-1.1.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a090ca607cbb6a34b0391776f0cb48062081f5f60ddcce5d11838e67a01928d1"},
|
|
597
571
|
{file = "Brotli-1.1.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2de9d02f5bda03d27ede52e8cfe7b865b066fa49258cbab568720aa5be80a47d"},
|
|
598
572
|
{file = "Brotli-1.1.0-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2333e30a5e00fe0fe55903c8832e08ee9c3b1382aacf4db26664a16528d51b4b"},
|
|
@@ -602,10 +576,6 @@ files = [
|
|
|
602
576
|
{file = "Brotli-1.1.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:fd5f17ff8f14003595ab414e45fce13d073e0762394f957182e69035c9f3d7c2"},
|
|
603
577
|
{file = "Brotli-1.1.0-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:069a121ac97412d1fe506da790b3e69f52254b9df4eb665cd42460c837193354"},
|
|
604
578
|
{file = "Brotli-1.1.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:e93dfc1a1165e385cc8239fab7c036fb2cd8093728cbd85097b284d7b99249a2"},
|
|
605
|
-
{file = "Brotli-1.1.0-cp36-cp36m-musllinux_1_2_aarch64.whl", hash = "sha256:aea440a510e14e818e67bfc4027880e2fb500c2ccb20ab21c7a7c8b5b4703d75"},
|
|
606
|
-
{file = "Brotli-1.1.0-cp36-cp36m-musllinux_1_2_i686.whl", hash = "sha256:6974f52a02321b36847cd19d1b8e381bf39939c21efd6ee2fc13a28b0d99348c"},
|
|
607
|
-
{file = "Brotli-1.1.0-cp36-cp36m-musllinux_1_2_ppc64le.whl", hash = "sha256:a7e53012d2853a07a4a79c00643832161a910674a893d296c9f1259859a289d2"},
|
|
608
|
-
{file = "Brotli-1.1.0-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:d7702622a8b40c49bffb46e1e3ba2e81268d5c04a34f460978c6b5517a34dd52"},
|
|
609
579
|
{file = "Brotli-1.1.0-cp36-cp36m-win32.whl", hash = "sha256:a599669fd7c47233438a56936988a2478685e74854088ef5293802123b5b2460"},
|
|
610
580
|
{file = "Brotli-1.1.0-cp36-cp36m-win_amd64.whl", hash = "sha256:d143fd47fad1db3d7c27a1b1d66162e855b5d50a89666af46e1679c496e8e579"},
|
|
611
581
|
{file = "Brotli-1.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:11d00ed0a83fa22d29bc6b64ef636c4552ebafcef57154b4ddd132f5638fbd1c"},
|
|
@@ -617,10 +587,6 @@ files = [
|
|
|
617
587
|
{file = "Brotli-1.1.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:919e32f147ae93a09fe064d77d5ebf4e35502a8df75c29fb05788528e330fe74"},
|
|
618
588
|
{file = "Brotli-1.1.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:23032ae55523cc7bccb4f6a0bf368cd25ad9bcdcc1990b64a647e7bbcce9cb5b"},
|
|
619
589
|
{file = "Brotli-1.1.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:224e57f6eac61cc449f498cc5f0e1725ba2071a3d4f48d5d9dffba42db196438"},
|
|
620
|
-
{file = "Brotli-1.1.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:cb1dac1770878ade83f2ccdf7d25e494f05c9165f5246b46a621cc849341dc01"},
|
|
621
|
-
{file = "Brotli-1.1.0-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:3ee8a80d67a4334482d9712b8e83ca6b1d9bc7e351931252ebef5d8f7335a547"},
|
|
622
|
-
{file = "Brotli-1.1.0-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:5e55da2c8724191e5b557f8e18943b1b4839b8efc3ef60d65985bcf6f587dd38"},
|
|
623
|
-
{file = "Brotli-1.1.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:d342778ef319e1026af243ed0a07c97acf3bad33b9f29e7ae6a1f68fd083e90c"},
|
|
624
590
|
{file = "Brotli-1.1.0-cp37-cp37m-win32.whl", hash = "sha256:587ca6d3cef6e4e868102672d3bd9dc9698c309ba56d41c2b9c85bbb903cdb95"},
|
|
625
591
|
{file = "Brotli-1.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:2954c1c23f81c2eaf0b0717d9380bd348578a94161a65b3a2afc62c86467dd68"},
|
|
626
592
|
{file = "Brotli-1.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:efa8b278894b14d6da122a72fefcebc28445f2d3f880ac59d46c90f4c13be9a3"},
|
|
@@ -633,10 +599,6 @@ files = [
|
|
|
633
599
|
{file = "Brotli-1.1.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ab4fbee0b2d9098c74f3057b2bc055a8bd92ccf02f65944a241b4349229185a"},
|
|
634
600
|
{file = "Brotli-1.1.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:141bd4d93984070e097521ed07e2575b46f817d08f9fa42b16b9b5f27b5ac088"},
|
|
635
601
|
{file = "Brotli-1.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fce1473f3ccc4187f75b4690cfc922628aed4d3dd013d047f95a9b3919a86596"},
|
|
636
|
-
{file = "Brotli-1.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d2b35ca2c7f81d173d2fadc2f4f31e88cc5f7a39ae5b6db5513cf3383b0e0ec7"},
|
|
637
|
-
{file = "Brotli-1.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:af6fa6817889314555aede9a919612b23739395ce767fe7fcbea9a80bf140fe5"},
|
|
638
|
-
{file = "Brotli-1.1.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:2feb1d960f760a575dbc5ab3b1c00504b24caaf6986e2dc2b01c09c87866a943"},
|
|
639
|
-
{file = "Brotli-1.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:4410f84b33374409552ac9b6903507cdb31cd30d2501fc5ca13d18f73548444a"},
|
|
640
602
|
{file = "Brotli-1.1.0-cp38-cp38-win32.whl", hash = "sha256:db85ecf4e609a48f4b29055f1e144231b90edc90af7481aa731ba2d059226b1b"},
|
|
641
603
|
{file = "Brotli-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:3d7954194c36e304e1523f55d7042c59dc53ec20dd4e9ea9d151f1b62b4415c0"},
|
|
642
604
|
{file = "Brotli-1.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5fb2ce4b8045c78ebbc7b8f3c15062e435d47e7393cc57c25115cfd49883747a"},
|
|
@@ -649,10 +611,6 @@ files = [
|
|
|
649
611
|
{file = "Brotli-1.1.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:949f3b7c29912693cee0afcf09acd6ebc04c57af949d9bf77d6101ebb61e388c"},
|
|
650
612
|
{file = "Brotli-1.1.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:89f4988c7203739d48c6f806f1e87a1d96e0806d44f0fba61dba81392c9e474d"},
|
|
651
613
|
{file = "Brotli-1.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:de6551e370ef19f8de1807d0a9aa2cdfdce2e85ce88b122fe9f6b2b076837e59"},
|
|
652
|
-
{file = "Brotli-1.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0737ddb3068957cf1b054899b0883830bb1fec522ec76b1098f9b6e0f02d9419"},
|
|
653
|
-
{file = "Brotli-1.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:4f3607b129417e111e30637af1b56f24f7a49e64763253bbc275c75fa887d4b2"},
|
|
654
|
-
{file = "Brotli-1.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:6c6e0c425f22c1c719c42670d561ad682f7bfeeef918edea971a79ac5252437f"},
|
|
655
|
-
{file = "Brotli-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:494994f807ba0b92092a163a0a283961369a65f6cbe01e8891132b7a320e61eb"},
|
|
656
614
|
{file = "Brotli-1.1.0-cp39-cp39-win32.whl", hash = "sha256:f0d8a7a6b5983c2496e364b969f0e526647a06b075d034f3297dc66f3b360c64"},
|
|
657
615
|
{file = "Brotli-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:cdad5b9014d83ca68c25d2e9444e28e967ef16e80f6b436918c700c117a85467"},
|
|
658
616
|
{file = "Brotli-1.1.0.tar.gz", hash = "sha256:81de08ac11bcb85841e440c13611c00b67d3bf82698314928d0b676362546724"},
|
|
@@ -975,14 +933,14 @@ test = ["pytest (>=6)"]
|
|
|
975
933
|
|
|
976
934
|
[[package]]
|
|
977
935
|
name = "gooddata-api-client"
|
|
978
|
-
version = "1.
|
|
936
|
+
version = "1.48.0"
|
|
979
937
|
description = "OpenAPI definition"
|
|
980
938
|
optional = false
|
|
981
939
|
python-versions = ">=3.6"
|
|
982
940
|
groups = ["main"]
|
|
983
941
|
files = [
|
|
984
|
-
{file = "gooddata_api_client-1.
|
|
985
|
-
{file = "gooddata_api_client-1.
|
|
942
|
+
{file = "gooddata_api_client-1.48.0-py3-none-any.whl", hash = "sha256:77400bd0574fcbc7a040dde019aa9d2b6006e5f788c87cf41f6cd6a6a1af8b8c"},
|
|
943
|
+
{file = "gooddata_api_client-1.48.0.tar.gz", hash = "sha256:fe36c67a2e0cb6df1ded19e041a1ffc281d12a327934c25e963a8bcc1a2d9a4c"},
|
|
986
944
|
]
|
|
987
945
|
|
|
988
946
|
[package.dependencies]
|
|
@@ -991,21 +949,21 @@ urllib3 = ">=1.25.3"
|
|
|
991
949
|
|
|
992
950
|
[[package]]
|
|
993
951
|
name = "gooddata-sdk"
|
|
994
|
-
version = "1.
|
|
952
|
+
version = "1.48.0"
|
|
995
953
|
description = "GoodData Cloud Python SDK"
|
|
996
954
|
optional = false
|
|
997
955
|
python-versions = ">=3.9.0"
|
|
998
956
|
groups = ["main"]
|
|
999
957
|
files = [
|
|
1000
|
-
{file = "gooddata_sdk-1.
|
|
1001
|
-
{file = "gooddata_sdk-1.
|
|
958
|
+
{file = "gooddata_sdk-1.48.0-py3-none-any.whl", hash = "sha256:8038801302f706339ab8183f9a9a6ed9cfa8356f6d0327a33acc85865abd351b"},
|
|
959
|
+
{file = "gooddata_sdk-1.48.0.tar.gz", hash = "sha256:76bd46a1ddee57ae04cbf706bb0fe4a9f9e286979f4e80c4660b4d28d103492f"},
|
|
1002
960
|
]
|
|
1003
961
|
|
|
1004
962
|
[package.dependencies]
|
|
1005
963
|
attrs = ">=21.4.0,<=24.2.0"
|
|
1006
964
|
brotli = "1.1.0"
|
|
1007
965
|
cattrs = ">=22.1.0,<=24.1.1"
|
|
1008
|
-
gooddata-api-client = ">=1.
|
|
966
|
+
gooddata-api-client = ">=1.48.0,<1.49.0"
|
|
1009
967
|
python-dateutil = ">=2.5.3"
|
|
1010
968
|
python-dotenv = ">=1.0.0,<2.0.0"
|
|
1011
969
|
pyyaml = ">=6.0"
|
|
@@ -1863,4 +1821,4 @@ dev = ["moto", "mypy", "pytest", "pytest-mock", "ruff"]
|
|
|
1863
1821
|
[metadata]
|
|
1864
1822
|
lock-version = "2.1"
|
|
1865
1823
|
python-versions = ">=3.10"
|
|
1866
|
-
content-hash = "
|
|
1824
|
+
content-hash = "b418fc72920cce21dff3e6db6bf9400ac3b867158d9e640d57012f800c2e5004"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# (C) 2025 GoodData Corporation
|
|
2
2
|
[project]
|
|
3
3
|
name = "gooddata-pipelines"
|
|
4
|
-
version = "1.48.
|
|
4
|
+
version = "1.48.1.dev2"
|
|
5
5
|
description = ""
|
|
6
6
|
authors = [{ name = "GoodData", email = "support@gooddata.com" }]
|
|
7
7
|
license = { text = "MIT" }
|
|
@@ -11,7 +11,7 @@ dependencies = [
|
|
|
11
11
|
"pydantic (>=2.11.3,<3.0.0)",
|
|
12
12
|
"requests (>=2.32.3,<3.0.0)",
|
|
13
13
|
"types-requests (>=2.32.0,<3.0.0)",
|
|
14
|
-
"gooddata-sdk~=1.48.
|
|
14
|
+
"gooddata-sdk~=1.48.1.dev2",
|
|
15
15
|
"boto3 (>=1.39.3,<2.0.0)",
|
|
16
16
|
"boto3-stubs (>=1.39.3,<2.0.0)",
|
|
17
17
|
"types-pyyaml (>=6.0.12.20250326,<7.0.0)",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/api/__init__.py
RENAMED
|
File without changes
|
{gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/api/exceptions.py
RENAMED
|
File without changes
|
{gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/api/gooddata_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/api/gooddata_sdk.py
RENAMED
|
File without changes
|
{gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/api/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/logger/__init__.py
RENAMED
|
File without changes
|
{gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/gooddata_pipelines/logger/logger.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/backup_and_restore/__init__.py
RENAMED
|
File without changes
|
{gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/backup_and_restore/test_backup.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_conf.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/data/backup/test_local_conf.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/panther/test_api_wrapper.py
RENAMED
|
File without changes
|
{gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/panther/test_sdk_wrapper.py
RENAMED
|
File without changes
|
|
File without changes
|
{gooddata_pipelines-1.48.0 → gooddata_pipelines-1.48.1.dev2}/tests/provisioning/entities/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|