Skip to content

v0.19.0

Compare
Choose a tag to compare
@mholt mholt released this 10 Jul 20:30
· 61 commits to master since this release
v0.19.0
1bdc8fd

This release has a few (relatively minor) API changes and additions to enable substantial performance improvements for large certificate deployments; for example, large and busy servers can now update a certificate cache's settings without having to make a new cache. This enables certificates already decoded into memory to remain even after a config change downstream.

⚠️ As we are still pre-1.0, there are some breaking API changes in this release. Please take note 😃

Highlights

  • The Config.Manage*() methods are now (basically) a no-op if a managed certificate for the name(s) passed in is already present in the cache. It doesn't really make sense to reload the certificate from storage and decode it and replace it in the cache, because it is managed it will do that automatically when it gets renewed.
  • Removed Config.Unmanage() since it does not actually rely on the config at all. Replaced with Cache.RemoveManaged(). Removing a managed cert from the cache stops maintenance.
  • Also added Cache.Remove() which removes a certificate from the cache given its hash.
  • The methods which load unmanaged certs into the cache now return the cert hash.
  • Added Cache.SetOptions() to update a cache's config while active.
  • Clarified the semantics around the Storage and Locker interfaces. This should be useful for implementers.
  • Fixed a performance bug when On-Demand TLS was used with lots of specified domains (this is uncommon, as most uses of on-demand TLS don't know the domain names ahead of time).

What's Changed

New Contributors

Full Changelog: v0.18.2...v0.19.0