Збірки в дашборді

Запис про кожну збірку Pro Cloud: покриття, роздування, складність, час збірки, вартість, діагностика і Protection Map.

Кожна збірка Pro Cloud залишає запис: коли вона виконувалася, з якого коміту, скільки коштувала, яку її частину рушій зміг трансформувати і що рушій повідомив під час роботи. Локальні збірки Free ніколи не зв'язуються з AfterPack, тож тут вони ніколи не з'являються.

Список збірок

Усі збірки одного проєкту, від найновіших.

СтовпецьЩо це
ЗібраноКоли виконувалася збірка.
КомітGit SHA, який AfterPack визначив для збірки (див. seed). Показується скорочено, копіюється повністю і пов'язує рядок із розгортанням.
ФайлиФайли виводу, які ця збірка надіслала в AfterPack, без вихідних файлів усередині них.
ВихідЩо вийшло після захисту.
ОплаченоВхідні байти, які обробив AfterPack. Саме за це з вас стягується плата.
Час збіркиЧас, який AfterPack додав до збірки, виміряний на edge; для старіших збірок цього запису немає, тож у таких рядках значення показується як відсутнє, а не 0.
ПокриттяЧастка отриманого виводу, яку рушій міг вільно трансформувати.
РоздуванняВихід ÷ вхід. Це те, скільки захист коштує вашим користувачам під час завантаження.

Список показує найновіші збірки цього проєкту. Під час перегляду збірки бічна панель вкладає сусідні збірки цього проєкту під пункт Збірки, тож дві збірки можна порівняти в один клік.

Одна збірка повністю

Відкрийте рядок, і в заголовку буде коміт (або id збірки, якщо git-контексту немає) і кнопка Переглянути Protection Map або позначка Мапу не збережено, коли відкривати нічого.

Результат

Чотири числа, і кожне відповідає на своє запитання.

  • Покриття: частка отриманого виводу, яку рушій міг вільно трансформувати.
  • Роздування: відношення розміру виходу до входу, число, за яке платять ваші користувачі. Певне зростання очікуване, бо трансформації, які роблять код важким для читання, займають місце.
  • Складність: середня складність, досягнута на прийнятних байтах, показана відносно цільового значення цієї збірки (score / target). Складність є орієнтиром і не вимірює безпеку.
  • Розмір: що надійшло на вхід і що вийшло.

Склад покриття

Куди пішов кожен байт входу. Смуги в сумі дають вхід, а їхні частки збігаються з Покриттям вище.

СмугаЗначення
ПрийнятніБайти, які рушій міг вільно трансформувати.
Збережено (безпека)Байти, до яких рушій не зміг дістатися, бо не міг безпечно представити ці конструкції.
Збережено (рефлексія)Байти, збережені тому, що ваш код використовує рефлексію під час виконання.
Ви виключилиФайли, що відповіли вашому налаштуванню paths.exclude, пропущені до розбору й повернуті без змін.
Ви пропустилиДілянки, які ви позначили /* @afterpack skip */.
НеоблікованоВхідні байти, що не належать до жодної іншої смуги.

Поруч зі смугами: слабкі місця (рядки з вашого коду, які досі читаються у виводі, без імен властивостей; відкрийте мапу, щоб побачити, де вони) і директиви (маркери @afterpack, які рушій знайшов у вашому вихідному коді й записав тут; так ви підтверджуєте, що директиву підхоплено).

Файли з кодом

Деревоподібна мапа (treemap) кожного вихідного файлу збірки, розмір плиток відповідає байтам на вході, а колір показує, наскільки далеко просунувся рушій: сірі плитки не мали з чим працювати, червоні означають, що щось пішло не так, а від помаранчевого до зеленого йде шкала від слабкого до сильного. Плитки покривають лише вивід, який можна простежити до файлу, приблизно половину того, що ви випускаєте, тож роздування плитки не дорівнює роздуванню збірки. Решта є рантаймом, який AfterPack вбудовує один раз на бандл. Спільний код рантайму не має плитки, і саме тому збірка роздувається більше, ніж будь-який окремий файл.

Цей рядок доступний лише на платних планах: робочий простір Free бачить замість treemap заблокований стан, хоча кожен інший рядок на сторінці збірки безкоштовний.

Захоплення файлів виводу

Цей розділ показує, скільки файлів виводу збірки можна переглянути в збереженій мапі і що сталося з рештою; він не вимірює захист, бо кожен файл було обфусковано незалежно від того, чи його захоплено. Один виняток: якщо збірка вичерпує бюджет часу AfterPack, вона перестає починати нові файли, і кожен файл, що залишився, завершується помилкою. Перезапустіть збірку або розділіть її на менші.

Час

Час, який збірка провела на edge AfterPack, включно з очікуванням завантаження відповіді. Значну його частку займає Protection Map: її створення й повернення додається до часу обфускації, тож вимкнення захоплення в налаштуваннях проєкту повертає цей час.

Тарифікація

Що ця збірка взяла з вашого робочого простору: Виміряно (тарифіковані вхідні байти) і звідки це взято: Ліміт, Кредит (Extra MB), Перевищення.

Діагностика

Що рушій повідомив під час обфускації цієї збірки, згруповане за стабільним кодом із лічильником; оскільки це ваша власна збірка у вашому власному робочому просторі, ви також бачите повідомлення й файл для кожного запису. Інформаційні записи очікувані, тож виділяються лише помилки та критичні.

Сторінка вказує, яка з трьох речей сталася: записи зафіксовано, збірка була чистою і нічого не повідомила, або AfterPack узагалі не має запису, як і буває після збірки Free.

Кожен код стабільний, і його можна цитувати у звіті про помилку. Див. Діагностика.

Protection Map

Коли захоплення увімкнено і збірка зберегла мапу, Переглянути Protection Map відкриває подання на рівні токенів: ваш оригінальний вихідний код, розфарбований за оцінкою складності кожного токена, із класом відновлення коду, який ви виділили. Збережена мапа містить ваш оригінальний вихідний код і доступна для читання всім у робочому просторі; строк зберігання й перемикач для кожного проєкту описано в розділі Конфіденційність і обробка даних, а ця сторінка вказує точну дату закінчення зберігання для збірки. Збірка без збереженої мапи натомість вказує причину: захоплення було вимкнено, це не була збірка Pro Cloud, або вона не містила вхідних source map, з яких можна було б побудувати мапу.

Огляд проєкту показує покриття, роздування та час збірки з часом з адаптивним розміром інтервалу і з різницею щодо попереднього тижня чи місяця; огляд робочого простору робить те саме для використання в усіх проєктах.

Далі