-
Notifications
You must be signed in to change notification settings - Fork 1
Andres: Add v1 meeting mock data #4
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
Signed-off-by: Eric Searcy <[email protected]>
Signed-off-by: Eric Searcy <[email protected]>
Signed-off-by: Eric Searcy <[email protected]>
Transcript and recordings are split from the same data model. Indexer steps are first now, followed by simple !ref steps for access updates. Participants without LFIDs are skipped for access updates. Signed-off-by: Eric Searcy <[email protected]>
- Add PyJWT and cryptography dependencies for JWT token creation - Implement JWTGenerator class with key=value argument parsing - Support automatic key ID fetching from Heimdall JWKS endpoint - Add --jwt-rsa-secret and --jwt-key-id command line arguments - Replace lorem and names_generator with faker in playbooks - Remove uuid from Jinja environment, use faker.uuid4 instead - Add comprehensive JWT macro documentation and examples - Ensure type safety with proper RSA private key validation The !jwt macro accepts arguments like: bearer=true,aud=service-name,principal=clients@m2m_helper,[email protected] 🤖 Assisted with [GitHub Copilot](https://github.com/features/copilot) (via Zed) Signed-off-by: Eric Searcy <[email protected]>
Signed-off-by: Eric Searcy <[email protected]>
Signed-off-by: Eric Searcy <[email protected]>
Signed-off-by: Eric Searcy <[email protected]>
Signed-off-by: Eric Searcy <[email protected]>
Signed-off-by: Andres Tobon <[email protected]>
Signed-off-by: Eric Searcy <[email protected]>
…to v1-meetings-mock
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]>
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 adds comprehensive v1 meeting mock data generation capabilities and replaces manual JWT token generation with an automated !jwt YAML macro. The changes introduce JWT token signing with RSA keys, caching for performance, and a complete board meeting playbook with past meetings, recordings, transcripts, and summaries.
Key Changes
- Implemented
!jwtYAML macro for automatic JWT token generation with RSA PS256 signing - Added complete v1 meeting data structures including scheduled meetings, past occurrences, participants, recordings, transcripts, and AI summaries
- Replaced
names-generatorandpython-loremdependencies with equivalent Faker methods for better consistency
Reviewed Changes
Copilot reviewed 10 out of 11 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| uv.lock | Added cryptography, pyjwt, and cffi dependencies; removed names-generator and python-lorem |
| pyproject.toml | Updated project dependencies to match lock file changes |
| src/lfx_v2_mockdata/init.py | Implemented JWTGenerator class with caching, added b64encode helper, removed deprecated imports |
| playbooks/v1_meetings/umbrella_board_meeting/board_meeting.yaml | New comprehensive board meeting playbook with 3 past meetings and full artifact generation |
| playbooks/projects/recreate_root_project/root.yaml | Replaced uuid() call with fake.uuid4() |
| playbooks/projects/extra_projects/n_depth.yaml | Replaced generate_name() and lorem with Faker equivalents, updated JWT authentication |
| playbooks/projects/base_projects/3_umbrellas.yaml | Replaced generate_name() and lorem with Faker equivalents, updated JWT authentication |
| playbooks/projects/base_projects/2_incorporated.yaml | Replaced generate_name() and lorem with Faker equivalents, updated JWT authentication |
| playbooks/projects/base_projects/1_tlf.yaml | Updated to use JWT macro for authentication |
| playbooks/committees/base_committees/buf_committees.yaml | Updated to use JWT macro, increased board member count to 8, fixed role assignment logic |
| README.md | Updated authentication documentation to explain JWT secret usage and removed old token generation instructions |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
playbooks/v1_meetings/umbrella_board_meeting/board_meeting.yaml
Outdated
Show resolved
Hide resolved
playbooks/v1_meetings/umbrella_board_meeting/board_meeting.yaml
Outdated
Show resolved
Hide resolved
- Split long docstring example line to stay under 88 character limit - Remove unused global _jwt_cache declaration in generate_jwt method 🤖 Generated with [Claude Code](https://claude.com/claude-code) Signed-off-by: Andres Tobon <[email protected]>
This is an extension of #3. The PR adds a mock data loader for v1 meeting data.