Skip to content

Commit 4f5feca

Browse files
authored
Merge pull request #32 from sqrl-planner/develop
Disable GraphiQL and introspection on prod (#31)
2 parents d2440cf + 0453042 commit 4f5feca

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

config/settings.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
SERVER_NAME = os.getenv(
99
'SERVER_NAME', 'localhost:{0}'.format(os.getenv('PORT', '8000')))
1010

11+
ENV = os.getenv('FLASK_ENV', 'production')
12+
1113
# MongoDB configuration
1214
MONGODB_SETTINGS = {
1315
'db': os.getenv('MONGODB_DB', 'sqrl'),

sqrl/graphql/__init__.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
11
from flask import Flask
22
from graphql_server.flask import GraphQLView
3-
3+
from graphql.validation.rules.custom.no_schema_introspection import NoSchemaIntrospectionCustomRule
4+
from graphql.validation.specified_rules import specified_rules
45
from sqrl.graphql.schema import schema
56

67

78
def init_app(app: Flask) -> None:
89
"""Initialise GraphQL with a flask app context."""
10+
on_dev = app.config.get('ENV', 'production') == 'development'
11+
prod_rules = specified_rules + tuple([NoSchemaIntrospectionCustomRule])
912
app.add_url_rule(
1013
'/graphql',
1114
view_func=GraphQLView.as_view(
1215
'graphql',
1316
schema=schema.graphql_schema,
14-
graphiql=True),
17+
validation_rules=None if on_dev else prod_rules,
18+
graphiql=on_dev,
19+
)
1520
)

0 commit comments

Comments
 (0)