Enhancement/simplification2021 #108
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR represents about 2 months of whiteboarding and reworking the core concepts behind AuthJanitor, so breaking down these changes (of which there are a ton) comes down to:
AuthJanitor.Coreis now an actual core. It exposesAuthJanitorServicewhich rolls up all the subservices as well as basic functionality; Core can now run Providers or dispatch messages to other agents, which is the most basic service AJ providesAuthJanitor.Automationhas been completely gutted and a new web/UI framework has been laidAuthJanitor.Integrations.DataStores.*is gone -- all DataStores are now replaced with vanilla EF as a component of the web app rather than as a part of the coreAuthJanitor.IdentityServices.IIdentityis gone -- it is more or less replaced byITokenCredentialProviderwhich will be overrode for consuming applications to provide a source for tokensAuthJanitor.Repositoryis the new abstraction behind all data storage for AuthJanitor. This allows for web apps, CLI apps, etc, to use a discrete data store. It has some hooks to interface withAuthJanitorServiceto provide scheduled task execution.AuthJanitor.Automationis now built aroundMicrosoft.Identity.Webto fix the majority of token-related bugsThis is a huge maintainability change which substantially reduces the amount of code by refactoring functional systems. As an aside, this also fixes what I believe to be the last of the design/architecture smells. 🤞