Metadata Model¶
NSX uses three metadata layers.
1. Module Metadata: nsx-module.yaml¶
Owned by each module repo.
Declares:
- module identity, type, and version
- backend support flags
- CMake package and target contract
- required and optional module dependencies
- compatibility constraints for board, SoC, and toolchain
2. Curated Lock Metadata: neuralspotx.data/registry.lock.yaml¶
Owned by the NSX tooling repo.
Declares:
- channels such as
stableandpreview - known module entries and project mapping
- starter profiles per board
- default SDK provider revisions for supported boards
3. App Metadata: nsx.yml¶
Owned by each generated app.
Declares:
- project name
- target board and SoC
- toolchain, channel, and profile
- enabled modules and revisions
- optional app-local module registry overrides
Resolution Order¶
- load the curated lock registry
- merge app-local
module_registryoverrides - resolve the requested module and required dependency closure
- validate compatibility against the app target
- materialize source content from curated module locations
- copy or replace vendored
modules/andboards/content inside the app - update
nsx.ymland generatedcmake/nsx/modules.cmake
The metadata model drives orchestration. CMake remains authoritative for the actual build graph.