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.
This release delivers foundational improvements to security schema, storage services, network capabilities, and user/developer experience, with a focus on:
Zero-Trust Security Architecture
- X.509-based SPIFFE/SPIRE identity framework with federation support
- Policy-based authorization framework with fine-grained access controls
- Secure mTLS communication across all services
- OCI-native PKI with client- and server-side verification capabilities
Content Standardization
- Unified Core v1 API with multi-version support for OASF objects
- Deterministic CID generation using canonical JSON marshaling
- Cross-language and service consistency with CIDv1 record addressing
- OCI-native object storage and relationship management
Search & Discovery
- Local search with wildcard and pattern matching support
- Network-wide record discovery with prefix-based search capabilities
- DHT-based routing for distributed service announcement and discovery
Data Synchronization
- Full and partial index synchronization with CID selection
- Automated sync workflows for simple data migration and replication
- Post-sync verification checks and search capabilities across records
Developer Experience
- Native Client SDKs for Golang, JavaScript, TypeScript, and Python
- Standardized CLI and SDK tooling with consistent interfaces
- Decoupled signing workflows for easier usage and integration
- Kubernetes deployment with SPIRE and Federation support
The following matrix shows compatibility between different component versions:
| Core Component | Version | Compatible With |
|---|---|---|
| dir-apiserver | v0.3.0 | oasf v0.3.x, oasf v0.7.x |
| dirctl | v0.3.0 | dir-apiserver v0.3.0, oasf v0.3.x, oasf v0.7.x |
| dir-go | v0.3.0 | dir-apiserver v0.3.0, oasf v0.3.x, oasf v0.7.x |
| dir-py | v0.3.0 | dir-apiserver v0.3.0, oasf v0.3.x, oasf v0.7.x |
| dir-js | v0.3.0 | dir-apiserver v0.3.0, oasf v0.3.x, oasf v0.7.x |
| Helm Chart | Version | Deploys Component | Minimum Requirements |
|---|---|---|---|
| dir/helm-charts/dir | v0.3.0 | dir-apiserver v0.3.0 | Kubernetes 1.20+ |
| dir/helm-charts/dirctl | v0.3.0 | dirctl v0.3.0 | Kubernetes 1.20+ |
- Full OASF support is available across all core components
- dir-apiserver v0.3.0 introduces breaking changes to the API layer
- dirctl v0.3.0 introduces breaking changes to the CLI usage
- dir-go v0.3.0 introduces breaking changes to the SDK usage
- Older versions of dir-apiserver are not compatible with dir-apiserver v0.3.0
- Older versions of client components are not compatible with dir-apiserver v0.3.0
- Older versions of helm charts are not compatible with dir-apiserver v0.3.0
- Data must be manually migrated from older dir-apiserver versions to dir-apiserver v0.3.0
Data from the OCI storage layer in the Directory can be migrated by repushing via new API endpoints. For example:
repo=localhost:5000/dir
for tag in $(oras repo tags $repo); do
digest=$(oras resolve $repo:$tag)
oras blob fetch --output - $repo@$digest | dirctl push --stdin
done- API: Implement Search API for network-wide record discovery using RecordQuery interface (#362)
- API: Add initial authorization framework (#330)
- API: Add distributed label-based announce/discovery via DHT (#285)
- API: Add wildcard search support with pattern matching (#355)
- API: Add max replicasets to keep in deployment (#207)
- API: Add sync API (#199)
- CI: Add Codecov workflow & docs (#380)
- CI: Introduce BSR (#212)
- SDK: Add SDK release process (#216)
- SDK: Add more gRPC services (#294)
- SDK: Add gRPC client code and example for JavaScript SDK (#248)
- SDK: Add sync support (#361)
- SDK: Add sign and verification (#337)
- SDK: Add testing solution for CI (#269)
- SDK: Standardize Python SDK tooling for Directory (#371)
- SDK: Add TypeScript/JavaScript DIR Client SDK (#407)
- Security: Implement server-side verification with zot (#286)
- Security: Use SPIFFE/SPIRE to enable security schema (#210)
- Security: Add spire federation support (#295)
- Storage: Add storage layer full-index record synchronisation (#227)
- Storage: Add post sync verification (#324)
- Storage: Enable search on synced records (#310)
- Storage: Add fallback to client-side verification (#373)
- Storage: Add policy-based publish (#333)
- Storage: Add custom type for error handling (#189)
- Storage: Add sign and verify gRPC service (#201)
- Storage: Add new hub https://hub.agntcy.org/directory (#202)
- Storage: Add cid-based synchronisation support (#401)
- Storage: Add rich manifest annotations (#236)
- API: Switch to generic OASF objects across codebase (#381)
- API: Version upgrade of API services (#225)
- API: Update sync API and add credential RPC (#217)
- API: Refactor domain interfaces to align with OASF schema (#397)
- API: Rename v1alpha2 to v1 (#258)
- CI: Find better place for proto APIs (#384)
- CI: Reduce flaky jobs for SDK (#339)
- CI: Update codebase with proto namespace changes (#398)
- CI: Update CI task gen to ignore buf lock file changes (#275)
- CI: Update brew formula version (#372, #263, #257, #247)
- CI: Bump Go (#221)
- CI: Update Directory proto imports for SDKs (#421)
- CI: Bump OASF SDK version to v0.0.5 (#424)
- Documentation: Update usage documentation for record generation (#287)
- Documentation: Add and update README for refactored SDKs (#273)
- Documentation: Update README to reflect new usage documentation link and remove USAGE.md file (#332)
- Documentation: Update documentation setup (#394)
- SDK: Move and refactor Python SDK code (#229)
- SDK: Bump package versions for release (#274)
- SDK: Bump versions for release (#249)
- SDK: Support streams & update docs (#284)
- SDK: Update API code and add example code for Python SDK (#237)
- Storage: Migrate record signature to OCI native signature (#250)
- Storage: Store implementations and digest/CID calculation (#238)
- Storage: Standardize and cleanup store providers (#385)
- Storage: Improve logging to suppress misleading errors in database and routing layers (#289)
- Storage: Refactor E2E Test Suite & Utilities Enhancement (#268)
- Storage: Refactor e2e tests multiple OASF versions (#278)
- Storage: Refactor: remove semantic tags keep only CID tag (#265)
- Storage: Refactor: remove generated OASF objects (#356)
- Storage: Refactor: remove builder artifacts and build cmd usages (#329)
- Storage: Refactor: remove agent refs (#331)
- Storage: Refactor: remove redundant proto files (#219)
- Storage: Refactor: remove Legacy List API and Migrate to RecordQuery-Based System (#342)
- Storage: Refactor: remove Python code generation (#215)
- API: Resolve buf proto API namespacing issues (#393)
- API: Add sync testdata (#396)
- API: Update apiserver.env to use new config values (#406)
- API: Suppress command usage display on runtime errors (#290)
- API: Quick-fix for e2e CLI cmd state handling (#270)
- API: Fix/CI task gen (#271)
- CI: Allow dir-hub-maintainers release (#402)
- SDK: Fix Python SDK imports and tests (#403)
- SDK: Fix codeowners file (#404)
- SDK: Flaky SDK CICD tests (#422)
- Storage: Add separate maintainers for hub CLI directory (#375)
- Storage: Update agent directory default location (#226)
- Storage: Flaky e2e test and restructure test suites (#416)
- Storage: E2E sync test cleanup (#423)
- chore(deps): Bump github.com/go-viper/mapstructure/v2 from 2.3.0 to 2.4.0 (#314)
- chore(deps): Bump github.com/go-viper/mapstructure/v2 from 2.2.1 to 2.3.0 (#200)
- Added for new features
- Changed for changes in existing functionality
- Deprecated for soon-to-be removed features
- Removed for now removed features
- Fixed for any bug fixes
- Security for vulnerability fixes