secubox-deb/packages/secubox-webext
CyberMind-FR 5ab09b68f9 feat(webext): avatar personas — selectable login bundles + one-click Become (ref #409)
The Companion's vault becomes a "persona": a named group of site logins the
operator picks via a tick-list. The popup auto-lists which sites you're signed
into (cookie counts), pre-ticks your saved selection, and remembers it. Saving
encrypts the chosen group in the browser; the box keeps ciphertext only. One
"Become" click restores the whole group on any LAN machine — passwordless
sign-in across same-network computers. Nothing is published or leaves the box.

- vault.js: discover() login list, restoreProfile() group restore, registrable()
- popup: persona builder, selectable picker, persona-grouped list with Become
- manifest: <all_urls> so the picker can enumerate cookies
- gitignore the built .xpi
2026-05-28 14:13:20 +02:00
..
content feat(webext): relay via avatar peek/poke + experimental YouTube PO-token capture (ref #401, #402) 2026-05-28 12:03:35 +02:00
options feat(webext): relay via avatar peek/poke + experimental YouTube PO-token capture (ref #401, #402) 2026-05-28 12:03:35 +02:00
popup feat(webext): avatar personas — selectable login bundles + one-click Become (ref #409) 2026-05-28 14:13:20 +02:00
.gitignore build(webext): add build.sh to produce the .xpi (ref #401) 2026-05-28 11:04:26 +02:00
background.js feat(webext): SecuBox Companion Firefox extension — P1 scaffold (ref #401) 2026-05-28 10:55:32 +02:00
build.sh build(webext): add build.sh to produce the .xpi (ref #401) 2026-05-28 11:04:26 +02:00
manifest.json feat(webext): avatar personas — selectable login bundles + one-click Become (ref #409) 2026-05-28 14:13:20 +02:00
README.md feat(webext): SecuBox Companion Firefox extension — P1 scaffold (ref #401) 2026-05-28 10:55:32 +02:00

SecuBox Companion (WebExtension)

Firefox WebExtension companion for a SecuBox appliance. Issue #401.

Status — P1 (scaffold)

  • Toolbar popup: live module health dots + quick links to each module + "Open dashboard". Toolbar badge shows the count of down modules.
  • YouTube cookie relay: reads youtube.com cookies from this browser (which is logged in / passes BotGuard) and POSTs them to PeerTube's cookie-intake endpoint — so PeerTube's yt-dlp import works without manually exporting cookies.txt + scp. Solves the import problem from the browser side (see #388).
  • Settings: configure the hub base URL, the monitored module slugs, and the cookie endpoint.

Roadmap (#401)

  • P1 (this): popup status + module links + cookie relay. scaffold
  • P2: sidebar_action widget with live metrics (RAM/CPU/health).
  • P3: console TUI (xterm.js) over a curated, authenticated command API.
  • P4: PO-token relay for YouTube import (the browser passes BotGuard, so it can hand PeerTube a working PO token — no bgutil server needed).

Auth

Requests use credentials: "include" so they ride the SecuBox SSO-lite session cookie (#400). Until #400 lands, health probes work for unauthenticated /health endpoints; authenticated calls (cookie relay backend) need the session.

Install (development, unsigned)

Firefox requires signing for permanent installs. For development:

  1. about:debuggingThis FirefoxLoad Temporary Add-on → pick packages/secubox-webext/manifest.json.
  2. Click the toolbar icon → Settings → set the hub URL (e.g. https://admin.gk2.secubox.in).

For a permanent install, sign via AMO (web-ext sign) or run on Developer/ESR with xpinstall.signatures.required=false.

Backend dependency

The cookie-relay button POSTs to <hubBase><cookieEndpoint> (default /api/v1/peertube/import/cookies). That endpoint (write the Netscape body to the PeerTube LXC at storage/tmp-persistent/youtube-cookies.txt + enable + restart, à la peertubectl set-youtube-cookies) is the P1.5 backend task on secubox-peertube (#388).

Build a distributable XPI

cd packages/secubox-webext
zip -r -FS ../secubox-webext.xpi . -x '*.git*'
# or: web-ext build