-
Notifications
You must be signed in to change notification settings - Fork 2
[LFXV2-631] Store past meeting artifacts as independent objects #23
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
Conversation
Updated past meeting recording and summary enrichers to use their own object type permissions instead of inheriting from past meeting object. Changes: - PastMeetingRecordingEnricher: Uses past_meeting_recording_uid and ObjectTypePastMeetingRecording for access/history checks - PastMeetingSummaryEnricher: Uses past_meeting_summary_uid and ObjectTypePastMeetingSummary for access/history checks This allows independent permission management for meeting artifacts. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Signed-off-by: Andres Tobon <[email protected]>
Created new enricher to store meeting transcripts as separate objects with their own permissions instead of as part of past meeting objects. Changes: - Added PastMeetingTranscriptEnricher with object-specific permissions - Uses past_meeting_transcript_uid for access/history checks - Added ObjectTypePastMeetingTranscript constant - Follows same pattern as recording and summary enrichers This enables independent permission management and indexing for meeting transcripts. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Signed-off-by: Andres Tobon <[email protected]>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Signed-off-by: Andres Tobon <[email protected]>
WalkthroughIntroduces a new PastMeetingTranscript enricher, registers it in the IndexerService, and adds a corresponding object-type constant. Updates access-control logic for past meeting recording and summary enrichers to use recording- and summary-specific UIDs. Also bumps the Helm chart version from 0.4.4 to 0.4.5. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Producer as Event Producer
participant Indexer as IndexerService
participant Registry as EnricherRegistry
participant PMT as PastMeetingTranscriptEnricher
participant Def as DefaultEnricher
participant FGA as AuthZ (FGA Query)
Producer->>Indexer: Submit transaction (past_meeting_transcript)
Indexer->>Registry: Resolve enricher for ObjectTypePastMeetingTranscript
Registry-->>Indexer: PastMeetingTranscriptEnricher
Indexer->>PMT: EnrichData(body, tx)
rect rgba(200,235,255,0.3)
note over PMT: Compute access control
PMT->>PMT: If past_meeting_transcript_uid present\nbuild UID-based object
PMT->>PMT: Default relations (viewer/writer) if missing
PMT->>FGA: Build AccessCheckQuery (if object+relation)
PMT->>FGA: Build HistoryCheckQuery (if object+relation)
end
PMT->>Def: Delegate core enrichment
Def-->>PMT: Enriched payload
PMT-->>Indexer: Result
Indexer-->>Producer: Ack/Result
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing touches
🧪 Generate unit tests
Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR refactors the permission model for past meeting artifacts by making recordings, summaries, and transcripts independent objects with their own permissions instead of inheriting from the parent past meeting object.
- Adds a new transcript enricher to handle transcript objects as separate entities
- Updates recording and summary enrichers to use object-specific UIDs and permissions
- Introduces
ObjectTypePastMeetingTranscriptconstant for the new transcript object type
Reviewed Changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| pkg/constants/messaging.go | Adds new ObjectTypePastMeetingTranscript constant |
| internal/enrichers/past_meeting_transcript_enricher.go | New enricher for handling transcript objects with independent permissions |
| internal/enrichers/past_meeting_summary_enricher.go | Updates to use past_meeting_summary_uid instead of past_meeting_uid |
| internal/enrichers/past_meeting_recording_enricher.go | Updates to use past_meeting_recording_uid instead of past_meeting_uid |
| internal/domain/services/indexer_service.go | Registers the new transcript enricher |
| charts/lfx-v2-indexer-service/Chart.yaml | Version bump to 0.4.5 |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Summary
Changes
Permission Model Updates
past_meeting_recording_uidandObjectTypePastMeetingRecordingfor access/history checkspast_meeting_summary_uidandObjectTypePastMeetingSummaryfor access/history checkspast_meeting_transcript_uidandObjectTypePastMeetingTranscriptNew Files
internal/enrichers/past_meeting_transcript_enricher.go- New enricher for transcript objectsModified Files
internal/enrichers/past_meeting_recording_enricher.go- Updated permission logicinternal/enrichers/past_meeting_summary_enricher.go- Updated permission logicinternal/domain/services/indexer_service.go- Registered transcript enricherpkg/constants/messaging.go- AddedObjectTypePastMeetingTranscriptconstantcharts/lfx-v2-indexer-service/Chart.yaml- Version bump to 0.4.5Ticket
LFXV2-631
🤖 Generated with Claude Code