Data Layer
78 components in the data layer layer
Data Layer components manage data persistence, storage operations, and data access patterns throughout the application.
Secure on-device storage adapter for JWT access and refresh tokens on the Flutter mobile app. Uses Flutter Secure Storage backed by iOS Keyc...
Persists and queries the mapping between a Vipps sub-claim identifier and a Meander user account. Supports account linking on first login an...
Hardware-backed secure enclave adapter wrapping flutter_secure_storage to persist and retrieve JWT refresh tokens. Ensures tokens are stored...
Data access layer for role assignment records in the PostgreSQL user_roles table. Handles CRUD operations for role assignments, supports mul...
Data access layer for reading and writing user records scoped to their organization tenant. Performs CRUD operations against the users and u...
Persists the selected active role and organizational context across app sessions using secure device storage (Keychain on iOS, Keystore on A...
Persists server-side public key material for registered passkeys, linked to the users table. Supports multi-device passkey registration, cre...
Data access layer that abstracts reads and writes for activity records across the remote REST API and the local SQLite cache. Implements an ...
Data access layer that persists proxy-registered activities with dual identity context. Stores the activity owner (peer mentor) and recorder...
Shared data access layer for creating, reading, updating, and deleting activity records. Used by simple activity logging, the activity regis...
Manages batch reference IDs generated at the start of each bulk registration operation. Each batch reference ties together all activity reco...
Data access layer managing event persistence across local SQLite (offline drafts) and the remote PostgreSQL database (via the REST API throu...
Data access layer managing reads and writes to the event_registrations table. Applies optimistic local updates on the mobile side so the UI ...
Data access layer that mediates between Expense Service and the REST API for all expense CRUD operations. Handles local caching for offline ...
Data access layer for the expense_receipts table. Persists receipt metadata (object key, URL, file size, MIME type) linked to the parent exp...
Data access layer responsible for reading expense type definitions and their associated business rules (mutual exclusions, receipt requireme...
Data access layer for signed declaration records. Provides CRUD operations against the declarations table in PostgreSQL, enforcing the assoc...
Data access layer for contact entities. Issues REST API calls to `/api/v1/contacts` with pagination, search, and filter query parameters. Ca...
Data access layer for the contact_caregivers resource, abstracting REST API communication for the /api/v1/contacts/:id/caregivers endpoints....
Data access layer for notes, issuing REST API requests to the backend notes endpoint with pagination, search, and sort parameters. Caches re...
Data access layer responsible for fetching personal statistics from the REST API backend. Issues authenticated GET requests to the statistic...
Data access layer for the bufdir_reports and reporting_periods tables. Provides CRUD operations for persisting generated report snapshots an...
Reads and writes per-organization accounting integration configuration from the integration_configs table, including target system type, end...
Handles local caching and remote sync for assignments, providing offline resilience so peer mentors can view previously loaded assignments w...
Manages per-organisation honorarium threshold configuration (e.g. threshold_1=3, rate_1=X, threshold_2=15, rate_2=Y) stored in organization_...
Append-only repository that records every threshold-crossing event for a peer mentor, including the threshold crossed, the timestamp, and th...
Data access layer for the device_tokens table. Provides CRUD operations for storing and querying FCM/APNs tokens per user with platform meta...
Manages persistence of notification records in the notifications table, enabling the in-app notification inbox. Stores payload metadata, rea...
Stores and retrieves server-side email and SMS templates, supporting organization-level overrides for branding, sender names, and custom wor...
Stores and retrieves all configurable scenario records that define notification trigger rules. Each record encodes trigger type (time-based,...
Data access layer for the notification_preferences table, which has a one-to-one relationship with users. Handles create-on-first-access sem...
Data access layer for the referrals table. Provides local caching of the active referral token for the authenticated user and delegates crea...
Data access layer for the referrals table. Provides CRUD operations and aggregation queries used by the tracking service and coordinator rep...
Data access layer for the courses and course_enrollments tables. Provides multi-tenant-safe queries scoped to the user's organization, with ...
Data access layer for the certifications table, providing CRUD operations for certificate records linked to users and organizations. Exposes...
Data access layer for retrieving and managing workshop participant lists. Queries the course_enrollments table filtered by workshop-type cou...
Data access layer that persists and retrieves pre-computed annual summary payloads in the PostgreSQL database. Stores the full summary JSON ...
Data repository managing the achievements and user_achievements tables. Provides CRUD operations for badge definitions and user badge unlock...
Data repository managing configuration-driven badge criteria definitions stored as structured JSON rows. Enables runtime addition of new bad...
Local data layer that caches organization-specific benefit rate configurations fetched from the backend, enabling fully offline calculator o...
Provides access to the talking card dataset, abstracting over remote API fetching and local cache reads. Supports organization-specific card...
Immutable Dart class that defines all WCAG 2.2 AA-compliant design tokens: color pairs guaranteed to meet contrast thresholds, typography sc...
In-app constant registry that defines the canonical list of sensitive personal data field types and their corresponding warning messages. Se...
BLoC managing the lifecycle of dashboard screen state including loading, loaded, and error states. Drives reactive UI updates for both PeerM...
Persists user preferences using a dual-storage strategy: flutter_secure_storage for sensitive values and the REST API endpoint /api/v1/users...
Backend data repository managing the resource_links table scoped to organization ID. Provides CRUD operations consumed by both the REST API ...
Local persistence layer using SQLite (via the shared local database) to queue support request payloads when the device has no connectivity. ...
Data component that stores and retrieves FAQ question-answer pairs with category metadata. Supports backend fetch via REST API and local cac...
Device-local SQLite database managed via the drift or sqflite Flutter package. Maintains a schema mirroring the server-side data model for t...
Persists the ordered queue of write operations that could not be sent to the server while offline. Each entry records the operation type, ta...
Provides durable, ordered storage for pending sync operations in the local SQLite database. Each entry records the operation type, target en...
Data access layer for querying activity statistics, snapshot data, and aggregated metrics from PostgreSQL. Provides optimized aggregate quer...
Executes multi-table aggregation queries against PostgreSQL joining activities, expenses, event_registrations, and audit_logs ordered by cre...
Data access layer for the users and user_roles tables. Provides org-scoped CRUD operations with indexed PostgreSQL queries supporting pagina...
Data access layer for reading and writing the user_roles junction table. Manages upsert logic for role changes (a user may hold at most one ...
Data access layer for the audit_logs table. Provides insert and query operations used by the Audit Service. Shared across all features that ...
Data access layer for persisting and querying asynchronous bulk operation jobs. Stores job ID, status (pending/processing/completed/failed),...
Data access layer for admin activity oversight queries. Provides paginated, filterable reads of activities scoped to an organization and wri...
Data access layer that reads and writes flag-related columns on the activities table (flag_state, flag_reason, flagged_by, flagged_at) and q...
Data access layer for the reimbursement_approvals table and related expense query operations. Provides paginated, filterable reads scoped to...
PostgreSQL data access layer for the auto_approval_rules configuration table. Stores and retrieves rules scoped to organizations, with field...
Data access layer that executes organization-scoped SQL aggregation queries against the expenses and reimbursement_approvals tables. Uses GR...
Data access layer handling all read queries for team reporting. Implements paginated SQL queries with dynamic filter composition for date ra...
Repository managing the bufdir_reports and reporting_periods tables. Tracks which periods have been exported, when, and by whom, providing t...
Data access layer for saved custom report configurations. Persists query parameter sets (dimensions, metrics, filters) as JSON documents lin...
Data access layer for the organization_settings table, which has a one-to-one relationship with the organizations table. Handles upsert sema...
Data access layer managing the terminology_overrides table in PostgreSQL. Provides scoped queries per organization and supports bulk fetch f...
Data access layer for the feature_flags table. Handles CRUD operations for organization-level feature flag records. Each row stores an organ...
Data access layer for the organizations table, exposing the nullable parent_organization_id foreign key structure. Provides recursive SQL qu...
Data access layer for the local_associations table and its junction records with users. Provides typed query methods for all CRUD operations...
Persists and retrieves organization-scoped integration configuration including encrypted OAuth secrets or API keys, field mapping definition...
Data access layer for reading and writing accounting-specific integration configuration stored in the integration_configs table. Handles enc...
Read-only repository layer that executes optimized SQL queries against audit_logs and sessions tables to retrieve security-relevant aggregat...
Data access layer for the audit_logs PostgreSQL table. Provides insert-only write access and read access with composable filter predicates. ...
Data access layer for the sessions table supporting full session lifecycle management. Handles both mobile JWT refresh token records and adm...
Static configuration repository holding Meander subscription pricing tiers. Stored in a configuration file to allow easy updates without cod...
Data access layer for demo booking leads. Provides typed create and read operations against the bookings table in PostgreSQL, ensuring all l...
Static data module that holds the authoritative list of cookies used on the sales site, including name, purpose, duration, provider, and cat...
Other Component Types
User Interface components handle presentation logic, user interactions, and visual elements of the application.
Service Layer components contain business logic, orchestrate operations, and provide core application functionality.
Infrastructure components provide foundational utilities, system integrations, and supporting functionality for the application.