graphql-python / graphql-python/graphene

Can there be a way to mute stacktraces coming from certain exceptions?

Ouverte
#1,265 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
✨ enhancement
Langage dominant
Python
Étoiles
8.2k
Forks
818
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

**Is your feature request related to a problem? Please describe.**
Currently I'd get a stacktrace for every single validation that occurs:

```
2020-09-16 03:31:18.459 ERROR graphql.execution.utils 127.0.0.1 c7b7f54e-299d-478d-b3e3-ae2b5112921f : Traceback (most recent call last):
File "/Users/blei/myproject/venv/lib/python3.8/site-packages/promise/promise.py", line 489, in _resolve_from_executor
executor(resolve, reject)
File "/Users/blei/myproject/venv/lib/python3.8/site-packages/promise/promise.py", line 756, in executor
return resolve(f(*args, **kwargs))
File "/Users/blei/myproject/venv/lib/python3.8/site-packages/graphql/execution/middleware.py", line 75, in make_it_promise
return next(*args, **kwargs)
File "/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/lib/python3.8/contextlib.py", line 75, in inner
return func(*args, **kwds)
File "/Users/blei/myproject/my_app/graphql.py", line 14, in wrapper_decorator
return func(*args, **kwargs)
File "/Users/blei/myproject/my_app/graphql.py", line 310, in mutate
raise MyAppError('Something')
graphql.error.located_error.GraphQLLocatedError: Something

```

Which seems like it would take up a LOT of disk space if someone were malicious + spammed the same endpoint many times and thus taking up all the disk space on my server.

**Describe the solution you'd like**
I would like the ability to mute exceptions (or specifically, stacktraces) coming from certain exceptions.

**Describe alternatives you've considered**
I've tried adding in my own `errors` field it seems like Graphene just mutes it.

**Additional context**
I can alternatively just create an `error` field or something, but then in the frontend I have to write in logic to handle the `error`/et. al and the `errors` field.

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par suivre le traitement des exceptions et des tracebacks présenté dans graphql.execution.utils, promise et GraphQLLocatedError, puis comparez-le au comportement signalé du champ errors de Graphene. Définissez comment les appelants pourraient identifier les exceptions dont les stacktraces sont réduites au silence tout en conservant la réponse d’erreur GraphQL disponible ; le travail est terminé lorsque le comportement est configurable et documenté, avec une couverture du cas demandé.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
api, backend-api-design
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.