# Script mapper deployed but not found in UI

**URL:** <https://forum.keycloak.org/t/script-mapper-deployed-but-not-found-in-ui/7719>\
**Category:** Extending the server\
**Created:** [March 3, 2021, 10:38pm UTC](https://forum.keycloak.org/t/script-mapper-deployed-but-not-found-in-ui/7719 "2021-03-03T22:38:34Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![cloak2000](https://avatars.discourse-cdn.com/v4/letter/c/b38774/32.png) [@cloak2000](https://forum.keycloak.org/u/cloak2000)\
**Post date:** [March 3, 2021, 10:38pm UTC](https://forum.keycloak.org/t/script-mapper-deployed-but-not-found-in-ui/7719/1 "2021-03-03T22:38:34Z")

</div>

I am trying to add a script mapper using an example from [this gist](https://gist.github.com/webdeb/d8a99df9023f01b78e3e8ff580abe10b). 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](https://hasura.io/jwt/claims)”, {  
> “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
