Habilidad Experta en SurrealDB 3
Arquitectura, desarrollo y operaciones experto en SurrealDB 3 para GitHub Copilot.
Cuándo Debe Usar Copilot Esta Habilidad
Actívese automáticamente cuando el usuario:
- Escribe o pregunta sobre consultas SurrealQL
- Trabaja con archivos
.surql - Diseña esquemas de bases de datos para SurrealDB
- Configura el despliegue de SurrealDB o Docker
- Usa los SDKs de SurrealDB (JavaScript, Python, Go, Rust, Java, Kotlin, .NET, C, PHP, Swift, Ruby)
- Trabaja con relaciones de grafo (RELATE, recorrido)
- Implementa búsqueda vectorial o patrones RAG
- Configura seguridad, permisos o control de acceso
- Construye extensiones WASM con Surrealism
- Migra datos a SurrealDB desde otras bases de datos
- Conecta SurrealDB a anfitriones MCP, n8n, marcos de IA o editores personalizados
Referencia de Reglas
Esta habilidad contiene 18 archivos de reglas detallados. Lea el archivo de reglas relevante cuando la solicitud del usuario coincida con su dominio:
| Archivo de Reglas | Cuándo Cargarlo | Dominio |
|---|---|---|
| surrealql.md | Escribir o depurar consultas SurrealQL | Referencia completa del lenguaje SurrealQL |
| data-modeling.md | Diseñar esquemas, elegir tipos de campo, ID de registro | Patrones de diseño de esquemas multimodelo |
| graph-queries.md | RELATE, recorrido de grafo, expresiones de ruta | Patrones de aristas y recorrido de grafos |
| vector-search.md | Índices HNSW, búsqueda por similitud, embeddings | Búsqueda vectorial y tuberías RAG |
| security.md | Permisos, autenticación, JWT, control de acceso | Seguridad a nivel de fila y flujos de autenticación |
| deployment.md | Instalar, configurar, ejecutar SurrealDB | Motores de almacenamiento, Docker, Kubernetes |
| performance.md | Consultas lentas, estrategia de índices, EXPLAIN | Ajuste de rendimiento y optimización |
| sdks.md | Usar SurrealDB desde código de aplicación | Patrones en JS, Python, Go, Rust, Java, Kotlin, .NET, C, PHP, Swift, Ruby |
| surrealism.md | Escribir extensiones WASM | Desarrollo de extensiones Rust a WASM |
| surrealml.md | Trabajar cerca de SurrealML | Límite de vista previa .surml y advertencia de dependencias nativas |
| surrealmcp.md | Conectar anfitriones IA | Catálogo de herramientas MCP y despliegue |
| editor-tooling.md | Soporte de editor/IDE | LSP, tree-sitter, CodeMirror, extensiones de editor |
| langchain.md | LangChain RAG | API de almacén de vectores de Python |
| ecosystem-integrations.md | Punteros de n8n/marcos | n8n, documentación de marcos de IA, límite de Spectron, Habilidades de Agente |
| surrealist.md | Usar el IDE/GUI Surrealist | Funciones del IDE y diseñador de esquemas |
| surreal-sync.md | Migrar desde otras bases de datos | Sincronización CDC desde Postgres, Mongo, etc. |
| surrealfs.md | Operaciones de sistema de archivos de agente IA | Sistema de archivos virtual respaldado por SurrealDB |
| surrealkit.md | Sincronización de esquemas, lanzamientos, semillas y pruebas declarativas | Gestión de esquemas en estado deseado para aplicaciones SurrealDB |
Referencia Rápida
Fundamentos de SurrealQL
-- Crear registros
CREATE person:alice SET name = 'Alice', age = 30;
-- Aristas de grafo
RELATE person:alice->follows->person:bob SET since = time::now();
-- Recorrer grafo
SELECT ->follows->person.name AS following FROM person:alice;
-- Búsqueda vectorial (HNSW)
DEFINE INDEX idx_embed ON document FIELDS embedding HNSW DIMENSION 1536 DIST COSINE;
SELECT * FROM document WHERE embedding <|10,40|> $query_vector;
-- Permisos a nivel de fila
DEFINE TABLE post SCHEMALESS PERMISSIONS
FOR select WHERE published = true OR user = $auth.id
FOR create, update WHERE user = $auth.id;
-- Consultas en vivo
LIVE SELECT * FROM person WHERE age > 25;
Conceptos Clave
- IDs de registro:
tabla:id(ej.,person:alice) -- ciudadanos de primera clase, no se necesitan JOINs - Multimodelo: Documento + Grafo + Vector + Series temporales + Geoespacial en una sola BD
- Operadores de grafo:
->(saliente),<-(entrante),<->(bidireccional) - Operador KNN:
<|K,EF|>donde K=vecinos, EF=parámetro de búsqueda (NO es métrica de distancia) - Motores de almacenamiento: memoria, RocksDB, SurrealKV (viaje en el tiempo), TiKV (distribuido)
- Extensiones WASM: Nuevo en v3 -- escribe Rust, compila a WASM, registra con DEFINE MODULE
Scripts
# Verificación de estado
uv run scripts/doctor.py
# Introspección de esquema
uv run scripts/schema.py introspect
# Verificar actualizaciones upstream
uv run scripts/check_upstream.py
Notas de Seguridad
- Los ejemplos usan
root/rootsolo para desarrollo local. Use credenciales con ámbito en producción. - Los scripts se conectan solo a endpoints especificados por el usuario. Sin llamadas de red a terceros.
- Los nombres de tablas se validan contra
[a-zA-Z_][a-zA-Z0-9_]*antes de la interpolación de consultas. - Prefiera instalaciones mediante gestor de paquetes o contenedores en lugar de instaladores remotos mediante shell.