You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/content/en/latest/pipelines/provisioning/_index.md
+100-8Lines changed: 100 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ Resources you can provision using GoodData Pipelines:
15
15
-[Users](users/)
16
16
-[User Groups](user_groups/)
17
17
-[Workspace Permissions](workspace-permissions/)
18
-
18
+
-[User Data Filters](user_data_filters/)
19
19
20
20
## Workflow Types
21
21
@@ -30,8 +30,8 @@ The provisioning types employ different algorithms and expect different structur
30
30
31
31
Full load provisioning aims to fully synchronize the state of your GoodData instance with the provided input. This workflow will create new resources and update existing ones based on the input. Any resources existing on GoodData Cloud not included in the input will be deleted.
32
32
33
-
{{% alert color="warning" title="Full loads are destrucitve"%}}
34
-
Full load provisioning will delete any existing resources not included in your input data. Test in non-production environment.
33
+
{{% alert color="warning" title="Full loads are destructive"%}}
34
+
Full load provisioning will delete any existing resources not included in your input data. Test in a non-production environment.
35
35
{{% /alert %}}
36
36
37
37
### Incremental Load
@@ -40,14 +40,20 @@ During incremental provisioning, the algorithm will only interact with resources
You can use either resource-specific Provisioner objects, or a generic function to handle the provisioning logic.
52
+
53
+
The generic function validates the data, creates a provisioner instance, and runs the provisioning under the hood, reducing the boilerplate code. On the other hand, the resource-specific approach is more transparent with expected data structures.
54
+
55
+
### Provisioner Objects
56
+
51
57
Regardless of workflow type or resource being provisioned, the typical usage follows these steps:
52
58
53
59
1. Initialize the provisioner
@@ -56,9 +62,38 @@ Regardless of workflow type or resource being provisioned, the typical usage fol
56
62
57
63
1. Run the selected provisioning method (`.full_load()` or `.incremental_load()`) with your validated data
58
64
59
-
60
65
Check the [resource pages](#supported-resources) for detailed instructions and examples of workflow implementations.
61
66
67
+
### Generic Function
68
+
69
+
You can also use a generic provisioning function:
70
+
71
+
```python
72
+
from gooddata_pipelines import WorkflowType, provision
| workflow_type | Enum indicating provisioned resource and workflow type |
82
+
| host | URL of your GoodData instance |
83
+
| token | GoodData Personal Access Token |
84
+
| logger | Logger object to subscribe to the logs _[optional]_|
85
+
86
+
The function will validate the raw data against the model corresponding to the selected `workflow_type` value. Note that the function only supports resources listed in the `WorkflowType` enum.
87
+
88
+
To see the expected data structure, check out the pages dedicated to individual resources. The raw dictionaries should have the same structure as the validation models outlined there.
89
+
90
+
To run the provisioning, simply call the function with its required arguments.
By default, the provisioners operate silently. To monitor progress and troubleshoot issues, you can subscribe to the emitted logs using the `.subscribe()` method on the `logger` property of the provisioner instance.
Copy file name to clipboardExpand all lines: docs/content/en/latest/pipelines/provisioning/user_groups.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,8 @@ User groups enable you to organize users and manage permissions at scale by assi
10
10
11
11
You can provision user groups using full or incremental load methods. Each of these methods requires a specific input type.
12
12
13
+
{{% alert color="info" %}} This section covers the usage with manual data validation. You can also take advantage of the generic provisioning function. You can read more about it on the [Provisioning](../#generic-function) page. {{% /alert %}}
14
+
13
15
## Usage
14
16
15
17
Start by importing and initializing the UserGroupProvisioner.
Then validate your data using an input model corresponding to the provisioned resource and selected workflow type, i.e., `UserGroupFullLoad` if you intend to run the provisioning in full load mode, or `UserGroupIncrementalLoad` if you want to provision incrementally.
31
32
32
33
The models expect the following fields:
34
+
33
35
-**user_group_id**: ID of the user group.
34
36
-**user_group_name**: Name of the user group.
35
37
-**parent_user_groups**: A list of parent user group IDs.
Copy file name to clipboardExpand all lines: docs/content/en/latest/pipelines/provisioning/users.md
+2-3Lines changed: 2 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,11 +4,12 @@ linkTitle: "Users"
4
4
weight: 2
5
5
---
6
6
7
-
8
7
User provisioning allows you to create, update, or delete user profiles in your GoodData environment.
9
8
10
9
You can provision users using full or incremental load methods. Each of these methods requires a specific input type.
11
10
11
+
{{% alert color="info" %}} This section covers the usage with manual data validation. You can also take advantage of the generic provisioning function. You can read more about it on the [Provisioning](../#generic-function) page. {{% /alert %}}
12
+
12
13
## Usage
13
14
14
15
Start by importing and initializing the UserProvisioner.
Then validate your data using an input model corresponding to the provisioned resource and selected workflow type, i.e., `UserFullLoad` if you intend to run the provisioning in full load mode, or `UserIncrementalLoad` if you want to provision incrementally.
Copy file name to clipboardExpand all lines: docs/content/en/latest/pipelines/provisioning/workspace-permissions.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,6 +8,8 @@ Workspace permission provisioning allows you to create, update, or delete user p
8
8
9
9
You can provision workspace permissions using full or incremental load methods. Each of these methods requires a specific input type.
10
10
11
+
{{% alert color="info" %}} This section covers the usage with manual data validation. You can also take advantage of the generic provisioning function. You can read more about it on the [Provisioning](../#generic-function) page. {{% /alert %}}
12
+
11
13
## Usage
12
14
13
15
Start by importing and initializing the PermissionProvisioner.
Then validate your data using an input model corresponding to the provisioned resource and selected workflow type, i.e., `PermissionFullLoad` if you intend to run the provisioning in full load mode, or `PermissionIncrementalLoad` if you want to provision incrementally.
29
30
30
31
The models expect the following fields:
32
+
31
33
-**permission**: Permission you want to grant, e.g., `VIEW`, `ANALYZE`, `MANAGE`.
32
34
-**workspace_id**: ID of the workspace the permission will be applied to.
33
35
-**entity_id**: ID of the entity (user or user group) which will receive the permission.
Copy file name to clipboardExpand all lines: docs/content/en/latest/pipelines/provisioning/workspaces.md
+1-2Lines changed: 1 addition & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,6 +12,7 @@ See [Multitenancy: One Platform, Many Customers](https://www.gooddata.com/resour
12
12
13
13
You can provision child workspaces using full or incremental load methods. Each of these methods requires a specific input type.
14
14
15
+
{{% alert color="info" %}} This section covers the usage with manual data validation. You can also take advantage of the generic provisioning function. You can read more about it on the [Provisioning](../#generic-function) page. {{% /alert %}}
Then validate your data using an input model corresponding to the provisioned resource and selected workflow type, i.e., `WorkspaceFullLoad` if you intend to run the provisioning in full load mode, or `WorkspaceIncrementalLoad` if you want to provision incrementally.
34
34
35
35
The models expect the following fields:
@@ -93,7 +93,6 @@ Now with the provisioner initialized and your data validated, you can run the pr
93
93
provisioner.full_load(validated_data)
94
94
```
95
95
96
-
97
96
## Workspace Data Filters
98
97
99
98
If you want to apply Workspace Data Filters to a child workspace, the filter must be set up on the parent workspace before you run the provisioning.
0 commit comments