Schema
1. Schema Manager Configuration (SchemaManager.yaml)
Controls where schemas are stored and how they propagate.
1.1 Repository Types
File (current)
SchemaManager:
repositoryType: "File"
config:
directoryPath: "{{MAPS_DATA}}/schemas"
XRegistry (scheduled)
SchemaManager:
repositoryType: "XRegistry"
config:
serverUrl: "https://registry.example.com"
apiKey: "..."
tenant: "maps"
MapsServer (scheduled)
SchemaManager:
repositoryType: "MapsServer"
config:
endpoint: "https://root-maps-server/api/v1/server/schema"
token: "..."
syncIntervalSeconds: 30
1.2 Repository Lifecycle
- POST or MQTT publish modifies schema
- SchemaManager validates and persists
- Bindings refresh
- Live processors reload
$SCHEMA/#notifications- Backend propagates changes
1.3 Multi-store Plans
Future options:
- Local caches + remote registry
- Push-only/pull-only modes
- Offline shadow copies
- Conflict resolution strategies
1.4 Best Practices
- Use File for dev/edge
- MapsServer for large deployments
- XRegistry for XR ecosystems
- Use strict versions