From 4b613c7ca16174596fa59b081ef27dffae22a339 Mon Sep 17 00:00:00 2001 From: William Mantly Date: Thu, 23 Jul 2026 02:28:50 -0400 Subject: [PATCH] Release 1.3.3: bump sso-manager-node to v1.3.0 Completes the ORM port (OTP/impersonation 500s, OAuth authorize 400s), adds the OAuth client management API and dockerized test suite. See CHANGELOG.md for the embedded submodule changelogs (v1.2.1 + v1.3.0). Co-Authored-By: Claude Opus 4.8 --- CHANGELOG.md | 32 ++++++++++++++++++++++++++++++++ sso-manager-node | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 776028b..ee7c267 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,38 @@ for what changed inside the apps it composes. ## [Unreleased] +## [1.3.3] - 2026-07-23 + +### Bumped +- sso-manager-node -> [v1.3.0](https://github.com/theta42/sso-manager-node/releases/tag/v1.3.0) (from v1.1.18; includes the intermediate v1.2.1 release) + +sso-manager-node 1.3.0: + +### Added +- **OAuth client management API** at `/api/oauth/client` (group `app_sso_oauth_admin`): list, create, update, delete, and rotate-secret for OAuth clients, backed by the Resource model. Accepts form-style string inputs (newline-separated `redirect_uris`/`allowed_groups`, space-separated `scopes`). +- **Dockerized test suite**: `docker-compose -f docker-compose.test.yml up --build` spins up OpenLDAP + Redis + a test-runner that seeds the test user and runs the full jest suite (174 tests) against them. `tests/globalSetup.js` honors `REDIS_URL`. + +### Fixed +- Completed the model-redis → `@simpleworkjs/orm` port that shipped half-finished in 1.2.1: + - `OtpToken.issue`/`verify` called nonexistent `find()`/`listDetail()` — every OTP login 500'd. + - Impersonation create/revoke called nonexistent `ImpersonationToken.listDetail()` — both endpoints 500'd. + - `OAuthClient` read `is_valid` from the Resource model, which has no such column — every client evaluated as disabled and **all `/oauth/authorize` requests were rejected with 400**. Client validity now lives in `metadata` (absent = valid). + - `OAuthClient.add` didn't set the required-unique `Resource.slug`; clients now get a slug derived from the client name. + - `GET /api/token/:name/:token` returned `{results: null}` with 200 for unknown tokens (orm `get()` returns null instead of throwing); now 404s. +- `User.login` returns a clean 401 instead of crashing when neither `uid` nor `username` is supplied. +- Depend on published `@simpleworkjs/orm` ^0.2.8 and `model-redis` ^1.6.0 instead of a local `file:` link that broke `npm ci` in docker builds. + +### Changed +- Removed the Mobile Phone field from the user create/edit form. + +sso-manager-node 1.2.1: + +### Added +- **Actionable Metrics**: New real-time metrics tracking for failed logins, top IPs, and service usage per user. +- **LDAP Monitor**: Background service to parse OpenLDAP binds over port 389 and track metrics for legacy apps. +- **UI Updates**: Executive dashboard now displays actionable metrics cards instead of raw logs. User profiles show individual service usage stats to admins. +- **Directory Management**: Integrated site/host/service abstractions into directory UI and allowed associating OAuth apps directly to services. + ## [1.3.2] - 2026-07-21 ### Bumped diff --git a/sso-manager-node b/sso-manager-node index a100f75..ec76054 160000 --- a/sso-manager-node +++ b/sso-manager-node @@ -1 +1 @@ -Subproject commit a100f755ced85ccaf8328d50d56cdcbdb195cc6d +Subproject commit ec76054e41ee70966d75c45ba65dc433a9836db6