AD

alexvarrese/dataverse-inventory-kit

Developer tools
1 stars 品質 66 トレンド 25MIT

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.

概要

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.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.
  • 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 .env da 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
View this README on GitHub

推奨ツール

別のキーワードを試すか、フィルタを外してください。

インストール

npx skillfish add alexvarrese/dataverse-inventory-kit