Фаєрвол і резидентність даних.

Вивчення DXPR BuilderКерування сайтомВідповідність вимогам

DXPR Builder зберігає ваші сторінки у вашій власній базі даних Drupal. Він звертається до сервісів DXPR для перевірок ліцензії, ресурсів редактора й запитів ШІ. Ця сторінка перелічує кожне з’єднання, що кожне несе, де працюють моделі DXAI Kavya, як зберігається ключ продукту і що працює за обмеженого вихідного доступу.

З’єднання одним поглядом

Хост Хто звертається Призначення Потрібно для
dxpr.com Сервер Drupal Статус ліцензії, перевірка домену, синхронізація ліцензованих користувачів Редагування
cdn2.dxpr.com Браузер редактора JavaScript і CSS редактора (основні) Редагування
cdn.dxpr.com Браузер редактора JavaScript і CSS редактора (резервні) Редагування
kavya.dxpr.com Сервер Drupal Запити ШІ й баланс кредитів ШІ Функції ШІ
html-extract.dxpr.com Браузер редактора «Клонування з URL» ШІ Функції ШІ
r.jina.ai (сторонній) Браузер редактора Читає вебсторінки, URL-адреси яких з’являються в запрошенні Функції ШІ
tuur.dxpr.com Браузер редактора Аналітика використання редактора Необов’язково

Усі з’єднання використовують HTTPS на порті 443. Відвідувачі сайта ніколи нічого не завантажують із серверів DXPR: опубліковані сторінки відображаються з HTML, збереженого в базі даних, а скрипт інтерфейсу (dxpr_builder/dxpr_frontend.min.js) постачається всередині модуля. app.dxpr.com з’являється лише в посиланнях, показаних адміністраторам.

Перевірки ліцензії (dxpr.com)

Сервер Drupal викликає чотири кінцеві точки, визначені у файлі src/Service/DxprBuilderLicenseServiceInterface.php, кожну з ключем продукту як заголовком Authorization: Bearer.

Кінцева точка Коли Надіслані дані
GET /api/user-license Кожні 24 години за авторизації, кожні 30 хвилин без неї gba і users_tier (кількість облікових записів із дозволом edit with dxpr builder і тариф, до якого вона потрапляє), values_count (елементи вмісту з полем конструктора), site_base_url, site (HMAC геш-солі сайта; сама сіль не надсилається), site_mail (з system.site), project, version
GET /api/domain-blacklist/{hostname} Щогодини Лише назва хоста; без заголовка авторизації
POST /api/central-user-storage/{add,remove,sync} Коли змінюються облікові записи, дозволи або ключ продукту; подальші дії ставляться в чергу й виконуються за cron Назва хоста плюс, для кожного облікового запису з дозволом редагування, його адреса електронної пошти й назви ролей. Облікові записи без дійсної адреси електронної пошти пропускаються
GET /api/user-license/users Коли відкривається сторінка «Ліцензії користувачів» Нічого, крім ключа

Вміст сторінки ніколи не є частиною запиту ліцензії. Модуль також друкує прихований <div> на головній сторінці з фіксованим рядком-маркером, тарифом ліцензії, кількістю редакторів і кількістю збережень (dxpr_builder_page_bottom() у файлі dxpr_builder.module). Його видно у джерелі сторінки.

Ресурси редактора (cdn2.dxpr.com, cdn.dxpr.com)

Коли для параметра Ресурси редактора задано Хмара (стандарт), браузер редактора завантажує JavaScript і CSS конструктора з https://cdn2.dxpr.com/<version>/, переходячи на https://cdn.dxpr.com/<version>/ після невдалої перевірки /health. Ключ продукту додається до кожної URL-адреси ресурсу як параметр запиту jwt (dxpr_builder_library_info_build()). CDN перевіряє цей ключ: відповідь 401 змушує js/editor_validation.js показати «Ваш ключ продукту недійсний».

Варіанти Локальні (мініфіковані) і Локальні (немініфіковані) з’являються у формі налаштувань, лише коли зібрана копія редактора існує в каталозі dxpr_builder/ модуля, і така копія використовується автоматично, навіть коли вибрано «Хмара». Репозиторій git не відстежує ці зібрані файли, тож реліз, завантажений із drupal.org, завантажує редактор з CDN.

Запити ШІ (kavya.dxpr.com)

Браузер ніколи не звертається до kavya.dxpr.com. Редактор надсилає запити на маршрути вашого власного сайта (/dxpr_builder/ajax/ai/chat, /dxpr_builder/ajax/ai/image, /dxpr_builder/ajax/ai/image/edit; усі потребують дозволу edit with dxpr builder, токена CSRF і ліцензованого облікового запису). Сайт ретранслює кожен запит через постачальника DXPR модуля AI Drupal (ai_provider_dxpr) на https://kavya.dxpr.com/v1/chat/completions, /v1/images/generations або /v1/images/edits з автентифікацією ключем DXPR API, збереженим у модулі Key. Налаштування host постачальника (ai_provider_dxpr.settings) може спрямувати запити на інший хост. Окремо сторінка налаштувань ШІ викликає GET https://kavya.dxpr.com/v1/account/balance з ключем продукту, щоб показати ваш баланс кредитів.

Що містить запит ШІ

Лише функції ШІ надсилають вміст сторінки за межі сайта, і лише коли редактор їх запускає (dxpr_builder/build/dxpr-global/ai-service.js).

Запит Надісланий вміст
Генерування тексту й сторінок Системне запрошення, запрошення редактора, історія чату
З вибраним елементом Зовнішній HTML елемента: цілком, якщо 500 символів або менше, інакше його перші й останні 200 символів
Операції рівня сторінки Наявний HTML сторінки до 50 000 символів; уся сторінка, коли замінюється ціла сторінка
Необов’язкові поля Назва моделі, порядок увімкнутих постачальників, передбачуваний результат HTML, дозволені теги й класи, прапорець web_search, формат відповіді
Генерування зображень Запрошення, розмір, якість, тло
Редагування зображень Те саме плюс вихідне зображення, закодоване base64

Дві зручності отримують вебсторінки з браузера редактора (ai-service-url-fetch.js): URL-адреса в запрошенні запитується з доданим .md, а в разі невдачі через https://r.jina.ai/<url>, сторонній сервіс читання, яким не керує DXPR; запрошення, що просить клонувати сторінку, надсилає URL-адресу на https://html-extract.dxpr.com/?url=.... В обох випадках надсилається лише URL-адреса.

Вивід ШІ фільтрується на зворотному шляху. Дозволені домени, заблоковані теги й дозволені теги задаються за адресою /admin/dxpr_studio/dxpr_builder/ai_settings у розділі Фільтрування виводу ШІ.

Де працюють моделі DXAI Kavya

DXPR Builder пропонує три моделі (src/Constants/AiModelConstants.php):

Модель Назва API Опис у формі налаштувань
DXAI Kavya M1 kavya-m1 Найкраща продуктивність (OpenAI, Google Gemini, Anthropic)
DXAI Kavya M1 EU kavya-m1-eu Орієнтована на приватність (MistralAI)
DXAI Kavya M1 Fast kavya-m1-fast Найшвидші відповіді, нижча якість

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

  • kavya-m1 перемикається між п’ятьма постачальниками, переліченими з їхньою країною у формі налаштувань постачальника DXPR AI: Anthropic (Сполучені Штати), Google Gemini (Сполучені Штати), MistralAI (Франція), OpenAI (Сполучені Штати), XAI (Сполучені Штати). У режимі Ручний пріоритет ви перетягуєте постачальників між Увімкнено і Вимкнено і задаєте їхній порядок.
  • kavya-m1-eu використовує лише MistralAI. README постачальника DXPR AI стверджує, що він «тримає дані в межах Європи (сервери в Нідерландах)»; його документація стверджує, що сервер Kavya працює в Нідерландах із резервом у Німеччині, що запити йдуть через сервери MistralAI у Франції і що він ніколи не переходить на постачальника поза ЄС. Ці розташування задокументовано DXPR, а не забезпечено чимось у коді Drupal.

Зі встановленим ai_provider_dxpr модель вибирається за адресою /admin/config/ai/providers/dxpr, і його налаштування allowed_models керує тим, які моделі можуть вибирати редактори. Без нього модель і порядок постачальників задаються за адресою /admin/dxpr_studio/dxpr_builder/ai_settings.

Як зберігається ключ продукту

Розділ Ліцензія сторінки /admin/dxpr_studio/dxpr_builder/settings пропонує два варіанти Спосіб зберігання (src/Form/DxprBuilderSettingsForm.php, src/Service/DxprBuilderKeyService.php):

  • Модуль Key: ключ читається з сутності Key, вибраної в полі Ключ. dxpr_builder_update_9020() переміщує ключ, знайдений у dxpr_builder.settings, до сутності Key dxpr_builder_jwt, чий постачальник Configuration усе ще його експортує. Лише постачальник File або Environment тримає ключ поза експортом конфігурації.
  • Зберігання в конфігурації: ключ зберігається у відкритому вигляді як dxpr_builder.settings.json_web_token і включається до експорту конфігурації.

Ключ продукту це вебтокен JSON, що автентифікує виклики ліцензії, виклик балансу кредитів і URL-адреси ресурсів CDN; ставтеся до нього як до облікових даних.

Конфігурація фаєрвола

Звідки Дозволити вихідний HTTPS до Примітки
Сервер Drupal dxpr.com Ліцензія
Сервер Drupal kavya.dxpr.com Лише ШІ
Робочі станції редакторів cdn2.dxpr.com, cdn.dxpr.com Ресурси редактора
Робочі станції редакторів html-extract.dxpr.com, r.jina.ai Лише ШІ; блокування вимикає тільки дослідження URL і клонування
Робочі станції редакторів tuur.dxpr.com Аналітика; блокування не впливає на редагування

Аналітика (dxpr_builder/build/dxpr-analytics/, PostHog) визначає події за адресою електронної пошти редактора й назвою хоста сайта. Вимкніть її командою drush config:set dxpr_builder.settings record_analytics 0; ключ не має поля форми. Ще два ключі без поля форми читаються з dxpr_builder.settings: cloud_url замінює базову URL-адресу CDN (замість VERSION підставляється версія модуля), а license_endpoint замінює кінцеву точку центрального сховища користувачів. Задайте їх перевизначенням конфігурації у файлі settings.php.

Конфігурація проксі

Виклики ліцензії й ШІ використовують HTTP-клієнт Drupal, тож проксі налаштовується у файлі settings.php:

$settings['http_client_config']['proxy'] = [
  'http' => 'http://proxy.example.com:8080',
  'https' => 'http://proxy.example.com:8080',
  'no' => ['localhost', '127.0.0.1'],
];

Браузери редакторів завантажують ресурси CDN і викликають сервіси аналітики й читання безпосередньо, тож ці запити наслідують налаштування проксі робочої станції.

Ізольовані й локальні розгортання

DXPR Builder працює на вашому власному сервері; жоден вміст не проходить через розміщений компонент. Коли ні сервер, ні редактори не можуть досягти DXPR:

Можливість Без будь-якого доступу DXPR
Обслуговування опублікованих сторінок Працює; нічого не завантажується з DXPR
Зберігання вмісту Працює; сторінки це значення полів у вашій базі даних
Завантаження редактора Не вдається, якщо локальної збірки редактора немає в dxpr_builder/
Перевірка ліцензії Не вдається. Модуль журналює помилку, показує адміністраторам «У нас виникли проблеми з підключенням до серверів DXPR» і повторює кожні 30 хвилин. Редагування не блокується, поки налаштовано ключ продукту
Сторінка «Ліцензії користувачів» Порожня; їй потрібен dxpr.com
Функції ШІ Недоступні; кожен запит іде через kavya.dxpr.com
Аналітика, дослідження URL, клонування з URL Тихо пропускаються

Без ключа продукту взагалі модуль застосовує ліміти безкоштовного тарифу в коді: один редактор і 100 елементів вмісту.

Повністю локальне розгортання тому працює для обслуговування й зберігання вмісту; редагування потребує доступу CDN або локальної збірки редактора, а перевірка ліцензії потребує dxpr.com. Зверніться до DXPR, якщо вам потрібна збірка редактора для внутрішнього хостингу.

Що далі?