Skip to content

Releases: weisdd/lfgw

v0.9.0: deduplication

02 Apr 12:25
057a0b3
Compare
Choose a tag to compare
  • Key changes:
    • Added support for deduplication (enabled by default, can be turned off through ENABLE_DEDUPLICATION: false):
      • Previously, a label filter with a positive regexp was always added or replaced if a user had a regexp policy;
      • When deduplication is enabled, these queries will stay unmodified:
        • min.*, stolon, query: request_duration{namespace="minio"} - a non-regexp label filter that matches policy;
        • min.*, stolon, query: request_duration{namespace=~"minio"} - a "fake" regexp (no special symbols) label filter that matches policy;
        • min.*, stolon, query: request_duration{namespace=~"min.*"} - a label filter is a subfilter of the policy;
    • ACLs:
      • ACLs containing one word regexp expressions will have their anchors stripped;
      • Anchors are no longer added to complex ACLs, because Prometheus always treats regex expressions as fully anchored;
      • Fix: if a user had multiple roles, and one of the roles contained .* amongst other entries, getLF would pass all roles to PrepareLF instead of directly returning a full access role. It didn't cause any security issues as PrepareLF would still return a full access label filter, it just made the process lengthier;
    • Logs:
      • GET and POST queries are now logged in unescaped form, so it gets easier for a reader to compare original and modified requests;
      • duration is now logged without unit suffix, time is represented in seconds;
    • Bugfixes:
      • admin POST-requests failed to get proxied to upstream, because logging middleware was not updating Content-Length after reading PostForm. The issue was introduced in 0.7.0;
    • Added more tests.

v0.8.0: runtime metrics

21 Mar 21:17
7600a12
Compare
Choose a tag to compare
  • Key changes:
    • Exposed runtime metrics.

v0.7.0: zerolog

21 Mar 20:51
995ca01
Compare
Choose a tag to compare
  • Key changes:
    • Added some tests;
    • Moved to Go 1.18, Alpine 3.15.1;
    • Moved to zerolog:
      • Pretty formatting by default, JSON is also an option (env: LOG_FORMAT: pretty, json);
      • Optional access log (env LOG_REQUESTS: true);
      • NOTE: Logging format is subject to change.

v0.6.0: graceful shutdown

02 Mar 22:59
ba75d2f
Compare
Choose a tag to compare
  • Key changes:
    • Added a graceful shutdown mechanism with a configurable timeout.

v0.5.0: expression optimizations

21 Feb 00:39
b28ca9b
Compare
Choose a tag to compare
  • Key changes:
  • Minor changes:
    • lfgw:
      • Slight improvements in code style;
      • Migrated to go 1.17;
      • Fully deprecated non-OIDC modes;
      • Bumped go.mod deps;
      • Updated base images;
      • Enabled more linters for golangci-lint;
    • CI:
      • Simplified Taskfile;
      • Enabled dependabot alerts;
      • Added a workflow to publish docker images.

0.4.0: support for multiple roles

21 Jun 21:37
3c49d45
Compare
Choose a tag to compare
  • Added support for multiple roles (previously, only the first one would be picked).

0.3.0: Added support for POST requests

28 Mar 13:10
8b30fd5
Compare
Choose a tag to compare
  • Added support for POST requests;
  • Updated metricsql from v0.10.1 to v0.14.0.

0.2.3

10 Mar 21:48
Compare
Choose a tag to compare
  • Added /federate to a list of requests that should be rewritten.