Zapora sieciowa i przechowywanie danych.

Learn DXPR BuilderManage the siteVoldoen aan compliance-eisen

DXPR Builder przechowuje twoje strony we własnej bazie Drupala. Kontaktuje się z usługami DXPR w sprawie kontroli licencji, zasobów edytora i żądań AI. Ta strona wymienia każde połączenie, co każde niesie, gdzie działają modele DXAI Kavya, jak przechowywany jest klucz produktu i co działa przy ograniczonym dostępie wychodzącym.

Połączenia w skrócie

Host Wykonuje Cel Potrzebny do
dxpr.com Serwer Drupala Status licencji, sprawdzenie domeny, synchronizacja licencjonowanych użytkowników Edycja
cdn2.dxpr.com Przeglądarka redaktora JavaScript i CSS edytora (główny) Edycja
cdn.dxpr.com Przeglądarka redaktora JavaScript i CSS edytora (zapasowy) Edycja
kavya.dxpr.com Serwer Drupala Żądania AI i saldo kredytów AI Funkcje AI
html-extract.dxpr.com Przeglądarka redaktora AI „klonowanie z URL” Funkcje AI
r.jina.ai (strona trzecia) Przeglądarka redaktora Czyta strony, których URL-e pojawiają się w prompcie Funkcje AI
tuur.dxpr.com Przeglądarka redaktora Analityka użycia edytora Opcjonalnie

Wszystkie połączenia używają HTTPS na porcie 443. Odwiedzający witrynę nigdy nic nie wczytują z serwerów DXPR: opublikowane strony renderują się z HTML zapisanego w bazie, a skrypt front-endowy (dxpr_builder/dxpr_frontend.min.js) jest dostarczany wewnątrz modułu. app.dxpr.com pojawia się tylko w linkach pokazywanych administratorom.

Kontrole licencji (dxpr.com)

Serwer Drupala wywołuje cztery endpointy zdefiniowane w src/Service/DxprBuilderLicenseServiceInterface.php, każdy z kluczem produktu jako nagłówkiem Authorization: Bearer.

Endpoint Kiedy Wysyłane dane
GET /api/user-license Co 24 godziny, gdy autoryzowany, co 30 minut, gdy nie gba i users_tier (liczba kont z uprawnieniem edit with dxpr builder i próg, do którego wpada), values_count (elementy treści używające pola kreatora), site_base_url, site (HMAC soli hash witryny; sól nie jest wysyłana osobno), site_mail (z system.site), project, version
GET /api/domain-blacklist/{hostname} Co godzinę Tylko nazwa hosta; bez nagłówka autoryzacji
POST /api/central-user-storage/{add,remove,sync} Gdy zmieniają się konta, uprawnienia albo klucz produktu; kolejne są kolejkowane i wykonują się na cronie Nazwa hosta plus, dla każdego konta z uprawnieniem edycji, jego adres e-mail i nazwy ról. Konta bez prawidłowego adresu e-mail są pomijane
GET /api/user-license/users Gdy otwiera się stronę licencji użytkowników Nic poza kluczem

Treść strony nigdy nie jest częścią żądania licencji. Moduł drukuje też ukryty <div> na stronie głównej z ustalonym ciągiem znacznika, progiem licencji, liczbą redaktorów i liczbą zapisów (dxpr_builder_page_bottom() w dxpr_builder.module). Da się go odczytać w źródle strony.

Zasoby edytora (cdn2.dxpr.com, cdn.dxpr.com)

Gdy Editor Assets jest Cloud (domyślnie), przeglądarka redaktora wczytuje JavaScript i CSS kreatora z https://cdn2.dxpr.com/<version>/, z powrotem do https://cdn.dxpr.com/<version>/ po nieudanym teście /health. Klucz produktu jest dołączany do każdego URL-a zasobu jako parametr jwt (dxpr_builder_library_info_build()). CDN sprawdza ten klucz: odpowiedź 401 sprawia, że js/editor_validation.js pokazuje „Your product key is not valid”.

Opcje Local (minified) i Local (unminified) pojawiają się na formularzu ustawień tylko, gdy w katalogu dxpr_builder/ modułu istnieje zbudowana kopia edytora, a taka kopia jest używana automatycznie, nawet gdy wybrano Cloud. Repozytorium git nie śledzi tych zbudowanych plików, więc wydanie pobrane z drupal.org wczytuje edytor z CDN.

Żądania AI (kavya.dxpr.com)

Przeglądarka nigdy nie kontaktuje się z kavya.dxpr.com. Edytor wysyła do tras we własnej witrynie (/dxpr_builder/ajax/ai/chat, /dxpr_builder/ajax/ai/image, /dxpr_builder/ajax/ai/image/edit; wszystkie wymagają uprawnienia edit with dxpr builder, tokena CSRF i licencjonowanego konta). Witryna przekazuje każde żądanie przez provider DXPR modułu Drupal AI (ai_provider_dxpr) do https://kavya.dxpr.com/v1/chat/completions, /v1/images/generations albo /v1/images/edits, uwierzytelnione kluczem DXPR API przechowywanym w module Key. Ustawienie host providera (ai_provider_dxpr.settings) może skierować żądania na inny host. Osobno strona ustawień AI wywołuje GET https://kavya.dxpr.com/v1/account/balance z kluczem produktu, aby pokazać saldo kredytów.

Co zawiera żądanie AI

Tylko funkcje AI wysyłają treść strony poza witrynę i tylko, gdy redaktor je uruchomi (dxpr_builder/build/dxpr-global/ai-service.js).

Żądanie Wysyłana treść
Generowanie tekstu i stron Prompt systemowy, prompt redaktora, historia czatu
Z wybranym elementem Zewnętrzny HTML elementu: cały, gdy 500 znaków albo mniej, w przeciwnym razie pierwsze i ostatnie 200 znaków
Operacje na poziomie strony Istniejący HTML strony, do 50 000 znaków; cała strona, gdy zastępowana jest cała strona
Pola opcjonalne Nazwa modelu, kolejność włączonych providerów, przewidywany wynik HTML, dozwolone znaczniki i klasy, flaga web_search, format odpowiedzi
Generowanie obrazu Prompt, rozmiar, jakość, tło
Edycja obrazu To samo plus obraz źródłowy, zakodowany base64

Dwie wygody pobierają strony z przeglądarki redaktora (ai-service-url-fetch.js): URL w prompcie jest żądany z dopisanym .md, a gdy to się nie uda, przez https://r.jina.ai/<url>, usługę czytającą strony, nieobsługiwaną przez DXPR; prompt proszący o sklonowanie strony wysyła URL do https://html-extract.dxpr.com/?url=.... W obu przypadkach wysyłany jest tylko URL.

Wyjście AI jest filtrowane w drodze powrotnej. Dozwolone domeny, zablokowane znaczniki i dozwolone znaczniki ustawia się na /admin/dxpr_studio/dxpr_builder/ai_settings w sekcji AI Output Filtering.

Gdzie działają modele DXAI Kavya

DXPR Builder oferuje trzy modele (src/Constants/AiModelConstants.php):

Model Nazwa API Opis pokazywany w formularzu ustawień
DXAI Kavya M1 kavya-m1 Najlepsza wydajność (OpenAI, Google Gemini, Anthropic)
DXAI Kavya M1 EU kavya-m1-eu Prywatność przede wszystkim (MistralAI)
DXAI Kavya M1 Fast kavya-m1-fast Najszybsze odpowiedzi, niższa jakość

Nie ma ustawienia regionu w żadnym z modułów. Rezydencja danych jest wybierana modelem i tym, których providerów nadrzędnych włączysz:

  • kavya-m1 przełącza między pięcioma providerami, wymienionymi z krajem w formularzu ustawień providera DXPR AI: Anthropic (Stany Zjednoczone), Google Gemini (Stany Zjednoczone), MistralAI (Francja), OpenAI (Stany Zjednoczone), XAI (Stany Zjednoczone). W trybie Manual priority przeciągasz providerów między Enabled a Disabled i ustawiasz ich kolejność.
  • kavya-m1-eu używa tylko MistralAI. README providera DXPR AI stwierdza, że „keeps data within European boundaries (servers in Netherlands)”; jego dokumentacja stwierdza, że serwer Kavya działa w Holandii z kopią zapasową w Niemczech, że żądania przechodzą przez serwery MistralAI we Francji i że nigdy nie przełącza na providera spoza UE. Te lokalizacje dokumentuje DXPR; nic w kodzie Drupala ich nie wymusza.

Gdy zainstalowano ai_provider_dxpr, model wybiera się na /admin/config/ai/providers/dxpr, a jego ustawienie allowed_models kontroluje, które modele mogą wybierać redaktorzy. Bez niego model i kolejność providerów ustawia się na /admin/dxpr_studio/dxpr_builder/ai_settings.

Jak przechowywany jest klucz produktu

Sekcja License na /admin/dxpr_studio/dxpr_builder/settings oferuje dwie opcje Storage method (src/Form/DxprBuilderSettingsForm.php, src/Service/DxprBuilderKeyService.php):

  • Key module: klucz jest odczytywany z encji Key wybranej w sekcji Key. dxpr_builder_update_9020() przenosi klucz znaleziony w dxpr_builder.settings do encji Key dxpr_builder_jwt, której provider Configuration wciąż go eksportuje. Tylko provider File albo Environment trzyma klucz poza eksportami konfiguracji.
  • Configuration storage: klucz jest zapisywany jawnym tekstem jako dxpr_builder.settings.json_web_token i jest dołączany do eksportów konfiguracji.

Klucz produktu to token JSON Web Token, który uwierzytelnia wywołania licencji, wywołanie salda kredytów i URL-e zasobów CDN; traktuj go jak poświadczenie.

Konfiguracja zapory sieciowej

Z Zezwól na wychodzący HTTPS do Uwagi
Serwer Drupala dxpr.com Licencja
Serwer Drupala kavya.dxpr.com Tylko AI
Stacje robocze redaktorów cdn2.dxpr.com, cdn.dxpr.com Zasoby edytora
Stacje robocze redaktorów html-extract.dxpr.com, r.jina.ai Tylko AI; zablokowanie wyłącza jedynie sprawdzanie adresów URL i klonowanie
Stacje robocze redaktorów tuur.dxpr.com Analityka; blokowanie nie wpływa na edycję

Analityka (dxpr_builder/build/dxpr-analytics/, PostHog) rozpoznaje zdarzenia po adresie e-mail redaktora i nazwie hosta witryny. Wyłącz ją przez drush config:set dxpr_builder.settings record_analytics 0; klucz nie ma pola w formularzu. Dwa kolejne klucze bez pola w formularzu są odczytywane z dxpr_builder.settings: cloud_url zastępuje bazowy URL CDN (VERSION jest podmieniane na wersję modułu), a license_endpoint zastępuje endpoint centralnego przechowywania użytkowników. Ustaw je nadpisaniem konfiguracji w settings.php.

Konfiguracja proxy

Wywołania licencji i AI używają klienta HTTP Drupala, więc proxy konfiguruje się w 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'],
];

Przeglądarki redaktorów wczytują zasoby CDN i wywołują usługi analityki i czytania bezpośrednio, więc te żądania podlegają ustawieniom proxy stacji roboczych.

Wdrożenia odizolowane (air-gapped) i lokalne (on-premise)

DXPR Builder działa na twoim własnym serwerze; żadna treść nie przechodzi przez hostowany komponent. Gdy ani serwer, ani redaktorzy nie mogą dotrzeć do DXPR:

Możliwość Bez żadnego dostępu do DXPR
Udostępnianie opublikowanych stron Działa; nic nie jest wczytywane z DXPR
Przechowywanie treści Działa; strony są polami w twojej bazie
Wczytywanie edytora Nie działa, chyba że lokalna kompilacja edytora znajduje się w dxpr_builder/
Walidacja licencji Nie działa. Moduł loguje błąd, pokazuje administratorom „We are having trouble connecting to the DXPR servers” i ponawia co 30 minut. Edycja nie jest blokowana, gdy skonfigurowano klucz produktu
Strona licencji użytkowników Pusta; potrzebuje dxpr.com
Funkcje AI Niedostępne; każde żądanie przechodzi przez kavya.dxpr.com
Analityka, badanie adresów URL, klonowanie z URL-a Pomijane po cichu

Bez żadnego klucza produktu moduł stosuje w kodzie limity darmowego progu: jeden redaktor i 100 elementów treści.

W pełni lokalne wdrożenie działa więc do udostępniania i przechowywania treści; edycja potrzebuje dostępu do CDN albo lokalnej kompilacji edytora, a walidacja licencji potrzebuje dxpr.com. Skontaktuj się z DXPR, jeśli potrzebujesz kompilacji edytora do hostowania wewnętrznego.

Co dalej?