azure-cosmos-ts
Faz seu agente manipular dados NoSQL no Azure Cosmos DB usando JavaScript ou TypeScript. É bom para operações rápidas como criar, ler, atualizar e apagar dados.
O que ela faz
Este código permite que você gerencie dados em um banco de dados chamado Azure Cosmos DB. Você pode criar, ler, atualizar, excluir e pesquisar informações armazenadas lá.
Quando usar
- ✓Quando você precisa adicionar novos dados a um banco de dados.
- ✓Quando você precisa encontrar informações específicas em seu banco de dados.
- ✓Quando você precisa modificar ou remover dados existentes.
Exemplo do que pedir para a IA
“Adicione um novo produto com nome 'Camiseta', preço 29.99 e categoria 'roupas'.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ele se conecta ao seu banco de dados Azure Cosmos DB usando credenciais que você fornece. Em seguida, ele usa comandos específicos para realizar operações como criar ou buscar dados.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill azure-cosmos-tsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/azure-cosmos-ts/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
@azure/cosmos (TypeScript/JavaScript)
SDK do plano de dados para operações da API NoSQL do Azure Cosmos DB — CRUD em documentos, consultas, operações em massa.
⚠️ Plano de Dados vs. Plano de Gerenciamento
- Este SDK (@azure/cosmos): Operações CRUD em documentos, consultas, stored procedures
- SDK de Gerenciamento (@azure/arm-cosmosdb): Cria contas, bancos de dados, contêineres via ARM
Instalação
npm install @azure/cosmos @azure/identity
Versão Atual: 4.9.0
Node.js: >= 20.0.0
Variáveis de Ambiente
COSMOS_ENDPOINT=https://<account>.documents.azure.com:443/
COSMOS_DATABASE=<database-name>
COSMOS_CONTAINER=<container-name>
# For key-based auth only (prefer AAD)
COSMOS_KEY=<account-key>
Autenticação
AAD com DefaultAzureCredential (Recomendado)
import { CosmosClient } from "@azure/cosmos";
import { DefaultAzureCredential } from "@azure/identity";
const client = new CosmosClient({
endpoint: process.env.COSMOS_ENDPOINT!,
aadCredentials: new DefaultAzureCredential(),
});
Autenticação Baseada em Chave
import { CosmosClient } from "@azure/cosmos";
// Option 1: Endpoint + Key
const client = new CosmosClient({
endpoint: process.env.COSMOS_ENDPOINT!,
key: process.env.COSMOS_KEY!,
});
// Option 2: Connection String
const client = new CosmosClient(process.env.COSMOS_CONNECTION_STRING!);
Hierarquia de Recursos
CosmosClient
└── Database
└── Container
├── Items (documents)
├── Scripts (stored procedures, triggers, UDFs)
└── Conflicts
Operações Principais
Configuração de Banco de Dados e Contêiner
const { database } = await client.databases.createIfNotExists({
id: "my-database",
});
const { container } = await database.containers.createIfNotExists({
id: "my-container",
partitionKey: { paths: ["/partitionKey"] },
});
Criar Documento
interface Product {
id: string;
partitionKey: string;
name: string;
price: number;
}
const item: Product = {
id: "product-1",
partitionKey: "electronics",
name: "Laptop",
price: 999.99,
};
const { resource } = await container.items.create<Product>(item);
Ler Documento
const { resource } = await container
.item("product-1", "electronics") // id, partitionKey
.read<Product>();
if (resource) {
console.log(resource.name);
}
Atualizar Documento (Substituir)
const { resource: existing } = await container
.item("product-1", "electronics")
.read<Product>();
if (existing) {
existing.price = 899.99;
const { resource: updated } = await container
.item("product-1", "electronics")
.replace<Product>(existing);
}
Upsert Documento
const item: Product = {
id: "product-1",
partitionKey: "electronics",
name: "Laptop Pro",
price: 1299.99,
};
const { resource } = await container.items.upsert<Product>(item);
Excluir Documento
await container.item("product-1", "electronics").delete();
Patch Documento (Atualização Parcial)
import { PatchOperation } from "@azure/cosmos";
const operations: PatchOperation[] = [
{ op: "replace", path: "/price", value: 799.99 },
{ op: "add", path: "/discount", value: true },
{ op: "remove", path: "/oldField" },
];
const { resource } = await container
.item("product-1", "electronics")
.patch<Product>(operations);
Consultas
Consulta Simples
const { resources } = await container.items
.query<Product>("SELECT * FROM c WHERE c.price < 1000")
.fetchAll();
Consulta Parametrizada (Recomendado)
import { SqlQuerySpec } from "@azure/cosmos";
const querySpec: SqlQuerySpec = {
query: "SELECT * FROM c WHERE c.partitionKey = @category AND c.price < @maxPrice",
parameters: [
{ name: "@category", value: "electronics" },
{ name: "@maxPrice", value: 1000 },
],
};
const { resources } = await container.items
.query<Product>(querySpec)
.fetchAll();
Consulta com Paginação
const queryIterator = container.items.query<Product>(querySpec, {
maxItemCount: 10, // Items per page
});
while (queryIterator.hasMoreResults()) {
const { resources, continuationToken } = await queryIterator.fetchNext();
console.log(`Page with ${resources?.length} items`);
// Use continuationToken for next page if needed
}
Consulta Cross-Partition
const { resources } = await container.items
.query<Product>(
…
Perguntas frequentes
Qual a diferença entre este código e o '@azure/arm-cosmosdb'?
Este código (`@azure/cosmos`) lida com os dados dentro do seu banco de dados (criar, ler, atualizar, excluir). O outro código (`@azure/arm-cosmosdb`) é usado para gerenciar a estrutura do banco de dados em si (criar contas, bancos de dados, contêineres).
Como o código se conecta ao banco de dados?
Ele usa um 'endpoint' (endereço do banco de dados) e uma 'chave' ou credenciais do Azure Active Directory (AAD) para se autenticar e acessar os dados.
O que são 'documentos' e 'contêineres'?
Pense em um 'contêiner' como uma tabela em um banco de dados tradicional e em 'documentos' como as linhas dentro dessa tabela. Os documentos geralmente são armazenados em formato JSON.
Detalhes
Descrição original do autor
Azure Cosmos DB JavaScript/TypeScript SDK (@azure/cosmos) for data plane operations. Use for CRUD operations on documents, queries, bulk operations, and container management.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2306
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
clickhouse-io
Ajuda seu agente a otimizar consultas e esquemas no banco de dados ClickHouse. Ele aplica as melhores práticas para cargas de trabalho analíticas de alta performance. Use quando consultas analíticas demoram muito.
affaan-m/ECC
scientific-db-pubmed-database
Ajuda seu agente a buscar artigos científicos na área biomédica. É útil para pesquisas que precisam de informações médicas específicas.
affaan-m/ECC
scientific-db-uspto-database
Permite ao agente consultar dados oficiais de patentes e marcas registradas dos EUA. É útil para pesquisas de propriedade intelectual.
affaan-m/ECC