pediatric-ai-scribe-v3/mobile/capacitor.config.json
Daniel 4a29c496f6 Mobile app hardening — security + Android 14 compat
capacitor.config.json:
  - webContentsDebuggingEnabled: true → false
    (was leaving Chrome DevTools able to attach to released builds)
  - allowMixedContent: true → false
    (API is HTTPS-only; no need to permit cleartext loads)
  - server.allowNavigation: ["*"] → restricted to pedshub.com /
    peds.danvics.com origins
    (prevents WebView following an attacker-controlled redirect)

AndroidManifest.xml:
  - android:allowBackup="false" + data_extraction_rules.xml
    (Android system backup would otherwise copy EncryptedSharedPreferences
     containing the auth token into Google Cloud backups)
  - Removed USE_BIOMETRIC permission (feature removed earlier)

AudioRecordingService.java:
  - startForeground(id, notif, TYPE_MICROPHONE) on Android 14+
    (without the explicit type Android 14 kills the service with
     MissingForegroundServiceTypeException)
  - WakeLock cap: 1h → 8h (still bounded, onDestroy releases early)

MainActivity.java:
  - Removed dead biometric code path and androidx.biometric imports

mobile/package.json:
  - Dropped @aparajita/capacitor-biometric-auth — orphan dependency
2026-04-14 04:15:27 +02:00

39 lines
858 B
JSON

{
"appId": "com.pedshub.scribe",
"appName": "PedScribe",
"webDir": "src",
"server": {
"allowNavigation": [
"app.pedshub.com",
"*.pedshub.com",
"pedshub.com",
"peds.danvics.com"
]
},
"plugins": {
"SplashScreen": {
"launchShowDuration": 1500,
"backgroundColor": "#2563eb",
"showSpinner": true,
"spinnerColor": "#ffffff"
},
"PushNotifications": {
"presentationOptions": ["badge", "sound", "alert"]
},
"Keyboard": {
"resize": "body",
"resizeOnFullScreen": true
}
},
"android": {
"allowMixedContent": false,
"backgroundColor": "#2563eb",
"webContentsDebuggingEnabled": false,
"appendUserAgent": "PedScribe-Android",
"androidScheme": "https"
},
"ios": {
"backgroundColor": "#2563eb",
"contentInset": "automatic"
}
}