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

@@ -17,6 +17,11 @@ membership_obj_li = {
'table_name': 'v_membership_cfg',
'tbl_name_update': 'membership_cfg',
'base_name': Membership_Cfg_Base,
# V3 Search Security:
'searchable_fields': [
'membership_cfg_id_random', 'account_id_random', 'name', 'description',
'created_on', 'updated_on'
],
},
'membership_group': {
'tbl': 'membership_group',
@@ -28,6 +33,11 @@ membership_obj_li = {
'table_name': 'v_membership_group',
'tbl_name_update': 'membership_group',
'base_name': Membership_Group_Base,
# V3 Search Security:
'searchable_fields': [
'membership_group_id_random', 'account_id_random', 'code', 'name',
'description', 'enable', 'hide', 'priority', 'group', 'created_on', 'updated_on'
],
},
'membership_person_group': {
'tbl': 'membership_person_group',
@@ -39,6 +49,12 @@ membership_obj_li = {
'table_name': 'v_membership_person_group',
'tbl_name_update': 'membership_person_group',
'base_name': Membership_Person_Group_Base,
# V3 Search Security:
'searchable_fields': [
'membership_person_group_id_random', 'membership_person_id_random',
'membership_group_id_random', 'enable', 'hide', 'priority', 'group',
'created_on', 'updated_on'
],
},
'membership_person': {
'tbl': 'membership_person',
@@ -50,6 +66,11 @@ membership_obj_li = {
'table_name': 'v_membership_person',
'tbl_name_update': 'membership_person',
'base_name': Membership_Person_Base,
# V3 Search Security:
'searchable_fields': [
'membership_person_id_random', 'account_id_random', 'person_id_random',
'status', 'enable', 'hide', 'priority', 'group', 'created_on', 'updated_on'
],
},
'membership_person_profile': {
'tbl': 'membership_person_profile',
@@ -61,6 +82,12 @@ membership_obj_li = {
'table_name': 'v_membership_person_profile',
'tbl_name_update': 'membership_person_profile',
'base_name': Membership_Person_Profile_Base,
# V3 Search Security:
'searchable_fields': [
'membership_person_profile_id_random', 'membership_person_id_random',
'informal_name', 'given_name', 'family_name', 'full_name',
'email', 'enable', 'hide', 'priority', 'group', 'created_on', 'updated_on'
],
},
'membership_type': {
'tbl': 'membership_type',
@@ -72,6 +99,11 @@ membership_obj_li = {
'table_name': 'v_membership_type',
'tbl_name_update': 'membership_type',
'base_name': Membership_Type_Base,
# V3 Search Security:
'searchable_fields': [
'membership_type_id_random', 'account_id_random', 'code', 'name',
'description', 'enable', 'hide', 'priority', 'group', 'created_on', 'updated_on'
],
},
'membership_person_type': {
'tbl': 'membership_person_type',
@@ -83,5 +115,11 @@ membership_obj_li = {
'table_name': 'v_membership_person_type',
'tbl_name_update': 'membership_person_type',
'base_name': Membership_Person_Type_Base,
# V3 Search Security:
'searchable_fields': [
'membership_person_type_id_random', 'membership_person_id_random',
'membership_type_id_random', 'enable', 'hide', 'priority', 'group',
'created_on', 'updated_on'
],
},
}