Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add documentation for SpiceDB Dedicated Fine-Grained Access Management #104

Merged
merged 4 commits into from
Mar 29, 2023

Conversation

vroldanbet
Copy link
Contributor

@vroldanbet vroldanbet commented Mar 23, 2023

The main goal of this PR is to add documentation for SpiceDB Dedicated's new Fine-Grained Access Management documentation. It does a bunch of changes to the sidebar structure too, to better start distinguishing Dedicated vs SpiceDB docs

image
image

@vercel
Copy link

vercel bot commented Mar 23, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated
docs ✅ Ready (Inspect) Visit Preview 💬 Add your feedback Mar 29, 2023 at 6:15PM (UTC)

@vroldanbet vroldanbet self-assigned this Mar 23, 2023
@vroldanbet vroldanbet changed the title add documentation for SpiceDB Dedicated - FGAM add documentation for SpiceDB Dedicated Fine-Grained Access Management Mar 23, 2023
@vroldanbet vroldanbet marked this pull request as ready for review March 23, 2023 11:57
- support goes to the bottom, is probably not
  the first item folks entering Authzed/SpiceDB
  world want to see
- given we are going to put additional top level
  product pages, add gRPC and REST as
  children of the SpiceDB section
- rename API Reference in references section
  to gRPC API Reference, and add HTTP as well
this also adds a sidebar entry for
SpiceDB Dedicated
sidebars.js Outdated
Comment on lines 4 to 14
{
type: 'link',
label: 'gRPC API Reference',
href: 'https://buf.build/authzed/api/docs/main:authzed.api.v1',
},
{
type: 'link',
label: 'REST API Reference',
href: 'https://www.postman.com/authzed/workspace/spicedb/overview',
},
'support',
Copy link
Member

Choose a reason for hiding this comment

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

These were all explicitly at the top due to their importance.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I understood that. The main motivation to this change is that our docs are going to grow as we document APIs exclusive to SpiceDB Dedicated and SpiceDB Cloud. Folks will have to expand the SpiceDB menu to find them.

Admittedly I don't understand how this is going to affect the discoverability of these entries

@@ -0,0 +1,141 @@
# Fine-Grained Access Management

With SpiceDB Fine Grained Access Management (FGAM) you can authorize access to your permission system using the familar RBAC (Role-Based Access Control) paradigm. The basic concepts are:
Copy link
Member

Choose a reason for hiding this comment

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

Try and keep one sentence per line. It'll make diffs and suggestions easier in the long term.

Let's avoid calling it "SpiceDB Fine Grained Access Management" and instead just refer to it as "Fine-Grained Access Management".

I took a stab at this opening few sentences to include a reference to IAM.

Fine Grained Access Management is an optional feature used to manage the access to permission systems deployed with SpiceDB Dedicated.
Those familiar with configuring IAM on any major cloud provider should feel comfortable with the basic concepts:

  • Service Accounts represent workloads (e.g. an application calling the SpiceDB API)
  • Roles grant access to APIs and subsets of relationships using [CEL expressions]
  • Policies bind a Service Account to a Role

docs/spicedb-dedicated/fgam.md Outdated Show resolved Hide resolved
docs/spicedb-dedicated/fgam.md Outdated Show resolved Hide resolved
docs/spicedb-dedicated/fgam.md Outdated Show resolved Hide resolved
docs/spicedb-dedicated/fgam.md Outdated Show resolved Hide resolved
docs/spicedb-dedicated/fgam.md Outdated Show resolved Hide resolved
docs/spicedb-dedicated/fgam.md Outdated Show resolved Hide resolved

Any of the public API types will be avaliable to the expression language, so you can traverse any type and their fields using language operators. For more details on CEL's language definition, please refer to [CEL's language specification](https://github.com/google/cel-spec/blob/81e07d7cf76e7fc89b177bd0fdee8ba6d6604bf5/doc/langdef.md).

## Example: assign read-only role to service account
Copy link
Member

Choose a reason for hiding this comment

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

I think this section is the only one that should include screenshots.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

you mean instead of GIFs?


## Example: assign read-only role to service account

Let's illustrate how you can create a read-only role for your service. You should start by making sure your Permission System has Fine-Grained Access Management enabled. This can be done at permission system creation time, by enabling the corresponding option.
Copy link
Member

Choose a reason for hiding this comment

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

What do you do if already have a permission system?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It's not supported yet.

docs/spicedb-dedicated/fgam.md Show resolved Hide resolved
@jzelinskie jzelinskie merged commit 9fc07bc into main Mar 29, 2023
@jzelinskie jzelinskie deleted the add-fgam-documentation branch March 29, 2023 19:17
@github-actions github-actions bot locked and limited conversation to collaborators Mar 29, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants