Saving notes

This commit is contained in:
Scott Idem
2026-01-26 19:20:51 -05:00
parent f7a17b2f99
commit 48e0a31cf5

View File

@@ -24,20 +24,23 @@ I am the **primary orchestrator and main helper** for the development of the **U
- **NULL Logic in Filters**: Confirmed that explicit frontend filters like `hide: false` will FAIL to match `NULL` database values in standard SQL equality. It is more robust to rely on the API's built-in `hidden=not_hidden` URL parameter, which handles `(hide = false OR hide IS NULL)` automatically. - **NULL Logic in Filters**: Confirmed that explicit frontend filters like `hide: false` will FAIL to match `NULL` database values in standard SQL equality. It is more robust to rely on the API's built-in `hidden=not_hidden` URL parameter, which handles `(hide = false OR hide IS NULL)` automatically.
- **V3 Action Router Paradigm**: Established a new pattern for specialized binary operations (Upload/Download) under `/v3/action/`, keeping the standard `/v3/crud/` routes clean for JSON metadata. - **V3 Action Router Paradigm**: Established a new pattern for specialized binary operations (Upload/Download) under `/v3/action/`, keeping the standard `/v3/crud/` routes clean for JSON metadata.
- **Vision ID safety Net**: Enhanced `lookup_id_random_pop` to resolve random string IDs found in any `*_id` field, ensuring "Vision" style payloads (where IDs are strings) are correctly converted to integers before database insertion even if the `*_id_random` field is missing. - **Vision ID safety Net**: Enhanced `lookup_id_random_pop` to resolve random string IDs found in any `*_id` field, ensuring "Vision" style payloads (where IDs are strings) are correctly converted to integers before database insertion even if the `*_id_random` field is missing.
- **Pydantic Response Exclusion**: Confirmed that `Field(exclude=True)` in Pydantic models is the most robust way to hide internal logistics fields (like `subdirectory_path`) from the client while keeping them available for backend logic.
- **V3 Search Security Mapping**: Discovered and fixed a gap where integer IDs (like `event_id`) were not explicitly listed in `searchable_fields` for some objects, preventing valid numeric filters from reaching the database.
## Session Summary & Progress (Jan 22, 2026) ## Session Summary & Progress (Jan 26, 2026)
This session focused on migrating and stabilizing the Hosted File management system into the V3 architecture. This session focused on stabilizing V3 object definitions and enhancing API privacy for file-related objects.
* **V3 Hosted File Migration (Complete):** * **V3 Search Stabilization:**
* **Stabilized Models:** Updated `Hosted_File_Base` and `Hosted_File_Link_Base` to prioritize integer IDs internally while ensuring random string mapping for the frontend. * Updated `event_device` object definitions to include integer ID fields (`id`, `event_device_id`, `account_id`, `event_id`, `event_location_id`) in `searchable_fields`. This resolves issues where lookups by parent IDs were being blocked by the V3 search security layer.
* **New Action Router:** Implemented `app/routers/api_v3_actions_hosted_file.py` containing specialized logic for Upload, Download (Streaming), and Relational Cleanup. * **Privacy & Information Hiding:**
* **Multi-File Upload:** Ported and enhanced upload logic to support `List[UploadFile]` with automatic SHA256 deduplication and relational linking. * Hiden internal file sharding paths (`subdirectory_path`) from all public-facing API responses.
* **Intelligent Deletion:** Implemented orphan check logic; files are only physically removed if `rm_orphan=true` and no remaining `hosted_file_link` records exist. * Implemented this via Pydantic `Field(exclude=True)` in `Hosted_File_Base`, `Event_File_Base`, and `Archive_Content_Base` models.
* **Frontend Guide:** Updated `V3_FRONTEND_API_GUIDE.md` with full documentation for the new V3 Action endpoints and synced it to `agents_sync`. * Removed these fields from `exp_default` and `searchable_fields` metadata to ensure a clean API contract.
* **Database Integrity:** * **Code Quality:**
* Verified and corrected `hosted_file.account_id` to `int(11)`, resolving a legacy schema mistake. * Fixed syntax errors (missing commas) in the `hosted_file` object definition within `app/object_definitions/other.py`.
* Verified successful creation and cleanup of test records via new E2E test suite. * Verified all changes via `py_compile` and service restarts.
* Committed all changes to the `development` branch.
## Current To-Do List ## Current To-Do List