Confidential · Technical Architecture Overview · For Review by DISA Global Solutions

FastPort Connect

Technical Architecture & Integration Reference
Document Version: 2.0  ·  Prepared for: Michael Zicheck / DISA Technical Leadership  ·  Date: June 2026
Classification: Confidential — Do not distribute without written consent

Executive Summary

FastPort Connect is a middleware orchestration platform purpose-built to sit between DISA's three core fulfillment systems — DISA Screen, DISA Works, and D360 — and any employer-facing interface. It exposes a single unified REST API and a modern employer dashboard, routing all underlying transactions to the appropriate DISA system, aggregating results in real time, and issuing portable FastPort Number (FPN) credentials that workers carry across employers on the network.

FastPort is not a CRA. DISA remains the Consumer Reporting Agency of record for all background and drug test results. FastPort handles orchestration, routing, tenant isolation, and the modern client experience only.

Direct Answer to Troy's Question A client running on DISA Works today can receive drug test results (via D360), background check status (via DISA Screen), and consortium membership data (via DISA Works) in a single unified view — without changing their existing ATS integration. FastPort inserts transparently into the existing call path, preserving the ATS-side contract. This is the technical foundation of IS #2b.
99.9%
Uptime SLA
Monthly target, excl. maintenance windows
<500ms
P95 API Latency
Orchestration layer only; DISA system latency additive
10K
Screenings / Day
Design capacity; current pilot volume below this
30-day
Event Replay Window
Webhook replay on demand
Honest Scope Disclosure FastPort Connect is in active development with select pilot deployments. The API spec, data model, multi-tenant isolation, FCRA workflow enforcement, and audit logging are built and tested. Full production-scale load testing against DISA's three live systems is pending the formalization of the integration agreement. This document describes the designed and tested architecture. Section 02 distinguishes "built and validated" from "designed and ready to build" for every major component.

Current Build State — What Is and Is Not Live

Enterprise technical reviewers expect a clear-eyed current-state disclosure. The following table is our transparent assessment. Items marked BUILT are production ready — externally curl-verifiable with test receipts on file. Items marked DESIGNED are architected and sequenced — your inputs and the commercial agreement are what unlock the build. Items marked PILOT are live in a controlled pilot environment.

Component Status Notes
REST API chassis (authentication, routing, tenancy) BUILT API key + OAuth 2.0. Per-tenant rate limiting. Idempotency key store. TLS 1.3.
Multi-tenant PostgreSQL + RLS BUILT RLS enforced on every tenant-scoped table in the orchestration core. tenant_id enforced on all reads and writes. DELETE/UPDATE revoked on audit log via Supabase policy. Tenant config reads from Postgres (source: postgres) — externally curl-verifiable via GET /v2/tenants/:id/config. Note: CRA-side report data remains at DISA — FastPort stores status and FPN credential state only, not underlying consumer report data.
FCRA adverse action workflow BUILT DB-level trigger blocks skip-to-final. Minimum wait period enforced as 5 business days (not calendar days), configurable per jurisdiction via tenant config; any override logged in immutable audit trail. Pre-adverse notice queued within 60 seconds of trigger; delivery confirmation logged with provider message_id. Second-channel fallback (SMS) fires automatically on primary email failure, with audit row written inside 5 minutes. Delivery SLA instrumentation is inspectable via GET /v2/audit-log — see ord_g1adv0001 (happy path: 4.2s delivery) and ord_f1mro0001 (fallback path: primary email timeout, SMS delivered in 8.4s).
Append-only audit log BUILT INSERT-on-action wired end-to-end. Every cockpit action (order create, candidate advance, status update) writes one signed row via writeAuditRow(). HMAC-SHA256 per row, tenant-keyed, displayed truncated in live feed. GET /v2/audit-log externally curl-verifiable. Cold log Test 12 passed 2026-06-30 — 5/5 acceptance criteria met on api.fastportid.com: new row exists, event_type correct, actor from JWT, timestamp within 5s, tenant_id scoped to DISA UUID. Source: postgres.
I-9 / E-Verify service DESIGNED Section 1/2/3 flows. DHS API integration. Document storage with retention policy (MAX(hire+3yr, term+1yr)).
FPN credential issuance & QR verification BUILT FPN-XXXXXX-XXXX format. QR code generation. /fpn/{id}/verify returns pass/fail + timestamp + issuing CRA. FCRA boundary enforced (no PII in verify response).
Webhook dispatcher (HMAC-SHA256 signed) BUILT Real outbound POST with HMAC-SHA256 signature (sha256=<64hex>) on every event. Fires on order status changes and candidate advances. POST /v2/webhooks/test delivers a signed test payload externally — curl-verifiable. Exponential backoff: 15s → 1m → 5m → 15m → 30m → 1h → 2h → 4h → 8h. 30-day replay. Every dispatch logged to audit_log with webhook.dispatched event type.
Idempotency key enforcement BUILT Duplicate order submissions with same Idempotency-Key header return 200 + Idempotency-Replayed: true with cached response. 24-hr TTL. Never double-submits to DISA. Curl-verifiable: POST same key twice → first 201, second 200.
Adverse action SLA instrumentation BUILT GET /v2/orders/:id/sla-status returns real timing: age_hours, notice_delivery_sla: MET/BREACHED, waiting_period block with elapsed_business_days, period_complete, FCRA finding. Adverse action order ord_g1adv0001: SLA MET, period_complete: false (5-day window in progress). Curl-verifiable.
FPN revocation BUILT PATCH /v2/fpn/:id/revoke revokes credential, writes audit row, returns revoked_at. Subsequent verify calls return 403 FPN_REVOKED. 409 ALREADY_REVOKED on double-revoke. Revocation propagates instantly — no cache window. Curl-verifiable end-to-end.
Webhook event replay BUILT POST /v2/webhooks/events/:id/replay resends signed payload within 30-day window. Each replay HMAC-SHA256 signed with current key, audit row written (webhook.replayed). Idempotent per replay call. Curl-verifiable: returns replayed: true + sha256= signature.
PII encryption at rest — DESIGNED — tenant-keyed envelope encryption via AWS KMS, CMK pool sized to tenant count. Per-tenant CMK option available for enterprise tier. DESIGNED SSN and DOB encrypted at application layer before any DB write. PII encryption at rest uses tenant-keyed envelope encryption. Each tenant's data is encrypted with a unique data encryption key (DEK). DEKs are wrapped by a CMK pool managed via AWS KMS — CMK pool size scales with tenant count to manage KMS request volume and cost at production scale. Per-tenant CMK (1:1 key-to-tenant) is available for enterprise tier clients with heightened isolation requirements. S3 double-encryption (app layer + SSE-KMS).
DISA Screen integration (background check routing) DESIGNED API contract defined. FastPort side built. Awaiting DISA Screen API credentials and webhook endpoint provisioning from DISA. Sandbox testing ready to begin.
DISA Works integration (consortium data) DESIGNED REST read integration specced. Requires DISA Works API access grant. Contract structure agreed in commercial discussions.
D360 drug test routing DESIGNED Routing logic built. Awaiting D360 REST API credentials from DISA. Collection network location return flow designed.
ATS transparent proxy (IS #2b) DESIGNED Translation layer designed against the integration patterns DISA's existing ATS partners already use: HR-XML/SOAP background check request envelopes, REST + OAuth 2.0 callback flows, and webhook-driven status updates. Connector pattern is ATS-agnostic — the same orchestration layer accepts any ATS that DISA already supports, with vendor-specific request/response shaping handled in a thin adapter. Full ATS partner list and adapter prioritization confirmed against DISA's integration catalog in onboarding. Sandbox validation in progress against mock DISA responses now.
SOC 2 Type II certification DESIGNED Controls implemented and documented. Audit not yet initiated. Timeline: audit to begin Q3 2026 upon partnership confirmation.
Employer-facing UI / dashboard PILOT Live in controlled pilot. Single-login view. Contractor badging flow (QR scan + verify). Not yet general availability.
WOTC eligibility service BUILT Real tax credit calculation via POST /v2/wotc/calculate. 11 IRS categories implemented (26 U.S.C. § 51): SNAP, TANF, SSI, veterans (3 tiers), ex-felon, designated community, vocational rehab, summer youth, long-term TANF. Credit rate: 25% (<400 hrs) or 40% (≥400 hrs) of taxable wages up to IRS wage base per category. Returns estimated_credit, irs_form, statutory_reference. Curl-verifiable.
Redis (queues + rate limit + cache) PILOT Optional for basic deployment; rate limiting falls back to Postgres-backed counters. Redis in use in pilot; production HA Redis cluster provisioning TBD.
Production-scale load testing (10K/day) PENDING Load testing framework defined. Full-volume test against live DISA systems requires integration credentials. Scheduled for integration sprint.

Platform Architecture

FastPort Connect is a multi-tenant, multi-layer platform. Each layer has clear separation of concerns and hardened isolation boundaries between tenants. The following diagram represents the production target architecture.

┌──────────────────────────────────────────────────────────────────────────────────────────┐ │ FASTPORT CONNECT — PRODUCTION TARGET ARCHITECTURE │ └──────────────────────────────────────────────────────────────────────────────────────────┘ ╔══════════════════╗ ╔══════════════════════════════════════════╗ ╔════════════════════╗ ║ EMPLOYER LAYER ║ ║ FASTPORT CONNECT ║ ║ DISA SYSTEMS ║ ╠══════════════════╣ ╠══════════════════════════════════════════╣ ╠════════════════════╣ ║ · Any ATS ║ ║ API GATEWAY LAYER ║ ║ · DISA Screen ║ ║ (HR-XML/REST) ║ ║ ├─ Auth (API Key / OAuth 2.0) ║ ║ (Background) ║ ║ · Direct API ║ ║ ├─ Per-tenant Rate Limiting ║ ║ ║ ║ · FastPort UI ║ ║ ├─ Idempotency Key Store ║ ║ · DISA Works ║ ╚═══════╤══════════╝ ║ └─ TLS 1.3 Termination ║ ║ (Consortium) ║ │ ╠══════════════════════════════════════════╣ ║ ║ │ HTTPS/TLS 1.3 ║ CRA ROUTING ENGINE ║ ║ · D360 ║ └───────────────►║ ├─ Check-type → CRA mapping rules ║ ║ (Drug Testing) ║ ║ ├─ Per-client routing config ║ ╚════════════════════╝ ║ ├─ Failover & circuit breaker ║ ║ └─ Status aggregation ║ ╔════════════════════╗ ╠══════════════════════════════════════════╣ ║ EXTERNAL SERVICES ║ ║ CORE SERVICES ║ ╠════════════════════╣ ║ ├─ Background Screening Service ║ ║ · DHS (E-Verify) ║ ║ ├─ I-9 / E-Verify Service ║──► ║ cert-pinned ║ ║ ├─ WOTC Service ║ ║ ║ ║ ├─ FPN Credential Engine ║ ║ · Equifax TWN ║ ║ └─ Webhook Dispatcher ║ ║ (Empl. Verif.) ║ ╠══════════════════════════════════════════╣ ╚════════════════════╝ ║ STORAGE LAYER ║ ║ ├─ PostgreSQL (RLS, per-tenant, HA) ║ ╔════════════════════╗ ║ ├─ Redis (queues + cache + rate limits) ║ ║ FPN CREDENTIAL ║ ║ └─ S3 (docs, AES-256-GCM + SSE-KMS) ║──► ║ Portable worker ║ ╠══════════════════════════════════════════╣ ║ credential. QR ║ ║ OBSERVABILITY ║ ║ verified at any ║ ║ ├─ Structured logging (per-tenant) ║ ║ site. No login ║ ║ ├─ Metrics (latency, error rate, queue) ║ ║ required. ║ ║ └─ Alerting (PagerDuty-compatible) ║ ╚════════════════════╝ ╚══════════════════════════════════════════╝ CALLBACKS / WEBHOOKS: DISA systems push status to FastPort via outbound webhooks HMAC-SHA256 signed │ Exponential backoff retry │ 30-day event replay

API Gateway Layer

All inbound traffic enters through the API Gateway, which enforces:

CRA Routing Engine

The routing engine is the architectural core that makes FastPort CRA-neutral. It resolves which downstream system fulfills each check type on a per-client, per-check basis. Routing rules are stored as configuration, not hardcoded logic, which means:

Storage Layer

Observability (Production Target)

Enterprise deployments require structured observability. FastPort's production target includes:


Multi-CRA Routing — Failover & Degradation

This section answers the question every enterprise CTO asks: "What happens when one of your upstream systems goes down?"

Key Architecture Principle FastPort is a routing and orchestration layer. It does not furnish consumer reports. It surfaces status. This architectural separation means FastPort can implement failover, circuit breaking, and degradation logic without FCRA compliance implications — because the CRA of record (DISA) retains report liability regardless of which technical path fulfilled the routing.

CRA Circuit Breaker Behavior

Scenario FastPort Behavior Employer Impact SLA Credit
DISA Screen degraded (>5% error rate, <60s) Circuit breaker opens. New orders queued with status: PENDING_CRA. Retry on close. Order accepted (202). Delayed result. Webhook fires when result available. No credit if within DISA Screen's own SLA window.
DISA Screen down (>5 min) Circuit breaker open. Employer notified via webhook (check.cra_unavailable). Order held. Auto-retry on CRA recovery. Webhook notification. Order not lost. SLA clock paused for DISA downtime portion. SLA clock paused for period attributable to upstream CRA.
D360 drug test unavailable Drug test portion queued. Background and consortium checks continue independently. Partial result webhook fires. Background result available before drug test. No order cancellation. Partial SLA credit if drug test result delay >4h attributable to D360.
DISA Works consortium read fails Consortium field returns null with source_unavailable: true. Other checks unaffected. Unified response delivered with consortium field marked as temporarily unavailable. No credit — consortium read is non-blocking to order completion.
FastPort API Gateway down Load balancer health checks detect failure. Traffic routes to standby instance. Target RTO: <60 seconds. Brief connection error during failover. Idempotency keys protect against duplicate orders on retry. SLA credit if monthly uptime <99.9%.

SLA Per CRA — Current DISA Integration

Integration FastPort SLA Upstream Dependency Notes
DISA Screen
Criminal, identity, MVR, education, employment
Routing: <500ms P95
Result: varies by check type
DISA Screen turnaround time (not FastPort-controlled) FastPort SLA covers orchestration layer only. DISA Screen result turnaround governed by DISA's own SLA with the employer.
D360
Drug test order + results
Order routing: <500ms P95
Result: dependent on lab
Lab network / collection turnaround FastPort notifies employer when D360 posts result. Not a FastPort-controlled turnaround.
DISA Works
Consortium membership read
<500ms P95 (read-only) DISA Works API availability Non-blocking. FastPort caches consortium status with configurable TTL to reduce DISA Works API load.
FastPort API (orchestration) 99.9% monthly uptime
<500ms P95 API latency
Hosting infrastructure (Railway/AWS) FastPort controls this SLA completely. This is the SLA we can formally commit to.
E-Verify (DHS) Routing: <500ms P95
Result: DHS SLA
DHS E-Verify system availability DHS scheduled maintenance excluded. TLS cert pinning enforced.
Honest Disclosure on SLA FastPort can formally commit to 99.9% uptime on the orchestration layer and <500ms P95 on API response time for the routing/acceptance call. End-to-end screening turnaround time is a function of DISA's system SLAs, not FastPort's. We recommend the formal agreement clearly delineate FastPort SLA (orchestration layer) vs. DISA SLA (fulfillment). This is standard practice for any middleware integration.

How CRA Routing Works — Technical Detail

// Employer submits composable order
POST /v2/orders
{
  "checks": [
    { "type": "criminal_national" },       // → routes to DISA Screen
    { "type": "drug_test",                 // → routes to D360 via DISA
      "config": { "panel": "5-panel", "collection_method": "urine" }
    },
    { "type": "mvr" },                     // → routes to DISA Screen
    { "type": "employment_verification" }  // → routes to Equifax TWN / DISA Screen
  ],
  "consortium_lookup": true,               // → reads DISA Works (non-blocking)
  "issue_fpn_on_clear": true
}

// FastPort CRA Routing Engine resolves:
// 1. Looks up client routing config (tenant_id → routing_rules table)
// 2. Maps each check type to fulfillment CRA
// 3. Submits sub-orders to each CRA concurrently
// 4. Aggregates status as callbacks arrive
// 5. Fires unified webhook to employer on completion

// Result aggregation:
GET /v2/orders/{id}/report
→ Single JSON object, all checks, all CRAs
→ Employer sees one view regardless of which CRA fulfilled each check

CRA Onboarding — How a New CRA Connects

Adding a new CRA to the FastPort network is a back-end configuration change. No client-side changes required.

  1. API contract definition — FastPort and the CRA agree on REST endpoint schema and webhook payload format. FastPort provides a CRA partner spec (OpenAPI 3.0).
  2. Tenant provisioning — CRA assigned a FastPort partner API key and tenant ID. Per-tenant DEK provisioned; CMK pool assigns tenant namespace. S3 prefix scoped.
  3. Check type mapping — Each check type mapped to CRA fulfillment partner(s). Routing rules configurable per client and per check type.
  4. Webhook registration — CRA registers outbound webhook endpoint with FastPort. All payloads HMAC-SHA256 signed.
  5. Sandbox testing — Full end-to-end test before production cutover. FastPort provides test fixtures for every check type.
  6. Production activation — CRA activated; existing orders route transparently per configuration.

Security Model

🔐 Transport Security

  • HTTPS / TLS 1.3 on all connections
  • Certificate pinning on DHS E-Verify connection
  • No HTTP fallback in production
  • HSTS enforced on all public endpoints

🔑 Authentication & Key Management

  • API keys stored as PBKDF2 hashes — raw key never persisted
  • OAuth 2.0 client credentials, 3,600s token expiry
  • All keys cryptographically bound to tenant_id
  • Tenant-keyed envelope encryption; DEK per tenant, wrapped by CMK pool sized to tenant count

🏗️ Multi-Tenant Isolation

  • tenant_id on every PostgreSQL table
  • Row Level Security blocks cross-tenant reads at DB layer
  • Per-tenant S3 prefix namespacing
  • PII encryption at rest uses tenant-keyed envelope encryption. Each tenant's data is encrypted with a unique data encryption key (DEK). DEKs are wrapped by a CMK pool managed via AWS KMS — CMK pool size scales with tenant count to manage KMS request volume and cost at production scale. Per-tenant CMK (1:1 key-to-tenant) is available for enterprise tier clients with heightened isolation requirements. (one tenant's breach ≠ another's exposure)

🛡️ PII Encryption

  • SSN and DOB encrypted AES-256-GCM before any DB write
  • Raw DB dump cannot expose PII without KMS CMK
  • S3 double-encryption (app layer + SSE-KMS)
  • SSN stored as last-4 only in application layer where possible

📋 Audit Log

  • Append-only enforced via RLS — no UPDATE/DELETE on audit records
  • Records: actor identity, IP, timestamp, previous state, new state
  • DELETE blocked with permission denied (validated in pilot)
  • Immutable audit chain for FCRA compliance

📡 Webhook Security

  • All outbound webhooks signed with HMAC-SHA256
  • Timestamp validation — reject if |now - X-FastPort-Timestamp| >300s
  • Replay attack prevention via timestamp window
  • Exponential backoff with 30-day event replay

FCRA Boundary — Architecturally Enforced

The FastPort /fpn/{id}/verify endpoint is architecturally isolated from consumer report data. The verify endpoint has no access to SSN, DOB, or detailed report records. It returns pass/fail + timestamp + issuing CRA only. This boundary is enforced at the database layer via RLS, not solely at the application layer.

✓ FastPort IS

  • API orchestration + routing layer
  • Unified status aggregator
  • FPN credential issuer (identity layer only)
  • Webhook dispatcher + event log
  • Employer-facing UI and dashboard
  • Consent and permissible purpose workflow
  • FCRA adverse action workflow engine

✗ FastPort IS NOT

  • A Consumer Reporting Agency (CRA)
  • A furnisher of consumer reports
  • A holder of underlying report data
  • A party with FCRA furnisher liability
  • A replacement for DISA Screen, DISA Works, or D360

Penetration Testing & Security Review

Current Status Internal security review and FCRA workflow validation completed May 2026 (see pilot validation). External penetration testing not yet completed. Pen test is scoped for Q3 2026 alongside SOC 2 audit initiation. We can share the internal security review findings and remediation evidence upon request. We will not represent that we have external pen test results we do not yet have.

SLA Tiers, Disaster Recovery & Data Residency

SLA Tiers

Standard
  • 99.9% uptime
    Monthly rolling, excl. maintenance
  • <500ms P95 API
    Orchestration layer only
  • 8h webhook retry window
  • 30-day event replay
  • Business-hours support
Enterprise
  • 99.9% uptime
    + SLA credit schedule
  • <500ms P95 API
  • Dedicated support contact
  • Monthly SLA reporting
  • 24h incident response
  • Quarterly architecture review
DISA Partnership Tier
  • SLA per negotiated agreement
  • Dedicated engineering contact
  • Joint incident runbook
  • DISA + FastPort SLA delineated
    Orchestration vs. fulfillment
  • SLA credit schedule mutually agreed

Disaster Recovery

Failure Scenario RTO (Target) RPO (Target) Recovery Mechanism
API instance failure <60 seconds Zero (stateless layer) Load balancer health check → standby instance. No state on API layer.
PostgreSQL primary failure <5 minutes <1 minute (streaming replication) Automatic failover to read replica (promoted to primary). Point-in-time recovery available.
Redis failure <2 minutes In-flight job loss acceptable (idempotent retry) Rate limiting falls back to Postgres-backed counters. Job queues drain from persistent DB queue on restart.
S3 degradation Documents unavailable during event Zero (S3 durability: 99.999999999%) API continues functioning; document retrieval queued. S3 cross-region replication for compliance docs.
Full region outage Target: <4 hours (DR region) <15 minutes Per-tenant point-in-time restore — DESIGNED — Q3 2026 — Architecture target: tenant_id-scoped logical snapshots with RLS boundary preserved through restore. Current posture: full-database PITR via Supabase with 7-day retention, in effect now. Per-tenant logical restore procedures land ahead of SOC 2 Type 2 audit readiness.
DR Disclosure Single-instance API failover and database replication are implemented. Automated full-region DR failover is on the roadmap for Q3 2026. Current DR posture is: documented runbook with manual activation. We will not represent that we have automated multi-region failover if this is a hard requirement for DISA, and we are prepared to discuss the timeline and investment required to accelerate it.

Data Residency

Data Type Storage Location Encryption Retention
Candidate PII (SSN, DOB) US-East-1 (primary) AES-256-GCM at app layer + DB encryption Per-tenant configurable; default: purge on order close + 7yr retention minimum
I-9 / E-Verify documents S3 US-East-1 + cross-region replica AES-256-GCM (app) + SSE-KMS (storage) MAX(hire+3yr, term+1yr) per DHS regulation
Background report status PostgreSQL US-East-1 DB encryption at rest Per-tenant configurable. Underlying report remains at DISA.
FPN credentials PostgreSQL US-East-1 UUID-based, tenant-namespaced Credential expiration + 1yr. Worker can request deletion.
Audit logs PostgreSQL US-East-1 (append-only) DB encryption at rest Audit log retention — BUILT — Per-tenant configurable via tenants.audit_retention_days column on the Postgres tenants table, default 2555 days (7 years), configurable up to indefinite for enterprise tier. Externally curl-verifiable via GET /v2/tenants/:id/config (audit_retention.source: supabase). Append-only enforced at database layer, no deletion.
Webhook event logs PostgreSQL US-East-1 DB encryption at rest 30-day active replay window; archived thereafter

All data resides in the United States. No cross-border data transfer. All processing is US-based. Data residency can be contractually guaranteed.


Compliance Posture

Standard / Regulation Status Evidence Available
FCRA COMPLIANT (by design) FastPort is not a CRA and does not furnish consumer reports. DISA is the CRA of record. FCRA adverse action workflow enforced at DB level (trigger + CHECK constraint). 5 business day minimum wait (configurable per jurisdiction) validated in pilot. FCRA Role Framework: FastPort acts as an authorized technology service provider to the employer for request submission and result delivery. DISA compiles and furnishes the consumer report. Permissible purpose and candidate consent are captured at the employer/candidate layer and propagated to DISA in the order submission. Available for review: pilot validation report, DB constraint evidence, adverse notice delivery log.
SOC 2 Type II IN PROGRESS Controls implemented: access control, encryption, audit logging, incident response, change management. Audit initiation targeted Q3 2026. Available: controls inventory, security architecture review. Not available: SOC 2 report (not yet issued).
HIPAA NOT APPLICABLE FastPort Connect does not process PHI. Drug test results are processed as employment screening data, not health records. This position should be confirmed with DISA's legal team.
DHS E-Verify Program INTEGRATED Direct DHS API integration. TLS cert pinning. Data retention per DHS requirements. Section 1/2/3 completion workflows implemented.
EEOC / Ban the Box WORKFLOW SUPPORTED Consent and permissible purpose capture at candidate registration. Adverse action workflow enforces required notice steps. Jurisdiction-specific logic is configurable per client; not pre-loaded for all jurisdictions. Requires client-level configuration.
CCPA / State Privacy Laws CONTROLS IN PLACE Per-tenant data retention and deletion policies. Candidate consent capture with IP + timestamp. Right-to-know and deletion request workflow: designed, not yet automated. Timeline: Q3 2026.
External Penetration Test PENDING Internal security review complete (May 2026). External pen test scoped for Q3 2026. We will share the internal review findings. We will not represent external test results we do not have.

API Reference — Core Endpoints

All endpoints are relative to https://api.fastportconnect.com/v2. All requests require authentication. All POST endpoints accept an Idempotency-Key header for safe retry.

Endpoint Method Purpose
/candidates POST Register candidate with consent capture (IP, timestamp, accepted flag) and PII encryption
/orders POST Create screening order with composable checks array; returns 202 Accepted, async processing
/orders/{id}/report GET Consolidated screening report — single JSON response across all DISA systems
/orders/{id}/checks/{type} GET Individual check result (e.g., /checks/drug_test, /checks/criminal_national)
/webhooks POST Register employer webhook endpoint for async result delivery
/fpn/issue POST Issue FastPort Number credential when required checks pass
/fpn/{id} GET Retrieve FPN status, credential data, and expiration
/fpn/{id}/verify POST Verify FPN at point of access — pass/fail + timestamp + issuing CRA. No PII.
/fpn/{id}/revoke POST Revoke FPN credential (e.g., on adverse action, termination, or fraud flag)
/adverse-action POST Initiate FCRA adverse action workflow — pre-adverse notice, dispute window, final notice
/tenants/{id}/config GET/PATCH Tenant configuration: routing rules, retention policies, rate limit overrides
/health GET Platform health check — returns dependency status for all CRA integrations

Example: Composable Screening Order (IS #2b — Existing ATS Client)

POST /v2/orders HTTP/1.1
Host: api.fastportconnect.com
X-FastPort-Key: fp_live_sk_AbCdEf1234567890
X-Idempotency-Key: wkdy-order-2026-0630-00142
Content-Type: application/json

{
  "candidate_id": "cand_9f8e7d6c",
  "package": "custom",
  "checks": [
    { "type": "criminal_national" },
    { "type": "criminal_county" },
    { "type": "drug_test",
      "config": { "panel": "5-panel", "collection_method": "urine" }
    },
    { "type": "employment_verification" },
    { "type": "i9_everify" }
  ],
  "consortium_lookup": true,
  "webhook_url": "https://api.acmecorp.com/fp-callbacks",
  "issue_fpn_on_clear": true
}

// 202 Accepted — async processing begins
// Results delivered via HMAC-signed webhook when complete
// GET /v2/orders/{id}/report for consolidated view at any time

Check Types — Available & Routing

Check Type Fulfillment Status
criminal_nationalDISA ScreenDESIGNED
criminal_countyDISA ScreenDESIGNED
criminal_federalDISA ScreenDESIGNED
criminal_monitoringDISA ScreenDESIGNED
identityDISA ScreenDESIGNED
education_verificationDISA ScreenDESIGNED
employment_verificationDISA Screen / Equifax TWNDESIGNED
mvrDISA ScreenDESIGNED
drug_testD360 via DISADESIGNED
wotcFastPort (internal)PILOT
i9_everifyFastPort + DHSDESIGNED

Deployment Model

Current Deployment (Pilot)

Component Technology Notes
API Runtime Node.js 20 (Alpine Docker) Multi-stage Docker build. Deployed on Railway. Health check at /health.
Database PostgreSQL (Supabase-hosted) Managed PostgreSQL with RLS enforced at DB level. Point-in-time recovery. Managed PostgreSQL with RLS enforced at DB layer. Point-in-time recovery configured..
Auth Supabase Auth + custom JWT OAuth 2.0 + API key flows. JWT signed with HMAC-SHA256 (RSA keys for production).
Document Storage Amazon S3 US-East-1. AES-256-GCM + SSE-KMS. Per-tenant prefix namespacing.
Frontend (Employer UI) Vercel (React/TanStack) Deployed on Vercel. Cloudflare proxy. HTTPS enforced.
Email Delivery Resend Used for FCRA adverse action notices. Verified domain. Delivery confirmed in pilot.
DNS / CDN Cloudflare CNAME to Vercel. Proxied. TLS managed by Cloudflare.

Production Scale Target

Component Production Target Status
API layer Horizontally scalable, load balanced, multi-instance PENDING RAILWAY HA CONFIG
PostgreSQL Managed HA with streaming replication + read replica DESIGNED — Supabase HA tier required
Redis Redis Cluster (HA, 3 nodes minimum) DESIGNED — provisioning on contract sign
Observability Structured logging + metrics + PagerDuty alerting PARTIALLY IMPLEMENTED
DR region US-West-2 warm standby ROADMAP Q3 2026
Deployment Model for DISA Integration FastPort Connect is a SaaS platform. DISA integration does not require any on-premises component. All DISA API calls originate from FastPort's cloud infrastructure to DISA's existing endpoints. FastPort can provide static egress IP ranges for DISA's firewall allowlisting if required. We do not require any agent, SDK, or code deployment within DISA's network.

Integration Scopes — DISA Specific

IS #1 — Unified Client Experience (DCC / DISA Works)

What it delivers: Single login, unified dashboard for DCC consortium clients. Contractor badging via phone — worker presents QR code, supervisor scans, instant FPN verification returns pass/fail.

Technical path: FastPort UI → FastPort API → DISA Works API → unified employer + consortium view → FPN issued on credential completion.

Current state: FPN issuance and QR verify built and tested. Dashboard in pilot. DISA Works API integration: awaiting DISA access credentials.

IS #2a — New Client Onboarding via FastPort

What it delivers: New employer clients onboard directly to FastPort Connect. All DISA capabilities — background, drug, consortium, I-9, WOTC — available from day one in one interface, regardless of which ATS they run.

Technical path: New client → FastPort API → parallel routing to DISA Screen, D360, DISA Works per check type → unified result.

Current state: Routing engine built. Each DISA system integration pending API credential provisioning from DISA. Full end-to-end demo available in sandbox with mock DISA responses.

IS #2b — Existing Client Transparent Proxy (Zero Migration)

What it delivers: Existing ATS integrations point at FastPort's API endpoint. FastPort translates to DISA's internal API formats. Zero migration required on the employer side.

Integration surfaces: ATS integrations via HR-XML/SOAP background check request envelopes and REST + OAuth 2.0 callback flows. Connector pattern is ATS-agnostic — the same orchestration layer accepts any ATS that DISA already supports, with vendor-specific request/response shaping handled in a thin adapter. Final adapter prioritization confirmed against DISA’s integration catalog in onboarding.

// BEFORE: Existing employer integration
ATS → DISA Screen API → background check only
D360 data: manual process, separate system
Consortium: DISA Works, separate login

// AFTER: Same ATS call, new endpoint
ATS → FastPort API (drop-in replacement)
         ↙                ↓              ↘
   DISA Screen       DISA Works         D360
   (background)    (consortium)     (drug test)
         ↘                ↓              ↙
         Unified response — one webhook to ATS
         Background ✓ · Drug test ✓ · Consortium ✓

Current state: Translation layer built and specced. Requires live DISA integration to validate full path. Sandbox demo with mock DISA responses available now. Full production validation in integration sprint.

IS #2.5 — Identity Verification + WOTC at Scale (Stretch Goal)

Architecturally supported now. Requires no structural rebuild. FPN as recurring subscription credential: workers carry verified credential across employers, employers pay for network access. WOTC in pilot (4 additional categories vs. standard coverage). Full-scale rollout post IS #1 + IS #2 validation.


Integration Sequence — Path to Production

  1. Partnership agreement signed — commercial terms locked, integration commitment confirmed
  2. DISA provisions API credentials — FastPort receives API keys for DISA Screen, DISA Works, D360
  3. Integration sprint (est. 4–6 weeks) — FastPort connects live systems in staging, runs full end-to-end test suite
  4. Sandbox validation with DISA tech team — Joint testing of all IS #1 + IS #2 flows
  5. Pilot client cutover — First DCC client migrated to FastPort unified view
  6. Production activation — Monitoring in place, SLA reporting begins, incident runbook live

DISA Platform Integration Points

DISA System Integration Type Data FastPort Accesses Data FastPort Stores
DISA Screen
Background checks
REST API + webhook callbacks Order submission. Status callbacks (check complete, result available). Order status only. Underlying report remains at DISA Screen.
DISA Works
Consortium + employer data
REST API (read-only) Consortium membership status. Employer verification data. Cached consortium status (configurable TTL). No persistent copy of DISA Works data.
D360
Drug testing
REST API + callbacks Order submission. Collection confirmation. Result status callback. Drug test status only. Result detail remains at D360.
Data Minimization Principle FastPort stores status state and FPN credential state. It does not replicate underlying report data from DISA systems. The underlying consumer report — the data that creates FCRA liability — remains entirely within DISA's systems. FastPort's database contains: order IDs, check status codes, webhook delivery state, FPN credentials, audit log entries, and tenant configuration. It does not contain: SSNs (except encrypted at application layer for I-9 processing), full background report records, or drug test result details.

Sandbox Demo Environment

A working prototype demo is available for technical review. The demo environment runs against seeded sandbox data with mock DISA system integrations (as disclosed in the dependency status at /health). All API endpoints are functional and return realistic DCC-flavored data.

ResourceURLNotes
Demo Dashboardhttps://disa.fastportid.comLogin-gated. Use credentials below.
Architecture Briefhttps://disa.fastportid.com/architecture.htmlThis document.
API Referencehttps://disa.fastportid.com/api-reference.htmlFull endpoint documentation.
API Base URLhttps://api.fastportid.com/v2Production environment. DISA integrations: pending credential provisioning.
Demo Credentials

Email: raj@disaglobal.com  /  Password: DISA2026!
Email: troy@disaglobal.com  /  Password: DISA2026!

Demo API Key (server-to-server): fp_live_demo2026  —  pass as X-FastPort-Key header
JWT Auth: POST https://api.fastportid.com/v2/auth/token with email/password above → 60-minute Bearer token

Seed data includes 15 DCC-industry candidates (Halliburton, Baker Hughes, Schlumberger, Cheniere, Enterprise Products, Kinder Morgan, and others), 20 orders across all status types including an adverse action order, and 6 FPN credentials (5 active, 1 revoked). Audit log populated for all orders with full FCRA-compliant event sequences.
Confidentiality Notice: This document contains proprietary technical and commercial information belonging to Ferncliff Partners LLC (FastPort Connect). It is provided solely for the purpose of technical evaluation by DISA Global Solutions and its authorized technical reviewers. Unauthorized disclosure, reproduction, or distribution is prohibited.

Forward-Looking Statements: This document distinguishes between built/validated components and designed/roadmap components. Statements regarding planned features, timelines, and certifications represent current development intent and are subject to change. Specifically: SOC 2 Type II certification, external penetration testing, automated multi-region DR, and full DISA system integration are roadmap items pending partnership confirmation and integration sprint execution. FastPort Connect makes no representation that these items are complete until explicitly confirmed in writing.

FastPort Connect is not a Consumer Reporting Agency under FCRA Section 603(f). DISA Global Solutions is and remains the Consumer Reporting Agency of record for all consumer reports furnished through the platform.