Enterprise sürüm
Licensing — Derinlemesine başvuru
Bir bakışta
“Bir bakışta” başlıklı bölümBu sayfa, NextPDF Enterprise lisanslama yüzeyi için derinlemesine başvurudur — diğer her Enterprise yeteneğini çözümleyen modül. Hak durumu modelini (EntitlementEvaluator, EntitlementStatus, EntitlementResult), zorlanan yetenek kapılamasını (FeatureGate, CapabilityCode, CapabilityRegistry), iki zamanlayıcılı kanal zorlama makinesini (ChannelEnforcementPolicy, OnlineCheckScheduler) ve imzalı çevrimiçi istemciyi (LicenseClient) kapsar. Sıradan hak değerlendirmesi hiçbir ağa ihtiyaç duymaz. Çevrimiçi istemci; açık etkinleştirme, sinyal, devre dışı bırakma, çevrimiçi doğrulama ve yenileme yoklaması işlemleri için vardır. İç mekanizma ayrıntısı, kaynak deposunun iç belgelerinde kalır ve bu kılavuzun kapsamı dışındadır.
Kullanılabilirlik ve lisanslama
“Kullanılabilirlik ve lisanslama” başlıklı bölümBu yetenek NextPDF Enterprise (nextpdf/enterprise) ile sunulur ve bir Enterprise katmanı lisans zarfıyla etkinleşir. Bu hakka sahip olmayan bir dağıtım, yeteneğin sınıflarını yüklemez. Sürümleri karşılaştırın ve bir lisans edinin.
Lisanslama, temel bir Enterprise yüzeyidir. Enterprise paketi Core paketinin yanına kurulduğunda her zaman mevcuttur, çünkü diğer her şeyi çözümleyen yüzeydir. NextPDF Pro’nun ayrı bir hak yüzeyi yoktur; durum modeli, zorlama makinesi ve çevrimiçi istemci yalnızca nextpdf/enterprise içinde sunulur. NextPDF Core (Apache-2.0) hiçbir hak modeline sahip değildir — lisanssız Apache-2.0 davranışına ihtiyaç duyan bir ana makine, Enterprise işlem hattı yerine Core motorunu doğrudan kullanır.
Genel API yüzeyi
“Genel API yüzeyi” başlıklı bölümTüm türler NextPDF\Enterprise\Licensing altında yer alır. Zorlama makinesi Channel alt ad alanında, çalışma zamanı bileşimi Runtime içinde ve imzalı durum türleri Online içinde bulunur.
| Simge | Parametreler | Varsayılan davranış | Döndürür | Fırlatır veya şununla başarısız olur | Notlar |
|---|---|---|---|---|---|
EntitlementEvaluator::evaluate() | ?LicenseKey $license, ?DateTimeImmutable $now = null | Doğrulanmış bir lisansı (veya null’u) tam hak kararına eşler | EntitlementResult | Yok | Null bir lisans, kapalı arızalayan lisanssız sonucu verir |
EntitlementEvaluator::evaluateEnforced() | ?LicenseKey $license, EnforcementOutcome $outcome | Önceden hesaplanmış bir zorlama sonucunu bir hak sonucuna dönüştürür | EntitlementResult | Yok | Etkin sürüm sonuçtan gelir; her zorlama düşürmesi Core’a iner |
EntitlementEvaluator::resolveBrandingMode(), ::resolveBrandingStrategy() | ?LicenseKey $license, ?DateTimeImmutable $now = null | Oluşturulan çıktı için markalama kararını çözümler | BrandingMode / BrandingStrategy | Yok | Tek markalama yetkisi; yalnızca değerlendirme kanalı filigran uygular |
EntitlementResult | Salt okunur değer nesnesi | Durumu, sürümü, kanalı, markalama modunu, çalışma zamanı/güncelleme/destek bayraklarını ve isteğe bağlı bir uyarıyı taşır | — | Yok | Yardımcılar: isFullyActive(), isExpired(), isDowngradedToCore(), shouldApplyEvaluationBranding() |
EntitlementStatus | Dize destekli enum | Active, GracePeriod, DowngradedToCore, EvaluationExpired, NoLicense | — | Yok | PerpetualFallback korunur ancak kullanımdan kaldırılmıştır; yalnızca 6.0 öncesi tüketicilerin hâlâ derlenmesi için tutulur |
FeatureGate::hasCapability() | CapabilityCode $capability | Yeteneği, zorlanan etkin sürüme ve paket durumuna karşı denetler | bool | Yok | Herhangi bir çözümleyici hatasında core’a kapalı arızalar |
FeatureGate::requireCapability() | CapabilityCode $capability | Sessizce geçer veya yapılandırılmış üst satış bağlamıyla fırlatır | void | SpectrumAuthenticationException SPEC-LIC-001 (lisanslı değil) veya SPEC-LIC-002 (paket süresi doldu) | Bağlam required_capability, required_pack, current_packs, upgrade_info_url taşır |
FeatureGate::isFeatureEnabled(), ::requireFeature() | string $feature | Eski özellik tanımlayıcı denetimi | bool / void | SpectrumAuthenticationException SPEC-AUTH-007 (require yolu) | Eski uyumluluk; yetenek denetimlerini tercih edin |
FeatureGate erişimcileri | Yok | Lisans iç gözlemi | Değişir | Yok | currentEdition(), isLicenseValid(), isInGracePeriod(), getActivePacks(), trialPolicy() |
CapabilityCode | Dize destekli enum | Kanonik yetenek tanımlayıcıları (core.*, pro.*, enterprise.*, pack.*) | — | Yok | isPack(), packName(), minimumEdition(), forEdition() |
CapabilityRegistry | LicenseKey, yol desenleri | Sevkten önce yoldan yeteneğe çözümleme ve paket araması | Değişir | Yok | registerDefaultRoutes() belgelenen hizmet yollarını kapsar |
LicenseKey | Salt okunur değer nesnesi | Ayrıştırılmış, doğrulanmış lisans talepleri | — | Yok | isExpired(), isInGracePeriod(), isFullyExpired(), hasFeature(), hasCapability(), activePackNames(); maxSlots yalnızca sözleşmeseldir |
LicenseValidator::buildVerifiedLicenseKey() | array $data | Zaten doğrulanmış bir yükten türü belirtilmiş bir LicenseKey oluşturur | LicenseKey | Şema ihlalinde SpectrumAuthenticationException SPEC-AUTH-001 | Şema 2.0, 1.0 ve eski yükleri destekler |
PackDefinition / PackRegistry | Salt okunur değer nesneleri | Bağımsız süre sonu ve ek süreye sahip eklenti paketi durumu | Değişir | Yok | isActive(), isFullyExpired(), activePacks(), activeCapabilities() |
TrialPolicy | bool $enabled, int $maxPagesPerSecond = 2, filigran alanları | Deneme verim tavanı politikası | — | Yok | fromLicenseKey(), disabled(), isThrottled(); markalama yetkisi değerlendiricide kalır |
ChannelEnforcementPolicy::enforce() | LicenseKey $license, LocalState $state, int $systemNow, bool $revoked = false | İki zamanlayıcılı makineyi artı iptal ve deneme yeniden etiketlemeyi çalıştırır | EnforcementOutcome | Yok | İptal, her zamanlayıcıyı ve deneme durumunu geçersiz kılar |
OnlineCheckScheduler::evaluate(), ::recordSuccessfulOnlineCheck() | Lisans, yerel durum, zaman damgaları | İki zamanlayıcılı değerlendirme; doğrulanmış sunucu zamanından kira yenileme | EnforcementOutcome / LocalState | Yok | ONLINE_GRACE_SECONDS, kira sonrası 48 saatlik canlılık ek süresi verir |
EnforcementDecision / EnforcementReason / EnforcementOutcome | Enumlar + salt okunur değer nesnesi | Active, Grace, DowngradedToCore artı kesin neden | — | Yok | Her neden, belirlenimci olarak bir karara eşlenir |
Runtime\EntitlementResolver::currentEntitlement() | Yok | Arabirim: çalışma zamanının sunduğu zorlanan hak | EntitlementResult | Uygulamaya bağlı | EnforcedEntitlementResolver; önbelleği, durumu, politikayı ve değerlendiriciyi birleştirir, Core’a kapalı arızalar |
LicenseStateCache::get(), ::getOrThrow() | bool $forceRefresh = false | Kapıyı destekleyen doğrulanmış lisans önbelleği | ?LicenseKey | getOrThrow(): SpectrumAuthenticationException SPEC-AUTH-008; geçersiz bağlantıda LicenseConfigurationException | invalidate(), isCacheValid() |
LicenseClient::activate(), ::heartbeat(), ::deactivate(), ::verifyOnline() | string $licenseJws, string $deploymentId, ?string $machineFingerprintHash = null, ?string $expectedLicenseId = null, ?string $clientNonce = null | Bir imzalı durum alışverişi; yanıt, sabitlenmiş köke karşı doğrulanır ve gönderilen nonce’a bağlanır | StatusResponse | LicenseClientException (taşıma, 200 olmayan, hatalı sağlanan nonce); SpectrumAuthenticationException (sahte, kurcalanmış, eski, yanlış nonce, yanlış lisans, yanlış tür yanıt) | Yalnızca tuzlanmış parmak izi karması gönderilir, asla ham parmak izi gönderilmez |
LicenseClient::checkRenewal() | string $licenseId, string $customerId | Yenileme kullanılabilirliği yoklaması; 404, normal “mevcut yok” yanıtıdır | Yenileme dizisi (available, download_url, expires_at) | LicenseClientException (erişilemez, 200/404 olmayan veya politikaca reddedilen bir download_url) | İmzasız gövdenin URL’si, kaçamadan önce SSRF taramasından geçirilir |
LicenseClient::__construct() | İmza bloğuna bakın | Yapımda taşımayı, URL şemasını ve sabitleme kümesini doğrular | — | LicenseConfigurationException (politika zorlamayan taşıma, izin verilmeyen şema, sabitleme olmadan düz HTTP, hatalı biçimli sabitleme kümesi) | getPinSet(), döndürme araçları için etkin sabitleme kümesini açığa çıkarır |
Online\StatusResponse | Salt okunur değer nesnesi | Doğrulanmış imzalı durum | — | Yok | isLive(), revoked / expired / released durumlarında false olur; leaseExpiresAt, koltuk sayıları ve bir hak anlık görüntüsü taşır |
LicenseChannelMode / OnlineMode / OnlinePolicy | Enumlar + salt okunur değer nesnesi | Kanal ve çevrimiçi politika talepleri | — | Yok | signed_source’a karşı ioncube; intervalDays ve leaseDays ile çevrimiçi mod required / optional / disabled |
LicenseEdition | Dize destekli enum | Core, Pro, Enterprise | — | Yok | satisfies(), katman hiyerarşisini uygular |
public function __construct(private ?EvaluationBrandingConfig $evaluationBrandingConfig = null)public function evaluate(?LicenseKey $license, ?DateTimeImmutable $now = null): EntitlementResultpublic function evaluateEnforced(?LicenseKey $license, EnforcementOutcome $outcome): EntitlementResultpublic function resolveBrandingMode(?LicenseKey $license, ?DateTimeImmutable $now = null): BrandingModepublic function resolveBrandingStrategy(?LicenseKey $license, ?DateTimeImmutable $now = null): BrandingStrategypublic function __construct(private readonly LicenseStateCache $licenseCache, private readonly EntitlementResolver $entitlementResolver, private readonly string $upgradeInfoUrl = self::DEFAULT_UPGRADE_URL)public function isFeatureEnabled(string $feature): boolpublic function requireFeature(string $feature): voidpublic function currentEdition(): ?stringpublic function isLicenseValid(): boolpublic function isInGracePeriod(): boolpublic function hasCapability(CapabilityCode $capability): boolpublic function requireCapability(CapabilityCode $capability): voidpublic function getActivePacks(): arraypublic function trialPolicy(): TrialPolicypublic function __construct(private readonly ClientInterface $httpClient, private readonly RequestFactoryInterface $requestFactory, private readonly StreamFactoryInterface $streamFactory, private readonly StatusX5cValidator $statusValidator, private readonly string $baseUrl = self::DEFAULT_BASE_URL, #[SensitiveParameter] private readonly ?string $apiKey = null, array $pinnedPublicKeys = [], array $backupPins = [], private readonly OutboundHttpPolicy $policy = new OutboundHttpPolicy(allowedSchemes: ['https'], connectTimeoutSeconds: 10, readTimeoutSeconds: 30, maxResponseBytes: 10_485_760, followRedirects: false, allowPrivateTargets: false, retryAttempts: 0, retryBaseBackoffMs: 250))public function activate(string $licenseJws, string $deploymentId, ?string $machineFingerprintHash = null, ?string $expectedLicenseId = null, ?string $clientNonce = null): StatusResponsepublic function heartbeat(string $licenseJws, string $deploymentId, ?string $machineFingerprintHash = null, ?string $expectedLicenseId = null, ?string $clientNonce = null): StatusResponsepublic function deactivate(string $licenseJws, string $deploymentId, ?string $machineFingerprintHash = null, ?string $expectedLicenseId = null, ?string $clientNonce = null): StatusResponsepublic function verifyOnline(string $licenseJws, string $deploymentId, ?string $machineFingerprintHash = null, ?string $expectedLicenseId = null, ?string $clientNonce = null): StatusResponsepublic function getPinSet(): ?PinSetpublic function checkRenewal(string $licenseId, string $customerId): arrayDavranış sözleşmesi
“Davranış sözleşmesi” başlıklı bölümHak değerlendirmesi, her biri sabit bir çalışma zamanı sonucu olan beş güncel durumdan birini üretir:
| Durum | Çalışma zamanı | Etkin yetenekler | Güncellemeler / destek | Markalama |
|---|---|---|---|---|
Active | izinli | hak edilen sürüm + etkin paketler | evet (ücretli); hayır (değerlendirme) | yok (ücretli); filigran (değerlendirme) |
GracePeriod | izinli | hak edilen sürüm + etkin paketler | evet | yok (ücretli) |
DowngradedToCore | izinli | yalnızca Core | hayır | yok (ücretli); filigran (deneme) |
EvaluationExpired | kısıtlı | yok | hayır | filigran |
NoLicense | devre dışı (kapalı arızalama) | yok | hayır | filigran |
- Ücretli süre sonu, kurulu çalışma zamanını asla devre dışı bırakmaz.
runtimeAllowed, her ücretli durum için true kalır. Ek süre penceresinden sonra etkin sürüm Core’a düşer: Core yetenekleri süresiz olarak çalışmayı sürdürür, tüm Pro/Enterprise/paket yetenekleri kapanır ve güncellemeler ile destek geri çekilir. Kullanımdan kaldırılanEntitlementStatus::PerpetualFallbackdurumu, 6.0 öncesi süre sonu politikasını adlandırır ve yalnızca derleme uyumluluğu için vardır. - Her durum Core yürütmesiyle bitmez. Ek süre, tarihli bir yenileme uyarısıyla tam hak edilen sürümü korur. Değerlendirme süre sonu, çalışma zamanını kısıtlar ve filigranı korur. Lisanssız durum, Enterprise yollarını kapalı arızalayarak devre dışı bırakır ve herhangi bir eski çıktıyı görünür biçimde filigranlar; böylece asla ücretli yürütme gibi geçemez.
- Sabit çözümleme sırası. Süresi tamamen dolmuş bir lisans hiçbir yeteneği çözümlemez. Paket yetenekleri, paketin kendi etkin durumuna ve bağımsız süre sonuna ertelenir. Sürüm yetenekleri, kesin hiyerarşi Enterprise ⊇ Pro ⊇ Core üzerinde zorlanan etkin sürüme karşı çözümlenir. Kapılamada ham
LicenseKey::$editionasla başvurulmaz. - İki zamanlayıcı; en kısıtlayıcı olanı kazanır. Hak zamanlayıcısı (her iki kanal) Active, Grace ve ek süre sonrası Core düşürmesini yönetir. Çevrimiçi canlılık zamanlayıcısı yalnızca çevrimiçi modu
requiredolanioncubekanalına uygulanır: kira, artı 48 saatlik canlılık ek süresi, canlı olmalıdır. Kira sonrası çevrimdışı iken premium, Core katmanında duraklar; daha sonraki doğrulanmış bir çevrimiçi denetim kirayı yeniden kurar ve premium devam eder.signed_sourcekanalının — ve required olmayan herhangi bir çevrimiçi modun — canlılık zamanlayıcısı yoktur ve çevrimdışı ve hava boşluğu yeteneğini korur. - Geri alma karşıtı, belirlenimcidir. Zorlama, monoton bir tabana karşı değerlendirir: etkin zaman, sistem saati ile son doğrulanmış zamanın en büyüğüdür; böylece geriye dönük bir saat değişikliği ek süre tanımaz. Sapma toleransını ve kalan ek süreyi aşan bir geri alma, Core düşürmesini zorlar.
- Kiralar yalnızca güvenilir zamanda ilerler. Başarılı bir çevrimiçi denetim, yerel saati değil, doğrulanmış, imzalı sunucu zamanını kaydeder; böylece yerel bir ileri saat sıçraması kirayı şişiremez.
- Markalamanın tek yetkisi vardır. Yalnızca değerlendirme kanalı filigranı tetikler. Ücretli bir lisans, düşürülmüş olanlar dâhil her durumda hiçbir markalamaya çözümlenmez.
- Deneme, aynı zamanlayıcılar üzerinde bir politika katmanıdır. Verim sınırlanır (varsayılan saniyede 2 sayfa), değerlendirme filigranı uygulanır ve süre sonu ek süre olmadan kesindir. Yalnızca raporlanan neden değişir; karar ve etkin sürüm ücretli makineyi izler.
- Çevrimiçi sözleşme uçtan uca imzalanır. Her istek bir CSPRNG istemci nonce’ı taşır. Her yanıt,
application/nextpdf-status+jwtmedya türünde kompakt bir EdDSA JWS’idir; derlemeye gömülü sabitlenmiş bir köke bir x5c zinciri üzerinden doğrulanır ve gönderilen nonce’a, kurulu lisans kimliğine ve çağrılan uç noktaya bağlanır. Eski imzasız zarf taşıması emekliye ayrılmıştır; tam olarak bir güven yolu kalır. Yapılandırılmış SPKI sabitlemeleriX-NextPDF-Pinned-Public-Keybaşlığı olarak taşınır ve bir sabitleme kümesi bir yedek sabitleme içermelidir. - Çalışma zamanı koltuk zorlaması yok.
maxSlotsyalnızca sözleşmeseldir — sıradan işlem için telemetri ve zorunlu eve telefon yok.
Uç durumlar ve arıza modları
“Uç durumlar ve arıza modları” başlıklı bölüm- Süresi tamamen dolmuş bir lisanstaki bir yetenek denetimi, herhangi bir paket veya sürüm mantığı çalışmadan önce “unavailable” durumuna kısa devre yapar.
- Bir eklenti paketinin süresi, temel lisans etkinken dolabilir. Ret bu durumda lisanslı değil (
SPEC-LIC-001) değil, paket süresi doldu (SPEC-LIC-002) olarak okunur ve o an etkin paketleri listeler. - Mevcut ancak okunamayan veya ayrıştırılamayan yerel bir zorlama durumu dosyası bir kurcalama sinyalidir. Makine,
EnforcementReason::CorruptStateile Core düşürmesine kapalı arızalar. Meşru biçimde bulunmayan bir dosya bozuk değildir ve normal biçimde ilerler. - Monoton tabanın altında, sapma toleransını (varsayılan 120 saniye) ve kalan ek süreyi aşan bir saat geri alması, Core düşürmesini belirlenimci olarak zorlar.
- Süresi geçmiş bir canlılık kirası, aksi hâlde Active olan bir
ioncubelisansını düşürür; hak süre sonu, kira durumundan bağımsız olarak düşürür. evaluate(null)kapalı arızalar: çalışma zamanına izin verilmez, filigran uygulanır ve uyarı fiyatlandırma URL’sini adlandırır. Lisanssız Core davranışına ihtiyaç duyan ana makineler, Core motorunu doğrudan oluşturmalıdır.- Süresi dolmuş bir değerlendirme lisansının ek süresi ve geri dönüşü yoktur; çalışma zamanı kısıtlanır ve filigran kalır.
checkRenewal(), HTTP 404’ü normal “mevcut yok” yanıtı olarak ele alır. 200 olmayan herhangi başka bir yanıtLicenseClientExceptionfırlatır ve giden politikayı ihlal eden birdownload_url, yöntemden kaçamadan önce kapalı arızalar.- Sahte, kurcalanmış, eski, yanlış nonce veya yanlış lisans içeren bir durum yanıtı asla bir
StatusResponsevermez; doğrulamaSpectrumAuthenticationExceptionfırlatır. İmzalı ancakrevoked,expiredveyareleasedolan bir durum doğrulanır ve bir düşürme sinyali olarak ortaya çıkar (isLive()false olur). - Farklı bir alışveriş için üretilmiş bir durum yanıtı reddedilir: doğrulanmış
response_type, çağrılan uç noktayla eşleşmelidir. FeatureGate, herhangi bir çözümleyici hatasında kapalı arızalar: etkin sürümcore’a düşer ve hiçbir premium yetenek verilmez.EnforcedEntitlementResolveruçtan uca kapalı arızalar: zincirindeki herhangi bir istisna, lisanssız (Core) sonucu ve bir PSR-3 hata günlüğü verir, asla bir premium hak vermez.
FIPS modu davranışı
“FIPS modu davranışı” başlıklı bölümLisanslama katmanı kendi başına hiçbir kriptografik politika eklemez. Lisans ve durum imzaları, ana makine kripto sağlayıcısı tarafından gerçekleştirilen Ed25519 doğrulamalarıdır. FIPS kısıtlı bir derlemede, sağlayıcının onaylamadığı bir algoritma, kriptografik sınırda açık bir hatayla başarısız olur; hiçbir şey sessizce düşürülmez. Bunlar NextPDF kodu hakkında yetenek talepleridir: NextPDF doğrulanmış bir kriptografik modül değildir, hiçbir sertifikasyona sahip değildir ve hiçbir sertifikasyon vermez.
Uygunluk
“Uygunluk” başlıklı bölüm| Talep | Standart | Madde |
|---|---|---|
| Lisans dosyaları ve durum yanıtları, kompakt serileştirme JWS’idir, kapalı arızalayarak doğrulanır. | RFC 7515 | §3.1 |
| Lisans ve durum imzaları Ed25519’dur. | RFC 8032 | §5.1 |
| İmzalı bir yanıttaki x5c zinciri, derlemeye gömülü sabitlenmiş bir güven köküne kadar doğrulanır. | RFC 5280 | §6.1 |
| Yapılandırılmış bir SPKI sabitleme kümesi, henüz dağıtılmamış bir anahtar için bir yedek sabitleme içermelidir. | RFC 7469 | §4.3 |
Doğrulanmış talepler (iss, aud, exp, nbf, iat) kayıtlı talep adlarıdır. | RFC 7519 | §4.1 |
Tüm maddeler başka sözcüklerle ifade edilmiştir; hiçbir normatif metin yeniden üretilmemiştir. NextPDF hiçbir sertifikasyon talebinde bulunmaz. Destek uygunluğa eşit değildir ve uygunluk sertifikasyona eşit değildir. Modül, davranışını bir yetenek olarak alıntılanan maddelerle hizalar; bir lisans veya durum zarfının kabulü, harici bir otoritece değil, NextPDF’in kendi sabitlenmiş kök doğrulayıcısınca kararlaştırılır.
Geliştirme notları
“Geliştirme notları” başlıklı bölümLicenseClient’i politika zorlayan bir taşımayla (kanonik olarakSecurityAwareHttpClient) oluşturun. Ham bir PSR-18 istemcisi yapımda reddedilir; böylece lisans trafiği asla SSRF karşıtı, yönlendirme yok, bayt sınırı ve zaman aşımı denetimleri olmadan gönderilemez.- Çağıranın sağladığı bir istemci nonce’ı, en az 16 baytlık entropiye çözülmelidir. Kaynak bu sınırı RFC 8555 §6.5’e dayandırır; o madde alıntılanan derlemin dışındadır, bu nedenle sınır burada yalnızca ürün kaynağından belirtilir.
- Özellikleri
FeatureGateüzerinden kapılayın; asla hamLicenseKey::$editionüzerinde dallanmayın. Kapı yalnızca zorlanan etkin sürüme başvurur vecore’a kapalı arızalar. - Yeni kodda kullanımdan kaldırılan
EntitlementStatus::PerpetualFallbacküzerinde switch yapmayın. Bunun yerineisDowngradedToCore()denetleyin veyaDowngradedToCoreeşleyin. - Bir yetenek reddini bir düzeltme yükü olarak değerlendirin. Genel bir hataya indirgemek yerine yapılandırılmış bağlamını ve yükseltme URL’sini çağırana iletin.
- Bu modül kriptografik işlevsellikle ilgilidir; kendi incelemenizde güvenlik açısından hassas olarak değerlendirin. Kapasite ve koltuk koşulları, çalışma zamanı zorlamasıyla değil, lisans sözleşmesiyle yönetilir. Bu başvuru bir hukuki görüş değildir; kendi uyumluluk ve hukuk danışmanlarınıza başvurun.
Yayımlama sınırı
“Yayımlama sınırı” başlıklı bölümBu sayfa yalnızca dışarıdan gözlemlenebilen davranışı ve desteklenen genel API yüzeyini belgeler. İç ad alanı yolları, yardımcı sınıflar, mekanizma tabloları, runbook dosya adları ve bilet önekleri kapsam dışıdır.
Ayrıca bkz.
“Ayrıca bkz.” başlıklı bölüm- Licensing — NextPDF Enterprise — kurulum ve tümleştirme kılavuzunu içeren yetenek sayfası.
- Billing — Derinlemesine başvuru — plan katmanları, aşım politikaları ve devir.
- SaaS — Derinlemesine başvuru — yol haritasının koruduğu çok kiracılı hizmet yüzeyi.
- Branding — Derinlemesine başvuru — değerlendiricinin çözümlediği markalama stratejileri.