iGRPIGRP 3.0Documentation

Bundles

Instalar, atualizar e remover bundles — pacotes declarativos que juntam dependências npm, páginas, metadata do Studio e templates num projeto iGRP.

Um bundle é um pacote declarativo que se aplica a um projeto aberto: dependências npm, ficheiros copiados (páginas, layouts), metadata do Studio (.igrpstudio/…), skills e migrações. O mesmo catálogo aparece no separador Bundles do projeto no Studio IDE; o comando igrp bundle (alias b) faz o mesmo no terminal ou em CI.

Exemplos do catálogo atual:

BundleTipoO que faz
process-management-uiplatform-uiPáginas de runtime dos processos BPMN e pacotes @igrp/platform-process-management-* — ver Formulários BPMN
form-crud-templateform-templateFormulário CRUD (id, nome, descrição, ativo) num módulo, parametrizado por nome, rótulo e recurso
template-migratormigration-packAplica as migrações pendentes do template Next.js

Versão

igrp bundle existe na @igrp/cli 1.7.6 e a partir da 1.7.8 (a 1.7.7 não o inclui). Atualiza com npm i -g @igrp/cli@latest --registry=https://sonatype.nosi.cv/repository/npm-group/.


Subcomandos

igrp bundle search [query]   [--framework <fw>] [--kind <k>] [--json] [--force]
igrp bundle info <bundle>    [--json]
igrp bundle add <bundle>     [--project <path>] [--version <semver>] [-p key=valor …] [--dry-run] [--force] [--skip-existing]
igrp bundle list             [--project <path>] [--json]
igrp bundle upgrade <bundle> [--project <path>] [--to <semver>] [-p key=valor …] [--dry-run]
igrp bundle remove <bundle>  [--project <path>] --yes
igrp bundle doctor           [--project <path>] [--json]
igrp bundle adopt <bundle>   [--project <path>] [--version <semver>] [--force]

<bundle> é um nome do catálogo (nome ou nome@versão) ou um caminho local para a pasta de um bundle (também --from <path>).

FlagOndeEfeito
--project <path>add, list, upgrade, remove, doctor, adoptRaiz do projeto. Default: diretório atual.
-p, --param <key=valor>add, upgradeParâmetro do bundle (repetível). No upgrade, os guardados na instalação são o default.
--dry-runadd, upgrade, removeMostra o plano ([planned] …) sem escrever.
--forceaddSobrepõe uma instalação existente.
--skip-existingaddSalta ficheiros cujo destino já existe (completa instalações parciais).
--yesremoveConfirma; sem ela o remove só mostra o plano.
--to <semver>upgradeVersão alvo; default a mais recente.
--framework <fw> · --kind <k>searchFiltros (nextjs, spring, dotnet, agnostic; platform-ui, form-template, …).
--source <url>add, search, upgrade, adoptCatálogo. Default: env IGRP_BUNDLE_REGISTRY, senão https://sonatype.nosi.cv/repository/igrp-templates/@igrp/bundles/.
--json · --quietváriosSaída para scripts · só erros.

Exemplo

# O que existe no catálogo
igrp bundle search
# form-crud-template      0.1.0   form-template    nextjs   Form CRUD (Template)
# process-management-ui   0.1.0   platform-ui      nextjs   Process Management UI
# template-migrator       0.1.0   migration-pack   nextjs   Template Migrator

# Planear um form CRUD no módulo registos (sem escrever)
igrp bundle add form-crud-template --project . --dry-run \
  -p name=cliente -p label=Cliente -p module=registos -p resource=clientes
# [planned] metadata    + .igrpstudio/registos/forms/cliente.json
# [planned] igrpstudio  + .igrpstudio/features.json → form-crud-template

# Aplicar e verificar
igrp bundle add form-crud-template --project . -p name=cliente -p label=Cliente -p module=registos -p resource=clientes
igrp bundle list
igrp bundle doctor

Sem os parâmetros obrigatórios, add diz quais faltam (Faltam params obrigatórios: label, module, resource.) e termina com exit 1.


Como funciona

Cada bundle tem um bundle.json com a receita de instalação, aplicada sempre por esta ordem: npm → copy → metadata → skill → migrator → igrpstudio. Todos os destinos têm de ficar dentro do projeto (sem caminhos absolutos nem ..).

O que foi instalado fica em .igrpstudio/bundles.json (versão, parâmetros e o SHA-256 de cada ficheiro escrito). É isso que permite:

  • list — mostrar o que está instalado e por quem (CLI ou Studio IDE);
  • doctor — detetar ficheiros alterados desde a instalação (drift);
  • upgrade e remove — refazer ou desfazer a receita;
  • adopt — registar uma instalação feita à mão, sem reaplicar.

O catálogo é guardado em cache em ~/.igrp/ (bundles-index-cache.json e bundles-cache/); search --force ignora a cache.

pnpm 11

Os passos npm usam pnpm add. Com pnpm 11, dependências com scripts de build por aprovar fazem o pnpm add terminar com erro e o passo falha. Declara-as em allowBuilds no pnpm-workspace.yaml do projeto antes de instalar.


Códigos de saída

CódigoSignificado
0Sucesso (inclui dry-run).
1Validação — parâmetros em falta, bundle inexistente no catálogo, manifesto inválido.
2Catálogo indisponível, falha de download ou de um passo da receita.
How is this guide?

Última atualização: