Prepared August 30, 2026 from the current My Legacy Console document at /security. Please use Microsoft Word Track Changes and comments for revisions./security
My Legacy Console is owned and operated by Montauk Trading Company, LLC, a Delaware limited liability company authorized to do business in New York. This document describes the security and compliance controls for the My Legacy Console service.
1. Security Architecture
Defense-in-depth approach to protecting your financial data
Client
HTTPS/TLS 1.3 Session Cookies CSP Headers Input Validation
↓
Auth Layer
OAuth 2.0 / Replit Auth Session Management RBAC (Owner/Admin/Member) Org Isolation
↓
API Layer
Route Guards Zod Validation Rate Limiting IDOR Prevention CORS Policy
↓
Data Layer
AES-256-GCM Encryption PostgreSQL Encrypted Volumes Automated Backups
↓
External
Stripe (PCI DSS) Plaid (SOC 2) OneDrive (Microsoft) OpenRouter / xAI
2. Encryption
Field-level encryption for sensitive financial data
AES-256-GCM Field-Level Encryption
Every sensitive financial field is individually encrypted before being written to the database. This means that even if the database is compromised, the data remains unreadable without the encryption keys. Each field uses a unique 96-bit Initialization Vector (IV), and the GCM mode provides both confidentiality and authenticated integrity verification.
🔒 What Gets Encrypted
Data Category | Encrypted Fields | Algorithm |
|---|---|---|
Financial Assets | Account numbers, balances, valuations, institution details | AES-256-GCM |
Insurance Policies | Policy numbers, premium amounts, coverage values, beneficiaries | AES-256-GCM |
Legal Documents | Trust identifiers, beneficiary details, power of attorney info | AES-256-GCM |
Tax Records | SSN/TIN, tax amounts, refund details, filing information | AES-256-GCM |
Bill Pay | Account numbers, payment amounts, routing information | AES-256-GCM |
Vendor Contacts | Phone numbers, email addresses, account identifiers | AES-256-GCM |
Encryption Implementation Details
- Algorithm: AES-256-GCM (Advanced Encryption Standard, 256-bit key, Galois/Counter Mode)
- Key Length: 256 bits (32 bytes) derived from the encryption secret
- IV Generation: Cryptographically random 96-bit (12 byte) IV per encryption operation
- Authentication Tag: 128-bit GCM authentication tag appended to each ciphertext
- Key Storage: Encryption keys are stored as environment secrets, separate from the database
- Key Rotation: Supports key rotation without re-encrypting existing data (versioned keys)
3. Authentication & Authorization
Identity verification and access control
🔐 Authentication
- OAuth 2.0: Secure authentication via Replit identity provider
- Session Management: HTTP-only, secure, SameSite cookies with configurable expiration
- Token Validation: Every API request validates the session token server-side
- Auto-Expiry: Sessions automatically expire after periods of inactivity
👥 Authorization (RBAC)
Role | Permissions |
|---|---|
Owner | Full access: manage members, billing, settings, all data CRUD |
Admin | Manage data, view all records, configure integrations |
Member | View assigned data, limited edit capabilities |
Organization Isolation
Every database query is scoped to the authenticated user's organization (orgId). This ensures complete data isolation between organizations. Every API endpoint verifies that record.orgId === req.orgContext.orgId before returning or modifying data, preventing Insecure Direct Object Reference (IDOR) attacks.
4. Data Protection
Comprehensive data handling practices
Data Classification
Classification | Examples | Protection Level |
|---|---|---|
Highly Sensitive | SSNs, account numbers, financial balances, encryption keys | AES-256-GCM encrypted + RBAC + org isolation |
Sensitive | Email addresses, phone numbers, transaction details | AES-256-GCM encrypted + RBAC |
Internal | User preferences, dashboard layouts, UI settings | RBAC + org isolation |
Public | Stock ticker symbols, market data, feature documentation | Standard access controls |
Document Handling
Zero Document Storage
My Legacy Console operates on a link-only model for documents. All files remain in the user's Microsoft OneDrive account. We store only metadata (file names, IDs, and share links) in our database. This eliminates the risk of document exposure from our servers and gives users full control over their files.
- OCR Processing: Scanned documents are processed in memory for text extraction (Gemini Flash / xAI vision models) and immediately discarded — never written to disk
- Image Normalization: Uploaded images are converted to PNG via Sharp for consistent processing, then purged from memory
- OneDrive OAuth: Access tokens are securely managed and refreshed; revocable by the user at any time
5. API & Integration Security
Securing endpoints and third-party connections
API Security Measures
- Input Validation: All request bodies validated with Zod schemas before processing
- Authentication Required: Every API endpoint (except auth callbacks) requires valid session authentication
- IDOR Prevention: All data access verified against the user's organization context
- SQL Injection: Prevented by using Drizzle ORM with parameterized queries — no raw SQL
- XSS Prevention: React's built-in escaping + Content Security Policy headers
- CORS Policy: Configured to only accept requests from the application's own origin
☁️ Hosting & Infrastructure — Built on Replit and Google Cloud
- Enterprise-grade platform: My Legacy Console is hosted on Replit , a SOC 2 Type II–attested application platform, with production workloads running on Google Cloud Platform infrastructure (itself ISO 27001 and SOC 2 Type 2 compliant).
- Encryption everywhere: the platform encrypts data in transit with TLS and at rest with AES-256 server-side encryption — layered on top of our own AES-256-GCM field-level encryption described above, so sensitive fields are encrypted twice.
- Secrets isolation: encryption keys, API credentials, and database passwords live in the platform's managed secret store — never in source code, never in the database they protect.
- Isolated production environment: the published application runs in its own dedicated environment with its own database, separate from development.
How Bank Connections Work (Plaid) — Your Credentials Never Touch Our Servers
When you connect a bank account, you sign in through Plaid's own secure window — the same bank-connection service used by Venmo, American Express, and thousands of financial institutions. Your bank username, password, and any two-factor codes travel directly from you to Plaid to your bank; My Legacy Console never receives, transmits, or stores your bank login credentials at any point. What Plaid returns to us is a limited, read-only access token — it can retrieve the balances, transactions, and holdings you authorized, and nothing else. It cannot log in to your bank, initiate transfers, move money, or modify anything at your institution. That token is stored exclusively server-side, encrypted at rest with AES-256-GCM, and is never sent to your browser or device. When you disconnect an account, the token is deleted from our systems and revoked with Plaid; you may also revoke the connection independently through your bank's own security settings.
Third-Party Integration Security
Integration | Auth Method | Data Minimization | Compliance |
|---|---|---|---|
Stripe | API Key (server-side only) | We never see or store card numbers | PCI DSS Level 1 |
Plaid | Link Token + Access Token | Bank credentials are entered directly with Plaid and never received by us; we hold only a read-only access token, stored AES-256-GCM encrypted server-side | SOC 2 Type II |
OneDrive | OAuth 2.0 | Metadata only; files stay in user's OneDrive | ISO 27001 |
Outlook | OAuth 2.0 | Calendar events only; no email content | ISO 27001 |
OpenRouter | API Key (server-side only) | No PII in prompts; contextual data only | API TOS |
xAI | API Key (server-side only) | No PII in prompts; contextual data only | API TOS |
6. Infrastructure
Hosting, deployment, and operational security
Hosting Environment
Platform Replit Cloud (US data centers)
Runtime Node.js (Express) + React (Vite)
Database PostgreSQL with encrypted storage volumes
SSL/TLS Automatic TLS 1.3 certificate provisioning
Backups Automated daily backups with point-in-time recovery
Secrets Environment secrets injected at runtime; never committed to code
7. AI & Model Security
Responsible AI usage and data handling
AI Data Flow
- Global Assistant (grok-3-mini-fast): Receives page-context summaries — never raw database records or PII
- AI Agent Cards (Gemini 2.0 Flash): Receive structured, page-specific context data for focused analysis
- OCR Processing (Gemini Flash / xAI Vision): Receives image data for text extraction; images processed in memory and immediately discarded
- No Training: Neither xAI nor OpenRouter/Google use your data to train their models
- Ephemeral: AI conversations are not persisted by the AI providers beyond the request lifecycle
PII Stripping
Before any data is sent to AI models, personally identifiable information (names, SSNs, account numbers) is stripped or replaced with generic placeholders. AI models receive only the contextual information necessary to generate useful responses.
8. Compliance Framework
Regulatory alignment and standards
Standard / Regulation | Status | Coverage |
|---|---|---|
SOC 2 Type II | Planned | Trust Services Criteria: Security, Availability, Confidentiality |
GDPR | Compliant | Data minimization, right to erasure, data portability, consent management |
CCPA | Compliant | Right to know, right to delete, right to opt-out, non-discrimination |
PCI DSS | Via Stripe | Payment processing delegated to Stripe (PCI DSS Level 1 certified) |
NIST Cybersecurity Framework | Aligned | Identify, Protect, Detect, Respond, Recover functions implemented |
OWASP Top 10 | Addressed | All OWASP Top 10 (2021) vulnerabilities mitigated in application design |
9. Incident Response
How we handle security incidents
Incident Response Plan
Phase | Actions | Timeline |
|---|---|---|
Detection | Automated monitoring, log analysis, anomaly detection | Continuous |
Assessment | Classify severity, identify scope, preserve evidence | Within 1 hour |
Containment | Isolate affected systems, revoke compromised credentials, block attack vectors | Within 4 hours |
Notification | Notify affected users, regulators (if required), and law enforcement (if applicable) | Within 72 hours |
Remediation | Patch vulnerabilities, rotate keys, restore from backups if needed | Within 48 hours |
Post-Mortem | Root cause analysis, update procedures, publish transparency report | Within 7 days |
Breach Notification
In the event of a data breach that affects your personal information, we will notify you by email within 72 hours of becoming aware of the breach, in compliance with GDPR and applicable US state breach notification laws. The notification will include the nature of the breach, data affected, remediation steps taken, and contact information for our security team.
10. Vulnerability Management
Proactive security testing and patching
- Dependency Scanning: Automated scanning of npm dependencies for known vulnerabilities (CVEs)
- Static Analysis: SAST tooling integrated into the development workflow to catch security issues before deployment
- Secret Detection: Automated scanning to prevent accidental exposure of API keys, tokens, and credentials in code
- Code Review: All changes undergo code review with security considerations
- Patch Management: Critical security patches applied within 24 hours; high-severity within 7 days
11. Business Continuity
Availability and disaster recovery
Recovery Objectives
Metric | Target | Details |
|---|---|---|
Uptime SLA | 99.9% | Approximately 8.7 hours maximum unplanned downtime per year |
RPO (Recovery Point Objective) | 24 hours | Maximum data loss window in disaster scenario |
RTO (Recovery Time Objective) | 4 hours | Maximum time to restore service after major incident |
Continuity Measures
- Database Backups: Daily automated backups with point-in-time recovery capability
- Code Version Control: All application code stored in version control with checkpoint history
- Document Resilience: Since documents are stored in users' OneDrive accounts, document data is inherently resilient to our infrastructure failures
- Graceful Degradation: If third-party services (Plaid, market data) are unavailable, the application continues to function with cached or locally stored data
12. Responsible Disclosure
Reporting security vulnerabilities
We welcome responsible disclosure of security vulnerabilities. If you discover a security issue, please report it to us so we can address it promptly.
How to Report
Email: security@mylegacyconsole.com
Please include:
- Description of the vulnerability
- Steps to reproduce
- Potential impact assessment
- Your contact information for follow-up
- We will acknowledge receipt within 24 hours
- We will provide an initial assessment within 72 hours
- We will not take legal action against researchers who report in good faith
- We ask that you do not publicly disclose vulnerabilities until we have had a reasonable opportunity to address them