Files
smoa/TASKS.md
T
defiQUG 4f78404f87 Feature modules UI + RBAC; credential pull hydration; compliance doc
- Extend RBAC modules/permissions; Home + drawer + Nav routes for ATF/NCIC/military/judicial/intelligence
- Wire Orders/Evidence/Reports/ATF/NCIC/Military/Judicial/Intelligence Compose flows with Hilt ViewModels
- Evidence: custody chain merge in repository; list/detail UI; fix transfer entity evidenceId
- SyncService: hydrate credential payloads after list pull; CredentialCacheSyncPort API + tests
- CredentialCacheMerger hydrateMissingPayloads; CredentialsViewModel refresh/hydrate split
- OrderServiceTest; SyncService + CredentialCacheMerger tests; NCIC operator display
- docs: OUTSTANDING-PRODUCTION-AND-COMPLIANCE-WORK.md; GAPS updates; README implementation status
- Misc doc/build updates (OpenAPI test, compliance matrix, etc.)

Made-with: Cursor
2026-03-23 21:04:30 -07:00

7.7 KiB
Raw Blame History

SMOA Master task list

All areas; status reflects repo state after the 2026-03 sweep (enterprise auth, OIDC, pinning, CI). Details: TODO.md.

# Area Task Status
B1 Backend Prod profile, Flyway, PostgreSQL docs Done
B2 Backend Tenant filter (X-Unit) Done
B3 Backend Pagination / OpenAPI params Done
B4 Backend ETag for GET /api/v1/* Done
B5 Backend Request ID filter Done
B6 Backend API versioning doc Done
B7 Backend Gradle Kotlin plugin + FAIL_ON_PROJECT_REPOS fix Done
B8 Backend Test profile (application-test.yml), passing tests Done
A1 Android Sync serialization (Gson), PullAPI, BuildConfig API URL/key Done
A2 Android InfrastructureManager STUN/signaling from BuildConfig Done
A3 Android Android 16 target doc Done
A4 Android Knox integration Doc: KNOX-INTEGRATION.md (SDK not bundled)
A5 Android WebRTC PeerConnection StubWebRTCManager; optional AAR
A6 Android Connection quality DoneNetworkEstimatesConnectionQualityMonitor
A7 Android Screen share / file transfer Stub — flags in VideoTransport
A8 Android SmartCardReader StubSmartCardReader (no PC/SC driver)
I1 iOS App in Xcode External — create project; contract in docs/ios/README.md
I2 iOS Keychain / offline / biometrics / pinning Samples: docs/ios/SAMPLES.md
W1 Web Scaffold + directory pull Done
W2 Web PWA manifest + service worker Done
W3 Web Offline queue helper Done (docs/web-scaffold/offline-queue.js)
W4 Web Deploy + CORS Doc: DEPLOY.md
N1 Infra Nginx, docker-compose, k8s example Done
N2 Infra TURN/signaling self-host Doc: TURN-SIGNALING.md
D1 Domain NCIC live API Legal gate — CJIS; local Room log: NCICQueryDatabase
D2 Domain ATF eTrace Legal gate; Room drafts: ATFFormDatabase
D3 Domain eIDAS QTSP / EU trust lists Product gate — stub in EIDASService
D4 Domain JCA digital signatures Done: DigitalSignatureService
D5 Domain Electronic seal verify Done: SHA-256 compare in ElectronicSealService
D6 Domain XML/AS4 full stack Stub + core/as4/README.md
D7 Domain Certificate revocation Stub UNKNOWN; extend with OCSP/CRL
T1 Testing smoaVerify in CI Done — .gitea/workflows/ci.yml
T2 Testing Android coverage 80%+ Plan — expand over time
T3 Testing E2E Plan: E2E-PLAN.md
X1 Docs BUILD.md, TASKS.md, TODO sweep Done
X2 Build ./gradlew smoaVerify (:backend:test, :app:testDebugUnitTest, :app:assembleDebug) + scripts/build-all.sh Done
A9 Android TLS pinning + AuthTokenInterceptor + enterprise settings card DoneNetworkModule, SECURITY-ENTERPRISE.md
A10 Android SecureTokenStore, OIDC BuildConfig, session lock overlay Donesecurity package, SessionLockOverlay
A11 Android Play Integrity client + Knox classpath probe DonePlayIntegrityVerifier, KnoxEnterpriseProbe
A12 Android Biometric-gated AES key (Keystore) DoneBiometricSecretsVault; encrypt CryptoObject path: A16
A13 Android OIDC login flow (AppAuth) + redirect activity / intent-filter DoneOidcLoginCoordinator, manifest RedirectUriReceiverActivity
A14 Android Refresh token — OkHttp Authenticator + SecureTokenStore DoneTokenRefreshAuthenticator, token endpoint persisted after OIDC
A15 Android Certificate pinning host from hosted config (RemoteEndpointStore) DoneNetworkPinningConfig.resolveBackendHost + NetworkModule
A16 Android BiometricPrompt.CryptoObject + keystore encrypt path DoneBiometricSecretsVault.tryCreateEncryptCryptoObject, BiometricAuthenticator.authenticateWithCryptoObject
A17 Android Session lock: device credential fallback DoneBiometricAuthenticator.authenticateForSessionUnlock; sign-in MFA path allows PIN/pattern
A18 Android Demo auth + SSO when OIDC BuildConfig set HybridAuthFlowHost organization SSO + local demo; IdP-only when you remove demo UI
A19 Android Release R8 + pinning + Integrity + ProGuard Verified./gradlew :app:assembleRelease succeeds; extend per-tenant release checklists
A20 Android Multi-host pins Donetls_pin_spec in hosted config + SMOA_TLS_PIN_SPEC BuildConfig; CertificatePinnerFactory.buildFromMultiSpec
A21 Android Classification / watermark from remote config Doneclassification_watermark_* in SmoaClientConfigJson, ClassificationWatermark
T4 Testing Unit tests: session lock logic, certificate pinning DoneSessionLockLogicTest, CertificatePinnerFactoryTest; SecureTokenStore needs on-device / crypto-capable runner
T5 Testing UI tests: session lock, user settings Partial — add @HiltAndroidTest + Compose rules when CI has an emulator/device
T6 Testing CI: scripts/generate-api-docs.sh Done.gitea/workflows/ci.yml (step after smoaVerify)
B9 Backend Play Integrity verify endpoint StubPOST /api/v1/integrity/verify returns 501 until Google API wired — IntegrityAttestationController