Indexer Contract

April 23, 2026 · View on GitHub

This document is the authoritative reference for all data the meeting service sends to the indexer service, which makes resources searchable via the query service.

Update this document in the same PR as any change to indexer message construction.

Convention: Tags and parent refs containing a {value} placeholder are only emitted when the corresponding field is non-empty.


Resource Types


V1 Meeting

Object type: v1_meeting

NATS subject: lfx.index.v1_meeting

Source struct: internal/domain/models/event_models.goMeetingEventData

Indexed on: create, update, delete of a meeting (sourced from the v1 meeting data).

Data Schema

These fields are indexed and queryable via filters or cel_filter in the query service.

FieldTypeDescription
idstringMeeting ID (used as the object ID)
project_sfidstringSalesforce ID of the associated LF project
project_uidstringv2 UUID of the associated LF project
committeestringv1 Salesforce ID of the primary committee
committee_uidstring (optional)v2 UUID of the primary committee; omitted when empty
committee_filters[]stringList of committee filter values
committees[]object (optional)Associated committees (see Committee schema); omitted when empty
user_idstringZoom user ID of the meeting host
titlestringMeeting title (from Zoom topic)
descriptionstringMeeting description (from Zoom agenda)
visibilitystringMeeting visibility on LFX (e.g., "public", "private")
meeting_typestringZoom meeting type
start_timestringStart time of the first occurrence (RFC3339)
timezonestringMeeting timezone (IANA, e.g., "America/Los_Angeles")
durationintMeeting duration in minutes
early_join_time_minutesintMinutes before start time that attendees can join
last_end_timeint64End time of the last occurrence (Unix timestamp)
host_keystringSix-digit Zoom host PIN (rotated weekly)
join_urlstringLFX meeting join page URL
passwordstringUUID password for the join page
restrictedboolWhether only invited users can join
artifact_visibilitystringVisibility of meeting artifacts (recordings, transcripts, summaries)
recording_enabledboolWhether Zoom recording is enabled
transcript_enabledboolWhether Zoom transcript is enabled
recording_accessstringRecording access level ("public", "meeting_hosts", "meeting_participants")
transcript_accessstringTranscript access level
created_atstringCreation time (RFC3339)
updated_atstringLast update time (RFC3339)
created_byobjectUser who created the meeting (see User Reference schema)
updated_byobjectUser who last updated the meeting (see User Reference schema)
updated_by_list[]object (optional)All users who have updated the meeting
use_new_invite_email_addressboolWhether to use the new invite email address
recurrenceobject (optional)Zoom recurrence pattern (see Recurrence schema)
occurrences[]object (optional)Upcoming meeting occurrences (see Occurrence schema)
cancelled_occurrences[]string (optional)Occurrence IDs that have been cancelled
updated_occurrences[]object (optional)Occurrences with custom overrides (see Updated Occurrence schema)
ics_uid_timezonestring (optional)Timezone anchored for calendar UID generation
ics_additional_uids[]string (optional)Additional calendar event UIDs for updated occurrence sequences
zoom_configobjectZoom-specific configuration (see Zoom Config schema)
ai_summary_accessstring (optional)AI summary access level
youtube_upload_enabledbool (optional)Whether recording is uploaded to YouTube
concurrent_zoom_user_enabledbool (optional)Whether meeting uses concurrent Zoom license pool
last_bulk_registrant_job_statusstringStatus of the last bulk registrant import job
last_bulk_registrants_job_failed_countintFailed record count from the last bulk registrant job
last_bulk_registrants_job_warning_countintWarning record count from the last bulk registrant job
last_mailing_list_members_sync_job_statusstringStatus of the last mailing list sync job
last_mailing_list_members_sync_job_failed_countintFailed count from last mailing list sync job
mailing_list_group_ids[]stringMailing list group IDs associated with this meeting
last_mailing_list_members_sync_job_warning_countintWarning count from last mailing list sync job
use_unique_ics_uidstringUUID used as the unique ICS UID for calendar events (empty string when not set)
show_meeting_attendeesboolWhether attendee data is visible to other attendees
organizers[]stringAuth0 sub-format usernames of meeting organizers

Committee Schema

Each entry in committees has:

FieldTypeDescription
uidstringCommittee v2 UUID
allowed_voting_statuses[]string (optional)Voting status filter strings for the committee; omitted when empty

User Reference Schema

Used by created_by, updated_by, and entries in updated_by_list:

FieldTypeDescription
user_idstring (optional)Auth0 user identifier
usernamestring (optional)LFX username
emailstring (optional)User email address
namestring (optional)Display name
profile_picturestring (optional)Profile picture URL

Recurrence Schema

FieldTypeDescription
typeintRecurrence type (1=daily, 2=weekly, 3=monthly)
repeat_intervalintInterval between occurrences
weekly_daysstring (optional)Days of week for weekly recurrence
monthly_dayint (optional)Day of month for monthly recurrence
monthly_weekint (optional)Week of month for monthly recurrence
monthly_week_dayint (optional)Day of week paired with monthly_week
end_timesint (optional)Number of times to repeat
end_date_timestring (optional)End date/time for the recurrence pattern (RFC3339)

Occurrence Schema

FieldTypeDescription
occurrence_idstringUnix timestamp of occurrence start (used as ID)
start_timestringOccurrence start time (RFC3339)
durationintDuration in minutes
is_cancelledboolWhether this occurrence is cancelled
titlestringOccurrence title
descriptionstringOccurrence description
recurrenceobject (optional)Override recurrence pattern for this occurrence
response_count_yesintAccepted RSVP count
response_count_nointDeclined RSVP count
registrant_countintRegistrant count

Updated Occurrence Schema

FieldTypeDescription
old_occurrence_idstringOriginal occurrence ID (Unix timestamp)
new_occurrence_idstringNew occurrence ID after start time change
timezonestringUpdated timezone
durationintUpdated duration in minutes
titlestringUpdated title
descriptionstringUpdated description
recurrenceobject (optional)Updated recurrence pattern
all_followingboolWhether changes apply to all following occurrences

Zoom Config Schema

FieldTypeDescription
meeting_idstring (optional)Zoom numeric meeting ID
passcodestring (optional)Zoom meeting passcode
ai_companion_enabledboolWhether Zoom AI Companion is enabled
ai_summary_require_approvalboolWhether AI summaries require approval before publishing

Tags

Tag FormatExamplePurpose
{id}93699735000Direct lookup by meeting ID
meeting_id:{id}meeting_id:93699735000Namespaced lookup by meeting ID
project_uid:{value}project_uid:cbef1ed5-17dc-4a50-84e2-6cddd70f6878Find meetings for a project
title:{value}title:TSC Monthly MeetingFind meetings by title
visibility:{value}visibility:publicFind meetings by visibility
meeting_type:{value}meeting_type:recurringFind meetings by type
committee_uid:{value}committee_uid:061a110a-...Find meetings by committee

Access Control (IndexingConfig)

FieldValue
access_check_objectv1_meeting:{id}
access_check_relationviewer
history_check_objectv1_meeting:{id}
history_check_relationauditor
publictrue when visibility == "public", false otherwise

Search Behavior

FieldValue
sort_nametitle (trimmed)
name_and_aliases[title] (omitted when empty)
fulltexttitle + description (space-joined, deduplicated, omits empty values)

Parent References

RefCondition
project:{project_uid}Only when project_uid is non-empty
committee:{uid}For each entry in committees with a non-empty uid

V1 Meeting Registrant

Object type: v1_meeting_registrant

NATS subject: lfx.index.v1_meeting_registrant

Source struct: internal/domain/models/event_models.goRegistrantEventData

Indexed on: create, update, delete of a meeting registrant.

Data Schema

FieldTypeDescription
uidstringRegistrant unique identifier (UUID)
meeting_idstringID of the associated meeting
typestringRegistrant type
committee_uidstringv2 UUID of the associated committee (empty when not a committee registrant)
user_idstringAuth0 user ID of the registrant
emailstringEmail address for meeting invites
case_insensitive_emailstringLowercase version of email
first_namestringRegistrant first name
last_namestringRegistrant last name
org_namestring (optional)Organization name
org_is_memberbool (optional)Whether the organization is an LF member
org_is_project_memberbool (optional)Whether the organization is a project member
job_titlestring (optional)Job title
hostboolWhether the registrant is a host
occurrencestring (optional)Occurrence ID if invited to a specific occurrence only
avatar_urlstringProfile picture URL
usernamestring (optional)LFX username
last_invite_received_timestringTimestamp of last invite sent (RFC3339)
last_invite_received_message_idstring (optional)SES message ID of last invite
last_invite_delivery_successfulbool (optional)Whether last invite was delivered
last_invite_delivered_timestring (optional)Delivery timestamp (RFC3339)
last_invite_bouncedbool (optional)Whether last invite bounced
last_invite_bounced_timestring (optional)Bounce timestamp (RFC3339)
last_invite_bounced_typestring (optional)SES bounce type
last_invite_bounced_sub_typestring (optional)SES bounce subtype
last_invite_bounced_diagnostic_codestring (optional)SES bounce diagnostic code
created_atstringCreation time (RFC3339)
updated_atstringLast update time (RFC3339)
created_byobjectUser who created the registrant (see User Reference schema)
updated_byobjectUser who last updated the registrant (see User Reference schema)

Tags

Tag FormatExamplePurpose
registrant_uid:{uid}registrant_uid:a1b2c3d4-...Lookup by registrant UID
committee_uid:{value}committee_uid:061a110a-...Find registrants by committee
username:{value}username:jdoeFind registrants by username
email:{value}email:jdoe@example.comFind registrants by email
host:truehost:trueFind registrants who are hosts

Access Control (IndexingConfig)

FieldValue
access_check_objectv1_meeting:{meeting_id} (access checked on the parent meeting)
access_check_relationviewer
history_check_objectv1_meeting:{meeting_id}
history_check_relationauditor
publicfalse (always)

Search Behavior

FieldValue
sort_nameemail (trimmed)
name_and_aliases[username, email] (deduplicated, omits empty values)
fulltextsort_name + name_and_aliases (space-joined, deduplicated)

Parent References

RefCondition
meeting:{meeting_id}Only when meeting_id is non-empty
committee:{committee_uid}Only when committee_uid is non-empty

V1 Meeting RSVP

Object type: v1_meeting_rsvp

NATS subject: lfx.index.v1_meeting_rsvp

Source struct: internal/domain/models/event_models.goInviteResponseEventData

Indexed on: create, update, delete of a meeting RSVP (invite response).

Data Schema

FieldTypeDescription
idstringRSVP unique identifier
meeting_and_occurrence_idstringCombined meeting+occurrence ID (e.g., {meeting_id}:{occurrence_id})
meeting_idstringParent meeting ID
occurrence_idstring (optional)Occurrence ID for occurrence-specific RSVPs
registrant_idstringUID of the associated registrant
project_uidstringv2 UUID of the associated project
user_idstringAuth0 user ID
usernamestring (optional)LFX username
namestring (optional)Respondent display name
emailstringRespondent email address
orgstring (optional)Organization name
job_titlestring (optional)Job title
response_typestringRSVP response ("accepted", "declined", "maybe")
scopestringResponse scope ("all", "single", "this_and_following")
is_recurringboolWhether the parent meeting is recurring
created_atstring (RFC3339)Creation time
modified_atstring (RFC3339)Last modification time

Tags

Tag FormatExamplePurpose
{id}abc123-...Direct lookup by RSVP ID
invite_response_uid:{id}invite_response_uid:abc123-...Namespaced lookup by RSVP ID
meeting_and_occurrence_id:{value}meeting_and_occurrence_id:93699735000:1700000000Find RSVPs for a specific occurrence
meeting_id:{value}meeting_id:93699735000Find RSVPs for a meeting
registrant_uid:{value}registrant_uid:a1b2c3d4-...Find RSVPs for a registrant
email:{value}email:jdoe@example.comFind RSVPs by email
username:{value}username:jdoeFind RSVPs by username

Access Control (IndexingConfig)

FieldValue
access_check_objectv1_meeting:{meeting_id} (access checked on the parent meeting)
access_check_relationviewer
history_check_objectv1_meeting:{meeting_id}
history_check_relationauditor
publicfalse (always)

Search Behavior

FieldValue
sort_nameemail (trimmed)
name_and_aliases[username, email] (deduplicated, omits empty values)
fulltextsort_name + name_and_aliases (space-joined, deduplicated)

Parent References

RefCondition
meeting:{meeting_id}Only when meeting_id is non-empty

V1 Past Meeting

Object type: v1_past_meeting

NATS subject: lfx.index.v1_past_meeting

Source struct: internal/domain/models/event_models.goPastMeetingEventData

Indexed on: create, update, delete of a past meeting (a completed occurrence of a meeting).

Data Schema

FieldTypeDescription
idstringPast meeting unique identifier (UUID)
meeting_idstringID of the originating active meeting
meeting_and_occurrence_idstringCombined ID used across related resources (e.g., {meeting_id}:{occurrence_id})
occurrence_idstring (optional)Occurrence ID within the recurring meeting
proj_idstring (optional)Salesforce project ID
project_uidstringv2 UUID of the associated project
project_slugstring (optional)URL slug of the associated project
committeestring (optional)v1 Salesforce ID of the primary committee
committee_uidstring (optional)v2 UUID of the primary committee
committee_filters[]string (optional)Committee filter values
titlestringMeeting title
descriptionstringMeeting description
start_timestring (RFC3339)Occurrence start time
end_timestring (RFC3339)Occurrence end time
durationintActual duration in minutes
timezonestringMeeting timezone (IANA)
meeting_typestring (optional)Zoom meeting type
committees[]object | nullAssociated committees (see Committee schema); may be null when unset
visibilitystring (optional)Meeting visibility
artifact_visibilitystring (optional)Visibility of meeting artifacts
restrictedboolWhether the meeting was restricted
recording_enabledboolWhether recording was enabled
recording_accessstring (optional)Recording access level
transcript_enabledboolWhether transcript was enabled
transcript_accessstring (optional)Transcript access level
zoom_ai_enabledbool (optional)Whether Zoom AI Companion was enabled
ai_summary_accessstring (optional)AI summary access level ("public", "meeting_hosts", "meeting_participants")
require_ai_summary_approvalbool (optional)Whether AI summary requires approval
early_join_time_minutesint (optional)Early join buffer in minutes
youtube_linkstring (optional)YouTube recording link
platformstring (optional)Meeting platform (e.g., "Zoom")
platform_meeting_idstring (optional)Platform-specific meeting ID
recording_passwordstring (optional)Password for the recording
zoom_configobject (optional)Zoom-specific configuration (see Zoom Config schema)
is_manually_createdbool (optional)Whether this past meeting was created manually
sessions[]object (optional)Zoom meeting instances within this past meeting (each has uuid, start_time, end_time)
created_atstring (RFC3339)Creation time
updated_atstring (RFC3339)Last update time
created_byobjectUser who created the record (see User Reference schema)
updated_byobjectUser who last updated the record (see User Reference schema)
updated_by_list[]object (optional)All users who have updated the record

Tags

Tag FormatExamplePurpose
past_meeting_id:{id}past_meeting_id:a1b2c3d4-...Lookup by past meeting UUID
meeting_id:{value}meeting_id:93699735000Find past meetings for an active meeting
project_uid:{value}project_uid:cbef1ed5-...Find past meetings for a project
title:{value}title:TSC Monthly MeetingFind past meetings by title
timezone:{value}timezone:America/Los_AngelesFind past meetings by timezone
committee_uid:{value}committee_uid:061a110a-...Find past meetings for a committee

Access Control (IndexingConfig)

FieldValue
access_check_objectv1_past_meeting:{id}
access_check_relationviewer
history_check_objectv1_past_meeting:{id}
history_check_relationauditor
publicfalse (always)

Search Behavior

FieldValue
sort_namestart_time formatted as RFC3339 (UTC); empty string when start_time is zero
name_and_aliases[title] (omitted when empty)
fulltexttitle + description (space-joined, deduplicated, omits empty values)

Parent References

RefCondition
project:{project_uid}Only when project_uid is non-empty
committee:{uid}For each entry in committees with a non-empty uid

V1 Past Meeting Participant

Object type: v1_past_meeting_participant

NATS subject: lfx.index.v1_past_meeting_participant

Source struct: internal/domain/models/event_models.goPastMeetingParticipantEventData

Indexed on: create, update, delete of a past meeting participant (invitee or attendee).

Data Schema

FieldTypeDescription
uidstringParticipant unique identifier (UUID)
meeting_and_occurrence_idstringCombined meeting+occurrence ID of the parent past meeting
meeting_idstringID of the originating active meeting
project_uidstringv2 UUID of the associated project
project_slugstring (optional)URL slug of the associated project, propagated from the parent past meeting at index time
emailstringParticipant email address
first_namestringParticipant first name
last_namestringParticipant last name
hostboolWhether the participant was the host
job_titlestring (optional)Job title
org_namestring (optional)Organization name
org_is_memberboolWhether the organization is an LF member
org_is_project_memberboolWhether the organization is a project member
avatar_urlstring (optional)Profile picture URL
usernamestring (optional)LFX username
is_invitedboolWhether the participant was invited
is_attendedboolWhether the participant attended
is_unknownboolWhether the attendee could not be matched to any known user (attendee records only; false for invitee-only records)
is_ai_reconciledboolWhether the attendee record was last updated via AI reconciliation (attendee records only; false for invitee-only records)
is_auto_matchedboolWhether the attendee was automatically matched to an invitee by name (attendee records only; false for invitee-only records)
zoom_user_namestringZoom display name of the attendee (attendee records only; "" for invitee-only records)
mapped_invitee_namestringFull name of the invitee the attendee was auto-matched to (attendee records only; "" for invitee-only records)
sessions[]object (optional)Join/leave sessions (each has uid, join_time, leave_time, leave_reason)
committee_uidstring (optional)v2 UUID of the committee the participant is associated with; sourced from the participant's own committee_id field
created_atstring (RFC3339)Creation time
updated_atstring (RFC3339)Last update time

Tags

Tag FormatExamplePurpose
past_meeting_participant_uid:{uid}past_meeting_participant_uid:a1b2c3d4-...Lookup by participant UID
meeting_and_occurrence_id:{value}meeting_and_occurrence_id:93699735000:1700000000Find participants for a past meeting
project_uid:{value}project_uid:cbef1ed5-...Find participants for a project
project_slug:{value}project_slug:my-projectFind participants by project slug
committee_uid:{value}committee_uid:061a110a-...Find participants by committee
username:{value}username:jdoeFind participants by username
email:{value}email:jdoe@example.comFind participants by email
is_invited:trueis_invited:trueFind invited participants
is_attended:trueis_attended:trueFind attendees

Access Control (IndexingConfig)

FieldValue
access_check_objectv1_past_meeting:{meeting_and_occurrence_id} (access checked on the parent past meeting)
access_check_relationviewer
history_check_objectv1_past_meeting:{meeting_and_occurrence_id}
history_check_relationauditor
publicfalse (always)

Search Behavior

FieldValue
sort_nameemail (trimmed)
name_and_aliases[first_name, last_name, username] (deduplicated, omits empty values)
fulltextsort_name + name_and_aliases (space-joined, deduplicated)

Parent References

RefCondition
past_meeting:{meeting_and_occurrence_id}Only when meeting_and_occurrence_id is non-empty
project:{project_uid}Only when project_uid is non-empty
committee:{committee_uid}Only when committee_uid is non-empty

V1 Past Meeting Recording

Object type: v1_past_meeting_recording

NATS subject: lfx.index.v1_past_meeting_recording

Source struct: internal/domain/models/event_models.goRecordingEventData

Indexed on: create, update, delete of a past meeting recording.

Data Schema

FieldTypeDescription
idstringRecording unique identifier
meeting_and_occurrence_idstringCombined meeting+occurrence ID of the parent past meeting
project_uidstringv2 UUID of the associated project
project_slugstringURL slug of the associated project
host_emailstringEmail of the meeting host
host_idstringZoom user ID of the host
meeting_idstringID of the originating active meeting
occurrence_idstringOccurrence ID
platformstringMeeting platform (always "Zoom")
platform_meeting_idstringZoom numeric meeting ID
recording_accessstringAccess level ("public", "meeting_hosts", "meeting_participants")
titlestringRecording title
transcript_accessstring (optional)Transcript access level
transcript_enabledboolWhether transcript is enabled
visibilitystringRecording visibility
recording_countintNumber of recording files
recording_files[]objectRecording files (see Recording File schema)
sessions[]objectRecording sessions (see Recording Session schema)
start_timestring (RFC3339)Recording start time
total_sizeint64Total size of all recording files in bytes
committees[]object (optional)Associated committees sourced from the parent past meeting (see Committee schema)
created_atstring (RFC3339)Creation time
updated_atstring (RFC3339)Last update time
created_byobjectUser who created the record (see User Reference schema)
updated_byobjectUser who last updated the record (see User Reference schema)

Recording File Schema

FieldTypeDescription
idstringFile unique identifier
meeting_idstringAssociated meeting ID
file_typestringFile type (e.g., "MP4", "M4A")
file_extensionstringFile extension
file_sizeint64File size in bytes
recording_typestringZoom recording type (e.g., "shared_screen_with_speaker_view")
statusstringFile status
recording_startstring (RFC3339)Recording start time
recording_endstring (RFC3339)Recording end time
download_urlstring (optional)Download URL
play_urlstring (optional)Playback URL

Recording Session Schema

FieldTypeDescription
uuidstringZoom meeting instance UUID
start_timestring (RFC3339)Session start time
total_sizeint64Session total size in bytes
share_urlstring (optional)Share URL for the session

Tags

Tag FormatExamplePurpose
{id}abc123-...Direct lookup by recording ID
past_meeting_recording_id:{id}past_meeting_recording_id:abc123-...Namespaced lookup by recording ID
meeting_and_occurrence_id:{value}meeting_and_occurrence_id:93699735000:1700000000Find recordings for a past meeting
platform:Zoomplatform:ZoomAll recordings (platform is always Zoom)
platform_meeting_id:{value}platform_meeting_id:93699735000Find recordings by Zoom meeting ID
platform_meeting_instance_id:{uuid}platform_meeting_instance_id:abc...Find recordings by Zoom session UUID
committee_uid:{value}committee_uid:abc123...Find recordings by committee

Access Control (IndexingConfig)

FieldValue
access_check_objectv1_past_meeting:{meeting_and_occurrence_id}
access_check_relationrecording_viewer
history_check_objectv1_past_meeting:{meeting_and_occurrence_id}
history_check_relationauditor
publictrue when recording_access == "public", false otherwise

Search Behavior

FieldValue
sort_nametitle (trimmed)
name_and_aliases[title] (omitted when empty)
fulltextsort_name + name_and_aliases (space-joined, deduplicated)

Parent References

RefCondition
past_meeting:{meeting_and_occurrence_id}Always set
project:{project_uid}Set when project_uid is non-empty
committee:{uid}Set once per entry in committees with a non-empty uid

V1 Past Meeting Transcript

Object type: v1_past_meeting_transcript

NATS subject: lfx.index.v1_past_meeting_transcript

Source struct: internal/domain/models/event_models.goTranscriptEventData

Indexed on: create, update, delete of a past meeting transcript.

Data Schema

FieldTypeDescription
idstringTranscript unique identifier
meeting_and_occurrence_idstringCombined meeting+occurrence ID of the parent past meeting
project_uidstringv2 UUID of the associated project
project_slugstringURL slug of the associated project
host_emailstringEmail of the meeting host
host_idstringZoom user ID of the host
meeting_idstringID of the originating active meeting
occurrence_idstringOccurrence ID
platformstringMeeting platform (always "Zoom")
transcript_accessstringAccess level ("public", "meeting_hosts", "meeting_participants")
titlestringTranscript title
visibilitystringTranscript visibility
recording_files[]objectAssociated recording files (see Recording File schema)
sessions[]objectRecording sessions (see Recording Session schema)
start_timestring (RFC3339)Transcript start time
total_sizeint64Total size in bytes
committees[]object (optional)Associated committees sourced from the parent past meeting (see Committee schema)
created_atstring (RFC3339)Creation time
updated_atstring (RFC3339)Last update time
created_byobjectUser who created the record (see User Reference schema)
updated_byobjectUser who last updated the record (see User Reference schema)

Tags

Tag FormatExamplePurpose
{id}abc123-...Direct lookup by transcript ID
past_meeting_transcript_id:{id}past_meeting_transcript_id:abc123-...Namespaced lookup by transcript ID
meeting_and_occurrence_id:{value}meeting_and_occurrence_id:93699735000:1700000000Find transcripts for a past meeting
platform:Zoomplatform:ZoomAll transcripts (platform is always Zoom)
platform_meeting_instance_id:{uuid}platform_meeting_instance_id:abc...Find transcripts by Zoom session UUID
committee_uid:{value}committee_uid:abc123...Find transcripts by committee

Access Control (IndexingConfig)

FieldValue
access_check_objectv1_past_meeting:{meeting_and_occurrence_id}
access_check_relationtranscript_viewer
history_check_objectv1_past_meeting:{meeting_and_occurrence_id}
history_check_relationauditor
publictrue when transcript_access == "public", false otherwise

Search Behavior

FieldValue
sort_nametitle (trimmed)
name_and_aliases[title] (omitted when empty)
fulltextsort_name + name_and_aliases (space-joined, deduplicated)

Parent References

RefCondition
past_meeting:{meeting_and_occurrence_id}Always set
project:{project_uid}Set when project_uid is non-empty
committee:{uid}Set once per entry in committees with a non-empty uid

V1 Past Meeting Summary

Object type: v1_past_meeting_summary

NATS subject: lfx.index.v1_past_meeting_summary

Source struct: internal/domain/models/event_models.goSummaryEventData

Indexed on: create, update, delete of an AI-generated past meeting summary.

Data Schema

FieldTypeDescription
idstringSummary unique identifier
meeting_and_occurrence_idstringCombined meeting+occurrence ID of the parent past meeting
project_uidstringv2 UUID of the associated project
meeting_idstringID of the originating active meeting
occurrence_idstringOccurrence ID
zoom_meeting_uuidstringZoom meeting UUID from the webhook event
zoom_meeting_host_idstringZoom user ID of the host
zoom_meeting_host_emailstringEmail of the host
zoom_meeting_topicstringZoom meeting topic
zoom_webhook_eventstring (optional)Zoom webhook event type that triggered this summary
summary_titlestring (optional)AI-generated summary title
summary_start_timestring (optional)Summary start time (RFC3339)
summary_end_timestring (optional)Summary end time (RFC3339)
summary_created_timestring (optional)Time the summary was generated (RFC3339)
summary_last_modified_timestring (optional)Last modification time (RFC3339)
contentstringConsolidated markdown content
edited_contentstringEdited markdown content (may differ from content)
requires_approvalboolWhether this summary requires human approval before publishing
approvedboolWhether this summary has been approved
platformstringMeeting platform (always "Zoom")
zoom_configobjectZoom identifiers (has meeting_id string and meeting_uuid string)
email_sentboolWhether a summary notification email has been sent
committees[]object (optional)Associated committees sourced from the parent past meeting (see Committee schema)
created_atstring (RFC3339)Creation time
updated_atstring (RFC3339)Last update time
created_byobjectUser who created the record (see User Reference schema)
updated_byobjectUser who last updated the record (see User Reference schema)

Tags

Tag FormatExamplePurpose
{id}abc123-...Direct lookup by summary ID
past_meeting_summary_id:{id}past_meeting_summary_id:abc123-...Namespaced lookup by summary ID
meeting_and_occurrence_id:{value}meeting_and_occurrence_id:93699735000:1700000000Find summaries for a past meeting
meeting_id:{value}meeting_id:93699735000Find summaries for a meeting
platform:Zoomplatform:ZoomAll summaries (platform is always Zoom)
title:{value}title:TSC Monthly MeetingFind summaries by Zoom meeting topic
committee_uid:{value}committee_uid:abc123...Find summaries by committee

Access Control (IndexingConfig)

FieldValue
access_check_objectv1_past_meeting:{meeting_and_occurrence_id}
access_check_relationai_summary_viewer
history_check_objectv1_past_meeting:{meeting_and_occurrence_id}
history_check_relationauditor
publictrue when ai_summary_access == "public", false otherwise

Search Behavior

FieldValue
sort_namezoom_meeting_topic (trimmed)
name_and_aliases[zoom_meeting_topic] (omitted when empty)
fulltextsort_name + name_and_aliases (space-joined, deduplicated)

Parent References

RefCondition
past_meeting:{meeting_and_occurrence_id}Always set
project:{project_uid}Set when project_uid is non-empty
committee:{uid}Set once per entry in committees with a non-empty uid

V1 Meeting Attachment

Object type: v1_meeting_attachment

NATS subject: lfx.index.v1_meeting_attachment

Source struct: internal/domain/models/event_models.goMeetingAttachmentEventData

Indexed on: create, update, delete of an attachment on an active meeting.

Data Schema

FieldTypeDescription
uidstringAttachment unique identifier
meeting_idstringID of the parent meeting
project_uidstring (optional)v2 UUID of the parent project (omitted when project not yet in v2)
project_slugstring (optional)URL slug of the parent project (resolved via lfx.projects-api.get_slug; omitted when unavailable)
typestringAttachment type (e.g., "link", "file")
categorystring (optional)Attachment category
linkstring (optional)Link URL (for link-type attachments)
namestringAttachment display name
descriptionstring (optional)Attachment description
sourcestring (optional)Attachment source
file_namestring (optional)Uploaded file name
file_sizeint (optional)File size in bytes
file_urlstring (optional)URL to the uploaded file
file_uploadedbool (optional)Whether the file has been uploaded
file_upload_statusstring (optional)Upload status
file_content_typestring (optional)MIME content type
file_uploaded_byobject (optional)User who uploaded the file (see User Reference schema)
file_uploaded_atstring (RFC3339) (optional)Time the file was uploaded
committees[]object (optional)Associated committees sourced from the parent meeting (see Committee schema)
created_atstring (RFC3339)Creation time
modified_atstring (RFC3339)Last modification time
created_byobjectUser who created the attachment (see User Reference schema)
updated_byobjectUser who last updated the attachment (see User Reference schema)

Tags

Tag FormatExamplePurpose
meeting_attachment_uid:{uid}meeting_attachment_uid:a1b2c3d4-...Lookup by attachment UID
meeting_id:{value}meeting_id:93699735000Find attachments for a meeting
project_uid:{value}project_uid:abc123...Find attachments by project
project_slug:{value}project_slug:cncfFind attachments by project slug
type:{value}type:fileFind attachments by type
committee_uid:{value}committee_uid:abc123...Find attachments by committee

Access Control (IndexingConfig)

FieldValue
access_check_objectv1_meeting:{meeting_id} (access checked on the parent meeting)
access_check_relationviewer
history_check_objectv1_meeting:{meeting_id}
history_check_relationauditor
publicfalse (always)

Search Behavior

FieldValue
sort_namename (trimmed)
name_and_aliases[file_name, link, name] (deduplicated, omits empty values)
fulltextsort_name + name_and_aliases + description (space-joined, deduplicated, omits empty values)

Parent References

RefCondition
meeting:{meeting_id}Always set
project:{project_uid}Set when project_uid is non-empty
committee:{uid}Set once per entry in committees with a non-empty uid

V1 Past Meeting Attachment

Object type: v1_past_meeting_attachment

NATS subject: lfx.index.v1_past_meeting_attachment

Source struct: internal/domain/models/event_models.goPastMeetingAttachmentEventData

Indexed on: create, update, delete of an attachment on a past meeting.

Data Schema

FieldTypeDescription
uidstringAttachment unique identifier
meeting_and_occurrence_idstringCombined meeting+occurrence ID of the parent past meeting
meeting_idstringID of the originating active meeting
project_uidstring (optional)v2 UUID of the parent project (omitted when project not yet in v2)
project_slugstring (optional)URL slug of the parent project (sourced from the past meeting KV record)
typestringAttachment type (e.g., "link", "file")
categorystring (optional)Attachment category
linkstring (optional)Link URL (for link-type attachments)
namestringAttachment display name
descriptionstring (optional)Attachment description
sourcestring (optional)Attachment source
file_namestring (optional)Uploaded file name
file_sizeint (optional)File size in bytes
file_urlstring (optional)URL to the uploaded file
file_uploadedbool (optional)Whether the file has been uploaded
file_upload_statusstring (optional)Upload status
file_content_typestring (optional)MIME content type
file_uploaded_byobject (optional)User who uploaded the file (see User Reference schema)
file_uploaded_atstring (RFC3339) (optional)Time the file was uploaded
committees[]object (optional)Associated committees sourced from the parent past meeting (see Committee schema)
created_atstring (RFC3339)Creation time
modified_atstring (RFC3339)Last modification time
created_byobjectUser who created the attachment (see User Reference schema)
updated_byobjectUser who last updated the attachment (see User Reference schema)

Tags

Tag FormatExamplePurpose
past_meeting_attachment_uid:{uid}past_meeting_attachment_uid:a1b2c3d4-...Lookup by attachment UID
meeting_and_occurrence_id:{value}meeting_and_occurrence_id:93699735000:1700000000Find attachments for a past meeting
meeting_id:{value}meeting_id:93699735000Find attachments by originating meeting
project_uid:{value}project_uid:abc123...Find attachments by project
project_slug:{value}project_slug:my-projectFind attachments by project slug
type:{value}type:linkFind attachments by type
committee_uid:{value}committee_uid:abc123...Find attachments by committee

Access Control (IndexingConfig)

FieldValue
access_check_objectv1_past_meeting:{meeting_and_occurrence_id} (access checked on the parent past meeting)
access_check_relationviewer
history_check_objectv1_past_meeting:{meeting_and_occurrence_id}
history_check_relationauditor
publicfalse (always)

Search Behavior

FieldValue
sort_namename (trimmed)
name_and_aliases[file_name, link, name] (deduplicated, omits empty values)
fulltextsort_name + name_and_aliases + description (space-joined, deduplicated, omits empty values)

Parent References

RefCondition
past_meeting:{meeting_and_occurrence_id}Always set
project:{project_uid}Set when project_uid is non-empty
committee:{uid}Set once per entry in committees with a non-empty uid