keycloak-d4science-spi-parent/keycloak-d4science-theme/util/xquery/create-client.xq

33 lines
861 B
Plaintext

import module namespace c = 'urn:nubisware:keycloak:clients' at 'keycloak-clients.xqm';
import module namespace gw = 'urn:nubisware:d4science:gateways' at 'd4s-gateways.xqm';
declare function local:build-clientId($gateway) {
replace($gateway, 'https://', '')
};
declare function local:build-client-def($gateway) {
let $clientId := local:build-clientId($gateway)
let $baseUrl := $gateway || '/'
let $redirectUri := $gateway || '/*'
let $login_theme := "d4science"
return map {
"clientId" : $clientId,
"baseUrl" : $baseUrl,
"redirectUri" : $redirectUri,
"login_theme" : $login_theme
}
};
let $dummy := ''
(: delete all clients
gw:list() ! c:delete-client(local:build-clientId(.))
:)
(: add all clients
gw:list() ! c:create-client(local:build-client-def(.))
:)
return gw:list() ! c:create-client(local:build-client-def(.))