Skip to content

Commit 33957ce

Browse files
committed
docs: incorporate authorisation data into ref relation
1 parent e41f0ee commit 33957ce

File tree

4 files changed

+27
-64
lines changed

4 files changed

+27
-64
lines changed

redirects.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,5 @@ howto/migrate_models_internal/ howto/manage-models/
3030
howto/add_controller/ howto/manage-juju-controllers/
3131
howto/setup_ingress_with_tls/ howto/manage-jimm-controllers/
3232
howto/setup_dashboard/ howto/manage-jimm-controllers/
33-
howto/bootstrap_permissions/ howto/manage-jimm-controllers/
33+
howto/bootstrap_permissions/ howto/manage-jimm-controllers/
34+
reference/jaas/authorisation_data/ reference/relation/

reference/group.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ where `group id` represents the unique identifier of the group.
1919

2020

2121
(list-of-group-relations)=
22-
## Group relations
22+
## List of group relations
2323
> See first: {ref}`relation`
2424
2525
(group-relation-member)=

reference/jaas/authorisation_data.md

Lines changed: 0 additions & 60 deletions
This file was deleted.

reference/relation.md

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,30 @@
22
# Relation
33
> See also: {ref}`manage-relations`
44
5-
In JAAS, like in [OpenFGA](https://openfga.dev/docs/concepts#what-is-a-relation), a relation is about Relation Based Access Control (**ReBAC**) and describes the relationship between two entities.
5+
In JAAS, following [Relation Based Access Control (**ReBAC**)](https://en.wikipedia.org/wiki/Relationship-based_access_control) and using [OpenFGA](https://openfga.dev/docs/concepts#what-is-a-relation), a relation is a tuple that represents the relationship between two entities A and B, where
6+
7+
- entity A ('object') is the entity that receives (or uses) the relationship and
8+
- entity B ('target') is the entity that provides the relationship, and
9+
- the relationship itself is about permission for A to perform an action on B; that is, a relation represents an entitlement of A on B.
10+
11+
For example, if a `user` named `[email protected]` has the `member` relation with a group named `foo`, then the tuple that represents this relation will look like this:
12+
13+
```yaml
14+
object: user:[email protected]
15+
relation: member
16+
target: group:foo
17+
```
18+
19+
This reads as: "an entity of type `user`, named `[email protected]`, has the `member` relationship to an entity of type `group`, named `foo`.
20+
21+
> See more: {ref}`list-of-controller-relations`, {ref}`list-of-cloud-relations`, {ref}`list-of-model-relations`, {ref}`list-of-offer-relations`, {ref}`list-of-service-account-relations`, {ref}`list-of-role-relations`, {ref}`list-of-group-relations`
22+
23+
24+
25+
```{note}
26+
**JAAS vs. OpenFGA.**
27+
JAAS terminology is slightly different from OpenFGA. In OpenFGA, entity A and entity B are called 'user' and 'object', but in JAAS, they are called 'object' and 'target'.
28+
```
629

730

831
```{important}
@@ -13,4 +36,3 @@ JAAS relations have nothing to the with {external+juju:ref}`Juju relations <rela
1336
JAAS relations are currently similar to {external+juju:ref}`Juju access levels <user-access-levels>` -- they're both about permissions. The difference is that the relation paradigm is much broader; the list of relations is anticipated to become a superset of Juju access levels; and, while Juju access levels are always about a user's permissions on a controller, cloud, model, or offer, JAAS relations encompass many more entities on both sides, e.g., groups, roles, and service accounts.
1437
```
1538

16-
> See more: {ref}`list-of-controller-relations`, {ref}`list-of-cloud-relations`, {ref}`list-of-model-relations`, {ref}`list-of-offer-relations`, {ref}`list-of-service-account-relations`, {ref}`list-of-role-relations`, {ref}`list-of-group-relations`

0 commit comments

Comments
 (0)