Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions docs/api-reference/bundle/write-bundle.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ Prior to Data Bundles, it was the responsibility of the services (such as [Write

With the Data Bundles, you be able to bundle and model the creation and deletion of relations and attributes when specific actions occur on resources in your applications.

We believe this functionality will streamline managing authorization data as well as managing this in a central place increase visibility around certain actions/triggers that end up with data creation.
We believe this functionality will streamline managing authorization data as well as managing this in a central place increases visibility around certain actions/triggers that end up with data creation.

## How Bundles Works
## How Bundles Work

Let's examine how Bundles operates with basic example.
Let's examine how Bundles operate with a basic example.

Let's say you want to model how data will be created when an organization created in your application. For this purpose, you can utilize the WriteBundle API endpoint. This API enables users to define or update data bundles, each distinguished by a unique name.
Let's say you want to model how data will be created when an organization is created in your application. For this purpose, you can utilize the WriteBundle API endpoint. This API enables users to define or update data bundles, each distinguished by a unique name.

Here's an example body for WriteBundle in this scenario:

Expand Down
8 changes: 4 additions & 4 deletions docs/api-reference/introduction.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ We structured Permify API in 4 core parts:
- [PermissionService]: Consists access control requests and options.
- [DataService]: Authorization data operations such as creating, deleting and reading relational tuples.
- [SchemaService]: Modeling and Permify Schema related functionalities including configuration and auditing.
- [TenancyService]: Consists tenant operations such as creating, deleting and listing.
- [TenancyService]: Consists of tenant operations such as creating, deleting and listing.
- [BundleService]: Manages bundled creation and deletion of relations and attributes to keep authorization data aligned with the business model.

Permify exposes its APIs via both [gRPC](https://buf.build/permifyco/permify/docs/main:base.v1) and [REST](https://restfulapi.net/).
Expand Down Expand Up @@ -56,13 +56,13 @@ However, since it communicates using standard protocols like gRPC and HTTP, it i

You can secure APIs with our authentication methods; **Open ID Connect** or **Pre Shared Keys**. They can be configurable with flags or using configuration yaml file. See more details how to enable authentication from [Configuration Options](../../setting-up/configuration)

To access the endpoints after enabling authentication, it's necessary to provide a Bearer Token for identification. If your using golang or nodeJs client library, an authentication token can be provided via interceptors. You can find details in the clients' documentation.
To access the endpoints after enabling authentication, it's necessary to provide a Bearer Token for identification. If you're using Golang or Node.js client library, an authentication token can be provided via interceptors. You can find details in the clients' documentation.

## Latency & Performance

With the right architecture we expect **7-12 ms** latency. Depending on your load, cache usage and architecture you can get up to **30ms**.

Permify implements several cache mechanisms in order to achieve low latency in scaled distributed systems. See more on the section [Cache Mechanisims](../../operations/cache)
Permify implements several cache mechanisms in order to achieve low latency in scaled distributed systems. See more on the section [Cache Mechanisms](../../operations/cache)

## Availability of the Service

Expand All @@ -89,6 +89,6 @@ These credits are your sole remedy for any availability failures under our SLA.

Default rate limit is set to 100 requests per second. However, users can adjust this based on their specific needs following our [documentation](https://docs.permify.co/docs/reference/configuration). We used [Token bucket](https://en.wikipedia.org/wiki/Token_bucket) algorithm for rate limiting.

## Need any help ?
## Need any help?

Our team is happy to help you get started with Permify. If you'd like to learn more about using Permify in your app or have any questions about this example, [schedule a consultation call with one of our account executives](https://www.permify.co/book-demo).
12 changes: 6 additions & 6 deletions docs/cloud/intro.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ What you can find in this tab:

## Schema Management

It’s expected that your initial schema will eventually change as your products evolves.
It’s expected that your initial schema will eventually change as your product evolves.

As new features, API endpoints, user requirements or compliance requirements are regularly rolled out, each addition often necessitates corresponding updates to your authorization model, [Permify Schema](../getting-started/modeling).

Expand All @@ -77,7 +77,7 @@ The **Schemas** view lists the latest configured schemas with the [WriteSchema A

### Schema Deployments

One of the best practise to manage schema changes is setting up a central git repository that stores the schema YAML file.
Managing schema changes by setting up a central git repository that stores the schema YAML file is a best practice.

This way, you can centrally check and approve every schema change before deploying it.

Expand All @@ -91,7 +91,7 @@ In Permify Cloud we even streamline this management process for you with connect

With **Schema Management GitOps Workflow**, you can now automatically deploy authorization models to Permify directly from your GitHub repository.

Similar deploying your Vercel application with GitHub Actions. And we show these deployments in the **Deployments** view.
Similar to deploying your Vercel application with GitHub Actions. And we show these deployments in the **Deployments** view.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix sentence fragment and conjunction at start.

The line contains two grammar issues:

  • "Similar to deploying your Vercel application with GitHub Actions." is a sentence fragment.
  • Starting the next sentence with "And" is discouraged in formal documentation.
🔎 Suggested fix
-Similar to deploying your Vercel application with GitHub Actions.  And we show these deployments in the **Deployments** view.
+Similar to deploying your Vercel application with GitHub Actions, we show these deployments in the **Deployments** view.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Similar to deploying your Vercel application with GitHub Actions. And we show these deployments in the **Deployments** view.
Similar to deploying your Vercel application with GitHub Actions, we show these deployments in the **Deployments** view.
🤖 Prompt for AI Agents
In @docs/cloud/intro.mdx at line 94, Replace the sentence fragment and remove
the leading conjunction by rewriting the two phrases into a complete sentence or
two proper sentences; e.g., change "Similar to deploying your Vercel application
with GitHub Actions.  And we show these deployments in the **Deployments**
view." to a full sentence like "This is similar to deploying your Vercel
application with GitHub Actions, and we show these deployments in the
**Deployments** view." or split into "This is similar to deploying your Vercel
application with GitHub Actions. We show these deployments in the
**Deployments** view."


### How Schema Deployment Works ?

Expand Down Expand Up @@ -155,7 +155,7 @@ If all tests pass, the model is seamlessly deployed to Permify, and you can moni

### Schema Staging

In above example we directly pushed our change to master branch. And this deployment records labeled as **production** by default.
In the above example we directly pushed our change to the master branch. And this deployment record is labeled as **production** by default.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix missing comma and sentence starting with conjunction.

The line has two grammar issues:

  • Missing comma after the introductory phrase "In the above example".
  • Starting a sentence with "And" is discouraged in formal documentation.
🔎 Suggested fix
-In the above example we directly pushed our change to the master branch. And this deployment record is labeled as **production** by default.
+In the above example, we directly pushed our change to the master branch. This deployment record is labeled as **production** by default.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
In the above example we directly pushed our change to the master branch. And this deployment record is labeled as **production** by default.
In the above example, we directly pushed our change to the master branch. This deployment record is labeled as **production** by default.
🤖 Prompt for AI Agents
In @docs/cloud/intro.mdx at line 158, Edit the sentence "In the above example we
directly pushed our change to the master branch. And this deployment record is
labeled as **production** by default." by adding a comma after the introductory
phrase and removing the sentence-initial "And" (e.g., combine into: "In the
above example, we directly pushed our change to the master branch, and this
deployment record is labeled as **production** by default.").


If you have at least a couple of engineers who can make schema changes, you will want to have a review process for these changes.

Expand Down Expand Up @@ -227,7 +227,7 @@ To learn more how it works and how to configure it, see the [Schema Management](

The **Garbage Collector** is a mechanism designed to clean up expired or idle relation tuples.

This is particularly important when schemas are changed or created frequently, as it can lead to the creation of many unused tuples within time.
This is particularly important when schemas are changed or created frequently, as it can lead to the creation of many unused tuples over time.

![garbage-collector](https://github.com/user-attachments/assets/0b5537a3-d6e3-4ae3-b016-19fbff5c1b7f)

Expand All @@ -241,7 +241,7 @@ Autoscaling is by default activated in Permify Cloud.

![auto-scaling](https://github.com/user-attachments/assets/2805dc21-eb3f-457e-8ad4-225f5aaa1653)

It automatically adjust resource allocation to meet demand, ensuring optimal performance and cost-efficiency.
It automatically adjusts resource allocation to meet demand, ensuring optimal performance and cost-efficiency.

### Consistent Hashing

Expand Down
2 changes: 1 addition & 1 deletion docs/development.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ yarn global add mintlify

</CodeGroup>

Step 2. Go to the docs are located (where you can find `mint.json`) and run the following command:
Step 2. Go to where the docs are located (where you can find `mint.json`) and run the following command:

```bash
mintlify dev
Expand Down
6 changes: 3 additions & 3 deletions docs/getting-started/enforcement.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,13 @@ However, since it communicates using standard protocols like gRPC and HTTP, it i

You can secure APIs with our authentication methods; **Open ID Connect** or **Pre Shared Keys**. They can be configurable with flags or using configuration yaml file. See more details how to enable authentication from [Configuration Options](../../setting-up/configuration)

To access the endpoints after enabling authentication, it's necessary to provide a Bearer Token for identification. If your using golang or nodeJs client library, an authentication token can be provided via interceptors. You can find details in the clients' documentation.
To access the endpoints after enabling authentication, it's necessary to provide a Bearer Token for identification. If you're using the Golang or Node.js client library, an authentication token can be provided via interceptors. You can find details in the clients' documentation.

## Latency & Performance

With the right architecture we expect **7-12 ms** latency. Depending on your load, cache usage and architecture you can get up to **30ms**.

Permify implements several cache mechanisms in order to achieve low latency in scaled distributed systems. See more on the section [Cache Mechanisims](../../operations/cache)
Permify implements several cache mechanisms in order to achieve low latency in scaled distributed systems. See more on the section [Cache Mechanisms](../../operations/cache)

## Availability of the Service

Expand All @@ -87,6 +87,6 @@ These credits are your sole remedy for any availability failures under our SLA.

Default rate limit is set to 100 requests per second. However, users can adjust this based on their specific needs following our [documentation](https://docs.permify.co/docs/reference/configuration). We used [Token bucket](https://en.wikipedia.org/wiki/Token_bucket) algorithm for rate limiting.

## Need any help ?
## Need any help?

Our team is happy to help you get started with Permify. If you'd like to learn more about using Permify in your app or have any questions about this example, [schedule a consultation call with one of our account executives](https://www.permify.co/book-demo).
6 changes: 3 additions & 3 deletions docs/getting-started/examples/facebook-groups.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -533,8 +533,8 @@ The validation result according to our example schema validation file:

![Screen Shot 2023-04-16 at 15 53 06](https://user-images.githubusercontent.com/34595361/233152003-1fbaf2af-d208-4290-af1f-359870b0de49.png)

## Need any help ?
## Need any help?

This is the end of demonstration of the authorization structure for Facebook groups. To install and implement this see the [Set Up Permify](../../installation.md) section.
This concludes the demonstration of the authorization structure for Facebook groups. To install and implement this see the [Set Up Permify](../../installation.md) section.

If you need any kind of help, our team is happy to help you get started with Permify. If you'd like to learn more about using Permify in your app or have any questions about it, [schedule a consultation call with one of our account executives](https://www.permify.co/book-demo).
If you need any kind of help, our team is happy to help you get started with Permify. If you'd like to learn more about using Permify in your app or have any questions about it, [schedule a consultation call with one of our account executives](https://www.permify.co/book-demo).
8 changes: 4 additions & 4 deletions docs/getting-started/examples/google-docs.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ entity document {
entity user {}
```

Represents a user who can be granted permission to access a documents directly, or through their membership in a group or organization.
Represents a user who can be granted permission to access documents directly, or through their membership in a group or organization.

### Document

Expand Down Expand Up @@ -190,7 +190,7 @@ Finally, let's check some permissions and test our authorization logic.
}
```

According what we have defined for the edit action managers and admins, of the organization that document belongs, can edit product database. In this context, Permify engine will check does subject `user:ashley` has any direct or indirect manager relation within `document:product_database`. Consecutively it will check does `user:ashley` has admin relation in the Acme Org - `organization:acme#document@document:product_database`.
According to what we have defined for the edit action, managers and admins of the organization that the document belongs to can edit the product database. In this context, Permify engine will check whether the subject `user:ashley` has any direct or indirect manager relation within `document:product_database`. Consecutively it will check whether `user:ashley` has admin relation in the Acme Org - `organization:acme#document@document:product_database`.

Ashley doesn't have any administrative relation in Acme Org but she is the manager in group tech (`group:tech#manager@user:ashley`) and we have defined that manager of group tech is manager of product_database with the tuple (`document:product_database#manager@group:tech#manager`). Therefore, the **user:ashley edit document:product_database** check request should yield **true** response.
</Accordion>
Expand All @@ -208,7 +208,7 @@ entity document {
}
```

According what we have defined for the view action viewers or managers or org.admin's can view hr documents. In this context, Permify engine will check whether subject `user:joe` has any direct or indirect manager or viewer relation within `document:hr_documents`. Also consecutively it will check does `user:joe` has admin relation in the Acme Org - `organization:acme#document@document:hr_documents`.
According to what we have defined for the view action, viewers, managers, or org.admin's can view HR documents. In this context, Permify engine will check whether subject `user:joe` has any direct or indirect manager or viewer relation within `document:hr_documents`. Also consecutively it will check whether `user:joe` has admin relation in the Acme Org - `organization:acme#document@document:hr_documents`.

Joe doesn't have administrative role/relation in Acme Org.

Expand All @@ -230,7 +230,7 @@ entity document {
}
```

According what we have defined for the view action viewers or managers or org.admin's can view hr documents. In this context, Permify engine will check does subject `user:david` has any direct or indirect manager or viewer relation within `document:marketing_materials`. Also consecutively it will check does `user:david` has admin relation in the Acme Org - `organization:acme#document@document:marketing_materials`.
According to what we have defined for the view action, viewers, managers, or org.admin's can view HR documents. In this context, Permify engine will check whether subject `user:david` has any direct or indirect manager or viewer relation within `document:marketing_materials`. Also consecutively it will check whether `user:david` has admin relation in the Acme Org - `organization:acme#document@document:marketing_materials`.

Similar Joe and Ashley, David also doesn't have administrative role/relation in Acme Org.

Expand Down
4 changes: 2 additions & 2 deletions docs/getting-started/examples/instagram.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -323,6 +323,6 @@ The validation result according to our example schema validation file:

![test-result](https://github.com/Permify/permify/assets/48759364/2fb9a1ab-40d4-48e0-857a-3d59de575134)

## Need any help ?
## Need any help?

This is the end of demonstration of the authorization structure for Facebook groups. To install and implement this see the [Set Up Permify](../../installation.md) section.
This is the end of the demonstration of the authorization structure for Instagram. To install and implement this see the [Set Up Permify](../../installation.md) section.
6 changes: 3 additions & 3 deletions docs/getting-started/examples/mercury.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ But today we’re going to focus on approvals. Mercury allows it’s users to se

For instance, an admin can decide that withdrawals above $1000 by members require approval from two designated approvers.

This means, if a member wants to withdraw more than $1000, they need a green light from two admin. And if an admin tries to withdraw they need an approval form another admin.
This means, if a member wants to withdraw more than $1000, they need a green light from two admins. And if an admin tries to withdraw they need approval from another admin.

- Admin → Withdraw $1000 → needs an approver
- Member → Withdraw $1000 → needs 2 approvers.
Expand Down Expand Up @@ -156,6 +156,6 @@ At last, as you can see we use the Rules to define access rights to withdraw whi
- Check if user is admin, and have approval more than the approval limit for admins.
- Check if user is member, and have approval more than the approval limit for members.

## Need any help ?
## Need any help?

This is the end of demonstration of the authorization structure for Facebook groups. To install and implement this see the [Set Up Permify](../../installation.md) section.
This is the end of the demonstration of the authorization structure for Mercury. To install and implement this see the [Set Up Permify](../../installation.md) section.
4 changes: 2 additions & 2 deletions docs/getting-started/examples/notion.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -536,8 +536,8 @@ The validation result according to our example schema validation file:

![Screen Shot 2023-04-16 at 15 53 06](https://user-images.githubusercontent.com/34595361/233154924-c31a76f4-86f5-4ed3-a1ec-750b642927e6.png)

## Need any help ?
## Need any help?

This is the end of demonstration of the authorization structure for Facebook groups. To install and implement this see the [Set Up Permify](../../installation.md) section.
This is the end of the demonstration of the authorization structure for Notion. To install and implement this see the [Set Up Permify](../../installation.md) section.

If you need any kind of help, our team is happy to help you get started with Permify. If you'd like to learn more about using Permify in your app or have any questions about it, [schedule a consultation call with one of our account executives](https://www.permify.co/book-demo).
Loading