cartorio-plataforma-cli
v2.8.1
Published
CLI para gerenciar a Plataforma do Cartório de Criciúma com sistema de módulos
Maintainers
Readme
Cartório Plataforma CLI
CLI para gerenciar a Plataforma do Cartório de Criciúma. Permite o controle centralizado de todos os componentes da plataforma, incluindo serviços de infraestrutura, core e módulos, com sistema dinâmico de descoberta de módulos.
⚠️ IMPORTANTE: Esta CLI é específica para uso interno no Cartório de Criciúma e foi projetada exclusivamente para a estrutura da Plataforma do Cartório. Não é um produto genérico e requer a estrutura de diretórios e arquivos correspondente à arquitetura da Plataforma do Cartório.
Novidades na Versão 2.0.0
A versão 2.0.0 introduz um sistema de registro e descoberta dinâmica de módulos:
- Descoberta Automática: Detecta automaticamente módulos através de arquivos
plataforma-manifest.js - Gestão de Módulos: Novo comando
modulepara gerenciar seus módulos - Arquivos de Manifesto: Definições declarativas para módulos da plataforma
- Geração Automática de Docker Bake: Atualiza o arquivo bake.hcl a partir dos módulos registrados
Novidades na Versão 2.8.0
A versão 2.8.0 traz melhorias significativas no modo customizado de seleção de módulos:
- Modo Personalizado Aprimorado: O comando
--customagora permite selecionar módulos específicos com mais precisão - Seleção por ID e Tipo: Suporte ao formato
id:tipopara identificação clara dos módulos - Diagnóstico Aprimorado: Feedback mais detalhado quando um módulo não é encontrado, mostrando opções disponíveis
- Suporte ao Módulo Senhas: Adicionamos suporte completo para os módulos de senhas (frontend e backend)
Requisitos do Ambiente
Para utilizar esta CLI, você precisa ter:
- A estrutura de diretórios da Plataforma do Cartório de Criciúma
- Node.js >= 14.0.0
- Docker e Docker Compose
- Acesso aos repositórios da Plataforma
Instalação
npm install -g cartorio-plataforma-cliUso
Após a instalação, você pode usar o comando plataforma para gerenciar todos os aspectos da plataforma:
plataforma <comando> [opções]Comandos Disponíveis
Iniciar Componentes
plataforma start [opções]Opções:
-a, --all: Inicia todos os componentes (Infra + Core + Módulos)-i, --infra: Inicia apenas serviços de infraestrutura (Consul, PostgreSQL, Traefik)-c, --core: Inicia infraestrutura e componentes core (Root Config, Plataforma Frontend, Plataforma Backend)-f, --full: Inicia infraestrutura, core e módulos-u, --custom: Inicia componentes personalizados-m, --modules <lista>: Lista de módulos no formato id:tipo (ex: senhas:frontend,senhas:backend)-e, --env <ambiente>: Especifica o ambiente (dev, local, prod). Padrão: local-I, --interactive: Modo interativo com assistente para seleção de componentes e ambiente-n, --no-build: Não constrói as imagens, usa as existentes
Parar Componentes
plataforma stop [opções]Opções:
-e, --env <ambiente>: Especifica o ambiente (dev, local, prod). Padrão: local-i, --interactive: Modo interativo com assistente para seleção de componentes e ambiente
Status dos Componentes
plataforma status [opções]Opções:
-e, --env <ambiente>: Especifica o ambiente (dev, local, prod). Padrão: local-i, --interactive: Modo interativo com assistente para verificação detalhada de status
Gerenciar Módulos
plataforma module [opções]Opções:
--create: Criar novo módulo--list: Listar módulos existentes--update: Atualizar arquivo bake.hcl com módulos registrados--interactive: Modo interativo (padrão: true)--id <id>: ID do módulo (para --create)--name <nome>: Nome do módulo (para --create)--type <tipo>: Tipo do módulo: frontend, backend, core, infrastructure (para --create)--create-directories: Criar diretórios para o módulo (padrão: true)
Visualizar Logs
plataforma logs [opções]Opções:
-s, --service <serviço>: Exibe logs apenas do serviço especificado-e, --env <ambiente>: Especifica o ambiente (dev, local, prod). Padrão: local-f, --follow: Segue os logs em tempo real-i, --interactive: Modo interativo para seleção de serviços
Exemplos de Uso
Listar todos os módulos:
plataforma module --listCriar um novo módulo:
plataforma module --create --interactiveIniciar todos os componentes no ambiente local:
plataforma start -aIniciar em modo interativo para selecionar componentes:
plataforma start -IEscolhendo a opção "Personalizado", você poderá selecionar os módulos específicos que deseja iniciar através de uma lista organizada por tipos:
- Módulos Core (Root Config)
- Serviços de Infraestrutura (Consul, PostgreSQL, Traefik)
- Módulos Frontend
- Módulos Backend
Iniciar apenas a infraestrutura em ambiente de desenvolvimento:
plataforma start -i -e devIniciar infraestrutura e core em ambiente local:
plataforma start -cIniciar módulos específicos:
plataforma start -u -m senhas:frontend,senhas:backend💡 Dica: Ao usar o formato
id:tipono parâmetro-m, --modules, certifique-se de usar os IDs corretos dos módulos. Você pode executarplataforma module --listpara ver todos os módulos disponíveis e seus IDs.
Arquivos de Manifesto
Cada módulo deve conter um arquivo plataforma-manifest.js em seu diretório raiz, definindo suas configurações:
// Exemplo: /modulo1-frontend/plataforma-manifest.js
module.exports = {
id: "modulo1",
name: "Módulo 1",
type: "frontend",
description: "Frontend do Módulo 1",
profiles: {
dev: "modulo1-frontend-dev",
local: "modulo1-frontend-local",
prod: "modulo1-frontend-prod"
},
dependencies: ["plataforma-frontend"],
docker: {
dockerfile: {
dev: "Dockerfile.dev",
prod: "Dockerfile"
},
context: "./"
},
services: [
{
name: "frontend",
port: 8081,
healthcheck: "/"
}
]
};Estrutura de Diretórios Necessária
Esta CLI espera a seguinte estrutura de diretórios:
projeto-plataforma/
├── plataforma-infra/ # Configurações de infraestrutura
│ ├── cli/ # O CLI da plataforma
│ ├── docker-compose.bake.hcl # Arquivo de configuração Docker Buildx Bake
│ ├── .env.dev # Variáveis de ambiente para desenvolvimento
│ ├── .env.local # Variáveis de ambiente para ambiente local
│ └── .env.prod # Variáveis de ambiente para produção
├── root-config/ # Aplicação Root Config
│ ├── plataforma-manifest.js # Manifesto definindo este componente
├── plataforma-frontend/ # Frontend da Plataforma
│ ├── plataforma-manifest.js # Manifesto definindo este componente
├── plataforma-backend/ # Backend da Plataforma
│ ├── plataforma-manifest.js # Manifesto definindo este componente
├── modulo1-frontend/ # Frontend do Módulo 1
│ ├── plataforma-manifest.js # Manifesto definindo este componente
└── ... # Outros módulosSuporte
Este pacote é mantido pela equipe de desenvolvimento do Cartório de Criciúma. Para suporte ou dúvidas, entre em contato com a equipe interna.
Licença
ISC
