From 72606bfc13253798b9478d435bed0efe8f3719c9 Mon Sep 17 00:00:00 2001 From: William Mantly Date: Tue, 4 Aug 2026 13:27:28 -0400 Subject: [PATCH] feat: seed theta-proxy + theta-jump as managed host resources (v1.35.16) The bootstrap now creates theta-proxy and theta-jump as managed host-kind resources in the Directory (matching the OAuth client identities), alongside the existing stack host and its service entries, so a fresh install shows them as first-class hosts. Co-Authored-By: Claude --- CHANGELOG.md | 5 +++++ bootstrap/bootstrap.js | 25 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ac0378a..9e377c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,11 @@ orchestration code; see each submodule's own `CHANGELOG.md` [sso-manager-node](https://github.com/theta42/sso-manager-node/blob/master/CHANGELOG.md)) for what changed inside the apps it composes. +## [v1.35.16] - 2026-08-04 + +### Added +- **theta-proxy + theta-jump as first-class managed host resources** — the bootstrap now seeds them as managed `host`-kind resources in the Directory (in addition to the existing stack host and its service entries), so a fresh install shows them as hosts. + ## [v1.35.15] - 2026-08-04 ### Fixed diff --git a/bootstrap/bootstrap.js b/bootstrap/bootstrap.js index b960c1e..398b4f4 100644 --- a/bootstrap/bootstrap.js +++ b/bootstrap/bootstrap.js @@ -430,6 +430,31 @@ async function seedDirectory(token, clientId, jumpClientId) { sshPort: 22, managed: true, }, ['stack-host']); + + // theta-proxy and theta-jump are first-class managed host resources (their + // names match the OAuth client identities the proxy/jump apps use). They + // appear as hosts in the Directory; the per-app services below still carry + // the OAuth-client + reachability detail. + const jumpHostAddr = process.env.CFG_JUMP_HOST || (DOMAIN ? `jump.${DOMAIN}` : ''); + await ensure('host', 'theta-proxy', 'host_theta-proxy', site.id, { + subType: 'linux', + address: `https://${PROXY_HOST}`, + port: 3000, + gitRepo: 'https://github.com/theta42/proxy', + icon: 'mdi:server-network', + tagline: 'Reverse proxy and API gateway (node management UI).', + managed: true, + }); + await ensure('host', 'theta-jump', 'host_theta-jump', site.id, { + subType: 'ssh', + address: jumpHostAddr ? `https://${jumpHostAddr}` : '', + port: 3002, + gitRepo: 'https://github.com/theta42/jump-host', + icon: 'mdi:ssh', + tagline: 'Secure SSH jump host.', + managed: true, + }); + await ensure('service', 'SSO Manager', 'sso-manager', host.id, { address: `https://${SSO_HOST}`, port: 3001,