Skip to content

feat: add certificate pinning, biometric step-up, device binding, and CI secret scanning (#1764-#1767) - #1826

Merged
Smartdevs17 merged 1 commit into
Smartdevs17:mainfrom
LamsOfJos:feat/Subtrackr-issues-1764-1766
Oct 17, 2026
Merged

Smartdevs17 merged 1 commit into
Smartdevs17:mainfrom
LamsOfJos:feat/Subtrackr-issues-1764-1766

Conversation

@LamsOfJos

Copy link
Copy Markdown
Contributor
  • Certificate pinning (Add certificate pinning to the mobile API client #1764): add certificatePinning service with config/env-driven pins/modes (enforce/report/disabled), hostname matching, SPKI validation, rotation support; integrate verifyCertificate() into apiClient (HTTPS-only, span attributes); add tests (24 passing); docs/CERTIFICATE_PINNING.md.
  • Biometric step-up (Add biometric authentication for sensitive actions #1765): add sensitiveActionGuard with persisted policy (default enforces transfer_funds/export_private_key/confirm_payment/delete_account), fallback onUnavailable, BiometricGateError; wire into SubscriptionDetailScreen (transfer_funds) and PrivacyCenterScreen (delete_account); add tests (10 passing).
  • Device binding (Add device binding for sessions #1766): add DeviceBindingMode to serverSessionService (default enforce), device_mismatch reason, binding check in validateSession, rebindSession with step-up guard (reauthenticated only) and audit 'rebound'; add POST /sessions/rebind requiring X-Session-Token + recent passkey X-Reauth-Token; add tests (16 passing).
  • Secret scanning (Add secrets scanning to CI #1767): update .gitleaks.toml with allowlist/stopwords, fix security-scan workflow to --exit-code=1 and --log-opts=--all; local full-history scan clean; docs/SECRET_SCANNING.md.
  • Add docs: BIOMETRIC_STEP_UP.md, SESSION_DEVICE_BINDING.md. Tests: 50/50 pass; no new TS/lint errors introduced (typecheck 517 errors unchanged). Skip pre-commit hooks per user instruction to push immediately.

Closes #1764
Closes #1765
Closes #1766
Closes #1767

… CI secret scanning (Smartdevs17#1764-Smartdevs17#1767)

- Certificate pinning (Smartdevs17#1764): add certificatePinning service with config/env-driven pins/modes (enforce/report/disabled), hostname matching, SPKI validation, rotation support; integrate verifyCertificate() into apiClient (HTTPS-only, span attributes); add tests (24 passing); docs/CERTIFICATE_PINNING.md.
- Biometric step-up (Smartdevs17#1765): add sensitiveActionGuard with persisted policy (default enforces transfer_funds/export_private_key/confirm_payment/delete_account), fallback onUnavailable, BiometricGateError; wire into SubscriptionDetailScreen (transfer_funds) and PrivacyCenterScreen (delete_account); add tests (10 passing).
- Device binding (Smartdevs17#1766): add DeviceBindingMode to serverSessionService (default enforce), device_mismatch reason, binding check in validateSession, rebindSession with step-up guard (reauthenticated only) and audit 'rebound'; add POST /sessions/rebind requiring X-Session-Token + recent passkey X-Reauth-Token; add tests (16 passing).
- Secret scanning (Smartdevs17#1767): update .gitleaks.toml with allowlist/stopwords, fix security-scan workflow to --exit-code=1 and --log-opts=--all; local full-history scan clean; docs/SECRET_SCANNING.md.
- Add docs: BIOMETRIC_STEP_UP.md, SESSION_DEVICE_BINDING.md. Tests: 50/50 pass; no new TS/lint errors introduced (typecheck 517 errors unchanged). Skip pre-commit hooks per user instruction to push immediately.
@drips-wave

drips-wave Bot commented Oct 17, 2026

Copy link
Copy Markdown

@LamsOfJos Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@Smartdevs17
Smartdevs17 merged commit e8ea145 into Smartdevs17:main Oct 17, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants