Remove suggestion in gql error for un-authenticated users (#16328)

Closes https://github.com/twentyhq/private-issues/issues/357
Closes https://github.com/twentyhq/private-issues/issues/358
This commit is contained in:
Etienne
2025-12-04 16:23:49 +01:00
committed by GitHub
parent c3deb96c8d
commit c68eb35043
4 changed files with 21 additions and 5 deletions
@@ -3,8 +3,9 @@ import { NoSchemaIntrospectionCustomRule } from 'graphql/validation/rules/custom
import { isDefined } from 'twenty-shared/utils';
import { type GraphQLContext } from 'src/engine/api/graphql/graphql-config/graphql-config.service';
import { removeSuggestionInErrorsRule } from 'src/engine/core-modules/graphql/rules/remove-suggestion-in-errors.rule';
export const useDisableIntrospectionForUnauthenticatedUsers = (
export const useDisableIntrospectionAndSuggestionsForUnauthenticatedUsers = (
isProductionEnvironment: boolean,
): Plugin<GraphQLContext> => ({
onValidate: ({ context, addValidationRule }) => {
@@ -12,6 +13,7 @@ export const useDisableIntrospectionForUnauthenticatedUsers = (
if (!isAuthenticated && isProductionEnvironment) {
addValidationRule(NoSchemaIntrospectionCustomRule);
addValidationRule(removeSuggestionInErrorsRule);
}
},
});
@@ -0,0 +1,14 @@
import { type ASTVisitor, type ValidationContext } from 'graphql';
export const removeSuggestionInErrorsRule = (
context: ValidationContext,
): ASTVisitor => {
const originalReportError = context.reportError.bind(context);
context.reportError = (error) => {
error.message = error.message.replace(/ Did you mean[^?]*\?/g, '');
originalReportError(error);
};
return {};
};