Manifest, schema and discovery¶
The language-neutral contract: how a UI in any language discovers what
ViewModels and commands exist, learns their layout, and detects an
incompatible build. This cluster :satisfies: UI connector (MVVM) (FEAT_0092).
The application publishes a single self-describing manifest per instance on a well-known, instance-namespaced service. The manifest enumerates every ViewModel and command — names, field schemas (drawn from the closed POD type set), command signatures, kinds, and idempotent flags — and carries a contract hash. A UI reads the manifest, validates the hash, and binds dynamically; it never guesses service names. Hash mismatch fails closed (read-only inspect, commands disabled). |
The application shall publish exactly one manifest on a well-known iceoryx2 service per application instance, with publisher history depth 1 so a late-joining UI receives the current manifest immediately. Every service the connector creates (manifest, ViewModels, commands) shall be prefixed by an instance namespace identifier, configurable via the connector builder and defaulting to the process name, so multiple taktora applications can coexist on one host without collision. |
The manifest shall enumerate, for the instance: every ViewModel and its
iceoryx2 service name and field schema; every command and its request /
reply service names, parameter schema, |
The manifest shall carry a contract hash computed over the structural contract — ViewModel and command names, field names and types, and command signatures — so that a client built or generated against one contract can detect an incompatible application build by comparing hashes. |
The manifest’s field-schema descriptors shall express exactly the closed
POD type set of ViewModel fields restricted... (REQ_0858) — scalars, fixed-length arrays, inline
bounded UTF-8 strings (with declared capacity), nested structs, and C-like
enums (with named discriminants) — so any target language can represent and
deserialize a ViewModel off the manifest alone. The schema’s |
When a client’s expected contract hash does not match the manifest’s, the client shall refuse to bind in its normal (read-write) mode. It may enter a read-only inspect mode that displays ViewModels best-effort by matching fields by name, but in that mode all commands shall be disabled. The read-only fallback is a compatibility control, not a security control. |
A UI shall be able to enumerate the live taktora applications on the host by scanning the iceoryx2 service registry for services matching the manifest naming pattern, then reading each manifest. No central registry process is required. |
The |