Tactical-edge exercise platform
Multiplayer iOS, Android, and web clients with real-time WebSocket coordination. Hono.js API on AWS Lambda. Admin, event, and game-management console with player and exercise metrics and session replays.
by
Compliance-floor delivery capability · .mil mobile
Clavark is SigilArk's compliance-floor delivery capability for DoD mobile. OIDC, attestation, CUI discipline, STIG controls, and an ATO-aligned audit pipeline — ready on day one across iOS, Android, web console, and API. This is how SigilArk delivers.
Engage SigilArk →Proven in production
Multiplayer iOS, Android, and web clients with real-time WebSocket coordination. Hono.js API on AWS Lambda. Admin, event, and game-management console with player and exercise metrics and session replays.
Provider-facing iOS and Android apps backed by a Hono.js REST API on AWS Lambda. Command-level console for mission editing and readiness dashboards, serving military, international, and disaster-relief engagements.
Both deployments meet the full 22 + 8 mobile STIG + compensating-control matrix out of the box.
Control matrix
Clavark ships 30 mobile-application controls mapped to the authoritative DoD and NIST publications below. The native-mobile control set — proven in prior .mil deployments — is extended with a web column (BFF, strict CSP, Trusted Types) and an API column (attestation verification, version-header enforcement, audit ingest) so mobile controls become load-bearing end-to-end.
Some program-level vocabularies call the platform-asymmetric group “compensating” — several entries (iOS copy/cut, iOS clipboard, web screenshot prevention) are in fact compensating on those targets where the platform API surface does not permit the ideal control.
Reference standards
Full-parity controls · 22
Controls that ship with matching implementations across native mobile clients, the web console, and the API reference.
Reject launch on devices with signs of root or jailbreak. Platform-specific heuristics on native clients.
Detect attached debuggers at launch and prevent debugger attachment on release builds.
Hardware-backed attestation via Play Integrity (Android) and App Attest (iOS); server verifies the token before trusting the client.
Every authenticated mobile request carries X-Attestation-Token; omitted from web requests by design under the BFF model.
Classification banner visible on every authenticated view; text configurable to the marking required by the adopter program.
Static source-walk in CI asserts every screen renders the banner. Prevents silent drift on new routes.
Autocorrect, predictive text, personalized-learning, and autofill suppressed on fields handling CUI.
First-launch modal reminds users of CUI handling obligations. Versioned so policy changes re-prompt.
Fixed precedence: jailbreak → CUI ack → auth → upgrade check → attestation → app. Compiled-in; no runtime toggles.
App tokens wiped 120 seconds after backgrounding. Cold start forces OIDC re-authentication.
Refresh and access tokens never touch disk — no Keychain, no SharedPreferences, no localStorage.
Release builds pin the API TLS certificate; backup pin enables rotation overlap; pin failure is a hard error.
Compensating on web — browser CA store + HSTS + CT logs per standard web posture.
HTTP disk cache off by default; CUI responses additionally tagged Cache-Control: no-store.
Every client and the API gateway enforce a 30-second cap. No unbounded waits on any path.
Every authenticated request carries X-App-Version and X-Platform-Version. Server audit-logs both and enforces a minimum-version floor.
Authorization: Bearer <jwt> added server-side by the BFF for web, client-side for mobile. Validated at the API on every route.
Client intercepts 401 + RFC 7807 code=session_expired, surfaces an explicit re-auth flow — never a silent retry loop.
Server returns 426 when X-App-Version is below floor. Client shows a non-dismissable update prompt.
Client intercepts 403 + RFC 7807 code=attestation_failed, triggers a re-attestation flow rather than crashing.
CI fails if any code path writes to disk outside an explicit allowlist. Catches persistence regressions before they ship.
CI verifies all required middleware and client interceptors are registered in the correct order.
Single provider-agnostic codepath with quirk flags isolating Login.gov, myAccess, Okta, Azure AD, Cognito, Keycloak differences.
Platform-asymmetric controls · 8
Controls where the ideal implementation differs per target, or where one platform's API surface forces a compensating posture.
Android prevents capture with FLAG_SECURE. iOS and web detect the event and audit it — platform APIs do not permit prevention.
Compensating on iOS (detect-only) and web (detect-only via visibilitychange).
Thumbnail obscured when the app is backgrounded. FLAG_SECURE on Android, material blur overlay on iOS.
Android suppresses the text-toolbar copy/cut items. Web blocks copy and cut events on CUI inputs. iOS is best-effort with no public API.
Compensating on iOS — no public SwiftUI API to suppress text-toolbar items.
Android calls ClipboardManager.clearPrimaryClip() on sign-out and background transitions.
Compensating on iOS — no public API to clear the system clipboard from an app.
Release builds strip debug logs: R8 -assumenosideeffects on Android, os.Logger scoping on iOS, Vite in web production, Pino log-level pinned on API.
Per-platform lint rules (detekt-no-cui-in-log, swiftlint-no-cui-in-log, eslint-no-cui-in-log) plus source-walk tests catch CUI leaking into logs.
Hardware-backed attestation via Google Play Integrity API. Server verifies verdict, nonce, and device-integrity fields on every attested request.
Hardware-backed attestation via Apple App Attest. Server verifies assertion against the registered key store.