Skip to content

Releases: beetlebugorg/go-dims

v1.0.0-rc2

Choose a tag to compare

@github-actions github-actions released this 28 Aug 02:21
c2508d6

What's Changed

Full Changelog: v1.0.0-rc1...v1.0.0-rc2

v1.0.0-rc1

Choose a tag to compare

@github-actions github-actions released this 28 Aug 00:55
1e046d6

A release candidate for 1.0.0. It carries 52 pull requests since v0.7.2 and closes two rounds of security and correctness review.

Upgrading

Re-sign every URL before you deploy this. Two changes to the signature mean no existing signed URL validates.

  • Every query parameter now takes part in the signature. Only the parameters named by _keys did before, which left overlay unprotected, so a caller holding one valid signed watermark URL could point the overlay at any address the service could reach.
  • The signed message is canonical. It holds the command path, the image URL, then the signed parameters as percent-encoded name=value pairs ordered by name, one field per line. The parameter name is part of the message, so two requests that differ only in where a character sits between adjacent parameters no longer share a signature.

DIMS_SIGNING_COMPAT=legacy accepts the mod_dims _keys signature. It does not accept signatures made by an earlier go-dims release.

The signing page carries the construction with a working implementation in PHP, Python, JavaScript, and Ruby.

Check these defaults against your traffic. Each one refuses a request that an earlier release served.

Setting Default What it refuses
DIMS_ALLOW_PRIVATE_NETWORKS false An origin that resolves to a loopback, link local, or private address. Set it to true when the origin sits inside your network.
DIMS_MAX_SOURCE_BYTES 64 MB A larger source image, with 400.
DIMS_MAX_SOURCE_PIXELS 100 MP A larger source image, with 400.
DIMS_MAX_OUTPUT_PIXELS 50 MP A larger result, with 400.
DIMS_MAX_CONCURRENT CPU count Work past the limit queues for DIMS_MAX_CONCURRENT_WAIT, then returns 503.

An unknown command name now returns an error. It used to be ignored, which served a differently processed image without saying so.

Terraform. signing_key is required, development_mode defaults to false, and the Lambda function URL defaults to AWS_IAM. A precondition blocks a public unsigned deployment.

Security

  • The source address is checked at the socket, once per connection. A name that resolves to a private address is refused whatever it is called, and a redirect is checked the same way as the original request. DIMS_ALLOWED_HOSTS and DIMS_MAX_REDIRECTS narrow it further.
  • The file backend is contained with os.OpenRoot, so a path cannot leave the base directory, including by way of a symlink.
  • Signatures are compared in constant time, and the digest is the full HMAC-SHA256.
  • Two data races are fixed, on the shared configuration and on the HTTP client.

Added

  • Conditional requests. A response carries an ETag, and a request sending a matching If-None-Match gets 304.
  • Source and output pixel caps, a source byte cap, and separate limits on how many images are processed and downloaded at once.
  • Server read, write, and idle timeouts, and a graceful shutdown that lets requests in flight finish.
  • The libvips operation cache and thread count are configurable.
  • The sepia command.
  • Twenty settings in total. The configuration reference lists them.

This candidate

dims version reports 1.0.0-rc1. The container is published as ghcr.io/beetlebugorg/go-dims:1.0.0-rc1 and :next. The :latest tag still points at the last finished release.


What's Changed

New Contributors

Full Changelog: v0.7.2...v1.0.0-rc1

v0.7.2

v0.7.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 May 23:29

What's Changed

Full Changelog: v0.7.1...v0.7.2

v0.7.1

v0.7.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 May 23:37

What's Changed

Full Changelog: v0.7.0...v0.7.1

v0.7.0

v0.7.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 May 22:34

What's Changed

  • Generated sboms, update NOTICE and assoicated licenses, relicense to MIT by @beetlebugorg in #34
  • Fix issue issue with lambda build, and add build to workflows by @beetlebugorg in #35

Full Changelog: v0.6.0...v0.7.0

v0.6.0

v0.6.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 May 23:06

What's Changed

Full Changelog: v0.5.0...v0.6.0

v0.5.0

v0.5.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 May 00:29

What's Changed

Full Changelog: v0.4.0...v0.5.0

v0.4.0

v0.4.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 May 13:15

What's Changed

Full Changelog: v0.3.0...v0.4.0

v0.3.0

v0.3.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 10 May 19:46

What's Changed

Full Changelog: v0.2.0...v0.3.0

v0.2.0

v0.2.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 09 May 23:56

What's Changed

Full Changelog: v0.1.0...v0.2.0