Add CHANGELOG.md, serve it in-app at /docs/changelog (closes theta42/theta-env#43)
GitHub Releases already carried real changelog notes per tag, but those require internet access to view -- exactly what the /docs route exists to avoid. CHANGELOG.md is a committed, Keep-a-Changelog style file (backfilled from the v1.1.0/v1.1.1/v1.1.2 release notes), linked from README and served at /docs/changelog alongside the rest of the project's docs.
This commit is contained in:
@@ -14,6 +14,7 @@
|
|||||||
# context.
|
# context.
|
||||||
!README.md
|
!README.md
|
||||||
!tos.md
|
!tos.md
|
||||||
|
!CHANGELOG.md
|
||||||
!DEPLOYMENT.md
|
!DEPLOYMENT.md
|
||||||
!API.md
|
!API.md
|
||||||
!directory_spec.md
|
!directory_spec.md
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
# 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.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.2...HEAD
|
||||||
|
[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
|
||||||
@@ -98,6 +98,7 @@ COPY tos.md /tos.md
|
|||||||
# Documentation, served in-app at /docs (routes/docs.js) so it's readable
|
# Documentation, served in-app at /docs (routes/docs.js) so it's readable
|
||||||
# without internet access. Same flattened-path convention as tos.md above.
|
# without internet access. Same flattened-path convention as tos.md above.
|
||||||
COPY README.md /README.md
|
COPY README.md /README.md
|
||||||
|
COPY CHANGELOG.md /CHANGELOG.md
|
||||||
COPY DEPLOYMENT.md /DEPLOYMENT.md
|
COPY DEPLOYMENT.md /DEPLOYMENT.md
|
||||||
COPY API.md /API.md
|
COPY API.md /API.md
|
||||||
COPY directory_spec.md /directory_spec.md
|
COPY directory_spec.md /directory_spec.md
|
||||||
|
|||||||
@@ -161,6 +161,9 @@ required groups, LDAPS/TLS, direct-bind service accounts) live in:
|
|||||||
- [docs/](docs/) (GitHub Pages) — the same content broken into
|
- [docs/](docs/) (GitHub Pages) — the same content broken into
|
||||||
[deployment](docs/deployment.md), [configuration](docs/configuration.md),
|
[deployment](docs/deployment.md), [configuration](docs/configuration.md),
|
||||||
[OAuth/OIDC](docs/oauth.md), and [LDAP](docs/ldap.md).
|
[OAuth/OIDC](docs/oauth.md), and [LDAP](docs/ldap.md).
|
||||||
|
- [CHANGELOG.md](CHANGELOG.md) — what changed in each release.
|
||||||
|
- All of the above is also readable from the running app itself at `/docs` —
|
||||||
|
no internet access required.
|
||||||
|
|
||||||
If you are pointing the app at your own existing LDAP server, see
|
If you are pointing the app at your own existing LDAP server, see
|
||||||
*LDAP requirements* in [DEPLOYMENT.md](DEPLOYMENT.md) — the directory needs the
|
*LDAP requirements* in [DEPLOYMENT.md](DEPLOYMENT.md) — the directory needs the
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ const values = {
|
|||||||
// already covered by the "deployment" entry.
|
// already covered by the "deployment" entry.
|
||||||
const DOCS = {
|
const DOCS = {
|
||||||
overview: {title: 'Overview', file: path.join(__dirname, '../../README.md')},
|
overview: {title: 'Overview', file: path.join(__dirname, '../../README.md')},
|
||||||
|
changelog: {title: 'Changelog', file: path.join(__dirname, '../../CHANGELOG.md')},
|
||||||
deployment: {title: 'Deployment', file: path.join(__dirname, '../../DEPLOYMENT.md')},
|
deployment: {title: 'Deployment', file: path.join(__dirname, '../../DEPLOYMENT.md')},
|
||||||
api: {title: 'API Reference', file: path.join(__dirname, '../../API.md')},
|
api: {title: 'API Reference', file: path.join(__dirname, '../../API.md')},
|
||||||
ldap: {title: 'LDAP', file: path.join(__dirname, '../../docs/ldap.md')},
|
ldap: {title: 'LDAP', file: path.join(__dirname, '../../docs/ldap.md')},
|
||||||
|
|||||||
Reference in New Issue
Block a user