Tiptap Collaboration and General Authorization Policies #77
calebbourg
started this conversation in
New Feature Design
Replies: 1 comment
-
@calebbourg Your proposal looks great, thank you for proposing it. Adding some flow charts to your original proposal to help us visualize it. Some follow-up questions I have:
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Tiptap
Tiptap requires 2 pieces of information to successfully load an existing document:
name
: An arbitrary string, which uniquely identifies a documentname
can take any string value. Values likejim-caleb-1
, orjim/{UUID}
or{UUID/UUID}
are all validtoken
: A signed JWT which includes information describing which documents the holder (user) of the JWT can accesstoken
can include aallowedDocumentNames
field which is an array of documentname
s for which the holder of the JWT can access.allowedDocumentNames
supports wildcard patterns. Ex.jim-caleb/*
which would allow the holder of the JWT to access all documents that have names that start withjim-caleb/
Ex.jim-caleb/{coaching_session_id}
General Authorization Policies
We can categorize all current resources represented in the system into 3 groups:
Other things to note:
note
is created by a User in the context of a Coaching Relationship within an Organizationnote
s for their personal use within the platform.Proposal
General
visibility
enum with (to start) variantsSelf
,coaching_relationship
, andorganization
visibility: Self
will be considered private and only accessible by the User that created the resource.visibility: coaching_relationship
will be accessible to each User associated with thecoaching_relationship
to which the resource belongs.visibility
ofcoaching_relationship
Tiptap
note
or acoaching_session
but not directly associated with both.slug
column toorganizations
andcoaching_relationships
tables.slug
s and terminated with the UUID of the owning resource. Ex{organization_slug/{coaching_relationship_slug}/{note_UUID}
allowedDocumentNames: ["jim-hodapp-coaching/jim-caleb/*"]
which would allow Caleb access to all Tiptap documents associated with thejim-caleb
Coaching RelationshipDiagrams
General
TipTap
Beta Was this translation helpful? Give feedback.
All reactions