fix: Separate Example Applications and SDKs/Integrations more clearly (#11569)

# Which Problems Are Solved

The distinction between Example Applications and SDKs has not been
clear. In the SDKs section a lot of Example applications where listed.
Also In the SDKs it was not really clear what the SDKs actually are.
Also some examples and skds are outdated and not well maintained
anymore.

# How the Problems Are Solved

- Moved all example app guides to the Example Applications Section
- Restructured SDKs Nav --> SDKs & Integrations: Frontend & Mobile,
Backend & API, Management API Clients
- Removed unnecessary / outdated guides
- Remove ids in framework.json for frameworks which shouldn't be
rendered in console

## Todos:
- Update SDKs Introduction page
- Add links to common oidc libs for most used frameworks

---------

Co-authored-by: Mridang Agarwalla <[email protected]>
This commit is contained in:
Fabienne Bühler
2026-03-11 14:57:15 +01:00
committed by GitHub
co-authored by Mridang Agarwalla
parent d5f35fbd54
commit 574e23e834
33 changed files with 364 additions and 1696 deletions
@@ -1,13 +1,14 @@
---
title: ZITADEL with Django Python
title: Secure Django (Python) API Application with ZITADEL
description: "Integrate ZITADEL with Django Python to validate tokens and check permissions for secure API access using OIDC protocol standards"
sidebar_label: Django
sidebar_label: Django API
---
import AppJWT from '../imports/_app_jwt.mdx';
import ServiceAccountJWT from '../imports/_serviceaccount_jwt.mdx';
import ServiceAccountRole from '../imports/_serviceaccount_role.mdx';
import SetupPython from '../imports/_setup_python.mdx';
import { GithubCodeBlock } from '@/components/github-code-block';
This integration guide demonstrates the recommended way to incorporate ZITADEL into your Django Python application.
It explains how to check the token validity in the API and how to check for permissions.
@@ -15,7 +16,7 @@ It explains how to check the token validity in the API and how to check for perm
By the end of this guide, your application will have three different endpoints that are public, private (valid token) and private-scoped (valid token with a specific role).
<Callout>
This documentation references our [example](https://github.com/zitadel/example-django-python-oauth) on GitHub.
This documentation references our [example](https://github.com/zitadel/example-python-django-oauth) on GitHub.
</Callout>
## ZITADEL setup
@@ -62,9 +63,7 @@ For this example we need the following dependencies:
For the dependencies we need a requirements.txt-file with the following content:
```python reference
https://github.com/zitadel/example-python-django-oauth/blob/main/requirements.txt
```
<GithubCodeBlock url="https://github.com/zitadel/example-python-django-oauth/blob/main/requirements.txt"></GithubCodeBlock>
Then install all dependencies with:
```bash
@@ -82,9 +81,7 @@ django-admin startproject myapi .
There is info needed for the introspection calls, which we put into the settings.py:
```python reference
https://github.com/zitadel/example-python-django-oauth/blob/main/myapi/settings.py#L125-L133
```
<GithubCodeBlock url="https://github.com/zitadel/example-python-django-oauth/blob/main/myapi/settings.py#L125-L133"></GithubCodeBlock>
and create a ".env"-file in the root folder with the settings as an example:
```bash
@@ -106,25 +103,16 @@ API_PRIVATE_KEY_FILE_PATH = '/tmp/example/250719519163548112.json'
To validate the tokens, we need a validator which can be called in the event of API-calls.
validator.py:
```python reference
https://github.com/zitadel/example-python-django-oauth/blob/main/myapi/validator.py
```
<GithubCodeBlock url="https://github.com/zitadel/example-python-django-oauth/blob/main/myapi/validator.py"></GithubCodeBlock>
### Requests and URLs
We define 3 different endpoints which differ in terms of requirements.
views.py:
```python reference
https://github.com/zitadel/example-python-django-oauth/blob/main/myapi/views.py
```
<GithubCodeBlock url="https://github.com/zitadel/example-python-django-oauth/blob/main/myapi/views.py"></GithubCodeBlock>
To handle endpoints the urls have to be added to the urls.py:
```python reference
https://github.com/zitadel/example-python-django-oauth/blob/main/myapi/urls.py
```
<GithubCodeBlock url="https://github.com/zitadel/example-python-django-oauth/blob/main/myapi/urls.py"></GithubCodeBlock>
### DB