Skip to content

Commit a74dc77

Browse files
committed
docs: Sprint 31 INT-02 CHANGELOG v1.27.0 + TODO INT-02 marked done
- CHANGELOG.md: v1.27.0 (Nextcloud<->Keycloak OIDC, Ansible + docker test) - docs/IT-STACK-TODO.md: INT-02 marked [x] DONE
1 parent 89d9385 commit a74dc77

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

CHANGELOG.md

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,28 @@ This project adheres to [Keep a Changelog](https://keepachangelog.com/en/1.1.0/)
99
## [Unreleased]
1010

1111
### Planned — Next Up
12-
- INT-02 Nextcloud ↔ Keycloak OIDC
1312
- INT-03 Mattermost ↔ Keycloak OIDC
14-
- Remaining SSO integrations (INT-04 through INT-08b)
13+
- INT-04 SuiteCRM ↔ Keycloak SAML 2.0
14+
- Remaining SSO integrations (INT-05 through INT-08b)
15+
16+
---
17+
18+
## [1.27.0] — 2026-03-02
19+
20+
### Added — Sprint 31: INT-02 Nextcloud ↔ Keycloak OIDC
21+
22+
**Ansible (`it-stack-ansible`):**
23+
- `roles/keycloak/tasks/oidc-clients.yml` — idempotent OIDC client provisioning for all services in `keycloak_oidc_clients`: check existing, create missing, retrieve client UUID, retrieve/assert client secret into `keycloak_client_secrets` dict
24+
- `roles/keycloak/templates/oidc-client.json.j2` — full OIDC client template with 4 protocol mappers (email, given_name, family_name, groups), backchannel logout, post-logout redirect
25+
- `roles/nextcloud/tasks/keycloak-oidc.yml` — configure `user_oidc` app via `occ`: install/enable app, delete stale provider, register Keycloak discovery URI + client credentials, `allow_multiple_user_backends`, button text, assert discovery URL reachable
26+
- `roles/keycloak/tasks/main.yml` — added `oidc-clients.yml` import guarded by `keycloak_provision_oidc_clients`
27+
- `roles/nextcloud/tasks/main.yml` — added `keycloak-oidc.yml` import guarded by `nextcloud_enable_keycloak_oidc`
28+
29+
**Integration test (`it-stack-nextcloud`):**
30+
- `docker/nextcloud-ldap-seed.ldif` — FreeIPA-compatible LDAP seed: `cn=accounts` tree, 3 users (`ncadmin`, `ncuser1`, `ncuser2`) with `inetOrgPerson`, groups `cn=admins` + `cn=nc-users` with `groupOfNames`
31+
- `docker/docker-compose.integration.yml` — added `nc-int-ldap-seed` init service (applies LDIF to OpenLDAP); `nc-int-keycloak` now depends on `service_completed_successfully` (ldap-seed)
32+
- `tests/labs/test-lab-06-05.sh` — extended with 4 new sections: 3b LDAP seed verification (3 users, 2 groups), 8 LDAP full sync into Keycloak + user_oidc app enabled check, 9 OIDC provider registration (occ), 10 OIDC token endpoint + Nextcloud bearer API auth; renumbered Cron→11, WebDAV→12
33+
- `.github/workflows/ci.yml` — lab-05-smoke: updated job name, added `python3`, reordered waits (OpenLDAP first), 240s Keycloak timeout
1534

1635
---
1736

docs/IT-STACK-TODO.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,7 @@ All 5 repos have:
387387
388388
### SSO Integrations (via Keycloak)
389389
- [x] FreeIPA ↔ Keycloak LDAP Federation ← **INT-01 DONE** (Sprint 30: Ansible tasks + integration test)
390-
- [ ] Nextcloud ↔ Keycloak OIDC
390+
- [x] Nextcloud ↔ Keycloak OIDC**INT-02 DONE** (Sprint 31: Ansible tasks + integration test)
391391
- [ ] Mattermost ↔ Keycloak OIDC
392392
- [ ] SuiteCRM ↔ Keycloak SAML
393393
- [ ] Odoo ↔ Keycloak OIDC

0 commit comments

Comments
 (0)