Skip to content

Commit ca2dbbb

Browse files
author
Dan Costello
authored
Make navigation casing consistent (#11)
1 parent fb1f0de commit ca2dbbb

File tree

9 files changed

+103
-80
lines changed

9 files changed

+103
-80
lines changed

content/docs/guides/(authentication)/quickstart-guides/sample-app.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: "Sample App"
2+
title: "Sample app"
33
slug: "sample-app"
44
excerpt: "Set up an instance of UserClouds in less than 5 minutes!"
55
hidden: false

content/docs/guides/(authorization)/overview/modelling-hierarchy-with-attribute-types.mdx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
---
2-
title: "Modeling Hierarchy with Attribute Scopes"
2+
title: "Modeling hierarchy with attribute scopes"
33
slug: "modelling-hierarchy-with-attribute-types"
44
excerpt: ""
55
hidden: false
66
createdAt: "Thu Aug 03 2023 23:14:02 GMT+0000 (Coordinated Universal Time)"
77
updatedAt: "Fri Jun 21 2024 16:55:25 GMT+0000 (Coordinated Universal Time)"
88
---
9+
910
In this article, you will learn how to model relationships and arbitrarily deep hierarchy between <Glossary>object</Glossary>s in your system with attribute scopes. By the end of this article, you will understand the fundamentals of modeling:
1011

1112
- **Folder-like structures** where objects contain other objects (ad infinitum)
@@ -16,26 +17,24 @@ The article assumes you know what <Glossary>object</Glossary>, <Glossary>edge</G
1617

1718
## Attribute Scopes
1819

19-
Attributes give one object permissions on another object. Each attribute has an <Glossary>attribute name</Glossary> (like `edit`) and an <Glossary>attribute scope</Glossary>. The value describes the permission and the scope describes which two objects are affected by the attribute. There are three scopes of attribute: direct, inherit and propagate.
20+
Attributes give one object permissions on another object. Each attribute has an <Glossary>attribute name</Glossary> (like `edit`) and an <Glossary>attribute scope</Glossary>. The value describes the permission and the scope describes which two objects are affected by the attribute. There are three scopes of attribute: direct, inherit and propagate.
2021

2122
## Direct Attributes
2223

23-
The direct scope is the simplest attribute scope. It gives the source object the permission on the target object. It is used for non-hierarchical relationships.
24+
The direct scope is the simplest attribute scope. It gives the source object the permission on the target object. It is used for non-hierarchical relationships.
2425

2526
![An edge with a view:direct attribute gives the source object view permissions on the target object.](/assets/images/Attribute_Direct.webp)
2627

27-
2828
## Inherit Attributes
2929

3030
The inherit attribute scope states:
3131

3232
> Inherit: if the target <Glossary>object</Glossary> has the attribute on a third object, the source object ‘inherits’ that attribute on the third object.
3333
34-
**Inherit attributes are used to pass a permission from one user or group to another**. In the example below, Gloria is a member of a department that owns a particular project. This is modeled by giving the department direct view access on the project, and passing that view access to Gloria with an inherit attribute.
34+
**Inherit attributes are used to pass a permission from one user or group to another**. In the example below, Gloria is a member of a department that owns a particular project. This is modeled by giving the department direct view access on the project, and passing that view access to Gloria with an inherit attribute.
3535

3636
![Inherit attributes are used to pass permissions from one user or group to another.](/assets/images/Attribute_Inherit.webp)
3737

38-
3938
## Propagate Attributes
4039

4140
The propagate attribute scope states:

content/docs/guides/(data-access)/proxy-and-plug-in-implementation/2-sql-shim.mdx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
---
2-
title: "Quickstart Guide"
2+
title: "Quickstart guide"
33
slug: "sql-shim"
44
excerpt: ""
55
hidden: false
66
createdAt: "Thu Jun 13 2024 13:53:04 GMT+0000 (Coordinated Universal Time)"
77
updatedAt: "Thu Sep 19 2024 19:09:40 GMT+0000 (Coordinated Universal Time)"
88
---
9+
910
## In the UserClouds Console:
1011

1112
1. **Create a Tenant**: Set up your tenant if you haven't already.
@@ -16,7 +17,7 @@ updatedAt: "Thu Sep 19 2024 19:09:40 GMT+0000 (Coordinated Universal Time)"
1617

1718
## In Your Application Codebase:
1819

19-
1. **Repoint Connection Strings**:
20+
1. **Repoint Connection Strings**:
2021
- **For SQL Proxies**: Replace the existing database URI and port with the SQL proxy host name and proxy port.
2122
- **For NoSQL Proxies**: Replace the NoSQL connection details with the NoSQL proxy host name and port.
2223
- **For API Proxies**: This is not yet implemented.

content/docs/guides/(data-access)/proxy-and-plug-in-implementation/6-userclouds-browser-plug-in-documentation.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
---
2-
title: "Browser Plug-in"
2+
title: "Browser plug-in"
33
slug: "userclouds-browser-plug-in-documentation"
44
excerpt: ""
55
hidden: false
66
createdAt: "Thu Jun 13 2024 13:49:30 GMT+0000 (Coordinated Universal Time)"
77
updatedAt: "Fri Jun 28 2024 22:21:26 GMT+0000 (Coordinated Universal Time)"
88
---
9+
910
### What Does It Do?
1011

1112
The UserClouds Browser Plug-in is designed to help you minimize, control, and log data access within web applications. It can be deployed in 15 minutes with no code changes, so is particularly useful in scenarios where:
@@ -19,11 +20,11 @@ Since the plug-in is installed locally, it is primarily aimed at internal data a
1920

2021
In combination with the UserClouds Proxy, the UserClouds Browser Plug-in allows you to:
2122

22-
- Tokenize and de-tokenize data in web applications without changing the application code.
23+
- Tokenize and de-tokenize data in web applications without changing the application code.
2324
- Control data access with fully expressive, context-aware access policies
2425
- Log the who, when, why and how of data access
2526

26-
This can be achieved with minimal code changes or disruption to your development team or colleagues.
27+
This can be achieved with minimal code changes or disruption to your development team or colleagues.
2728

2829
The approach helps:
2930

@@ -43,7 +44,6 @@ The plug-in performs four core functions:
4344

4445
![The proxy sits between any database and application, intercepting queries to enforce access policies, log access and mask or tokenize data. (2) With no code changes, the application runs entirely on secure tokens, not sensitive data. (3) The browser plug-in resolves tokens for trusted employees, enforcing access policies and zero trust at the data level, via a single central control plane.](/assets/images/data-flow.webp)
4546

46-
4747
## Quickstart Guide
4848

4949
### In the UserClouds Console:

content/docs/guides/(data-access)/proxy-and-plug-in-implementation/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: "Proxy and Plug-In Implementation"
2+
title: "Proxy and plug-in implementation"
33
slug: "proxy-and-plug-in-implementation"
44
excerpt: ""
55
hidden: false
Lines changed: 37 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,80 @@
11
---
2-
title: "Data Lifecycle"
2+
title: "Data lifecycle"
33
slug: "data-lifecycle"
44
excerpt: ""
55
hidden: false
6-
metadata:
6+
metadata:
77
image: []
88
robots: "index"
99
createdAt: "Tue Aug 15 2023 20:17:32 GMT+0000 (Coordinated Universal Time)"
1010
updatedAt: "Fri Aug 25 2023 21:26:25 GMT+0000 (Coordinated Universal Time)"
1111
---
12-
import { Step, Steps } from 'fumadocs-ui/components/steps';
12+
13+
import { Step, Steps } from "fumadocs-ui/components/steps";
1314

1415
Purpose lifetimes and data deletion mechanisms play a crucial role in ensuring compliance with regulations like GDPR (General Data Protection Regulation). For example, a key principle of GDPR is storage limitation, which dictates that personal data must be kept in a form which permits identification of data subjects for no longer than is necessary for the purposes for which the personal data is processed.
1516

1617
This articles explains the mechanisms and configurations related to data deletion in UserClouds, especially in the context of user-defined data processing purposes and purpose lifetimes. The article assumes you are familiar with:
1718

1819
- How <Glossary>purpose</Glossary>s are used to track, enforce and audit user <Glossary>consent</Glossary> in User Store. Learn more [here](/docs/guides/definitions/purpose-and-consent).
19-
- How the User Store is built from <Glossary>column</Glossary>s and populated with user records. Learn more [here](/docs/manage-your-columns).
20-
- How <Glossary>mutator</Glossary>s and <Glossary>accessor</Glossary>s are used to write data to, and retrieve data from, the store. Learn more [here](/docs/accessors-read-apis).
20+
- How the User Store is built from <Glossary>column</Glossary>s and populated with user records. Learn more [here](/docs/manage-your-columns).
21+
- How <Glossary>mutator</Glossary>s and <Glossary>accessor</Glossary>s are used to write data to, and retrieve data from, the store. Learn more [here](/docs/accessors-read-apis).
2122

2223
## Introduction
2324

24-
Each piece of data in UserClouds is stored in an end user record and a column. It is also associated with a set of purposes, which describe the consents the end user has given for data processing. Data can exist in UserClouds in two lifecycle states:
25+
Each piece of data in UserClouds is stored in an end user record and a column. It is also associated with a set of purposes, which describe the consents the end user has given for data processing. Data can exist in UserClouds in two lifecycle states:
2526

2627
- **Live data** is data that has not been deleted or marked for deletion
2728
- **Soft-deleted data** is data that has been marked for deletion but is retained in a recoverable state for a specified period and set of purposes (like fraud detection), before being permanently erased
2829

29-
Data accessors must exclusively retrieve either live data _or_ soft-deleted data. No accessor can retrieve both. Only tenant admins can create and edit accessors for soft-deleted data.
30+
Data accessors must exclusively retrieve either live data _or_ soft-deleted data. No accessor can retrieve both. Only tenant admins can create and edit accessors for soft-deleted data.
3031

3132
When a live piece of data changes, the old value becomes soft-deleted for the associated purposes if they have a non-zero post-deletion retention duration. Similarly, if a purpose is removed for a live piece of data, the data and purpose are soft-deleted if the post-deletion retention duration is non-zero. In either case the old value (or old purpose) will no longer be retrievable via a pre-deletion accessor.
3233

3334
## Configuring Purpose Lifetimes
3435

35-
Purpose lifetimes are set at the purpose-column level. Developers can configure two distinct time-based settings for each purpose-column pair:
36+
Purpose lifetimes are set at the purpose-column level. Developers can configure two distinct time-based settings for each purpose-column pair:
3637

3738
- **The Pre-deletion Retention Duration** determines how long a specific purpose associated with a piece of data will be retained. Once this duration elapses, the purpose for that data expires. Once all the purposes have expired for the data, the data is soft-deleted. The clock for the purpose is reset can be reset by re-writing the data to the store. This duration is most commonly used to reflect the Storage Limitation principle of legislation like GDPR. The default setting is indefinite, meaning the purpose will not expire and that the value will be accessible for that purpose, until the data is deleted or changed, or the purpose is removed.
3839
- **The Post-deletion Retention Duration** specifies the duration for which data should be retained in a "soft-deleted" state after a deletion event occurs. Once the Post-deletion Retention Duration elapses, the associated purpose expires. When all purposes are deleted for a specific piece of data, the data is no longer accessible by any means. This duration is most commonly used to enable account recovery and fraud/integrity investigations. The default setting is 0, meaning that old data is immediately hard-deleted when it is deleted or changed.
3940

4041
Any changes to pre- or post-deletion retention durations for a purpose only apply to newly written data. Retention timeouts for existing data cannot be retroactively changed by changing the retention duration associated with that column or purpose. However, if a retention duration is updated, any newly written data after the fact will have a timeout based on the new retention duration.
4142

4243
## Deletion Process Flow
44+
4345
<Steps>
4446
<Step>End user data is saved to the store with associated purposes.</Step>
45-
<Step>Pre-deletion Retention Duration countdown begins for each associated purpose.</Step>
46-
<Step>If data is updated with the same purpose before Pre-deletion Retention Duration elapses, the purpose retention clock is reset.</Step>
47-
<Step>If the pre-deletion retention duration elapses, the data is no longer visible for that purpose as live, pre-delete data.</Step>
48-
<Step>Deletion event occurs (e.g. a value update, a value deletion, a column deletion or a user deletion) triggering the Post-deletion Retention Duration.</Step>
49-
<Step>Once Post-deletion Retention Duration elapses, the associated purpose is deleted.</Step>
50-
<Step>When all purposes are deleted for a piece of data, the data is no longer accessible by any means.</Step>
47+
<Step>
48+
Pre-deletion Retention Duration countdown begins for each associated
49+
purpose.
50+
</Step>
51+
<Step>
52+
If data is updated with the same purpose before Pre-deletion Retention
53+
Duration elapses, the purpose retention clock is reset.
54+
</Step>
55+
<Step>
56+
If the pre-deletion retention duration elapses, the data is no longer
57+
visible for that purpose as live, pre-delete data.
58+
</Step>
59+
<Step>
60+
Deletion event occurs (e.g. a value update, a value deletion, a column
61+
deletion or a user deletion) triggering the Post-deletion Retention
62+
Duration.
63+
</Step>
64+
<Step>
65+
Once Post-deletion Retention Duration elapses, the associated purpose is
66+
deleted.
67+
</Step>
68+
<Step>
69+
When all purposes are deleted for a piece of data, the data is no longer
70+
accessible by any means.
71+
</Step>
5172
</Steps>
5273

5374
## Example
5475

5576
- Data: Email address
56-
- User Consents:
77+
- User Consents:
5778
- `Marketing` (Pre-deletion Retention: 6 months, Post-deletion Retention: 0 days)
5879
- `FraudAndIntegrity` (Pre-deletion Retention: 1 year, Post-deletion Retention: 3 years)
5980
- If data is re-written with a new `Marketing` or `FraudAndIntegrity` consent within 1 year, the clock for that consent resets.
@@ -62,5 +83,5 @@ Any changes to pre- or post-deletion retention durations for a purpose only appl
6283
- At this point, the data can no longer be accessed for marketing purposes.
6384
- The data is retained in a soft-deleted state for 3 years for `FraudAndIntegrity` purposes
6485
- During this time, it can only be accessed by accessors with the `FraudAndIntegrity` purpose, which are specifically configured by a tenant admin to access soft-deleted data
65-
- After 3 years, the `FraudAndIntegrity` consent is deleted.
86+
- After 3 years, the `FraudAndIntegrity` consent is deleted.
6687
- At this point, since this data has no consents for data processing attached to it, it is permanently and irrecoverably deleted from the store.

content/docs/guides/(data-tokenization)/tokenization-overview/demo-video.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
---
2-
title: "Demo Video"
2+
title: "Demo video"
33
slug: "demo-video"
44
excerpt: "This video covers what tokenization is and why to use it, as well as how to manage your tokenization policies in the UserClouds Console and UserClouds API."
55
hidden: true
66
createdAt: "Thu Aug 03 2023 21:54:59 GMT+0000 (Coordinated Universal Time)"
77
updatedAt: "Wed Jun 19 2024 17:13:12 GMT+0000 (Coordinated Universal Time)"
88
---
9+
910
<iframe
1011
src="https://www.loom.com/embed/88666408b15f4ff3b55b0753e4cc9155"
1112
title="Tokenizer Demo - Google Slides - 5 December 2022"

content/docs/guides/(deployment)/set-up-guides/docker-set-up-guide.mdx

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,55 @@
11
---
2-
title: "Docker Set-up Guide"
2+
title: "Docker set-up guide"
33
slug: "docker-set-up-guide"
44
excerpt: ""
55
hidden: false
66
createdAt: "Tue Jul 30 2024 18:43:55 GMT+0000 (Coordinated Universal Time)"
77
updatedAt: "Tue Jul 30 2024 19:05:55 GMT+0000 (Coordinated Universal Time)"
88
---
9+
910
> 🚧 Note: because this configuration provides no monitoring, automatic restarts, failover, etc, this configuration is intended ONLY for development, test, and CI environments. Do not use this configuration for production - otherwise outages and data loss may occur.
1011
1112
This guide provides step-by-step instructions on deploying the UserClouds Docker container on an Amazon EC2 instance. This setup is useful for environments where you need to manage the Docker container lifecycle manually.
1213

13-
## Prerequisites
14+
### Prerequisites:
1415

1516
- AWS Account
1617
- AWS CLI configured
1718
- Docker installed locally
1819

19-
Steps
20+
### Steps:
2021

2122
1. **Launch an EC2 Instance**
22-
1. **Log in to the AWS Management Console.**
23+
1. **Log in to the AWS Management Console**
2324
2. **Launch an Instance:**
24-
1. Navigate to EC2 Dashboard and click "Launch Instance".
25+
1. Navigate to EC2 Dashboard and click "Launch Instance"
2526
2. Choose an Amazon Machine Image (AMI). For this guide, we will use the Amazon Linux 2 AMI.
2627
3. Select an instance type. A t2.micro instance is sufficient for testing, but choose according to your needs.
2728
4. Configure other instance details as required.
2829
5. Configure security groups:
2930
1. Allow SSH (port 22) from your IP address.
3031
2. Allow HTTP (port 80) and HTTPS (port 443)
3132
3. **Review and Launch:**
32-
1. Review your instance settings and click "Launch".
33-
2. Select an existing key pair or create a new one to access your instance.
34-
3. Click "Launch Instances".
33+
1. Review your instance settings and click "Launch"
34+
2. Select an existing key pair or create a new one to access your instance
35+
3. Click "Launch Instances"
3536
4. **Connect to Your Instance:**
36-
1. Once the instance is running, click "Connect" and follow the instructions to SSH into your instance.
37+
1. Once the instance is running, click "Connect" and follow the instructions to SSH into your instance
3738
2. **Install Docker on the EC2 Instance**
3839
1. Update the Installed Packages: `sudo yum update -y`
3940
2. Install Docker: `sudo amazon-linux-extras install docker -y`
4041
3. Start the Docker Service: `sudo service docker start`
4142
4. Add the ec2-user to the Docker Group: `sudo usermod -a -G docker ec2-user`
4243
5. Log Out and Log Back In (to ensure your user permissions are updated)
4344
3. **Pull the UserClouds Docker Image**
44-
1. Reach out to your UserClouds point of contact to obtain the Docker image and any necessary credentials for accessing the Docker registry where the image is hosted.
45+
1. Reach out to your UserClouds point of contact to obtain the Docker image and any necessary credentials for accessing the Docker registry where the image is hosted
4546
4. **Run the UserClouds Docker Container**
4647
1. Run the Docker Container: `docker run -d --name userclouds-container -p 80:80 name-goes-here`
47-
1. Replace `name-goes-here` with the name of the UserClouds Docker image.
48+
1. Replace `name-goes-here` with the name of the UserClouds Docker image
4849
2. Adjust the port mapping (`-p 80:80`) as needed.
4950
5. **Verify the Deployment**
5051
1. Check Running Containers: `docker ps`
51-
2. Access Your Application: Open a web browser and navigate to the public IP address of your EC2 instance. You should see the UserClouds application running.
52+
2. Access Your Application: Open a web browser and navigate to the public IP address of your EC2 instance. You should see the UserClouds application running
5253
6. **Manual Lifecycle Management**
5354
1. Since the Docker container will not automatically restart if the EC2 instance is terminated, you need to manage the lifecycle manually. Here are some commands to help:
5455
1. Stop the Docker Container: `docker stop userclouds-container`

0 commit comments

Comments
 (0)