NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Certificates for Laravel

Stav a živé reporty

Na rôzne otázky odpovedajú dva zdroje stavu. Certificates::status() číta register — CertificateStatus posledného záznamu alebo null. Certificates::statusReport() sa živo pýta poskytovateľa a vracia CertificateStatusReport, cachovaný podľa status_cache.*:

Certificates::statusReport('app.example.com');               // cached
Certificates::statusReport('app.example.com', fresh: true);  // bypass + refresh
Certificates::for('app.example.com')->fresh()->statusReport();
$report = Certificates::statusReport('app.example.com', driver: 'acme');

$report?->status;       // CertificateStatus
$report?->expiresAt;    // CarbonImmutable|null
$report?->issuer;       // ?string
$report?->serial;       // ?string
$report?->fingerprint;  // ?string
$report?->domains;      // list<string> — SANs

statusReport() vracia null pre driver, ktorý stav hlásiť nevie — null alebo vlastný driver bez ReportsCertificateStatus.

Cache

Pri zapnutom status_cache.enabled sa každý report uloží do status_cache.store na status_cache.ttl sekúnd pod kľúčom pre driver a názov certifikátu. fresh: true — alebo ->fresh() na builderi — sa poskytovateľa opýta znova a záznam v cache obnoví. issue() a renew() cachovaný report daného certifikátu zahodia, takže ďalšie statusReport() prečíta nový stav, nie ten z cache spred zmeny. Záznam sami odstránite cez resolver:

use RoundlyConsulting\Certificates\Support\CachedStatusResolver;

app(CachedStatusResolver::class)->forget('acme', Certificates::certificateName('app.example.com'));

Enum CertificateStatus

Stĺpec status modelu je pretypovaný na reťazcový enum s natívnym stavovým automatom:

PrípadHodnotaFarbaMôže prejsť do
PendingpendingamberRequested
RequestedrequestedamberIssued, Failed
IssuedissuedgreenRenewing, Expired, Revoked
RenewingrenewingamberRenewed, Failed
RenewedrenewedgreenRenewing, Expired, Revoked
FailedfailedredRenewing — zlyhaný záznam sa dá znova obnoviť
Expiredexpiredred— (koncový)
Revokedrevokedred— (koncový)
use RoundlyConsulting\Certificates\Enums\CertificateStatus;

CertificateStatus::Issued->isActive();              // true
CertificateStatus::Revoked->isTerminal();           // true
CertificateStatus::Failed->isTerminal();            // false — a failed row can be renewed again
CertificateStatus::Requested->canTransitionTo(CertificateStatus::Issued); // true
CertificateStatus::Failed->canTransitionTo(CertificateStatus::Renewing);  // true
CertificateStatus::Issued->allowedTransitions();    // [Renewing, Expired, Revoked]
CertificateStatus::Issued->color();                 // 'green'
CertificateStatus::Issued->label();                 // 'Issued'

CertificateStatus::toOptions();       // value => label, for selects
CertificateStatus::validationRule();  // 'in:pending,requested,issued,...'

isActive() platí pre Issued a Renewed; isTerminal() pre Expired a Revoked — také záznamy oživí len nové issue(). Failed nie je koncový stav: zlyhané vystavenie či obnovu môžete znova obnoviť. Enum používa trait Helpers z enums-for-laravel, ktorý pridáva values(), labels(), options(), toOptions(), validationRule(), tryFromLabel() a ďalšie metódy pre administráciu a validáciu.

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.