Buscar K
Aparência
Aparência
Um deck é um Deck: slides desenhados com textos, formas, imagens e gráficos vivos, que puxam o dado de um Widget de uma Aplicação. O arquivo fica em decks/<slug>--<id>.yaml. Decks e Apresentações pela tela estão em Apresentações; a skill lumo-decks ensina o agente a escrevê-los (veja Agentes de código).
lumo new deck --name "Vendas do trimestre"
lumo app widgets app:7302 # os pares appId e widgetGuid dos gráficosfileName^[a-z0-9-]+--\d+\.yaml$headerheader.idheader.kinddeck (fixo)header.lumov2 (fixo)header.tenantIdheader.appIdheader.dashboardIdbodybody.criado_em^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$body.criado_porbody.publicado_em^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$body.publicado_porbody.nomebody.versionbody.slidesbody.slides[].idbody.slides[].elementsbody.slides[].elements[].appIdtype: horus-widgetbody.slides[].elements[].widgetGuidtype: horus-widget · valores: não vazio# decks/vendas-trimestre--8120.yaml
# yaml-language-server: $schema=https://docs.horusbi.com.br/schemas/v2/deck.schema.json
id: 8120
kind: deck
lumo: v2
tenantId: 1200
---
nome: Vendas do trimestre
slides:
- id: s1
elements:
- type: text
id: t1
left: 40
top: 30
width: 920
height: 60
rotate: 0
content: "<p>Vendas do trimestre</p>"
- type: horus-widget # gráfico vivo: aponta para um Widget de uma Aplicação
id: w1
left: 40
top: 110
width: 600
height: 400
rotate: 0
appId: 7302 # obrigatório
widgetGuid: "3f2a9c1e-5b7d-4e8a-9c0f-1d2e3f4a5b6c" # obrigatório (lumo app widgets app:7302)
filters: null # null = usa os filtros salvos no WidgetO slide tem tela fixa de 1000 × 562,5 unidades (16:9), e left, top, width e height dos elementos são medidos nela.
lumo lint decks/vendas-trimestre--8120.yaml # forma do arquivo, offline
lumo push deck:8120
lumo deck preview deck:8120 # todo gráfico roda contra o dado real?
lumo deck publish deck:8120 # publica e imprime o link /p/<código>
lumo deck check deck:8120 # o link responde?O lint confere só a forma. O deck preview roda a consulta de cada gráfico vivo do Deck salvo no servidor e sai com código diferente de 0 se algum falhar, por Aplicação errada, Widget apagado ou widgetGuid velho. Rode depois do push. lumo deck export deck:<id> --format pdf gera o arquivo.
---, como todo recurso. Um arquivo com header: e body: aninhados é recusado com o erro missing body document.type: horus-widget, appId e widgetGuid são obrigatórios. Os outros campos dos elementos não são conferidos pelo lint: um erro neles só aparece no export ou na tela.lumo list presentation, e isso é o esperado. --seconds no publish é o tempo de cada slide.lumo deck url e lumo deck check só leem o link: não publicam e não pedem permissão de publicar. Não use publish para descobrir o link.lumo deck unpublish tira o link do ar.