Register certifikátov
Každý certifikát, ktorý aplikácia vystaví, sa zaznamená ako RoundlyConsulting\Certificates\Models\Certificate — bežný Eloquent model so soft deletes a factory. Otázka „ktorým certifikátom vyprší platnosť do 14 dní?“ je tak obyčajný dotaz:
use RoundlyConsulting\Certificates\Models\Certificate;
Certificate::query()->active()->get();
Certificate::query()->expiring(14)->get(); // expiring within 14 days (default: config threshold)
Certificate::query()->expired()->get();
Certificate::query()->forDomain('app.example.com')->forDriver('kubernetes')->get();
Certificate::query()->coveringDomain('www.example.com')->first();Query scopes
| Scope | Vyhovuje |
|---|---|
active() | Issued alebo Renewed s expires_at null alebo v budúcnosti. |
expired() | Stav Expired alebo expires_at v minulosti. |
expiring(?int $days = null) | Issued, Renewed alebo Failed s expiráciou medzi teraz a teraz + $days (predvolene renewal.threshold_days) — zlyhaná obnova zostáva na rade. |
forDomain(string $domain) | Primárna doména sa rovná $domain bez ohľadu na veľkosť písmen. |
forDriver(string $driver) | Driver sa rovná $driver. |
coveringDomain(string $domain) | Primárna doména sa rovná $domain alebo ju obsahuje zoznam SAN domén v domains (bez ohľadu na veľkosť písmen). |
Pomocníci a životný cyklus
$certificate->isActive(); // active status and not past expires_at
$certificate->isExpired(); // Expired status, or expires_at in the past
$certificate->expiresWithin(14); // bool
$certificate->daysUntilExpiry(); // int|null — negative once expired
$certificate->certifiable; // the owning model, if any
// State changes go through the facade — guarded, evented and seen by the fake.
Certificates::revoke($certificate, 'key compromise'); // Revoked + CertificateRevoked
Certificates::expire($certificate); // Expired + CertificateExpired
Certificates::prune(30); // soft-delete stale expired/failed/revoked rows → intStav certifikátu meňte cez fasádu: Certificates::renew(), revoke() a expire() strážia prechod stavu, spustia udalosť (CertificateRevoked a CertificateExpired môžu otvoriť upozornenia) a Certificates::fake() ich zaznamená. revoke() odvolanie zapíše len do registra — certifikačnú autoritu ani klaster nekontaktuje.
Metódy modelu markIssued(), markRenewed(), markFailed(), markRevoked() a markExpired() sú interné: surové nastavenie stavu, ktoré používajú akcie, bez kontroly prechodu a mimo dosahu fake. Z kódu aplikácie ich nevolajte.
Stĺpce
| Stĺpec | Typ | Poznámka |
|---|---|---|
name | string | Odvodený názov certifikátu; indexovaný. |
domain | string | Primárna doména uložená malými písmenami; indexovaná. |
domains | json, nullable | Celý zoznam SAN domén, ak ste žiadali viac ako jednu doménu. |
driver | string | Driver, ktorý certifikát vystavil (predvolene kubernetes); indexovaný. |
status | CertificateStatus | Pretypovaný enum (predvolene pending); indexovaný. |
issuer | ?string | Vydavateľ, ktorého hlási poskytovateľ pri vystavení, obnove alebo certificates:sync. |
serial / fingerprint | ?string | Sériové číslo a odtlačok od poskytovateľa; nezmenený odtlačok znamená neúspešnú obnovu. |
certifiable_type / certifiable_id | nullable morph | Vlastník; typ kľúča podľa key_type. |
issued_at | ?CarbonImmutable | Nastaví sa pri vystavení. |
expires_at | ?CarbonImmutable | Expirácia; indexovaná. |
last_renewed_at | ?CarbonImmutable | Nastaví sa pri obnove. |
last_error | ?string | Dôvod zlyhania. |
meta | ?array | JSON metadáta z meta(). |
created_at / updated_at / deleted_at | timestamps | Soft deletes. |
(driver, name) je unikátne vrátane vyčistených záznamov — opätovné vystavenie vyčistenej domény, alebo sync, ktorý ju stále nájde, preto tento záznam obnoví ako novú registráciu namiesto vloženia duplikátu. Morph certifiable používa key_type — pred migráciou ho nastavte na uuid alebo ulid, ak vaše modely vlastníkov používajú UUID alebo ULID kľúče. table a connection sa berú z konfigurácie.
Vlastný model
Nasmerujte certificates.model na podtriedu, ak chcete pridať vlastné scopes, vzťahy či casty. Manager, vystavenie, obnovy cez frontu, HasCertificates, kontrola expirácie, fake aj konzolové príkazy použijú nakonfigurovanú triedu. Bez nastavenia alebo pri prázdnej hodnote sa použije dodávaný Certificate; čokoľvek iné musí byť týmto modelom alebo jeho podtriedou — trieda, ktorá ho nerozširuje alebo neexistuje, vyhodí InvalidConfigurationException s názvom certificates.model a nikdy sa potichu nenahradí:
namespace App\Models;
use RoundlyConsulting\Certificates\Models\Certificate as BaseCertificate;
class Certificate extends BaseCertificate
{
// your own scopes, relations and casts
}
// config/certificates.php
'model' => App\Models\Certificate::class,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 kryptomienOdoslaní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.