Features de compilación
Una feature es un módulo de compilación con nombre. Su entrada en el registro puede declarar paquetes para una o más familias de distribución y también incluir hooks de compilación, alias, metadatos de capacidad y aserciones en guest.
Añadir una feature expresa intención. Por sí sola no prueba que todo paquete estuviera disponible, que todo hook se ejecutara o que el comportamiento resultante funcione en la imagen destino. Validación de receta, finalización de compilación y verificación en guest son puertas distintas.
Encuentra el conjunto actual de features
Usa el selector de features o la API del catálogo de features en la versión OpenFactory desplegada. Esa salida es autoritativa para la versión en ejecución. Las listas estáticas envejecen rápido, y algunas entradas del registro están ocultas porque respaldan fixtures internos o integraciones incompletas.
Antes de elegir una feature, comprueba:
- si es visible y está habilitada para tu cuenta;
- si declara paquetes para la familia de distribución de la receta;
- si sus fuentes externas están fijadas y son recuperables;
- si tiene aserciones que prueben el comportamiento que necesitas; y
- si entra en conflicto con otro módulo solicitado.
Categorías representativas
El registro incluye actualmente módulos en categorías como:
| Categoría | Ejemplos | Evidencia a exigir |
|---|---|---|
| Escritorio | desktop-kde, desktop-gnome-minimal, krita, kdenlive | tipo de sesión, paquetes instalados, comportamiento del launcher y una prueba de humo real de escritorio |
| Línea de comandos y desarrollo | git, curl, python, nodejs, rust | inventario de paquetes/versión y pruebas de humo de ejecutables |
| Infraestructura | nginx, postgresql, redis, docker, ansible | configuración del servicio, estado enabled/running, puertos y salud a nivel de aplicación |
| Seguridad | firewall, audit-logging, security-hardening, apparmor | política generada, estado activo en runtime, pruebas negativas y excepciones documentadas |
| Orientadas a cumplimiento | cis-benchmarks, gxp, disa-stig, nist-800-53 | fuente exacta de benchmark/control, aplicabilidad, resultados por control y disposición humana |
| Herramientas de IA | ollama, alpaca, aider, codex-cli | procedencia fijada de fuente/paquete, límite de descarga de modelos, prueba de lanzamiento y requisitos de recursos |
Los ejemplos no son una matriz de compatibilidad. Un nombre de feature puede existir mientras la implementación para una distribución concreta sigue siendo parcial.
Feature, paquete y servicio son distintos
os.featuresselecciona módulos de compilación registrados.os.packagespide al gestor de paquetes nativo paquetes concretos.os.servicesaporta intención de habilitación y configuración con nombre.
Por ejemplo:
{
"os": {
"features": ["ssh", "firewall"],
"packages": ["curl", "jq"],
"services": [
{
"name": "ssh",
"enabled": true,
"config": {
"port": 22,
"disable_password_auth": true
}
}
]
}
}Una config de servicio válida puede contener aún una clave que el generador no consume. Inspecciona la receta normalizada y prueba el guest generado.
Etiquetas de seguridad y cumplimiento
security-hardening instala y configura una línea base general de endurecimiento. No es sinónimo de un perfil CIS. El hardening_level de la receta es una etiqueta de configuración interpretada por generadores específicos del destino; no es una certificación ni un mapeo universal a CIS Level 1 o Level 2.
La feature cis-benchmarks tiene una ruta de remediación más específica para Ubuntu 24.04 Level 1. Otras bases no reciben ese mismo rol. Consulta Evidencia de benchmarks CIS para el límite exacto.
Del mismo modo, habilitar una feature nombrada por GxP, HIPAA, SOC 2, PCI DSS, NIST o DISA no establece cumplimiento organizacional. Puede añadir paquetes, configuración y pruebas que aporten evidencia a una evaluación gobernada por separado.
Combinar features con seguridad
- Empieza con el conjunto más pequeño que exprese el comportamiento solicitado.
- Valida la receta e inspecciona la salida normalizada por campos descartados o inferidos.
- Revisa el plan ampliado de paquetes y hooks.
- Compila una vez y sigue su ID de compilación durable.
- Ejecuta aserciones específicas de feature en un guest arrancado.
- Registra fallos y excepciones intencionadas explícitamente.
- Añade otra feature solo cuando entiendas la línea base actual.
Para la forma JSON canónica, consulta Esquema de recetas.