SurrealDB 3 Experten-Skill
Expert-Level-Architektur, Entwicklung und Betrieb mit SurrealDB 3 für GitHub Copilot.
Wann Copilot diesen Skill verwenden soll
Automatisch aktivieren, wenn der Benutzer:
- SurrealQL-Abfragen schreibt oder danach fragt
- Mit
.surql-Dateien arbeitet - Datenbankschemata für SurrealDB entwirft
- SurrealDB-Deployment oder Docker konfiguriert
- SurrealDB SDKs verwendet (JavaScript, Python, Go, Rust, Java, Kotlin, .NET, C, PHP, Swift, Ruby)
- Mit Graph-Beziehungen arbeitet (RELATE, Traversierung)
- Vektorsuche oder RAG-Muster implementiert
- Sicherheit, Berechtigungen oder Zugriffskontrolle konfiguriert
- Surrealism WASM-Erweiterungen entwickelt
- Daten aus anderen Datenbanken zu SurrealDB migriert
- SurrealDB mit MCP-Hosts, n8n, KI-Frameworks oder benutzerdefinierten Editoren verbindet
Regeln-Referenz
Dieser Skill enthält 18 detaillierte Regeldateien. Lies die relevante Regeldatei, wenn die Anfrage des Benutzers zu ihrem Bereich passt:
| Regeldatei | Wann laden | Bereich |
|---|---|---|
| surrealql.md | SurrealQL-Abfragen schreiben oder debuggen | Vollständige SurrealQL-Sprachreferenz |
| data-modeling.md | Schemata entwerfen, Feldtypen wählen, Record IDs | Multi-Modell-Schema-Design-Muster |
| graph-queries.md | RELATE, Graph-Traversierung, Pfadausdrücke | Graph-Kanten- und Traversierungsmuster |
| vector-search.md | HNSW-Indizes, Ähnlichkeitssuche, Embeddings | Vektorsuche und RAG-Pipelines |
| security.md | Berechtigungen, Authentifizierung, JWT, Zugriffskontrolle | Zeilenbasierte Sicherheit und Authentifizierungsabläufe |
| deployment.md | SurrealDB installieren, konfigurieren und betreiben | Speicher-Engines, Docker, Kubernetes |
| performance.md | Langsame Abfragen, Indexstrategie, EXPLAIN | Leistungsoptimierung und -tuning |
| sdks.md | SurrealDB aus Anwendungscode nutzen | JS, Python, Go, Rust, Java, Kotlin, .NET, C, PHP, Swift, Ruby-Muster |
| surrealism.md | WASM-Erweiterungen schreiben | Rust-zu-WASM-Erweiterungsentwicklung |
| surrealml.md | In der Nähe von SurrealML arbeiten | .surml-Grenze und native Abhängigkeitswarnung (Vorschau) |
| surrealmcp.md | KI-Hosts verbinden | MCP-Toolkatalog und -Deployment |
| editor-tooling.md | Editor-/IDE-Unterstützung | LSP, tree-sitter, CodeMirror, Editor-Erweiterungen |
| langchain.md | LangChain RAG | Python-Vector-Store-API |
| ecosystem-integrations.md | n8n / Framework-Hinweise | n8n, KI-Framework-Dokumentation, Spectron-Grenze, Agenten-Skills |
| surrealist.md | Surrealist IDE/GUI nutzen | IDE-Funktionen und Schema-Designer |
| surreal-sync.md | Aus anderen Datenbanken migrieren | CDC-Synchronisation von Postgres, Mongo usw. |
| surrealfs.md | KI-Agent-Dateisystemoperationen | Virtuelles Dateisystem basierend auf SurrealDB |
| surrealkit.md | Schema-Synchronisation, Rollouts, Seeds und deklarative Tests | Zielzustands-Schemaverwaltung für SurrealDB-Apps |
Kurzreferenz
SurrealQL-Grundlagen
-- Datensätze erstellen
CREATE person:alice SET name = 'Alice', age = 30;
-- Graph-Kanten
RELATE person:alice->follows->person:bob SET since = time::now();
-- Graphen traversieren
SELECT ->follows->person.name AS following FROM person:alice;
-- Vektorsuche (HNSW)
DEFINE INDEX idx_embed ON document FIELDS embedding HNSW DIMENSION 1536 DIST COSINE;
SELECT * FROM document WHERE embedding <|10,40|> $query_vector;
-- Zeilenbasierte Berechtigungen
DEFINE TABLE post SCHEMALESS PERMISSIONS
FOR select WHERE published = true OR user = $auth.id
FOR create, update WHERE user = $auth.id;
-- Live-Abfragen
LIVE SELECT * FROM person WHERE age > 25;
Wichtige Konzepte
- Record IDs:
table:id(z. B.person:alice) – erstklassige Bürger, keine JOINs erforderlich - Multi-Modell: Dokument + Graph + Vektor + Zeitreihen + Geodaten in einer Datenbank
- Graph-Operatoren:
->(ausgehend),<-(eingehend),<->(bidirektional) - KNN-Operator:
<|K,EF|>wobei K = Nachbarn, EF = Suchparameter (KEIN Distanzmaß) - Speicher-Engines: memory, RocksDB, SurrealKV (Zeitreisen), TiKV (verteilt)
- WASM-Erweiterungen: Neu in v3 – Rust schreiben, zu WASM kompilieren, mit DEFINE MODULE registrieren
Skripte
# Gesundheitscheck
uv run scripts/doctor.py
# Schema-Introspection
uv run scripts/schema.py introspect
# Auf Upstream-Updates prüfen
uv run scripts/check_upstream.py
Sicherheitshinweise
- Beispiele verwenden
root/rootnur für die lokale Entwicklung. In der Produktion berechtigte Anmeldedaten verwenden. - Skripte verbinden sich nur mit benutzerdefinierten Endpunkten. Keine Drittanbieter-Netzwerkaufrufe.
- Tabellennamen werden vor der Abfrage-Interpolation gegen
[a-zA-Z_][a-zA-Z0-9_]*validiert. - Bevorzuge Paketmanager- oder Container-Installationen gegenüber Remote-Shell-Installern.