Last Updated: 2025-12-31
Status: Active This document describes how data flows through the Encore OS Platform, from user requests to database queries to cross-module communication.
Request Lifecycle
1. User Authentication Flow
- JWT contains
user_id,email, androleclaims - Token valid for 1 hour (configurable)
- Refresh token used for silent renewal
auth.uid()function extracts user_id in RLS policies
2. Organization Context Setup
3. Data Query with RLS
Automation Flow (FW-03)
Form Submission Triggers Automation
- Trigger scoped to organization_id and site_id
- RLS enforced on all database queries
- Email sender validation
- HTTPS-only webhooks
- Dynamic value resolution prevents code injection
- All executions audited
Event Flow (Event Infrastructure)
Domain Event Publishing
event_id or execution_id as idempotency keys—record processed IDs and skip duplicate processing on retry. See EVENT_CONTRACTS § Idempotency and Retry and EDGE_FUNCTIONS.md § automation-executor.
Event Types Published:
credential_expired- Employee credential has expiredcredential_verified- Credential verification completedonboarding_completed- Employee onboarding finishedoffboarding_completed- Employee offboarding finishedform_submitted- Form submission created (triggers automations)
Notification Flow (PF-10)
Creating and Delivering Notifications
Cross-Module Communication
Scenario: RH Core Needs Form Submission
WITHOUT Platform Integration (❌ Violates Constitution):Data Flow: Platform Forms Integration
Notification Flow (PF-10)
Sending a Notification
Receiving a Notification
Document Management Flow (PF-11)
Upload Document
Download Document
Reporting Flow (PF-12)
Execute Report
Visual Query Builder
Audit Logging Flow (PF-04)
Automatic Logging (Trigger-Based)
Manual Logging (Function-Based)
Multi-Tenant Data Isolation
How RLS Enforces Isolation
Validation Flow
Cross-Org Protection
Performance Optimization
Caching Strategy
Database Query Optimization
Integration Patterns Summary
Pattern 1: Platform Integration Layer
Use Case: Cross-cutting capabilities (forms, notifications, documents) Example: RH core uses forms without depending on FWPattern 2: Event-Based Integration
Use Case: Asynchronous workflows, loose coupling Example: Automation engine reacts to form submissionsPattern 3: API Contracts
Use Case: Synchronous request-response Example: RH requests census data from FASee
/constitution.md Section 5.6 for performance targets and Section 1.3 for integration pattern details.
Last Updated: 2025-11-24
Maintained by: Platform Foundation Team