Repository navigation
feat!: support key deletion via IDeletableXmlRepository - #43
Merged
Merged
Conversation
Add IDeletableDataProtectionStorage with Delete(keys). When the storage passed to PersistKeysToStorage implements it, the key repository also implements IDeletableXmlRepository, so XmlKeyManager.DeleteKeys works. Failures are logged and reported as false; the key XML is never logged. The SQL Server and PostgreSQL repositories delete the selected rows by Id, in deletion order, in a single transaction. Note: in ASP.NET Core 10.0 XmlKeyManager exposes DeleteKeys but does not implement IDeletableKeyManager; the README documents the usage. BREAKING CHANGE: IDbDataProtectionStorage now extends IDeletableDataProtectionStorage. Custom implementations of IDbDataProtectionStorage must implement Delete(IReadOnlyCollection<DataProtectionKey>). Closes #25
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Add
IDeletableDataProtectionStoragewithDelete(keys). When the storage passed toPersistKeysToStorageimplements it, the key repository also implementsIDeletableXmlRepository, soXmlKeyManager.DeleteKeysworks. Failures are logged and reported asfalse; the key XML is never logged.The SQL Server and PostgreSQL repositories delete the selected rows by
Id, in deletion order, in a single transaction (rollback verified with trigger-based tests).Note: in ASP.NET Core 10.0
XmlKeyManagerexposesCanDeleteKeys/DeleteKeysbut does not implementIDeletableKeyManager, so thekeyManager is IDeletableKeyManagerpattern from the Microsoft docs is always false. The README documents usingXmlKeyManager.Testing: Release build clean; 76/76 tests pass locally (SQL Server tests need the
localhost->127.0.0.1fixture workaround removed in #40 on a Docker-on-WSL2 host; unrelated to this change).BREAKING CHANGE:
IDbDataProtectionStoragenow extendsIDeletableDataProtectionStorage. Custom implementations ofIDbDataProtectionStoragemust implementDelete(IReadOnlyCollection<DataProtectionKey>).Closes #25