profile
Referencia de la CLI para el grupo de comandos apothem profile.
Gestiona el perfil compartido de Apothem.
profile es un grupo de comandos con cuatro subcomandos: init, show, set y edit.
El perfil compartido es la única fuente de verdad que cada adaptador de entorno
materializa en su configuración nativa.
Sinopsis
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]Opciones comunes
Cada subcomando acepta las opciones compartidas que se indican a continuación.
| Opción | Descripción |
|---|---|
--profile PATH | Ruta al YAML del perfil compartido (por defecto, la ubicación estándar del perfil). |
--quiet, -q | Suprime la salida informativa; solo se emiten errores. |
--verbose, -v | Emite salida de diagnóstico adicional. |
--format plain|json | Formato de salida (por defecto: plain). |
--json | Abreviatura de --format json. |
--no-color | Desactiva los códigos de color ANSI en la salida. |
-h, --help | Muestra la ayuda y sale. |
Subcomandos
profile init
Crea un andamiaje de perfil mínimo y válido según el esquema en
~/.config/apothem/profile.yaml o en --profile PATH. Los archivos existentes
se conservan, a menos que se proporcione --force.
La primera línea del andamiaje es una modeline de yaml-language-server que
nombra el $id del esquema del perfil,
https://apothem.ahmedgad.com/schemas/profile.schema.json. El sitio sirve el
esquema empaquetado en esa dirección, de modo que un editor con soporte del
lenguaje YAML valida el perfil mientras lo editas. Cada esquema empaquetado bajo
src/apothem/schemas/ se sirve de la misma manera en
https://apothem.ahmedgad.com/schemas/<file>.
| Opción | Descripción |
|---|---|
--force | Sobrescribe un andamiaje de perfil existente. |
profile show
Muestra el perfil compartido validado y con los valores predeterminados
expandidos. Con --json, el documento es el propio perfil, encabezado por
schema_version: la versión del esquema del perfil con la que el motor lo leyó
(consulta el
contrato de la salida JSON).
profile set KEY VALUE
Establece una clave en el perfil compartido. KEY es una ruta con puntos que
desciende por el perfil anidado (identity.name, preferences.style,
enforcement.sprints, harnesses.<harness>.preferences.style); una clave única
sin punto establece un nodo de nivel superior. VALUE se almacena como una
cadena literal —las palabras sueltas no se convierten (no sigue siendo "no",
2024-01-01 y 1.0 siguen siendo cadenas)—, excepto true/false (los
indicadores booleanos de aplicación) y la entrada explícita de lista o mapa
[...]/{...}. El perfil completamente ensamblado se valida contra el esquema
antes de escribir; una asignación no válida se rechaza y el perfil en disco
queda sin cambios.
| Argumento | Descripción |
|---|---|
KEY | Ruta con puntos dentro del perfil que se va a establecer (obligatorio). |
VALUE | Valor literal que se asigna; se valida antes de escribir (obligatorio). |
profile edit
Abre el perfil compartido en el editor del sistema.
Errores de validación
Cada comando que lee el perfil lo valida contra el esquema empaquetado e informa de todos los problemas que encuentra en una sola pasada, de modo que una sola edición puede corregirlos todos:
- La salida en texto plano nombra el primer problema por completo (
Field,Reason,FixyOffending value (redacted): la entrada que falló, con los valores con forma de secreto reemplazados por<redacted>; nunca es un reemplazo sugerido) y después lista hasta diez más bajoOther problems. - La salida JSON conserva el primer problema en los campos de nivel superior
del objeto
errory agrega un arregloerrorscon cada problema (code,field,reason,fix,safe_value). - Las claves desconocidas repiten solo la clave inesperada y su valor ocultado, no el perfil completo.
- Marcadores de bloque gestionado. Ninguna clave ni ningún valor de texto
puede contener
<!-- BEGIN APOTHEM MANAGED BLOCK -->ni<!-- END APOTHEM MANAGED BLOCK -->. Apothem escribe esos marcadores alrededor del bloque que gestiona en los archivos de instrucciones, y el texto del perfil acaba dentro de ese bloque, de modo que un marcador en él dividiría el bloque. Cada uno de esos campos falla conprofile.managed_block_marker:fieldes su ruta con puntos (por ejemplorules.2omcp_servers.search.env.SEARCH_MODE) yreasonnombra el marcador. El valor en sí nunca se repite (safe_valueesnull), ya que puede ser una credencial.
profile init (y cualquier otro comando que crea el andamiaje de un perfil) escribe
schema_version: 1. Un perfil sin schema_version se lee como versión 1.
Ejemplos
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 salida
| Código | Significado |
|---|---|
| 0 | Éxito (o, para edit, el editor salió con normalidad) |
| 1 | El perfil falta, no es válido, ya existe sin --force o no se puede escribir |
| 64 | Error de uso: una opción o un comando desconocidos, o un valor de opción ausente o no válido. Con --json, el error es un sobre JSON con el código cli.usage. |
Véase también
- apothem install — materializa el perfil en un entorno
- apothem doctor — ejecuta diagnósticos de instalación de todo el sistema