Releases: IceTweak/hyperacc
Releases · IceTweak/hyperacc
Release list
Release v0.2.0
Changes in v0.2.0
- 1edba74 - Merge pull request #16 from IceTweak/fix/release-workflow
- 28c3bab - ci: auto-update README version badge and create release on tag push
- c420d09 - Feature/v0.2.0 enhancements (#15)
- 6eb0e2b - style: fix indentation in identities.go (gofumpt)
- ddf8df3 - fix: remove trailing blank line in identities.go (gci lint)
- b35a8aa - Merge branch 'master' into feature/v0.2.0-enhancements
- 1cef186 - fix: use b.N loop instead of b.Loop for Go 1.23 compat
- 2ee2976 - docs: update CHANGELOG for v0.2.0 release
- c3bdebe - chore: add benchmarks for rule evaluation paths
- 7e82779 - feat: add All/Any aliases for And/Or combinators
- dc6f3fb - feat: add PolicySet for function-name based access control
- 4803c87 - feat: add RequireAnyAttribute rule for multi-value attribute checks
- 72483dc - feat: add RequireAffiliation rule for hf.Affiliation checks
- b3b17e9 - feat: add RequireID and RequireAnyID rules for enrollment ID checks
- ed0b505 - fix: deprecate IsHLFAdmintRule typo, add IsHLFAdminRule
- 840d742 - fix: split AsAccessError return into explicit two-step for clarity
- ddd8527 - Feat/access tests (#14)
- d04d1ce - ci: switch PR label check to default GitHub labels
- 4ab0d34 - fix: promote fabric-protos-go-apiv2 and protobuf to direct dependencies
- a7c79ac - test: add comprehensive tests for errors, orgs, and roles rules
- 818253e - test: refactor access and combinator tests to use mockery MockRule
- f24edf1 - test: add ChaincodeStubInterface mock stub, custom rule tests, fix LogAccessDenied tests
- be82c4a - chore: add mockery-generated mocks for test interfaces
- 96b9060 - chore: update mockery config to v2 format and add test dependencies
- 073c1cb - Bump mheap/github-action-required-labels from 5.5.1 to 5.5.2 (#9)
- bb8331a - Bump actions/checkout from 4 to 6 (#1)
- 56d9702 - Bump actions/cache from 4 to 5 (#2)
- 75524f4 - Bump actions/stale from 9 to 10 (#3)
- b31b9d5 - Bump mheap/github-action-required-labels from 5.5.0 to 5.5.1 (#4)
- 2189d41 - Bump metcalfc/changelog-generator from 4.6.0 to 4.6.2 (#5)
- f27696f - Bump codecov/codecov-action from 4 to 5 (#6)
- c8136e8 - Bump actions/setup-go from 5 to 6 (#7)
- 16391c7 - Updated readme checkboxes
Installation
go get github.com/IceTweak/hyperacc@v0.2.0What's Changed
Other Changes
- Bump actions/setup-go from 5 to 6 by @dependabot[bot] in #7
- Bump codecov/codecov-action from 4 to 5 by @dependabot[bot] in #6
- Bump metcalfc/changelog-generator from 4.6.0 to 4.6.2 by @dependabot[bot] in #5
- Bump mheap/github-action-required-labels from 5.5.0 to 5.5.1 by @dependabot[bot] in #4
- Bump actions/stale from 9 to 10 by @dependabot[bot] in #3
- Bump actions/cache from 4 to 5 by @dependabot[bot] in #2
- Bump actions/checkout from 4 to 6 by @dependabot[bot] in #1
- Bump mheap/github-action-required-labels from 5.5.1 to 5.5.2 by @dependabot[bot] in #9
- Feat/access tests by @IceTweak in #14
- Feature/v0.2.0 enhancements by @IceTweak in #15
- Fix/release workflow by @IceTweak in #16
New Contributors
- @dependabot[bot] made their first contribution in #7
- @IceTweak made their first contribution in #14
Full Changelog: v0.1.0...v0.2.0
v0.1.0
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
0.1.0 - 2026-02-21
Added
Core Features
- Access Control Framework: Complete access control solution for Hyperledger Fabric Go chaincodes
- Role-Based Access Control: Support for checking specific roles via
RequireRole()and multiple roles viaRequireAnyRole() - Organization-Based Controls: MSPID checks with
RequireMSPID()andRequireAnyMSPID()functions - Organizational Unit Checks: OU validation using
RequireOU()andRequireAnyOU()functions - User Type Validation: Support for checking Hyperledger Fabric administrators via
RequireHLFAdmin()
Rule Combinators
- AND Logic: Combine multiple rules requiring all to pass using
And()function - OR Logic: Combine multiple rules requiring at least one to pass using
Or()function - NOT Logic: Invert rule results using
Not()function - Complex Combinations: Support for nested rule combinations for advanced access policies
Custom Rules
- Custom Rule Creation: Create custom access rules using
Custom()function with callback functions - Always Deny Rule: Force access denial using
AlwaysDeny()function for special cases
API & Architecture
- Controller Pattern: Main
hyperacccontroller withNew()andCheck()methods - Helper Functions: Convenient
CheckAccess()function for quick access checks - Rule Interface: Extensible
Ruleinterface for creating custom rule implementations - Comprehensive Error Handling: Detailed access error reporting with
AccessErrortype
Documentation & Examples
- Complete API Documentation: Full documentation of all exported functions and types
- Usage Examples: Comprehensive examples for basic and advanced use cases
- Real-world Scenarios: Practical examples for supply chain and financial contracts
- Integration Guide: Clear instructions for integrating with existing chaincodes
Testing & Quality
- Unit Tests: Complete test coverage for all core functionality
- Mock Generation: Mock interfaces for testing with
mockery - Quality Assurance: Linting configuration with
.golangci.yml
Dependencies & Requirements
- Fabric Compatibility: Built specifically for Hyperledger Fabric v2.x
- Modern Go Support: Requires Go 1.21+ with support for latest language features
- Dependency Management: Proper module management with go.mod
Fixed
- N/A (Initial release)
Security
- Attribute Validation: Secure validation of client identity attributes
- Certificate Parsing: Safe parsing of X.509 certificates for OU validation
- Access Error Isolation: Proper error wrapping to prevent information disclosure
Performance
- Optimized Rule Evaluation: Efficient evaluation of rule combinations
- Minimal Overhead: Lightweight implementation with minimal impact on transaction performance
Known Issues
- None reported for initial release