3.4 KiB
3.4 KiB
Plugin SDK / Plugin architecture (CLI, Authority, Crypto)
Module
Authority
Status
IMPLEMENTED
Description
Plugin architecture is implemented across CLI (manifest loader, module loader), Authority (identity provider plugins with OIDC/SAML/Standard), and Cryptography (HSM, SM crypto plugins). The Authority plugin SDK defines interfaces, registration context, and a standardized plugin lifecycle.
Implementation Details
- Plugin Abstractions (Authority SDK):
src/Authority/StellaOps.Authority/StellaOps.Authority.Plugins.Abstractions/-- the SDK package:AuthorityPluginContracts.cs--IAuthorityPlugin,IAuthorityPluginRegistrarinterfaces defining the plugin lifecycleIdentityProviderContracts.cs--IAuthorityIdentityProviderPluginfor credential validation and claims enrichmentAuthorityPluginRegistrationContext.cs-- DI registration context passed to plugins at startupAuthorityCredentialAuditContext.cs-- audit context for credential operationsAuthoritySecretHasher.cs-- pluggable password/secret hashing abstractionAuthorityClientMetadataKeys.cs-- standardized metadata keys for client configuration
- Plugin Loader:
src/Authority/StellaOps.Authority/StellaOps.Authority/Plugins/AuthorityPluginLoader.cs-- assembly-based plugin discovery fromplugins/authority/directory. - Plugin Registration Summary:
src/Authority/StellaOps.Authority/StellaOps.Authority/Plugins/AuthorityPluginRegistrationSummary.cs-- diagnostic summary of loaded plugins. - Concrete Plugin Implementations:
- Standard:
src/Authority/StellaOps.Authority/StellaOps.Authority.Plugin.Standard/StandardPluginRegistrar.cs - LDAP:
src/Authority/StellaOps.Authority/StellaOps.Authority.Plugin.Ldap/LdapPluginRegistrar.cs - OIDC:
src/Authority/StellaOps.Authority/StellaOps.Authority.Plugin.Oidc/OidcPluginRegistrar.cs - SAML:
src/Authority/StellaOps.Authority/StellaOps.Authority.Plugin.Saml/SamlPluginRegistrar.cs - Unified:
src/Authority/StellaOps.Authority/StellaOps.Authority.Plugin.Unified/AuthPluginAdapter.cs
- Standard:
- Plugin Binary Hosting:
src/Authority/StellaOps.Authority.PluginBinaries/-- pre-compiled plugin DLLs;src/Authority/plugins/authority/-- plugin directory structure. - Concelier Plugin Binaries:
src/Authority/StellaOps.Concelier.PluginBinaries/StellaOps.Concelier.Connector.Common/-- connector plugin abstractions for Concelier module. - Tests:
src/Authority/StellaOps.Authority/StellaOps.Authority.Tests/Plugins/AuthorityPluginLoaderTests.cs,src/Authority/StellaOps.Authority/StellaOps.Authority.Plugins.Abstractions.Tests/
E2E Test Plan
- Build a minimal plugin implementing
IAuthorityPluginRegistrarandIAuthorityIdentityProviderPlugin, place the DLL inplugins/authority/, and verifyAuthorityPluginLoaderdiscovers and loads it - Verify the plugin's
Registermethod receives a validAuthorityPluginRegistrationContextwith access to DI services - Verify
AuthorityPluginRegistrationSummaryincludes the custom plugin with its reported capabilities - Load multiple plugins simultaneously and verify they do not interfere with each other's DI registrations
- Remove a plugin DLL and restart; verify the system starts without the removed plugin and reports it as missing in the summary
- Verify
AuthoritySecretHashercan be replaced by a plugin-provided implementation and verify password hashing uses the custom hasher