Enterprise edycja
Licencjonowanie
W skrócie
Dział zatytułowany „W skrócie”NextPDF Enterprise rozwiązuje Twoją licencję w uprawnienie czasu wykonania: poziom edycji, zestaw możliwości oraz decyzję o brandingu. Płatna licencja, która wygasła, nadal działa w ramach gwarancji wieczystego rozwiązania awaryjnego; zatrzymują się tylko aktualizacje i wsparcie. Ta strona opisuje obserwowalne z zewnątrz zachowanie powierzchni licencjonowania, bramy możliwości i funkcji oraz opcjonalny kontrakt aktywacji online.
Dostępność i licencjonowanie
Dział zatytułowany „Dostępność i licencjonowanie”Ta możliwość jest dostarczana w NextPDF Enterprise (nextpdf/enterprise) i aktywuje się wraz z kopertą licencji poziomu Enterprise. Wdrożenie bez tego uprawnienia nie ładuje klas tej możliwości. Porównaj edycje i uzyskaj licencję.
Licencjonowanie jest podstawową powierzchnią Enterprise: rozwiązuje każdą inną możliwość, więc jest zawsze obecne po zainstalowaniu pakietu Enterprise. Poszczególne funkcje niżej w potoku są objęte bramą kodów możliwości — możliwości poziomu edycji oraz niezależnie wygasające pakiety rozszerzeń. Brama raportuje aktywną edycję, ważność, stan okresu karencji oraz zbiór aktywnych pakietów.
Przegląd koncepcyjny
Dział zatytułowany „Przegląd koncepcyjny”Powierzchnia licencjonowania ma jedno zadanie: przekształcić licencję w decyzję, na której aplikacja hosta może działać. Wytwarza niemutowalny wynik uprawnienia z pięcioma polami, które mają znaczenie w czasie wykonania — poziom edycji, kanał (płatny lub ewaluacyjny), tryb brandingu, czy zainstalowana wersja może działać oraz czy aktualizacje i wsparcie są objęte uprawnieniem.
Edycje tworzą ścisłą hierarchię: Enterprise obejmuje Pro, Pro obejmuje Core. Sprawdzenie możliwości jest zatem zaliczone, gdy licencjonowana edycja jest na poziomie minimalnego poziomu możliwości lub powyżej. Niektóre możliwości nie są w ogóle powiązane z edycją — należą do pakietów rozszerzeń, które niosą własne wygaśnięcie, niezależne od okresu obowiązywania licencji bazowej.
Decyzja o uprawnieniu rozróżnia pięć odrębnych stanów. Aktywna licencja ma pełny dostęp. Płatna licencja po okresie obowiązywania, ale w obrębie okna karencji, zachowuje pełny dostęp i ujawnia ostrzeżenie o rychłym odnowieniu. Płatna licencja po oknie karencji wchodzi w wieczyste rozwiązanie awaryjne: zainstalowana wersja działa nieograniczenie długo, ale aktualizacje i wsparcie nie są już objęte uprawnieniem. Licencja ewaluacyjna zachowuje się inaczej — gdy wygasa, środowisko uruchomieniowe jest ograniczone, ponieważ ewaluacja jest z założenia ograniczona w czasie. Gdy nie ma żadnej licencji, host rozwiązuje się w stan fail-closed, a każdy wynik jest oznaczony wizualnie, tak aby wdrożenia bez licencji nigdy nie pomylić z płatnym.
Umowna liczba stanowisk nie jest egzekwowana w czasie wykonania. Nie ma żadnej telemetrii ani obowiązkowego dzwonienia do domu (phone-home) na potrzeby zwykłego działania. Opcjonalny klient online istnieje wyłącznie na potrzeby jawnej aktywacji, sprawdzeń odnowienia oraz sygnałów życia (heartbeat) realizowanych na zasadzie najlepszego możliwego wyniku, a host, który nigdy go nie wywoła, mimo to otrzymuje kompletną decyzję o uprawnieniu z lokalnie dostarczonej licencji.
Tryb próbny to osobna, węższa polityka. Gdy licencja jest oznaczona jako próbna, ogranicza przepustowość przetwarzania i stosuje znak wodny ewaluacji do generowanego wyniku, tak aby praca produkcyjna na dużą skalę wymagała płatnej licencji. Wygaśnięcie wersji próbnej jest egzekwowane ściśle, bez okresu karencji.
Dlaczego działa to w ten sposób
Dział zatytułowany „Dlaczego działa to w ten sposób”Decyzją nośną jest to, że płatna licencja nigdy nie wyłącza zainstalowanego środowiska uruchomieniowego. Gdy płatny okres obowiązywania się kończy, uprawnienie przechodzi w EntitlementStatus::PerpetualFallback — zainstalowana wersja działa dalej, a odbierane są jedynie przyszłe aktualizacje i wsparcie. Ta gwarancja utrzymuje się, ponieważ uprawnienie jest czystą decyzją w pamięci nad lokalnie dostarczoną licencją, więc żadne dzwonienie do domu (phone-home) ani żadna awaria sieci nie może wyciągnąć płatnego środowiska uruchomieniowego spod klienta. Przeciwwagą są domyślne ustawienia fail-closed: nieobecna licencja lub wygasła ewaluacja rozwiązuje się w poziom Core i ustawia brandingMode na znak wodny ewaluacji. Dzięki temu wdrożenia bez licencji nigdy nie pomyli się po cichu z płatnym. Wieczyste rozwiązanie awaryjne dla tego, co kupiłeś, fail-closed dla tego, czego nie kupiłeś — to właśnie ta para sprawia, że licencjonowanie jest przyjazne offline, nie stając się systemem opartym na zaufaniu.
Tło projektowe: Otwarty rdzeń, bez uzależnienia od dostawcy.
Powierzchnia publicznego API
Dział zatytułowany „Powierzchnia publicznego API”composer require nextpdf/enterprise:^3Wspierane punkty integracji to ewaluator uprawnień (licencja na wynik uprawnienia), brama funkcji czasu wykonania (isFeatureEnabled, requireFeature, hasCapability, requireCapability, isInGracePeriod, currentEdition, getActivePacks, trialPolicy), rejestr możliwości (rozstrzyganie trasy na możliwość oraz zbiór dostępnych możliwości) oraz opcjonalny klient licencji (activate, checkRenewal, heartbeat). Traktuj ewaluator uprawnień jako jedyny autorytet dla decyzji wyprowadzanych z licencji; nie rozgałęziaj się bezpośrednio na surowych polach licencji.
Przykład kodu — szybki start
Dział zatytułowany „Przykład kodu — szybki start”use NextPDF\Enterprise\Licensing\EntitlementEvaluator;
$result = (new EntitlementEvaluator())->evaluate($license);
if (! $result->runtimeAllowed) { // No license, or an expired evaluation license. throw new RuntimeException($result->warningMessage ?? 'Enterprise runtime disabled.');}
// Perpetual fallback: still allowed to run; updates/support may be off.$canUpdate = $result->updateEntitled;$watermark = $result->shouldApplyEvaluationBranding();Przykład kodu — produkcja
Dział zatytułowany „Przykład kodu — produkcja”use NextPDF\Enterprise\Licensing\CapabilityCode;use NextPDF\Enterprise\Licensing\FeatureGate;
final class ReportController{ public function __construct(private readonly FeatureGate $gate) {}
public function generate(): Response { // Throws a structured 403-style exception carrying the required // capability, the required pack, the current packs, and an // upgrade-info URL — usable as an upsell touchpoint. $this->gate->requireCapability(CapabilityCode::EnterpriseComplianceEvidence);
if ($this->gate->isInGracePeriod()) { $this->logger->notice('Enterprise license in grace period — renewal due.'); }
return $this->renderReport(); }}Przypadki brzegowe i pułapki
Dział zatytułowany „Przypadki brzegowe i pułapki”- Wieczyste rozwiązanie awaryjne to nie okres karencji. Karencja utrzymuje włączone aktualizacje i wsparcie; rozwiązanie awaryjne utrzymuje włączone tylko środowisko uruchomieniowe. Oba utrzymują działanie zainstalowanej wersji w przypadku licencji płatnych.
- Wygaśnięcie ewaluacji ogranicza środowisko uruchomieniowe. W przeciwieństwie do licencji płatnej, wygasła licencja ewaluacyjna zatrzymuje środowisko uruchomieniowe i utrzymuje znak wodny ewaluacji.
- Brak licencji zawodzi fail-closed. Bez skonfigurowanej licencji uprawnienie to „brak licencji”, środowisko uruchomieniowe jest wyłączone dla ścieżek Enterprise, a emitowany wynik jest oznaczany znakiem wodnym, tak aby stan był widoczny w logach i artefaktach.
- Wygaśnięcie pakietu jest niezależne. Pakiet rozszerzenia może wygasnąć, gdy licencja bazowa jest nadal aktywna; możliwość, którą przyznał, zawodzi wtedy z odrębnym wynikiem „pakiet wygasł”, osobnym od „brak licencji”.
- Odmowa możliwości jest ustrukturyzowana. Odmówiona możliwość niesie wymaganą możliwość, wymagany pakiet (jeśli istnieje), bieżące pakiety oraz adres URL z informacją o aktualizacji — ujawnij je użytkownikowi zamiast surowego błędu.
Wydajność
Dział zatytułowany „Wydajność”Ewaluacja uprawnień oraz sprawdzenia możliwości to operacje o stałym czasie, wykonywane w pamięci względem sparsowanej licencji — bez operacji wejścia/wyjścia na ścieżce żądania. Opcjonalny klient online wykonuje wywołania sieciowe wyłącznie przy jawnej aktywacji, sprawdzeniach odnowienia oraz sygnałach życia; niepowodzenia sygnału życia nie są krytyczne i nigdy nie blokują przetwarzania.
Uwagi dotyczące bezpieczeństwa
Dział zatytułowany „Uwagi dotyczące bezpieczeństwa”Ta strona celowo opisuje wyłącznie zachowanie obserwowalne. Weryfikacja koperty licencyjnej, sprawdzanie podpisu, logika przeciwdziałania nadużyciom oraz lokalizacja kodu egzekwowania są poza zakresem i nie są dokumentowane na powierzchni publicznej. Operatorzy obcują z publicznym kontraktem pakietu oraz udokumentowanym kontraktem zachowania. Kontrakt aktywacji online używa koperty z podpisaną odpowiedzią oraz dostarczonego przez klienta nonce, tak aby host mógł wykryć odtworzoną lub zmanipulowaną odpowiedź aktywacji; dokładna procedura weryfikacji nie jest częścią kontraktu publicznego.
Zgodność ze standardami
Dział zatytułowany „Zgodność ze standardami”- Odpowiedź aktywacji online jest niesiona w kopercie podpisanej w stylu JWS — trójki nagłówek chroniony / ładunek / podpis w zwartej, bezpiecznej dla adresów URL postaci opisanej w RFC 7515 (JSON Web Signature), §3.1.
- Materiał podpisu jest w base64url, dekodowany zgodnie z RFC 7515 §5.2.
- Kanoniczny JSON na potrzeby integralności koperty jest zgodny z JSON Canonicalization Scheme, RFC 8785, §3.
- Podpis aktywacji to podpis Ed25519 weryfikowany względem 32-bajtowego klucza publicznego, zgodnie z RFC 8032 (EdDSA), §5.1.
- Krótkożyciowe tokeny usług używane między komponentami niosą zarejestrowane roszczenia
iss,aud,sub,exporazjtii honorują regułę not-afterexpz RFC 7519 (JWT), §4.1.4.
Kontrakt zachowania
Dział zatytułowany „Kontrakt zachowania”- Ewaluacja uprawnień wytwarza niemutowalny wynik z ustalonym zestawem pól istotnych dla czasu wykonania (poziom edycji, kanał, tryb brandingu, dozwolenie środowiska uruchomieniowego, uprawnienie do aktualizacji/wsparcia).
- Płatna licencja nigdy nie wyłącza zainstalowanego środowiska uruchomieniowego: wygaśnięcie przeprowadza je przez karencję, a następnie wieczyste rozwiązanie awaryjne, odbierając jedynie aktualizacje i wsparcie.
- Wygasła licencja ewaluacyjna ogranicza środowisko uruchomieniowe i utrzymuje znak wodny ewaluacji; wygaśnięcie wersji próbnej jest egzekwowane ściśle, bez okresu karencji.
- Stan „brak licencji” jest fail-closed dla ścieżek Enterprise, a emitowany wynik jest oznaczany znakiem wodnym, tak aby wdrożenia bez licencji nigdy nie pomylić z płatnym.
- Odmowa możliwości jest ustrukturyzowana: niesie wymaganą możliwość, wymagany pakiet (jeśli istnieje), aktywne pakiety oraz adres URL z informacją o aktualizacji.
- Sprawdzenia uprawnień i możliwości to operacje o stałym czasie wykonywane w pamięci, bez operacji wejścia/wyjścia na ścieżce żądania.
Granica publikacji
Dział zatytułowany „Granica publikacji”Ta strona dokumentuje wyłącznie obserwowalne z zewnątrz zachowanie oraz wspieraną powierzchnię publicznego API. Wewnętrzne ścieżki przestrzeni nazw, klasy pomocnicze, tabele mechanizmów, nazwy plików runbooków oraz prefiksy zgłoszeń są poza zakresem.
Rozwiązanie awaryjne w Core
Dział zatytułowany „Rozwiązanie awaryjne w Core”NextPDF Core (Apache-2.0) nie ma powierzchni uprawnień edycji ani możliwości — brak bramy funkcji, brak ewaluatora uprawnień, brak klienta licencji. Host, który potrzebuje niezalicencjonowanego zachowania Apache-2.0, korzysta bezpośrednio z silnika Core, a nie z potoku Enterprise. Core nie bramkuje, nie oznacza znakiem wodnym na potrzeby licencjonowania ani nie ewaluuje uprawnień.
Rozwiązanie awaryjne w Pro
Dział zatytułowany „Rozwiązanie awaryjne w Pro”NextPDF Pro również nie ma powierzchni uprawnień — żadnej; ta możliwość nie ma odpowiednika na poziomie Pro. Licencjonowanie, rejestr możliwości, brama funkcji oraz kontrakt aktywacji są dostarczane wyłącznie w pakiecie nextpdf/enterprise.
Uwaga o granicy Enterprise
Dział zatytułowany „Uwaga o granicy Enterprise”Procedura weryfikacji koperty licencyjnej, implementacja sprawdzania podpisu, logika przeciwdziałania nadużyciom oraz lokalizacja kodu egzekwowania są opisane wyłącznie na poziomie zachowania i nie są odtwarzane na powierzchni publicznej. Kontrakt aktywacji online jest udokumentowany jako koperta z podpisaną odpowiedzią oraz dostarczonym przez klienta nonce; dokładna procedura weryfikacji nie jest częścią kontraktu publicznego.
Granica wdrożenia
Dział zatytułowany „Granica wdrożenia”NextPDF Enterprise rozwiązuje uprawnienie z lokalnie dostarczonej licencji, bez obowiązkowego dzwonienia do domu na potrzeby zwykłego działania. Opcjonalny klient online wykonuje wywołania sieciowe wyłącznie przy jawnej aktywacji, sprawdzeniach odnowienia oraz sygnałach życia realizowanych na zasadzie najlepszego możliwego wyniku; niepowodzenia sygnału życia nie są krytyczne i nigdy nie blokują przetwarzania. Operator jest właścicielem udostępniania licencji, konfiguracji aktywacji/odnowienia oraz polityki transportu dla opcjonalnego klienta online. NextPDF Enterprise nie egzekwuje umownej liczby stanowisk w czasie wykonania.
Granica zgodności prawnej
Dział zatytułowany „Granica zgodności prawnej”Warunki pojemności i stanowisk są regulowane Twoją umową licencyjną, a nie egzekwowaniem w czasie wykonania. Niniejsza dokumentacja nie stanowi opinii prawnej; w sprawie swoich zobowiązań umownych i regulacyjnych skonsultuj się z własnymi doradcami ds. zgodności i prawnymi.