C cenaly.com
Почати безкоштовно

Кастомні редактори

Власні мініредактори всередині панелі в пісочниці: для власника або стороннього розробника, доступ до даних акаунта за правами

On this page 14

Кастомні редактори

Буває робота, якої немає в жодній панелі, бо вона тільки ваша: власний перерахунок цін за формулою постачальника, звіряння каталогу з чужою обліковою системою, екран «заповнити характеристики партії за один прохід». Розділ «Кастомні редактори» дає змогу написати такий мініредактор самому (або замовити його) і запустити всередині адмінки — у пісочниці, з доступом рівно до тих даних, які ви дозволили.

Відкрити: Адмін-панель → Кастомні редактори (admin.cenaly.com/custom-editors). Розділ вмикається карткою «Кастомні редактори (SDK)» у магазині додатків — за замовчуванням він прихований. Кнопка «📌 В сайдбар» на самій сторінці виносить його в бічне меню, коли він потрібен часто.


Що це за розділ#

Плагін — це зібраний скрипт (index.js) та його опис (manifest.json). Панель завантажує скрипт у ізольований фрейм: у нього немає доступу ні до вашої сесії, ні до коду адмінки, ні до мережі. Говорити з даними він може лише через міст — набір дозволених запитів, кожен з яких перевіряється за виданими правами.

Сторінка складається з блоків:

Блок Що в ньому
Установлені редактори картка на плагін: ім'я, «Версія», «Права», «Розміщення», «Дозволені мережеві хости», «Оновлено», джерело (репозиторій і тег посиланням). Дії: «Відкрити», «Увімкнути» / «Вимкнути», перевірка оновлень, «Видалити»
Установити редактор установлення з файлів з диска
Установлення з GitHub установлення за адресою публічного репозиторію та тегом
🤖 Розробка з ШІ (вайб-кодинг) шаблон проєкту, промпт для ШІ-агента та знімок каталогу як тестові дані
👩‍💻 Доступ розробника тимчасові гранти підряднику на режим розробника
🛠️ Режим розробника запуск плагіна прямо з вашого комп'ютера, без установлення

Відкритий редактор займає весь екран, а адреса сторінки отримує позначку ?app=<ідентифікатор> — таким посиланням можна поділитися з тим, у кого є доступ.


Що потрібно для запуску#

Що Навіщо
Картка «Кастомні редактори (SDK)» у магазині додатків розділ нішевий і за замовчуванням вимкнений
Ви — власник облікового запису установлювати, вмикати, видаляти плагіни та видавати гранти може лише власник; співробітники бачать список лише для читання
Зібраний плагін: index.js + manifest.json або ваш, або від розробника, або реліз у публічному GitHub-репозиторії
Для розробки — обліковий запис співробітника для розробника режим розробника видається за e-mail його робочого логіна

Крок 1. Вирішити, хто напише редактор#

Шляхів три, і вони відрізняються тим, хто тримає код:

Шлях Кому підходить Як
ШІ-агент за нашим шаблоном власник, який готовий пояснити завдання словами блок «Розробка з ШІ»: шаблон + промпт → агент збирає реліз → ви його ставите
Свій або найманий розробник є підрядник або розробник у команді видайте йому грант на режим розробника, він пише й налагоджує на живому обліковому записі, ви ставите готовий реліз
Готовий реліз з GitHub плагін уже написано (вами або для вас) «Установлення з GitHub»: адреса репозиторію та тег

У всіх трьох випадках установлення залишається за власником: навіть розробник із грантом може лише запустити свій код у себе в режимі розробника, але не поставити його в обліковий запис.


Крок 2. Розробка з ШІ (вайб-кодинг)#

Блок «🤖 Розробка з ШІ (вайб-кодинг)» дає чотири речі, щоб віддати завдання ШІ-агенту (Claude Code, Cursor і подібним) і не пояснювати йому контракт з нуля:

  1. «⬇️ Завантажити шаблон проєкту (zip)» — готовий каркас плагіна: маніфест, точка входу, опис контракту (GUIDE.en.md) та інструкція для агента. Архів збирається прямо в браузері, нічого зовнішнього завантажувати не потрібно.
  2. «📋 Скопіювати промпт для агента» — текст завдання англійською: стартувати від шаблону, звірятися з гідом, чим перевіряти результат.
  3. Конфігурація набору інструментів для агента — з нею агент збирає плагін, піднімає локальний стенд-копію пісочниці, робить скриншоти та знімки стану, а наприкінці збирає реліз: zip для ручного встановлення або реліз у GitHub.
  4. «⬇️ Завантажити знімок каталогу (тестова фікстура)» — ваші категорії та товари файлом, щоб агент тестував на реальних даних, а не на вигаданих.

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


Крок 3. Установити редактор#

З файлів. Блок «Установити редактор»: виберіть «Бандл (index.js)» і «Маніфест (manifest.json)» → «Перевірити й установити». Панель спершу перевіряє маніфест — ідентифікатор, локалізоване ім'я, версію, мінімальну версію SDK, місця розміщення, права та список мережевих хостів, — а потім показує консент: «Цей редактор запитує:» та список прав людською мовою. Поки ви не натиснули «Установити», нічого не встановлюється.

З GitHub. Блок «Установлення з GitHub»: поле «Репозиторій (URL або owner/repo)», поле «Тег (порожньо = останній реліз)» і кнопка «Перевірити репозиторій». Конвенція проста: manifest.json у корені репозиторію, зібраний dist/index.js у тезі, тег вигляду v{версія}. Маніфест і бандл тягнуться прямо з вашого браузера. В обох випадках під час установлення рахується й запам'ятовується відбиток бандла (sha256): якщо файл потім підмінять, запуск буде заблоковано, і панель попросить перевстановити редактор.


Права та місця розміщення#

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

Право Що відкривається
Читати каталог категорії, товари, характеристики та кастомні поля карток
Створювати й змінювати товари каталогу створення та редагування товарів, імпорт партії, власні поля й визначення характеристик
Змінювати ціни, доступність і стоп-листи за точками те саме, що робить панель у меню точки
Читати складський довідник товарів номенклатура складу на читання
Зберігати свої налаштування у вашому сховищі власні ключі плагіна у вашому обліковому записі (до 1 МБ на ключ)
Серверна частина розширення виклики коду плагіна на нашому сервері — єдиний спосіб для нього вийти в інтернет

Чого в списку немає взагалі — того плагін не отримає жодними налаштуваннями: гостей і клієнтів, замовлень, чеків, фінансів, співробітників, листувань і дзвінків міст не віддає.

Місця розміщення (слоти) — три:

Слот Де з'явиться
Власна сторінка пункт усередині розділу «Кастомні редактори», відкривається на весь екран
Кнопка на сторінці каталогу інструмент поруч із каталогом товарів
Вкладка розділу «Склад» плагін малюється вкладкою складу — так упаковано наше вбудоване розширення «ВетИС»

Режим розробника та доступ підряднику#

Режим розробника (блок «🛠️ Режим розробника») монтує плагін живцем із вашого комп'ютера: поле «URL бандла» приймає лише адреси localhost / 127.0.0.1, поруч — «JSON маніфесту», кнопка «Запустити dev-сесію». Відбиток при цьому не піниться, а сесія живе до закриття вкладки; «Зупинити dev-сесію» вимикає її одразу.

Гранти розробнику (блок «👩‍💻 Доступ розробника») потрібні, коли пише не власник. Розробнику заводиться звичайний обліковий запис співробітника, а потім власник видає грант: «Email розробника (його staff-логін)», «Дозволені права», «Термін дії (днів)» і необов'язкова нотатка → «Видати доступ». Відкликати можна будь-якої миті кнопкою «Відкликати».

Що дає грант, а що ні:

  • дає — лише режим розробника з правами, які ви позначили (типово термін 14 днів, максимум 90);
  • права ріжуться перетином: що просить маніфест і що видано грантом; зайвого плагін не отримає, навіть якщо попросить у маніфесті;
  • не дає — встановлення, увімкнення та видалення плагінів: це залишається власнику.

Оновлення, увімкнення та видалення#

Дія Як
Відкрити кнопка «Відкрити» на картці (або посилання з ?app=…)
Вимкнути тимчасово «Вимкнути» — плагін залишається встановленим, але не виконується й не показується у своїх місцях
Оновити для плагінів із GitHub — «Перевірити оновлення» і потім «Оновити до …»; якщо версія свіжа, панель скаже «Встановлено останню версію». Плагіни з файлів оновлюються повторним встановленням
Видалити «Видалити» з підтвердженням: налаштування й пункт прибираються, завантажені релізи залишаються у сховищі

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


Вбудовані розширення#

Частина наших власних модулів упакована в той самий формат — це видно з поведінки, але ставити їх не потрібно: вони приїздять разом із панеллю й вмикаються карткою в магазині додатків, а не в цьому розділі.

Зараз такий модуль один — «Меркурий/ВетИС» для Росії: він живе вкладкою розділу «Склад», виконується в тій самій пісочниці й з тими самими перевірками відбитка. До списку встановлених редакторів вбудовані розширення не потрапляють.


Що редактор може і чого не може#

Може Не може
Читати й змінювати каталог у межах виданих прав дізнатися ваш пароль або скористатися вашою сесією
Показувати свій інтерфейс, повідомлення та запити підтвердження відкрити код або дані адмінки навколо себе
Відкрити рідний редактор товару панелі звернутися в інтернет напряму з вікна плагіна
Зберігати свої налаштування у вашому обліковому записі побачити дані іншого плагіна на ваших картках
Ходити в інтернет через серверну частину — і лише за тими https-адресами, що перелічені в маніфесті (їх не більше восьми) виконуватися після підміни файлу: розбіжність відбитка блокує запуск

Сторонні плагіни позначаються на картці попередженням: «Сторонній додаток у пісочниці — він ніколи не питає пароль». Якщо плагін просить логін від панелі, платіжні дані або код із SMS — це шахрайство, а не робота розширення.


Обмеження#

  • Розділ вимкнено за замовчуванням і розрахований на тих, хто пише код (або замовляє його): пересічному власнику тут робити нічого.
  • Усе, крім перегляду, — лише у власника облікового запису. Співробітник бачить хаб read-only; режим розробника — лише з активним грантом.
  • Приватні GitHub-репозиторії не підтримуються — репозиторій має бути публічним, встановлення йде за тегом.
  • Автооновлення немає: оновлення плагіна завжди запускає власник.
  • Магазину чужих плагінів немає. Готові розширення не публікуються й не продаються через панель — джерело лише ваш файл або ваш репозиторій.
  • Слотів три (власна сторінка, кнопка каталогу, вкладка складу) — вбудуватися в довільний екран панелі плагін не може.
  • Міст не віддає гостей, замовлення, фінанси, співробітників і листування — обійти це правами не можна, таких запитів просто не існує.
  • Окремого журналу «плагін зробив те-то» немає. Права видно на картці, а правки каталогу потрапляють у звичайну історію товарів; якщо потрібен контроль, починайте з плагіна, якому видано лише читання.
  • Технічні стелі: бандл до 4 МБ, до 8 мережевих адрес у маніфесті, до 1 МБ на один ключ сховища; серверний прогін — до 30 секунд і до 50 звернень в інтернет за раз.
  • Дані плагіна залишаються в хмарі вашого бренду: в облікового запису на cenaly.ru стан серверної частини лежить у російському контурі.

Усунення неполадок#

Симптом Перевірте
Розділу немає в меню чи увімкнено картку «Кастомні редактори (SDK)» у магазині додатків; чи винесено розділ кнопкою «📌 У сайдбар»
Співробітник не бачить кнопок встановлення так і задумано: встановлення, видалення й гранти — лише у власника облікового запису
«Бандл у сховищі не збігається зі встановленим відбитком. Запуск заблоковано» файл плагіна підмінили після встановлення — перевстановіть редактор, щоб записати новий відбиток
«Редактор не запустився вчасно (немає connect() за 10 с)» плагін не вийшов на зв'язок: помилка в його коді або зібрано не той файл
«Не вдалося завантажити бандл редактора» реліз недоступний або файл пошкоджено — перевстановіть
«Редактор не знайдено або вимкнено» під час переходу за посиланням ?app=… плагін видалено або вимкнено на картці
«Не вдалося отримати редактор з GitHub» репозиторій приватний, немає manifest.json у корені, немає dist/index.js у тезі або тег названо не за конвенцією v{версія}
«Допустимі лише адреси localhost / 127.0.0.1» режим розробника навмисно не приймає зовнішні адреси — підніміть збірку локально
Плагін не бачить потрібних даних звірте «Права» на картці; у розробника з грантом права додатково ріжуться перетином із грантом
Плагін не може звернутися до чужого сервісу прямої мережі з пісочниці немає: звернення робиться серверною частиною, а адреса має бути в маніфесті
«Редактор повідомляє про незбережені зміни. Закрити все одно?» плагін сам повідомив про чернетку — збережіть роботу всередині нього перед закриттям

Часті питання#

Чи потрібно вміти програмувати?#

Щоб встановити готовий реліз — ні. Щоб отримати сам реліз — так: його пише розробник або ІІ-агент за нашим шаблоном із блоку «Розробка з ІІ». Розділ — інструмент для коду, а не конструктор «мишкою».

Чи може чужий плагін побачити моїх клієнтів або виручку?#

Ні. Плагін працює в пісочниці й отримує дані лише через міст, а міст уміє рівно шість речей: каталог, ціни та стоп-листи, довідник складу, власне сховище, виклик своєї серверної частини та елементи інтерфейсу. Гостей, замовлень, чеків, фінансів, співробітників і листування там немає в принципі. Що саме дозволено конкретному плагіну, завжди видно на його картці в рядку «Права».

Як віддати розробку підряднику й не пускати його в обліковий запис цілком?#

Заведіть йому обліковий запис співробітника, а потім видайте грант у блоці «Доступ розробника»: позначте лише потрібні права й поставте строк (за замовчуванням 14 днів, максимум 90). Він отримає режим розробника і нічого більше; встановлення плагіна все одно залишиться за вами. Грант відкликається однією кнопкою.

Чи оновиться плагін сам, коли автор випустить нову версію?#

Ні. Оновлення запускає власник: «Перевірити оновлення» → «Оновити до …». Так нова версія не з'явиться в обліковому записі без відома людини — разом із версією могли змінитися й запитувані права.

Де плагін зберігає свої налаштування та дані?#

У вашому обліковому записі, в окремому сховищі під його ідентифікатором (до 1 МБ на ключ), плюс, якщо він їх використовує, у кастомних полях ваших карток — кожен плагін бачить лише свій простір. В облікового запису на cenaly.ru серверна частина та її стан залишаються в російському контурі.

Чим це відрізняється від API і MCP?#

API для розробників і MCP своєї АТС потрібні, коли програма працює зовні: свій сайт, чужа облікова система, ІІ-агент. Кастомний редактор — навпаки, інтерфейс усередині панелі: співробітник відкриває його як звичайну сторінку адмінки й не виходить із робочого вікна.


Пов'язані розділи#

Was this article helpful?