Habilidade Especialista em SurrealDB 3
Arquitetura, desenvolvimento e operações de nível especialista para SurrealDB 3 no GitHub Copilot.
Quando o Copilot Deve Usar Esta Habilidade
Ative automaticamente quando o usuário:
- Escreve ou pergunta sobre consultas SurrealQL
- Trabalha com arquivos
.surql - Projeta esquemas de banco de dados para SurrealDB
- Configura implantação ou Docker do SurrealDB
- Usa SDKs do SurrealDB (JavaScript, Python, Go, Rust, Java, Kotlin, .NET, C, PHP, Swift, Ruby)
- Trabalha com relacionamentos de grafo (RELATE, travessia)
- Implementa busca vetorial ou padrões RAG
- Configura segurança, permissões ou controle de acesso
- Constrói extensões WASM Surrealism
- Migra dados para SurrealDB a partir de outros bancos de dados
- Conecta SurrealDB a hosts MCP, n8n, frameworks de IA ou editores personalizados
Referência de Regras
Esta habilidade contém 18 arquivos de regras detalhados. Leia o arquivo de regras relevante quando a solicitação do usuário corresponder ao seu domínio:
| Arquivo de Regra | Quando Carregar | Domínio |
|---|---|---|
| surrealql.md | Escrevendo ou depurando consultas SurrealQL | Referência completa da linguagem SurrealQL |
| data-modeling.md | Projetando esquemas, escolhendo tipos de campo, IDs de registro | Padrões de design de esquemas multimodelo |
| graph-queries.md | RELATE, travessia de grafo, expressões de caminho | Padrões de arestas e travessia de grafo |
| vector-search.md | Índices HNSW, busca por similaridade, embeddings | Busca vetorial e pipelines RAG |
| security.md | Permissões, autenticação, JWT, controle de acesso | Segurança em nível de linha e fluxos de autenticação |
| deployment.md | Instalando, configurando, executando SurrealDB | Mecanismos de armazenamento, Docker, Kubernetes |
| performance.md | Consultas lentas, estratégia de índices, EXPLAIN | Ajuste de desempenho e otimização |
| sdks.md | Usando SurrealDB a partir de código de aplicação | Padrões JS, Python, Go, Rust, Java, Kotlin, .NET, C, PHP, Swift, Ruby |
| surrealism.md | Escrevendo extensões WASM | Desenvolvimento de extensões Rust para WASM |
| surrealml.md | Trabalhando próximo ao SurrealML | Limite do .surml de pré-visualização e aviso de dependência nativa |
| surrealmcp.md | Conectando hosts de IA | Catálogo de ferramentas MCP e implantação |
| editor-tooling.md | Suporte a editores / IDE | LSP, tree-sitter, CodeMirror, extensões de editor |
| langchain.md | RAG com LangChain | API de armazenamento vetorial em Python |
| ecosystem-integrations.md | Ponteiros para n8n / frameworks | n8n, documentação de frameworks de IA, limite do Spectron, Habilidades de Agente |
| surrealist.md | Usando a IDE/GUI Surrealist | Recursos da IDE e designer de esquemas |
| surreal-sync.md | Migrando de outros bancos de dados | Sincronização CDC a partir de Postgres, Mongo, etc. |
| surrealfs.md | Operações de sistema de arquivos de agente de IA | Sistema de arquivos virtual apoiado por SurrealDB |
| surrealkit.md | Sincronização de esquemas, rollouts, seeds e testes declarativos | Gerenciamento de esquemas no estado desejado para aplicações SurrealDB |
Referência Rápida
Essenciais do SurrealQL
-- Criar registros
CREATE person:alice SET name = 'Alice', age = 30;
-- Arestas de grafo
RELATE person:alice->follows->person:bob SET since = time::now();
-- Travessia de grafo
SELECT ->follows->person.name AS following FROM person:alice;
-- Busca vetorial (HNSW)
DEFINE INDEX idx_embed ON document FIELDS embedding HNSW DIMENSION 1536 DIST COSINE;
SELECT * FROM document WHERE embedding <|10,40|> $query_vector;
-- Permissões em nível de linha
DEFINE TABLE post SCHEMALESS PERMISSIONS
FOR select WHERE published = true OR user = $auth.id
FOR create, update WHERE user = $auth.id;
-- Consultas ao vivo
LIVE SELECT * FROM person WHERE age > 25;
Conceitos-chave
- IDs de registro:
tabela:id(ex.:person:alice) -- cidadãos de primeira classe, sem necessidade de JOINs - Multimodelo: Documento + Grafo + Vetor + Série temporal + Geoespacial em um único banco de dados
- Operadores de grafo:
->(saída),<-(entrada),<->(bidirecional) - Operador KNN:
<|K,EF|>onde K = vizinhos, EF = parâmetro de busca (NÃO métrica de distância) - Mecanismos de armazenamento: memória, RocksDB, SurrealKV (viagem no tempo), TiKV (distribuído)
- Extensões WASM: Novo no v3 -- escreva Rust, compile para WASM, registre com DEFINE MODULE
Scripts
# Verificação de integridade
uv run scripts/doctor.py
# Introspecção de esquemas
uv run scripts/schema.py introspect
# Verificar atualizações upstream
uv run scripts/check_upstream.py
Notas de Segurança
- Exemplos usam
root/rootapenas para desenvolvimento local. Use credenciais com escopo em produção. - Scripts se conectam apenas a endpoints especificados pelo usuário. Sem chamadas de rede a terceiros.
- Nomes de tabelas são validados contra
[a-zA-Z_][a-zA-Z0-9_]*antes da interpolação de consultas. - Prefira instalações via gerenciador de pacotes ou contêiner em vez de instaladores remotos via shell.