Skip to content

Conversation

@andrest50
Copy link
Contributor

This is an extension of #3. The PR adds a mock data loader for v1 meeting data.

emsearcy and others added 13 commits November 14, 2025 15:01
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]>
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]>
@andrest50 andrest50 marked this pull request as ready for review November 19, 2025 17:23
Copilot AI review requested due to automatic review settings November 19, 2025 17:23
Copy link

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

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 !jwt YAML 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-generator and python-lorem dependencies 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.

- 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]>
@andrest50 andrest50 merged commit 5f12b87 into main Nov 19, 2025
4 of 5 checks passed
@andrest50 andrest50 deleted the andrest50/v1-meetings-mock branch November 19, 2025 18:51
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.

4 participants