Enterprise Edition
Abrechnung
Auf einen Blick
Abschnitt betitelt „Auf einen Blick“NextPDF Enterprise erfasst die Compute-Unit-Nutzung (CU) pro Mandant gegenüber einer Plan-Quota und wendet eine konfigurierbare Überschreitungsrichtlinie an: hart blockieren, mit Wiederholungshinweis blockieren oder fortfahren und alarmieren. Es löst außerdem deduplizierte Nutzungsalarme bei den Schwellen 80 %, 100 % und „Budget überschritten” aus. Diese Seite beschreibt das beobachtbare Billing-Verhalten und den öffentlichen Vertrag.
Verfügbarkeit und Lizenzierung
Abschnitt betitelt „Verfügbarkeit und Lizenzierung“Diese Funktion ist in NextPDF Enterprise (nextpdf/enterprise) enthalten und wird mit einem Lizenz-Envelope der Enterprise-Stufe aktiviert. Eine Bereitstellung ohne diese Berechtigung lädt die Klassen der Funktion nicht. Editionen vergleichen und Lizenz erwerben.
Billing ist eine grundlegende Enterprise-Funktion ohne separates Flag pro Funktion; die Plan-Stufen und ihre enthaltenen Quotas werden über die Plan-Registry aufgelöst.
Konzeptioneller Überblick
Abschnitt betitelt „Konzeptioneller Überblick“Billing misst den Verbrauch in Compute Units. Jeder Mandant läuft unter einem Plan; jeder Plan trägt eine enthaltene CU-Quota und einen Fähigkeitssatz. Drei Standard-Plan-Stufen werden ausgeliefert — Standard, Advanced und High Control — mit fortschreitend größeren enthaltenen Quotas und fortschreitend breiteren Fähigkeitssätzen (die höheren Stufen ergänzen die Add-on-Pakete Intelligence und Privacy). Die Registry ist die kanonische Nachschlagequelle; eine White-Label-Bereitstellung kann sie mit eigenen Definitionen konstruieren.
Die Überschreitungsrichtlinie entscheidet, was geschieht, wenn ein Mandant seine enthaltene Quota überschreitet. Eine Hard-Stop-Richtlinie blockiert die Verarbeitung sofort und trägt die HTTP-402-Semantik. Eine Soft-Stop-Richtlinie blockiert mit Wiederholungshinweis und trägt HTTP 429. Eine Budget-Alert-Richtlinie blockiert nie — die Verarbeitung läuft weiter, und stattdessen werden Alarme ausgelöst, die HTTP 200 tragen. Nur Hard-Stop und Soft-Stop sind blockierend; der Quota-Manager löst einen Quota-überschritten-Zustand nur dann aus, wenn die Richtlinie blockiert und die enthaltene Quota tatsächlich überschritten ist.
Der Alarmdienst wertet die Nutzung gegen Schwellen in aufsteigender Reihenfolge aus — 80-%-Warnung, 100-%-Warnung, dann „Budget überschritten” — und jeder Alarmtyp wird höchstens einmal pro Abrechnungszeitraum pro Mandant ausgelöst. „Budget überschritten” erfordert eine strikte Überschreitung, nicht bloß das Erreichen von 100 %. Der Alarmzustand wird über eine Repository-Schnittstelle verfolgt, sodass die Deduplizierung über Anfragen hinweg erhalten bleibt, und der Dienst stellt eine klare Operation bereit, um den Alarmzustand beim Wechsel des Abrechnungszeitraums zurückzusetzen.
Warum es so funktioniert
Abschnitt betitelt „Warum es so funktioniert“Billing ist als reine Entscheidungsschicht aufgebaut, nicht als Speichersystem. Quota-Prüfungen, Überschreitungsberechnung und Alarmauswertung laufen im Arbeitsspeicher gegen eine PlanDefinition und eine einzige aktuelle Nutzungszahl, ohne I/O auf dem Prüfpfad. Die Persistenz liegt außerhalb dieser Entscheidung: Der Alarm-Dedup-Zustand wird ausschließlich über die vom Betreiber bereitgestellte AlertStateRepositoryInterface erreicht, was Dauerhaftigkeit und die Grenze des Abrechnungszeitraums unter der Kontrolle des Hosts hält. Das Überschreitungsergebnis ist ein kleines explizites Enum, das jede Richtlinie auf einen festen HTTP-Status abbildet, sodass die Entscheidung Blockieren-oder-Fortfahren deterministisch und prüfbar bleibt. Diese Trennung erlaubt es, dieselbe Billing-Oberfläche unverändert von einer einzelnen Instanz bis zu einer gemessenen mandantenfähigen Flotte zu betreiben.
Design-Hintergrund: NextPDF in der Produktion betreiben.
Öffentliche API-Oberfläche
Abschnitt betitelt „Öffentliche API-Oberfläche“composer require nextpdf/enterprise:^3Die unterstützten Integrationspunkte sind die Plan-Registry (get, has, defaultRegistry), der Quota-Manager (checkQuota, remainingQuota, usagePercentage), der Überschreitungsrechner (calculate, der ein unveränderliches Überschreitungsergebnis zurückgibt), das Überschreitungsrichtlinien-Enum (httpStatusCode, isBlocking) und der Billing-Alarmdienst (evaluate, clearAlerts). Das Alarmzustands-Repository ist eine Schnittstelle — stellen Sie eine In-Memory-Implementierung für Tests oder eine dauerhafte für die Produktion bereit.
Codebeispiel — Schnellstart
Abschnitt betitelt „Codebeispiel — Schnellstart“use NextPDF\Enterprise\Billing\OverageCalculator;use NextPDF\Enterprise\Billing\PlanRegistry;use NextPDF\Enterprise\Billing\SaaSPlan;
$plan = PlanRegistry::defaultRegistry()->get(SaaSPlan::Standard);$result = (new OverageCalculator())->calculate($plan, currentCu: 1_250.0);
$result->isOverage; // true — 1,250 CU against a 1,000 CU included quota$result->overageCu; // 250.0$result->usageRatio; // 1.25Codebeispiel — Produktion
Abschnitt betitelt „Codebeispiel — Produktion“use NextPDF\Enterprise\Billing\OveragePolicy;use NextPDF\Enterprise\Billing\QuotaExceededException;use NextPDF\Enterprise\Billing\QuotaManager;
$manager = new QuotaManager($registry, OveragePolicy::SoftStop);
try { $manager->checkQuota($tenant, SaaSPlan::Advanced, $currentCu);} catch (QuotaExceededException $e) { // SoftStop → answer with 429 + Retry-After up to the reset instant. return $this->retryAfter($e->resetsAt);}
foreach ($alertService->evaluate($tenant, $plan, $planDef, $currentCu) as $alert) { $this->notify($tenant, $alert->severity(), $alert);}Sonderfälle und Stolperfallen
Abschnitt betitelt „Sonderfälle und Stolperfallen“- Budget-Alert blockiert nie. Unter einer Budget-Alert-Richtlinie löst
checkQuotaauch weit über der Quota nicht aus; verlassen Sie sich auf die ausgelösten Alarme, nicht auf eine Ausnahme. - „Budget überschritten” erfordert strikte Überschreitung. Das exakte Erreichen von 100 % löst die 100-%-Warnung aus, nicht „Budget überschritten”; „Budget überschritten” erfordert eine Nutzung strikt über der enthaltenen Quota.
- Alarme deduplizieren pro Zeitraum. Jeder Alarmtyp wird einmal pro Mandant pro Abrechnungszeitraum ausgelöst. Setzen Sie den Alarmzustand beim Zeitraumwechsel zurück, sonst werden Alarme im nächsten Zeitraum nicht erneut ausgelöst.
- Null oder nicht gesetzte enthaltene Quota. Ein Plan mit einer nicht-positiven enthaltenen Quota meldet ein Nutzungsverhältnis von 0.0, anstatt durch null zu dividieren.
- Der Zeitraum-Reset ist die nächste Monatsgrenze. Der standardmäßige Quota-überschritten-Reset-Zeitpunkt ist der erste Tag des nächsten Kalendermonats um Mitternacht.
Performance
Abschnitt betitelt „Performance“Quota-Prüfungen, Überschreitungsberechnung und Alarmauswertung sind konstantzeitige In-Memory-Operationen gegen eine Plandefinition und die bereitgestellte aktuelle Nutzungszahl. Auf dem Prüfpfad gibt es keine I/O, es sei denn, Ihre Alarmzustands-Repository-Implementierung führt sie aus.
Sicherheitshinweise
Abschnitt betitelt „Sicherheitshinweise“Billing-Entscheidungen werden aus einer mandantenbezogenen, vom Aufrufer bereitgestellten aktuellen Nutzungszahl abgeleitet; die Mandantenidentität muss aus einem authentifizierten Kontext stammen, niemals aus clientseitig bereitgestellter Eingabe. Die Billing-Oberfläche erzwingt die Quota und gibt Alarme aus — sie authentifiziert den Mandanten nicht selbst.
Konformität
Abschnitt betitelt „Konformität“Überschreitungsrichtlinien-Ergebnisse tragen standardmäßige HTTP-Statussemantik: payment-required (402) für Hard-Stop, too-many-requests (429) mit Wiederholungshinweis für Soft-Stop und success (200) für Budget-Alert, gemäß der IETF-HTTP-Semantikspezifikation (RFC 9110) für die Klassen 402, 429 und 2xx. RFC 9110 wurde für diese Seite nicht aus dem RAG-Korpus abgerufen; diese Zuordnung wird aus den im Code deklarierten Statuscodes und der allgemein bekannten HTTP-Semantikspezifikation behauptet und hier als im Code deklariert statt als RAG-verifiziert gekennzeichnet.
Verhaltensvertrag
Abschnitt betitelt „Verhaltensvertrag“- Der Verbrauch wird in Compute Units gemessen; jeder Mandant läuft unter einem Plan mit einer enthaltenen CU-Quota und einem Fähigkeitssatz.
- Die Überschreitungsrichtlinie ist eine von Hard-Stop (402, blockierend), Soft-Stop (429 mit Wiederholungshinweis, blockierend) oder Budget-Alert (200, nicht blockierend); ein Quota-überschritten-Zustand wird nur dann ausgelöst, wenn die Richtlinie blockiert und die enthaltene Quota tatsächlich überschritten ist.
- Alarme werten in aufsteigender Reihenfolge aus (80-%-Warnung, 100-%-Warnung, „Budget überschritten”), und jeder Typ wird höchstens einmal pro Abrechnungszeitraum pro Mandant ausgelöst; „Budget überschritten” erfordert eine strikte Überschreitung.
- Eine nicht-positive enthaltene Quota meldet ein Nutzungsverhältnis von 0.0, anstatt durch null zu dividieren.
- Quota-Prüfungen, Überschreitungsberechnung und Alarmauswertung sind konstantzeitige In-Memory-Operationen ohne I/O auf dem Prüfpfad, es sei denn, das Alarmzustands-Repository führt sie aus.
Veröffentlichungsgrenze
Abschnitt betitelt „Veröffentlichungsgrenze“Diese Seite dokumentiert ausschließlich extern beobachtbares Verhalten und die unterstützte öffentliche API-Oberfläche. Interne Namespace-Pfade, Hilfsklassen, Mechanismustabellen, Runbook-Dateinamen und Ticket-Präfixe liegen außerhalb des Geltungsbereichs.
Core-Fallback
Abschnitt betitelt „Core-Fallback“NextPDF Core (Apache-2.0) hat keine Billing-, Quota- oder Überschreitungsoberfläche — keine; diese Funktion hat kein Core-Stufen-Äquivalent. Die Core-Verarbeitung wird von NextPDF nicht gemessen, quotenbeschränkt oder alarmiert.
Pro-Fallback
Abschnitt betitelt „Pro-Fallback“NextPDF Pro hat keine Billing-, Quota- oder Überschreitungsoberfläche — keine; diese Funktion hat kein Pro-Stufen-Äquivalent. Die Plan-Registry, der Quota-Manager, der Überschreitungsrechner und der Alarmdienst werden ausschließlich im Paket nextpdf/enterprise ausgeliefert.
Hinweis zur Enterprise-Grenze
Abschnitt betitelt „Hinweis zur Enterprise-Grenze“Die Plan-Registry, die Überschreitungsrichtlinie und die Alarm-Deduplizierung werden auf Verhaltensebene beschrieben. Das Alarmzustands-Repository ist eine Schnittstelle; die dauerhafte Persistenz wird vom Host bereitgestellt, und die interne Alarmzustands-Speicherstrategie liegt außerhalb des Geltungsbereichs der öffentlichen Oberfläche.
Bereitstellungsgrenze
Abschnitt betitelt „Bereitstellungsgrenze“Billing-Entscheidungen werden aus einer mandantenbezogenen, vom Aufrufer bereitgestellten aktuellen Nutzungszahl abgeleitet. Der Betreiber verantwortet die Implementierung des Alarmzustands-Repositorys, dessen Persistenz und den Zeitplan für den Wechsel des Abrechnungszeitraums. NextPDF Enterprise erzwingt die Quota und gibt Alarme aus, authentifiziert den Mandanten jedoch nicht selbst und persistiert die Nutzung nicht.
Rechtliche Compliance-Grenze
Abschnitt betitelt „Rechtliche Compliance-Grenze“Für die Billing-Oberfläche gilt keine exportkontrollrechtliche Beschränkung. Plan-Inklusivleistungen, Quotas und kommerzielle Bedingungen werden durch Ihren Lizenzvertrag bestimmt, nicht durch Laufzeit-Durchsetzung. Diese Dokumentation ist kein rechtliches oder vertragliches Gutachten; konsultieren Sie für den Plan-Umfang Ihre eigenen Berater und Ihren Vertrag.