Signed-off-by: Matt Bruce <mbrucedogs@gmail.com>
This commit is contained in:
parent
82c0214b2a
commit
6ce652e606
@ -3,26 +3,22 @@ import LocalData
|
||||
import SharedKit
|
||||
|
||||
struct AppStorageCatalog: StorageKeyCatalog {
|
||||
static var allKeys: [StorageKeyEntry] {
|
||||
static var allKeys: [AnyStorageKey] {
|
||||
[
|
||||
StorageKeyEntry(StorageKeys.AppVersionKey()),
|
||||
StorageKeyEntry(StorageKeys.UserPreferencesKey()),
|
||||
StorageKeyEntry(StorageKeys.CredentialsKey()),
|
||||
StorageKeyEntry(StorageKeys.LastLocationKey()),
|
||||
StorageKeyEntry(StorageKeys.APITokenKey()),
|
||||
StorageKeyEntry(StorageKeys.UserProfileFileKey()),
|
||||
StorageKeyEntry(StorageKeys.CachedDataKey()),
|
||||
StorageKeyEntry(StorageKeys.SettingsPlistKey()),
|
||||
StorageKeyEntry(StorageKeys.SessionLogsKey()),
|
||||
StorageKeyEntry(StorageKeys.PrivateNotesKey()),
|
||||
StorageKeyEntry(StorageKeys.ExternalSessionLogsKey()),
|
||||
StorageKeyEntry(StorageKeys.WatchVibrationKey()),
|
||||
StorageKeyEntry(StorageKeys.SyncableSettingKey()),
|
||||
StorageKeyEntry(
|
||||
StorageKeys.ExternalKeyMaterialKey(keyName: "<dynamic>"),
|
||||
nameRule: .prefix(StorageKeys.ExternalKeyMaterialKey.namePrefix),
|
||||
notes: "Key name is dynamic per external source (prefix matched)."
|
||||
)
|
||||
.key(StorageKeys.AppVersionKey()),
|
||||
.key(StorageKeys.UserPreferencesKey()),
|
||||
.key(StorageKeys.CredentialsKey()),
|
||||
.key(StorageKeys.LastLocationKey()),
|
||||
.key(StorageKeys.APITokenKey()),
|
||||
.key(StorageKeys.UserProfileFileKey()),
|
||||
.key(StorageKeys.CachedDataKey()),
|
||||
.key(StorageKeys.SettingsPlistKey()),
|
||||
.key(StorageKeys.SessionLogsKey()),
|
||||
.key(StorageKeys.PrivateNotesKey()),
|
||||
.key(StorageKeys.ExternalSessionLogsKey()),
|
||||
.key(StorageKeys.WatchVibrationKey()),
|
||||
.key(StorageKeys.SyncableSettingKey()),
|
||||
.key(StorageKeys.ExternalKeyMaterialKey())
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,7 +9,7 @@ struct ExternalKeyMaterialProvider: KeyMaterialProviding {
|
||||
}
|
||||
|
||||
func keyMaterial(for keyName: String) async throws -> Data {
|
||||
let key = StorageKeys.ExternalKeyMaterialKey(keyName: keyName)
|
||||
let key = StorageKeys.ExternalKeyMaterialKey()
|
||||
if let existing = try await StorageRouter.shared.get(key) as Data? {
|
||||
return existing
|
||||
}
|
||||
|
||||
@ -13,6 +13,7 @@ extension StorageKeys {
|
||||
)
|
||||
let serializer: Serializer<[String]> = .json
|
||||
let owner = "SampleApp"
|
||||
let description = "Stores session logs encrypted with external key material."
|
||||
let availability: PlatformAvailability = .phoneOnly
|
||||
let syncPolicy: SyncPolicy = .never
|
||||
}
|
||||
|
||||
@ -13,6 +13,7 @@ extension StorageKeys {
|
||||
)
|
||||
let serializer: Serializer<String> = .json
|
||||
let owner = "SampleApp"
|
||||
let description = "Stores private notes encrypted at rest."
|
||||
let availability: PlatformAvailability = .phoneOnly
|
||||
let syncPolicy: SyncPolicy = .never
|
||||
}
|
||||
|
||||
@ -12,6 +12,7 @@ extension StorageKeys {
|
||||
let security: SecurityPolicy
|
||||
let serializer: Serializer<[String]> = .json
|
||||
let owner = "SampleApp"
|
||||
let description = "Stores session logs encrypted with PBKDF2-derived keys."
|
||||
let availability: PlatformAvailability = .phoneOnly
|
||||
let syncPolicy: SyncPolicy = .never
|
||||
|
||||
|
||||
@ -11,6 +11,7 @@ extension StorageKeys {
|
||||
let security: SecurityPolicy = .none
|
||||
let serializer: Serializer<Data> = .data
|
||||
let owner = "SampleApp"
|
||||
let description = "Stores cached binary data that can be regenerated."
|
||||
let availability: PlatformAvailability = .all
|
||||
let syncPolicy: SyncPolicy = .never
|
||||
}
|
||||
|
||||
@ -22,6 +22,7 @@ extension StorageKeys {
|
||||
}
|
||||
)
|
||||
let owner = "SampleApp"
|
||||
let description = "Stores custom-encoded string data (Base64 example)."
|
||||
let availability: PlatformAvailability = .all
|
||||
let syncPolicy: SyncPolicy = .never
|
||||
}
|
||||
|
||||
@ -11,6 +11,7 @@ extension StorageKeys {
|
||||
let security: SecurityPolicy = .none
|
||||
let serializer: Serializer<[String: AnyCodable]> = .plist
|
||||
let owner = "SampleApp"
|
||||
let description = "Stores app settings exported as a property list."
|
||||
let availability: PlatformAvailability = .all
|
||||
let syncPolicy: SyncPolicy = .never
|
||||
}
|
||||
|
||||
@ -12,6 +12,7 @@ extension StorageKeys {
|
||||
let security: SecurityPolicy = .none
|
||||
let serializer: Serializer<UserProfile> = .json
|
||||
let owner = "SampleApp"
|
||||
let description = "Stores a lightweight user profile for file storage and watch sync."
|
||||
let availability: PlatformAvailability = .phoneWithWatchSync
|
||||
let syncPolicy: SyncPolicy = .automaticSmall
|
||||
|
||||
|
||||
@ -14,6 +14,7 @@ extension StorageKeys {
|
||||
)
|
||||
let serializer: Serializer<String> = .json
|
||||
let owner = "SampleApp"
|
||||
let description = "Stores API auth token for network requests."
|
||||
let availability: PlatformAvailability = .phoneOnly
|
||||
let syncPolicy: SyncPolicy = .never
|
||||
}
|
||||
|
||||
@ -12,6 +12,7 @@ extension StorageKeys {
|
||||
let security: SecurityPolicy
|
||||
let serializer: Serializer<Credential> = .json
|
||||
let owner = "SampleApp"
|
||||
let description = "Stores user credentials for sign-in flows."
|
||||
let availability: PlatformAvailability = .phoneOnly
|
||||
let syncPolicy: SyncPolicy = .never
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@ extension StorageKeys {
|
||||
struct ExternalKeyMaterialKey: StorageKey {
|
||||
typealias Value = Data
|
||||
|
||||
let name: String
|
||||
let name = "external_key_material"
|
||||
let domain: StorageDomain = .keychain(service: "com.example.securestorage.externalkey")
|
||||
let security: SecurityPolicy = .keychain(
|
||||
accessibility: .afterFirstUnlock,
|
||||
@ -14,13 +14,8 @@ extension StorageKeys {
|
||||
)
|
||||
let serializer: Serializer<Data> = .data
|
||||
let owner = "SampleApp"
|
||||
let description = "Stores external key material used by encryption policies."
|
||||
let availability: PlatformAvailability = .phoneOnly
|
||||
let syncPolicy: SyncPolicy = .never
|
||||
|
||||
static let namePrefix = "externalkey."
|
||||
|
||||
init(keyName: String) {
|
||||
self.name = Self.namePrefix + keyName
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -14,6 +14,7 @@ extension StorageKeys {
|
||||
)
|
||||
let serializer: Serializer<SampleLocationData> = .json
|
||||
let owner = "SampleApp"
|
||||
let description = "Stores last known location for location-aware features."
|
||||
let availability: PlatformAvailability = .phoneOnly
|
||||
let syncPolicy: SyncPolicy = .never
|
||||
}
|
||||
|
||||
@ -12,6 +12,7 @@ extension StorageKeys {
|
||||
let security: SecurityPolicy = .none
|
||||
let serializer: Serializer<String> = .json
|
||||
let owner = "SampleApp"
|
||||
let description = "Stores a setting that can be synced to watch."
|
||||
let availability: PlatformAvailability
|
||||
let syncPolicy: SyncPolicy
|
||||
|
||||
|
||||
@ -12,6 +12,7 @@ extension StorageKeys {
|
||||
let security: SecurityPolicy = .none
|
||||
let serializer: Serializer<Bool> = .json
|
||||
let owner = "SampleApp"
|
||||
let description = "Controls haptic feedback on watch-only experiences."
|
||||
let availability: PlatformAvailability = .watchOnly
|
||||
let syncPolicy: SyncPolicy = .never
|
||||
}
|
||||
|
||||
@ -14,6 +14,7 @@ extension StorageKeys {
|
||||
let security: SecurityPolicy = .none
|
||||
let serializer: Serializer<String> = .json
|
||||
let owner = "SampleApp"
|
||||
let description = "Tracks the last app version for migration and UI messaging."
|
||||
let availability: PlatformAvailability = .all
|
||||
let syncPolicy: SyncPolicy = .automaticSmall
|
||||
}
|
||||
|
||||
@ -14,6 +14,7 @@ extension StorageKeys {
|
||||
let security: SecurityPolicy = .none
|
||||
let serializer: Serializer<[String: AnyCodable]> = .json
|
||||
let owner = "SampleApp"
|
||||
let description = "Stores user preferences for app configuration screens."
|
||||
let availability: PlatformAvailability = .all
|
||||
let syncPolicy: SyncPolicy = .never
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user