#!/bin/bash die() { echo >&2 "$@" ; exit 1 ; } DIRNAME="$(dirname $0)" cd "$DIRNAME" source ../env.production || die "no top levle env?" source env.production || die "no local env?" source "../data/keycloak/env.secrets" || die "no local secrets?" # try to get the clients by name CLIENT_NAME="$1" if [ -z "$CLIENT_NAME" ]; then die "usage: $0 clientName" fi CLIENT_ID="$(docker-compose exec -T keycloak \ /opt/keycloak/bin/kcadm.sh \ get clients \ --server http://localhost:8080/ \ --user admin \ --password "$KEYCLOAK_ADMIN_PASSWORD" \ --realm master \ -r "$REALM" \ | jq -r ".[] | select( .clientId == \"$CLIENT_NAME\" ).id")" if [ -z "$CLIENT_ID" ]; then die "$CLIENT_NAME: no such client" fi echo "$0: $CLIENT_NAME = $CLIENT_ID" docker-compose exec -T keycloak \ /opt/keycloak/bin/kcadm.sh \ delete "clients/$CLIENT_ID" \ --server http://localhost:8080/ \ --user admin \ --realm master \ --password "$KEYCLOAK_ADMIN_PASSWORD" \ -r "$REALM" \ || die "$CLIENT_NAME($CLIENT_ID): unable to remove"