jamformer es una herramienta CLI que inicia un proyecto de Terraform desde una instancia existente de Jamf. Se conecta a su entorno, descubre recursos a través de la API de Jamf (o terraform query para Protect y Platform), genera bloques de importación de Terraform, ejecuta terraform plan -generate-config-out para producir HCL, y luego post-procesa la salida para agregar referencias entre recursos y organizar archivos por tipo de recurso. El resultado es un scaffolding inicial realista para aprender y refinar — no código listo para producción, sino un primer borrador honesto.
Características
- Soporta los siguientes proveedores de Terraform: Jamf Pro, Protect, Platform y Security Cloud (JSC)
- Descubre y exporta más de 100 tipos de recursos incluyendo políticas, scripts, perfiles de configuración, grupos inteligentes y estáticos, prestages de computadora y móviles, atributos de extensión, paquetes, categorías, integraciones de API y más
- El post-procesamiento reescribe los ID de Jamf en referencias cruzadas de Terraform para que las relaciones sean explícitas en lugar de números codificados
- Extrae contenido incrustado (scripts, perfiles, configuraciones de aplicaciones, activos de marca) a archivos de soporte separados
- Escaneo de secretos a través de gitleaks con reglas específicas de Jamf y remediación interactiva para credenciales incrustadas — contraseñas, tokens de API, frases de contraseña WiFi, secretos LDAP y SMTP
- Modo compacto consolida tipos de recursos uniformes en patrones
for_eachpara una salida más limpia y cercana a producción - Modo experimental multi-entorno genera una estructura de módulo compartido y directorio por entorno para equipos que administran instancias de staging y producción
- Solo lectura contra Jamf — nunca modifica, crea o elimina nada en su instancia
Requisitos
- Terraform 1.14 o posterior (se descarga automáticamente si no está presente)
- Jamf Pro (rol de Auditor o equivalente), Jamf Protect, Jamf Platform o Jamf Security Cloud
- Credenciales de cliente OAuth2 para Protect, Platform y JSC; nombre de usuario/contraseña u OAuth2 para Jamf Pro
- Go 1.26.2 o posterior para compilar desde el código fuente