Skip to main content

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