Przejdź do głównej zawartości
getnextpdf.com

Enterprise edycja

Licencjonowanie

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.

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.

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.

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.

Okno terminala
composer require nextpdf/enterprise:^3

Wspierane 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.

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();
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();
}
}
  • 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.

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.

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.

  • 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, exp oraz jti i honorują regułę not-after exp z RFC 7519 (JWT), §4.1.4.
  • 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.

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.

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ń.

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.

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.

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.

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.