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

@@ -31,6 +31,12 @@ other_obj_li = {
'comments',
'enable', 'hide', 'priority', 'sort', 'group', 'notes', 'created_on', 'updated_on',
],
# V3 Search Security:
'searchable_fields': [
'sponsorship_id_random', 'account_id_random', 'name', 'description',
'website_url', 'level_str', 'enable', 'hide', 'priority', 'group',
'created_on', 'updated_on'
],
},
'sponsorship_cfg': {
'tbl': 'sponsorship_cfg',
@@ -42,6 +48,11 @@ other_obj_li = {
'table_name': 'v_sponsorship_cfg',
'tbl_name_update': 'sponsorship_cfg',
'base_name': Sponsorship_Cfg_Base,
# V3 Search Security:
'searchable_fields': [
'sponsorship_cfg_id_random', 'account_id_random', 'name',
'description', 'created_on', 'updated_on'
],
},
'archive': {
'tbl': 'archive',
@@ -72,6 +83,12 @@ other_obj_li = {
'enable', 'enable_from', 'enable_to',
'hide', 'priority', 'sort', 'group', 'notes', 'created_on', 'updated_on',
],
# V3 Search Security:
'searchable_fields': [
'archive_id_random', 'account_id_random', 'archive_type_id_random',
'name', 'description', 'filename', 'original_location', 'enable',
'hide', 'priority', 'group', 'created_on', 'updated_on'
],
},
'archive_content': {
'tbl': 'archive_content',
@@ -103,6 +120,12 @@ other_obj_li = {
'enable', 'enable_from', 'enable_to',
'hide', 'priority', 'sort', 'group', 'notes', 'created_on', 'updated_on',
],
# V3 Search Security:
'searchable_fields': [
'archive_content_id_random', 'archive_id_random', 'name',
'description', 'filename', 'original_location', 'enable', 'hide',
'priority', 'group', 'created_on', 'updated_on'
],
},
'hosted_file': {
'tbl': 'hosted_file',
@@ -126,6 +149,12 @@ other_obj_li = {
'enable'
'hide', 'priority', 'sort', 'group', 'notes', 'created_on', 'updated_on',
],
# V3 Search Security:
'searchable_fields': [
'hosted_file_id_random', 'account_id_random', 'hash_sha256', 'title',
'description', 'filename', 'extension', 'content_type', 'enable',
'hide', 'priority', 'group', 'created_on', 'updated_on'
],
},
'hosted_file_link': {
'tbl': 'hosted_file_link',
@@ -139,6 +168,12 @@ other_obj_li = {
'table_name': 'hosted_file_link',
'tbl_name_update': 'hosted_file_link',
'base_name': Hosted_File_Link_Base,
# V3 Search Security:
'searchable_fields': [
'hosted_file_link_id_random', 'hosted_file_id_random', 'for_type',
'for_id_random', 'enable', 'hide', 'priority', 'group',
'created_on', 'updated_on'
],
},
'stripe_log': {
'tbl': 'stripe_log',
@@ -148,6 +183,12 @@ other_obj_li = {
'table_name': 'stripe_log',
'tbl_name_update': 'stripe_log',
'base_name': Stripe_Log_Base_In,
# V3 Search Security:
'searchable_fields': [
'stripe_log_id_random', 'account_id_random', 'person_id_random',
'user_id_random', 'event_id_random', 'order_id_random', 'type',
'status', 'created_on', 'updated_on'
],
},
'cont_edu_cert': {
'tbl': 'cont_edu_cert',
@@ -159,6 +200,12 @@ other_obj_li = {
'table_name': 'v_cont_edu_cert',
'tbl_name_update': 'cont_edu_cert',
'base_name': Cont_Edu_Cert_Base,
# V3 Search Security:
'searchable_fields': [
'cont_edu_cert_id_random', 'account_id_random', 'event_id_random',
'name', 'description', 'code', 'enable', 'hide', 'priority',
'group', 'created_on', 'updated_on'
],
},
'cont_edu_cert_person': {
'tbl': 'cont_edu_cert_person',
@@ -170,6 +217,12 @@ other_obj_li = {
'table_name': 'v_cont_edu_cert_person',
'tbl_name_update': 'cont_edu_cert_person',
'base_name': Cont_Edu_Cert_Person_Base,
# V3 Search Security:
'searchable_fields': [
'cont_edu_cert_person_id_random', 'cont_edu_cert_id_random',
'person_id_random', 'enable', 'hide', 'priority', 'group',
'created_on', 'updated_on'
],
},
'grant': {
'tbl': 'grant',
@@ -181,5 +234,11 @@ other_obj_li = {
'table_name': 'v_grant',
'tbl_name_update': 'grant',
'base_name': Grant_Base,
# V3 Search Security:
'searchable_fields': [
'grant_id_random', 'account_id_random', 'code', 'name',
'description', 'enable', 'hide', 'priority', 'group',
'created_on', 'updated_on'
],
},
}