Commit Graph

1221 Commits

Author SHA1 Message Date
Scott Idem
68e883ba98 feat(v3-data-store): harden search security and standardize test suite 2026-02-09 19:03:04 -05:00
Scott Idem
9715d28bd6 feat(v3-vision): implement resilient "Heal-on-Read" ID resolution
1. Hardened Event_Exhibit and Event_Exhibit_Tracking models with automatic Redis/DB fallback for missing string IDs.
2. Fully modernized Event_Person_Tracking_Base to the Vision Standard (Union IDs + Root Validator).
3. Enabled account-based search for event_person_tracking.
4. Verified all changes via e2e demo parity suite.
2026-02-07 19:27:44 -05:00
Scott Idem
e8f9472c5c feat(v3-api): whitelist lead detail fields for exhibit tracking search
Added 'event_badge_full_name', 'event_badge_affiliations', 'event_badge_email', and 'event_badge_location' to the searchable_fields for event_exhibit_tracking.
2026-02-07 18:51:15 -05:00
Scott Idem
fe368e2f64 feat(v3-api): enable account-based search for exhibit tracking
1. Added 'account_id' and 'account_id_random' to searchable_fields for event_exhibit_tracking.
2. Updated tests/README.md with descriptions for the latest E2E test scripts (Demo Parity, Event Actions, Zoom).
2026-02-07 18:09:45 -05:00
Scott Idem
7084dd3472 Saving notes 2026-02-06 18:15:12 -05:00
Scott Idem
42bea571e9 test: preserve archived debug scripts 2026-02-06 18:13:48 -05:00
Scott Idem
2a7c27ba80 fix(v3-vision): implement fallback resolution for relational IDs
1. Added fallback mechanism to Event_File_Base to resolve string IDs from integers when views return partial data.\n2. Added 'a2pPIT_W28o' as a permanent regression test target.\n3. Hardened lu_file_purpose_id stripping.
2026-02-06 18:13:40 -05:00
Scott Idem
8270f7ff7a fix(v3-actions): implement from_hosted_file and harden vision IDs
1. Implemented specialized 'from_hosted_file' action for Event Files.\n2. Fixed ValueError in Pydantic models by removing default/default_factory conflict.\n3. Hardened integer stripping to strictly enforce Vision Standards.\n4. Updated documentation for the new action route.
2026-02-06 16:23:18 -05:00
Scott Idem
64d73c4d5c fix(registry): finalize event_badge model mapping 2026-02-06 16:16:18 -05:00
Scott Idem
d5e685dee8 fix(v3-vision): strict integer stripping and demo parity verification
1. Hardened all demo models to set non-string ID fields to None, ensuring full Vision Standard compliance.\n2. Added status_id_random to common field schema.\n3. Verified account_id availability in exhibit tracking.\n4. Added comprehensive E2E parity test suite for demo objects.\n5. Fixed NameError by importing root_validator.
2026-02-06 16:16:08 -05:00
Scott Idem
f3662f9462 fix(v3-vision): final hardening of demo models
Standardized Badge, Exhibit, and Tracking models to ID Vision standards. Included account_id support for exhibit tracking and removed legacy validators to ensure stable CRUD operations for the Tuesday demo.
2026-02-06 15:46:05 -05:00
Scott Idem
4aadb4ec1c Update related to object aliases. 2026-02-06 14:20:19 -05:00
Scott Idem
b63131e3fa fix(v3-nested): support aliases in nested CRUD routes
1. Added 'entry' alias for 'journal_entry' in object definitions.\n2. Updated nested router to resolve physical table names from the registry before ID resolution.\n3. Updated ID resolution helpers to recognize 'entry' prefix.\nThis resolves 404 errors when using shorter aliases in nested paths (e.g., /journal/{id}/entry/).
2026-02-06 14:13:22 -05:00
Scott Idem
b9c00e423c Less debug! 2026-02-06 13:56:40 -05:00
Scott Idem
b10b5839c7 fix(config): harden bootstrap logic and add email E2E test
Harden bootstrap_db_config to prioritize .env settings for core infrastructure (DB/SMTP) and only use DB values if placeholders are detected or values have explicitly changed. Added test_e2e_email_send.py for functional SMTP verification.
2026-02-06 12:56:13 -05:00
Scott Idem
1053d8a81b fix(sql): handle record_id=0 correctly in CRUD utilities
Updated sql_select, sql_update, and sql_delete to use explicit 'is not None' checks for record_id. This prevents falsy ID values (like 0) from triggering generic table scans or failing to filter, which was causing the config bootstrap to accidentally load record ID 1 when ID 0 was requested.
2026-02-06 12:53:59 -05:00
Scott Idem
37a43babb9 fix(v3-actions): fix UnicodeEncodeError in download filenames
Hardened StreamingResponse headers to use RFC 6266 filename* parameter with UTF-8 encoding. This prevents the latin-1 codec crash when filenames contain non-ASCII characters like smart quotes.
2026-02-06 10:44:22 -05:00
Scott Idem
1492b01dad Saving notes 2026-02-05 20:42:43 -05:00
Scott Idem
a7c82615ab fix(v3-vision): platform-wide hardening of ID Vision models
Hardened root_validators in Journal, Post, Page, and Hosted File models to use Union[int, str] for Vision ID fields. This prevents resolved integer IDs from being deleted during CREATE/UPDATE operations, resolving a critical regression found during Post Comment bug fixing.
2026-02-05 20:38:19 -05:00
Scott Idem
78f04bca50 fix(v3-vision): allow resolved integers to pass model validation during creation
Hardened root_validators in Event and Post Comment models to use Union[int, str] for Vision ID fields. This ensures that integer IDs resolved by sanitize_payload reach the database during POST/PATCH operations while maintaining clean string outputs for clients.
2026-02-05 20:30:44 -05:00
Scott Idem
03a1569eba test(v3-cms): add CMS Vision Parity E2E test 2026-02-05 19:28:03 -05:00
Scott Idem
1cfbf9ebad feat(v3-cms): standardize Post Comment IDs and enhance CMS searchability 2026-02-05 19:20:18 -05:00
Scott Idem
12d725f468 feat(v3-standardization): implement ID Vision for Event models and update docs 2026-02-05 17:37:52 -05:00
Scott Idem
907ff9a2f8 feat(v3-events): update events_general object definition with virtual/physical and external ID fields 2026-02-05 16:37:49 -05:00
Scott Idem
ac516c4d77 Saving notes 2026-02-03 19:10:31 -05:00
Scott Idem
2fe783784c feat(integration): initial Zoom Events backend integration
- Implemented Server-to-Server OAuth2 logic in e_zoom_methods.py.
- Created V3 Action router for Zoom (test_connection, fetch tickets, atomic sync).
- Added sync_zoom_attendees_to_event with mapping to Aether person/badge models.
- Registered /v3/action/e_zoom router.
- Added E2E connection test script.
2026-02-03 18:23:07 -05:00
Scott Idem
cc5af1c2e2 feat(api-v3): implement temporary ?key= access pattern and update guide
- Added ?key= query param support for unauthenticated direct downloads.
- Fixed site table column bug (auth_key -> access_key).
- Updated GUIDE__V3_FRONTEND_API.md with temporary auth documentation.
- Ensured valid keys bypass the 403 Machine Auth requirement.
2026-02-03 18:03:03 -05:00
Scott Idem
e29ff23f32 fix(api-v3): ensure subdirectory_path persistence and reload in file actions 2026-02-03 17:53:27 -05:00
Scott Idem
69622dbea6 refactor(core): modularize monolithic routers and methods
- Reduced api_crud.py (1843 -> 143 lines) by extracting V1 registry and logic.
- Reduced hosted_file.py (1596 -> 361 lines) by moving storage and media logic to methods.
- Created lib_media.py for specialized video/image processing.
- Created api_crud_methods.py for legacy template handlers.
- Created legacy_v1.py for the legacy object registry.
- Fixed subdirectory_path bug in Hosted File creation.
- Verified full File Lifecycle via consolidated E2E suite.
2026-02-03 17:53:14 -05:00
Scott Idem
37c84de57b chore(tests): consolidate E2E test suite into standardized primary scripts
- Combined 10+ one-off tests into 4 primary functional suites (Search, Auth, Lifecycle, Vision).
- Archived original scripts to tests/archive/.
- Updated README with the new standardized inventory.
- Applied clean output formatting across the new suite.
2026-02-03 16:50:18 -05:00
Scott Idem
29f6cf258f chore(tests): reorganize test suite and archive redundant scripts
- Moved legacy/redundant tests to tests/archive/.
- Relocated root-level debug scripts to tests/integration/.
- Updated tests/README.md with final organized inventory.
- Cleaned up root directory from one-off reproduction scripts.
2026-02-03 16:18:57 -05:00
Scott Idem
d43474ea4b feat(registry): standardize searchable_fields and add developer reminders
- Added id_random, account_id_random, created_on, and updated_on to searchable whitelists.
- Standardized field coverage for Core and Other (Archive/HostedFile) modules.
- Added Developer Handshake comments to prevent future whitelist/model desync.
- Verified via new E2E registry test suite.
2026-02-03 15:51:05 -05:00
Scott Idem
53db20f627 fix(data-store): add missing imports and async fixes for V3 code lookup 2026-02-03 15:37:20 -05:00
Scott Idem
54d6bd8864 test(api-v3): update E2E tests for ID Vision, hash-downloads, and data_store parity 2026-02-03 15:34:12 -05:00
Scott Idem
5eaae99702 docs: add critical reminder comments for searchable_fields and ID resolution 2026-02-03 14:52:32 -05:00
Scott Idem
03154ab95b feat(data-store): add advanced search and delay support to V3 code lookup 2026-02-03 14:51:04 -05:00
Scott Idem
fde729d474 feat(hosted-file): add archive_content to intelligent download ID resolution 2026-02-03 14:42:24 -05:00
Scott Idem
d957f5d167 docs: update README with V3 Actions progress and nested search support 2026-02-03 14:17:05 -05:00
Scott Idem
9362938ffe feat(api-v3): add advanced search and view support to nested CRUD router 2026-02-03 14:10:41 -05:00
Scott Idem
9e423806df feat(hosted-file): add filename_no_ext and filename_w_ext to Hosted_File_Base model 2026-02-03 14:06:42 -05:00
Scott Idem
6f7fde7b87 test(hosted-file): add debug and E2E tests for hash-based download 2026-02-03 13:44:28 -05:00
Scott Idem
07609bae9a feat(hosted-file): implement hash-based download action and flexible auth
- Adds GET /v3/action/hosted_file/hash/{sha256}/download for direct content-addressable storage access.
- Updates V3 authentication dependencies to support 'api_key' in the query parameter (alias 'api_key').
- Implements auth_method: 'api_key' for machine-to-machine requests that provide a valid key but no user/account context.
- Updates GUIDE__V3_FRONTEND_API.md with the new endpoint and auth options.
2026-02-03 13:44:07 -05:00
Scott Idem
faa6de866d test(event-file): add E2E test for V3 event_file upload action 2026-02-03 12:54:41 -05:00
Scott Idem
bcd466edc7 feat(event-file): implement atomic V3 upload action for event files
- Creates api_v3_actions_event_file.py with a specialized /upload endpoint.
- Handles physical storage (hosted_file), generic linking, and event association (event_file) in one request.
- Implements intelligent ID resolution to prevent duplicate event associations for the same physical file.
- Updates documentation in GUIDE__V3_FRONTEND_API.md.
2026-02-03 12:54:17 -05:00
Scott Idem
ea117bf268 feat(hosted-file): implement intelligent ID resolution for V3 download action
- Updates download_file_action to automatically resolve container IDs (like event_file) to the underlying hosted_file.
- Updates GUIDE__V3_FRONTEND_API.md to document the 'ID Vision' standard for downloads.
- Resolves 404 errors observed when frontend passed event_file IDs to the hosted_file download endpoint.
2026-02-03 12:05:04 -05:00
Scott Idem
f449e59b55 Saving notes 2026-01-30 18:13:48 -05:00
Scott Idem
b89264fe19 docs(websockets): add infrastructure requirements and troubleshooting to guides 2026-01-30 18:11:23 -05:00
Scott Idem
192a5d76b5 Removing extra test 2026-01-30 17:57:27 -05:00
Scott Idem
39391e5949 test(websockets): add real-world integration and ping tests for V3
- Added test_ws_v3_ping.py for gateway connectivity verification.
- Added test_int_websockets_v3_real.py for multi-client routing isolation verification.
- Updated Script Inventory in tests/README.md.
2026-01-30 17:55:45 -05:00
Scott Idem
48c3ce76f0 feat(websockets): implement WebSockets V3 with granular Redis Pub/Sub
- Introduced WS_Message_V3 standardized Pydantic model and WS_Manager_V3.
- Implemented /v3/ws/ endpoint with granular Redis routing to solve "noisy neighbor" scaling issues.
- Added presence tracking using Redis Sets for group coordination.
- Comprehensive test suite added (unit and integration) covering models, manager, and routing logic.
- Documentation: Created V3 Frontend WebSocket Guide and Project design spec.
- Updated main Frontend API guide and tests README with new standards.
2026-01-30 14:44:02 -05:00