The GraphQL API is the primary interface between the Next.js frontend and the Django backend. It is built with Strawberry GraphQL and theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/owasp/nest/llms.txt
Use this file to discover all available pages before exploring further.
strawberry-graphql-django integration.
Endpoint
GraphiQL playground
When running withDJANGO_CONFIGURATION=Local, the GraphiQL interactive playground is available at /graphql/. It lets you browse the schema, write queries, and inspect results without any additional tooling.
Introspection is disabled in production environments to avoid schema disclosure. Use the local stack to explore the schema.
Schema structure
The schema is defined inbackend/settings/graphql.py and composed from query and mutation classes contributed by each Django app.
Query root
| Source class | App | Description |
|---|---|---|
ApiKeyQueries | api | API key management queries |
GithubQuery | github | GitHub organizations, repositories, issues |
MentorshipQuery | mentorship | Mentorship program queries |
ModuleQuery | mentorship | Mentorship module queries |
OwaspQuery | owasp | Projects, chapters, committees, events, snapshots, sponsors |
ProgramQuery | mentorship | Mentorship program queries |
Mutation root
| Source class | App | Description |
|---|---|---|
ApiMutations | api | API key create/revoke mutations |
ModuleMutation | mentorship | Mentorship module mutations |
NestMutations | nest | User-related mutations |
ProgramMutation | mentorship | Mentorship program mutations |
Schema extensions
The following extensions are always active:| Extension | Purpose |
|---|---|
QueryDepthLimiter(max_depth=5) | Prevents deeply nested query abuse |
DjangoOptimizerExtension | Automatically optimizes Django ORM queries to avoid N+1 issues |
DisableIntrospection | Enabled in production to hide the schema |
Example queries
List recent projects
Search projects by name
Fetch a single project
Frontend integration
The Next.js frontend uses Apollo Client to query the GraphQL API. All frontend queries and mutations are written in.graphql files co-located with their components.
