# Changelog All notable changes to this project are documented here. Format loosely follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versions correspond to git tags (`vX.Y.Z`) and `nodejs/package.json`'s `version`. ## [Unreleased] ## [1.1.5] - 2026-07-16 ### Fixed - Bumped `jq-repeat` 2.0.1 -> 2.1.0. `update()` is now trailing-edge throttled (~50ms) even on the first call; `profile.ejs`'s edit-profile flow updated a scope and immediately slid the same element into view, which could briefly show stale/empty data. Deferred the slide by 60ms. ## [1.1.4] - 2026-07-16 ### Added - **CI**: GitHub Actions now builds the real bundled image, seeds LDAP fixtures, and runs the full Jest suite on every PR (Node 18/20/22) -- this repo had unit tests but nothing ran them automatically until now. - **White-label**: ``, the navbar brand text, and the favicon were hardcoded "SSO - Theta 42"/"SSO Manager" despite `conf.name` already existing (it was never actually rendered). New `conf.logo` key added alongside it. Footer attribution is left as-is. Closes [#6](https://github.com/theta42/sso-manager-node/issues/6). ### Fixed - The bundled default ppolicy entry set `pwdLockout: FALSE`, silently making the admin "deactivate user" action not actually block that user's login. Fixed to `TRUE`, with a drift-correction path in `ops/ldap-setup.sh` for already-deployed instances. A separate, deeper ppolicy-overlay issue remains open as [#68](https://github.com/theta42/sso-manager-node/issues/68). - `top.ejs` referenced a `/static/favicon.svg` that didn't exist in `public/` (a pre-existing 404) -- now uses the existing logo file via `conf.logo`. ## [1.1.3] - 2026-07-16 ### Added - `CHANGELOG.md` (this file), backfilled from the release notes for every tag so far and served in-app at `/docs/changelog`. Closes [theta-env#43](https://github.com/theta42/theta-env/issues/43). ## [1.1.2] - 2026-07-16 ### Fixed - Removed a dead IE<9-only `html5shim` script tag pointing at a domain that no longer resolves. ### Added - **In-app documentation**: `GET /docs` and `GET /docs/:slug` render this project's own README, DEPLOYMENT, API.md, `docs/{ldap,oauth,configuration}.md`, and `directory_spec.md` server-side — readable from the running app with no dependency on GitHub Pages, which requires internet access to view. Public, no auth, rate-limited. ## [1.1.1] - 2026-07-16 ### Added - **Terms of Service is now editable at runtime by admins.** `tos.md` used to be baked into the repo and read once at startup, requiring a code change and deploy to update. It's now a Redis-backed singleton, editable from a new "Terms of Service" card on the admin Dashboard, with the bundled `tos.md` used only as a one-time seed for new deployments. Admins can optionally require all users to re-accept the terms after a substantive edit. Closes [#39](https://github.com/theta42/sso-manager-node/issues/39). ([#62](https://github.com/theta42/sso-manager-node/pull/62)) ## [1.1.0] - 2026-07-16 First tagged release. Establishes the `vX.Y.Z` tag convention that the in-app update-check banner polls against going forward. ### Added - Standalone backup script (`ops/backup.sh`) — snapshots LDAP (`slapcat`), Redis, and `./config`, with retention. - Admin-only in-app banner that checks GitHub releases every 24h and surfaces available updates. - Unix/POSIX and LDAP bind-only service account support, distinct from real-person accounts. - Merged OAuth Apps + LDAP Info into a single Integrations page. [Unreleased]: https://github.com/theta42/sso-manager-node/compare/v1.1.5...HEAD [1.1.5]: https://github.com/theta42/sso-manager-node/compare/v1.1.4...v1.1.5 [1.1.4]: https://github.com/theta42/sso-manager-node/compare/v1.1.3...v1.1.4 [1.1.3]: https://github.com/theta42/sso-manager-node/compare/v1.1.2...v1.1.3 [1.1.2]: https://github.com/theta42/sso-manager-node/compare/v1.1.1...v1.1.2 [1.1.1]: https://github.com/theta42/sso-manager-node/compare/v1.1.0...v1.1.1 [1.1.0]: https://github.com/theta42/sso-manager-node/releases/tag/v1.1.0