Skip to content

Container Registry model for OKH design libraries #49

@touchthesun

Description

@touchthesun

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions