feat: Implement Event File Hosted Data Fix and API Guide Update

Address critical data visibility issues for Event Files and enhance frontend documentation.

This commit resolves the persistent problem where top-level hosted file convenience fields
(e.g., , , ) were
returning as  in V3 Event File API responses, even when .

Key changes include:
- Refactored  Pydantic model:
    - Removed redundant  definitions from top-level hosted file convenience fields,
      allowing direct mapping from SQL view columns.
    - Simplified  to focus solely on conditionally loading the nested
       object, as top-level fields are now populated directly by Pydantic
      from the  view.
    - Added comprehensive comments to clarify data flow, Pydantic's behavior, and the
      expected origin of these convenience fields from SQL views.
- Updated :
    - Introduced a new section detailing how to retrieve Event File data, including the
      use of  to get both top-level convenience fields and a nested
       object.
    - Clarified all ID references as random string IDs.
    - Renumbered the troubleshooting section.
- Copied updated guide to .
- Continued ID Vision compliance audit, ensuring consistent handling of random string IDs
  across various core and event models (Account, Address, Contact, DataStore, Event Badge Template).
- Consolidated ID Vision E2E tests and updated related documentation.
- Minor updates to  and
  to support Event File data retrieval with .
This commit is contained in:
Scott Idem
2026-02-19 15:22:17 -05:00
parent 577d784fb8
commit 17a627a981
17 changed files with 391 additions and 185 deletions

View File

@@ -67,6 +67,7 @@ events_general_obj_li = {
'base_name': Event_File_Base,
# V3 Search Security:
'searchable_fields': [
'account_id', 'account_id_random',
'event_id', 'event_file_id', 'hosted_file_id',
'event_file_id_random', 'hosted_file_id_random', 'event_id_random',
'event_exhibit_id_random', 'event_location_id_random',
@@ -114,6 +115,7 @@ events_general_obj_li = {
'base_name': Event_Cfg_Base,
# V3 Search Security:
'searchable_fields': [
'account_id', 'account_id_random',
'event_cfg_id_random', 'event_id_random',
'status', 'notes', 'updated_on'
],

View File

@@ -20,6 +20,7 @@ events_presentation_obj_li = {
'base_name': Event_Abstract_In,
# V3 Search Security:
'searchable_fields': [
'account_id', 'account_id_random',
'event_abstract_id_random', 'event_id_random', 'event_person_id_random',
'code', 'external_id', 'name', 'description', 'abstract', 'enable',
'hide', 'priority', 'sort', 'group', 'notes', 'created_on', 'updated_on'
@@ -41,6 +42,7 @@ events_presentation_obj_li = {
'base_name': Event_Location_Base,
# V3 Search Security:
'searchable_fields': [
'account_id', 'account_id_random',
'event_location_id_random', 'event_id_random', 'code', 'name',
'description', 'location_type', 'internal_use', 'enable', 'hide',
'public', 'public_hide', 'hide_event_launcher', 'priority', 'sort',
@@ -63,6 +65,7 @@ events_presentation_obj_li = {
'base_name': Event_Presentation_Base,
# V3 Search Security:
'searchable_fields': [
'account_id', 'account_id_random',
'event_presentation_id_random', 'event_id_random',
'event_abstract_id_random', 'event_location_id_random',
'event_session_id_random', 'event_track_id_random', 'code', 'name',
@@ -97,6 +100,7 @@ events_presentation_obj_li = {
],
# V3 Search Security:
'searchable_fields': [
'account_id', 'account_id_random',
'event_presenter_id_random', 'event_id_random',
'event_person_id_random', 'event_presentation_id_random',
'event_session_id_random', 'person_id_random', 'code', 'informal_name',
@@ -123,6 +127,7 @@ events_presentation_obj_li = {
'base_name': Event_Session_Base,
# V3 Search Security:
'searchable_fields': [
'account_id', 'account_id_random',
'event_session_id_random', 'event_id_random',
'event_location_id_random', 'event_track_id_random', 'code', 'name',
'description', 'type_code', 'start_datetime', 'end_datetime',
@@ -145,6 +150,7 @@ events_presentation_obj_li = {
'base_name': Event_Track_Base,
# V3 Search Security:
'searchable_fields': [
'account_id', 'account_id_random',
'event_track_id_random', 'event_id_random',
'event_location_id_random', 'name', 'description', 'track_type',
'enable', 'hide', 'poc_agree', 'file_count', 'file_count_all', 'public', 'public_hide', 'hide_event_launcher',

View File

@@ -48,9 +48,9 @@ events_registration_obj_li = {
'base_name': Event_Badge_Template_Base,
# V3 Search Security:
'searchable_fields': [
'id', 'event_badge_template_id', 'event_id',
'id_random', 'event_badge_template_id_random', 'event_id_random', 'name',
'description', 'layout', 'notes', 'enable',
'id', 'event_badge_template_id', 'event_id', 'account_id',
'id_random', 'event_badge_template_id_random', 'event_id_random', 'account_id_random',
'name', 'description', 'layout', 'notes', 'enable',
'created_on', 'updated_on'
],
},