Skip to content

Conversation

@asithade
Copy link
Contributor

@asithade asithade commented Dec 2, 2025

Summary

  • Add tags field to all meeting-related NATS publish steps to match the MeetingIndexerMessage structure used by the meeting service
  • Tags enable search functionality in the indexer/OpenSearch
  • Each entity includes both plain UIDs (for broad text search) and prefixed tags (e.g., meeting_uid:, project_uid:) for field-specific searching
  • Align tags with lfx-v1-sync-helper production behavior

Entities updated:

Entity NATS Subject Tags
Meeting lfx.index.v1_meeting meeting_uid, project_uid, committee_uid, meeting_type
Registrant lfx.index.v1_meeting_registrant registrant_uid, meeting_uid, email, username
Past Meeting lfx.index.v1_past_meeting past_meeting_uid, meeting_uid, project_uid, occurrence_id, committee_uid
Participant lfx.index.v1_past_meeting_participant past_meeting_participant_uid, past_meeting_uid, meeting_uid, email, username
Recording lfx.index.v1_past_meeting_recording past_meeting_recording_uid, past_meeting_uid, platform, platform_meeting_id, platform_meeting_instance_id
Transcript lfx.index.v1_past_meeting_transcript past_meeting_transcript_uid, past_meeting_uid, platform, platform_meeting_id, platform_meeting_instance_id
Summary lfx.index.v1_past_meeting_summary past_meeting_summary_uid, past_meeting_uid, meeting_uid, platform

Notes

  • start_time fix is included temporarily (using meeting_start_time instead of undefined next_meeting_start_time). A separate PR will properly calculate meeting occurrences.
  • Removed title, first_name, and last_name tags to align with v1-sync-helper

Add tags field to all meeting-related NATS publish steps to match the
MeetingIndexerMessage structure used by the meeting service. Tags are
used by the indexer for search functionality.

Added tags to:
- v1_meeting (scheduled meeting)
- v1_meeting_registrant (meeting participants)
- v1_past_meeting (past meeting occurrences)
- v1_past_meeting_participant (past meeting attendees)
- v1_past_meeting_recording (meeting recordings)
- v1_past_meeting_transcript (meeting transcripts)
- v1_past_meeting_summary (AI summaries)

Each entity includes both plain UIDs for broad text search and prefixed
tags (e.g., meeting_uid:, project_uid:) for field-specific searching.

Signed-off-by: Asitha de Silva <[email protected]>
Copilot AI review requested due to automatic review settings December 2, 2025 02:40
Copy link
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

This PR enhances meeting mock data by adding comprehensive tags fields to all meeting-related NATS publish steps, enabling search functionality in the indexer/OpenSearch. The tags include both plain UIDs for broad text search and prefixed tags (e.g., meeting_uid:, project_uid:) for field-specific searching.

Key changes:

  • Added tags to 7 entity types: Meeting, Registrant, Past Meeting, Recording, Transcript, Summary, and Participant
  • Introduced new variables (registrant_id, registrant_username, summary_id, participant_id, guest_participant_id) to ensure consistent ID usage across data and tags
  • Implemented conditional tag inclusion for optional fields like username

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

You can also share your feedback on Copilot code review for a chance to win a $100 gift card. Take the survey.

- Set scheduled meeting start_time to a future date (next occurrence)
  rather than a historical date
- Change recurrence field types from strings to integers:
  repeat_interval, type, monthly_week, monthly_week_day

Signed-off-by: Asitha de Silva <[email protected]>
@asithade asithade requested a review from emsearcy December 2, 2025 03:32
transcript_access: public
start_time: "{{ meeting_start_time.isoformat() }}Z"
# Use the NEXT (future) meeting time for the scheduled meeting
start_time: "{{ next_meeting_start_time.isoformat() }}Z"
Copy link
Contributor

Choose a reason for hiding this comment

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

this one I don't understand, it doesn't match the source database. The example data I was looking at (in Dynamo DB) is a meeting that was created on September 25 (2025), with a start_time of October 7th. The most recent past meeting was on November 4th. I synced the data on November 5th ... but the "start_time" of the meeting object was still October 7th. The data will only push into the index when it's written (or changed), so I have to expect that our "start time" will in fact fall back into the past.

Copy link
Member

Choose a reason for hiding this comment

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

Correct, the occurrences field should have the start time of the occurrences, the start_time field is not the start time of the next occurrence. I suspect Asitha used this change because the occurrences field isn't passed.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@jordane is correct -- we needed to be able to test recurring meetings that still have future occurrences, but since it's not returning the occurrences field, I had to update the start time of the main object instead.

asithade and others added 2 commits December 9, 2025 10:34
- Add now_utc() Jinja2 helper for datetime arithmetic
- Use future date for scheduled meeting start time
- Update meeting settings (visibility, restricted, early_join_time)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Signed-off-by: Asitha de Silva <[email protected]>
@asithade asithade requested a review from emsearcy January 6, 2026 20:59
Remove redundant tags to align with v1-sync-helper:
- Remove title tag from v1_meeting, v1_past_meeting, v1_past_meeting_summary
- Remove first_name and last_name tags from v1_meeting_registrant and
  v1_past_meeting_participant

Note: The start_time field fix (using meeting_start_time instead of
undefined next_meeting_start_time) is included temporarily. A separate
PR will be opened to properly calculate meeting occurrences.

Signed-off-by: Asitha de Silva <[email protected]>
@asithade asithade requested a review from emsearcy January 6, 2026 23:21
@asithade asithade dismissed emsearcy’s stale review January 6, 2026 23:26

Discussed in Slack

@asithade asithade merged commit f69ba2a into main Jan 6, 2026
3 checks passed
@asithade asithade deleted the feat/add-meeting-tags branch January 6, 2026 23:26
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