Un modo de despliegue cambia dónde se hace el trabajo y qué toca tu código fuente. No cambia lo que hacen las transformaciones: la misma entrada y los mismos ajustes producen la misma protección dondequiera que se ejecute el motor. AfterPack funciona en dos modos.
Modo 1: Local (Free)
npx afterpack@latest <path> ejecuta AfterPack de forma nativa en tu máquina, igual que cualquier plugin de framework sin una key configurada. Tu código fuente nunca sale de tu sistema de archivos. Instalas, compilas y listo. Sin cuenta, sin clave, sin ida y vuelta por la red para la ofuscación en sí.
Es la vía por defecto y la que debería seguir casi cualquier build.
Dos ajustes exclusivos de Pro se comportan de otra forma aquí: los flags de refuerzo transforms.selfIntegrity.enabled y transforms.comparisonHardening.enabled no se aplican, y una directiva @afterpack por región que aumenta la protección detiene el build. Consulta Pro.
Un build que emite un diagnóstico error o critical envía diagnósticos anónimos del build: código, severidad, versiones y recuentos agrupados por rangos, nunca código fuente. Un build limpio no envía nada. Desactívalo con AFTERPACK_telemetry_enabled=false, o con telemetry.enabled en las opciones de tu plugin. Más detalles en Privacidad y manejo de datos.
Modo 2: Nube de AfterPack (Pro)
El mismo paquete, más una key. Es una clave de configuración normal, que se puede establecer de las tres formas que cualquier otra: --key=ap_v1_… en la línea de comandos, AFTERPACK_key=ap_v1_… en el entorno o "key" en afterpack.json. El flag tiene prioridad sobre el entorno, y el entorno sobre el archivo; Configuración tiene la regla de precedencia completa.
--key= existe para una ejecución local puntual. Una línea de comandos acaba en el historial del shell, en los logs de CI y en la salida de ps, así que usa AFTERPACK_key para cualquier cosa compartida. No hay paso de inicio de sesión ni credencial aparte: la clave del panel es todo lo que necesitas.
Cuando se resuelve una key, el motor agrupa tus archivos en lotes y llama a POST /v1/obfuscate/batch. La nube ejecuta el build del motor Pro y devuelve la salida ofuscada en streaming a medida que termina cada archivo; tu build escribe cada resultado según llega. El código fuente se procesa solo en memoria y no se conserva. Se almacena un único artefacto: el Protection Map de cada build, que alimenta el panel y que puedes desactivar por proyecto. El contrato de comunicación completo está en la referencia de la API en la nube.
Si la nube cae, falla de forma segura (fail closed). Si la nube no es accesible (fallo de DNS, conexión rechazada, reintentos agotados ante un 5xx o un tiempo de espera agotado en la petición), el build falla en lugar de recurrir a la salida del nivel Free. Diagnósticos define esa regla y los códigos de salida que la respaldan.
El cliente reintenta 503/504 con un calendario de 1 s / 4 s / 16 s (cuatro intentos en total) y respeta el Retry-After de un 429 exactamente una vez antes de rendirse. Cualquier otro estado no se reintenta y aparece como un fallo del build con el propio código de diagnóstico de la API.
Cómo elegir entre ellos
| Situación | Modo |
|---|---|
| Por defecto: cero fricción, nada sale de tu máquina | Modo 1 (Local) |
| Quieres que las directivas por región se apliquen de verdad | Modo 2 (Nube) |
| Quieres Protection Maps almacenados y el historial de builds en el panel | Modo 2 (Nube) |
| Por cumplimiento normativo, el código fuente no puede salir de tu infraestructura | Modo 1 (Local) |
Otras formas de despliegue
Cloudflare Workers
El motor es lo bastante pequeño como para ejecutarse dentro de un Cloudflare Worker, y ahí es donde se ejecutan los builds en la nube: tu bundle se transforma en un isolate de Worker y se devuelve en milisegundos, y un archivo demasiado grande para un Worker pasa a un contenedor automáticamente. Puedes ejecutar AfterPack en tu propio Worker de la misma forma: consulta Ejecutar AfterPack en un Cloudflare Worker.
Desde tu propio Worker, pasa tu clave Pro a la misma llamada a obfuscate() y el build se ejecuta en el Modo 2, en la nube de AfterPack: consulta Pro, desde tu propio Worker.
Código fuente que no puede salir de tu infraestructura
El Modo 1 ya resuelve esto: Free, local, sin llamada de red, nada que revisar. Para un despliegue Pro privado dentro de tu propia cuenta, consulta Enterprise; no es algo que puedas activar hoy.
Siguiente
- Referencia de la API en la nube: el contrato completo de petición/respuesta del Modo 2.
- Pro: qué añade Pro sobre el motor local.
- Privacidad y manejo de datos: qué almacena cada modo y durante cuánto tiempo.
- Niveles: qué plan desbloquea el Modo 2 y qué mide.
- Referencia de la CLI: el comando que impulsa el Modo 1.
- Configuración: cada clave, flag y variable, incluida
key. - Modelo de amenaza: qué cambia, y qué no, cuando el motor se traslada.