Configuración
Dónde cambiar el comportamiento de codafort: archivos del repositorio, flags y variables de entorno. Nada de eso queda en un servidor.
Reglas
Las reglas cargan en cuatro capas. Cuando dos capas definen el mismo rule.id, gana la de número mayor:
| # | Origen | Cuándo |
|---|---|---|
| 1 | builtin, las reglas que vienen con codafort | siempre |
| 2 | .codafort-rules.yaml en la raíz del proyecto | si existe |
| 3 | .codafort-rules/*.yaml | si existe |
| 4 | --rules-dir <dir> | cuando se pasa |
Una regla custom, en YAML, puede ser regex, ts-query, taint-path (de una fuente hasta un sink, con sanitizadores) o una composición (all_of/any_of/not/path_glob). codafort rules lista lo cargado.
attest no carga --rules-dir: el hash de las reglas en la declaración contrafirmada corresponde exactamente a lo que corrió.
Gate
.codafort-gate.yaml declara las condiciones de codafort gate y de engine analyze --fail-on-quality-gate. Sin el archivo, vale el predeterminado: reprueba si vulnerabilities, blocker, taint_findings o risk_findings_high supera cero. Orden de resolución: --config, luego el archivo en el directorio, luego el predeterminado. Ver CI y el gate.
Supresiones que persisten
codafort false-positive SF-3 --reason "la entrada viene de una constante" # marca como FP
codafort risk-accept SF-5 --reason "mitigado en el WAF hasta Q4" # acepta el riesgo (WontFix)
Ambas persisten entre ejecuciones y quedan registradas en el resultado: un risk-accept no reprueba el gate, pero sigue en el informe, y la declaración contrafirmada lleva el resultado junto con lo suprimido.
Sesión y caché
.codafort/session.json: losSF-ndel últimoscan(habilitaexplain/fixsin volver a analizar)..codafort/cache.redb: caché incremental;engine analyze --incrementalreanaliza solo lo que cambió.codafort engine cachela inspecciona y la limpia.
Ambos son regenerables y no deben ir al control de versiones.
--taint-k <0|1> ajusta la precisión con que se sigue el flujo de datos entre funciones (attest usa 0).
Salidas
engine analyze --format <json|sarif|sonarqube|html|graphml|csv|cyclonedx|spdx|finding>. sarif lleva codeFlows, el camino del dato que muestra el code scanning; finding emite el Finding canónico coda-finding/1; cyclonedx y spdx son el SBOM. report --tui y report --web leen el envelope local (el --web, dashboard servido, es del plan Platform). El dashboard HTML no busca nada en la red.
Telemetría
codafort config telemetry status
codafort config telemetry off # permanente
export CODAFORT_TELEMETRY=off # sesión / CI
codafort scan . --no-telemetry # solo esta vez
codafort scan . --telemetry-dry-run # muestra el payload, no envía
En CI o sin TTY, el nivel baja solo a 0. Hoy el colector no está provisionado: el binario intenta el envío en cada scan interactivo y nadie lo recibe. La telemetría es seudónima: un id aleatorio y fijo de la instalación, sin nombre ni correo. El texto público está en codafort.com/telemetry.
Licencia
codafort license activate <token> # verifica la licencia offline
codafort license status # tier y validez
codafort license deactivate # vuelve a Free
La Seguridad nunca se bloquea: sin licencia, scan/explain/fix/vet/gate/MCP funcionan enteros. Cada plan suma al anterior. Vibe desbloquea review y los ejes de calidad y riesgo; Pro, los momentos de runtime (codaprobe, codatrace y el triaje de flota de codacrash); Verified, la declaración contrafirmada (attest create/bundle); Platform, la gobernanza multi-repo (engine merge, el portafolio de bulk-scan) y el dashboard servido (report --web). Verificar una declaración (attest verify) es gratis. Ver codafort.com/pro.
Variables de entorno
| Variable | Efecto |
|---|---|
CODAFORT_TELEMETRY=off | apaga la telemetría en la sesión |
CODAFORT_ATTEST_KEY · CODAFORT_ATTEST_DELEGATION | declaración air-gapped (subclave y delegación); ver Declaración contrafirmada |
CODAFORT_VERSION · CODAFORT_INSTALL · CODAFORT_NO_MODIFY_PATH | solo para el instalador install.sh |
CODATRACE_MAX_EVENTS | máximo de eventos que emite el agente de codatrace (predeterminado 10 000) |
SG_DENY_MODULES | deny-list de codaguard (codacrash) |