Skip to content

Commit 7c20477

Browse files
docs(platform): Generate version 1.8 platform documentation (#64948)
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: ian.alton@airbyte.io <ian.alton@airbyte.io>
1 parent f55dcfe commit 7c20477

459 files changed

Lines changed: 30633 additions & 6 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/release_notes/v-1.8.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,17 @@ You might notice slight visual and content differences on some pages as a result
2424

2525
### File streams indicated in the UI
2626

27-
If a connection contains a stream that moves files, Airbyte's UI now indicates this on the connection's schema tab. [**Learn more&nbsp;>**](/platform/next/using-airbyte/sync-files-and-records)
27+
If a connection contains a stream that moves files, Airbyte's UI now indicates this on the connection's schema tab. [**Learn more&nbsp;>**](/platform/using-airbyte/sync-files-and-records)
2828

2929
![Files and records moving](../platform/using-airbyte/assets/file-based-stream.png)
3030

3131
### Helm chart V2 is available
3232

3333
A new Helm chart is available for you to use in your deployments. Migrating to this new chart is currently optional. In a future version of Airbyte, Helm chart V2 will be mandatory.
3434

35-
- New deployments should use Helm chart V2 from the start to avoid a future upgrade. The [Deployment documentation](/platform/next/deploying-airbyte/) includes examples for this Helm chart.
35+
- New deployments should use Helm chart V2 from the start to avoid a future upgrade. The [Deployment documentation](/platform/deploying-airbyte/) includes examples for this Helm chart.
3636

37-
- Existing deployments can migrate at the time of your choosing. Schedule a convenient time to migrate so you aren't blocked from upgrading to a future version. For help and to learn more, see the migration guides for [Self-Managed Community](/platform/next/deploying-airbyte/chart-v2-community) or [Self-Managed Enterprise](/platform/next/enterprise-setup/chart-v2-enterprise).
37+
- Existing deployments can migrate at the time of your choosing. Schedule a convenient time to migrate so you aren't blocked from upgrading to a future version. For help and to learn more, see the migration guides for [Self-Managed Community](/platform/deploying-airbyte/chart-v2-community) or [Self-Managed Enterprise](/platform/enterprise-setup/chart-v2-enterprise).
3838

3939
- Version 0.30 of abctl uses Helm chart V2 by default when installing new versions of Airbyte.
4040

@@ -44,7 +44,7 @@ Airbyte's working toward some big product milestones. Some of these improvements
4444

4545
### Data activation and reverse ETL
4646

47-
Airbyte now supports data activation and reverse ETL use cases. Data activation enables you to move data out of your data warehouse and into the operational tools where work happens, like CRMs, marketing platforms, and support systems. With this capability, you can deliver modeled data directly to points of action and systems people already use, helping your organization respond faster and more effectively. Customer IO and HubSpot destinations are already available. [**Learn more&nbsp;>**](/platform/next/move-data/elt-data-activation)
47+
Airbyte now supports data activation and reverse ETL use cases. Data activation enables you to move data out of your data warehouse and into the operational tools where work happens, like CRMs, marketing platforms, and support systems. With this capability, you can deliver modeled data directly to points of action and systems people already use, helping your organization respond faster and more effectively. Customer IO and HubSpot destinations are already available. [**Learn more&nbsp;>**](/platform/move-data/elt-data-activation)
4848

4949
![Conceptual diagram showing data moving from a source, fields being mapped, and then moving to a destination](../platform/move-data/assets/data-activation-concept.png)
5050

@@ -89,4 +89,4 @@ Airbyte has removed `airbyte-webapp` and merged its functions into `airbyte-serv
8989
- If you deploy Airbyte with abctl, ensure your version of abctl is compatible with this version of Airbyte.
9090
- If you deploy Airbyte with Helm, update any rules in your ingress controller that direct to `airbyte-webapp`.
9191

92-
If you used version 1.7, you probably already completed these tasks. If not, make these necessary changes before upgrading to version 1.8. [**Learn more&nbsp;>**](/platform/next/deploying-airbyte/integrations/ingress-1-7)
92+
If you used version 1.7, you probably already completed these tasks. If not, make these necessary changes before upgrading to version 1.8. [**Learn more&nbsp;>**](/platform/deploying-airbyte/integrations/ingress-1-7)
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
products: oss-enterprise, cloud-teams
3+
---
4+
5+
# Role Based Access Control (RBAC)
6+
7+
Role Based Access Control allows a user with Administrative access to apply roles to users, granting different levels of permission within an Organization or Workspace.
8+
9+
:::info
10+
**Self-Managed Enterprise** instances have an `Instance Admin` role in addition to the other roles outlined in this document. The first user who logs on to Airbyte in a Self-Managed Enterprise instance will be assigned this role. This user will have all permissions listed below for all workspaces and all organizations associated with their Enterprise account. To update this assignment, enterprise customers should contact [Airbyte support](https://support.airbyte.com/hc/en-us).
11+
:::
12+
13+
## Organization Resource Roles
14+
15+
Permissions are scoped to the given Organization for which the user has this role, and any Workspaces within.
16+
17+
| Permissions | Member | Reader | Runner | Editor | Admin |
18+
| :---------------------- | :--------: | :--------: | :--------: | :--------: |:--------: |
19+
| **Read Organization**<br /><ul><li> Read individual organizations</li></ul> | X | X | X | X | X |
20+
| **Create Workspace**<br /><ul><li>Create new workspace within a specified organization</li><li>Delete a workspace</li></ul> | | | | X | X |
21+
| **Update Organization**<br /><ul><li>Modify organization settings, including billing, PbA, SSO</li><li>Modify user roles within the organization</li></ul> | | | | | X |
22+
23+
## Workspace Resource Roles
24+
Permissions are scoped to the specific Workspace in which the user has this role.
25+
26+
| Permissions | Reader | Runner | Editor | Admin |
27+
| ---------------------- | :--------: | :--------:| :--------:| :--------: |
28+
| **Read Workspace**<br /><ul><li>List the connections in a workspace</li><li>Read individual connections</li><li>Read workspace settings (data residency, users, connector versions, notification settings) </li></ul> | X | X | X | X |
29+
| **Sync Connection**<br /><ul><li>Start/cancel syncs and refreshes</li></ul> | | X | X | X |
30+
| **Modify Connector Settings**<br /><ul><li>Create, modify, delete sources and destinations in a workspace</li></ul> | | | X | X |
31+
| **Update Connection**<br /><ul><li>Modify a connection, including name, replication settings, normalization, DBT</li><li>Clear connection data</li><li>Create/Delete a connection</li><li> Create/Update/Delete connector builder connectors</li></ul> | | | X | X |
32+
| **Update Workspace**<br /><ul><li> Update workspace settings (data residency, users, connector versions, notification settings)</li><li> Modify workspace connector versions</li></ul> | | | | X |
33+
34+
## Setting Roles
35+
36+
<Arcade id="pYZ3aHWlV4kJatJG2dJN" title="Organization Permissions" paddingBottom="calc(61.37931034482759% + 41px)" />
37+
38+
In the UI, navigate to `Settings` > `General` to see a list of your Organization or Workspace members. Here, by selecting the role listed under `Organization Role` or `Workspace Role`, you can change the assignment.
39+
40+
Note that it is not possible to assign a Workspace member to a role that is more restricted than the role they've been assigned at the Organizational level.
41+
42+
For example, a person who is assigned to be an Organization `Admin` would automatically have Admin-level permissions in all Workspaces within the Organization and can not be demoted within a Workspace. On the other hand, a person assigned to the `Reader` role in an Organization could be assigned the `Reader`, `Editor`, or `Admin` role in an individual Workspace.
43+
44+
Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
---
2+
products: oss-enterprise, cloud-teams
3+
---
4+
5+
# RBAC Role Mapping
6+
7+
Role-Based Access Control (RBAC) role mapping allows automatic assignment of specific permissions to Airbyte users based on existing roles in your organization. It ensures users have appropriate Airbyte access without manual oversight. RBAC functionality is only available in Airbyte Teams and Self-Managed Enterprise.
8+
9+
Enabling role mapping in Airbyte requires use of the Airbyte API. The Airbyte API exposes endpoints that allow you to retrieve and update user permissions. These endpoints can be used to build automation that manages user access to different workspaces. This functionality is currently limited to the Airbyte API, and is not available in the Terraform Provider.
10+
11+
To enable the Airbyte API in Airbyte Teams or Self-Managed Enterprise, follow these [prerequisites](../enterprise-setup/api-access-config.md).
12+
13+
## Relevant API Endpoints
14+
15+
Organization-wide permissions and each set of workspace permissions each count as their own permission object. For example, if an Airbyte user is an 'Organization Member' and has 'Workspace Editor' access in 3 distinct workspaces, this user has 4 permissions in total.
16+
17+
1. [Get a list of current Airbyte users in your organization](https://reference.airbyte.com/reference/listuserswithinanorganization).
18+
2. [Get a list of current Airbyte workspaces](https://reference.airbyte.com/reference/listworkspaces).
19+
2. [Create a permission for an Airbyte user to access to a new workspace](https://reference.airbyte.com/reference/createpermission).
20+
3. [Get a list of a user's current permissions](https://reference.airbyte.com/reference/listpermissions).
21+
3. [Modify permission scope or level of access](https://reference.airbyte.com/reference/updatepermission).
22+
4. [Delete a permission](https://reference.airbyte.com/reference/deletepermission).
23+
24+
## Script Example
25+
26+
### Prerequisites
27+
28+
1. A mapping of user emails to your company-specific roles (e.g. `finance-team`, `security-team`, `us-employee`, etc.):
29+
30+
```yaml
31+
{
32+
"user1@company.com": ["companyGroup1", "companyGroup2"],
33+
"user1@company.com": ["companyGroup2", "companyGroup3"]
34+
}
35+
```
36+
37+
2. A mapping of your company-specific roles to desired Airbyte permissions:
38+
39+
```yaml
40+
{
41+
"companyGroup1": [
42+
{
43+
"scope": "workspace",
44+
"scopeId": "11111111-11111111-11111111-11111111",
45+
"permissionType": "workspace_admin"
46+
},
47+
{
48+
"scope": "workspace",
49+
"scopeId": "22222222-22222222-22222222-22222222",
50+
"permissionType": "workspace_reader"
51+
}
52+
],
53+
"companyGroup2": [
54+
{
55+
"scope": "workspace",
56+
"scopeId": "33333333-33333333-33333333-33333333",
57+
"permissionType": "workspace_reader"
58+
}
59+
]
60+
}
61+
```
62+
Notes:
63+
- `scope` must be set to either 'workspace' or 'organization'.
64+
- `scopeId` must the identifier of scope access is granted for. It is a GUID and for organization scope is always '00000000-00000000-00000000-00000000'. For workspace, refer to the UI and the output of a list workspace to identify your workspaceId.
65+
- `permissionType` must be set to a valid value, e.g. 'workspace_admin', 'workspace_reader', 'organization_admin', etc. All valid values are listed [here](https://github.com/airbytehq/airbyte-api-python-sdk/blob/main/src/airbyte_api/models/publicpermissiontype.py).
66+
67+
### Complete Python Script
68+
69+
Below is an example Python script using the above prerequisite files and the `airbyte-api` Python package to set user roles programmatically:
70+
71+
<details>
72+
<summary>RBAC Role Mapping Python Example</summary>
73+
74+
```python
75+
import json
76+
import airbyte_api
77+
from airbyte_api import api, models
78+
79+
usersGroupsFile = open('usersGroups.json')
80+
usersGroups = json.load(usersGroupsFile)
81+
groupPermissionsFile = open('groupPermissions.json')
82+
groupPermissions = json.load(groupPermissionsFile)
83+
84+
# 0. - Enter your own credentials to use Airbyte API.
85+
s = airbyte_api.AirbyteAPI(
86+
security=models.Security(
87+
bearer_auth='...'
88+
),
89+
)
90+
91+
# 1. - List all users in your organization. Find your organization ID in the Airbyte settings page.
92+
res = s.users.list_users(request=api.ListUsersRequest(
93+
api.ListUsersRequest(organization_id='00000000-00000000-00000000-00000000')
94+
))
95+
96+
allAirbyteUsers = res.users_response.data
97+
print("all users: ", allAirbyteUsers)
98+
99+
# 2. grant permissions
100+
# for each user
101+
for airbyteUserResponse in allAirbyteUsers:
102+
if airbyteUserResponse.email in usersGroups:
103+
userGroups = usersGroups[airbyteUserResponse.email]
104+
# for each group where user belongs to
105+
for group in userGroups:
106+
if group in groupPermissions:
107+
permissionsToGrant = groupPermissions[group]
108+
# for each permission to create
109+
for permission in permissionsToGrant:
110+
print("permission to grant: ", permission)
111+
if permission["scope"] == "workspace":
112+
# create workspace level permission
113+
permissionCreated = s.permissions.create_permission(
114+
request=models.PermissionCreateRequest(
115+
permission_type=permission["permissionType"],
116+
user_id=airbyteUserResponse.user_id,
117+
workspace_id=permission["scopeId"]
118+
))
119+
elif permission["scope"] == "organization":
120+
# create organization permission
121+
permissionCreated = s.permissions.create_permission(
122+
request=models.PermissionCreateRequest(
123+
permission_type=permission["permissionType"],
124+
user_id=airbyteUserResponse.user_id,
125+
organization_id=permission["scopeId"]
126+
))
127+
else:
128+
print("permission scope not supported!")
129+
```
130+
131+
</details>
132+
133+
Please feel free to add your own logging and error-handling workflow in the example script, and you are free to configure it on a CRON job to run at the frequency of your choice.
151 KB
Loading

0 commit comments

Comments
 (0)