Alta Video Camera Proxy
APT is a Windows Electron desktop app that imports an existing Alta Video session through its paired Chrome extension, discovers local cameras, and launches aware-cam-proxy.exe without exposing Alta credentials to the renderer.
Security boundary
main.jsowns the in-memorySessionStore,AltaClient,ProxyProcessManager, bridge pairing envelope, and update checker.- The renderer receives only connection origin/state, device/site/auth responses, and owned proxy metadata. It never receives or supplies the Alta session value.
- The bridge listens only on
127.0.0.1:18247, accepts only the committed extension origin, requires theX-APT-Pairingsecret, limits concurrent/body/deadline work, and validates an exact canonical Alta HTTPS origin. - The pairing envelope is a scrypt hash stored atomically under Electron
userDatawith restrictive permissions. The plaintext secret is shown once on first run or rotation. Revoke invalidates it. - Proxy launch is a direct
spawnof the fixed helper withshell: false; stop actions can target only children owned by this app. - Updates are check-only. APT checks the exact GitPeji release API and can open only
https://git.pejicorp.com/peji/Alta-Proxy-Tool/releasesin the system browser. It never downloads, replaces, or executes an update.
Requirements
- Windows (current supported runtime scope)
- Node.js and npm for development
- Chrome with the bundled extension loaded unpacked
aware-cam-proxy.exebeside the development app or packaged portable executable- An active Alta Video login in Chrome
Setup and pairing
npm install
npm start
- Open
chrome://extensions, enable Developer mode, and loadchrome-extension/unpacked. - Start APT. Under Bridge Pairing, copy the one-time secret.
- Open the extension pairing settings, paste the secret, and save it.
- Visit your Alta deployment in Chrome and use Send to APT.
- Select a local camera and choose Start Proxy.
Use Generate / Rotate if a pairing may have been exposed, then update the extension. Use Revoke to immediately disable bridge authentication.
Development and verification
npm test # Node test suite, including synthetic runtime contracts
npm run check # Syntax checks plus tests
npm run build-test
Tests use synthetic sessions/transports/processes only. Never add a real Alta tenant URL or session value to fixtures, logs, screenshots, or commits.
Core files:
main.js— Electron lifecycle, trusted-sender IPC, fixed loopback serversrc/electron-runtime.js— pairing persistence, bridge handler, narrow runtime orchestrationsrc/session-store.js,src/alta-client.js— main-only Alta session and requestssrc/proxy-launch.js— fixed shell-free helper process managementsrc/update-policy.js— exact GitPeji check-only release policypreload.js— narrow context bridgerenderer.js,index.html,styles.css— non-secret UIchrome-extension/— stable-ID paired cookie sendertest/— pure and end-to-end contract tests
Building
npm run build
The output remains Windows-only because the external camera helper is Windows-specific. Copy aware-cam-proxy.exe beside the portable APT executable before use. Dependencies are intentionally unchanged in this hardening release.