Files
OSIT-AE-App-Svelte/TODO.md
2026-01-07 19:34:30 -05:00

7.3 KiB

One Sky IT's Aether UI/UX Project TODO

This is a list of tasks to be completed before the next event/show/conference.


Recent Accomplishments

  • JWT Authentication (2026-01-07): Implemented frontend infrastructure for JWT. Standardized usage across all CRUD V3 operations, updated authentication logic to capture tokens, and enhanced API helpers to automatically inject 'Authorization' headers using standard casing.
  • API Robustness (2026-01-07): Fixed a critical 'ReferenceError' in the POST helper and resolved 500 errors by standardizing header kebab-casing and preserving standard casing for keys like 'Authorization'.
  • Activity Log Management (2026-01-07): Fully migrated to V3 CRUD. Created a standalone management page and integrated filtered activity history into the Person detail view.
  • Editable Fields Whitelists (2026-01-07): Applied the editable_fields.ts pattern to all remaining AE objects across Journals, Events, and Sponsorships modules.
  • Core Module Migration (2026-01-06): Fully migrated Accounts, Sites, Site Domains, People, Users, and Activity Logs to Aether API CRUD V3. Implemented standardized "API -> Processor -> DB Save" pattern and editable field whitelists.
  • Core Management UI (2026-01-06): Scaffolded the management dashboard and list/detail routes for Accounts, Sites, Users, and Lookups.
  • Event Badges V3 (2026-01-06): Completed migration of Create, Update, and Delete operations to V3 nested CRUD.
  • IDAA Module Migration (2026-01-06): Migrated Archives and Recovery Meetings (Events) to V3. Implemented local filtering workaround for 'conference' field restriction.
  • Core Placeholders (2026-01-06): Built UI and V3 logic placeholders for Addresses and Contacts.
  • Journals Module Migration: Fully migrated to V3 CRUD.
  • UI Libraries Updated: Successfully updated SkeletonLabs to v4.7.4 and Flowbite-Svelte to v4.0.1.

Big Picture Goals

  • Everything needs to work with Svelte 5.x and SvelteKit 2.x.
  • Able to cache data and mostly work offline (using Dexie/IndexedDB).
  • The new Events Launcher must be able to run inside an Electron app and have access to local files and OS shell commands.

Aether API CRUD V3 Integration

  • Core API Wrappers:
    • Implement GET list and search wrappers (get_ae_obj_li_v3, search_ae_obj_v3).
    • Implement Create (POST) wrappers (create_ae_obj_v3, create_nested_obj_v3).
    • Implement Update (PATCH) wrappers (update_ae_obj_v3, update_nested_obj_v3).
    • Implement Delete (DELETE) wrapper (delete_ae_obj_v3).
    • Implement single object GET wrapper (get_ae_obj_v3).
  • Authentication & Security:
    • Standardize JWT usage in headers for all V3 calls.
    • Update file download logic to support JWT in URL parameters.
  • Site Domain Search (MIGRATED): Successfully implemented lookup_site_domain_v3. This resolves the Bootstrap Paradox by allowing unauthenticated lookups for site domains via the new V3 search endpoint.
    • TECHNICAL NOTE (2026-01-07): Initial testing on /testing shows the search might be failing silently or returning an unexpected structure.
    • TODO (Tomorrow):
      • Refactor post_object in src/lib/ae_api/api_post_object.ts to use the custom fetch from api_cfg (matching api_get_object.ts).
      • Update post_object to use json.data !== undefined ? json.data : json to robustly handle different V3 response envelopes.
      • Verify if the 403 Forbidden for guest search is fully resolved on the backend or if header stripping in lookup_site_domain_v3 is sufficient.
  • Module Migration:
    • Journals: Fully migrated to V3 CRUD.
    • Events - Badges: Fully migrated to V3 CRUD.
    • Core Modules: Fully migrated (Accounts, Sites, People, Users, Activity Log).
    • IDAA Modules: (In progress)
      • Archives & Archive Content.
      • Recovery Meetings (Events).
      • Bulletin Board (Posts).
  • Agent Coordination:
    • Establish identity as frontend_svelte.
    • Send test greeting to backend_fastapi.
    • Periodically check inbox for API updates.

Core Module Improvements

1. Core Module Dashboard

  • Create a central dashboard at /core to provide an overview and links to all core data management pages.

  • Add Activity Log management card.

  • Route: Create a new route at /core/accounts.

  • API: Implement functions in ae_core__account.ts for CRUD operations on accounts.

  • UI:

    • Create a +page.svelte to list all accounts.
    • Create a [account_id] dynamic route to view and edit account details.

3. Site & Domain Management

  • Route: Create a new route at /core/sites.
  • API: Implement functions in ae_core__site.ts for CRUD operations on sites and domains.
  • UI:
    • Create a +page.svelte to list all sites.
    • Create a [site_id] dynamic route to view and edit site details and manage associated domains.

4. Person Management

  • Enhance: Improve the existing person management components under /core/people.
  • UI:
    • Implement searchable person list (Comp_person_search).
    • Create a dedicated page/form for creating and editing person records.
    • Implement User-Person linking UI in the detail page.
    • Implement Linked Activity & Content section.

5. User Management

  • Route: Create a new route at /core/users.
  • UI:
    • Create a +page.svelte to list all users.
    • Create a [user_id] dynamic route to view and edit user details, including permissions.
    • Implement logic to link users to person records.

6. Shared Lookup Lists

  • Route: Create a new route at /core/lookups.
  • UI:
    • Create a simple UI to view and manage the shared lookup lists (e.g., countries, time_zones).

7. Address & Contact Management

  • Logic: Implement V3 CRUD wrappers and Dexie tables.
  • UI: Create placeholder list pages at /core/addresses and /core/contacts.
  • Detail Pages: Create dynamic routes for viewing and editing specific records.

Codebase Standardization

  • Naming Conventions: Enforce snake_case and consistent file naming (ae_<module>__<concept>.ts).
  • Rich Text Editor: Migration to CodeMirror complete.
  • Editable Fields: Apply the ae_<module>__<object>.editable_fields.ts pattern to all remaining objects.

Technical Debt & Refactoring

  • Refactor api.ts God Object:
    • Extract Lookup functions (get_ae_obj_li_for_lu) to $lib/ae_api/api_get__lu.ts.
    • Extract Hosted File functions (download_hosted_file, delete_hosted_file) to $lib/ae_api/api_hosted_files.ts.
    • Extract Legacy CRUD functions (create_ae_obj_crud, update_ae_obj_id_crud, delete_ae_obj_id_crud) to $lib/ae_api/api_crud_legacy.ts.
    • Extract Utility functions (get_data_store_obj_w_code, send_email) to $lib/ae_api/api_utils.ts.
    • Convert api.ts into a pure barrel file that only exports the unified api object for backward compatibility.
  • Svelte 5 Runes Migration: Ongoing effort to replace legacy reactivity with $state and $derived.