Security & Trust

Built for Regulated Industries

BankerPipeline is designed with bank-grade security from the ground up — encrypted data, role-based access, and a hosting stack that meets the compliance bar your institution requires.

Data Storage

Where Your Data Lives

All customer and loan data is stored in a managed, enterprise-grade PostgreSQL database — never on commodity or self-hosted infrastructure.

🗄️

Neon PostgreSQL (Managed)

BankerPipeline runs on Neon, a fully managed serverless PostgreSQL platform. Neon provides automatic backups, point-in-time recovery, and handles all database maintenance — no manual patching required.

  • Encryption at rest (AES-256)
  • Encryption in transit (TLS 1.2+)
  • Automated daily backups
  • Point-in-time recovery
  • Isolated tenant data per organization
🔒

Field-Level Encryption

Sensitive borrower data — SSNs, tax IDs, date of birth, income — is encrypted at the field level using AES-256-GCM before it's written to the database. Even a direct database read returns ciphertext, not plaintext.

  • AES-256-GCM encryption per field
  • Key versioning for key rotation
  • SSN and Tax ID never stored in plaintext
  • Masked display values (e.g. ***-**-1234)
  • Searchable via HMAC indexes (no plaintext exposure)
📂

Document Storage (Cloudflare R2)

Borrower-uploaded documents (tax returns, pay stubs, financial statements) are stored in Cloudflare R2 — an S3-compatible encrypted object storage service. Files never pass through your bankers' workstations.

  • Server-side encryption at rest
  • One-time HMAC-signed upload tokens
  • 20 MB per-file limit enforced server-side
  • Signed download URLs with expiration
  • No public URLs — all access is authenticated
🌐

Data in Transit

All communication between users and BankerPipeline is encrypted. HTTP requests are redirected to HTTPS. Modern TLS protocols only.

  • HTTPS enforced (301 redirect from HTTP)
  • HSTS header (1-year, includes subdomains)
  • TLS 1.2+ only (Render/Cloudflare managed)
  • Strict-Transport-Security preload
  • X-Content-Type-Options: nosniff

Hosting & Infrastructure

Enterprise-Grade Hosting

BankerPipeline runs on Render, a SOC 2 Type II compliant cloud platform used by thousands of production applications.

☁️

Render (SOC 2 Type II)

Render is SOC 2 Type II certified, meaning an independent auditor has verified their security, availability, and confidentiality controls annually. Your data is hosted in the same infrastructure trusted by thousands of enterprise applications.

  • SOC 2 Type II certified
  • Automatic HTTPS provisioning (Let's Encrypt)
  • DDoS protection via Cloudflare
  • Isolated build and runtime environments
🛡️

Security Headers

Every HTTP response from BankerPipeline includes a full suite of security headers to protect users from common web vulnerabilities.

  • Content-Security-Policy (CSP)
  • X-Frame-Options: DENY (clickjacking)
  • X-XSS-Protection enabled
  • Referrer-Policy: strict-origin
  • Permissions-Policy (camera, mic, geo off)

Authentication

Two Separate Auth Systems

Bankers and borrowers authenticate through entirely separate systems with different token namespaces. A borrower token cannot be used as a banker token — ever.

🏦

Banker Authentication

Bank staff authenticate via email/password or Microsoft SSO. Passwords are hashed using bcrypt with 10 rounds — they are never stored in plaintext.

  • Password hashing: bcrypt (cost factor 10)
  • JWT tokens (7-day expiry, signed HS256)
  • Microsoft SSO via OAuth 2.0
  • SAML 2.0 / OIDC for enterprise SSO
  • Account lockout after repeated failures
  • Session invalidation on password change
🤝

Borrower Authentication

Borrowers access the portal via a separate login flow. Their tokens carry a type: "borrower" claim — the API explicitly rejects banker tokens on borrower endpoints, and vice versa.

  • Separate token namespace from bankers
  • Token type checked server-side on every request
  • No cross-contamination possible
  • One-time HMAC document upload tokens
  • Borrowers can only see their own data
🔑

Document Upload Security

When a borrower uploads a document, the upload URL is a one-time HMAC-signed token scoped to that borrower and that document request. The token expires after use and cannot be reused or shared. This prevents unauthorized uploads and ensures documents land in the correct loan file.


Access Control

Role-Based & Branch-Scoped Access

Every banker has a role. Every role has defined permissions. Data visibility is further restricted by branch — bankers only see what they're assigned to.

👥

Four User Roles

Access is controlled at the feature level based on role. Roles cannot be self-assigned — only admins can grant or change roles.

  • Admin — full access, user management, billing
  • Manager — branch-wide view, no user management
  • Banker — assigned records only
  • Viewer — read-only, branch-scoped
🏢

Branch & Team Scoping

Database queries are scoped server-side based on the authenticated user's branch. Frontend filtering alone is insufficient — BankerPipeline enforces data isolation at the query level.

  • Branch ID embedded in JWT at login
  • All queries filtered by branch server-side
  • Bankers scoped to assigned records
  • No client-side-only filtering
🏛️

Multi-Organization Isolation

Each bank or institution is a completely isolated organization. No data crosses organizational boundaries — queries are scoped to org_id at the database level, not the application layer.

  • org_id enforced on every query
  • No shared tables between organizations
  • Users cannot access other organizations
  • Organization context embedded in JWT
📋

Audit Logging

Security-sensitive actions — login, permission changes, data exports, user deactivation — are written to an immutable audit log with user ID, timestamp, IP address, and action detail.

  • Full audit trail per organization
  • Records: actor, action, entity, timestamp
  • Accessible to admins at /audit-logs
  • Cannot be deleted by end users
Compliance

Aligned with Banking Regulations

BankerPipeline is built with GLBA Safeguards Rule and common banking compliance requirements in mind — not bolted on after the fact.

GLBA Safeguards

Gramm-Leach-Bliley Act

Field-level encryption for PII, role-based access controls, audit logging, and HTTPS enforcement are all aligned with the FTC's Safeguards Rule requirements for financial institutions.

SOC 2 Hosting

Hosting Infrastructure

Render (hosting) is SOC 2 Type II certified. Neon (database) and Cloudflare R2 (documents) are enterprise-grade platforms with independent security programs. You're not on shared consumer infrastructure.

Access Controls

Least-Privilege Access

Role-based access control, branch scoping, and org-level isolation ensure users can only access what they need. This aligns with NIST and SOC 2 CC6.3 least-privilege principles.

Encryption

Encryption at Rest & In Transit

AES-256 encryption at rest (database and object storage), TLS 1.2+ in transit, and AES-256-GCM field-level encryption for sensitive PII. Key versioning supports rotation without downtime.

Session Security

Token Management

Separate JWT namespaces for bankers vs. borrowers, 7-day token expiry, and server-side token type validation prevent cross-session attacks and unauthorized access.

Bot Protection

Scanner & Bot Blocking

Common exploit paths (/.env, /.git, WordPress probes) are blocked at the middleware level. This reduces attack surface and keeps your security logs clean from automated noise.

At a Glance

Security Summary

Key security properties for your compliance team's evaluation.

Control Area Technology / Approach Status
Data encryption at rest Neon PostgreSQL (AES-256), Cloudflare R2 (server-side encryption) ✓ Active
Data encryption in transit TLS 1.2+, HSTS, HTTPS-only (301 redirect) ✓ Active
PII field-level encryption AES-256-GCM per field (SSN, Tax ID, DOB, Income) ✓ Active
Password storage bcrypt (cost 10) — no plaintext storage ✓ Active
Session management JWT (HS256, 7-day expiry), separate banker / borrower namespaces ✓ Active
Single sign-on Google OAuth 2.0, Microsoft OAuth 2.0, SAML 2.0, OIDC ✓ Available
Role-based access control Admin / Manager / Banker / Viewer — feature-level permissions ✓ Active
Branch data scoping Server-side query filtering by branch_id and org_id ✓ Active
Document upload security One-time HMAC-signed tokens, 20MB limit, Cloudflare R2 ✓ Active
Audit logging Immutable per-org audit trail — login, permission changes, data changes ✓ Active
Hosting compliance Render (SOC 2 Type II), Neon, Cloudflare R2 ✓ Active
Security headers HSTS, CSP, X-Frame-Options, X-XSS-Protection, Referrer-Policy ✓ Active
GLBA Safeguards alignment Encryption, access controls, audit trail, HTTPS, PII protection ✓ Aligned