diff --git a/data-index/data-index-graphql/pom.xml b/data-index/data-index-graphql/pom.xml
index 09c51edd0d..ef774baa25 100644
--- a/data-index/data-index-graphql/pom.xml
+++ b/data-index/data-index-graphql/pom.xml
@@ -45,6 +45,10 @@
io.quarkus
quarkus-vertx-graphql
+
+ com.graphql-java
+ graphql-java-extended-scalars
+
io.quarkus
quarkus-reactive-routes
diff --git a/data-index/data-index-graphql/src/main/java/org/kie/kogito/index/graphql/query/GraphQLQueryMapper.java b/data-index/data-index-graphql/src/main/java/org/kie/kogito/index/graphql/query/GraphQLQueryMapper.java
index 20a333d5b0..846f8115db 100644
--- a/data-index/data-index-graphql/src/main/java/org/kie/kogito/index/graphql/query/GraphQLQueryMapper.java
+++ b/data-index/data-index-graphql/src/main/java/org/kie/kogito/index/graphql/query/GraphQLQueryMapper.java
@@ -110,15 +110,46 @@ public GraphQLQueryParser apply(GraphQLInputObjectType type) {
case "KogitoMetadataArgument":
parser.mapAttribute(field.getName(), mapSubEntityArgument(field.getName(), GraphQLQueryParserRegistry.get().getParser("KogitoMetadataArgument")));
break;
+ case "JSON":
+ parser.mapAttribute(field.getName(), mapJsonArgument(field.getName()));
+ break;
default:
- parser.mapAttribute(field.getName(), mapSubEntityArgument(field.getName(), new GraphQLQueryMapper().apply((GraphQLInputObjectType) field.getType())));
+ if (field.getType() instanceof GraphQLInputObjectType) {
+ parser.mapAttribute(field.getName(), mapSubEntityArgument(field.getName(), new GraphQLQueryMapper().apply((GraphQLInputObjectType) field.getType())));
+ }
}
}
});
-
return parser;
}
+ private Function