Skip to content

Commit 989bba3

Browse files
author
gitlab-ci-token
committed
1 parent c305588 commit 989bba3

File tree

7 files changed

+1470
-55
lines changed

7 files changed

+1470
-55
lines changed

docs/core/system-configuration/override-settings.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,6 @@ Returns all settings that can be overridden in the database via the Constance ba
121121
| `SIDEBAR_LOGO_DARK` | string (uri) |
122122
| `SIDEBAR_LOGO_MOBILE` | string (uri) |
123123
| `SIDEBAR_STYLE` | string |
124-
| `SITE_LOGO` | string (uri) |
125124
| `LOGIN_LOGO` | string (uri) |
126125
| `LOGIN_LOGO_MULTILINGUAL` | object (free-form) |
127126
| `LOGIN_PAGE_LAYOUT` | string |
@@ -421,7 +420,6 @@ Updates one or more settings in the database via the Constance backend. Requires
421420
| `SIDEBAR_LOGO_DARK` | string (binary) | |
422421
| `SIDEBAR_LOGO_MOBILE` | string (binary) | |
423422
| `SIDEBAR_STYLE` | string | |
424-
| `SITE_LOGO` | string (binary) | |
425423
| `LOGIN_LOGO` | string (binary) | |
426424
| `LOGIN_LOGO_MULTILINGUAL` | object (free-form) | |
427425
| `LOGIN_PAGE_LAYOUT` | string | |

docs/marketplace/accounts/offering-user-roles.md

Lines changed: 63 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -77,13 +77,15 @@
7777

7878
The response body is an array of objects, where each object has the following structure:
7979

80-
| Field | Type |
81-
|---|---|
82-
| `name` | string |
83-
| `uuid` | string (uuid) |
84-
| `offering` | string (uri) |
85-
| `offering_uuid` | string (uuid) |
86-
| `offering_name` | string |
80+
| Field | Type | Description |
81+
|---|---|---|
82+
| `name` | string | |
83+
| `uuid` | string (uuid) | |
84+
| `offering` | string (uri) | |
85+
| `offering_uuid` | string (uuid) | |
86+
| `offering_name` | string | |
87+
| `scope_type` | string | Level this role applies at, e.g. 'cluster', 'project'. Empty means offering-wide. |
88+
| `scope_type_label` | string | Human-readable label for scope_type shown to end users, e.g. 'Rancher Project', 'Cluster Namespace'. Falls back to capitalized scope_type if empty. |
8789

8890
---
8991

@@ -149,13 +151,15 @@
149151

150152
**`200`** -
151153

152-
| Field | Type |
153-
|---|---|
154-
| `name` | string |
155-
| `uuid` | string (uuid) |
156-
| `offering` | string (uri) |
157-
| `offering_uuid` | string (uuid) |
158-
| `offering_name` | string |
154+
| Field | Type | Description |
155+
|---|---|---|
156+
| `name` | string | |
157+
| `uuid` | string (uuid) | |
158+
| `offering` | string (uri) | |
159+
| `offering_uuid` | string (uuid) | |
160+
| `offering_name` | string | |
161+
| `scope_type` | string | Level this role applies at, e.g. 'cluster', 'project'. Empty means offering-wide. |
162+
| `scope_type_label` | string | Human-readable label for scope_type shown to end users, e.g. 'Rancher Project', 'Cluster Namespace'. Falls back to capitalized scope_type if empty. |
159163

160164
---
161165

@@ -222,23 +226,27 @@
222226

223227
=== "Request Body (required)"
224228

225-
| Field | Type | Required |
226-
|---|---|---|
227-
| `name` | string | ✓ |
228-
| `offering` | string (uri) | ✓ |
229+
| Field | Type | Required | Description |
230+
|---|---|---|---|
231+
| `name` | string | ✓ | |
232+
| `offering` | string (uri) | ✓ | |
233+
| `scope_type` | string | | Level this role applies at, e.g. 'cluster', 'project'. Empty means offering-wide. |
234+
| `scope_type_label` | string | | Human-readable label for scope_type shown to end users, e.g. 'Rancher Project', 'Cluster Namespace'. Falls back to capitalized scope_type if empty. |
229235

230236

231237
=== "Responses"
232238

233239
**`201`** -
234240

235-
| Field | Type |
236-
|---|---|
237-
| `name` | string |
238-
| `uuid` | string (uuid) |
239-
| `offering` | string (uri) |
240-
| `offering_uuid` | string (uuid) |
241-
| `offering_name` | string |
241+
| Field | Type | Description |
242+
|---|---|---|
243+
| `name` | string | |
244+
| `uuid` | string (uuid) | |
245+
| `offering` | string (uri) | |
246+
| `offering_uuid` | string (uuid) | |
247+
| `offering_name` | string | |
248+
| `scope_type` | string | Level this role applies at, e.g. 'cluster', 'project'. Empty means offering-wide. |
249+
| `scope_type_label` | string | Human-readable label for scope_type shown to end users, e.g. 'Rancher Project', 'Cluster Namespace'. Falls back to capitalized scope_type if empty. |
242250

243251
---
244252

@@ -316,23 +324,27 @@
316324

317325
=== "Request Body (required)"
318326

319-
| Field | Type | Required |
320-
|---|---|---|
321-
| `name` | string | ✓ |
322-
| `offering` | string (uri) | ✓ |
327+
| Field | Type | Required | Description |
328+
|---|---|---|---|
329+
| `name` | string | ✓ | |
330+
| `offering` | string (uri) | ✓ | |
331+
| `scope_type` | string | | Level this role applies at, e.g. 'cluster', 'project'. Empty means offering-wide. |
332+
| `scope_type_label` | string | | Human-readable label for scope_type shown to end users, e.g. 'Rancher Project', 'Cluster Namespace'. Falls back to capitalized scope_type if empty. |
323333

324334

325335
=== "Responses"
326336

327337
**`200`** -
328338

329-
| Field | Type |
330-
|---|---|
331-
| `name` | string |
332-
| `uuid` | string (uuid) |
333-
| `offering` | string (uri) |
334-
| `offering_uuid` | string (uuid) |
335-
| `offering_name` | string |
339+
| Field | Type | Description |
340+
|---|---|---|
341+
| `name` | string | |
342+
| `uuid` | string (uuid) | |
343+
| `offering` | string (uri) | |
344+
| `offering_uuid` | string (uuid) | |
345+
| `offering_name` | string | |
346+
| `scope_type` | string | Level this role applies at, e.g. 'cluster', 'project'. Empty means offering-wide. |
347+
| `scope_type_label` | string | Human-readable label for scope_type shown to end users, e.g. 'Rancher Project', 'Cluster Namespace'. Falls back to capitalized scope_type if empty. |
336348

337349
---
338350

@@ -401,23 +413,27 @@
401413

402414
=== "Request Body"
403415

404-
| Field | Type | Required |
405-
|---|---|---|
406-
| `name` | string | |
407-
| `offering` | string (uri) | |
416+
| Field | Type | Required | Description |
417+
|---|---|---|---|
418+
| `name` | string | | |
419+
| `offering` | string (uri) | | |
420+
| `scope_type` | string | | Level this role applies at, e.g. 'cluster', 'project'. Empty means offering-wide. |
421+
| `scope_type_label` | string | | Human-readable label for scope_type shown to end users, e.g. 'Rancher Project', 'Cluster Namespace'. Falls back to capitalized scope_type if empty. |
408422

409423

410424
=== "Responses"
411425

412426
**`200`** -
413427

414-
| Field | Type |
415-
|---|---|
416-
| `name` | string |
417-
| `uuid` | string (uuid) |
418-
| `offering` | string (uri) |
419-
| `offering_uuid` | string (uuid) |
420-
| `offering_name` | string |
428+
| Field | Type | Description |
429+
|---|---|---|
430+
| `name` | string | |
431+
| `uuid` | string (uuid) | |
432+
| `offering` | string (uri) | |
433+
| `offering_uuid` | string (uuid) | |
434+
| `offering_name` | string | |
435+
| `scope_type` | string | Level this role applies at, e.g. 'cluster', 'project'. Empty means offering-wide. |
436+
| `scope_type_label` | string | Human-readable label for scope_type shown to end users, e.g. 'Rancher Project', 'Cluster Namespace'. Falls back to capitalized scope_type if empty. |
421437

422438
---
423439

docs/marketplace/provider-api/provider-offerings.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -816,6 +816,11 @@ Creates a new provider offering.
816816
| `plugin_options.enable_display_of_order_actions_for_service_provider` | boolean | | Enable display of order actions for service provider<br>_Constraints: default: `True`_ |
817817
| `plugin_options.slurm_periodic_policy_enabled` | boolean | | Enable SLURM periodic usage policy configuration. When enabled, allows configuring QoS-based threshold enforcement, carryover logic, and fairshare decay for site-agent managed SLURM offerings.<br>_Constraints: default: `False`_ |
818818
| `plugin_options.auto_approve_marketplace_script` | boolean | | If set to False, all orders require manual provider approval, including for service provider owners and staff<br>_Constraints: default: `True`_ |
819+
| `plugin_options.keycloak_enabled` | boolean | | If set to True, Keycloak group management is enabled for this offering. |
820+
| `plugin_options.keycloak_base_group` | string | | Root parent group in Keycloak under which offering groups are created. Groups are organized as: {base_group}/{offering_slug}/{role_group}. If empty, offering groups are created at the realm root. |
821+
| `plugin_options.keycloak_sync_frequency` | integer | | Frequency in minutes for syncing Keycloak group memberships. |
822+
| `plugin_options.keycloak_group_name_template` | string | | Template for generating Keycloak group names. Uses $variable syntax (e.g. $offering_uuid_$role_name). Allowed variables: offering_uuid, offering_name, offering_slug, resource_uuid, resource_name, resource_slug, project_uuid, project_name, project_slug, organization_uuid, organization_name, organization_slug, role_name, scope_id. |
823+
| `plugin_options.keycloak_username_label` | string | | Custom label for the username field when inviting external users (e.g. 'Civil code', 'CUID'). If empty, defaults to 'Username'.<br>_Constraints: default: ``_ |
819824
| `plugin_options.highlight_backend_id_display` | boolean | | Defines if backend_id should be shown more prominently by the UI<br>_Constraints: default: `False`_ |
820825
| `plugin_options.backend_id_display_label` | string | | Label used by UI for showing value of the backend_id<br>_Constraints: default: `Backend ID`_ |
821826
| `plugin_options.disabled_resource_actions` | array of strings | | List of disabled marketplace resource actions for this offering. |
@@ -5543,6 +5548,11 @@ Updates the backend integration settings for an offering, including plugin optio
55435548
| `plugin_options.enable_display_of_order_actions_for_service_provider` | boolean | | Enable display of order actions for service provider<br>_Constraints: default: `True`_ |
55445549
| `plugin_options.slurm_periodic_policy_enabled` | boolean | | Enable SLURM periodic usage policy configuration. When enabled, allows configuring QoS-based threshold enforcement, carryover logic, and fairshare decay for site-agent managed SLURM offerings.<br>_Constraints: default: `False`_ |
55455550
| `plugin_options.auto_approve_marketplace_script` | boolean | | If set to False, all orders require manual provider approval, including for service provider owners and staff<br>_Constraints: default: `True`_ |
5551+
| `plugin_options.keycloak_enabled` | boolean | | If set to True, Keycloak group management is enabled for this offering. |
5552+
| `plugin_options.keycloak_base_group` | string | | Root parent group in Keycloak under which offering groups are created. Groups are organized as: {base_group}/{offering_slug}/{role_group}. If empty, offering groups are created at the realm root. |
5553+
| `plugin_options.keycloak_sync_frequency` | integer | | Frequency in minutes for syncing Keycloak group memberships. |
5554+
| `plugin_options.keycloak_group_name_template` | string | | Template for generating Keycloak group names. Uses $variable syntax (e.g. $offering_uuid_$role_name). Allowed variables: offering_uuid, offering_name, offering_slug, resource_uuid, resource_name, resource_slug, project_uuid, project_name, project_slug, organization_uuid, organization_name, organization_slug, role_name, scope_id. |
5555+
| `plugin_options.keycloak_username_label` | string | | Custom label for the username field when inviting external users (e.g. 'Civil code', 'CUID'). If empty, defaults to 'Username'.<br>_Constraints: default: ``_ |
55465556
| `plugin_options.highlight_backend_id_display` | boolean | | Defines if backend_id should be shown more prominently by the UI<br>_Constraints: default: `False`_ |
55475557
| `plugin_options.backend_id_display_label` | string | | Label used by UI for showing value of the backend_id<br>_Constraints: default: `Backend ID`_ |
55485558
| `plugin_options.disabled_resource_actions` | array of strings | | List of disabled marketplace resource actions for this offering. |

docs/marketplace/provider-api/provider-resources.md

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
| <span class="http-badge http-post">POST</span> | `/api/marketplace-provider-resources/{uuid}/set_downscaled/` | [Set downscaled flag for resource](#set-downscaled-flag-for-resource) |
3333
| <span class="http-badge http-post">POST</span> | `/api/marketplace-provider-resources/{uuid}/set_end_date_by_provider/` | [Set end date by provider](#set-end-date-by-provider) |
3434
| <span class="http-badge http-post">POST</span> | `/api/marketplace-provider-resources/{uuid}/set_end_date_by_staff/` | [Set end date of the resource by staff](#set-end-date-of-the-resource-by-staff) |
35+
| <span class="http-badge http-post">POST</span> | `/api/marketplace-provider-resources/{uuid}/set_keycloak_scopes/` | [Set Keycloak scope options for a resource](#set-keycloak-scope-options-for-a-resource) |
3536
| <span class="http-badge http-post">POST</span> | `/api/marketplace-provider-resources/{uuid}/set_limits/` | [Set resource limits](#set-resource-limits) |
3637
| <span class="http-badge http-post">POST</span> | `/api/marketplace-provider-resources/{uuid}/set_paused/` | [Set paused flag for resource](#set-paused-flag-for-resource) |
3738
| <span class="http-badge http-post">POST</span> | `/api/marketplace-provider-resources/{uuid}/set_restrict_member_access/` | [Set restrict member access flag](#set-restrict-member-access-flag) |
@@ -2825,6 +2826,97 @@ Allows a staff user to set or update the end date for a resource, which will sch
28252826

28262827
---
28272828

2829+
### Set Keycloak scope options for a resource
2830+
2831+
Allows a service provider to configure available scope options for Keycloak memberships on a resource. Requires Keycloak integration to be enabled on the offering.
2832+
2833+
2834+
=== "HTTPie"
2835+
2836+
```bash
2837+
http \
2838+
POST \
2839+
https://api.example.com/api/marketplace-provider-resources/a1b2c3d4-e5f6-7890-abcd-ef1234567890/set_keycloak_scopes/ \
2840+
Authorization:"Token YOUR_API_TOKEN" \
2841+
keycloak_available_scopes:='[]'
2842+
```
2843+
2844+
=== "Python"
2845+
2846+
```python
2847+
from waldur_api_client.client import AuthenticatedClient
2848+
from waldur_api_client.models.resource_keycloak_scopes_request import ResourceKeycloakScopesRequest # (1)
2849+
from waldur_api_client.api.marketplace_provider_resources import marketplace_provider_resources_set_keycloak_scopes # (2)
2850+
2851+
client = AuthenticatedClient(
2852+
base_url="https://api.example.com", token="YOUR_API_TOKEN"
2853+
)
2854+
2855+
body_data = ResourceKeycloakScopesRequest(
2856+
keycloak_available_scopes=[]
2857+
)
2858+
response = marketplace_provider_resources_set_keycloak_scopes.sync(
2859+
uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
2860+
client=client,
2861+
body=body_data
2862+
)
2863+
2864+
print(response)
2865+
```
2866+
2867+
2868+
1. **Model Source:** [`ResourceKeycloakScopesRequest`](https://github.com/waldur/py-client/blob/main/waldur_api_client/models/resource_keycloak_scopes_request.py)
2869+
2. **API Source:** [`marketplace_provider_resources_set_keycloak_scopes`](https://github.com/waldur/py-client/blob/main/waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_set_keycloak_scopes.py)
2870+
2871+
=== "TypeScript"
2872+
2873+
```typescript
2874+
import { marketplaceProviderResourcesSetKeycloakScopes } from 'waldur-js-client';
2875+
2876+
try {
2877+
const response = await marketplaceProviderResourcesSetKeycloakScopes({
2878+
auth: "Token YOUR_API_TOKEN",
2879+
path: {
2880+
"uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
2881+
},
2882+
body: {
2883+
"keycloak_available_scopes": []
2884+
}
2885+
});
2886+
console.log('Success:', response);
2887+
} catch (error) {
2888+
console.error('Error:', error);
2889+
}
2890+
```
2891+
2892+
2893+
=== "Path Parameters"
2894+
2895+
| Name | Type | Required |
2896+
|---|---|---|
2897+
| `uuid` | string (uuid) | ✓ |
2898+
2899+
2900+
=== "Request Body (required)"
2901+
2902+
| Field | Type | Required | Description |
2903+
|---|---|---|---|
2904+
| `keycloak_available_scopes` | array of objects | ✓ | Pre-configured scope options for this resource. |
2905+
| `keycloak_available_scopes.scope_type` | string | ✓ | Scope type, e.g. 'project', 'cluster'. |
2906+
| `keycloak_available_scopes.scope_id` | string | ✓ | Identifier of the scope (UUID or external ID). |
2907+
| `keycloak_available_scopes.label` | string | ✓ | Human-readable label shown to end users. |
2908+
2909+
2910+
=== "Responses"
2911+
2912+
**`200`** -
2913+
2914+
| Field | Type | Description |
2915+
|---|---|---|
2916+
| `status` | string | Status of the resource response |
2917+
2918+
---
2919+
28282920
### Set resource limits
28292921

28302922
Allows a service provider to directly set the limits for a resource. This is typically used for administrative changes or backend synchronization, bypassing the normal order process.

docs/marketplace/site-agent/site-agent-identities.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888
|---|---|---|
8989
| `uuid` | string (uuid) | |
9090
| `url` | string (uri) | |
91-
| `offering` | string (uuid) | UUID of an offering with type 'Marketplace.Slurm'. Only site-agent offerings are accepted. |
91+
| `offering` | string (uuid) | UUID of an offering with a site-agent compatible type. |
9292
| `name` | string | |
9393
| `version` | string | |
9494
| `dependencies` | any | |
@@ -175,7 +175,7 @@
175175
|---|---|---|
176176
| `uuid` | string (uuid) | |
177177
| `url` | string (uri) | |
178-
| `offering` | string (uuid) | UUID of an offering with type 'Marketplace.Slurm'. Only site-agent offerings are accepted. |
178+
| `offering` | string (uuid) | UUID of an offering with a site-agent compatible type. |
179179
| `name` | string | |
180180
| `version` | string | |
181181
| `dependencies` | any | |
@@ -261,7 +261,7 @@
261261

262262
| Field | Type | Required | Description |
263263
|---|---|---|---|
264-
| `offering` | string (uuid) | ✓ | UUID of an offering with type 'Marketplace.Slurm'. Only site-agent offerings are accepted. |
264+
| `offering` | string (uuid) | ✓ | UUID of an offering with a site-agent compatible type. |
265265
| `name` | string | ✓ | |
266266
| `version` | string | | |
267267
| `dependencies` | any | | |
@@ -278,7 +278,7 @@
278278
|---|---|---|
279279
| `uuid` | string (uuid) | |
280280
| `url` | string (uri) | |
281-
| `offering` | string (uuid) | UUID of an offering with type 'Marketplace.Slurm'. Only site-agent offerings are accepted. |
281+
| `offering` | string (uuid) | UUID of an offering with a site-agent compatible type. |
282282
| `name` | string | |
283283
| `version` | string | |
284284
| `dependencies` | any | |
@@ -375,7 +375,7 @@
375375

376376
| Field | Type | Required | Description |
377377
|---|---|---|---|
378-
| `offering` | string (uuid) | ✓ | UUID of an offering with type 'Marketplace.Slurm'. Only site-agent offerings are accepted. |
378+
| `offering` | string (uuid) | ✓ | UUID of an offering with a site-agent compatible type. |
379379
| `name` | string | ✓ | |
380380
| `version` | string | | |
381381
| `dependencies` | any | | |
@@ -392,7 +392,7 @@
392392
|---|---|---|
393393
| `uuid` | string (uuid) | |
394394
| `url` | string (uri) | |
395-
| `offering` | string (uuid) | UUID of an offering with type 'Marketplace.Slurm'. Only site-agent offerings are accepted. |
395+
| `offering` | string (uuid) | UUID of an offering with a site-agent compatible type. |
396396
| `name` | string | |
397397
| `version` | string | |
398398
| `dependencies` | any | |

0 commit comments

Comments
 (0)