The RE-SORT block after API revalidation only checked for 'name' (a legacy sort mode removed when sort_modes was introduced). 'name_asc' and 'name_desc' fell through to the else branch and were silently re-sorted chronologically by tmp_sort_1, overriding the user's selection. Updated to match the fast-path IDB sort logic which already handled all three modes correctly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
IDAA Integration Module
This module integrates features from the Aether (AE) application into the IDAA (International Doctors in Alcoholics Anonymous) website, which is powered by a system called Novi. The integration is achieved by embedding Aether pages within iframes inside the Novi site.
This directory (src/routes/idaa) contains the Svelte routes that correspond to the pages on the main IDAA site.
Architecture
The integration uses a multi-step iframe-based approach:
- Novi Page: A page on the IDAA website contains a snippet of code that loads a static HTML file from this Aether project's
static/directory into an iframe. - Static HTML Bridge: The static file (e.g.,
static/idaa_novi_iframe_archives.html) acts as a bridge. It contains JavaScript that: a. Executes within the context of the Novi site, allowing it to access Novi-specific data like the current user's unique ID (<%=Novi.User.CustomerUniqueId%>). b. Uses the Novi user ID to make a call to the Novi API to get more user details (like email and full name). c. Uses the retrieved user details to construct a URL for the actual Aether application page. d. Loads the Aether page into a nested iframe on the static page. - Aether Application: The final Aether page (e.g.,
/idaa/archives) receives the user information via URL parameters and displays the relevant content.
This architecture allows the Aether application to securely authenticate and identify the Novi user without a complex SSO integration.
Sub-modules
The IDAA integration includes the following features, each corresponding to a route in this directory and a static HTML bridge file.
IDAA - Archives
- Route:
/idaa/archives - Bridge File:
static/idaa_novi_iframe_archives.html - Functionality: Provides access to the Aether Archives module, allowing IDAA members to view and search archived content.
IDAA - Bulletin Board (BB)
- Route:
/idaa/bb - Bridge File:
static/idaa_novi_iframe_bulletin_board.html - Functionality: Provides a bulletin board or forum feature, powered by the Aether Posts module.
IDAA - Recovery Meetings
- Route:
/idaa/recovery_meetings - Bridge File:
static/idaa_novi_iframe_recovery_meetings.html - Functionality: Displays a list of recovery meetings. This may also integrate with a Jitsi meeting interface (
idaa_novi_iframe_jitsi_meeting.html).
Novi API Verification (brief)
The IDAA routes receive a uuid parameter when loaded via the Novi iframe bridge. The application verifies that UUID by calling Novi's customers API (using the novi_idaa_api_key from site config) and then sets verified fields in the IDAA store (novi_uuid, novi_email, novi_full_name, novi_verified).
For full implementation details, verification flow, and the list of site_cfg_json fields used by IDAA, see the client documentation: documentation/CLIENT__IDAA_and_customized_mods.md.