Releases: dechristopher/lod
Releases · dechristopher/lod
v0.9.1 / 2022-11-22
This release includes work towards v1.0.0, namely improvements in cache invalidation/priming endpoints and code quality.
Features
- First implementation of iterative invalidation and priming logic. Given a tile, LOD can visit child tiles to a configurable depth to invalidate and/or prime the caches for each tile. This is useful if upstream data has changed and you have long TTLs. Alternatively, it can help if you have a very slow or unsteady upstream tile server and you'd like to pre-prime tiles for commonly accessed regions.
Chores
- Swapped out use of some deprecated functions in ioutil and bigcache
- Upgraded all sorts of dependencies, most notably Go 1.19, fiber, and bigcache
- Improved code quality, documentation, and devex across the board
Full Changelog: https://github.com/tile-fund/lod/compare/v0.8.0..v0.9.1
v0.8.0 / 2022-05-06
This release includes work towards v1.0.0, namely improvements in proxy handling and visibility.
Improvements
- Allow only a single request to the upstream per tile at any given time. Subsequent requests will block until the first returns. This improves cache hit ratios and alleviates pressure on the upstream for large tiles.
Fixes
- Cleaned up
lod-cache
string in HTTP logs. It now shows more descriptive error states.:miss
- cache miss:hit-w
- cache hit after waiting for duplicate request to upstream:hit-i
- cache hit via internal cache:hit-e
- cache hit via external cache:err-t
- error building tile URL, bad request:err-c
- error building cache key, bad request:err-w
- error writing tile to response body, internal server error:err-u
- error in request to upstream, internal server error
Full Changelog: https://github.com/tile-fund/lod/compare/v0.7.3..v0.8.0
v0.7.3 / 2022-04-05
This release includes work towards v1.0.0, namely improvements in configuration and internals
Features
- Added
mem_enabled
to cache config to allow user to disable in-memory cache - Added
redis_tls
to cache config to allow user to enable SSL connections to Redis
Improvements
- Better handling of empty tiles returned from upstream
- Allow caching of empty tiles returned from upstream
- Better handling of non-200 2XX response codes returned from upstream
- Internal multi-level cache handling improvements
- Config validation improvements
- Many internal refactors for clarity and maintainability
Fixes
- Use
Origin
from request picked from list of allowed CORS origins rather than injecting all allowed origins into the response headers
Deps
- Vendored all dependencies
- build(deps): bump github.com/valyala/fasthttp from 1.31.0 to 1.34.0 (#8)
- build(deps): bump github.com/gofiber/fiber/v2 from v2.24.0 to v2.31.0
Full Changelog: https://github.com/tile-fund/lod/compare/v0.7.2..v0.7.3
v0.7.2 / 2022-03-14
This release includes work towards v1.0.0, namely improvements in configuration
Features
- Support dynamic endpoints in tile URLs using the
{e}
parameter.
Full Changelog: https://github.com/tile-fund/lod/compare/v0.7.1..v0.7.2
v0.7.1 / 2022-03-14
This release includes work towards v1.0.0, namely improvements in configuration
Features
- Support expanding environment variables in configuration
Full Changelog: https://github.com/tile-fund/lod/compare/v0.7.0..v0.7.1
v0.7.0 / 2022-01-10
This release includes work towards v1.0.0, namely improvements to usability and observability.
Features
- Support auth token in proxy endpoint query parameter if auth token configured
- Support header injection into upstream requests if
add_headers
are configured - Support fetching config from HTTP URL (
--conf https://yoursite.com/config.toml
) - Added endpoint for flushing all caches at
/admin/flush
- Added prometheus metrics endpoint at
/admin/metrics/prometheus
Fixes
- Minor internal optimizations
- Improved documentation
Full Changelog: https://github.com/tile-fund/lod/compare/v0.6.0..v0.7.0
v0.6.0 / 2022-01-08
This release includes work towards v1.0.0, namely improvements to security and stability.
Features
- Added configuration property to disable admin endpoints
- Added configuration property to secure admin endpoints with auth bearer token
- Moved capabilities endpoint to admin group
- Moved status endpoint to admin group
Fixes
- Changed read timeout to 2 seconds to prevent abuse
- Send empty body in 404 handler instead of
Not Found
Full Changelog: https://github.com/tile-fund/lod/compare/v0.5.0..v0.6.0
v0.5.0
This release includes work towards v1.0.0, namely improvements to configuration.
Features
- Use parsable duration strings for cache TTLs in configuration.
# Cache TTLs are set using Go's built-in time.ParseDuration
# Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
# For example: 1h, 5m, 300s, 1000ms, 2h35m, etc.
Fixes
- Don't extend Redis TTL if no TTL set in configuration.
- Miscellaneous configuration verification improvements.
Full Changelog: v0.4.6...v0.5.0
v0.4.6
This release includes work towards v1.0.0, namely the release process and Docker images.
Chores
- new build system using GitHub Actions completed
- Docker images now available at
tilefund/lod
on DockerHub
Full Changelog: v0.4.1...v0.4.6
v0.4.1
This release includes work towards v1.0.0, namely stability improvements.
Features
- feat: extend Redis cache TTL on successful tile fetch
Fixes
- fix: nil pointer dereference due to bad boolean logic
- fix: properly validate and invalidate tiles from the cache
- fix: properly set up
bigcache
internals
Chores
- new build system using GitHub Actions
- improved documentation across the board
- added Getting Started Section to README
Full Changelog: v0.3.0...v0.4.1