Directus als Backend-as-a-Service: REST, GraphQL, Auth und RBAC in 30 Minuten
Backend-as-a-Service (BaaS) Plattformen versprechen einen einfachen Einstieg in die Entwicklung moderner Anwendungen. APIs, Benutzerverwaltung, Authentifizierung, Dateispeicherung und Berechtigungen werden nicht selbst entwickelt, sondern von einer Plattform bereitgestellt.
Bekannte Anbieter wie Firebase, Supabase und Hasura verfolgen genau diesen Ansatz.
Directus wird in diesem Zusammenhang häufig übersehen. Dabei bringt Directus nahezu alle Funktionen einer modernen BaaS-Plattform bereits mit: automatisch generierte REST- und GraphQL-APIs, Authentifizierung, Rollenmodelle, Dateiverwaltung, Realtime-Funktionen und zusätzlich eine vollständige Admin-Oberfläche.
Besonders interessant wird Directus für Unternehmen, die bereits eine SQL-Datenbank besitzen oder ihre Daten selbst hosten möchten.
In diesem Beitrag zeigen wir, wie sich Directus als Backend-as-a-Service einsetzen lässt und wann Directus eine interessante Alternative zu Supabase, Firebase oder Hasura sein kann.
Was macht eine Backend-as-a-Service-Plattform aus?
Eine Backend-as-a-Service-Lösung stellt zentrale Backend-Funktionen bereits fertig zur Verfügung.
Entwickler konzentrieren sich auf Frontend und Geschäftslogik, während die Plattform die Infrastruktur übernimmt.
API-Layer, Auth, File-Storage und Realtime
Zu den Kernfunktionen einer modernen BaaS gehören:
API-Layer
- REST APIs
- GraphQL APIs
- SDKs
Authentication
- Login
- Registrierung
- Passwort-Reset
- Single Sign-On
Authorization
- Rollen
- Policies
- Zugriffskontrolle
File Storage
- Uploads
- Medienverwaltung
- Bildoptimierung
Realtime
- WebSockets
- Live-Updates
- Event-basierte Kommunikation
Directus deckt sämtliche dieser Bereiche standardmäßig ab.
Open Source versus Managed Service
Viele BaaS-Plattformen setzen auf proprietäre Cloud-Infrastrukturen.
Vorteile:
- Schneller Start
- Weniger Betriebsaufwand
Nachteile:
- Vendor Lock-in
- Abhängigkeit vom Anbieter
- Höhere laufende Kosten
- Eingeschränkte Datenhoheit
Directus verfolgt einen Open-Source-Ansatz.
Unternehmen können frei wählen zwischen:
- Self Hosting
- Kubernetes
- Private Cloud
- Directus Cloud
Dadurch bleibt die Kontrolle über Infrastruktur und Daten erhalten.
Vergleich: Directus, Supabase, Firebase und Hasura
| Kriterium | Directus | Supabase | Firebase | Hasura |
| Open Source | Ja | Ja | Nein | Ja |
| Datenbanktypen | PostgreSQL, MySQL, MariaDB, SQLite, MSSQL | PostgreSQL | Proprietär | PostgreSQL |
| REST API | Ja | Ja | Teilweise | Optional |
| GraphQL API | Ja | Ja | Nein | Ja |
| Admin-Oberfläche | Vollständig | Begrenzt | Begrenzt | Nein |
| Rollenmodell | Sehr granular | Gut | Gut | Gut |
| Self Hosting | Ja | Ja | Nein | Ja |
| File Storage | Ja | Ja | Ja | Extern |
| Realtime | Ja | Ja | Ja | Ja |
⇔
Directus vs. Supabase
Bei der Suche nach einer Directus Supabase Alternative lohnt sich ein genauer Blick.
Supabase verfolgt einen klaren PostgreSQL-First-Ansatz.
Directus dagegen unterstützt mehrere SQL-Datenbanken und bringt zusätzlich ein vollständiges Data Studio mit.
Wer nicht ausschließlich PostgreSQL einsetzen möchte oder eine leistungsfähige Verwaltungsoberfläche benötigt, findet in Directus häufig die flexiblere Lösung.
API-Layer in Directus
Der API-Layer gehört zu den größten Stärken von Directus.
Sobald eine Collection angelegt wird, entstehen automatisch REST- und GraphQL-Endpunkte.
Auto-generierte REST APIs
Directus erstellt automatisch REST-Endpunkte für jede Collection.
Beispiel:
GET /items/orders
Weitere Standard-Endpunkte:
POST /items/orders PATCH /items/orders/123 DELETE /items/orders/123
Dadurch lassen sich Anwendungen ohne eigene API-Entwicklung realisieren.
Auto-generierte GraphQL APIs
Parallel erzeugt Directus automatisch ein vollständiges GraphQL-Schema.
Beispiel:
query {
orders {
id
order_number
total
}
}
Änderungen am Datenmodell werden unmittelbar übernommen.
Filter-Syntax und Pagination
Die Directus REST GraphQL API unterstützt umfangreiche Filtermöglichkeiten.
Beispiel:
GET /items/orders?filter[status][_eq]=open
Zusätzlich stehen zur Verfügung:
- Pagination
- Sortierung
- Relationen
- Aggregationen
- Volltextsuche
Dadurch entsteht eine leistungsfähige API-Schicht ohne zusätzlichen Entwicklungsaufwand.
Authentication
Eine Backend-as-a-Service-Plattform benötigt flexible Authentifizierungsmechanismen.
JWT-Tokens
Standardmäßig setzt Directus auf JSON Web Tokens.
Login per REST API:
curl -X POST https://your-directus-instance.com/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "user@example.com",
"password": "secret"
}'
Die Antwort enthält ein Access Token für weitere API-Aufrufe.
Erster API-Call mit JavaScript
Nach erfolgreicher Anmeldung können Daten direkt abgefragt werden.
const response = await fetch(
"https://your-directus-instance.com/items/orders",
{
headers: {
Authorization: `Bearer ${token}`
}
}
);
const orders = await response.json();
Innerhalb weniger Minuten steht damit eine vollständige API bereit.
Refresh-Token-Flow
Directus unterstützt zusätzlich Refresh Tokens.
Vorteile:
- Höhere Sicherheit
- Kürzere Token-Laufzeiten
- Zentrale Session-Kontrolle
SSO mit OAuth2 und OpenID Connect
Unterstützte Provider:
- Microsoft Entra ID
- GitHub
- Auth0
- Keycloak
Dadurch lässt sich Directus problemlos in bestehende Unternehmenslandschaften integrieren.
Magic Links
Für Kundenportale oder externe Benutzer unterstützt Directus passwortlose Anmeldungen.
Ablauf:
- Benutzer gibt E-Mail-Adresse ein
- Magic Link wird versendet
- Anmeldung erfolgt per Klick
Authorization (RBAC)
Die eigentliche Stärke von Directus liegt in der Zugriffskontrolle. Viele BaaS-Lösungen bieten Rollenmodelle. Directus geht deutlich weiter.
Rollen und Policies
Seit Directus 11 werden Berechtigungen über Rollen und Policies gesteuert.
Rollen
Beispiele:
- Administrator
- Kunde
- Lieferant
- Support
- Vertrieb
Policies
Policies definieren die konkreten Rechte.
Dadurch lassen sich komplexe Berechtigungskonzepte flexibel kombinieren.
Feld-Level-Permissions
Nicht jeder Benutzer darf jedes Feld sehen.
Beispiel:
Lieferant
Darf sehen:
- Bestellnummer
- Status
- Liefertermin
Darf nicht sehen:
- Einkaufspreise
- Margen
- Interne Notizen
Diese Einschränkungen gelten automatisch für:
- REST APIs
- GraphQL APIs
- Data Studio
- Dashboards
Filter-basierte Permissions
Besonders leistungsfähig sind dynamische Berechtigungen.
Beispiel:
Ein Lieferant darf ausschließlich seine eigenen Bestellungen sehen.
Permission Filter:
{
"supplier_id": {
"_eq": "$CURRENT_USER.supplier_id"
}
}
Dadurch wird jede Anfrage automatisch gefiltert.
Dieses Konzept eignet sich hervorragend für:
- Kundenportale
- Händlerportale
- Lieferantenportale
- Multi-Tenant-Anwendungen
File Storage
Fast jede moderne Anwendung benötigt Dateiverwaltung.
Directus integriert diese Funktion direkt in die Plattform.
Lokaler Speicher, S3, Azure und Google Cloud
Unterstützte Speicherlösungen:
- Lokales Dateisystem
- Amazon S3
- Azure Blob Storage
- Google Cloud Storage
Ein Wechsel zwischen Speichern erfolgt rein über Konfiguration.
Bild- und Dateitransformation
Directus kann Dateien automatisch verarbeiten.
Typische Funktionen:
- Resize
- Zuschneiden
- Formatkonvertierung
- WebP-Erzeugung
- Thumbnail-Generierung
Dadurch eignet sich Directus auch als Medienplattform.
Realtime
Viele Anwendungen benötigen Live-Daten.
WebSocket-Subscriptions
Directus unterstützt Echtzeitkommunikation über WebSockets.
Mögliche Events:
- Datensatz erstellt
- Datensatz geändert
- Datensatz gelöscht
Clients erhalten Aktualisierungen unmittelbar.
Typische Anwendungsfälle
Mobile Apps
Synchronisierung zwischen mehreren Geräten
Kundenportale
Aktuelle Bestell- und Lieferinformationen
Support-Systeme
Live-Aktualisierung von Tickets
Lagerverwaltung
Bestandsänderungen in Echtzeit
Wann Directus die richtige BaaS ist
Nicht jede Anwendung benötigt Directus.
In vielen Projekten bietet die Plattform jedoch entscheidende Vorteile.
Bestehende SQL-Datenbank
Directus kann direkt auf bestehenden Datenbanken aufsetzen.
Unterstützte Systeme:
- PostgreSQL
- MySQL
- MariaDB
- SQLite
- Microsoft SQL Server
Vorhandene Anwendungen lassen sich dadurch schrittweise modernisieren.
Self-Hosting-Anforderung
Viele Unternehmen möchten sensible Daten nicht in proprietären Clouds speichern.
Directus unterstützt:
- On-Premise
- Kubernetes
- Private Cloud
- Hybrid Cloud
Wenn Auth, RBAC und Admin-UI gleichzeitig benötigt werden
Genau hier unterscheidet sich Directus von vielen anderen BaaS-Plattformen.
Directus kombiniert:
- REST APIs
- GraphQL APIs
- Authentifizierung
- RBAC
- File Storage
- Data Studio
- Dashboards
in einer einzigen Plattform.
Typische Einsatzszenarien für Directus als BaaS
Kundenportal
- Login
- Dokumente
- Bestellungen
- Tickets
Mobile App Backend
- Benutzerverwaltung
- APIs
- Dateiuploads
- Realtime
Lieferantenportal
- Rollenbasierter Zugriff
- Eigene Datensätze
- Dokumentenaustausch
Interne Tools
In Kombination mit Internen Tools mit Directus entsteht eine vollständige Low-Code-Plattform für Backoffice-Anwendungen.
Reporting und Dashboards
Zusammen mit Admin-Dashboards in Directus Insights lassen sich operative Kennzahlen direkt visualisieren.
Fazit
Directus vereint die wichtigsten Eigenschaften moderner Backend-as-a-Service-Plattformen in einer einzigen Open-Source-Lösung.
Dazu gehören:
- REST APIs
- GraphQL APIs
- JWT Authentication
- RBAC
- File Storage
- Realtime
- Data Studio
Besonders interessant ist Directus für Unternehmen, die bereits SQL-Datenbanken einsetzen und gleichzeitig eine leistungsfähige Verwaltungsoberfläche benötigen.
Wer heute nach einer Directus Supabase Alternative sucht oder eine flexible Open-Source-BaaS evaluieren möchte, sollte Directus unbedingt in die engere Auswahl aufnehmen.
Im nächsten Beitrag vergleichen wir beide Ansätze im Detail: Welche API sollte man nutzen – REST oder GraphQL?
FAQ
Ist Directus eine Supabase-Alternative?
Ja. Directus bietet ähnliche BaaS-Funktionen wie Supabase, unterstützt jedoch mehrere SQL-Datenbanken und enthält zusätzlich ein vollständiges Data Studio.
Welche Auth-Mechanismen unterstützt Directus?
Directus unterstützt JWT, Refresh Tokens, OAuth2, OpenID Connect, SSO und Magic Links.
Wie funktioniert RBAC in Directus?
Directus kombiniert Rollen, Policies, Feldrechte und Filterregeln. Dadurch lassen sich Berechtigungen bis auf Datensatz- und Feldebene definieren.
Kann Directus als BaaS für Mobile-Apps dienen?
Ja. Die automatisch generierten REST- und GraphQL-APIs sowie WebSocket-Subscriptions machen Directus zu einer leistungsfähigen Backend-Plattform für mobile Anwendungen.
Unterstützt Directus sowohl REST als auch GraphQL?
Ja. Directus generiert automatisch REST- und GraphQL-Endpunkte auf Basis des Datenmodells.
Kann ich eine bestehende Datenbank mit Directus nutzen?
Ja. Directus kann direkt auf vorhandenen PostgreSQL-, MySQL-, MariaDB-, SQLite- oder Microsoft-SQL-Server-Datenbanken aufsetzen.