profile
Referência da CLI para o grupo de comandos apothem profile.
Gerencia o perfil compartilhado do Apothem.
profile é um grupo de comandos com quatro subcomandos: init, show, set e
edit. O perfil compartilhado é a única fonte de verdade que cada adaptador de
harness materializa em sua configuração nativa.
Sinopse
apothem profile init [--profile PATH] [--force]
[--quiet|-q] [--verbose|-v]
[--format plain|json] [--json] [--no-color]
apothem profile show [--profile PATH] [--quiet|-q] [--verbose|-v]
[--format plain|json] [--json] [--no-color]
apothem profile set KEY VALUE
[--profile PATH] [--quiet|-q] [--verbose|-v]
[--format plain|json] [--json] [--no-color]
apothem profile edit [--profile PATH] [--quiet|-q] [--verbose|-v]
[--format plain|json] [--json] [--no-color]Opções comuns
Todo subcomando aceita as opções compartilhadas abaixo.
| Opção | Descrição |
|---|---|
--profile PATH | Caminho para o YAML do perfil compartilhado (o padrão é o local padrão do perfil). |
--quiet, -q | Suprime a saída informativa; apenas erros são emitidos. |
--verbose, -v | Emite saída de diagnóstico adicional. |
--format plain|json | Formato de saída (padrão: plain). |
--json | Abreviação de --format json. |
--no-color | Desativa os códigos de cor ANSI na saída. |
-h, --help | Mostra a ajuda e sai. |
Subcomandos
profile init
Cria um esqueleto de perfil mínimo e válido segundo o schema em
~/.config/apothem/profile.yaml ou em --profile PATH. Os arquivos existentes
são preservados, a menos que --force seja fornecido.
A primeira linha do esqueleto é uma modeline yaml-language-server que nomeia o
$id do schema do perfil,
https://apothem.ahmedgad.com/schemas/profile.schema.json. O site serve o
schema empacotado nesse endereço, de modo que um editor com suporte à linguagem
YAML valida o perfil enquanto você o edita. Todo schema empacotado em
src/apothem/schemas/ é servido da mesma forma em
https://apothem.ahmedgad.com/schemas/<file>.
| Opção | Descrição |
|---|---|
--force | Sobrescreve um esqueleto de perfil existente. |
profile show
Exibe o perfil compartilhado validado, com os valores padrão expandidos. Com
--json, o documento é o próprio perfil, encabeçado por schema_version: a
versão do schema do perfil com a qual o motor o leu (consulte o
contrato da saída JSON).
profile set KEY VALUE
Define uma chave no perfil compartilhado. KEY é um caminho com pontos que
desce pelo perfil aninhado (identity.name, preferences.style,
enforcement.sprints, harnesses.<harness>.preferences.style); uma única chave
sem ponto define um nó de nível superior. VALUE é armazenado como uma string
literal — palavras simples não são convertidas (no continua "no",
2024-01-01 e 1.0 continuam strings) — exceto true/false (os
sinalizadores booleanos de imposição) e a entrada explícita de lista/mapa
[...]/{...}. O perfil totalmente montado é validado em relação ao schema
antes da gravação; uma definição inválida é recusada e o perfil em disco
permanece inalterado.
| Argumento | Descrição |
|---|---|
KEY | Caminho com pontos dentro do perfil a definir (obrigatório). |
VALUE | Valor literal a atribuir; validado antes da gravação (obrigatório). |
profile edit
Abre o perfil compartilhado no editor do sistema.
Erros de validação
Todo comando que lê o perfil o valida em relação ao schema empacotado e relata todos os problemas que encontra em uma única passagem, de modo que uma única edição pode corrigir todos eles:
- A saída em texto simples nomeia o primeiro problema por completo (
Field,Reason,FixeOffending value (redacted): a entrada que falhou, com os valores com formato de segredo substituídos por<redacted>; ela nunca é uma sugestão de substituição) e, em seguida, lista até mais dez emOther problems. - A saída JSON mantém o primeiro problema nos campos de nível superior do
objeto
errore adiciona um arrayerrorscom todos os problemas (code,field,reason,fix,safe_value). - As chaves desconhecidas ecoam apenas a chave inesperada e o seu valor ocultado, não o perfil inteiro.
- Marcadores de bloco gerenciado. Nenhuma chave ou valor de texto pode
conter
<!-- BEGIN APOTHEM MANAGED BLOCK -->ou<!-- END APOTHEM MANAGED BLOCK -->. O Apothem grava esses marcadores em torno do bloco que gerencia nos arquivos de instruções, e o texto do perfil vai parar dentro desse bloco, de modo que um marcador nele dividiria o bloco. Cada campo desse tipo falha comprofile.managed_block_marker:fieldé o seu caminho com pontos (por exemplorules.2oumcp_servers.search.env.SEARCH_MODE) ereasonnomeia o marcador. O próprio valor nunca é ecoado (safe_valueénull), pois ele pode ser uma credencial.
profile init (e todo outro comando que cria o esqueleto de um perfil) grava
schema_version: 1. Um perfil sem schema_version é lido como versão 1.
Exemplos
apothem profile init
apothem profile init --profile ./profile.yaml --force --json
apothem profile show
apothem profile show --json
apothem profile set seriousness SHARED
apothem profile set rules '["Use fake placeholders in examples."]'
apothem profile editCódigos de saída
| Código | Significado |
|---|---|
| 0 | Sucesso (ou, para edit, o editor saiu normalmente) |
| 1 | O perfil está ausente, é inválido, já existe sem --force ou não pode ser gravado |
| 64 | Erro de uso: uma opção ou um comando desconhecido, ou um valor de opção ausente ou inválido. Com --json, o erro é um envelope JSON com o código cli.usage. |
Veja também
- apothem install — materializa o perfil em um harness
- apothem doctor — executa diagnósticos de instalação em todo o sistema