mirror of
https://github.com/MAKS-IT-COM/maksit-certs-ui.git
synced 2026-05-16 04:48:12 +02:00
3.9 KiB
3.9 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[3.3.6] - 2026-04-13
Added
- LetsEncrypt: Per-host ACME rate-limit cooldown on
RegistrationCache(AcmeRenewalNotBeforeUtcByHostname), with HTTPRetry-Afterand problem-detail parsing (AcmeRetryAfterParser), structured logging, andResult.TooManyRequestswhen the CA returnsrateLimited. - LetsEncrypt:
AcmeProblemKindas anEnumeration(RFC 8555 problemtypeURIs) instead of ad hoc strings;LetsEncrytExceptionexposesProblemKind,RetryAfterUtc, and optional rate-limit hostname. - LetsEncrypt:
AcmeSessionStorefor per-sessionStatein memory;LetsEncryptServicesplit into partial files (LetsEncryptService.Helpers.cs) for HTTP/JWS/error helpers. - LetsEncrypt:
State.TryGetAccountKeyfor a single place to validate account key material afterInit. - LetsEncrypt.Tests: Unit tests for retry parsing, problem-kind resolution, and cooldown JSON round-trip.
Changed
- AutoRenewal: Skips hostnames that are still in an ACME cooldown window (with debug logs for skipped hosts).
- Certs flow: Persists registration cache after failed full certificate flows when a session exists so cooldown metadata is saved.
- LetsEncrypt: Broader nullable reference annotations on ACME DTOs (
Problem,AcmeDirectory,AuthorizationChallengeError, etc.) and explicit null guards inLetsEncryptService.
Fixed
- LetsEncrypt: Certificate PEM loading uses
X509Certificate2.CreateFromPeminstead of the obsoleteX509Certificate2(byte[])constructor (SYSLIB0057). - LetsEncrypt:
RevokeCertificatenow fails correctly on non-success responses (missingreturn), uses the same problem-document handling as other ACME calls, and disposes the HTTP response on successful revoke. - LetsEncrypt:
NewOrderauthorization error log line now logs the authorization status, not the order status.
[3.3.5] - 2026-04-12
Changed
CachedHostnamenow uses a C# 12 primary constructor (same public construction as before).
Fixed
RegistrationCacheloads cached PEM certificates viaX509CertificateLoader.LoadCertificateand disposes them withusingwhere certificates are parsed for expiry and host listing.RegistrationCache.TryGetCachedCertificatereturnsfalsewhen the cached entry has no private key blob, avoiding a null argument when importing key material.
[3.3.4] - 2026-04-01
Added
MaksIT.Webapi.Tests: service-level unit tests (settings, cache, identity, agent, account, certs flow) and domain tests forSettings.- Postman collections under
src/Postmanupdated to match currentMaksIT.Webapiroutes, JWT flow, and cache endpoints.
Fixed
- WebUI Terms of Service (Let's Encrypt): PDF viewer loads
pdfjs-distworker from a Vite-bundled asset (pdf.worker.min.mjs?url) so rendering works in dev and production instead of failing on missing or wrong worker URLs. AccountService.PatchAccountAsyncreturns the account built from the cache after reload, not a stale in-memory instance.
[3.3.3] - 2025-12-20
Changed
- Relicensed project from GPL-3.0 to Apache-2.0.
[3.3.2] - 2025-12-20
Changed
- Minimal Helm chart and documentation improvements.
[3.3.1] - 2025-11-22
Changed
- Public release following the v3.3.0 pre-release.
[3.3.0] - 2025-11-15
Changed
- Pre-release of the v3.3.x line.
[3.2.0] - 2025-09-11
Added
- New WebUI with authentication.
[3.1.0] - 2024-08-11
Changed
- Stabilized release following v3.0.0.
[3.0.0] - 2024-05-31
Added
- WebAPI and containerization.
[2.0.0] - 2019-11-01
Changed
- Dependency injection pattern implementation.
[1.0.0] - 2019-06-29
Added
- Initial release.