@@ -11,10 +11,17 @@ metadata:
1111 app.kubernetes.io/component : openfga
1212spec :
1313 instances :
14+ {{/*
15+ Each change to the authorization model should be accompanied by a version bump.
16+ These are the recommended guidelines for versioning :
17+ - major : Modifications, deletions, or additions of type
18+ - minor : Additions or deletions of relations
19+ - patch : Modifications of define
20+ */}}
1421 - version :
15- major : 1
16- minor : 2
17- patch : 1
22+ major : 4
23+ minor : 1
24+ patch : 0
1825 authorizationModel : |
1926 model
2027 schema 1.1
@@ -40,17 +47,38 @@ spec:
4047 relations
4148 define member: [user]
4249 define project: [project]
43- define writer: writer from project
44- define auditor: auditor from project or meeting_coordinator from project
50+ define owner: [user, team#member]
51+ define writer: [user] or owner or writer from project
52+ define auditor: [user, team#member] or auditor from project or meeting_coordinator from project
53+ define viewer: [user:*] or auditor or auditor from project
54+
55+ type groupsio_service
56+ relations
57+ define project: [project]
58+ define owner: owner from project
59+ define writer: writer from project or owner
60+ define auditor: auditor from project or writer
4561 define viewer: [user:*] or auditor from project
4662
63+ type groupsio_mailing_list
64+ relations
65+ define groupsio_service: [groupsio_service] # Parent relationship
66+ define project: project from groupsio_service # Inherit project permissions
67+ define committee: [committee] # Inherit committee permissions
68+ define owner: owner from groupsio_service or owner from committee
69+ define writer: writer from groupsio_service or writer from committee
70+ define auditor: auditor from groupsio_service or auditor from committee
71+ define viewer: viewer from groupsio_service or member from committee
72+
4773 type meeting
4874 relations
4975 define project: [project]
5076 define committee: [committee]
77+ # The auditor relation identifies a user who can audit this meeting.
78+ define auditor: auditor from project
5179 # The organizer relation identifies a user who can manage this one meeting.
5280 # That means they can update the meeting details, invite/uninvite participants, etc.
53- define organizer: [user] or meeting_coordinator from project or writer from project
81+ define organizer: [user] or meeting_coordinator from project or writer from committee or writer from project
5482 # The host relation identifies a user who is a host of this meeting.
5583 # This is different than the organizer relation because an organizer isn't necessarily
5684 # the user who is hosting the meeting, nor is the host necessarily the one who is
6896 # The viewer relation identifies a user who can view this meeting.
6997 # If the meeting is public, then any user can view it; but if it is private, then
7098 # only certain privileged users can view it.
71- define viewer: [user:*] or participant or organizer or auditor from project
99+ define viewer: [user:*] or participant or organizer or auditor
100+
101+ type past_meeting
102+ relations
103+ define project: [project]
104+ define committee: [committee]
105+ # The meeting relation identifies the meeting that this past meeting was created from.
106+ # Note: it is possible that the meeting no longer exists, so having permissions on the
107+ # meeting become obsolete if the meeting is deleted.
108+ define meeting: [meeting]
109+ # The auditor relation identifies a user who can audit this meeting.
110+ define auditor: auditor from project or auditor from meeting
111+ # The organizer relation identifies a user who can manage this one past meeting.
112+ # That means they can update the past meeting details, update the participants, etc.
113+ define organizer: [user] or meeting_coordinator from project or writer from project or organizer from meeting
114+ # The host relation identifies a user who was a host of this past meeting.
115+ define host: [user] or organizer
116+ # The invitee relation identifies a participant who was invited to this past meeting.
117+ define invitee: [user]
118+ # The attendee relation identifies a participant who attended this past meeting.
119+ define attendee: [user]
120+ # The viewer relation identifies a user who can view this past meeting.
121+ # If the past meeting is public, then any user can view it; but if it is private, then
122+ # only certain privileged users can view it.
123+ define viewer: [user:*] or attendee or invitee or organizer or auditor
72124{{- end }}
0 commit comments