Skip to content

Commit 3743df6

Browse files
committed
ran through spellcheck
1 parent 3dec02b commit 3743df6

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

docs/getting-started/modeling.mdx

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ This is facilitated by our relationship-based access control (ReBAC), which allo
99

1010
## Permify Schema
1111

12-
Permify has its own language that you can model your authorization logic with it. The language allows you to define arbitrary relations between users and objects.
12+
Permify has its own language that you can model your authorization logic with. The language allows you to define arbitrary relations between users and objects.
1313

1414
You can assign users associate them with arbitrary objects representing application concepts, such as teams, organizations, or stores.
1515

@@ -19,7 +19,7 @@ You can also use dynamic attributes in your authorization model, such as boolean
1919

2020
![modeling-authorization](https://raw.githubusercontent.com/Permify/permify/master/assets/permify-dsl.gif)
2121

22-
You can define your entities, relations between them and access control decisions with using the Permify Schema language. It includes set-algebraic operators such as intersection and union. These allow you to specify complex access control policies in terms of user-object relations.
22+
You can define your entities, relations between them and access control decisions using the Permify Schema language. It includes set-algebraic operators such as intersection and union. These allow you to specify complex access control policies in terms of user-object relations.
2323

2424
Here’s a simple breakdown of our schema.
2525

@@ -29,7 +29,7 @@ Permify Schema can be created on our [playground](https://play.permify.co/) as w
2929

3030
## Developing a Schema
3131

32-
This guide will show how to develop a Permify Schema from scratch with an example. It's relative simple, yet it will illustrate almost every aspect of the modeling language.
32+
This guide will show how to develop a Permify Schema from scratch with an example. It's relatively simple, yet it will illustrate almost every aspect of the modeling language.
3333

3434
We'll follow a simplified version of the GitHub access control system, where teams and organizations have control over the viewing, editing, or deleting access rights for their repositories.
3535

@@ -58,7 +58,7 @@ You can start developing Permify Schema on [VSCode]. You can install the extensi
5858

5959
The first step to building Permify Schema is creating entities. An entity is an object that defines your resources which hold roles in your permission system.
6060

61-
Think of entities as tables in your database. It is strongly recommended to ngly advice to name entities the same as the corresponding database table name. Doing so allows you to model and reason about your authorization and eliminate the possibility of error.
61+
Think of entities as tables in your database. It is strongly recommended to name entities the same as the corresponding database table name. Doing so allows you to model and reason about your authorization and eliminate the possibility of error.
6262

6363
You can create entities using the `entity` keyword. Let's create some entities for our example GitHub authorization logic.
6464

@@ -82,7 +82,7 @@ Entities have a number of different types of properties. These are:
8282

8383
Relations represent relationships between entities. It's the most critical part of the schema because Permify is based on relations between resources and their permissions.
8484

85-
Use the keyword `relation` to create a entity relation with the `name` and `type` properties.
85+
Use the keyword `relation` to create an entity relation with the `name` and `type` properties.
8686

8787
**Relation Attributes:**
8888

@@ -101,7 +101,7 @@ Let's turn back to our example and define relations inside our entities:
101101

102102
### User Entity
103103

104-
→ The user entity is a mandatory entity in Permify. It generally will be empty, but it will used in other entities as a relation type referencing users.
104+
→ The user entity is a mandatory entity in Permify. It generally will be empty, but it will be used in other entities as a relation type referencing users.
105105

106106
```perm
107107
entity user {}
@@ -124,7 +124,7 @@ entity organization {
124124

125125
### Parent-Child Relationship
126126

127-
→ Let's say teams can belong organizations and can have members. We model that as follows:
127+
→ Let's say teams can belong to organizations and can have members. We model that as follows:
128128

129129
```perm
130130
entity organization {
@@ -159,7 +159,7 @@ entity repository {
159159
}
160160
```
161161

162-
The owner relation indicates the creator of the repository. This is how you can defin **ownership** in a Permify schema.
162+
The owner relation indicates the creator of the repository. This is how you can define **ownership** in a Permify schema.
163163

164164
### Multiple Relation Types
165165

@@ -199,7 +199,7 @@ You then can specify not only individual users but also members of an organizati
199199
- organization:1#viewer@user:U2
200200
- organization:1#viewer@organization:O1#member
201201

202-
With `organization:1#viewer@organization:O1#member` all members of the organization O1 will have the right to perform the defined action. In this case, all members in O1 now have the `viewer` relation.
202+
With `organization:1#viewer@organization:O1#member`, all members of the organization O1 will have the right to perform the defined action. In this case, all members in O1 now have the `viewer` relation.
203203

204204
These definitions prevent you from creating undesired user set relationships.
205205

@@ -250,11 +250,11 @@ The same `read` can also be defined using the **permission** keyword, as follows
250250
permission read = org.admin and (owner or maintainer or org.member)
251251
```
252252

253-
Using the `action` or `permission` keywords yields the same authorization logic. We have two keywords for defining an permission because most, but not all, permissions are based on actions. Learn more in our [Nested Hierarchies](/modeling-guides/rebac/impersonation) section.
253+
Using the `action` or `permission` keywords yields the same authorization logic. We have two keywords for defining a permission because most, but not all, permissions are based on actions. Learn more in our [Nested Hierarchies](/modeling-guides/rebac/impersonation) section.
254254
</Note>
255255

256256
The `and` operation creates an intersection between relations but is not tied to specific entities.
257-
TODO is there a way to do tie it to specific entities?
257+
TODO is there a way to tie it to specific entities?
258258

259259
For example, in the following model, users can see a repository if they are a member or admin of any organization.
260260

@@ -432,7 +432,7 @@ entity repository {
432432
}
433433
```
434434

435-
As shown in the example, this rule is part of the the `edit` permission of the repository. This lets you check whether an organization:X has repository edit access, depending on the authority level the organization possesses relative to the repository.
435+
As shown in the example, this rule is part of the `edit` permission of the repository. This lets you check whether an organization:X has repository edit access, depending on the authority level the organization possesses relative to the repository.
436436

437437
<Note>
438438
We designed our schema language based on [Common Expression Language (CEL)](https://github.com/google/cel-go). The syntax looks nearly identical to equivalent expressions in C++, Go, Java, and TypeScript.
@@ -470,10 +470,10 @@ You can also check out comprehensive schema examples from the [Real World Exampl
470470
Here is what each example focuses on,
471471

472472
- [Google Docs]: how users can gain direct access to a document through **organizational roles** or through **inherited/nested permissions**.
473-
- [Facebook Groups]: how users can perform various actions based on the **roles and permissions within the groups** they belong.
473+
- [Facebook Groups]: how users can perform various actions based on the **roles and permissions within the groups** to which they belong.
474474
- [Notion]: how **one global entity (workspace) can manage access rights** in the child entities that belong to it.
475-
- [Instagram]: how **public/private attributes** play role in granting access to specific users.
476-
- [Mercury]: how **attributes and rules interact within the hierarchical relationships**.
475+
- [Instagram]: how **public/private attributes** can play a role in granting access to specific users.
476+
- [Mercury]: how **attributes and rules** interact within the hierarchical relationships.
477477

478478
[Google Docs]: ./examples/google-docs
479479
[Facebook Groups]: ./examples/facebook-groups

0 commit comments

Comments
 (0)