No description
  • Dart 86.9%
  • C++ 5.1%
  • CMake 3.8%
  • Shell 2.7%
  • Swift 0.5%
  • Other 1%
Find a file
SirSlader 02c0974f72 Release 0.8.2: new icon and Keyworks identity
- Bump the version, add the appdata entry, and add the 0.8.2 notes.
- Cover the new logo, Keyworks branding, app id change, and release targets.
2026-10-23 15:39:55 -04:00
.agents/skills docs: add AGENTS guide, project README and agent skills 2026-10-09 15:08:08 -04:00
android refactor: move the app id to the keyworks namespace 2026-10-23 12:58:27 -04:00
assets feat(branding): use the new orbita logo in the app 2026-10-23 15:39:02 -04:00
docs Release 0.8.2: new icon and Keyworks identity 2026-10-23 15:39:55 -04:00
ios refactor: move the app id to the keyworks namespace 2026-10-23 12:58:27 -04:00
lib feat(branding): use the new orbita logo in the app 2026-10-23 15:39:02 -04:00
linux Release 0.8.2: new icon and Keyworks identity 2026-10-23 15:39:55 -04:00
macos refactor: move the app id to the keyworks namespace 2026-10-23 12:58:27 -04:00
test Release 0.8.1: update verification hardening 2026-10-22 18:59:12 -04:00
tool refactor: move the app id to the keyworks namespace 2026-10-23 12:58:27 -04:00
web feat(branding): credit Keyworks Technology 2026-10-23 10:56:41 -04:00
windows refactor(app): rename app to orbita 2026-10-21 21:52:06 -04:00
.gitignore refactor(update): sign releases per-artifact to match the sibling apps 2026-10-13 20:34:11 -04:00
.metadata chore: scaffold Flutter project and license control-plane deps 2026-10-09 15:07:21 -04:00
AGENTS.md refactor(app): rename app to orbita 2026-10-21 21:52:06 -04:00
analysis_options.yaml chore: scaffold Flutter project and license control-plane deps 2026-10-09 15:07:21 -04:00
DEVELOPER_GUIDE.md fix(release): point nyra at its renamed checkout 2026-10-23 11:57:41 -04:00
pubspec.lock chore(deps): remove unused cupertino_icons 2026-10-19 10:00:46 -04:00
pubspec.yaml Release 0.8.2: new icon and Keyworks identity 2026-10-23 15:39:55 -04:00
README.md refactor: rename remaining command center identifiers to orbita 2026-10-23 08:51:06 -04:00

Orbita

Orbita is a vendor-internal admin dashboard for site licenses across all of Keyworks Technology's apps, built with Flutter (desktop / web) and talking to the central license control plane (a self-hosted Supabase running the license-admin Edge Function).

See every site, issue / renew / revoke licenses, spot newly detected sites, and watch the machines running your apps — from one place. It is never shipped to customers.

Features

  • Dashboard — a fleet roll-up (active, expiring soon, expired, awaiting a license, revoked) plus the sites that need attention, with quick issue/renew.
  • Sites — search, status filters, sort by attention or expiry, add/edit, and inline row actions (Issue / Renew / Revoke / Remove).
  • Site detail — license, contact and notes (via GET /site, minus secrets) and the site's seats grouped by deployment, plus a copy-site-id button.
  • Seats — a fleet-wide list of every machine + signed-in user, searchable, with Stale (no check-in for 7 days) and Hosts only filters.
  • Add a site from a host — create a site from a detected host (the machine running a local Supabase).
  • Settings — the control-plane server, theme, the expiring-soon window, issue defaults, and the release workspace + Forgejo token.
  • Releases — manage the vendor's apps from one place: see each app's local and published version, and build/sign/publish it — plus Publish artifact… for builds from another host (e.g. a Windows zip).
  • Self-update — checks Forgejo releases and updates itself in place, verifying each download's detached signature.
  • Secrets stay secret — admin tokens live in the OS keychain.

How it works

Orbita talks to the central control plane — one self-hosted Supabase running the license-admin Edge Function. It owns the RSA signing key and is the single source of truth for every site's license.

Orbita ──HTTPS + x-admin-token──▶ license-admin (Edge Function) ──▶ control-plane DB

A site is a customer company (one license per site, not per user). Under it are deployments (labs / Supabase instances) and seats (a machine + signed-in user the app reports on sign-in); the machine running a site's local Supabase is its host. Each company also has its own local Supabase — the site's backend its clients connect to, not a control plane.

Quick start

flutter pub get

# run (desktop), supplying the admin token without committing it
flutter run -d linux --debug \
  --dart-define=CONTROL_PLANE_ADMIN_TOKEN=<ADMIN_TOKEN>

dart analyze lib/   # must be clean
flutter test        # must be green

Linux prerequisites: GTK 3 and libsecret-1-dev (for secure storage).

Configuration

The app ships pointed at the central control plane (https://centralauth.sladertech.cloud/functions/v1/license-admin), seeded as the Central connection on first run — so it works with no setup. Only the admin token is needed; enter it in Settings → Control plane server, where it is stored in the OS keychain. The server URL is changeable there too (CONTROL_PLANE_URL overrides the built-in default).

--dart-define=CONTROL_PLANE_ADMIN_TOKEN=… is a debug-only convenience: it is ignored in release builds so the token is never baked into a shipped binary. Control-plane URLs must be https:// (loopback http:// is allowed for local dev).

To publish releases from the Releases screen, enter a Forgejo API token in Settings → Releases (stored in the OS keychain). The same section sets the app repos root — the directory the panel resolves app paths against (blank uses the working directory).

Documentation

  • DEVELOPER_GUIDE.md — architecture, the control-plane API, conventions, and the git & release process.
  • docs/branding/naming.md — the Keyworks product family (Orbita, Tapestry, Nyra), taglines, visual system, and domain plan.
  • docs/releases/ — release notes per version.