84 Commits

Author SHA1 Message Date
wmantly 9cf2d70226 Merge pull request #53 from theta42/add-changelog-bump-1.1.3
Add CHANGELOG.md; bump submodules to v1.1.3
v1.1.3
2026-07-16 16:08:29 -04:00
wmantly e5f3e1714f Add CHANGELOG.md; bump submodules to v1.1.3 (closes #43)
Adds a Keep-a-Changelog-style CHANGELOG.md, linked from README and
docs/index.md, closing the "no changelog or versioning scheme"
issue. Bumps proxy and sso-manager-node to v1.1.3 (both add their
own CHANGELOG.md, served in-app at /docs/changelog).
2026-07-16 16:08:17 -04:00
wmantly 4fe1c41b82 Merge pull request #52 from theta42/docs-nav-and-bump-1.1.2
docs: link Quickstart/Architecture/Standalone from Home; bump submodules to v1.1.2
v1.1.2
2026-07-16 15:40:41 -04:00
wmantly c60e745665 docs: link Quickstart/Architecture/Standalone from Home; bump submodules to v1.1.2
docs/index.md (the published site's home page) never linked to
architecture.md, quickstart.md, or standalone.md -- they were only
reachable by direct URL. Added a "More docs" section linking all
three.

Bumps proxy and sso-manager-node to v1.1.2 (air-gap fixes + in-app
/docs on both).
2026-07-16 15:40:25 -04:00
wmantly 8a6edd4f0e Merge pull request #51 from theta42/track-release-tags
setup.sh: pin submodules to their latest release tag, not master's tip
v1.1.1
2026-07-16 14:02:03 -04:00
wmantly c47aa209be setup.sh: pin submodules to their latest release tag, not master's tip
Both proxy and sso-manager-node now publish real vX.Y.Z tags (see
their own release history). Track those instead of following the
branch tip with `git submodule update --remote`, so a rebuild always
lands on a tagged, versioned release rather than whatever commit
happened to be most recently merged upstream.

Bumps the submodule pins to their current latest tags as a result:
proxy -> v1.1.1, sso-manager-node -> v1.1.1.
2026-07-16 14:01:41 -04:00
wmantly a56a594ff5 Merge pull request #50 from theta42/bump-sso-editable-tos
Bump sso-manager-node submodule pin (editable ToS)
2026-07-16 13:46:05 -04:00
wmantly 287f821e8c Bump sso-manager-node submodule pin
Picks up runtime-editable Terms of Service (closes theta42/sso-manager-node#39).
2026-07-16 13:45:53 -04:00
wmantly 41443f4be9 Merge pull request #49 from theta42/bump-proxy-duckdns-fix
Bump proxy submodule pin (DuckDNS validation fix)
2026-07-16 12:57:28 -04:00
wmantly 9fae4b3b75 Bump proxy submodule pin
Picks up the DuckDNS provider fix: adding a provider no longer pushes
this host's public IP to the domain's A/AAAA record as a side effect
of token validation.
2026-07-16 12:56:46 -04:00
wmantly 273577d124 Merge pull request #48 from theta42/bump-1.1.0-submodules
Bump proxy and sso-manager-node submodule pins to 1.1.0
v1.1.0
2026-07-15 22:43:11 -04:00
wmantly b295c3ae7f Bump proxy and sso-manager-node submodule pins to 1.1.0 2026-07-15 22:42:58 -04:00
wmantly c7276b1e14 Merge pull request #47 from theta42/bump-backup-and-update-check
Bump proxy and sso-manager-node submodule pins
2026-07-15 22:36:41 -04:00
wmantly 7c3f275b71 Bump proxy and sso-manager-node submodule pins
Picks up the standalone backup scripts (ops/backup.sh) and admin
update-check banner in both repos.
2026-07-15 22:36:21 -04:00
wmantly f5c6097924 Merge pull request #46 from theta42/setup-submodule-update-notice
setup.sh: report which submodules actually moved on update
2026-07-15 22:35:34 -04:00
wmantly 49ae0f9b96 setup.sh: report which submodules actually moved on update
git submodule update --init --remote was silent about whether anything
changed. Record each submodule's pinned commit before pulling and print
a before -> after notice for any that moved, so operators running
setup.sh get a clear signal of what was actually updated.
2026-07-15 22:34:54 -04:00
wmantly 3bff9af42d Merge pull request #40 from theta42/bump-sso-unix-service-accounts
Bump sso-manager-node: Unix service accounts, deployment docs de-dup
2026-07-15 20:55:32 -04:00
wmantly 83750ff609 Bump sso-manager-node: Unix service accounts, deployment docs de-dup
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 20:54:31 -04:00
wmantly 1730a5036c Merge pull request #39 from theta42/bump-sso-integrations-page
Bump sso-manager-node: merged Integrations page, Service Accounts, LDAPS docs
2026-07-15 19:58:55 -04:00
wmantly 6b8cd7e553 Bump sso-manager-node: merged Integrations page, Service Accounts, LDAPS docs
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 19:58:26 -04:00
wmantly 4117d7a8ff Merge pull request #38 from theta42/bump-sso-ldap-info-page
Bump sso-manager-node: LDAP Info page
2026-07-15 19:36:03 -04:00
wmantly 62ce314be2 Bump sso-manager-node: LDAP Info page
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 19:35:18 -04:00
wmantly abdc2c0c2e Merge pull request #37 from theta42/bump-sso-ldap-docs
Bump sso-manager-node: 3rd-party LDAP integration docs
2026-07-15 17:27:43 -04:00
wmantly df5e5e1f56 Bump sso-manager-node: 3rd-party LDAP integration docs
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 17:27:20 -04:00
wmantly 1fab34b6ec Merge pull request #36 from theta42/bump-sso-notification-safety
Bump sso-manager-node: notification Compose safety fixes
2026-07-15 17:04:54 -04:00
wmantly cc8e83f42f Bump sso-manager-node: notification Compose safety fixes
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 17:03:46 -04:00
wmantly af68c73629 Merge pull request #35 from theta42/bump-submodules-marketing-pages
Bump proxy and sso-manager-node: marketing landing pages
2026-07-15 16:11:19 -04:00
wmantly 69e02cc121 Bump proxy and sso-manager-node: marketing landing pages
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 16:10:55 -04:00
wmantly ee79b3888b Merge pull request #34 from theta42/marketing-pages
Turn GitHub Pages into a marketing landing page
2026-07-15 16:09:50 -04:00
wmantly fb2d1486c1 Turn GitHub Pages into a marketing landing page; cross-link, drop download buttons
- Rewrite docs/index.md as a short landing page (what it is, screenshots,
  why this over running the two separately, what you get, a minimal
  "get it" snippet) instead of a full config/architecture reference --
  that content still lives in the repo (README, docs/*.md), linked from
  here.
- Cross-link to SSO Manager's and Proxy's own Pages sites.
- Screenshots are now clickable (open full size) on both the Pages site
  and the README.
- Disable show_downloads in docs/_config.yml -- the Cayman theme's
  "Download .zip/.tar.gz" buttons are gone; "View on GitHub" (which links
  back to the repo) is the only header link now.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 16:08:53 -04:00
wmantly f7ae7c5ec7 Merge pull request #33 from theta42/bump-submodules-docs
Bump proxy and sso-manager-node: README/docs screenshots
2026-07-15 15:47:32 -04:00
wmantly a9f9ff00ab Bump proxy and sso-manager-node: README/docs screenshots
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 15:46:01 -04:00
wmantly 6b7488cb0a Merge pull request #32 from theta42/docs-screenshots
Add Documentation link + screenshots to README and docs site
2026-07-15 15:44:58 -04:00
wmantly 7e679928ce Add Documentation link + screenshots to README and docs site
theta-env's GitHub Pages site (docs/, Jekyll) was already configured and
live at https://theta42.github.io/theta-env/ but nothing in the README
linked to it, unlike proxy and sso-manager-node's READMEs -- easy to miss
entirely. Add the same top-of-README Documentation link, plus screenshots
of the composed stack (SSO dashboard + proxy host list from one
./setup.sh run). Also fixes a stale docs/index.md quickstart snippet that
said "set CFG_BASE_DN to your domain" -- CFG_DOMAIN is the actual
required variable (CFG_BASE_DN is an advanced override); everywhere else
in the docs already says CFG_DOMAIN correctly.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 15:42:19 -04:00
wmantly 1bf3f63619 Merge pull request #31 from theta42/bump-sso-remove-services-card
Bump sso-manager-node: remove hardcoded Services card
2026-07-15 01:00:37 -04:00
wmantly 192c5a3c6e Bump sso-manager-node: remove hardcoded Services card
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 01:00:12 -04:00
wmantly bc0f7ae6a1 Merge pull request #30 from theta42/bump-submodules-auth-oauth-perf
Bump proxy and sso-manager-node: auth exclusivity, OAuth wildcard redirect_uri, perf fixes
2026-07-15 00:49:33 -04:00
wmantly 32684d5d35 Bump proxy and sso-manager-node: mutually-exclusive host auth, OAuth wildcard redirect_uri, and performance fixes
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 00:48:59 -04:00
wmantly a61ad10262 Merge pull request #29 from theta42/bump-submodules-nav-unification
Bump proxy and sso-manager-node: unified nav bars
2026-07-14 23:51:04 -04:00
wmantly fc9528f4ba Bump proxy and sso-manager-node: unified nav bars
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-14 23:50:44 -04:00
wmantly 57040bd62a Bump sso-manager-node submodule to pick up the uid/gidNumber fix (#28)
sso-manager-node: 38cc669 -> f45349e (#44) — fixes a crash that broke
every user creation on a theta-env-bootstrapped install
(InvalidSyntaxError on gidNumber), and adds a configurable id floor so
real users start at uidNumber/gidNumber 1500 instead of colliding with
or following the bootstrap admin's reserved 10000.
2026-07-14 23:06:13 -04:00
wmantly 189980d862 Bump proxy + sso-manager-node submodules to latest master (#27)
proxy: 22f382b -> c68fcc9 (#133) — sticky footer fix, Docker commit
hash baked in (incl. submodule GIT_COMMIT build-arg support),
configurable local admin password.
sso-manager-node: f72e888 -> 38cc669 (#43) — Docker commit hash baked
in (incl. submodule GIT_COMMIT build-arg support).

Together with the already-merged theta-env#26, a fresh ./setup.sh run
now generates + prints the proxy's local admin password and bakes
real commit hashes into both images instead of "unknown".
2026-07-14 22:34:25 -04:00
wmantly 9ca3b1a113 Generate the proxy's local admin password, and bake real commit hashes (#26)
Two related fixes found while testing the Docker build:

1. Print the proxy's local anti-lockout admin (proxyadmin2) password
   in the summary. Previously this account was always created with
   username == password == "proxyadmin2" (a hardcoded proxy default —
   see theta42/proxy#133), and setup.sh had no way to know or surface
   whatever password ended up in use. Now generates a random
   CFG_PROXY_ADMIN_PASS the same way it already does for the SSO
   admin, writes it into proxy-secrets.js's auth.localAdminPass (read
   by the proxy once, on first creation of that account), and prints
   it in the final summary. read_config_kv() reads it back from
   proxy-secrets.js so this works correctly on re-runs too (config
   already exists -> ensure_config's early-return path never sets
   CFG_PROXY_ADMIN_PASS in that run's shell, same reasoning as the
   existing SSO_HOST/PROXY_HOST/ADMIN_PASS readback).

2. Pass GIT_COMMIT build-args so the proxy/sso-manager images bake in
   their real commit hash instead of "unknown". Both submodules' .git
   is a pointer file, not a real repo, so the images can never resolve
   their own commit from inside the Docker build context no matter
   what (see theta42/proxy#133 and theta42/sso-manager-node#43) --
   only the host, where the submodule resolves correctly, can compute
   it. setup.sh does that with `git -C <submodule> rev-parse --short
   HEAD` right before each build and exports it for docker-compose.yml
   to pick up.

Verified end to end against a real ./setup.sh run (not just docker
build in isolation):
- Local admin password printed on first run, logs in successfully;
  the DEFAULT ("proxyadmin2"/"proxyadmin2") correctly does NOT.
- Re-running prints the SAME password (confirms the readback path
  works on re-runs, not just first-run).
- `docker exec proxy cat /app/.build_commit` and the equivalent for
  sso-manager both match `git -C <submodule> rev-parse --short HEAD`
  on the host — footer now shows the real hash instead of "unknown".
2026-07-14 22:32:44 -04:00
wmantly ecdd7ee9bd Bump proxy submodule to pick up the SSL fallback fix (#25)
proxy: 8aab9c7 -> 22f382b (#132) — fixes a TLS handshake failure that
broke SSL (including the self-signed fallback cert) for any
connection without an already-known target, e.g. no SNI at all or an
unregistered host. This affects every fresh theta-env install before
DNS/Host records are set up, so it's worth its own bump rather than
waiting to batch with other changes.
2026-07-14 21:34:57 -04:00
wmantly 4f011cbb69 Bump proxy + sso-manager-node submodules to latest master (#24)
proxy: 9d34ff9 -> 8aab9c7 — mobile table-responsive fixes (#131).
sso-manager-node: 3ceeeee -> f72e888 — mobile table-responsive +
group filter bar flex-wrap fixes (#42).
2026-07-14 21:19:39 -04:00
wmantly 5982d44a4a Merge pull request #23 from theta42/chore/bump-submodules-3
Bump proxy + sso-manager-node submodules to latest master
2026-07-14 21:00:02 -04:00
wmantly 8e5b9cd05f Bump proxy + sso-manager-node submodules to latest master
proxy: 1c7ad9a -> 9d34ff9 — target-hostname validation (#126), DuckDNS
domains/subdomains field-collision fix (#127), DuckDNS subdomain
double-suffix fix (#128), DnsProvider.create Domain key mismatch +
rollback fix (#129), footer added (#130).
sso-manager-node: 3d3b15b -> 3ceeeee — footer cleanup (#41).
2026-07-14 20:58:44 -04:00
wmantly 8f9e68bf5e Merge pull request #22 from theta42/feat/setup-self-update
setup.sh: pull theta-env itself before doing anything else
2026-07-14 11:39:38 -04:00
wmantly 79051b96e3 setup.sh: pull theta-env itself before doing anything else
Step 1 (submodule update) only refreshes proxy/sso-manager-node — it
never pulls setup.sh or this repo's own files. So on an existing
deployment, running ./setup.sh alone would build fresh submodule code
but execute a stale copy of the orchestration script itself (missing
whatever fixes landed in it, e.g. the CFG_DOMAIN rename or the
Host-registration step), unless the operator remembered to `git pull`
theta-env manually first.

Add a step 0 that fast-forwards the current branch to its upstream
before anything else runs, then re-execs the script so the rest of
the run uses the freshly-pulled version rather than the copy already
read into memory. Never blocks the run: skips silently if this isn't
a git checkout, is on a detached HEAD, or has no upstream configured
(all normal for e.g. a tarball download); warns and continues on the
current checkout for any other pull failure (offline, local changes
that prevent a fast-forward). Skip entirely with SKIP_SELF_UPDATE=1,
matching the existing SKIP_SUBMODULE_UPDATE convention.

Verified in an isolated scratch clone (not the working repo): pulling
a real commit forward triggers the re-exec and the second invocation
picks up the new HEAD; already-up-to-date and detached-HEAD cases are
both silent no-ops.
2026-07-14 11:38:17 -04:00
wmantly 3cb549f39c Merge pull request #21 from theta42/chore/bump-submodules-2
Bump proxy + sso-manager-node submodules to latest master
2026-07-14 01:29:12 -04:00