Commit graph

99 commits

Author SHA1 Message Date
Michal Vavřík
94560cb8e1
feat(admin-api-v2): automatically update openapi file used by JS client (#46472)
* Closes: https://github.com/keycloak/keycloak/issues/46388

Signed-off-by: Michal Vavřík <michal.vavrik@aol.com>
2026-02-27 17:24:15 +01:00
Erik Jan de Wit
391b8b0774
Add v2 admin event support to Client Admin API (#46124)
* Add v2 admin event support to Client Admin API

Introduce AdminEventV2Builder to fire admin events with apiVersion=v2
detail marker, allowing consumers to distinguish v2 API events from v1.

- Add AdminEventV2Builder class for creating v2 admin events
- Modify DefaultClientService to fire v2 events on client create/update
- Pass AdminAuth through API chain for proper event authentication context
- Add tests verifying v2 events contain correct operation type and format

Closes #46123

Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added github comments

Extended AdminEventBuilder, now accepts AdimPermissionEvaluator instead
of AdminAuth

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* Refactor admin builder v2, mask sensitive info, improve tests

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* Apply suggestions from code review

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* Apply suggestion from @mabartos

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* fixed imports

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* fixed merge error

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* Polish constructors, disable events by default

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Public visibility for detail key, add test case for PATCH

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

---------

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>
Signed-off-by: Martin Bartoš <mabartos@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Martin Bartoš <mabartos@redhat.com>
2026-02-25 17:47:30 +01:00
Martin Bartoš
ff5c13f05c
[client-v2] Create tests to check FGAP (#46474)
Closes #46209

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2026-02-24 09:01:52 +01:00
Martin Bartoš
728431099f
[client-v2] Handle patch logic in the service + ServiceExceptionMapper (#46331)
* Handle patch logic in the service + ServiceExceptionMapper

Closes #46328

Closes #46329

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Revert back the consumes of the Patch

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Be more defensive for the JSON Merge Patch

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

---------

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2026-02-19 16:01:44 +01:00
Peter Zaoral
957128ec43
[admin-v2] Enable client generators to create proper class hierarchies with inheritance (#46180)
* [admin-v2] Enable client generators to create proper class hierarchies with inheritance

Closes: #46158

Signed-off-by: Peter Zaoral <pzaoral@redhat.com>

* Addressing reviews

* add additionalFileds to base representation

Closes: #46158
Signed-off-by: Peter Zaoral <pzaoral@redhat.com>

---------

Signed-off-by: Peter Zaoral <pzaoral@redhat.com>
2026-02-19 15:28:48 +01:00
Michal Vavřík
ec1ddc73d4
Added typescript based module for the client admin v2 (#46440)
* Added typescript based module for the client admin v2

Based on the new openapi client admin api this module can be generated
based on the defenition.

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* now uses openapitools to generate and moved it into the existing module for better adoption

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* changed back to use kiota as it offers a nicer fluent api

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* fixed build

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* better api

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* removed base representation filter

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added flag to explicited enable v2

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* re-run generation

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* enable client-admin-api:v2 in PR CI tests

Signed-off-by: Michal Vavřík <michal.vavrik@aol.com>

* fix JS OpenAPI generation on Windows

Signed-off-by: Michal Vavřík <michal.vavrik@aol.com>

* remove unnecessary statement from generate.ts

Signed-off-by: Michal Vavřík <michal.vavrik@aol.com>

* Fix Windows line endings in JS OpenAPI post-processing

Signed-off-by: Michal Vavřík <michal.vavrik@aol.com>

---------

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>
Signed-off-by: Michal Vavřík <michal.vavrik@aol.com>
Co-authored-by: Erik Jan de Wit <erikjan.dewit@gmail.com>
2026-02-18 19:34:00 +01:00
Erik Jan de Wit
4115785dba
added better validation and more validation tests (#46277)
* added better validation and more validation tests

fixes: #46271
Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* Use getClientsApiUrl() in tests

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* refactored removed duplication

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added test for update

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

---------

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>
Signed-off-by: Martin Bartoš <mabartos@redhat.com>
Co-authored-by: Martin Bartoš <mabartos@redhat.com>
2026-02-18 19:23:49 +01:00
Martin Bartoš
92881fb42b
Missing anti-ID phishing check for getting client (#46056)
* Missing anti-ID phishing check for getting client

Closes #46010

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Avoid any other phishing based on error message, for PATCH + improve service exceptions

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Ensure no ID phishing for DELETE

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

---------

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2026-02-13 14:53:14 +00:00
Martin Bartoš
74988b5c0a
Extend client policies tests to check exact events (#46093)
Closes #46114

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2026-02-13 15:47:38 +01:00
Martin Bartoš
479d5546a6
[client-v2] Create tests for checking permissions (#45981)
* [client-v2] Create tests for checking permissions

Closes #45975

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Simplify admin client creation, test abstraction

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Address Vasek's comments

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

---------

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2026-02-11 18:18:49 +01:00
Erik Jan de Wit
9cd492212b
added validation tests for client v2 (#46165)
* added validation tests for client v2

releates: #43296
Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* added specific error messeages to check

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

---------

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>
2026-02-11 11:34:52 +01:00
Erik Jan de Wit
618384efe9
initial version of the client v2 policy test (#46029)
* initial version of the policy v2 policy test

fixes: #46074

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* Extract client profile/policy to dedicated method

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* removed test method prefix

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

---------

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>
Signed-off-by: Martin Bartoš <mabartos@redhat.com>
Co-authored-by: Martin Bartoš <mabartos@redhat.com>
2026-02-06 18:16:15 +01:00
Steven Hawkins
8a471bb0d2
Operator logic for clients in admin api v2 (#45316)
Operator logic for clients in admin api v2

Closes #46022

Signed-off-by: Steven Hawkins <shawkins@redhat.com>
2026-02-05 09:16:29 +00:00
Pedro Ruivo
297d8ac95d
Refactor ClientResource for better performance
Closes #45838

Signed-off-by: Pedro Ruivo <1492066+pruivo@users.noreply.github.com>
Co-authored-by: Pedro Ruivo <1492066+pruivo@users.noreply.github.com>
2026-02-04 11:29:18 +01:00
Pedro Ruivo
bae3963d25
Refactor SessionsResource for better memory usage and performance
Closes #45727

Signed-off-by: Pedro Ruivo <1492066+pruivo@users.noreply.github.com>
Signed-off-by: Alexander Schwartz <alexander.schwartz@ibm.com>
Co-authored-by: Pedro Ruivo <1492066+pruivo@users.noreply.github.com>
Co-authored-by: Alexander Schwartz <alexander.schwartz@ibm.com>
2026-01-29 11:38:54 +01:00
Erik Jan de Wit
e16fc5938e
Add tests for mappers and representation for the admin v2 (#45376)
* Add tests for mappers and representation for the admin v2

Fixes: #45277
Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* changed OIDCClientModelMapper into an integration test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* PR review comments

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* Update rest/admin-v2/tests/pom.xml

Co-authored-by: Martin Bartoš <mabartos@redhat.com>
Signed-off-by: Erik Jan de Wit <edewit@redhat.com>

* Update rest/admin-v2/tests/pom.xml

Co-authored-by: Martin Bartoš <mabartos@redhat.com>
Signed-off-by: Erik Jan de Wit <edewit@redhat.com>

* Update rest/admin-v2/tests/pom.xml

Co-authored-by: Martin Bartoš <mabartos@redhat.com>
Signed-off-by: Erik Jan de Wit <edewit@redhat.com>

* Update rest/admin-v2/tests/pom.xml

Co-authored-by: Martin Bartoš <mabartos@redhat.com>
Signed-off-by: Erik Jan de Wit <edewit@redhat.com>

---------

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>
Signed-off-by: Erik Jan de Wit <edewit@redhat.com>
Co-authored-by: Martin Bartoš <mabartos@redhat.com>
2026-01-22 13:05:01 +00:00
Martin Bartoš
b61a00cbba
[admin-api-v2] Every distinct Admin API should be versioned (#44527)
Closes #44527

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2026-01-14 12:05:33 +01:00
Erik Jan de Wit
b1834fd10d
Add SAML client model mapper for admin-v2 API (#45200)
* Add SAML client model mapper for admin-v2 API

Implements mapper and factory for converting between SAMLClientModel
and SAMLClientRepresentation, including support for SAML-specific
attributes like signature algorithms, name ID formats, and certificates.

Fixes #44853

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* updated test to test specific Saml and Oidc fields

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

* fix test

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>

---------

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>
2026-01-13 13:37:04 +01:00
Václav Muzikář
ed69f332af
[admin-v2] Polymorphism, refined OIDC Client representation (#44727)
* [admin-v2] Polymorphism, refined OIDC Client representation

Closes #43290

Signed-off-by: Václav Muzikář <vmuzikar@redhat.com>

* Remove AbstractRepModelMapper

Signed-off-by: Václav Muzikář <vmuzikar@redhat.com>

---------

Signed-off-by: Václav Muzikář <vmuzikar@redhat.com>
2026-01-06 16:23:30 +01:00
Martin Bartoš
5828fab258
[admin-api-v2] Incorrect DTO/DAO mapping (#44587)
* [admin-api-v2] Incorrect DTO/DAO mapping

Closes #44586

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

* Handle roles and service account operations, cleanup service contract

Signed-off-by: Martin Bartoš <mabartos@redhat.com>

---------

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2025-12-03 09:41:18 +01:00
Martin Bartoš
265c27e08d
[admin-api-v2] Create client does not return 201 status code (#44541)
Closes #44540

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2025-12-02 10:39:03 +01:00
Peter Zaoral
0e959ad89e
Delete operation for Client v2 (#44335)
Closes: #43291

Signed-off-by: Peter Zaoral <pzaoral@redhat.com>
2025-11-20 12:12:33 +01:00
Peter Zaoral
b9d94d325b
Remove JSON Patch support from the Client API v2 MVP (#44120)
Closes: #43572

Signed-off-by: Peter Zaoral <pzaoral@redhat.com>
2025-11-18 09:42:10 +00:00
Stian Thorgersen
a2c1055f8d
Proposed import order (#43432)
* Add importOrder to Spotless

Closes #43235

Signed-off-by: stianst <stianst@gmail.com>

* Re-order imports with Spotless

Signed-off-by: stianst <stianst@gmail.com>

---------

Signed-off-by: stianst <stianst@gmail.com>
2025-11-14 09:34:49 +01:00
Steven Hawkins
26bdee3052
fix: removing unknown field validation parameter (#44173)
closes: #43728

Signed-off-by: Steve Hawkins <shawkins@redhat.com>
2025-11-12 17:27:05 +00:00
Steven Hawkins
63fc0eec28
task: use client v1 logic for v2 impl (#43982)
* task: use client v1 logic for v2 impl

closes: #43733

Signed-off-by: Steve Hawkins <shawkins@redhat.com>

* removing the provider module

Signed-off-by: Steve Hawkins <shawkins@redhat.com>

---------

Signed-off-by: Steve Hawkins <shawkins@redhat.com>
2025-11-12 15:08:27 +01:00
Stian Thorgersen
d8275fe5df
Remove wildcard imports (#44060)
Closes #44059

Signed-off-by: stianst <stianst@gmail.com>
2025-11-10 11:46:05 +01:00
Václav Muzikář
9c86eae7ed
Initial Client API v2 impl (#43395)
Closes #43224

Signed-off-by: Václav Muzikář <vmuzikar@redhat.com>
Co-authored-by: Martin Bartoš <mabartos@redhat.com>
Co-authored-by: Peter Zaoral <pzaoral@redhat.com>
Co-authored-by: Steven Hawkins <shawkins@redhat.com>
Co-authored-by: Robin Meese <39960884+robson90@users.noreply.github.com>
2025-11-03 14:31:54 +01:00
Pedro Igor
c5b560e2d8
Update user profile to allow returning a brief user representation
Closes #42225

Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>
2025-10-21 12:52:31 +02:00
stianst
aedd7fe5db Remove unused imports as part of #43233
Signed-off-by: stianst <stianst@gmail.com>
2025-10-13 13:32:01 +02:00
vramik
e4dc88de13 [FGAP] Make additional rest endpoints respect permissions
Closes #40058

Signed-off-by: vramik <vramik@redhat.com>
2025-10-08 08:47:22 -03:00
vramik
114afee7f1 Use MgmtPermissionsV2 by default
Closes #40192

Signed-off-by: vramik <vramik@redhat.com>
2025-07-07 11:07:21 -03:00
vramik
f45b8e0c6d Move FGAP classes to specific package
Signed-off-by: vramik <vramik@redhat.com>
2025-05-22 09:53:16 -03:00
Pedro Igor
7aab9fade8 Move FGAP types to a specific package
Closes #39712

Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>
2025-05-22 09:53:16 -03:00
Pedro Igor
34ad280665
Build user representations when searching based on the user profile settings
Closes #39595

Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>
2025-05-14 10:42:25 +02:00
Pedro Igor
a035b904ff
Return only manage permissions when listing users via administration console
Closes #39641

Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>
2025-05-12 16:02:21 -04:00
vramik
5c7e0c25f5 [FGAP] AvailableRoleMappings do not consider all-clients permissions
Closes #38913

Signed-off-by: vramik <vramik@redhat.com>
2025-04-15 08:17:21 -03:00
vramik
9c02bb29d3 Fix AvailableRoleMappingResource
Closes #35580

Signed-off-by: vramik <vramik@redhat.com>
2025-04-09 08:41:15 -03:00
Pedro Igor
1c57035d41 Support partial evaluation for the group resource type
Closes #38273

Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>
2025-03-24 11:49:53 -03:00
vramik
a72d15b857 PartialEvaluator ignores view-* and manage-* roles
Closes #38284

Signed-off-by: vramik <vramik@redhat.com>
2025-03-24 08:30:59 -03:00
Pedro Igor
a4000575a4 Initial support for partial evaluation
Closes #38085

Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>
2025-03-19 13:30:52 -03:00
Pedro Igor
b200ab0792 Fix permissions for view-members and manage-members
Closes #38013

Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>
2025-03-17 08:27:36 -03:00
vramik
679f44692d Add Groups resource type and scopes to authorization schema and evaluation implementation
Closes #35562

Signed-off-by: vramik <vramik@redhat.com>
2025-02-12 10:07:09 -03:00
Erik Jan de Wit
0e1f1c69af
added new endpoint that concatenates offline and regular sessions for clients (#36914)
fixes: #36596

Signed-off-by: Erik Jan de Wit <erikjan.dewit@gmail.com>
2025-02-04 15:48:12 -05:00
vramik
879c399cde [FGAP] User can see itself even though he has negative permission to view itself
Closes #36916

Signed-off-by: vramik <vramik@redhat.com>
2025-01-29 09:35:30 -03:00
Alexander Schwartz
f392675d41 Fix missing response content type and more explicit error handling
Closes #36410

Signed-off-by: Alexander Schwartz <aschwart@redhat.com>
2025-01-14 09:44:56 +01:00
Alexander Schwartz
f4a208de6d Don't show global event listeners in the admin UI
Closes #34602

Signed-off-by: Alexander Schwartz <aschwart@redhat.com>
2024-11-18 17:09:21 +01:00
Stefan Guilhen
abf0eb7f92 Update UP via provider instead of going through the UserProfileResource
- prevents error when updating realm

Closes #34540

Signed-off-by: Stefan Guilhen <sguilhen@redhat.com>
2024-11-11 05:18:48 -03:00
Erik Jan de Wit
e8d8de8936
Use feature versions for admin3, account3, and login2 (#33458)
Closes #33405

Signed-off-by: stianst <stianst@gmail.com>
2024-10-03 12:09:36 +02:00
Daniel Fesenmeyer
87da4011f7
Bugfix: "User Profile" attributes not available for Users Attribute search, when admin user does not have view- or manage-realm realm-management role (#31771)
- UIRealmResource: add "info" sub-resource to get realm-related information, which is visible for ALL admins (users having any realm-management role); for now, only provide the information whether any user profile provider is enabled
- UIRealmResourceTest: test the new endpoint, including permissions check
- UserDataTable.tsx: use this resource to get the info whether user profile providers are enabled, instead of using the realm components resource (which requires "view-realm" permissions)
- .../cypress/e2e/users_attribute_search_test.spec.ts: add cypress test to test the attribute search with minimum access rights
- further small changes for reuse of components, test-code etc

Closes #27536

Signed-off-by: Daniel Fesenmeyer <daniel.fesenmeyer@bosch.com>
2024-09-20 14:06:08 -04:00