chore: PR 1.2 Add framework-agnostic core package for v3 #356
+686
−0
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.
📝 Checklist
🔧 Changes
This PR introduces a framework-agnostic validation engine that separates validation logic from transport-specific concerns, enabling support for multiple frameworks (HTTP, gRPC, Gin, Echo, etc.).
New Package:
core/Types Added:
Core- Framework-agnostic validation engineTokenValidatorinterface - Interface for JWT validationLoggerinterface - Optional logging interfaceValidationError- Structured error type with error codesOption- Error-returning option functionsFunctions Added:
New(opts ...Option) (*Core, error)- Constructor with options patternCheckToken(ctx, token) (any, error)- Pure validation logicGetClaims[T](ctx) (T, error)- Type-safe generic claims retrievalSetClaims(ctx, claims) context.Context- Helper to store claimsHasClaims(ctx) bool- Check if claims existWithValidator(TokenValidator) Option- Required optionWithCredentialsOptional(bool) Option- Configure optional credentialsWithLogger(Logger) Option- Configure loggingKey Features:
📚 References
🔬 Testing
Test Coverage:
Tests Include:
Run Tests:
All tests pass with 100% coverage.