Expand description
Profile management.
Profiles represent credential configurations for S3-compatible providers.
§Architecture
Profile— full internal record; never holds secrets.ProfileSummary— IPC-safe view for list responses.ProfileDetail— IPC-safe view for single-profile fetch.ProfileStore— in-memory + disk-persisted aggregate.ProfileStoreHandle—Arc<Mutex<ProfileStore>>for Tauri managed state.
§Aggregation order (list)
- AWS-discovered profiles (
~/.aws/credentials+~/.aws/config). - Environment-variable synthetic profile (when
AWS_ACCESS_KEY_IDis set). - Manual profiles loaded from
profiles.json.
Dedup key: (source, display_name). Manual profiles always win.
§OCP contract
ProfileSourceis open for new variants (Sso,WebIdentity, …) without touching existing arms.Profileis the backend record;ProfileSummary/ProfileDetailare the IPC views. Adding an IPC field only touches the view type.- Secrets never touch
Profile— keychain absorbs them at creation time.
Re-exports§
pub use compat_flags::CompatFlags;pub use validation::validate_profile;pub use validation::CallerIdentity;pub use validation::ProviderKind;pub use validation::ValidationReport;
Modules§
- aws_
config - AWS credentials and config file parser.
- compat_
flags - Provider compatibility flags.
- keychain
- OS keychain integration with encrypted-file fallback.
- validation
- Profile validation —
sts:GetCallerIdentityfor AWS,list_bucketsprobe for compat providers.
Structs§
- Backend
Box 🔒 - Thin wrapper so
Box<dyn KeychainBackend + Send + Sync>can be stored insideArc<Mutex<dyn KeychainBackend + ...>>. - Keychain
Handle Arc<dyn KeychainBackend + Send + Sync>wrapped as Tauri managed state.- Persisted
Store 🔒 - On-disk format for
profiles.json. Only manual profiles are persisted; AWS-discovered and env profiles are re-read from their sources on everylist()call. - Profile
- Full profile record stored in memory.
- Profile
Detail - Full IPC view returned by
profile_get. - Profile
Store - Aggregate profile store.
- Profile
Store Handle - Newtype around
Arc<Mutex<ProfileStore>>used as Tauri managed state. - Profile
Summary - Lightweight IPC view returned by
profiles_list. - Profile
Update Patch - Allowed fields for
profile_update. Only name and compat flags are editable after creation; source, id, and credential material are immutable.
Enums§
- Profile
Source - Where a profile originates from.
Functions§
- discover_
aws_ 🔒profiles_ sync - Discover AWS profiles from the real
~/.aws/*files synchronously.