@@ -17,5 +17,40 @@ public static IServiceCollection AddOnePasswordSecretManager(this IServiceCollec
1717 services . AddSecretManager < OnePasswordCliSecretManager > ( ) ;
1818 return services ;
1919 }
20+
21+ /// <summary>
22+ /// Registers native OS secret manager for desktop applications.
23+ /// Uses macOS Keychain, Windows Credential Manager, or Linux secret-tool.
24+ /// </summary>
25+ /// <param name="services">The service collection</param>
26+ /// <param name="serviceName">
27+ /// Optional service name for secret storage scope.
28+ /// Defaults to "mythetech/{entryAssemblyName}".
29+ /// </param>
30+ public static IServiceCollection AddNativeSecretManager (
31+ this IServiceCollection services ,
32+ string ? serviceName = null )
33+ {
34+ services . AddSecretManagerFramework ( ) ;
35+ services . AddSingleton < ISecretManager > ( new NativeSecretManager ( serviceName ) ) ;
36+ return services ;
37+ }
38+
39+ /// <summary>
40+ /// Registers all available desktop secret managers (1Password CLI and Native OS).
41+ /// </summary>
42+ /// <param name="services">The service collection</param>
43+ /// <param name="nativeServiceName">
44+ /// Optional service name for native secret manager.
45+ /// Defaults to "mythetech/{entryAssemblyName}".
46+ /// </param>
47+ public static IServiceCollection AddAllDesktopSecretManagers (
48+ this IServiceCollection services ,
49+ string ? nativeServiceName = null )
50+ {
51+ services . AddOnePasswordSecretManager ( ) ;
52+ services . AddNativeSecretManager ( nativeServiceName ) ;
53+ return services ;
54+ }
2055}
2156
0 commit comments