2026-09-12 00:57:48 -04:00
2026-09-12 00:57:48 -04:00
2026-09-11 18:14:17 -04:00
2026-09-12 00:57:48 -04:00
2026-09-11 18:14:17 -04:00
2026-09-11 18:14:17 -04:00
2026-09-11 18:14:17 -04:00
2026-09-11 18:14:17 -04:00
2026-09-12 00:57:48 -04:00

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 <20> 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 TTP<54>s 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, TTP-styled chrome, search / notifications / messages / profile

The logged-in header follows the public TTP shell (text-bg-dark, FA 6.7.1, Bootstrap 5.3). Search stays visible and centered. Account is a top-right dropdown like the site. Notifications and messages are the same bell / envelope menus. Profile edit covers User CP preferences except email, password, and phone — those open {site}/usercp/…. Lists are placeholders until the API step.

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

Description
An electron app that pairs with a TTP install of your choice
Readme MIT 423 KiB
Languages
JavaScript 75.2%
HTML 19.3%
CSS 5.1%
PowerShell 0.4%