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: content/docs/(authorization)/Overview/modelling-hierarchy-with-attribute-types.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ In this article, you will learn how to model relationships and arbitrarily deep
12
12
-**Organizational structures** where users can be members of different teams
13
13
-**Social structures** like families and friends of friends
14
14
15
-
The article assumes you know what <Glossary>object</Glossary>, <Glossary>edge</Glossary>s, <Glossary>attribute</Glossary>s and <Glossary>permission</Glossary>s are. For more detail, see our [Key Concepts](https://docs.userclouds.com/docs/key-concepts-1) article.
15
+
The article assumes you know what <Glossary>object</Glossary>, <Glossary>edge</Glossary>s, <Glossary>attribute</Glossary>s and <Glossary>permission</Glossary>s are. For more detail, see our [Key Concepts](/docs/key-concepts-1) article.
Copy file name to clipboardExpand all lines: content/docs/(authorization)/how-to-guides/1-design-your-model.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -56,4 +56,4 @@ Attributes are defined at the edge type level, so all edges of a given type shar
56
56
- They pass a permission from one user or group to another (<Glossary>inherit</Glossary> attributes)
57
57
- They propagate a permission down a hierarchy of nested objects, like folders and files (<Glossary>propagate</Glossary> attributes)
58
58
59
-
For more intro on attributes, see [Modelling Hierarchy with Attribute Scopes](https://docs.userclouds.com/docs/modelling-hierarchy-with-attribute-types).
59
+
For more intro on attributes, see [Modelling Hierarchy with Attribute Scopes](/docs/modelling-hierarchy-with-attribute-types).
Once you have designed the structure of your model, it's time to build your database of <Glossary>object</Glossary>s and <Glossary>edge</Glossary>s in UserClouds. This can be done in two steps:
13
13
14
14
- (a) Migrate over from a pre-existing identity system
15
-
- (b) Implement UserClouds's APIs to [populate the graph with objects](https://docs.userclouds.com/reference/post_authz-objects) and [edges](https://docs.userclouds.com/reference/post_authz-edges) on an ongoing basis
15
+
- (b) Implement UserClouds's APIs to [populate the graph with objects](/reference/post_authz-objects) and [edges](/reference/post_authz-edges) on an ongoing basis
16
16
17
17
If you are building your product or user base from scratch, you will skip straight to part (b).
18
18
@@ -24,6 +24,6 @@ _Docs coming soon! For help migrating over from your existing AuthZ system, plea
24
24
25
25
## B. Implement Write APIs in your software
26
26
27
-
Maintaining your authorization graph is simple with UserClouds's CRUD APIs. These allow you to [create Objects](https://docs.userclouds.com/reference/post_authz-objects) and [Edges](https://docs.userclouds.com/reference/post_authz-edges) programmatically in your application.
27
+
Maintaining your authorization graph is simple with UserClouds's CRUD APIs. These allow you to [create Objects](/reference/post_authz-objects) and [Edges](/reference/post_authz-edges) programmatically in your application.
28
28
29
-
For more information on the APIs for Authorization, check out our [Authorization API Docs](https://docs.userclouds.com/reference/post_authz-objects).
29
+
For more information on the APIs for Authorization, check out our [Authorization API Docs](/reference/post_authz-objects).
Copy file name to clipboardExpand all lines: content/docs/(authorization)/how-to-guides/3-run-permissions-checks.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ hidden: false
6
6
createdAt: "Thu Aug 03 2023 23:22:50 GMT+0000 (Coordinated Universal Time)"
7
7
updatedAt: "Thu Jun 06 2024 17:25:04 GMT+0000 (Coordinated Universal Time)"
8
8
---
9
-
Once you have populated UserClouds with your types, objects and edges, UserClouds is ready to be the source-of-truth for permissions. To implement <Glossary>permission</Glossary>s in your system, all you need to do is add UserClouds's [Permission Check APIs](https://docs.userclouds.com/reference/get_authz-checkattribute) in the appropriate places in your software.
9
+
Once you have populated UserClouds with your types, objects and edges, UserClouds is ready to be the source-of-truth for permissions. To implement <Glossary>permission</Glossary>s in your system, all you need to do is add UserClouds's [Permission Check APIs](/reference/get_authz-checkattribute) in the appropriate places in your software.
10
10
11
11
-**CheckAttribute** answers the question: does user X have permission Y on object Z?
12
12
-**ListAttributes** receives a source object ID and target object ID. It returns a list of attributes that the source object has on the target object.
Copy file name to clipboardExpand all lines: content/docs/(authorization)/illustrative-examples/b2b2c-marketplace.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ hidden: false
6
6
createdAt: "Wed Nov 22 2023 20:16:42 GMT+0000 (Coordinated Universal Time)"
7
7
updatedAt: "Wed Jun 19 2024 16:57:24 GMT+0000 (Coordinated Universal Time)"
8
8
---
9
-
This article explains how to design a graph-based authorization model for a B2B2C marketplace. The article assumes you are familiar with our [Key Concepts](https://docs.userclouds.com/docs/key-concepts-1) and [Attribute Scopes](https://docs.userclouds.com/docs/modelling-hierarchy-with-attribute-types).
9
+
This article explains how to design a graph-based authorization model for a B2B2C marketplace. The article assumes you are familiar with our [Key Concepts](/docs/key-concepts-1) and [Attribute Scopes](/docs/modelling-hierarchy-with-attribute-types).
Copy file name to clipboardExpand all lines: content/docs/(authorization)/illustrative-examples/edtech-platform.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ hidden: false
6
6
createdAt: "Thu Aug 03 2023 23:30:24 GMT+0000 (Coordinated Universal Time)"
7
7
updatedAt: "Wed Jun 19 2024 16:57:02 GMT+0000 (Coordinated Universal Time)"
8
8
---
9
-
This article explains how to design a graph-based authorization model for Slack. The article assumes you are familiar with our [Key Concepts](https://docs.userclouds.com/docs/key-concepts-1) and [Attribute Scopes](https://docs.userclouds.com/docs/modelling-hierarchy-with-attribute-types).
9
+
This article explains how to design a graph-based authorization model for Slack. The article assumes you are familiar with our [Key Concepts](/docs/key-concepts-1) and [Attribute Scopes](/docs/modelling-hierarchy-with-attribute-types).
Copy file name to clipboardExpand all lines: content/docs/(authorization)/illustrative-examples/slack.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ hidden: false
6
6
createdAt: "Thu Aug 03 2023 23:29:52 GMT+0000 (Coordinated Universal Time)"
7
7
updatedAt: "Thu Feb 06 2025 05:14:29 GMT+0000 (Coordinated Universal Time)"
8
8
---
9
-
This article explains how to design a graph-based authorization model for Slack. The article assumes you are familiar with our [Key Concepts](https://docs.userclouds.com/docs/key-concepts-1) and [Attribute Scopes](https://docs.userclouds.com/docs/modelling-hierarchy-with-attribute-types#attribute-types).
9
+
This article explains how to design a graph-based authorization model for Slack. The article assumes you are familiar with our [Key Concepts](/docs/key-concepts-1) and [Attribute Scopes](/docs/modelling-hierarchy-with-attribute-types#attribute-types).
Copy file name to clipboardExpand all lines: content/docs/(data-access)/definitions/access-policies.mdx
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,8 +18,8 @@ Access Policies are executed in three places in UserClouds:
18
18
19
19
In addition, two special types of access policies are available:
20
20
21
-
-**Column Default Access Policies**: These policies are associated with specific columns and are applied by default to all reads that extract data from those columns. They ensure consistent application of access rules for sensitive data, such as automatically applying a role check to the SSN column. They can be overridden for individual accessors. Learn more [here](https://docs.userclouds.com/docs/protect-a-column-with-defaults).
22
-
-**Global Baseline Access Policies**: These policies are applied by default to all reads, providing a consistent security baseline. For example, a global policy might always require a valid token or restrict access to trusted IP addresses. They cannot be overridden. Learn more [here](https://docs.userclouds.com/docs/apply-global-protection-policies).
21
+
-**Column Default Access Policies**: These policies are associated with specific columns and are applied by default to all reads that extract data from those columns. They ensure consistent application of access rules for sensitive data, such as automatically applying a role check to the SSN column. They can be overridden for individual accessors. Learn more [here](/docs/protect-a-column-with-defaults).
22
+
-**Global Baseline Access Policies**: These policies are applied by default to all reads, providing a consistent security baseline. For example, a global policy might always require a valid token or restrict access to trusted IP addresses. They cannot be overridden. Learn more [here](/docs/apply-global-protection-policies).
23
23
24
24
Access policies provide central, fine-grained control over sensitive data access. They can evaluate purpose, identity, authorization, location, , and more. They can range from simple "always allow resolution" policies to complex evaluations.
25
25
@@ -190,7 +190,7 @@ const params = {}; // No specific parameters needed for this example
190
190
191
191
## checkAttribute
192
192
193
-
The `checkAttribute` function runs a permission check against the UserClouds authorization graph. If you are using UserClouds for authorization as a service, this can verify if a user has the necessary permissions. In short, it asks whether a given object (usually a user) has an attribute (e.g. "can-read" or "is-admin") on another object (which could be just about any entity in your system). You can read more about this in the [Authorization Documentation](https://docs.userclouds.com/reference/get_authz-checkattribute).
193
+
The `checkAttribute` function runs a permission check against the UserClouds authorization graph. If you are using UserClouds for authorization as a service, this can verify if a user has the necessary permissions. In short, it asks whether a given object (usually a user) has an attribute (e.g. "can-read" or "is-admin") on another object (which could be just about any entity in your system). You can read more about this in the [Authorization Documentation](/reference/get_authz-checkattribute).
194
194
195
195
### Example
196
196
@@ -232,7 +232,7 @@ function policy(context, params) {
232
232
233
233
UserClouds has several built-in access policies for common use cases, like role-based and time-based expiration of data. However you can also create custom policies, in two ways:
234
234
235
-
- Call the [CreateAccessPolicy API](https://docs.userclouds.com/reference/post_tokenizer-policies-access)
235
+
- Call the [CreateAccessPolicy API](/reference/post_tokenizer-policies-access)
236
236
- Compose a new policy from existing policies and parametrizable templates in the UserClouds Console
237
237
238
238
To learn more about creating access policies, see our How to Guide on Creating Access Policies.
Copy file name to clipboardExpand all lines: content/docs/(data-access)/definitions/accessors-read-apis.mdx
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ Accessors are configurable APIs that allow a client to retrieve data from the us
12
12
13
13
As an example of data minimization, you might configure an accessor called `GetPhoneCountryCodeForAnalytics` that returns the country code of a user's phone number when called, instead of the raw phone number. This reduces the sensitivity of the data outside your store, minimizing your surface area for an attack and simplifying compliance.
14
14
15
-
Accessors can be configured to access either live or soft-deleted data. Soft-deleted data is data that has been deleted but is temporarily retained for a narrow set of purposes, e.g. fraud investigations. See [Data Lifecycle](https://docs.userclouds.com/docs/data-lifecycle) for more details.
15
+
Accessors can be configured to access either live or soft-deleted data. Soft-deleted data is data that has been deleted but is temporarily retained for a narrow set of purposes, e.g. fraud investigations. See [Data Lifecycle](/docs/data-lifecycle) for more details.
16
16
17
17
## What Accessors Do
18
18
@@ -23,11 +23,11 @@ Accessors can be configured to access either live or soft-deleted data. Soft-del
23
23
1. Data, <Glossary>consent</Glossary>s and <Glossary>purpose</Glossary>s are stored inside the safety layer boundary (either in UserClouds User Store or an owned-and-operated database like RDS)
24
24
2. Data consumers request access by sending context, like purpose or identity, to a use-case specific <Glossary>accessor</Glossary> API
25
25
3. Several access policies are evaluated for each user record, using the data passed in <Glossary>context</Glossary> and data in the user object:
26
-
1.**Global baseline policy for accessors**: Applied to ensure baseline security. Learn more [here](https://docs.userclouds.com/docs/apply-global-protection-policies).
27
-
2.**Column-default access policies**: Column default policies for all columns accessed by the accessor are applied, unless overridden. Learn more [here](https://docs.userclouds.com/docs/protect-a-column-with-defaults).
26
+
1.**Global baseline policy for accessors**: Applied to ensure baseline security. Learn more [here](/docs/apply-global-protection-policies).
27
+
2.**Column-default access policies**: Column default policies for all columns accessed by the accessor are applied, unless overridden. Learn more [here](/docs/protect-a-column-with-defaults).
28
28
3.**Accessor-specific access policy composition**: Applied in addition to the above policies.
29
29
4. User data is further filtered according to whether the users have consented to the accessor's data processing purpose.
30
-
5. For records where access is granted, the accessor's <Glossary>data transformer</Glossary>s transform each column of the outbound data, minimizing the data for the given use case. If no transformer is specified for a given column, the column's default transformer is used. Learn more [here](https://docs.userclouds.com/docs/protect-a-column-with-defaults).
30
+
5. For records where access is granted, the accessor's <Glossary>data transformer</Glossary>s transform each column of the outbound data, minimizing the data for the given use case. If no transformer is specified for a given column, the column's default transformer is used. Learn more [here](/docs/protect-a-column-with-defaults).
31
31
32
32
## Structure of an Accessor
33
33
@@ -36,12 +36,12 @@ At creation time, each accessor is associated with a user record <Glossary>selec
36
36
- The user record <Glossary>selector</Glossary> is a SQL-like clause that specifies which records the accessor should return data for, based on an array of values that are passed at execution time. The accessor's response will only include users that have consented to the accessor's purpose for all non-<Glossary>system column</Glossary>s used in the selector. Since UserClouds does not store consents for <Glossary>system column</Glossary>s, they can be referenced in the selector regardless of accessor purpose / user consents.
37
37
- The columns indicate which data fields the accessor will retrieve.
38
38
- Each column is associated with a transformer, which tokenizes, minimizes or otherwise obscures the outbound data from that column.
39
-
- The purpose is selected from your company's list of data processing purposes. This indicates what the accessor will be used for, e.g. marketing. The accessor will run a <Glossary>purpose check</Glossary>, filtering out user records and data for which the user has not consented to the specified purpose across all columns. The accessor's response will only include users that have consented to the accessor's purpose for all columns being retrieved, and all non-system columns used in the selector. Learn more [here](https://docs.userclouds.com/docs/purpose-and-consent).
39
+
- The purpose is selected from your company's list of data processing purposes. This indicates what the accessor will be used for, e.g. marketing. The accessor will run a <Glossary>purpose check</Glossary>, filtering out user records and data for which the user has not consented to the specified purpose across all columns. The accessor's response will only include users that have consented to the accessor's purpose for all columns being retrieved, and all non-system columns used in the selector. Learn more [here](/docs/purpose-and-consent).
40
40
- The access policy determines the circumstances in which the data can be retrieved. Access policies run on each user record and filter out user records which fail the access policy.
41
41
42
42
## Learn More
43
43
44
44
For more info on accessors, see:
45
45
46
-
-[Creating an accessor](https://docs.userclouds.com/docs/create-an-accessor)
47
-
-[Executing an accessor](https://docs.userclouds.com/reference/post_userstore-api-accessors)
46
+
-[Creating an accessor](/docs/create-an-accessor)
47
+
-[Executing an accessor](/reference/post_userstore-api-accessors)
0 commit comments