The web UI for unified-api, and the shared packages it is built from.
Every unified-api image from 0.34.0 on serves this UI on its own address: open the instance in a browser, sign in, and see what it holds and whether it is keeping up. The UI reads the same REST API every other consumer uses, and keeps no state of its own beyond a theme choice and half an hour of metrics in memory.
- Overview: whether anything needs attention, across everything the instance serves
- Sources: health and freshness per source, groups, hosts and their variables, sync on demand
- Endpoints: the inventories shaped for each consumer, and the sources they are built from
- Projects: the git repositories holding the scripts, their pull health, pull on demand
- Credentials: where each secret is read from and whether it is there, never the secret itself
- Topology: this instance and the instances it federates, and whether each one keeps up
- Metrics: charts sampled from
/metricsevery 10 s while the app is open, last 30 minutes - Configuration: the settings in effect, defaults included, and who can sign in; read-only
- Host search:
/orCtrl+Kanywhere finds a host and opens it in its source - Sign-in: unified-api's own login page, with an API key or an LDAP account
- Permissions respected: a restricted key sees only its sources; admin pages leave the menu
- Light and dark: follows the system, or a choice remembered in this browser
- Shared packages:
@opusprojects/unified-uiand@opusprojects/unified-clientfor any unified-* UI
Using it: run unified-api 0.34.0 or later with the UI turned on. The image ships this UI and its bundled config turns it on; see unified-api's docs/ui.md.
Working on it:
npm install
UNIFIED_API_URL=http://localhost:8182 npm run dev # Vite on :5173, proxying the API
npm run test:e2e # Playwright, against a mocked API| Document | What it covers |
|---|---|
| Layout | The workspace, the two packages and the app, and where new code goes |
| Development | Dev server, API types, typecheck, build, end-to-end tests and CI |
| Sign-in | How the UI signs in through unified-api, sessions and CSRF on writes |
| Demo image | The UI behind nginx, pointed at any instance, and its safety rules |
| Design tokens | The --uu-* variables, light and dark, and the four health states |
| Releasing | Versions, the CHANGELOG, tags, and how unified-api picks up a release |
Contributions are welcome through pull requests against main. Every PR runs the same checks as
docs/development.md describes: formatting, typecheck, build, the end-to-end
suite and the demo image. Commit messages and PR titles follow
Conventional Commits.
Security issues: please report them privately through GitHub's security advisories, not in a public issue.