flutter_stasis_secure 0.1.0
flutter_stasis_secure: ^0.1.0 copied to clipboard
Optional secure persistence primitives for flutter_stasis SafeData.
flutter_stasis_secure #
Optional secure persistence helpers for flutter_stasis SafeData.
This package keeps secure storage concerns out of flutter_stasis_core and
flutter_stasis, while still giving you an explicit way to persist selected
values such as refresh tokens.
Installation #
dependencies:
flutter_stasis_secure: ^0.1.0
What this package provides #
SafeDataSecureAdapterfor pluggable backendsFakeSafeDataSecureAdapterfor tests and local developmentSafeDataSecureBinding<T>for explicit persist and restore flowsSafeDataSecureRecordas the storage payload model
Explicit persistence example #
final refreshToken = SafeData<String>(
policy: const SafeDataPolicy(
persistence: SafeDataPersistence.secureStorage,
logStrategy: SafeDataLogStrategy.redacted,
),
);
final binding = SafeDataSecureBinding<String>(
field: refreshToken,
adapter: adapter,
key: 'refresh_token',
encode: (value) => value,
decode: (value) => value,
);
await binding.persist(); // explicit
await binding.restore(); // explicit
await binding.deletePersisted();
The binding is intentionally imperative. Nothing is restored automatically.
Design notes #
- Use
SafeDataPersistence.secureStorageon the field policy when the value is allowed to be persisted securely. - Keep restore explicit to avoid surprising sensitive values appearing in memory.
- Use a fake adapter in tests and wire a real plugin backend later.
Status #
This package currently ships the contract and a fake in-memory adapter. A real plugin-backed adapter can be added on top without changing the core Stasis packages.