boogiepop-cli
v1.2.4
Published
CLI para gestionar proyectos Boogiepop y actualizar desde templates
Downloads
718
Maintainers
Readme
boogiepop-cli
CLI para gestionar versiones y updates de seeds Boogiepop en proyectos downstream. Funciona con los tres seeds de la plataforma: React (Vite), Next.js y Streamlit.
Instalación
React (Vite) / Next.js
npm install -g boogiepop-cliStreamlit (o sin Node.js)
Descargar el binario standalone desde GitHub Releases:
| Sistema | Archivo |
|---------|---------|
| Windows | boogiepop-win.exe |
| Linux | boogiepop-linux |
| macOS | boogiepop-macos |
Setup por seed
Una vez instalado, configurar el template de origen en el proyecto:
React (Vite):
boogiepop config -u https://github.com/blanck1945/boogiepop-react-seedNext.js:
boogiepop config -u https://github.com/blanck1945/boogiepop-next-seedStreamlit:
boogiepop config -u https://github.com/blanck1945/boogiepop-streamlit-seedEsto crea boogiepop.json en la raíz del proyecto con la versión actual y el remote del template.
Comandos
| Comando | Descripción |
|---------|-------------|
| boogiepop config -u <url> | Configura el template seed del proyecto (crea boogiepop.json) |
| boogiepop version | Muestra la versión del seed que tiene el proyecto actual |
| boogiepop versions | Lista todas las versiones disponibles en el template con descripción y badges |
| boogiepop update | Selector interactivo de versión + detecta conflictos + aplica el update |
| boogiepop abort | Aborta un update en progreso (merge activo o squash staged) |
| boogiepop docs | Sirve la documentación local en un servidor HTTP |
| boogiepop bootstrap config | Configura URL + API key del Bootstrap MS (solo boogiepop new) |
| boogiepop platform config | Credenciales admin contra la API desplegada (register / publish / hide) |
| boogiepop new | Wizard GitHub (Bootstrap MS) + register-app al final (hubVisible=false) |
| boogiepop register-app [name] | Registra app en https://boogiepop.cloud (pública, hubVisible=false) |
| boogiepop publish [name] | Muestra la app en el hub (hubVisible=true) |
| boogiepop hide [name] | Oculta la app del hub (hubVisible=false) |
Documentación
| Doc | Contenido |
|-----|-----------|
| docs/CLI-BOOTSTRAP-INFRA.md | Arquitectura, pasos del MS, Terraform, costos, troubleshooting |
| docs/bootstrap-new.md | Setup rápido del Bootstrap MS |
| docs/APP-STORAGE.md | S3 por app vía API central (upload / list / download) |
| docs/README.md | Índice de documentación |
| AGENTS.md | Guía para agentes de IA (flujo new, publish, reglas) |
Diagrama de uso
flowchart TD
subgraph SEEDS ["Templates disponibles"]
S1["boogiepop-react-seed\nVite + React + Module Federation"]
S2["boogiepop-next-seed\nNext.js 15 App Router"]
S3["boogiepop-streamlit-seed\nPython + Streamlit"]
end
subgraph INSTALL ["Instalación (una sola vez)"]
I1["npm install -g boogiepop-cli\n(React / Next.js)"]
I2["Descargar binario standalone\n(Streamlit / sin Node.js)"]
end
subgraph SETUP ["Setup del proyecto (una sola vez)"]
C["boogiepop config -u url\ncrea boogiepop.json\nregistra version + remote"]
end
S1 & S2 --> I1
S3 --> I2
I1 & I2 --> C
C --> CHECK
subgraph DAILY ["Uso cotidiano"]
CHECK["boogiepop version\n¿en qué versión estoy?"]
LIST["boogiepop versions\n¿qué versiones hay?"]
CHECK --> COMP{¿hay updates\ndisponibles?}
LIST --> COMP
COMP -->|No — ya en latest| DONE([Nada que hacer ✅])
COMP -->|Sí| UPD["boogiepop update\nselector interactivo"]
UPD --> CONF{¿archivos locales\nse solapan con el update?}
CONF -->|Sin conflictos| APPLY["Aplica el update\narchivos propios preservados"]
CONF -->|Conflictos detectados| WARN["⚠ Avisa al usuario\npide confirmación"]
WARN -->|Cancela| DONE
WARN -->|Confirma| APPLY
APPLY --> MERGE{¿merge limpio?}
MERGE -->|Sí| COMMIT["✅ git commit\npara finalizar"]
MERGE -->|Conflictos git| RESOLVE["Resolver conflictos\nmanualmente"]
RESOLVE --> ABORT{¿abortar?}
ABORT -->|Sí| BACK["boogiepop abort\nvuelve al último commit"]
ABORT -->|No| COMMIT
endboogiepop.json
Archivo de configuración creado por boogiepop config. Vive en la raíz del proyecto.
{
"version": "1.0.1",
"template": {
"url": "https://github.com/blanck1945/boogiepop-react-seed",
"remote": "template-origin",
"branch": "main"
}
}| Campo | Descripción |
|-------|-------------|
| version | Versión del seed que tiene el proyecto actualmente |
| template.url | URL del seed template de origen |
| template.remote | Nombre del git remote del template (default: template-origin) |
seed-manifest.json
Archivo en el repo del seed template que define overrides sobre las versiones tagueadas. Las versiones se obtienen automáticamente de los git tags del template — el manifest solo es necesario para marcar versiones como mandatory o security.
{
"overrides": {
"1.0.0": {
"mandatory": true,
"severity": "security",
"description": "Critical CORS fix",
"link": "https://github.com/..."
}
}
}| Campo | Descripción |
|-------|-------------|
| overrides | Map de version → metadata. Solo se agrega para versiones especiales |
| mandatory | Si true, el CLI muestra badge ⚠ mandatory |
| severity | "security" muestra badge 🔴 security |
| description | Sobreescribe el mensaje del tag anotado |
| link | Link opcional a documentación o release notes |
Si una versión no tiene override, se muestra como optional con el mensaje del git tag anotado como descripción.
Distribución
npm (automático en cada tag v*)
Al pushear un tag v* (ej. v1.1.0), GitHub Actions publica en npm y sube los binarios a la release.
Requisito único (una vez por repo): secreto NPM_TOKEN en GitHub → Settings → Secrets → Actions.
Usá el mismo token de npmjs.com con permiso Publish que ya usaste para boogiepop-ui / boogiepop-auth-sdk (cuenta virtualsnake9).
npm install -g boogiepop-cli
boogiepop --versionRe-publicar un tag existente (si falló npm por falta de token):
# Opción A: re-disparar manualmente en GitHub → Actions → Release → Run workflow
# Opción B: mover el tag
git tag -d v1.1.0 && git push origin :refs/tags/v1.1.0
git tag v1.1.0 && git push origin v1.1.0Binarios standalone (.exe / linux / macos)
npm run build:bin # local (requiere Node 22+)
# Release automática al pushear tag:
git tag v1.1.0
git push origin v1.1.0
# → boogiepop-win.exe, boogiepop-linux, boogiepop-macos en GitHub Releases