-
Notifications
You must be signed in to change notification settings - Fork 7
Description
Idea: Given the decentralized / federated notion of distinct libraries of OKH designs, and the need to get / fetch / pull / push to each of these libraries, there's an open and fairly mature technology that does basically the same thing, which are container registries.
Ref: What is a container registry?
Registry Structure
Index Layer: Similar to container registries, maintains metadata, catalogs, and versioning information for OKH designs
Storage Layer: Implements a layered approach where OKH components (CAD files, BOMs, etc.) are stored as separate blobs but linked together
Auth Layer: Handles access control and design verification
Key Concepts
Layered Downloads: Each component of an OKH file can be downloaded separately, similar to container layers
Unified Interface: Standardized CLI and API regardless of the design library being accessed
Decentralized Storage: Support for multiple registries with consistent interfaces
OME Integration
The existing OME.extraction component can be used to validate uploaded OKH files
OME.analysis can provide capability matching and requirement validation
The validation pipeline ensures design integrity
Example CLI workflow
# Pull a complete OKH design
okh pull library/design:version
# Pull specific layers
okh pull --layer=cad library/design:version
okh pull --layer=bom library/design:version
# Push a design
okh push library/design:version ./okh-directory
# List available designs
okh search "keyword"
# Validate design
okh validate ./okh-directory