Skip to content

Releases: IceTweak/hyperacc

Release v0.2.0

Choose a tag to compare

@github-actions github-actions released this 13 May 05:30
1edba74

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.0

What's Changed

Other Changes

New Contributors

Full Changelog: v0.1.0...v0.2.0

v0.1.0

Choose a tag to compare

@IceTweak IceTweak released this 27 Feb 18:01

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 via RequireAnyRole()
  • Organization-Based Controls: MSPID checks with RequireMSPID() and RequireAnyMSPID() functions
  • Organizational Unit Checks: OU validation using RequireOU() and RequireAnyOU() 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 hyperacc controller with New() and Check() methods
  • Helper Functions: Convenient CheckAccess() function for quick access checks
  • Rule Interface: Extensible Rule interface for creating custom rule implementations
  • Comprehensive Error Handling: Detailed access error reporting with AccessError type

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