Skip to main content
ui_config is a named bundle of sign-in window settings owned by the project. It holds the branding and the flow behavior; an application does not describe those settings itself — it names the code of the bundle it wants.

Who does what

  • the project owner creates the bundles and gives them codes in the Console, at any time;
  • the application is assigned a default bundle and a list of allowed codes; a code outside that list cannot be passed.
The application selects a bundle with an authorize parameter:
The parameter is optional. If it is absent, the application’s default bundle applies.

What a bundle controls

  • which channels are shown and how — all at once or one (ChannelDisplayMode);
  • how several channels share the window — behind tabs or side by side (channel_layout);
  • on which devices the channel buttons are shown (channel_button);
  • whether the window offers the “Cancel sign-in” button (cancel);
  • the design template of the window;
  • the post-confirmation behavior: what happens to the window and whether the flow continues automatically;
  • the confirmation text;
  • the wording of individual page elements — the texts member.
texts rewords built-in texts of the sign-in window and of the other pages Veriqa renders, for the applications that select this bundle. An entry is keyed by the English text of the element; its value is a replacement key that goes through the locale files, or ready-made texts per language that bypass them:
An entry of the bundle outranks the application’s and the project’s entry for the same text; entries for other texts set there stay in force. A text the bundle sets with its own field (the title, the instruction) is not reworded by texts. Which texts are open, and what happens to an entry that does not fit, is in Rewording a page element for one application. channel_layout, channel_button and cancel are the bundle’s side of three settings of the sign-in window:
  • channel_layout — Tabs (the default) or Grid: every channel on screen at once, each with its own QR code. See Channel layout.
  • channel_button.show_channel_button — Always (the default), MobileOnly or Never. A value that, together with the QR code visibility, would leave a device with neither the QR code nor the button is not applied: the buttons are then shown on every device. See Channel button visibility.
  • cancel.enabled — true or false. The button is on unless some level switches it off; pressing it returns the user to the application with error=access_denied. See Cancel button.
A member the bundle leaves out sets nothing, and the value comes from the application, the project or the core.
What ui_config does not control — a common mismatch of expectations: the sign-in confirmation mode and the audit mode. Those are the deployment owner’s policies and cannot be overridden through a window settings bundle.

Resolution order

The final value of any setting is assembled along a chain, from the most specific level to the most general:
The first level where the value is both set and permitted wins. A more specific level can only narrow what a more general one allowed: protective settings define a ceiling, not a suggestion. This is the answer to “why am I not seeing what I configured”: the value is most likely set at a more specific level, or clipped by a ceiling at a more general one.
The authoritative resolution happens on the server at /connect/authorize, not in whatever bootstrap returned. Bootstrap shows what is enabled in the project; the window’s final appearance is decided at request time.

What is missing

There is no machine-readable way to obtain the list of allowed ui_config codes: the bootstrap response does not carry it, even though /connect/authorize validates the code against an allowlist. Ask the project owner or look in the Console.