Validar
cfour checkReserva de Salas (reservas) 11 elementos · 8 relações · 3 diagramas · 1 fluxos 0 erro(s), 0 aviso(s)Ele carrega a modelagem inteira e relata tudo o que encontrou. Sai com código 1 quando há erro, e 0 quando há apenas avisos.
Erro e aviso
Seção intitulada “Erro e aviso”A diferença é uma só: erro significa que o modelo está errado; aviso significa que ele está incompleto ou provavelmente não é o que você quis.
Um modelo com erro não é publicado — cfour push recusa. Um modelo com aviso
publica normalmente.
O que é erro
Seção intitulada “O que é erro”| YAML inválido | o arquivo não é lido |
elemento sem id, ou com identificador inválido | |
| dois elementos com o mesmo identificador no mesmo projeto | |
parent, from, to, scope, subject, target ou um seletor ref apontando para caixa inexistente | |
| um ciclo de contenção | os membros são tratados como raiz |
| um elemento que é pai de si mesmo | |
relação sem from ou sem to | |
| nota sem texto, ou apontando para diagrama inexistente | |
| diagrama ou fluxo duplicado, ou com identificador inválido | |
| um fluxo cujo identificador já é de um diagrama | os dois dividem o mesmo espaço de nomes |
passo de fluxo sem to, ou sem from e sem passo anterior | |
| caminho de fluxo desviando de um passo inexistente | |
relations: com uma forma que o formato não conhece | |
groupBy: tag:<prefixo> | não existe — veja Grupos |
bind malformado, ou com ref não qualificado |
O que é aviso
Seção intitulada “O que é aviso”| forma, tipo de seta, tipo de nota ou desfecho desconhecido | desenha neutro |
level: declarado que discorda da árvore | a árvore vence |
| uma caixa com filhos e nenhum diagrama que a detalhe | aquele conteúdo é inalcançável no leitor |
| um diagrama que não desenha nenhuma caixa | nenhum seletor casou |
| um passo de fluxo usando uma seta não declarada | o fluxo encontrou um buraco na estrutura |
| um participante de fluxo que não aparece em passo nenhum | |
relations: citando um identificador de seta que não existe | |
uma nota sem target e sem scope | não aparece em lugar nenhum |
um elemento com bind que tem filhos | um espelho não tem interior |
| um documento fora de um projeto | ignorado |
um kind: desconhecido | documento ignorado |
Os dois avisos em negrito são os que mais evitam surpresa no navegador: eles existem porque o leitor nunca inventa uma visão, e porque um desenho vazio carrega sem reclamar.
As opções
Seção intitulada “As opções”cfour check --modelagem portaria # outra modelagemcfour check --all # todas as do registro, e confere os espelhoscfour check --root ./caminho/model # uma árvore avulsa, ignorando o registrocfour check --json # saída estruturadacfour check --inventory # + o inventário do modelo (implica --json)--all é o único modo em que as duas pontas de um bind se encontram: ele
carrega todas as modelagens juntas e confere se o alvo de cada espelho existe —
como aviso, porque a outra modelagem tem outro dono.
name: arquiteturaon: [push, pull_request]
jobs: check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 - run: npm install -g cfour-cli - run: cfour check --allComo o comando sai com código 1 em erro, isso já reprova o pull request que quebrar o modelo. Para publicar no mesmo fluxo, veja Publicar a partir do CI.
Quando algo dá errado
Seção intitulada “Quando algo dá errado”Cada mensagem diz o arquivo e o campo. As causas mais comuns, com o que fazer em cada uma, estão em Quando algo dá errado.