Skip to content

0.0.7

Choose a tag to compare

@sfmskywalker sfmskywalker released this 09 Feb 09:52
· 285 commits to main since this release
395bcf4

Implements comprehensive feature configuration and shell lifecycle management.

This release introduces a robust feature configuration system with validation, alongside shell lifecycle management via notifications and handlers. It also refactors existing authentication and authorization providers for conciseness.

Changes

Feature Configuration

  • Implements auto-configuration and explicit configuration via IConfigurableFeature
  • Supports multiple options classes per feature, documented in:
    • FeatureConfiguration.md
    • FeatureConfigurationBinder.cs
  • Adds configuration validation via:
    • DataAnnotations
    • FluentValidation
    • Custom validators
  • Associated validation classes are located under Features/Validation

Shell Lifecycle Management

  • Introduces IShellActivatedHandler and IShellDeactivatingHandler interfaces for shell-scoped service initialization and cleanup
  • Implements notification-based lifecycle events:
    • ShellActivated
    • ShellDeactivating
    • ShellAdded
    • ShellRemoved
    • ShellsReloaded
  • Adds corresponding handlers:
    • ShellActivationHandler
    • ShellDeactivationHandler
    • ShellEndpointRegistrationHandler

Dependency Inference

  • Adds IInfersDependenciesFrom to allow features to inherit dependencies from other features

Hosted Services

  • Introduces ShellStartupHostedService to ensure all shells are activated and deactivated with the application lifecycle

Impact

Behavioral Changes

  • Features can now be configured via:
    • appsettings.json
    • Environment variables
  • Configuration is validated at startup
  • Shells now expose activation and deactivation lifecycle events for service initialization and cleanup

Breaking Changes

  • None

Full Changelog: 0.0.6...0.0.7