Skip to content

Releases: dechristopher/lod

v0.9.1 / 2022-11-22

22 Nov 21:10
a6d3bb2
Compare
Choose a tag to compare

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

06 May 11:23
748c5bf
Compare
Choose a tag to compare

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

05 Apr 21:31
10af385
Compare
Choose a tag to compare

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

14 Mar 19:30
453d808
Compare
Choose a tag to compare

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

14 Mar 15:35
7a66eb6
Compare
Choose a tag to compare

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

10 Jan 16:56
Compare
Choose a tag to compare

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

09 Jan 00:35
Compare
Choose a tag to compare

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

08 Jan 04:41
Compare
Choose a tag to compare

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

06 Jan 20:36
Compare
Choose a tag to compare

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

06 Jan 19:33
Compare
Choose a tag to compare

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