refactor: eliminate reflection from key factory via concrete interfaces#93
Open
irateswami wants to merge 1 commit intotkhq:mainfrom
Open
refactor: eliminate reflection from key factory via concrete interfaces#93irateswami wants to merge 1 commit intotkhq:mainfrom
irateswami wants to merge 1 commit intotkhq:mainfrom
Conversation
…n when instantiating keys from Turnkey private key data. Introduced a generic TurnkeyKeyFactory interface and concrete Factory implementations for both API keys and encryption keys. Key improvements: - Removed reflection-based logic from KeyFactory in favor of a type-safe factory pattern - Added concrete Factory types in apikey and encryptionkey packages - Updated store/local to use NewAPIKeyStore and NewEncryptionKeyStore constructors - Preserved backwards compatibility via DeprecatedKeyFactory - Improved test readability and safety by switching to factory-based store creation This refactor improves type safety, testability, and future extensibility of key instantiation logic.
r-n-o
approved these changes
Aug 28, 2025
Contributor
r-n-o
left a comment
There was a problem hiding this comment.
Looks really good, thank you for the PR @irateswami!
Comment on lines
+38
to
+40
| // DeprecatedKeyFactory is the old reflection-based factory for backward compatibility. | ||
| // Deprecated: Use NewKeyFactory with concrete factory implementations instead. | ||
| type DeprecatedKeyFactory[T common.IKey[M], M common.IMetadata] struct{} |
Contributor
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.

Refactored the local key store system to remove reliance on reflection when instantiating keys from Turnkey private key data. Introduced a generic TurnkeyKeyFactory interface and concrete Factory implementations for both API keys and encryption keys. This refactor improves type safety, testability, and future extensibility of key instantiation logic.
Key improvements:
- Removed reflection-based logic from KeyFactory in favor of a type-safe factory pattern
- Added concrete Factory types in apikey and encryptionkey packages
- Updated store/local to use NewAPIKeyStore and NewEncryptionKeyStore constructors
- Preserved backwards compatibility via DeprecatedKeyFactory
- Improved test readability and safety by switching to factory-based store creation