Skip to content

Schema-Generated Parts

The UI loads network config documents from the API and renders most domain behavior from that data.

Network schema sourceUI behavior
network.idAPI context, item requests, action payloads
display_nameNetwork selector label
descriptionOptional user-facing context
domains[]Sidebar domain list and create-profile role choices
domains[].descriptionHuman-readable domain labels
domains[].item_schemasProfile forms, card fields, map marker public data
instances[]Instance metadata available to create/fetch flows
actions.*.interactions[]Visible target domains and available action buttons for the current source domain
requirement_schemaDynamic action form in the modal/drawer
event_schemaStored in action metadata; not yet rendered as a full event UI
JSON Schema $refExpanded before rendering through resolveNetworkRefs() / resolveRefs()
property private: trueHidden from public cards and map markers
x-import-aliases, x-import-paths, x-wallet-aliasesExtra field names the import mapper can use when matching wallet or DigiLocker payloads into the form

SchemaForm renders domains[].item_schemas with RJSF and AJV8.

Generated behavior:

  • field order follows schema property order
  • format: "date" uses DatePickerWidget
  • format: "email" gets an email placeholder
  • string enums get select-style placeholder behavior
  • private: true fields are hidden in compact mode

DomainCard and CardFieldsFromSchema render item cards from schema properties. Public cards filter out fields marked private: true.

The component does not need domain-specific code if it receives:

  • the JSON Schema
  • the item state data
  • optional action metadata

Action modals render requirement_schema dynamically. When an action has no requirement schema, the UI can submit an empty requirements object.

HomePage walks every entry in network.actions and matches interactions by from_domain and to_domain, so the list UI can render any configured action type without a dedicated connect code path.

Credential import does not render from the network schema directly, but it does depend on schema metadata when mapping imported values into a form.

  • every schema property is matched against its raw property name plus normalized snake_case, camelCase, and alphanumeric-only variants
  • optional x-import-aliases, x-import-paths, and x-wallet-aliases extensions let a project describe provider-specific field names without changing UI code
  • number and integer fields are coerced from strings when the schema expects a numeric value
  • unmatched imported fields are retained as skipped values for user feedback instead of silently failing