Settings¶
The Settings screen holds the configuration of the instance. It needs an administrator account. The screen has five sections.
General¶
- Site name
The name that the browser tab and the header show.
- Licensed to
The name of the licence holder.
- Public URL
The public address of this instance. Midair builds the webhook addresses and the MCP address from it, and Horizon calls back to it.
- Logo URL
The address of the logo.
Features¶
Four switches enable or disable the top-level sections: Vision, Monitoring, Testing and Analysis.
A disabled section disappears from the sidebar, and its screens answer Not Found.
These four are not the licence features of Users, teams and access. They are a choice about what this instance shows.
Access¶
The switch Public instance decides who can read without an account. It is off by default.
- Off (private)
Midair and the Bublik beside it are behind the sign-in. A person without an account sees only the sign-in page. A link to a Bublik page sends them to the sign-in, and back to that page after it.
- On (public)
A visitor without an account reads what a viewer of every project reads: the projects, the test runs, the analyses, their results, logs, charts and comments, in Midair and in Bublik. A visitor does not see the users, the teams, the nodes, the monitored devices, the credentials or the settings, and cannot start, change or delete anything. The header shows Sign in instead of the account menu.
The switch takes effect at once, in Midair and in Bublik.
Setup¶
Run setup again opens the setup wizard. Use it to go back over the questions that the wizard asked at the first sign-in. See Getting started.
Integrations¶
Each integration is a card. The card says whether the integration is configured, and a click opens its fields.
- Releases
The portal that the Distributions marketplaces list, and the credential that Midair asks with. See Distributions.
- Bublik
Where the test logs are published and browsed. The fields name the Bublik UI address, the SSH account of the log server, and the incoming directory. Midair derives the incoming directory from the environment variables when the override field is empty. See Testing.
Midair keeps the Bublik installed with it in step with itself, once a minute, over the same SSH account:
Each Midair user with an e-mail address has a Bublik account with that address and the same password. Administrators are Bublik administrators. A user that is deactivated or deleted in Midair is deactivated in Bublik. Bublik accounts that Midair did not make stay as they are. On a shared instance only administrators get a Bublik account, and only they may open Bublik.
Each Midair project has a Bublik project of the same name, and the runs of the project are imported into it.
Each such Bublik project has the configurations
per_conf,references(the log server and the repositories of the project) and a report configurationmidairwith a chart for each test that reports measurements. When a person activates a version of their own of one of these configurations in Bublik, Midair leaves that configuration alone.
The card shows when the last synchronization ran and what it changed.
- AI
The provider for the log analysis, the reviews and the Vision lines. See AI providers.
The mail server. Midair sends the one-time sign-in codes and the comment notifications through it.
- Delta
The monitoring agent. Two fields: the path to the agent repository on this server, and the address that the agent reports to. The report address must be reachable from the devices, so it is not
localhostand not the port of the user interface. An empty field falls back to the public URL. See Monitoring.- Webhooks
The incoming hooks that start a template from outside. See Continuous integration.
- Google Calendar
Mirrors the planned runs into a calendar.
- MCP
The endpoint for an AI assistant. See MCP endpoint.
- Credentials
The secret store: the passwords and the SSH keys that the nodes and the repositories use. See Credentials.
AI providers¶
Midair can reach an AI model in four ways. Two of them are the HTTP APIs of the vendors, billed per token against a key. The other two are the command-line tools of the assistants, which answer out of the subscription that they were signed in with.
Provider |
How it answers |
|---|---|
|
The Anthropic API, with an API key. |
|
The OpenAI API, with an API key. |
|
The Claude Code command-line tool. |
|
The Codex command-line tool. |
The screen also holds the model name for each API.
Signing in the command-line tools¶
The two tools sign in differently, because the vendors made two different choices about where the browser has to be.
Codex signs in from anywhere. codex login --device-auth prints a link and a
one-time code, and it returns when somebody approves it in a browser on any
machine. The server drives that itself: the screen shows the link and the code,
and the administrator finishes it on whatever device they are sitting at.
Claude cannot be driven that way. Its sign-in opens a browser on the host that
runs it, and on a server that is nobody’s browser. So the token is made where a
browser already is. Run claude setup-token on the machine of the
administrator, and paste the result into the credential store.
Either tool also accepts a plain API key, and either may already be signed in by hand on the host. The screen asks the tool about itself rather than reading the settings, because what the tool believes is the only answer that predicts whether the next run works.
System update¶
Update this instance asks the server to update itself. The server stops answering while it restarts, and the screen waits for it to come back. Reload the page to pick up the new version.