Skip to content

[LFXV2-1505] Add per-artifact viewer relations to v1_past_meeting FGA type#129

Merged
andrest50 merged 6 commits into
mainfrom
fix/LFXV2-1505-artifact-viewer-relations
Apr 23, 2026
Merged

[LFXV2-1505] Add per-artifact viewer relations to v1_past_meeting FGA type#129
andrest50 merged 6 commits into
mainfrom
fix/LFXV2-1505-artifact-viewer-relations

Conversation

@andrest50
Copy link
Copy Markdown
Contributor

@andrest50 andrest50 commented Apr 14, 2026

Summary

Adds recording_viewer, transcript_viewer, and ai_summary_viewer relations to the v1_past_meeting FGA type. Each is backed by three self-referential past_meeting_for_*_view reference relations that delegate to the existing host/attendee/invitee roles.

This unblocks the companion meeting-service change (linuxfoundation/lfx-v2-meeting-service#146) which writes FGA tuples using these new relations when a past meeting's recording_access, transcript_access, or ai_summary_access is set.

Deploy order: This helm change should be deployed before or simultaneously with the meeting-service PR, as the service will start writing tuples using these relation names.

Ticket

LFXV2-1505

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings April 14, 2026 20:36
@andrest50 andrest50 requested review from a team and emsearcy as code owners April 14, 2026 20:36
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 14, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Removed artifact-specific types for recording, transcript, and summary and moved their conditional relations into v1_past_meeting, adding per-artifact participant/attendee/host-scoped relations and aggregate recording_viewer, transcript_viewer, and ai_summary_viewer definitions on v1_past_meeting.

Changes

Cohort / File(s) Summary
OpenFGA Authorization Model
charts/lfx-platform/templates/openfga/model.yaml
Bumped OpenFGA request version. Removed v1_past_meeting_recording, v1_past_meeting_transcript, and v1_past_meeting_summary types. Added per-artifact conditional relations on v1_past_meeting (past_meeting_for_participant_*, past_meeting_for_attendee_*, past_meeting_for_host_*) and aggregate viewer relations: recording_viewer, transcript_viewer, ai_summary_viewer (include user:*, organizer, auditor, invitee/attendee/host references).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and specifically describes the main change: adding per-artifact viewer relations to the v1_past_meeting FGA type.
Description check ✅ Passed The description is directly related to the changeset, explaining the new relations added, their purpose, and deployment considerations with the companion meeting-service PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/LFXV2-1505-artifact-viewer-relations

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
charts/lfx-platform/templates/openfga/model.yaml (1)

25-28: ⚠️ Potential issue | 🟡 Minor

Increment the minor version to reflect the added relations.

The version remained at 10.0.0 despite adding 12 new relations to v1_past_meeting. Per the versioning guidelines (lines 15-19), additions of relations require a minor version bump. Change the version to 10.1.0.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@charts/lfx-platform/templates/openfga/model.yaml` around lines 25 - 28,
Update the OpenFGA model version block to reflect the added relations by bumping
the minor version from 10.0.0 to 10.1.0; specifically edit the version:
major/minor/patch mapping in the model.yaml (the version block) so minor becomes
1, ensuring the change aligns with the additions to the v1_past_meeting
relations.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@charts/lfx-platform/templates/openfga/model.yaml`:
- Around line 25-28: Update the OpenFGA model version block to reflect the added
relations by bumping the minor version from 10.0.0 to 10.1.0; specifically edit
the version: major/minor/patch mapping in the model.yaml (the version block) so
minor becomes 1, ensuring the change aligns with the additions to the
v1_past_meeting relations.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f3160c5c-aabb-458d-b3fe-f69d97304e09

📥 Commits

Reviewing files that changed from the base of the PR and between a575e9f and 476940e.

📒 Files selected for processing (1)
  • charts/lfx-platform/templates/openfga/model.yaml

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates the OpenFGA authorization model to support per-artifact access control on v1_past_meeting, enabling the meeting service to write tuples for recording, transcript, and AI summary access independently of the base viewer relation.

Changes:

  • Added recording_viewer, transcript_viewer, and ai_summary_viewer relations to v1_past_meeting.
  • Added conditional, self-referential past_meeting_for_*_*_view reference relations to gate artifact access by host/attendee/invitee roles.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread charts/lfx-platform/templates/openfga/model.yaml
Comment thread charts/lfx-platform/templates/openfga/model.yaml
… type

Add recording_viewer, transcript_viewer, and ai_summary_viewer relations to
v1_past_meeting, each backed by self-referential past_meeting_for_*_view
reference relations that delegate to the existing host/attendee/invitee roles.

This allows the meeting service to express per-artifact access settings
(recording_access, transcript_access, ai_summary_access) as named tuples on
the parent past meeting object rather than scattering them across per-artifact
FGA objects.

Generated with [Claude Code](https://claude.ai/code)

Signed-off-by: Andres Tobon <andrest2455@gmail.com>
@andrest50 andrest50 force-pushed the fix/LFXV2-1505-artifact-viewer-relations branch from 476940e to 3fec56e Compare April 14, 2026 20:40
…ial flag tuples

Document the expected tuple shape for the per-artifact conditional access
relations so it is clear how the meeting service is expected to write them.
Also clarify that "participant" access level means invitee+attendee.

Declined to rename past_meeting_for_participant_*_view: "participant" is the
access level name (invitee OR attendee), which matches the recording_access /
transcript_access / ai_summary_access vocabulary in the meeting service.

Generated with [Claude Code](https://claude.ai/code)

Signed-off-by: Andres Tobon <andrest2455@gmail.com>
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@charts/lfx-platform/templates/openfga/model.yaml`:
- Around line 304-325: You added new relations to the type v1_past_meeting but
did not bump the authorization model version; update the model version string
(currently "10.1.0") to the next minor version (e.g., "10.2.0") in the model
header so the schema change is versioned alongside the new relations (ensure the
version field that declares the model version is updated wherever it appears).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 3da2b440-4fec-49be-b4b1-8ea1f08a0ddc

📥 Commits

Reviewing files that changed from the base of the PR and between 3fec56e and 5e98694.

📒 Files selected for processing (1)
  • charts/lfx-platform/templates/openfga/model.yaml

Comment thread charts/lfx-platform/templates/openfga/model.yaml
…ry FGA types

These three artifact types are no longer needed. Access control for recordings,
transcripts, and AI summaries is now handled entirely via named relations on
v1_past_meeting (recording_viewer, transcript_viewer, ai_summary_viewer) using
self-referential flag tuples. No Heimdall ruleset or query service references
to these types remain.

Generated with [Claude Code](https://claude.ai/code)

Signed-off-by: Andres Tobon <andrest2455@gmail.com>
Removing three FGA types (v1_past_meeting_recording, v1_past_meeting_transcript,
v1_past_meeting_summary) is a major change per versioning guidelines.

Generated with [Claude Code](https://claude.ai/code)

Signed-off-by: Andres Tobon <andrest2455@gmail.com>
Resolve merge conflict and bump minor version for new relations added
to v1_past_meeting FGA type.

Generated with [Claude Code](https://claude.ai/code)

Signed-off-by: Andres Tobon <andrest2455@gmail.com>
Copilot AI review requested due to automatic review settings April 23, 2026 20:44
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread charts/lfx-platform/templates/openfga/model.yaml
jordane
jordane previously approved these changes Apr 23, 2026
…ionships

Keep v1_past_meeting_recording, v1_past_meeting_transcript, and
v1_past_meeting_summary types in the authorization model since existing
tuples referencing these types are still active and must not be broken
before the new per-artifact relations are fully patched in.

Generated with [Claude Code](https://claude.ai/code)

Signed-off-by: Andres Tobon <andrest2455@gmail.com>
@andrest50 andrest50 merged commit 24b1e33 into main Apr 23, 2026
7 checks passed
@andrest50 andrest50 deleted the fix/LFXV2-1505-artifact-viewer-relations branch April 23, 2026 22:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants