Script mapper deployed but not found in UI

I am trying to add a script mapper using an example from this gist. I zipped a directory containing META-INF/keycloak-scripts.json and hasura-mapper.js, and changed the extension to jar. I then copied it to /opt/jboss/keycloak/standalone/deployments/hasura-mapper.jar in my container.

The pod logs show that the mapper has been deployed

e[0me[0m22:27:58,300 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) WFLYSRV0027: Starting deployment of “hasura-mapper.jar” (runtime-name: “hasura-mapper.jar”)
e[0me[0m22:27:58,442 INFO [org.jboss.as.server] (DeploymentScanner-threads - 1) WFLYSRV0010: Deployed “hasura-mapper.jar” (runtime-name : “hasura-mapper.jar”)

But when I navigate to add a mapper to a client in the admin UI I don’t see “Hasura Mapper” as an option in the drop-down. Can anyone help explain what I am missing?

META-INF/keycloak-scripts.json

{
“authenticators”: ,
“policies”: ,
“mappers”: [
{
“name”: “Hasura Mapper”,
“fileName”: “hasura-mapper.js”,
“description”: “Hasura Mapper from a JS file”
}
]
}

hasura-mapper.js

var roles = ;
for each (var role in user.getRoleMappings()) roles.push(role.getName());
token.setOtherClaims(“Authentication Using JWTs | Hasura GraphQL Docs”, {
“x-hasura-user-id”: user.getId(),
“x-hasura-allowed-roles”: Java.to(roles, “java.lang.String”),
“x-hasura-default-role”: “user”,
});

deployment

apiVersion: apps/v1
kind: Deployment
metadata:
name: keycloak
namespace: default
labels:
app: keycloak
spec:
replicas: 1
selector:
matchLabels:
app: keycloak
template:
metadata:
labels:
app: keycloak
spec:
containers:
- name: keycloak
image: jboss/keycloak:latest
args:
- “-Dkeycloak.profile.feature.scripts=enabled”
- “-Dkeycloak.profile.feature.upload_scripts=enabled”
env:
- name: KEYCLOAK_USER
value: “admin”
- name: KEYCLOAK_PASSWORD
value: “admin”
- name: PROXY_ADDRESS_FORWARDING
value: “true”
ports:
- name: http
containerPort: 8080
- name: https
containerPort: 8443
readinessProbe:
httpGet:
path: /auth/realms/master
port: 8080

1 Like