keycloak-admin 1.1.3 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/Dockerfile +24 -24
  3. data/.github/workflows/ci.yml +80 -83
  4. data/.gitignore +9 -9
  5. data/.rspec +2 -2
  6. data/CHANGELOG.md +194 -188
  7. data/Dockerfile +12 -12
  8. data/Gemfile +3 -3
  9. data/Gemfile.lock +51 -49
  10. data/MIT-LICENSE +20 -20
  11. data/README.md +748 -748
  12. data/bin/console +9 -9
  13. data/keycloak-admin.gemspec +24 -24
  14. data/lib/keycloak-admin/client/attack_detection_client.rb +41 -41
  15. data/lib/keycloak-admin/client/client.rb +56 -56
  16. data/lib/keycloak-admin/client/client_authz_permission_client.rb +80 -80
  17. data/lib/keycloak-admin/client/client_authz_policy_client.rb +75 -75
  18. data/lib/keycloak-admin/client/client_authz_resource_client.rb +92 -92
  19. data/lib/keycloak-admin/client/client_authz_scope_client.rb +70 -70
  20. data/lib/keycloak-admin/client/client_client.rb +71 -71
  21. data/lib/keycloak-admin/client/client_role_client.rb +20 -20
  22. data/lib/keycloak-admin/client/client_role_mappings_client.rb +32 -32
  23. data/lib/keycloak-admin/client/configurable_token_client.rb +35 -35
  24. data/lib/keycloak-admin/client/group_client.rb +148 -131
  25. data/lib/keycloak-admin/client/identity_provider_client.rb +51 -51
  26. data/lib/keycloak-admin/client/realm_client.rb +122 -122
  27. data/lib/keycloak-admin/client/role_client.rb +59 -59
  28. data/lib/keycloak-admin/client/role_mapper_client.rb +47 -45
  29. data/lib/keycloak-admin/client/token_client.rb +29 -29
  30. data/lib/keycloak-admin/client/user_client.rb +266 -266
  31. data/lib/keycloak-admin/configuration.rb +52 -52
  32. data/lib/keycloak-admin/representation/attack_detection_representation.rb +17 -17
  33. data/lib/keycloak-admin/representation/camel_json.rb +12 -12
  34. data/lib/keycloak-admin/representation/client_authz_permission_representation.rb +33 -33
  35. data/lib/keycloak-admin/representation/client_authz_policy_config_representation.rb +14 -14
  36. data/lib/keycloak-admin/representation/client_authz_policy_representation.rb +26 -26
  37. data/lib/keycloak-admin/representation/client_authz_resource_representation.rb +25 -25
  38. data/lib/keycloak-admin/representation/client_authz_scope_representation.rb +16 -16
  39. data/lib/keycloak-admin/representation/client_representation.rb +71 -71
  40. data/lib/keycloak-admin/representation/credential_representation.rb +38 -38
  41. data/lib/keycloak-admin/representation/federated_identity_representation.rb +15 -15
  42. data/lib/keycloak-admin/representation/group_representation.rb +21 -21
  43. data/lib/keycloak-admin/representation/identity_provider_mapper_representation.rb +19 -19
  44. data/lib/keycloak-admin/representation/identity_provider_representation.rb +67 -67
  45. data/lib/keycloak-admin/representation/impersonation_redirection_representation.rb +16 -16
  46. data/lib/keycloak-admin/representation/impersonation_representation.rb +43 -43
  47. data/lib/keycloak-admin/representation/protocol_mapper_representation.rb +19 -19
  48. data/lib/keycloak-admin/representation/realm_representation.rb +14 -14
  49. data/lib/keycloak-admin/representation/representation.rb +23 -23
  50. data/lib/keycloak-admin/representation/role_representation.rb +19 -19
  51. data/lib/keycloak-admin/representation/session_representation.rb +22 -22
  52. data/lib/keycloak-admin/representation/token_representation.rb +39 -39
  53. data/lib/keycloak-admin/representation/user_representation.rb +47 -47
  54. data/lib/keycloak-admin/resource/base_role_containing_resource.rb +28 -28
  55. data/lib/keycloak-admin/resource/group_resource.rb +11 -11
  56. data/lib/keycloak-admin/resource/user_resource.rb +7 -7
  57. data/lib/keycloak-admin/version.rb +3 -3
  58. data/lib/keycloak-admin.rb +84 -84
  59. data/spec/client/attack_detection_client_spec.rb +102 -102
  60. data/spec/client/client_authz_permission_client_spec.rb +170 -170
  61. data/spec/client/client_authz_policy_client_spec.rb +169 -169
  62. data/spec/client/client_authz_resource_client_spec.rb +150 -150
  63. data/spec/client/client_authz_scope_client_spec.rb +133 -133
  64. data/spec/client/client_client_spec.rb +133 -133
  65. data/spec/client/client_role_mappings_client_spec.rb +82 -82
  66. data/spec/client/client_spec.rb +28 -28
  67. data/spec/client/configurable_token_client_spec.rb +34 -34
  68. data/spec/client/group_client_spec.rb +328 -258
  69. data/spec/client/identity_provider_client_spec.rb +92 -92
  70. data/spec/client/realm_client_spec.rb +155 -155
  71. data/spec/client/role_client_spec.rb +79 -79
  72. data/spec/client/role_mapper_client_spec.rb +113 -68
  73. data/spec/client/token_client_spec.rb +68 -68
  74. data/spec/client/user_client_spec.rb +373 -373
  75. data/spec/configuration_spec.rb +113 -113
  76. data/spec/integration/client_authorization_spec.rb +93 -95
  77. data/spec/representation/attack_detection_representation_spec.rb +15 -15
  78. data/spec/representation/client_authz_permission_representation_spec.rb +52 -52
  79. data/spec/representation/client_authz_policy_representation_spec.rb +46 -46
  80. data/spec/representation/client_authz_resource_representation_spec.rb +33 -33
  81. data/spec/representation/client_authz_scope_representation_spec.rb +18 -18
  82. data/spec/representation/client_representation_spec.rb +119 -119
  83. data/spec/representation/group_representation_spec.rb +22 -22
  84. data/spec/representation/identity_provider_mapper_representation_spec.rb +24 -24
  85. data/spec/representation/identity_provider_representation_spec.rb +113 -113
  86. data/spec/representation/impersonation_representation_spec.rb +163 -163
  87. data/spec/representation/protocol_mapper_representation_spec.rb +57 -57
  88. data/spec/representation/role_representation_spec.rb +37 -37
  89. data/spec/representation/session_representation_spec.rb +15 -15
  90. data/spec/representation/user_representation_spec.rb +15 -15
  91. data/spec/resource/group_resource_spec.rb +14 -14
  92. data/spec/resource/user_resource_spec.rb +14 -14
  93. data/spec/spec_helper.rb +37 -37
  94. metadata +10 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: be47369f8365b8b32ff4ca3b09ebad45f5037212eca3022524b10ba17b0f64d6
4
- data.tar.gz: 36a340f437ecb97ce5c415e752d5e1159ebbc5911d454f643985de541c6deaf3
3
+ metadata.gz: a699842f0de47c278828c7874187d0249313d7ff871642a6f26bef4aa202999e
4
+ data.tar.gz: 6cd358f9db2f837705326e35b6bc00064575ca41e41e08a0fbf04d71d7a76dd1
5
5
  SHA512:
6
- metadata.gz: 6bd85e4709a0044168b7c3b3e9e2d89b1fab559070d4a318d65283db2046716439c4d1d0a534ba3cc9b1cbc89771626945877a76723bd03cc5f0e6dbebe6b266
7
- data.tar.gz: e4b2286bac6d7e11192a1f3b6a569170849275bd3fa91aa104cdf521139a691396c8681a4152b5611e6a28e6c1457f60329b39ebca44cc4eb328f9ade9f7f605
6
+ metadata.gz: 849ddd89962850c4e7b541591072e50f34d639b1c2d6dc0fe5e189d4f64ed9e2aa3354d20ffec8097fe5737d6aa0b7117aeb7dd9c0fd93f23ca2a6e6cf0ac2b3
7
+ data.tar.gz: 2d6057ebd0fea9d52c096be0c8bd4ecfc209cabad8b5e9d7edb95d5fddcd391c7bba3ddde127a51ff313ba42a7ccd213ff9abdf1fafdf57640f5fdc013aa66a7
@@ -1,24 +1,24 @@
1
- ### Dockerfile for: tillawy/keycloak-github-actions
2
- ##
3
- ## To build & push
4
- # docker buildx build . --platform linux/amd64 -t tillawy/keycloak-github-actions:25.0.1
5
- # docker push tillawy/keycloak-github-actions:25.0.1
6
- #
7
- ## To Run Locally
8
- # docker run \
9
- # --rm \
10
- # -p 8080:8080 \
11
- # -e KEYCLOAK_ADMIN="admin" \
12
- # -e KEYCLOAK_ADMIN_PASSWORD="admin" \
13
- # -e KC_HOSTNAME="http://localhost:8080" \
14
- # -e KC_HOSTNAME_ADMIN="http://localhost:8080" \
15
- # -e KC_HTTP_ENABLED="true" \
16
- # -e KC_DB="dev-file" \
17
- # tillawy/keycloak-github-actions:25.0.1
18
-
19
- FROM quay.io/keycloak/keycloak:25.0.1
20
-
21
- ENTRYPOINT ["/opt/keycloak/bin/kc.sh"]
22
-
23
- CMD ["start-dev", "--hostname=http://localhost:8080" , "--hostname-admin=http://localhost:8080" , "--http-enabled=true", "--verbose"]
24
-
1
+ ### Dockerfile for: tillawy/keycloak-github-actions
2
+ ##
3
+ ## To build & push
4
+ # docker buildx build . --platform linux/amd64 -t tillawy/keycloak-github-actions:25.0.1
5
+ # docker push tillawy/keycloak-github-actions:25.0.1
6
+ #
7
+ ## To Run Locally
8
+ # docker run \
9
+ # --rm \
10
+ # -p 8080:8080 \
11
+ # -e KEYCLOAK_ADMIN="admin" \
12
+ # -e KEYCLOAK_ADMIN_PASSWORD="admin" \
13
+ # -e KC_HOSTNAME="http://localhost:8080" \
14
+ # -e KC_HOSTNAME_ADMIN="http://localhost:8080" \
15
+ # -e KC_HTTP_ENABLED="true" \
16
+ # -e KC_DB="dev-file" \
17
+ # tillawy/keycloak-github-actions:25.0.1
18
+
19
+ FROM quay.io/keycloak/keycloak:25.0.1
20
+
21
+ ENTRYPOINT ["/opt/keycloak/bin/kc.sh"]
22
+
23
+ CMD ["start-dev", "--hostname=http://localhost:8080" , "--hostname-admin=http://localhost:8080" , "--http-enabled=true", "--verbose"]
24
+
@@ -1,83 +1,80 @@
1
- # This workflow uses actions that are not certified by GitHub.
2
- # They are provided by a third-party and are governed by
3
- # separate terms of service, privacy policy, and support
4
- # documentation.
5
- # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
- # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
-
8
- name: Ruby
9
-
10
- on:
11
- push:
12
- branches: [ "main" ]
13
- pull_request:
14
- branches: [ "main" ]
15
-
16
- permissions:
17
- contents: read
18
-
19
- jobs:
20
- test:
21
- runs-on: ubuntu-latest
22
- services:
23
- keycloak:
24
- image: tillawy/keycloak-github-actions:25.0.1
25
- ports:
26
- - 8080:8080
27
- options: '--health-cmd "exec 3<>/dev/tcp/localhost/8080" --health-interval 5s --health-timeout 5s --health-retries 10 --health-start-period 100s'
28
- env:
29
- KEYCLOAK_ADMIN: "admin"
30
- KEYCLOAK_ADMIN_PASSWORD: "admin"
31
- KC_HOSTNAME: "http://localhost:8080"
32
- KC_HOSTNAME_ADMIN: "http://localhost:8080"
33
- KC_HTTP_ENABLED: "true"
34
- KC_DB: "dev-file"
35
-
36
- strategy:
37
- matrix:
38
- ruby-version: ['3.2']
39
-
40
- steps:
41
- - name: create realm
42
- run: |
43
- TOKEN=$(curl --silent --location --request POST "http://localhost:8080/realms/master/protocol/openid-connect/token" \
44
- --header 'Content-Type: application/x-www-form-urlencoded' \
45
- --data-urlencode 'grant_type=password' \
46
- --data-urlencode 'username=admin' \
47
- --data-urlencode 'password=admin' \
48
- --data-urlencode 'client_id=admin-cli' | jq -r '.access_token')
49
-
50
- curl --silent --show-error -L -X POST "http://localhost:8080/admin/realms" \
51
- --header "Content-Type: application/json" \
52
- --header "Authorization: Bearer ${TOKEN}" \
53
- --data '{"realm":"dummy","enabled":true}'
54
-
55
- curl --silent --show-error --request POST 'http://localhost:8080/admin/realms/dummy/clients' \
56
- --header 'Authorization: Bearer '$TOKEN \
57
- --header 'Content-Type: application/json' \
58
- --data-raw '{
59
- "clientId":"dummy-client",
60
- "enabled":true,
61
- "consentRequired": false,
62
- "attributes":{},
63
- "serviceAccountsEnabled": true,
64
- "protocol":"openid-connect",
65
- "publicClient":false,
66
- "authorizationServicesEnabled": true,
67
- "clientAuthenticatorType":"client-secret",
68
- "redirectUris":["http://localhost:8180/demo"]
69
- }'
70
-
71
- - uses: actions/checkout@v4
72
- - name: Set up Ruby
73
- # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
74
- # change this to (see https://github.com/ruby/setup-ruby#versioning):
75
- # uses: ruby/setup-ruby@v1
76
- uses: ruby/setup-ruby@55283cc23133118229fd3f97f9336ee23a179fcf # v1.146.0
77
- with:
78
- ruby-version: ${{ matrix.ruby-version }}
79
- bundler-cache: true # runs 'bundle install' and caches installed gems automatically
80
- - name: Run tests
81
- run: bundle exec rspec
82
- env:
83
- GITHUB_ACTIONS: true
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: Ruby
9
+
10
+ on:
11
+ push:
12
+ branches: [ "main" ]
13
+ pull_request:
14
+ branches: [ "main" ]
15
+
16
+ permissions:
17
+ contents: read
18
+
19
+ jobs:
20
+ test:
21
+ runs-on: ubuntu-latest
22
+ services:
23
+ keycloak:
24
+ image: tillawy/keycloak-github-actions:25.0.1
25
+ ports:
26
+ - 8080:8080
27
+ options: '--health-cmd "exec 3<>/dev/tcp/localhost/8080" --health-interval 5s --health-timeout 5s --health-retries 10 --health-start-period 100s'
28
+ env:
29
+ KEYCLOAK_ADMIN: "admin"
30
+ KEYCLOAK_ADMIN_PASSWORD: "admin"
31
+ KC_HOSTNAME: "http://localhost:8080"
32
+ KC_HOSTNAME_ADMIN: "http://localhost:8080"
33
+ KC_HTTP_ENABLED: "true"
34
+ KC_DB: "dev-file"
35
+
36
+ strategy:
37
+ matrix:
38
+ ruby-version: ['3.2']
39
+
40
+ steps:
41
+ - name: create realm
42
+ run: |
43
+ TOKEN=$(curl --silent --location --request POST "http://localhost:8080/realms/master/protocol/openid-connect/token" \
44
+ --header 'Content-Type: application/x-www-form-urlencoded' \
45
+ --data-urlencode 'grant_type=password' \
46
+ --data-urlencode 'username=admin' \
47
+ --data-urlencode 'password=admin' \
48
+ --data-urlencode 'client_id=admin-cli' | jq -r '.access_token')
49
+
50
+ curl --silent --show-error -L -X POST "http://localhost:8080/admin/realms" \
51
+ --header "Content-Type: application/json" \
52
+ --header "Authorization: Bearer ${TOKEN}" \
53
+ --data '{"realm":"dummy","enabled":true}'
54
+
55
+ curl --silent --show-error --request POST 'http://localhost:8080/admin/realms/dummy/clients' \
56
+ --header 'Authorization: Bearer '$TOKEN \
57
+ --header 'Content-Type: application/json' \
58
+ --data-raw '{
59
+ "clientId":"dummy-client",
60
+ "enabled":true,
61
+ "consentRequired": false,
62
+ "attributes":{},
63
+ "serviceAccountsEnabled": true,
64
+ "protocol":"openid-connect",
65
+ "publicClient":false,
66
+ "authorizationServicesEnabled": true,
67
+ "clientAuthenticatorType":"client-secret",
68
+ "redirectUris":["http://localhost:8180/demo"]
69
+ }'
70
+
71
+ - uses: actions/checkout@v4
72
+ - name: Set up Ruby
73
+ uses: ruby/setup-ruby@v1
74
+ with:
75
+ ruby-version: ${{ matrix.ruby-version }}
76
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
77
+ - name: Run tests
78
+ run: bundle exec rspec
79
+ env:
80
+ GITHUB_ACTIONS: true
data/.gitignore CHANGED
@@ -1,10 +1,10 @@
1
- .bundle/
2
- log/*.log
3
- pkg/
4
- test/dummy/db/*.sqlite3
5
- test/dummy/db/*.sqlite3-journal
6
- test/dummy/log/*.log
7
- test/dummy/tmp/
8
- *.gem
9
- .idea/
1
+ .bundle/
2
+ log/*.log
3
+ pkg/
4
+ test/dummy/db/*.sqlite3
5
+ test/dummy/db/*.sqlite3-journal
6
+ test/dummy/log/*.log
7
+ test/dummy/tmp/
8
+ *.gem
9
+ .idea/
10
10
  .byebug_history
data/.rspec CHANGED
@@ -1,2 +1,2 @@
1
- --color
2
- --require spec_helper
1
+ --color
2
+ --require spec_helper
data/CHANGELOG.md CHANGED
@@ -1,189 +1,195 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## [1.1.3] - 2024-07-12
9
-
10
- * Client Authorization management support (thanks to @tillawy)
11
- * GitHub-actions setup to execute `rspec` (thanks to @tillawy)
12
-
13
- ## [1.1.2] - 2024-05-22
14
-
15
- * Add group endpoints (get, children, delete), support for group attributes (thanks to @mkrawc)
16
- * GroupClient#save method now can update an existing group (thanks to @mkrawc)
17
- * RoleClient#save method now can update an existing role (thanks to @mkrawc)
18
-
19
- ## [1.1.1] - 2024-01-21
20
-
21
- * Add/List realm-role/s to a group, Allow role-names with spaces, List groups assigned to role (thanks to @LiquidMagical)
22
-
23
- ## [1.1.0] - 2023-10-03
24
-
25
- * Search for groups with parameters (thanks to @@tlloydthwaites)
26
- * Get client by ID, Find client by Client ID, Update Client (thanks to @gee-forr)
27
-
28
- ## [1.0.24] - 2023-06-07
29
-
30
- * Revert the modifications on the feature 'Update a User' introduced in `1.0.22`. This implementation had breaking changes such as not being able to update several attributes (`first_name`, `email`, etc).
31
-
32
- ## [1.0.23] - 2023-06-01
33
-
34
- * Be more permissive about the version of `rest-client` (`~> 2.0`) (thanks to @type-face)
35
-
36
- ## [1.0.22] - 2023-05-29
37
-
38
- * Fetch user's all active sessions (thanks to @prsanjay)
39
- * Check whether a user is locked or not (thanks to @prsanjay)
40
- * Logout users from all the active sessions (thanks to @prsanjay)
41
-
42
- ## [1.0.21] - 2023-02-03
43
-
44
- * List users who are a member of a group (thanks to @tlloydthwaites)
45
-
46
- ## [1.0.20] - 2022-12-26
47
-
48
- * Create subgroups (thanks to @neckhair)
49
- * Add subgroups to `GroupRepresentation` (thanks to @neckhair)
50
- * Expose `BaseRoleContainingResource.resource_id` (thanks to @neckhair)
51
-
52
- ## [1.0.19] - 2022-12-03
53
-
54
- * Remove specific realm roles from user (thanks to @tlloydthwaites)
55
- * Get role by name (thanks to @tlloydthwaites)
56
-
57
- ## [1.0.18] - 2022-11-24
58
-
59
- * List user realm-level role mappings (thanks to @Kazhuu)
60
-
61
- ## [1.0.17] - 2022-11-02
62
-
63
- * Delete `Client`
64
-
65
- ## [1.0.16] - 2022-10-15
66
-
67
- * Remove `rest-client` warning when adding a group (thanks to @tlloydthwaites)
68
-
69
- ## [1.0.15] - 2022-05-23
70
-
71
- * Delete all "realm" roles mapped to a user
72
-
73
- ## [1.0.14] - 2022-03-30
74
-
75
- * Update `Gemfile.lock` to avoid wrong CVE detections. The version of Rails should always be specified by the parent project. This change has no functional impact.
76
-
77
- ## [1.0.13] - 2022-03-13
78
-
79
- * Add client role on users
80
- * List client roles
81
-
82
- ## [1.0.7] - 2022-03-13
83
-
84
- * Allow to use multiple `KeycloakAdmin::Client` in the same environment
85
-
86
- ## [1.0.6] - 2022-03-13
87
-
88
- * When serializing an array to JSON, force the serialization to use `to_json` for each element. In several contexts (e.g. Rails), `to_json` is not used.
89
-
90
- ## [1.0.5] - 2022-03-11
91
-
92
- * Create `Client`
93
- * Create `Identity Provider` (Breaking change: `IdentityProviderRepresentation.configuration` has been renamed to `IdentityProviderRepresentation.config`)
94
- * Add `Identity Provider Mapping`
95
- * Find service account for a `Client`
96
-
97
- ## [1.0.1] - 2021-10-14
98
-
99
- * List all `Identity Providers`
100
- * Add Group on Users (thanks to @tomuench)
101
- * Remove Group from Users (thanks to @tomuench)
102
-
103
- ## [1.0.0] - 2021-08-03
104
-
105
- * Add `totp` on Users
106
- * Add `required_actions` on Users
107
-
108
- ## [0.7.9] - 2020-10-22
109
-
110
- * Extend `search` function to use complex queries (thanks to @hobbypunk90)
111
-
112
- ## [0.7.8] - 2020-10-15
113
-
114
- * Bug: `rest_client_options` default value does not match the documentation (was `nil` by default, should be `{}`)
115
- * Update documentation about client setup (based on Keycloak 11)
116
-
117
- ## [0.7.7] - 2020-07-10
118
-
119
- * Fix: `Replace request method shorthand with .execute for proper RestClient option support` (thanks to @RomanHargrave)
120
- * When sending action emails, add lifespan as an optional parameter (thanks to @hobbypunk90)
121
-
122
- ## [0.7.6] - 2020-06-22
123
-
124
- Thanks to @hobbypunk90
125
- * Support for action emails and send forgot passsword mail
126
-
127
- ## [0.7.5] - 2020-03-28
128
-
129
- Thanks to @RomanHargrave
130
- * Support for working with federated identity provider (broker) links
131
-
132
- ## [0.7.4] - 2019-10-17
133
-
134
- * Support for Rails 6
135
-
136
- ## [0.7.3] - 2019-07-11
137
-
138
- Thanks to @cederigo:
139
- * For a given user, get her list of groups
140
-
141
- ## [0.7.2] - 2019-06-17
142
-
143
- Thanks to @vlad-ro:
144
-
145
- * Get list of client role mappings for a group
146
- * Save client role mappings for a user/group
147
- * Save realm-level role mappings for a user/group
148
-
149
- ## [0.7.1] - 2019-06-11
150
-
151
- Thanks to @vlad-ro:
152
-
153
- * List users
154
- * List clients
155
- * List groups, create/save a group
156
- * List roles, save a role
157
- * List realms, save/update/delete a realm
158
- * Get list of client role mappings for a user
159
- * Support passing rest client options for user save and search
160
- * Support using gem without ActiveSupport
161
-
162
- ## [0.7.0] - 2019-06-06
163
-
164
- Thanks to @vlad-ro:
165
-
166
- * Support passing rest client options
167
- * More documentation
168
- * More tests
169
- * Better handling of timeouts
170
-
171
- ## [0.6.5] - 2019-05-14
172
-
173
- * Get user
174
-
175
- ## [0.6.2] - 2019-05-14
176
-
177
- * Update users
178
-
179
- ## [0.6] - 2019-03-06
180
-
181
- * Save a locale when creating a new user
182
-
183
- ## [0.5] - 2018-01-26
184
-
185
- * Client to access Custom REST API configurable-token
186
-
187
- ## [0.3] - 2018-01-19
188
-
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.1.4] - 2025-11-08
9
+
10
+ * Add remove_realm_level_role_name! action on a GroupClient (thanks to @mkrawc)
11
+ * Dependencies: Update Gemfile.lock to bump byebug → 12.0.0, rspec 3.13.2, and related dependencies
12
+ * Bug: The 'remove' operation of the 'RoleMapperClient' does not take the global rest options into account
13
+
14
+ ## [1.1.3] - 2024-07-12
15
+
16
+ * Client Authorization management support (thanks to @tillawy)
17
+ * GitHub-actions setup to execute `rspec` (thanks to @tillawy)
18
+
19
+ ## [1.1.2] - 2024-05-22
20
+
21
+ * Add group endpoints (get, children, delete), support for group attributes (thanks to @mkrawc)
22
+ * GroupClient#save method now can update an existing group (thanks to @mkrawc)
23
+ * RoleClient#save method now can update an existing role (thanks to @mkrawc)
24
+
25
+ ## [1.1.1] - 2024-01-21
26
+
27
+ * Add/List realm-role/s to a group, Allow role-names with spaces, List groups assigned to role (thanks to @LiquidMagical)
28
+
29
+ ## [1.1.0] - 2023-10-03
30
+
31
+ * Search for groups with parameters (thanks to @@tlloydthwaites)
32
+ * Get client by ID, Find client by Client ID, Update Client (thanks to @gee-forr)
33
+
34
+ ## [1.0.24] - 2023-06-07
35
+
36
+ * Revert the modifications on the feature 'Update a User' introduced in `1.0.22`. This implementation had breaking changes such as not being able to update several attributes (`first_name`, `email`, etc).
37
+
38
+ ## [1.0.23] - 2023-06-01
39
+
40
+ * Be more permissive about the version of `rest-client` (`~> 2.0`) (thanks to @type-face)
41
+
42
+ ## [1.0.22] - 2023-05-29
43
+
44
+ * Fetch user's all active sessions (thanks to @prsanjay)
45
+ * Check whether a user is locked or not (thanks to @prsanjay)
46
+ * Logout users from all the active sessions (thanks to @prsanjay)
47
+
48
+ ## [1.0.21] - 2023-02-03
49
+
50
+ * List users who are a member of a group (thanks to @tlloydthwaites)
51
+
52
+ ## [1.0.20] - 2022-12-26
53
+
54
+ * Create subgroups (thanks to @neckhair)
55
+ * Add subgroups to `GroupRepresentation` (thanks to @neckhair)
56
+ * Expose `BaseRoleContainingResource.resource_id` (thanks to @neckhair)
57
+
58
+ ## [1.0.19] - 2022-12-03
59
+
60
+ * Remove specific realm roles from user (thanks to @tlloydthwaites)
61
+ * Get role by name (thanks to @tlloydthwaites)
62
+
63
+ ## [1.0.18] - 2022-11-24
64
+
65
+ * List user realm-level role mappings (thanks to @Kazhuu)
66
+
67
+ ## [1.0.17] - 2022-11-02
68
+
69
+ * Delete `Client`
70
+
71
+ ## [1.0.16] - 2022-10-15
72
+
73
+ * Remove `rest-client` warning when adding a group (thanks to @tlloydthwaites)
74
+
75
+ ## [1.0.15] - 2022-05-23
76
+
77
+ * Delete all "realm" roles mapped to a user
78
+
79
+ ## [1.0.14] - 2022-03-30
80
+
81
+ * Update `Gemfile.lock` to avoid wrong CVE detections. The version of Rails should always be specified by the parent project. This change has no functional impact.
82
+
83
+ ## [1.0.13] - 2022-03-13
84
+
85
+ * Add client role on users
86
+ * List client roles
87
+
88
+ ## [1.0.7] - 2022-03-13
89
+
90
+ * Allow to use multiple `KeycloakAdmin::Client` in the same environment
91
+
92
+ ## [1.0.6] - 2022-03-13
93
+
94
+ * When serializing an array to JSON, force the serialization to use `to_json` for each element. In several contexts (e.g. Rails), `to_json` is not used.
95
+
96
+ ## [1.0.5] - 2022-03-11
97
+
98
+ * Create `Client`
99
+ * Create `Identity Provider` (Breaking change: `IdentityProviderRepresentation.configuration` has been renamed to `IdentityProviderRepresentation.config`)
100
+ * Add `Identity Provider Mapping`
101
+ * Find service account for a `Client`
102
+
103
+ ## [1.0.1] - 2021-10-14
104
+
105
+ * List all `Identity Providers`
106
+ * Add Group on Users (thanks to @tomuench)
107
+ * Remove Group from Users (thanks to @tomuench)
108
+
109
+ ## [1.0.0] - 2021-08-03
110
+
111
+ * Add `totp` on Users
112
+ * Add `required_actions` on Users
113
+
114
+ ## [0.7.9] - 2020-10-22
115
+
116
+ * Extend `search` function to use complex queries (thanks to @hobbypunk90)
117
+
118
+ ## [0.7.8] - 2020-10-15
119
+
120
+ * Bug: `rest_client_options` default value does not match the documentation (was `nil` by default, should be `{}`)
121
+ * Update documentation about client setup (based on Keycloak 11)
122
+
123
+ ## [0.7.7] - 2020-07-10
124
+
125
+ * Fix: `Replace request method shorthand with .execute for proper RestClient option support` (thanks to @RomanHargrave)
126
+ * When sending action emails, add lifespan as an optional parameter (thanks to @hobbypunk90)
127
+
128
+ ## [0.7.6] - 2020-06-22
129
+
130
+ Thanks to @hobbypunk90
131
+ * Support for action emails and send forgot passsword mail
132
+
133
+ ## [0.7.5] - 2020-03-28
134
+
135
+ Thanks to @RomanHargrave
136
+ * Support for working with federated identity provider (broker) links
137
+
138
+ ## [0.7.4] - 2019-10-17
139
+
140
+ * Support for Rails 6
141
+
142
+ ## [0.7.3] - 2019-07-11
143
+
144
+ Thanks to @cederigo:
145
+ * For a given user, get her list of groups
146
+
147
+ ## [0.7.2] - 2019-06-17
148
+
149
+ Thanks to @vlad-ro:
150
+
151
+ * Get list of client role mappings for a group
152
+ * Save client role mappings for a user/group
153
+ * Save realm-level role mappings for a user/group
154
+
155
+ ## [0.7.1] - 2019-06-11
156
+
157
+ Thanks to @vlad-ro:
158
+
159
+ * List users
160
+ * List clients
161
+ * List groups, create/save a group
162
+ * List roles, save a role
163
+ * List realms, save/update/delete a realm
164
+ * Get list of client role mappings for a user
165
+ * Support passing rest client options for user save and search
166
+ * Support using gem without ActiveSupport
167
+
168
+ ## [0.7.0] - 2019-06-06
169
+
170
+ Thanks to @vlad-ro:
171
+
172
+ * Support passing rest client options
173
+ * More documentation
174
+ * More tests
175
+ * Better handling of timeouts
176
+
177
+ ## [0.6.5] - 2019-05-14
178
+
179
+ * Get user
180
+
181
+ ## [0.6.2] - 2019-05-14
182
+
183
+ * Update users
184
+
185
+ ## [0.6] - 2019-03-06
186
+
187
+ * Save a locale when creating a new user
188
+
189
+ ## [0.5] - 2018-01-26
190
+
191
+ * Client to access Custom REST API configurable-token
192
+
193
+ ## [0.3] - 2018-01-19
194
+
189
195
  * Support of impersonation