Key Accomplishments:

1. Badge Model Updates: Added print_count, print_first_datetime, and print_last_datetime to the
      Event_Badge_Basic_Base model.
   2. Soft Delete in V3 CRUD: Implemented a method query parameter (delete, hide, disable) for the DELETE
      endpoints in api_crud_v3.py.
   3. Security Hardening: Populated searchable_fields allowlists for all objects across the V3 CRUD
      definitions (core.py, events.py, orders.py, cms.py, lookups.py, membership.py, other.py).
   4. Shared Documentation: Created /home/scott/agents_sync/Aether/api_v3.md to coordinate these V3 API
      features with the Svelte agent and other tools.
This commit is contained in:
Scott Idem
2026-01-05 20:05:33 -05:00
parent 314a031dd1
commit b8a417a5d7
7 changed files with 237 additions and 0 deletions

View File

@@ -23,6 +23,15 @@ core_obj_li = {
'table_name': 'v_activity_log',
'tbl_name_update': 'activity_log',
'base_name': Activity_Log_Base,
# V3 Search Security:
'searchable_fields': [
'activity_log_id_random', 'account_id_random', 'person_id_random',
'user_id_random', 'external_client_id', 'name', 'description',
'source', 'url_root', 'url_full_path', 'object_type',
'object_id_random', 'action', 'action_with', 'action_on_type',
'action_on_id_random', 'action_on_code', 'code', 'type_name',
'details', 'enable', 'hide', 'priority', 'group', 'created_on', 'updated_on'
],
},
'account': {
'tbl': 'account',
@@ -36,6 +45,11 @@ core_obj_li = {
'table_name': 'account',
'tbl_name_update': 'account',
'base_name': Account_Base,
# V3 Search Security:
'searchable_fields': [
'account_id_random', 'code', 'name', 'short_name', 'description',
'enable', 'created_on', 'updated_on'
],
},
'account_cfg': {
'tbl': 'account_cfg',
@@ -49,6 +63,14 @@ core_obj_li = {
'table_name': 'v_account_cfg',
'tbl_name_update': 'account_cfg',
'base_name': Account_Cfg_Base,
# V3 Search Security:
'searchable_fields': [
'account_cfg_id_random', 'account_id_random', 'account_code',
'account_name', 'account_short_name', 'default_no_reply_email',
'default_no_reply_name', 'confirm_email', 'help_event_email',
'help_general_email', 'help_tech_email', 'stripe_account_id',
'created_on', 'updated_on'
],
},
'address': {
'tbl': 'address',
@@ -62,6 +84,14 @@ core_obj_li = {
'table_name': 'v_address',
'tbl_name_update': 'address',
'base_name': Address_Base,
# V3 Search Security:
'searchable_fields': [
'address_id_random', 'account_id_random', 'for_type', 'for_id_random',
'contact_id_random', 'name', 'attention_to', 'organization_name',
'line_1', 'line_2', 'line_3', 'city', 'country_subdivision_code',
'country_subdivision_name', 'state_province', 'postal_code',
'country_alpha_2_code', 'country_name', 'timezone', 'created_on', 'updated_on'
],
},
'contact': {
'tbl': 'contact',
@@ -75,6 +105,13 @@ core_obj_li = {
'table_name': 'v_contact',
'tbl_name_update': 'contact',
'base_name': Contact_Base,
# V3 Search Security:
'searchable_fields': [
'contact_id_random', 'account_id_random', 'for_type', 'for_id_random',
'name', 'title', 'tagline', 'description', 'timezone_name',
'email', 'email_status', 'phone_mobile', 'phone_office',
'website_url', 'website_name', 'priority', 'group', 'created_on', 'updated_on'
],
},
'data_store': {
'tbl': 'data_store',
@@ -88,6 +125,13 @@ core_obj_li = {
'table_name': 'v_data_store',
'tbl_name_update': 'data_store',
'base_name': Data_Store_Base,
# V3 Search Security:
'searchable_fields': [
'data_store_id_random', 'account_id_random', 'for_type', 'for_id_random',
'person_id_random', 'user_id_random', 'code', 'name', 'description',
'type', 'text', 'meta_text', 'access', 'enable', 'hide', 'priority',
'group', 'created_on', 'updated_on'
],
},
'organization': {
'tbl': 'organization',
@@ -101,6 +145,12 @@ core_obj_li = {
'table_name': 'v_organization',
'tbl_name_update': 'organization',
'base_name': Organization_Base,
# V3 Search Security:
'searchable_fields': [
'organization_id_random', 'account_id_random', 'contact_id_random',
'person_id_random', 'user_id_random', 'name', 'tagline', 'description',
'company', 'nonprofit', 'priority', 'group', 'created_on', 'updated_on'
],
},
'person': {
'tbl': 'v_person',
@@ -121,6 +171,17 @@ core_obj_li = {
'primary_email',
'enable', 'hide', 'priority', 'sort', 'group', 'notes', 'created_on', 'updated_on',
],
# V3 Search Security:
'searchable_fields': [
'person_id_random', 'account_id_random', 'contact_id_random',
'organization_id_random', 'user_id_random', 'membership_person_id_random',
'pronouns', 'informal_name', 'title_names', 'given_name', 'middle_name',
'family_name', 'designations', 'professional_title', 'full_name',
'informal_full_name', 'professional_full_name', 'affiliations',
'primary_email', 'tagline', 'lu_gender_name', 'source_code',
'external_id', 'status', 'hide', 'priority', 'group', 'enable',
'created_on', 'updated_on', 'username', 'user_name', 'user_email'
],
},
'user': {
'tbl': 'v_user',
@@ -141,6 +202,13 @@ core_obj_li = {
'username', 'name', 'email',
'enable', 'hide', 'priority', 'sort', 'group', 'notes', 'created_on', 'updated_on',
],
# V3 Search Security:
'searchable_fields': [
'user_id_random', 'account_id_random', 'contact_id_random',
'organization_id_random', 'person_id_random', 'username', 'name',
'email', 'enable', 'super', 'manager', 'administrator', 'public',
'verified', 'status_name', 'group', 'created_on', 'updated_on'
],
},
'user_role': {
'mdl': User_Role_Base,