
Security News
CISA Kills Off RSS Feeds for KEVs and Cyber Alerts
CISA is discontinuing official RSS support for KEV and cybersecurity alerts, shifting updates to email and social media, disrupting automation workflows.
Django app that expose a graphql schema as well as a graphiql interface.
.. code-block::
pip install django-app-graphql
in INSTALLED_APPS
you need to add:
.. code-block::
'graphene_django', 'django_filters',
After all your apps you need to use this app (this is important otherwise some models won't be detected at all!):
.. code-block::
'django_app_graphql',
The first thing you need to do is determine if you want your graphql server setupped
using graphene
or using ariadne
. In settings, write:
.. code-block::
DJANGOAPPGRAPHQL = dict( BACKENDTYPE="ariadne/graphene" )
and select either ariadne or graphene.
Finally, in urls.py
of the entire project add the following line:
.. code-block::
urlpatterns = [ ... path("graphqls/", include("django_app_graphql.urls")), ... ]
You have chosen graphene ^^^^^^^^^^^^^^^^^^^^^^^^
The app needs to be deploy for last because otherwise it cannot detect all the Django models and their types.
You also need to configure the authentication proces. Hence you need t add "AUTHENTICATION_BACKENDS" in the settings.py
\ :
.. code-block::
AUTHENTICATION_BACKENDS = [ "graphql_jwt.backends.JSONWebTokenBackend", "django.contrib.auth.backends.ModelBackend" ]
After that, you need to properly configure the graphene, graphenedjango-extras and graphene-jwt. Add all these in your settings.py
\ :
.. code-block::
GRAPHENE = dict( SCHEMA" = "django_app_graphql.graphene.schema.SCHEMA", SCHEMA_OUTPUT = 'graphql-schema.json', SCHEMA_INDENT = 2, MIDDLEWARE = [ "graphql_jwt.middleware.JSONWebTokenMiddleware", "django_app_graphql.middleware.GraphQLStackTraceInErrorMiddleware", ], )
GRAPHENE_DJANGO_EXTRAS = dict( DEFAULT_PAGINATION_CLASS = 'graphene_django_extras.paginations.LimitOffsetGraphqlPagination', DEFAULT_PAGE_SIZE = 20, MAX_PAGE_SIZE = 50, CACHE_ACTIVE = True, CACHE_TIMEOUT = 300 # seconds )
GRAPHQL_JWT = dict( # This configures graphql-jwt to add "token" input at each request to be authenticated JWT_ALLOW_ARGUMENT = True, JWT_ARGUMENT_NAME = "token", JWT_VERIFY_EXPIRATION = True, JWT_EXPIRATION_DELTA = timedelta(minutes=30), JWT_ALGORITHM = "HS256", JWT_REFRESH_EXPIRATION_DELTA = timedelta(days=7), JWT_AUTH_HEADER_PREFIX = "Bearer", )
You have chosen ariadne ^^^^^^^^^^^^^^^^^^^^^^^
In settings.py
add:
.. code-block::
INSTALLED_APPS = [ ... "ariadne.contrib.django", ]
Add templates (otherwise the playground won't work):
.. code-block::
TEMPLATES = [ { ..., 'APP_DIRS': True, ... }, ]
Ariadne is in unstable development (I don't know if it will ever be supported)
Generic tweaks ^^^^^^^^^^^^^^
Finally you can configure this app, for instance:
.. code-block::
DJANGO_APP_GRAPHQL = { "BACKEND_TYPE": "graphene", "EXPOSE_GRAPHIQL": True, "GRAPHQL_SERVER_URL": "", "ENABLE_GRAPHQL_FEDERATION": True, "SAVE_GRAPHQL_SCHEMA": "output/schema.graphql" }
You can use setuptools
and twine
\ :
.. code-block::
python setup.py update_version_patch bdist_wheel twine upload dist/*
Or you can use pmakeup
.. code-block::
pmakeup update-version-patch build upload-to-pypi
FAQs
Some stuff that i used when developing with django
We found that django-app-graphql demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISA is discontinuing official RSS support for KEV and cybersecurity alerts, shifting updates to email and social media, disrupting automation workflows.
Security News
The MCP community is launching an official registry to standardize AI tool discovery and let agents dynamically find and install MCP servers.
Research
Security News
Socket uncovers an npm Trojan stealing crypto wallets and BullX credentials via obfuscated code and Telegram exfiltration.