
alexvarrese/dataverse-inventory-kit
Developer toolsSkill + pacote Python (dvinv) para fazer o inventário read-only de ambientes Microsoft Dataverse / Dynamics 365 / Power Platform e publicar o resultado como um vault Obsidian.
Обзор
Skill + pacote Python (dvinv) para fazer o e publicar o resultado como um . O vault traz uma nota por componente, Bases, um Canvas do ambiente, achados automáticos e comparação entre ambientes. Segue a especificação Agent Skills e funciona com Hermes, Claude Code, Codex, GitHub Copilot, Cursor e qualquer agente compatível. Para agentes sem suporte a skills, há um prompt equivalente. - do ambiente (todas as soluções, inclusive as gerenciadas), com tipo e nome, em Componentes.csv — sem virar dezenas de milhares de notas. - : Dependências.csv e Componentes.csv (chave e GUID do Dataverse) respondem "o que é impactado se eu mudar X?" com um grep ou com dvinv onde-usa|impacto|depende|buscar --vault , em poucas linhas e com o caminho da nota — sem ler o vault inteiro e sem binário. AGENT-INDEX.md e o bloco no AGENTS.md orientam Claude Code, Copilot e Hermes. - : provedor de dados, fonte e classes de plugin por operação.
README
Dataverse Inventory Kit
Skill + pacote Python (dvinv) para fazer o inventário read-only de ambientes Microsoft Dataverse /
Dynamics 365 / Power Platform e publicar o resultado como um vault Obsidian. O vault traz uma
nota por componente, Bases, um Canvas do ambiente, achados automáticos e comparação entre ambientes.
Segue a especificação Agent Skills e funciona com Hermes, Claude Code, Codex, GitHub Copilot, Cursor e qualquer agente compatível. Para agentes sem suporte a skills, há um prompt equivalente.
O que você recebe
- Catálogo de 100% dos componentes do ambiente (todas as soluções, inclusive as gerenciadas), com
tipo e nome, em
Componentes.csv— sem virar dezenas de milhares de notas. - Vault publicável em repositório, consultável por qualquer agente:
Dependências.csveComponentes.csv(chave e GUID do Dataverse) respondem “o que é impactado se eu mudar X?” com um grep ou comdvinv onde-usa|impacto|depende|buscar --vault, em poucas linhas e com o caminho da nota — sem ler o vault inteiro e sem binário.AGENT-INDEX.mde o bloco noAGENTS.mdorientam Claude Code, Copilot e Hermes. - Tabelas virtuais: provedor de dados, fonte e classes de plugin por operação.
- Navegação e grafo por tipo:
Mapas/com um hub e um canvas por tipo (Cloud Flows, Workflows, Business Rules, Tabelas…) e cores por tipo no Graph view do Obsidian. - Site maps e SLAs: navegação de cada app (área → grupo → subárea → destino) e SLAs com itens, KPIs e as colunas usadas nas condições — entram na análise de impacto.
- Uma nota por componente do escopo: tabelas, colunas, formulários, views, web resources, plugins, Custom APIs, workflows, business rules, BPFs, cloud flows, apps, agentes Copilot Studio, papéis, soluções, variáveis de ambiente e conexões, com properties para Obsidian Bases.
- Matriz de dependências entre componentes: quem depende de cada tabela (formulários, JS, plugins,
processos, flows, Custom APIs, apps, papéis, tabelas filhas), seção Depende de / Usado por em cada
nota e
Dependências.csv(abre no Excel) para entregar ao cliente. Opcionalmente inclui as dependências registradas pelo próprio Dataverse e as que faltam em cada solução. - Uso de campos: preenchimento real × onde cada coluna é usada, com candidatos a investigação de remoção (só com contagem completa e todas as fontes medidas; o resto fica como inconclusivo).
- Estrutura de segurança e PCF: nota por business unit, equipe (com papéis) e componente PCF
(manifesto, domínios externos, formulários e colunas onde é usado); lista nominal de usuários opcional
(extra
usuarios). - Achados automáticos (segredos expostos, JS quebrado ou obsoleto, plugins sem filtro, automações de dono desativado, drift entre ambiente e repositório Git, soluções com dependências faltando…).
- Comparação entre ambientes (TEST × PRD) ou entre datas.
Guia de uso (comandos, extração por partes, opções de desempenho, consultas): skills/dataverse-inventory/README.md.
Instalação rápida
# 1. esta skill
npx skills add alexvarrese/dataverse-inventory-kit --skill dataverse-inventory -g
# 2. dependências recomendadas
npx skills add microsoft/Dataverse-skills -s "*" -g # conexão, MCP, validação (dv-*)
npx skills add kepano/obsidian-skills -g --skill obsidian-markdown --skill obsidian-bases --skill json-canvas --skill obsidian-cli
# 3. Python
pip install -r /scripts/requirements.txt
Claude Code via marketplace: /plugin marketplace add alexvarrese/dataverse-inventory-kit e depois
/plugin install dataverse-inventory@dataverse-inventory-kit.
Passo a passo completo, incluindo Service Principal e MCP (os dois ficam ativos):
skills/dataverse-inventory/INSTALL.md.
Uso
Com o agente, na pasta do cliente: “Conecte no Dataverse https://.crm.dynamics.com e faça o
inventário do ambiente no Obsidian”.
Direto pela CLI:
cp /scripts/inventory.example.yaml inventory.yaml # url, prefixos, saída
python3 /scripts/dvinv.py check -c inventory.yaml
python3 /scripts/dvinv.py all -c inventory.yaml
Documentação: README da skill · INSTALL · SKILL.md · PROMPT · coletores · esquema do vault · achados
Dependências
| Componente | Origem | Obrigatório? |
|---|---|---|
Python 3.10+ e scripts/requirements.txt |
PyPI | sim |
Dataverse Skills (dv-connect, dv-security, dv-metadata, dv-query, dv-solution) |
microsoft/Dataverse-skills | recomendado (conexão/MCP/validação) |
Obsidian Skills (obsidian-markdown, obsidian-bases, json-canvas, obsidian-cli) |
kepano/obsidian-skills | recomendado (camada de análise) |
Node.js 18+ e Dataverse CLI (@microsoft/dataverse) |
npm | só para o caminho MCP |
| Obsidian 1.9+ (Bases e Canvas) | obsidian.md | para abrir o vault |
Licença
MIT.
Segurança
- Só leitura: o cliente HTTP implementa apenas GET.
- Credenciais ficam no
.envda pasta de cada cliente e nunca entram no pacote nem no vault. - Segredos encontrados no ambiente são redigidos antes de qualquer gravação (query string, headers de autenticação, credencial em URL, atribuições JS/JSON/YAML, connection strings, SAS, JWT), inclusive em mensagens de erro, e uma varredura final bloqueia a publicação se algo escapar.
- Cada extração é um snapshot imutável (
_raw//com manifesto e sha256); coletor que falha vira lacuna, nunca dado de uma extração anterior. - Perfil
metadata_only(--profile metadata_only) para ambientes onde só metadados podem ser lidos. - O kit não contém dados de nenhum cliente. O teste usa uma organização fictícia (Contoso).
Validar a instalação
python3 /tests/test_pipeline.py
# OK — 61 notas, 6 bases, 33 achados, …
python3 /tests/test_regressao_p0.py # regressões de segurança/confiabilidade
Рекомендуемые инструменты
Попробуйте другой запрос или уберите фильтр.
Установка
npx skillfish add alexvarrese/dataverse-inventory-kit