Режим розгортання змінює те, де виконується робота і що має доступ до вашого вихідного коду. Він не змінює того, що роблять трансформації: той самий вхід і ті самі налаштування дають той самий захист, де б не працював рушій. AfterPack працює у двох режимах.
Режим 1: Локальний (Free)
npx afterpack@latest <path> запускає AfterPack нативно на вашій машині, так само як і кожен плагін для фреймворку, у якому не налаштовано key. Ваш вихідний код ніколи не залишає вашу файлову систему. Встановили, зібрали, готово. Жодного облікового запису, жодного ключа, жодного мережевого запиту для самої обфускації.
Це шлях за замовчуванням, і саме ним варто йти майже кожній збірці.
Два параметри лише для Pro поводяться тут інакше: прапорці посилення transforms.selfIntegrity.enabled і transforms.comparisonHardening.enabled не застосовуються, а директива @afterpack для окремої ділянки, яка посилює захист, зупиняє збірку. Див. Pro.
Збірка, яка видає діагностику рівня error або critical, надсилає анонімну діагностику збірки: код, рівень серйозності, версії, округлені за діапазонами лічильники, ніколи не вихідний код. Чиста збірка нічого не надсилає. Вимкніть це через AFTERPACK_telemetry_enabled=false або telemetry.enabled у параметрах плагіна. Подробиці в розділі Конфіденційність і обробка даних.
Режим 2: Хмара AfterPack (Pro)
Той самий пакет плюс key. Це звичайний ключ конфігурації, який задається тими ж трьома способами, що й будь-який інший: --key=ap_v1_… у командному рядку, AFTERPACK_key=ap_v1_… у середовищі або "key" в afterpack.json. Прапорець має пріоритет над середовищем, а середовище над файлом; повне правило пріоритету описано на сторінці Конфігурація.
--key= призначений для разового локального запуску. Командний рядок потрапляє в історію оболонки, журнали CI та вивід ps, тому для всього спільного використовуйте AFTERPACK_key. Немає кроку входу й немає окремих облікових даних: ключ із дашборду — це все, що потрібно.
Коли key задано, рушій групує ваші файли в пакети й викликає POST /v1/obfuscate/batch. Хмара запускає збірку рушія Pro і потоково повертає обфускований результат у міру завершення кожного файлу; ваша збірка записує кожен результат, щойно він надходить. Вихідний код обробляється лише в пам'яті й не зберігається. Зберігається один артефакт: Protection Map для кожної збірки, на якій працює дашборд і яку можна вимкнути для проєкту. Повний контракт обміну описано в довіднику Cloud API.
Коли хмара недоступна, збірка завершується помилкою (fail closed). Якщо хмара недосяжна (збій DNS, відмова в з'єднанні, вичерпано повторні спроби після 5xx або тайм-аут запиту), збірка завершується помилкою, а не переходить на результат тарифу Free. Це правило і коди виходу за ним описано в розділі Діагностика.
Клієнт повторює запити після 503/504 за графіком 1 с / 4 с / 16 с (загалом чотири спроби) і рівно один раз враховує Retry-After у відповіді 429, перш ніж здатися. Будь-який інший статус не повторюється і завершує збірку помилкою з власним кодом діагностики API.
Як обрати
| Ситуація | Режим |
|---|---|
| За замовчуванням: без жодних зусиль, нічого не залишає вашу машину | Режим 1 (Локальний) |
| Ви хочете, щоб директиви для ділянок справді застосовувалися | Режим 2 (Хмара) |
| Ви хочете зберігати Protection Map та історію збірок у дашборді | Режим 2 (Хмара) |
| Вимоги відповідності забороняють вихідному коду залишати вашу інфраструктуру | Режим 1 (Локальний) |
Інші варіанти розгортання
Cloudflare Workers
Рушій достатньо малий, щоб працювати всередині Cloudflare Worker, і саме там виконуються хмарні збірки: ваш бандл трансформується в ізоляті Worker і повертається за мілісекунди, а файл, завеликий для Worker, автоматично переходить у контейнер. Так само ви можете запустити AfterPack у власному Worker: див. Запуск AfterPack у Cloudflare Worker.
З власного Worker передайте свій ключ Pro тому самому виклику obfuscate(), і збірка виконається в Режимі 2, у хмарі AfterPack: див. Pro з вашого власного Worker.
Вихідний код, який не може залишати вашу інфраструктуру
Режим 1 уже вирішує це: Free, локально, без мережевих викликів, нічого перевіряти. Про приватне розгортання Pro у вашому власному обліковому записі див. Enterprise; сьогодні це не можна просто увімкнути.
Далі
- Довідник Cloud API: повний контракт запитів і відповідей для Режиму 2.
- Pro: що Pro додає до локального рушія.
- Конфіденційність і обробка даних: що зберігає кожен режим і як довго.
- Тарифи: який план відкриває Режим 2 і що він тарифікує.
- Довідник CLI: команда, яка запускає Режим 1.
- Конфігурація: кожен ключ, прапорець і змінна, зокрема
key. - Модель загроз: що змінюється, а що ні, коли рушій переноситься.