Where your data lives, and how we handle it.
Plain-language description of the ArmorOS security posture — no marketing hedging, no unverifiable compliance claims.
Hosting
User authentication runs on AWS Cognito in GovCloud US-West (the federal region). The user pool identifier is public in every sign-in request — it’s not a secret — but the GovCloud boundary is the important detail: it’s the AWS region operated under FedRAMP High and ITAR/EAR controls, operated by US-person-only staff.
Application compute, database, and object storage are not yet in GovCloud; they run in AWS commercial (us-west-2) today. We’re explicit about that because some sites conflate “authenticates in GovCloud” with “fully in GovCloud”. ArmorOS does not hold the latter claim. Data-residency commitments for specific enterprise customers are handled on request.
FedRAMP status: ArmorOS is not FedRAMP-authorized. Cognito GovCloud, as a service, operates under FedRAMP High. The distinction matters for procurement — if your agency requires a FedRAMP-authorized product, ArmorOS is not a fit today. We welcome that conversation anyway.
Authentication + sessions
- Passwords are stored and validated only by AWS Cognito. ArmorOS servers never see the plaintext password.
- Sessions use two HS256-signed HTTP-only cookies (
armor_sessionandarmor_refresh) withSameSite=Lax,Secure,Path=/. The session cookie expires within the access-token window (≤1 hour) and is silently refreshed via the refresh cookie when you make a real navigation. - MFA is supported (TOTP via authenticator apps). Verified Industry tier requires MFA.
- Sign-out calls Cognito
GlobalSignOut, which revokes every refresh token in the user’s pool.
What we store
- Account data: email, display handle, selected role hint, agency affiliation string. Email + Cognito
sub(UUID) are the primary identifiers. - Verification documentation (Verified Industry applicants only): uploaded to a dedicated S3 bucket that is private, default-encrypted, and access-logged. Review is manual by SME reviewers; documents are retained for one year post-decision and deleted on request.
- Community content: threads + posts are stored in Postgres, tied to your
sub. Soft-delete preserves the audit trail; a removed post’s body is replaced with “[post removed by moderators]” but the row is retained. - Contact-form submissions are stored with a rolling 90-day retention and routed to an internal inbox by category.
- Analytics: Google Analytics 4 + Plausible. GA4 runs under Consent Mode v2 — cookies are denied until you grant consent via the banner. Plausible is cookie-less. See the privacy policy for specifics.
Email authentication
Outbound email (verification codes, password resets, newsletter, operational alerts) is sent via AWS SES us-gov-west-1. SPF, DKIM, and DMARC are published on armor-os.com. Bounces and complaints are processed via SNS and drop the address into a suppression list so we can’t re-send to a known-bad recipient.
Cookies
We set three functional cookies (armor_session, armor_refresh, armoros_cookie_consent) and two GA4 cookies (_ga, _ga_*) — the latter are denied by default until you grant consent. Full inventory and opt-out path is on the privacy page.
Report a security issue
Send vulnerability reports to [email protected]. We acknowledge receipt within one business day. Responsible disclosure is welcome; public write-ups are allowed 90 days after fix or by mutual agreement.