@@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.0.0/ ) ,
66and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8+ ## [ Unreleased]
9+
10+ ## [ 2.3.1] - 2025-01-14
11+
12+ ### Fixed
13+ - Fixed ` __version__ ` in package ` __init__.py ` (was 0.3.1, now 2.3.1)
14+ - Aligned all version references across package metadata
15+
816## [ 0.1.0] - 2025-01-10
917
1018### Added
@@ -92,25 +100,133 @@ pip install capiscio-sdk==0.1.0
92100
93101## [ 2.3.0] - 2025-01-14
94102
95- ### Changed
96- - ** Version Alignment** : Aligned SDK version with other CapiscIO products (capiscio-server, capiscio-ui, capiscio-core) for unified release management.
103+ ** Major Release** - Complete Trust Badge ecosystem with gRPC backend, PoP protocol, and DV badge flow.
104+
105+ This release introduces the ** capiscio-core gRPC integration** , enabling high-performance badge operations through a native Go backend. The SDK now provides a complete implementation of RFC-002 (Trust Badges) and RFC-003 (Proof of Possession).
97106
98107### Added
99- - ** RFC-003 PoP Support** : Full Proof of Possession (PoP) protocol implementation for enhanced security.
100- - ** DV Badge SDK** : Domain Validation badge support with SDK integration.
101- - ** RFC-002 v1.3 §7.5 Staleness Options** : Badge staleness configuration per specification.
102- - ** Trust Badge gRPC Client** : gRPC-based badge validation client for high-performance scenarios.
103- - ** Comprehensive gRPC SDK Integration Guide** : Documentation for gRPC-based integrations.
108+
109+ #### Trust Badge API (` capiscio_sdk.badge ` )
110+ - ** ` verify_badge() ` ** - Full badge verification with signature, expiration, and revocation checks
111+ - ** ` parse_badge() ` ** - Parse badge claims without verification (for inspection)
112+ - ** ` request_badge() ` / ` request_badge_sync() ` ** - Request new badges from CA
113+ - ** ` request_pop_badge() ` / ` request_pop_badge_sync() ` ** - RFC-003 Proof of Possession badge requests
114+ - ** ` start_badge_keeper() ` ** - Start automatic badge renewal
115+ - ** ` BadgeClaims ` ** dataclass with full RFC-002 claim support
116+ - ** ` VerifyOptions ` ** - Configurable verification (audience, issuers, clock skew)
117+ - ** ` VerifyMode ` ** enum - ` ONLINE ` , ` OFFLINE ` , ` HYBRID ` verification modes
118+ - ** ` TrustLevel ` ** enum - Level 1 (DV), Level 2 (OV), Level 3 (EV)
119+
120+ #### Badge Lifecycle Management (` capiscio_sdk.badge_keeper ` )
121+ - ** ` BadgeKeeper ` ** class - Automatic badge renewal with background thread
122+ - Configurable renewal threshold (renew N seconds before expiry)
123+ - Exponential backoff retry on failure
124+ - Callback support for badge updates (` on_renew ` )
125+ - Integration with ` SimpleGuard ` for seamless auth
126+ - ** ` BadgeKeeperConfig ` ** - Full configuration options (TTL, trust level, output file)
127+
128+ #### Domain Validation API (` capiscio_sdk.dv ` )
129+ - ** ` create_dv_order() ` ** - Create DV badge order with HTTP-01 or DNS-01 challenge
130+ - ** ` get_dv_order() ` ** - Check order status
131+ - ** ` finalize_dv_order() ` ** - Complete validation and receive grant JWT
132+ - ** ` DVOrder ` ** dataclass - Order details (challenge token, validation URL, DNS record)
133+ - ** ` DVGrant ` ** dataclass - Signed grant JWT for badge issuance
134+
135+ #### gRPC Backend (` capiscio_sdk._rpc ` )
136+ - ** ` CapiscioRPCClient ` ** - High-level gRPC client for capiscio-core
137+ - Auto-starts local capiscio-core binary when needed
138+ - Connection pooling and health checks
139+ - Context manager support (` with CapiscioRPCClient() as client: ` )
140+ - ** Generated Protocol Buffers** for all services:
141+ - ` BadgeService ` - Badge parsing, verification, issuance
142+ - ` DIDService ` - DID parsing and resolution
143+ - ` TrustService ` - Trust level operations
144+ - ` RevocationService ` - Badge revocation checks
145+ - ` ScoringService ` - Trust scoring calculations
146+ - ` SimpleGuardService ` - Request signing and verification
147+ - ` RegistryService ` - Agent registry operations
148+ - ** ` ProcessManager ` ** - Manages capiscio-core subprocess lifecycle
149+
150+ #### Core Validator (` capiscio_sdk.validators ` )
151+ - ** ` CoreValidator ` ** class - Go-backed validation for agent cards
152+ - ** ` validate_agent_card() ` ** - One-liner validation using Go core
153+ - RFC-004 Agent Card schema validation
154+ - Much faster than pure-Python validation
155+
156+ #### RFC-002 v1.3 §7.5 Staleness Options
157+ - Configurable badge staleness thresholds
158+ - ` max_age ` parameter for verification
159+ - Grace period support for expiring badges
160+
161+ ### Changed
162+ - ** Version Alignment** : SDK version now matches other CapiscIO products (capiscio-server, capiscio-ui, capiscio-core v2.3.0)
163+ - ** SimpleGuard Refactoring** :
164+ - Now uses gRPC backend for cryptographic operations
165+ - Improved request signing with ` sign_request() ` / ` verify_request() `
166+ - Better error messages with RFC references
167+ - ** Scoring Module** : Enhanced with gRPC-backed calculations
104168
105169### Fixed
106- - ** CI/CD Improvements** :
107- - Publish workflow now runs only unit tests to prevent false failures from missing infrastructure.
108- - Enhanced SDK integration tests with CI automation.
109- - ** Lint Issues** : Fixed linting issues and updated ruff configuration.
170+ - ** CI/CD Pipeline** :
171+ - Publish workflow now runs only unit tests (prevents false failures from missing infrastructure)
172+ - Integration tests moved to dedicated workflow with Docker infrastructure
173+ - ** Lint Issues** : Fixed all ruff warnings, updated to latest ruff config
174+ - ** FastAPI Integration** : Improved middleware error handling
175+
176+ ### Infrastructure
177+ - ** New Integration Test Suite** with Docker Compose:
178+ - ` test_badge_keeper.py ` - Badge lifecycle tests
179+ - ` test_dv_badge_flow.py ` - Full DV flow E2E tests
180+ - ` test_dv_order_api.py ` - DV API tests
181+ - ` test_dv_sdk.py ` - SDK integration tests
182+ - ` test_grpc_scoring.py ` - gRPC scoring tests
183+ - ` test_server_integration.py ` - Server integration tests
184+ - ` test_simple_guard.py ` - SimpleGuard tests
185+ - ** New Unit Tests** :
186+ - ` test_badge.py ` - Badge API unit tests
187+ - ` test_badge_keeper.py ` - BadgeKeeper unit tests
188+ - ` test_core_validator.py ` - CoreValidator tests
189+ - ` test_pop_badge.py ` - PoP protocol tests
190+ - ** GitHub Actions Workflows** :
191+ - ` integration-tests.yml ` - Full integration tests with capiscio-server + postgres + capiscio-core
110192
111193### Documentation
112- - Added GitHub Copilot instructions for AI-assisted development.
113- - Updated workspace guidelines for multi-repo development.
194+ - ** Comprehensive gRPC Integration Guide** (` docs/guides/badge-verification.md ` )
195+ - ** Badge Verification Guide** with code examples
196+ - ** GitHub Copilot Instructions** for AI-assisted development
197+ - ** API Reference** updates for all new modules
198+
199+ ### Dependencies
200+ - Added ` grpcio ` and ` grpcio-tools ` for gRPC support
201+ - Added ` protobuf ` for Protocol Buffer serialization
202+ - Updated ` cryptography ` to latest version
203+
204+ ### Statistics
205+ - ** +12,568 lines of code** added
206+ - ** 63 files** changed
207+ - ** 7 new modules** added
208+ - ** 1,321 line** gRPC client implementation
209+ - ** 737 line** badge API implementation
210+ - ** 304 line** BadgeKeeper implementation
211+ - ** 296 line** DV API implementation
212+
213+ ### Migration from v0.3.x
214+ This release is backwards compatible. Existing ` SimpleGuard ` and ` CapiscioSecurityExecutor ` usage continues to work. New features are additive.
215+
216+ To use new badge features:
217+ ``` python
218+ from capiscio_sdk import verify_badge, BadgeKeeper, create_dv_order
219+
220+ # Verify an incoming badge
221+ result = verify_badge(token, trusted_issuers = [" https://registry.capisc.io" ])
222+
223+ # Auto-renew badges
224+ keeper = BadgeKeeper(api_url = " ..." , api_key = " ..." , agent_id = " ..." )
225+ keeper.start()
226+
227+ # Get a DV badge
228+ order = create_dv_order(domain = " example.com" , challenge_type = " http-01" , jwk = jwk)
229+ ```
114230
115231## [ 0.3.1] - 2025-11-23
116232
0 commit comments