Skip to content

Commit 3e82fa0

Browse files
authored
Merge pull request #15 from Mythetech/feat/native-secret-manager
feat: native secret manager implementation
2 parents ce9590f + 866e36e commit 3e82fa0

File tree

16 files changed

+1993
-231
lines changed

16 files changed

+1993
-231
lines changed

Mythetech.Framework.Desktop/DesktopSecretManagerRegistrationExtensions.cs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)