high complexity extracted Organization Management Confidence: 100%
3
Components
18
Shared
0
User Stories
Yes
Analyzed

Description

Provides configuration and synchronization support for organizations that operate their own external member portals alongside the Meander platform. The primary use case is HLF, which is redesigning its "Min side" portal on the Dynamics platform and requires that Meander and the HLF portal do not overlap functionality or create conflicting data states. The feature includes an integration configuration page where an Org Admin can register the external portal's endpoint, configure which data domains are authoritative in each system, and trigger or schedule data synchronization operations.

Sources & reasoning

Explicitly a Fase 2 / phase-column value of 2 in the priority matrix (line 156), confirmed in the Fase 2 action list (line 348-349). Fase 2 maps to v1.0 per the ordinal normalization rule. HLF constraint described in detail at line 115.

  • Koordinering med eget portalprosjekt: HLF redesigner «min side» pĂ„ Dynamics-plattformen. Appen og portalen mĂ„ ikke overlappe eller motarbeide hverandre.
  • docs/source/likeperson.md · line 348-349
    Koordinering med HLFs eksterne portalprosjekt
  • docs/source/likeperson.md · line 155-156
    Koordinering med ekstern portal | - | - | - | ✓ | ✓ | MUST (HLF) | 2

Analysis

Business Value

HLF has an active parallel portal project on Microsoft Dynamics and has explicitly flagged that the Meander app and the Dynamics portal must not overlap or work against each other. Without a structured integration layer, HLF risks data fragmentation, duplicate membership records, and confused users who see inconsistent information across two systems. Delivering this feature is a condition for HLF's full adoption of Meander. It also demonstrates the platform's openness to coexistence with existing organizational infrastructure - a significant commercial message for other prospects who have incumbent systems they cannot immediately retire, consistent with the incremental rollout principle (§1.5).

Implementation Notes

Integration configuration is persisted in the organizations table as a config flag (not a separate area toggle) per the guideline that a config flag inside an area is preferred over a new area when only one tenant dimension varies. An ExternalPortalApiClient handles outbound HTTP calls to the registered endpoint using organization-scoped credentials stored in a secrets store (not in the main database). The ExternalPortalSyncService implements configurable field-level authority rules (which system owns which data domain) and handles conflict resolution on sync. Initial implementation targets read-only sync (Meander pulls membership and role data from the external portal); write-back is a later enhancement. API client uses exponential backoff and records sync results in the audit log.

Quality Assurance

Organization Administrator (primary)
1
Scenarios
6
UAT Steps
18
A11y Annotations
3
Role Boundaries
Organization Administrator

Organization Administrator

Quick UAT

  1. Logg inn i Admin-portalen som Organisasjonsadministrator. Naviger til Organisasjon → Ekstern portalintegrasjon.
  2. Registrer ekstern portalens endepunkt-URL og velg autentiseringsmetode. Lagre konfigurasjonen.
  3. Konfigurer datadomene-autoritet: velg hvilke datakategorier (f.eks. medlemsdata, aktivitetsdata) som er autoritative i Meander og hvilke som styres av den eksterne portalen.
  4. Trykk pÄ 'Test tilkobling' for Ä verifisere at Meander kan nÄ den eksterne portalens API.
  5. UtlÞs en manuell synkronisering ved Ä trykke 'Synkroniser nÄ'. Bekreft at synkroniseringsstatus viser 'PÄgÄr' og deretter 'FullfÞrt'.
  6. Kontroller synkroniseringslogg og bekreft at ingen konflikter ble registrert, eller at eventuelle konflikter vises med forklaring.

Quick UAT — Accessibility

  1. Logg inn i Admin-portalen som Organisasjonsadministrator. Naviger til Organisasjon → Ekstern portalintegrasjon.
    • Screen reader Sideoverskrift 'Ekstern portalintegrasjon' annonseres ved sidelast; navigasjonshierarki leses opp korrekt.
    • Keyboard / focus Sidebar-navigasjon nĂ„s med Tab; Enter Ă„pner Organisasjon-menyen; piltaster navigerer til Ekstern portalintegrasjon.
  2. Registrer ekstern portalens endepunkt-URL og velg autentiseringsmetode. Lagre konfigurasjonen.
    • Screen reader URL-felt annonseres med label 'Endepunkt-URL'; autentiseringsvalg leses opp som radiogruppe med valgt alternativ.
    • Keyboard / focus Alle skjemafelt nĂ„s med Tab; radioknapper navigeres med piltaster; Lagre-knapp nĂ„s med Tab og aktiveres med Enter.
    • Focus visibility Synlig fokusring pĂ„ alle skjemafelt og Lagre-knapp; obligatoriske felt er merket visuelt og med aria-required.
    • Contrast 4.5:1 for alle feltlabels og knappetekst; feilmeldinger ikke kun markert med farge.
  3. Konfigurer datadomene-autoritet: velg hvilke datakategorier (f.eks. medlemsdata, aktivitetsdata) som er autoritative i Meander og hvilke som styres av den eksterne portalen.
    • Keyboard / focus Domenekategorier nĂ„s med Tab; valg gjĂžres med Space eller piltaster; ingen drag-and-drop uten tastaturalternativ.
    • Focus visibility Fokusring synlig pĂ„ alle valgbare domener; valgt tilstand kommuniseres via aria-checked eller aria-selected.
    • Zoom Domeneoversikten er brukbar ved 200% zoom uten horisontal scrolling.
  4. Trykk pÄ 'Test tilkobling' for Ä verifisere at Meander kan nÄ den eksterne portalens API.
    • Screen reader Knapp 'Test tilkobling' annonseres korrekt; testresultat ('Tilkobling vellykket' / feilmelding) leses opp automatisk.
    • Focus visibility Synlig fokusring pĂ„ Test-knapp; fokusen flyttes ikke uventet under testing.
    • Live region 'Tilkobling vellykket' eller 'Tilkobling mislyktes: [feilbeskrivelse]' annonseres som polite live region.
  5. UtlÞs en manuell synkronisering ved Ä trykke 'Synkroniser nÄ'. Bekreft at synkroniseringsstatus viser 'PÄgÄr' og deretter 'FullfÞrt'.
    • Screen reader Statusendringer fra 'PĂ„gĂ„r' til 'FullfĂžrt' leses opp automatisk uten at brukeren mĂ„ fokusere elementet.
    • Touch target ≄ 24×24 CSS px for Synkroniser-knappen.
    • Live region 'Synkronisering pĂ„gĂ„r' og deretter 'Synkronisering fullfĂžrt' annonseres som polite live region.
  6. Kontroller synkroniseringslogg og bekreft at ingen konflikter ble registrert, eller at eventuelle konflikter vises med forklaring.
    • Screen reader LoggoppfĂžringer leses opp som tabell med korrekte kolonneoverskrifter; konfliktadvarsler annonseres med alert-rolle.
    • Keyboard / focus Logg-tabell navigeres med piltaster; konfliktrader kan Ă„pnes med Enter for detaljer.
    • Contrast Konfliktstatus kommuniseres ikke kun med farge; ikon eller tekstetikett brukes i tillegg til fargemarkering.

Role Boundaries

3 role(s) must NOT access this feature
  • Peer Mentor

    Ekstern portalintegrasjon finnes ikke i mobilappens navigasjon; direkte API-kall mot integrasjonskonfigurasjonsendepunkter returnerer 403.

  • Coordinator

    Ekstern portalintegrasjon finnes ikke i mobilappens navigasjon; koordinatorer har ikke tilgang til Admin-portalen.

  • Prospective Organization Representative

    Ingen tilgang til Admin-portalen; ekstern portalintegrasjon er ikke tilgjengelig fra salgsnettstedet.

Expected End State

Den eksterne portalens endepunkt er registrert og verifisert, datadomene-autoritet er konfigurert, og minst én vellykket synkronisering er loggfÞrt uten ulÞste konflikter. Meander og den eksterne portalen opererer nÄ med avklarte ansvarsgrenser for hvert datadomene.

User Stories

No user stories have been generated for this feature yet.