Skip to content

About

Shared UI components for the unified-* tools

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Unified UI

unified-ui CI License: Apache 2.0 React TypeScript

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.


✨ Features

  • 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 /metrics every 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: / or Ctrl+K anywhere 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-ui and @opusprojects/unified-client for any unified-* UI

🚀 Getting started

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

📚 Documentation

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

🤝 Contributing

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.


👥 Authors


⚖️ License

Apache 2.0

About

Shared UI components for the unified-* tools

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages