Infrastructure
124 components in the infrastructure layer
Infrastructure components provide foundational utilities, system integrations, and supporting functionality for the application.
Flutter infrastructure component wrapping `flutter_secure_storage` to provide a unified API over iOS Keychain and Android Keystore. Encapsul...
Platform-specific infrastructure adapter that wraps iOS Keychain and Android Keystore APIs via flutter_secure_storage plugin. Handles encryp...
Abstracts the integration with a certified Norwegian BankID broker (Criipto or BankID Norge) behind a stable interface, allowing the underly...
Abstracts communication with the certified Norwegian BankID broker (e.g., Criipto or BankID Norge) behind a standardized interface. Handles ...
Low-level adapter that implements the shared OAuth provider interface for Vipps Login. Encapsulates all Vipps-specific configuration (client...
Infrastructure adapter encapsulating all HTTP communication with the Vipps Login API. Implements the same authentication provider interface ...
Wraps the Flutter local_auth plugin to provide a stable, testable interface for biometric and device-credential authentication. Abstracts pl...
Shared utility used by both the mobile app and the Next.js backend to decode and validate JWT access tokens and extract role, organisation I...
Runtime adapter that resolves dynamic organization-specific field labels and terminology for the profile screens, reading from the organizat...
Platform-level secure storage adapter wrapping iOS Keychain and Android Keystore APIs via the Flutter secure storage plugin. Used by authent...
Wraps Flutter's share_plus package to provide a consistent interface for invoking the native iOS and Android share sheets. Abstracts platfor...
Shared HTTP client for all authentication-related REST API calls including login, token refresh, and WebAuthn ceremony endpoints. Handles JW...
Thin abstraction layer over Flutter's credential_manager (Android) and Sign in with Apple passkeys (iOS) packages that exposes a unified Dar...
Infrastructure adapter that abstracts platform-specific FIDO2 authenticator APIs. On iOS it interfaces with the AuthenticationServices frame...
Shared HTTP client responsible for all communication between the Flutter mobile app and the Next.js backend REST API at /api/v1/. Attaches J...
Lightweight instrumentation component that records wizard funnel events (step reached, step abandoned, completion, validation error frequenc...
Platform abstraction layer that encapsulates the differences between iOS EventKit and Android CalendarProvider, exposing a unified interface...
Platform abstraction layer that normalizes differences between iOS EventKit and Android CalendarProvider APIs. Handles runtime permission re...
Handles runtime permission requests for calendar access on both iOS and Android. Presents platform-appropriate rationale dialogs before requ...
Handles OAuth 2.0 authorization flow for Google Calendar integration, separate from the device-native calendar path. Manages token acquisiti...
Handles runtime microphone permission requests on iOS (NSMicrophoneUsageDescription) and Android (RECORD_AUDIO) the first time the user acti...
Abstracts the platform-specific speech recognition engines behind a single Dart interface, delegating to iOS SFSpeechRecognizer and Android ...
Abstracts platform-specific speech recognition engines behind a unified interface. Delegates to iOS SFSpeechRecognizer and Android SpeechRec...
Thin HTTP client wrapper for the proxy activity registration endpoint. Handles POST /api/v1/activities with the proxy_user_id field, attache...
Backend infrastructure component that executes the atomic database transaction, creating one activity record per selected participant within...
Infrastructure layer providing WCAG 2.2 AA accessibility annotations, semantic labels, and screen reader support for all Event Creation Wiza...
Thin HTTP client adapter responsible for serializing and dispatching registration requests to the REST API endpoint POST /api/v1/events/{eve...
Backend facade that routes expense export requests to provider-specific adapters (Xledger for Blindeforbundet, Microsoft Dynamics for HLF) b...
Flutter platform adapter wrapping the image_picker package, providing a unified interface for camera capture and gallery selection across iO...
S3-compatible object storage adapter for securely persisting receipt images and PDFs on the backend. Enforces file type validation (JPEG, PN...
Backend object storage adapter for securely persisting receipt images. Stores uploaded files in S3-compatible object storage with references...
Low-level infrastructure adapter responsible for persisting and retrieving the expense type catalogue from the device's local SQLite databas...
Backend content store adapter that manages versioned declaration text so it can be updated without a mobile app release. Stores declaration ...
Infrastructure utility that manages cursor-based pagination state and request lifecycle for the contacts list. Translates REST API cursor to...
Infrastructure adapter that coordinates the sync-on-reconnect flow for the notes feature. Listens for network availability events and trigge...
Typed REST API client responsible for calling the stats aggregation endpoint on the Next.js backend. Handles authentication header injection...
Utility service that transforms team stats data payloads into export-ready formats (CSV and PDF structure) on the client side. CSV export is...
Server-side PDF generation adapter using Puppeteer or a PDF rendering service to produce a submission-ready Bufdir report document. Abstract...
Abstracts the Flutter platform-specific file delivery mechanisms. On download, uses the `path_provider` package to write the export file to ...
Server-side infrastructure adapter that triggers PDF generation for a given Bufdir report. Calls the backend PDF rendering pipeline (headles...
Defines the pluggable adapter interface that all accounting system integrations must implement. Enforces a standard four-method contract — a...
Pluggable adapter layer implementing a standard interface for each supported accounting system. Each adapter (Xledger, Dynamics) encapsulate...
Stores and retrieves encrypted accounting system credentials on a per-organization basis. Encrypts API keys, client secrets, and OAuth token...
Infrastructure adapter that abstracts the encryption key management strategy and secure storage backend. On mobile, it delegates private key...
Abstracts the encryption provider and device secure storage (Keychain on iOS, Keystore on Android) so that the key management strategy can e...
Infrastructure adapter that subscribes to assignment status-change events from the backend event bus or database trigger layer. When an assi...
Infrastructure adapter that abstracts provider-specific push notification APIs behind a unified NotificationGateway interface. On Android it...
Abstracts platform-specific push notification delivery behind a unified NotificationGateway interface. Routes messages through Firebase Clou...
Vendor-agnostic adapter that wraps a transactional email SDK (e.g., SendGrid, Resend) and an SMS gateway SDK (e.g., Twilio, 46elks) behind a...
Abstraction layer wrapping a transactional email SDK (e.g., SendGrid, Resend) and an SMS gateway SDK (e.g., Twilio, 46elks) behind a unified...
Vercel Cron infrastructure that triggers the Notification Rule Engine on a configured schedule. Manages the cron expression, passes the corr...
Cron-based scheduler that triggers the Notification Rule Engine at configured intervals. Runs as a Vercel Cron job or equivalent, ensuring t...
Intercepts incoming deep links on app install or first open using the app_links Flutter package. Extracts the referral token from the URL an...
Infrastructure adapter that configures and manages deep link interception using the app_links package on Flutter. Registers URL scheme and u...
Thin wrapper around the share_plus Flutter package that triggers the native OS share sheet. Abstracts platform-specific share APIs so the Re...
Bridges course registration events to the shared push notification infrastructure. Schedules registration confirmation messages, pre-course ...
Wraps the iOS and Android native share sheet APIs to allow peer mentors to share their certificate as an image or PDF. Converts the Flutter-...
Infrastructure utility that loads and manages Lottie or Rive animation files used in the Wrapped slide sequence. Handles asset bundling, laz...
Infrastructure adapter wrapping Rive or Lottie animation libraries for the Wrapped summary experience. Provides a unified interface for load...
Platform adapter wrapping Flutter's share_plus package for sharing annual summary content. Handles image rendering to a shareable format, pl...
Thin adapter wrapping Flutter's share_plus package to provide a testable, mockable interface for triggering the native platform share sheet....
Infrastructure adapter that manages serving and caching of SVG badge assets from the backend CDN. Provides the mobile client with resolved a...
Infrastructure utility that captures a Flutter widget subtree as a bitmap (PNG) or renders it into a PDF page. Uses Flutter's RepaintBoundar...
Infrastructure component that renders the calculated impact results into a shareable visual summary card in PNG or PDF format. Handles Flutt...
Lightweight HTTP adapter that fetches the latest versioned talking card JSON from a backend endpoint or CMS and hands it to the Cards Conten...
Integrates with platform-specific accessibility testing tools (Flutter SemanticsChecker, Android Accessibility Scanner) and exposes a unifie...
Thin platform-channel wrapper that queries the host OS for active assistive technology state (VoiceOver on iOS, TalkBack on Android, Switch ...
Infrastructure adapter that bridges Flutter's built-in SemanticsChecker test utilities and the project's widget test suite. Provides reusabl...
Low-level Flutter accessibility adapter that provides an abstraction over the Flutter Semantics framework, enabling custom SemanticsAction o...
Loads and parses ARB (Application Resource Bundle) files from the Flutter assets bundle at runtime, converting them into translation maps co...
Thin REST API client adapter scoped to the dashboard endpoints, wrapping the shared REST API client to provide typed request/response models...
Thin HTTP client wrapper responsible for syncing user preference changes that have a backend representation (e.g., notification consent, lan...
Wraps the flutter_url_launcher and flutter_inappwebview packages behind a unified interface. Handles the conditional routing between in-app ...
Reusable Flutter widget that renders a markdown string as formatted rich text using a lightweight parser. Used by FAQ answers, external reso...
Infrastructure component that monitors the device's network connectivity status using platform APIs and broadcasts state changes. It detects...
Wraps the connectivity_plus Flutter package to provide a reactive stream of network availability events. Detects transitions between online ...
Registers and manages background task execution using the flutter_workmanager plugin, which wraps BGTaskScheduler on iOS and WorkManager on ...
Manages platform-specific background execution scheduling using flutter_workmanager, which wraps iOS BGTaskScheduler and Android WorkManager...
Provides a unified interface over the flutter_workmanager plugin, abstracting iOS BGTaskScheduler and Android WorkManager platform differenc...
Next.js API route (`/api/v1/analytics/kpis`) that handles incoming KPI data requests, authenticates the session, delegates to the KPI Aggreg...
Database migration that defines the PostgreSQL indexes required for performant cursor-based pagination and filter queries on the activity fe...
Infrastructure component responsible for generating time-limited invitation tokens and dispatching invitation emails via the platform's tran...
Infrastructure utility that implements optimistic concurrency control for the approval workflow, preventing two coordinators from simultaneo...
Scheduled or event-triggered infrastructure job that invokes the Duplicate Detection Service on activity insert events. Ensures the deduplic...
Infrastructure adapter that generates short-lived signed URLs for receipt images stored in the object storage layer. Used by the receipt pre...
Infrastructure utility that writes structured audit log entries to the audit_logs table. Used by the Auto-Approval Rule Engine to record eve...
Utility used by the Auto-Approval Rule Engine to verify that the auto_approval_rules feature flag is enabled for the submitting organization...
Next.js API route handler at `/api/v1/reimbursements/export` that streams reimbursement data as a downloadable CSV or Excel file. Validates ...
In-memory or edge-cache layer that stores results of expensive aggregation queries with short TTLs. Reduces repeated database load for coord...
Infrastructure component that manages the configurable Bufdir reporting format specification stored as JSON. Defines the field mapping rules...
Infrastructure utility that serializes mapped Bufdir data into downloadable XLSX or CSV file formats. The architecture supports adding furth...
Enforces query complexity limits to protect PostgreSQL performance under concurrent reporting load. Validates the number of requested joins,...
Middleware that enforces query complexity limits before execution, including maximum number of joins, maximum result row count, query timeou...
Infrastructure adapter handling multipart form data uploads of organization logo images to object storage, returning a CDN-backed URL. Valid...
Central constants file shared across both the admin portal and the mobile app that defines all valid label keys and their platform default v...
Redis caching layer for feature flag resolution. Stores per-organization feature maps with a 60-second TTL so that API middleware can resolv...
Low-level PostgreSQL adapter that encapsulates all SQL for the closure table pattern on the organizations table. Generates correct INSERT, D...
Database migration scripts that create the closure table schema for organization hierarchy, set up materialized views for aggregate reportin...
Extracts and validates the organization scope claim from the admin's JWT at request time, determining the highest organization level the use...
Infrastructure component that records all membership change events to the audit_logs table. Captures who made the change, which user was aff...
Infrastructure adapter that translates between the ExternalPortalService's canonical data model and the Dynamics portal's API protocol. Hand...
Infrastructure adapter implementing the abstract portal interface for the HLF Dynamics platform. Handles HTTP protocol translation, authenti...
Durable job queue for failed sync operations. Implements exponential back-off with a configurable max-retry ceiling. Ensures failed syncs ar...
Pluggable adapter interface that abstracts protocol and schema differences between multiple accounting backends (Xledger for Blindeforbundet...
Pluggable adapter layer abstracting protocol and schema differences between accounting backends. Provides a shared interface with concrete i...
In-process or Redis-backed cache layer that stores aggregated security metric results keyed by organization ID and time window. Prevents rep...
Handles streaming serialization of audit log entries to CSV and JSON formats for download. Processes large datasets as a stream to avoid mem...
Short-lived storage for revoked JWT access token JTIs to ensure immediate revocation takes effect within the token's remaining TTL. Implemen...
Lightweight infrastructure component that integrates web analytics (e.g., Google Analytics or Plausible) into the landing page to measure co...
Integrates web analytics (Google Analytics or Plausible) to measure visitor behavior, conversion rates, traffic sources, and CTA engagement ...
Provides page-level SEO configuration for the Features Page including meta tags, Open Graph properties, and JSON-LD structured data. Ensures...
Lightweight infrastructure component that fires analytics events for user interactions on the sales website. Tracks calculator engagement ev...
Tracks user interactions with the impact calculator to measure engagement and conversion funnel effectiveness. Records events such as calcul...
Lightweight analytics instrumentation for tracking user engagement on sales website pages. Fires page view and interaction events (e.g., tab...
Thin adapter wrapping the external email service provider SDK to send transactional confirmation emails upon successful demo booking submiss...
Zod schema definitions shared between the client-side React Hook Form integration and the server-side API handler to ensure consistent valid...
Edge middleware component that tracks and limits the number of form submission requests per IP address within a rolling time window. Integra...
Abstracts integration with a transactional email provider (Resend or SendGrid) for sending branded HTML confirmation emails. Manages templat...
Infrastructure adapter that abstracts the transactional email provider (e.g., Resend or SendGrid) behind a unified interface. Manages API au...
Loads and parses privacy policy content from MDX or a lightweight CMS source, enabling the legal team to update the policy without engineeri...
MDX or lightweight CMS adapter that supplies versioned legal content to the Terms of Service page without requiring code deploys for text up...
Manages pre-rendered PDF files for legal documents stored in object storage, providing signed or public URLs for download. Supports procurem...
Infrastructure utility that manages deferred loading of third-party analytics and marketing scripts on the sales website. Scripts are regist...
Shared layout component used across all legal and policy pages on the sales website (Privacy Policy, Terms of Service, DPA, Cookie Policy, S...
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.
Data Layer components manage data persistence, storage operations, and data access patterns throughout the application.