Files
Capsule/README.md
2026-09-11 18:14:17 -04:00

1.9 KiB
Raw Blame History

Capsule

Desktop companion for The Tempus Project. Point it at a TTP site, sign in with a username and password or paste an API token, and work against that install from the desktop.

This replaces the old TempusToolkit Electron stub. The keepers were the login ? stored-token ? home flow. Hardcoded LAN URLs, nodeIntegration, and the leftover WoW-folder picker did not come along.

Run it

From this folder (Windows source checkout is fine — Capsule is Node, not PHP):

npm install
npm run dev

npm start previews a production build. There is no local TTP site on the Windows checkout. Login needs a reachable install (typically the Ubuntu host) with api/apiAccessPersonal on for user-token calls.

How auth works

All HTTP runs in the main process. The renderer never sees the token and never talks to the site directly, so TTPs same-origin CORS policy does not apply.

Action Endpoint Notes
Password sign-in POST /api/login username + password, application/x-www-form-urlencoded. Same limiter as browser login. No CSRF, no Turnstile.
Confirm identity GET /api/users/find/{username} Bearer token. Returns a user id only.
Existing token Admin ? Tokens Personal or app token. Username is optional and only used for that find call.

The token is stored under Electron userData (session.json). safeStorage encrypts it when the OS keychain is available.

App-facing pairing notes live with the PHP app: repos/ttp/docs/capsule.md.

Layout

Path Job
src/main/ Window, session file, TTP HTTP, IPC
src/preload/ window.capsule bridge
src/renderer/ Login view and connected workspace

Remote

This checkout starts with no git remote. When the repo exists on the project host:

ssh://git@git.thetempusproject.com:2222/the-tempus-project/capsule.git