Skip to content

Commit da8b059

Browse files
committed
Fix update_access message payloads for past meeting artifacts
Update the recording, transcript, and summary access_update playbooks to only include the required fields for access control instead of sending the entire data payload. Each now includes: - Recording: id, meeting_and_occurrence_id, recording_access, participants - Transcript: id, meeting_and_occurrence_id, transcript_access, participants - Summary: id, meeting_and_occurrence_id, summary_access, participants The participants field includes the V1PastMeetingParticipant structure with lf_sso (username), host status, is_invited, and is_attended fields for proper access control in OpenFGA. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Signed-off-by: Andres Tobon <[email protected]>
1 parent fc01e57 commit da8b059

File tree

1 file changed

+42
-3
lines changed

1 file changed

+42
-3
lines changed

playbooks/v1_meetings/umbrella_board_meeting/board_meeting.yaml

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,20 @@ buf_board_past_meeting_{{ past_meeting_index }}_recording_access_update:
423423
# Add past meeting recording relationships in OpenFGA (via fga-sync).
424424
subject: lfx.update_access.v1_past_meeting_recording
425425
steps:
426-
- json: !ref buf_board_past_meeting_{{ past_meeting_index }}_recording_create.steps[0].json.data
426+
- json:
427+
# Only include the fields needed for access control
428+
id: !ref buf_board_past_meeting_{{ past_meeting_index }}_recording_create.steps[0].json.data.meeting_and_occurrence_id
429+
meeting_and_occurrence_id: !ref buf_board_past_meeting_{{ past_meeting_index }}_recording_create.steps[0].json.data.meeting_and_occurrence_id
430+
recording_access: public
431+
participants:
432+
{% for i in range(board_member_count) %}
433+
{% if member_has_username[i] %}
434+
- lf_sso: !ref "buf_board_meeting_committee_participants_create.steps[{{ i }}].json.data.username"
435+
host: !ref "buf_board_meeting_committee_participants_create.steps[{{ i }}].json.data.host"
436+
is_invited: true
437+
is_attended: !ref "buf_board_past_meeting_{{ past_meeting_index }}_participants_create.steps[{{ i }}].json.data.is_attended"
438+
{% endif %}
439+
{% endfor %}
427440

428441
buf_board_past_meeting_{{ past_meeting_index }}_transcript_create:
429442
type: nats-publish
@@ -497,7 +510,20 @@ buf_board_past_meeting_{{ past_meeting_index }}_transcript_access_update:
497510
# Add past meeting transcript relationships in OpenFGA (via fga-sync).
498511
subject: lfx.update_access.v1_past_meeting_transcript
499512
steps:
500-
- json: !ref buf_board_past_meeting_{{ past_meeting_index }}_transcript_create.steps[0].json.data
513+
- json:
514+
# Only include the fields needed for access control
515+
id: !ref buf_board_past_meeting_{{ past_meeting_index }}_transcript_create.steps[0].json.data.meeting_and_occurrence_id
516+
meeting_and_occurrence_id: !ref buf_board_past_meeting_{{ past_meeting_index }}_transcript_create.steps[0].json.data.meeting_and_occurrence_id
517+
transcript_access: public
518+
participants:
519+
{% for i in range(board_member_count) %}
520+
{% if member_has_username[i] %}
521+
- lf_sso: !ref "buf_board_meeting_committee_participants_create.steps[{{ i }}].json.data.username"
522+
host: !ref "buf_board_meeting_committee_participants_create.steps[{{ i }}].json.data.host"
523+
is_invited: true
524+
is_attended: !ref "buf_board_past_meeting_{{ past_meeting_index }}_participants_create.steps[{{ i }}].json.data.is_attended"
525+
{% endif %}
526+
{% endfor %}
501527

502528
{% set summary_create_time = fake.date_time_between(
503529
start_date=occurrence_actual_end,
@@ -564,7 +590,20 @@ buf_board_past_meetings_{{ past_meeting_index }}_summary_access_update:
564590
# The past meeting AI summary (to fga-sync).
565591
subject: lfx.update_access.v1_past_meeting_summary
566592
steps:
567-
- json: !ref buf_board_past_meeting_{{ past_meeting_index }}_summary_create.steps[0].json.data
593+
- json:
594+
# Only include the fields needed for access control
595+
id: !ref buf_board_past_meeting_{{ past_meeting_index }}_summary_create.steps[0].json.data.id
596+
meeting_and_occurrence_id: !ref buf_board_past_meeting_{{ past_meeting_index }}_summary_create.steps[0].json.data.meeting_and_occurrence_id
597+
summary_access: public
598+
participants:
599+
{% for i in range(board_member_count) %}
600+
{% if member_has_username[i] %}
601+
- lf_sso: !ref "buf_board_meeting_committee_participants_create.steps[{{ i }}].json.data.username"
602+
host: !ref "buf_board_meeting_committee_participants_create.steps[{{ i }}].json.data.host"
603+
is_invited: true
604+
is_attended: !ref "buf_board_past_meeting_{{ past_meeting_index }}_participants_create.steps[{{ i }}].json.data.is_attended"
605+
{% endif %}
606+
{% endfor %}
568607

569608
#
570609
# Add participants for past meeting occurrence #{{ past_meeting_index }}.

0 commit comments

Comments
 (0)