ITADN
0xERR0R/blocky

版本发布 8

v0.29.0
? · 2026-02-27

## Changelog ### Features * 0c35f21b8524d208335a8fcf87fcdb7016c30235: feat: add RFC 7239 Forwarded header support for client IP parsing (#1941) (@0xERR0R) * 011e3eb5001127ff8bcc859320ae45dde9492d8d: feat: implement DNS64 support (#1933) (@0xERR0R) * e199445bcde148dc9c12837e1e97a79a6b8ba633: feat: improve IP parsing from X-Forwarded-For header (#1940) (@0xERR0R) ### Bug fixes * 257fe07f311c90b3d046cb76b6084882da8313b1: fix: Incorrect rate data shown on Grafana dashboards (#1948) (@mattdy) * 1a4d22d3d8154a4f45e22e08ea68a7d55eb7cbeb: fix: db automigration with timescaledb (#1975) (@manofthepeace) * 98742121da6ce4cd7cce6e6da829f6916ff490d4: fix: use context based versions of net.Listen and net.Dial (#1952) (@sonjek) ### Build and dependencies * fe674044da83b1f1be409229c41da82deaaf0379: build(deps): bump actions/checkout from 5 to 6 (#1943) (@dependabot[bot]) * 4752061443b37cd75eb41b22f4cfb118b11e61ea: build(deps): bump actions/download-artifact from 6 to 7 (#1961) (@dependabot[bot]) * d45931137860881f1cda31b9018e44b773982948: build(deps): bump actions/download-artifact from 7 to 8 (#2000) (@dependabot[bot]) * fa1614bbbe6b026bdf6a424e9048f05f051c2dac: build(deps): bump actions/upload-artifact from 5 to 6 (#1960) (@dependabot[bot]) * 11b6f923874c48aa5a16a35ec56d3a9f7ce5a07b: build(deps): bump actions/upload-artifact from 6 to 7 (#1998) (@dependabot[bot]) * e83805c9876e3b0c60025043dcfb28c4b4316beb: build(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 (#1992) (@dependabot[bot]) * 4f62ec8009833a588b900dce71fe3442a0985296: build(deps): bump github.com/alicebob/miniredis/v2 from 2.35.0 to 2.36.0 (#1976) (@dependabot[bot]) * 16644c5659fac8affdc1eeb38ee5549927d6191e: build(deps): bump github.com/alicebob/miniredis/v2 from 2.36.0 to 2.36.1 (#1978) (@dependabot[bot]) * 36ae188e724ca91d8b0873d8cbe66715d62bc744: build(deps): bump github.com/alicebob/miniredis/v2 from 2.36.1 to 2.37.0 (#1996) (@dependabot[bot]) * 4733c6bb529c735594520a84a1fbcbcd485f569a: build(deps): bump github.com/breml/rootcerts from 0.3.3 to 0.3.4 (#1987) (@dependabot[bot]) * e4f746218f9c44d14515398b2258fcb1dc904861: build(deps): bump github.com/go-chi/chi/v5 from 5.2.3 to 5.2.4 (#1972) (@dependabot[bot]) * f9dd4d294a5d4a8d1144584ff406d7e6ba8e21c0: build(deps): bump github.com/go-chi/chi/v5 from 5.2.4 to 5.2.5 (#1985) (@dependabot[bot]) * e66a29d8742b2de39b33166b3caa8533305956b7: build(deps): bump github.com/miekg/dns from 1.1.68 to 1.1.69 (#1959) (@dependabot[bot]) * 8e693558d775148125f78074a65b6b1f628d79d9: build(deps): bump github.com/miekg/dns from 1.1.69 to 1.1.70 (#1968) (@dependabot[bot]) * 5e8b5559847ca7f5adf2f3aa3e5b950041148583: build(deps): bump github.com/miekg/dns from 1.1.70 to 1.1.72 (#1977) (@dependabot[bot]) * ef5dc97ddf80a62f6ca844ab5af6d23ff3d81f7a: build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.2 to 2.27.3 (#1956) (@dependabot[bot]) * 670542bacfb574472fdc8964e811e3366d544fe0: build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.3 to 2.27.4 (#1966) (@dependabot[bot]) * e062742259af26cadec391da875783349401596c: build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.4 to 2.27.5 (#1970) (@dependabot[bot]) * 4926d161fe68e642e7e967f58907f36ef75a79d3: build(deps): bump github.com/onsi/ginkgo/v2 from 2.27.5 to 2.28.1 (#1981) (@dependabot[bot]) * ca0da10f7c5d7a42b86f729d6083012665c09233: build(deps): bump github.com/onsi/gomega from 1.38.2 to 1.38.3 (#1955) (@dependabot[bot]) * 567a73887b7c0c3ab1b638172c92e10246dbef72: build(deps): bump github.com/onsi/gomega from 1.38.3 to 1.39.0 (#1967) (@dependabot[bot]) * c3aab87e1de7a7cec8dae12728b28399e62ebe85: build(deps): bump github.com/onsi/gomega from 1.39.0 to 1.39.1 (#1982) (@dependabot[bot]) * ef79a6789a5db8b405b285b9c3212580d1e21250: build(deps): bump github.com/sirupsen/logrus from 1.9.3 to 1.9.4 (#1974) (@dependabot[bot]) * 67757591e5b8e057bb3390ed5f7e4db2e86554a9: build(deps): bump github.com/spf13/cobra from 1.10.1 to 1.10.2 (#1953) (@dependabot[bot]) * 71c39fc132955e04be167307396a85c6be30a3fe: build(deps): bump golang.org/x/crypto from 0.44.0 to 0.45.0 (#1939) (@dependabot[bot]) * be316486ac515850cba384f76c963a30bda39afe: build(deps): bump golang.org/x/net from 0.47.0 to 0.48.0 (#1957) (@dependabot[bot]) * a5740782eaf2f2fa3b0af3b0d4a4c6ab0ec9d6b2: build(deps): bump golang.org/x/net from 0.48.0 to 0.49.0 (#1971) (@dependabot[bot]) * 6f3f2959d3138bdfa03debf9aa891aa65aa1457c: build(deps): bump golang.org/x/net from 0.49.0 to 0.50.0 (#1988) (@dependabot[bot]) * 6a75afb48078643426366914282d24b2131a8f96: build(deps): bump golang.org/x/net from 0.50.0 to 0.51.0 (#1997) (@dependabot[bot]) ### Misc * 439e99b1932ec1a3460e26e8b4d29c2fa3a6f826: Add Blocky Visor to web UIs section in installation.md (#1993) (@JCHHeilmann) * ced469f479cea049f411c21f453658abcea297c9: refactor: centralize DNS response creation logic with helper functions (#1942) (@0xERR0R) * 3075c3810c8ac238ea06d335d439768b7b3c1dea: refactor: clean up obsolete Go syntax (#1951) (@sonjek) * 9fe42a86218307794f5d0d866edaca0c45ee71be: refactor: simplify code for improved readability and maintainability (#1945) (@0xERR0R) * 65816682cce98d1caf5973d3d28640006b33997b: refactor: use mockery for mocks (#1944) (@0xERR0R) * 55ab95ed4d6d6a05f057116bfdcd5ba07ba83d48: test(metrics): Prometheus metrics (#1868) (@zeilenschubser)

v0.28.2
? · 2025-11-18

## Changelog ### Features * 26ac90c0e230bdb670c7cd41435980f4497fe463: feat: add MIPS architecture builds (#1929) (@0xERR0R) ### Bug fixes * 605a36199d855cc0d91630da4231b7cf4cd04ea4: fix: handle DNSSEC validation for large RSA exponents and improve DNSKEY matching (#1935) (@0xERR0R) ### Misc * b776ae57bc46c996bf48cea24592dedac189260b: refactor: remove duplicated code patterns in resolver and cmd packages (#1932) (@Copilot)

v0.28.1
? · 2025-11-13

## Changelog ### Bug fixes * 5657ce8f0d4dc1665968fedbcc5dc97e70f2591c: fix: resolve DNSSEC validation issue for CNAMEs in unsigned zones (#1930) (@0xERR0R) ### Build and dependencies * f4b6b75457d74a6913235a4740e47bf4a1bfe396: build: Update regex for bug fixes in goreleaser config (@0xERR0R) ### Misc * 0a3c72441f2431a2903c6ad37e84d7ea7e0da755: refactor: remove unused code (#1928) (@0xERR0R)

v0.26.2
? · 2025-05-22

Fixes multi-arch images for arm64/arm7 (#1776)

v0.26
? · 2025-05-20

## Changelog * 5bc70ebedd606b87529400ecf140ba3c962c9107: build(deps): bump github.com/avast/retry-go/v4 from 4.6.0 to 4.6.1 (#1716) (@dependabot[bot]) * d37ecbd889ebcdc885cb018db945bacc4ae777e3: build(deps): bump github.com/breml/rootcerts from 0.2.19 to 0.2.20 (#1702) (@dependabot[bot]) * 3cc1b45eae1b80b1dec8c5d977df21ce131cd98e: build(deps): bump github.com/breml/rootcerts from 0.2.20 to 0.2.21 (#1774) (@dependabot[bot]) * 16a4bea815d46cb12df4aa61f9149c38d7e81af1: build(deps): bump github.com/docker/docker (#1695) (@dependabot[bot]) * 90888bf5890e8e3aff1653ab8923eb78632f721a: build(deps): bump github.com/docker/docker (#1711) (@dependabot[bot]) * 66ddeefb79be9569b2c26bfc1be1439bdb92b8c0: build(deps): bump github.com/docker/docker (#1737) (@dependabot[bot]) * cc7a4a61c569c1933efb24b814784e0f9d91e6c3: build(deps): bump github.com/docker/docker (#1744) (@dependabot[bot]) * dc7def728f0ade0ac992278e8828249e39cb7d0e: build(deps): bump github.com/docker/docker (#1763) (@dependabot[bot]) * cc5b0ecc4b0b2c14d96612350a8a706f911c37de: build(deps): bump github.com/getkin/kin-openapi from 0.127.0 to 0.131.0 (#1773) (@dependabot[bot]) * 62c08f5b41eb0098f4617d4d56ad803dd331310d: build(deps): bump github.com/go-chi/chi/v5 from 5.2.0 to 5.2.1 (#1703) (@dependabot[bot]) * 8b2911e196a3a53b610186c9391be1028e175c0c: build(deps): bump github.com/google/go-cmp from 0.6.0 to 0.7.0 (#1715) (@dependabot[bot]) * 15c0d9444ed814b630be429817615edaaf054c88: build(deps): bump github.com/miekg/dns from 1.1.62 to 1.1.63 (#1697) (@dependabot[bot]) * 79d88bc8a2dc8c8442928fa66a99a0fd555904fd: build(deps): bump github.com/miekg/dns from 1.1.63 to 1.1.64 (#1736) (@dependabot[bot]) * 6183476be1dfec56c61454a54b97a0f1596dff8e: build(deps): bump github.com/miekg/dns from 1.1.64 to 1.1.66 (#1771) (@dependabot[bot]) * 1c9ed547e0182efbaf6b876eb00ceeee2540d169: build(deps): bump github.com/onsi/ginkgo/v2 from 2.20.2 to 2.22.2 (#1677) (@dependabot[bot]) * 7fea18824f42325368b2455fa961fe4a2e15eb16: build(deps): bump github.com/onsi/ginkgo/v2 from 2.23.0 to 2.23.2 (#1739) (@dependabot[bot]) * 49d9ac7940b80cab4b9b94c51cf42d404898b7db: build(deps): bump github.com/onsi/ginkgo/v2 from 2.23.2 to 2.23.3 (#1742) (@dependabot[bot]) * b91028982d5dd0faad40daeb430573f960bb71db: build(deps): bump github.com/onsi/ginkgo/v2 from 2.23.3 to 2.23.4 (#1755) (@dependabot[bot]) * e4a5becfa7c3e7e4db11882f93938006449b33e1: build(deps): bump github.com/onsi/gomega from 1.36.2 to 1.36.3 (#1743) (@dependabot[bot]) * 2ae32a0950e2e5e5bf5bf4dff9b039daebeff809: build(deps): bump github.com/onsi/gomega from 1.36.3 to 1.37.0 (#1751) (@dependabot[bot]) * d0b29c6a7b1a777d8929f027a6c0a9617e7d7e96: build(deps): bump github.com/prometheus/client_golang (#1710) (@dependabot[bot]) * 2024167172bf025fbe15ceecbd6a714d4a4be0d8: build(deps): bump github.com/prometheus/client_golang (#1724) (@dependabot[bot]) * bef4b0de3878f6ef5f7a0ec1a78d6228f641fd90: build(deps): bump github.com/prometheus/client_golang (#1757) (@dependabot[bot]) * b3968bffe688db4763de452d384b284631460bfa: build(deps): bump golang.org/x/net from 0.37.0 to 0.38.0 (#1748) (@dependabot[bot]) * 15df4a9b20db0e295c7f94df3d51721949b17802: build(deps): bump golang.org/x/net from 0.38.0 to 0.40.0 (#1769) (@dependabot[bot]) * d6672f684c43e97658297484ed451ac274a8930a: build(deps): bump golang.org/x/tools from 0.24.0 to 0.29.0 (#1681) (@dependabot[bot]) * 0d3545d72dd6628a23dac55e30ed63b91d5658ff: build(deps): bump golang.org/x/tools from 0.29.0 to 0.30.0 (#1705) (@dependabot[bot]) * 857a76fe4f4ec220abfecb10e9134b82ac8d3a37: build(deps): bump uraimo/run-on-arch-action from 2 to 3 (#1721) (@dependabot[bot]) * 0a0761cd423ab9b02106a6cdaf3e4ded22bf2d67: build(deps): update dependencies (@0xERR0R) * bb8f5355ff23dbfbde2bbbaa7f765289f0236e9a: build: replace tools.go with go.mod tool (#1733) (@0xERR0R) * 7f39f02c087ae98259d1b0e6cdc9a57c019ae16e: chore(build): refactor Dockerfile (#1694) (@0xERR0R) * bc2f532051bb3c9dc7613674150ead2cc24da9b1: deps: update testcontainers (@0xERR0R) * 5380fb9b574c24047d91d8a83f98c230bc612c12: docs(grafana): overview supporting native histograms (#1729) (@krohrsb) * 3a449b05f31ae90c960b9d13ecf374584cb9031a: feat: add "cache-control" http header to DoH response (#1732) (@0xERR0R) * 6674c55b018f4c8087c12be57092b90a7f0dfb7a: feat: add cache exclude configuration (#1753) (@macsign) * e6c535c20326e74055edae0ef25ce69e52bfc458: feat: improve Grafana dashboard (#1722) (@maxim-mityutko) * daadf3ec63b3518c212496750dfb7c137ea6a31c: feat: remove "||" and "^" from host names to allow Adblock plus flavored lists (#1740) (@0xERR0R) * 7e5ea53ca55eca2977dc9dd27f72d92d786daef9: fix(docs): Update Alpine Linux package link (#1752) (@fhemberger) * f7afe1b3f86df73f610c56130409005ab3ed9e53: fix(docs): fix stale link in example Allowlists (#1700) (#1701) (@erictelkkala) * a398516373f918792586a15953ea1bd4e75f6c9c: fix: fix queries in Grafana dashboard (#1693) (@0xERR0R) * fb13581706f3f536d1be56b370124b2dd5344b21: fix: fix queries in Grafana dashboard (#1693) (@0xERR0R)

v0.25
? · 2025-01-17

## Changelog * 4eff0b3b00c2112bdea64f93327de15c30b3b0e2: Add support for SRV and TXT in custom DNS zones (#1588) (@Terrance) * 3dcd310a9aabbe15a2a4d9f7176571e13195b3ab: feat: CLI command for configuration validation (#1497) (@0xERR0R) * 51db8db8ed96b003308f7a7e09e69d5be5721625: feat: ability to disable "Special Use Domain Name" blocking (#1618) (@mapl) * 6259e1326c0c1f827a5bc252da862247d04ac5ee: feat: add Timescale DB with Hypertable and Retention support (#1517) (@m4rcs) * f1386a096ee32322f395d4ccb7f2fcf2fafd158a: feat: added ip argument to health check (#1667) (@cosmikwolf) * e485df1d4f963d6f5c864a755b08b9f402e12f87: feat: configurable file write timeouts (#1653) (@TheoTechnicguy) * 49581ff40d023a5373245742885ac307f1d0cca4: feat: configurable request header read timeout (#1664) (@TheoTechnicguy) * 0d00311513b6f566e19e0721761d3f381526666f: feat: configurable request read timeouts (#1663) (@TheoTechnicguy) * 57b1bdbcea1da545e1717914b069ccc5eaf66dea: feat: update metrics (#1560) (@SuperQ) * 8f08b7ba53db81f90b6d7dd0bed6e55e77b0f27b: fix(docs): mark config mount as read-only (@zygm0nt) * 7b5d34156cb80d1376976b758a461836ab9050d9: fix(server): typo causing HTTPS router to be used for HTTP server (@ThinkChaos) * 5a5ba550d5ec8db1405650d1dd114b30c18385a7: fix: configuration error if customDNS.mappings contains multiple entries with whitespace (#1496) (@0xERR0R) * bc5b59de7e4ce896a990d2fbffa31e67a93308c1: refactor(server): deduplicate HTTP server setup with new `httpServer` (@ThinkChaos) * 0f1cf4f3959d3004413ba0309436fc735486539e: refactor(server): deduplicate `tls.Config` setup (@ThinkChaos) * ae9651db530ef28742e9a6fe4558735c5e6c3aed: refactor(server): move middleware setup to `httpServer` (@ThinkChaos) * 78f05ae4bd9f28f04c59d25f5fe270d1df301589: refactor(server): setup TLS listeners manually to remove `ServeTLS` use (@ThinkChaos) * 037efeb66afeeb70d8c915c8905e517e312e527b: refactor(server): simplify HTTP router setup (@ThinkChaos) * a2d7daa530ef63c4e146a3105abe34bdb643bb0e: refactor: Use package local metrics (#1578) (@SuperQ) * 6aae002ca749ae939d0dea3b2383f07f296df3e4: refactor: add `:` prefix to ports during config unmarshaling (@ThinkChaos) * 8c3d858b28e0d0cf1672ece6231cebcf0ee19fc3: refactor: cleanup TLS self-signed cert generation (@ThinkChaos) * 70afa437494ab67f5cf48191d5046c86dd37c859: refactor: make QueryLoggingResolver read the hostname on creation (@ThinkChaos) * b589dcad6248527ac5f93785085f50d40b2718b5: refactor: move `createSelfSignedCert` to util (@ThinkChaos) * aff2998a20d93d7949252408281618977deace52: build(deps): bump codecov/codecov-action from 4 to 5 (#1645) (@dependabot[bot]) * ba774ec2775da98a0ec4eabe2d28cd8955891cf3: build(deps): bump docker/build-push-action from 5 to 6 (#1526) (@dependabot[bot]) * 64384e4a3c7d6ec961012f0de60f976431091cdd: build(deps): bump github.com/alicebob/miniredis/v2 from 2.32.1 to 2.33.0 (#1502) (@dependabot[bot]) * 9326457fa2370dc42551c8cf6bab80125671c0b2: build(deps): bump github.com/alicebob/miniredis/v2 from 2.33.0 to 2.34.0 (#1668) (@dependabot[bot]) * b54675a404acd1930fb4bd70d3a9254811d6da92: build(deps): bump github.com/creasty/defaults from 1.7.0 to 1.8.0 (#1573) (@dependabot[bot]) * 3a80ed4f44a7413df2be304d77de9d4aaf5caa8b: build(deps): bump github.com/deepmap/oapi-codegen from 1.16.2 to 1.16.3 (#1512) (@dependabot[bot]) * aef4eca7e0c7267ba7e18939de8a76e5b258bb22: build(deps): bump github.com/docker/docker (#1488) (@dependabot[bot]) * 12d3e6a3ac2dd0e77259470d62eba181a27f27ad: build(deps): bump github.com/docker/docker (#1516) (@dependabot[bot]) * cc9ce6c336baf01541f4734d681a360e8f0a1a54: build(deps): bump github.com/docker/docker (#1556) (@dependabot[bot]) * 02e38283ba9fe081bbe9a15944f28007176b6aaa: build(deps): bump github.com/docker/docker (#1571) (@dependabot[bot]) * 564b41e82d4f66293fe077b24e79b79e23206f7d: build(deps): bump github.com/docker/docker (#1589) (@dependabot[bot]) * e5500a04d3c0b8a83b33f033fe4ee2a50f9801f5: build(deps): bump github.com/docker/docker (#1600) (@dependabot[bot]) * 832d6c4e7a983c7e877296d14dc3dab33b69c280: build(deps): bump github.com/docker/docker (#1611) (@dependabot[bot]) * a47a2491e5cbeb8122b0995822d1bec5a59e45b4: build(deps): bump github.com/docker/docker (#1659) (@dependabot[bot]) * a2c5f25d462c5d5fc2667e77cd1d8e4267ed030e: build(deps): bump github.com/docker/docker (#1670) (@dependabot[bot]) * 17fa01d3a0d097d4650790c6054b2f16c3eeaf14: build(deps): bump github.com/docker/docker (#1691) (@dependabot[bot]) * d42c174c50698f1d5d81210dcd4278ae1494a063: build(deps): bump github.com/go-chi/chi/v5 from 5.0.12 to 5.0.13 (#1527) (@dependabot[bot]) * ddebd3450c71b88115f8b32f698fea1f643a4b48: build(deps): bump github.com/go-chi/chi/v5 from 5.0.13 to 5.0.14 (#1529) (@dependabot[bot]) * e5110039ce5be7d51c9e31118507e9050406e25c: build(deps): bump github.com/go-chi/chi/v5 from 5.0.14 to 5.1.0 (#1532) (@dependabot[bot]) * 2108018bd352ec87cdb11eb46e5ba89854324a2b: build(deps): bump github.com/go-chi/chi/v5 from 5.1.0 to 5.2.0 (#1665) (@dependabot[bot]) * 6ddac0455fda68728d74ea70d83b0b2b456cd4ce: build(deps): bump github.com/mattn/go-colorable from 0.1.13 to 0.1.14 (#1687) (@dependabot[bot]) * f6557803aafe4efd117259f1373476efe1fdb118: build(deps): bump github.com/miekg/dns from 1.1.59 to 1.1.61 (#1524) (@dependabot[bot]) * 6c499c7d8b8bf2bfec59523f3f7a8d7d80489fb9: build(deps): bump github.com/miekg/dns from 1.1.61 to 1.1.62 (#1572) (@dependabot[bot]) * 5aa310367153362e5bc1259123650ce31bfd9530: build(deps): bump github.com/onsi/ginkgo/v2 from 2.18.0 to 2.19.0 (#1498) (@dependabot[bot]) * 0beb35c2e675ceb0c7b887a0f304bedefa0f1a82: build(deps): bump github.com/onsi/ginkgo/v2 from 2.19.0 to 2.19.1 (#1561) (@dependabot[bot]) * a7c8aed3dc643c55401a490d0f1d5d764af52a4a: build(deps): bump github.com/onsi/ginkgo/v2 from 2.19.1 to 2.20.0 (#1569) (@dependabot[bot]) * 0cf7cb5dffe9edee0cfdba65deca8c0ab2a3e4a2: build(deps): bump github.com/onsi/ginkgo/v2 from 2.20.0 to 2.20.1 (#1584) (@dependabot[bot]) * a28a0077235b0d92288b0c90219a0023f8d340bf: build(deps): bump github.com/onsi/ginkgo/v2 from 2.20.1 to 2.20.2 (#1590) (@dependabot[bot]) * d1d283fb9746cfeb687a4ba3800d66f5f811283b: build(deps): bump github.com/onsi/gomega from 1.33.1 to 1.34.1 (#1562) (@dependabot[bot]) * 3e6b61b3ebd665437f229e7b410bb9555520408a: build(deps): bump github.com/onsi/gomega from 1.34.1 to 1.34.2 (#1591) (@dependabot[bot]) * a37718031d7d41a9339144887758ce5e3093a945: build(deps): bump github.com/onsi/gomega from 1.34.2 to 1.35.1 (#1635) (@dependabot[bot]) * f38b4a11747c3c8675783f131a1a2d05fbd8fc09: build(deps): bump github.com/onsi/gomega from 1.35.1 to 1.36.0 (#1649) (@dependabot[bot]) * 2e7fda99e3a3a44ecc31152eb318c7cd8092900e: build(deps): bump github.com/onsi/gomega from 1.36.0 to 1.36.1 (#1660) (@dependabot[bot]) * 4805cb60d261ed8d54f51fb32660bb0089dbd89b: build(deps): bump github.com/prometheus/client_golang (#1480) (@dependabot[bot]) * 766dc7915b02cc26a405aa47abb08719e2f8f357: build(deps): bump github.com/prometheus/client_golang (#1575) (@dependabot[bot]) * 437e0cd58ebce458ae68381d5b93c65710df4f48: build(deps): bump github.com/prometheus/client_golang (#1586) (@dependabot[bot]) * 776a8f19b40ba12d33e1295ad863c962cc75a532: build(deps): bump github.com/prometheus/client_golang (#1598) (@dependabot[bot]) * cea540f0a1b4cfbba0b8372eecbc111cf7a2b7ef: build(deps): bump github.com/prometheus/client_golang (#1607) (@dependabot[bot]) * 76aa6cc84cd134d8bd530dadd56b1dddf1ccc77c: build(deps): bump github.com/prometheus/client_golang (#1626) (@dependabot[bot]) * 0a354893c2a4c50f65d059e882d399381d4d69a8: build(deps): bump github.com/ramr/go-reaper from 0.2.1 to 0.2.3 (#1637) (@dependabot[bot]) * 49869149055a773d1e483b89cf0693fc963b4700: build(deps): bump github.com/spf13/cobra from 1.8.0 to 1.8.1 (#1525) (@dependabot[bot]) * 128dd4fae6af75884c3ac0e7c8f1d305a32a0520: build(deps): bump github.com/stretchr/testify from 1.9.0 to 1.10.0 (#1648) (@dependabot[bot]) * f78e213138e7d93b59fa6881a1b796a48297540c: build(deps): bump github.com/testcontainers/testcontainers-go/modules/mariadb (#1582) (@dependabot[bot]) * cf5e496fe530e68d98e5989e76c21644cb330246: build(deps): bump github.com/testcontainers/testcontainers-go/modules/mariadb (#1630) (@dependabot[bot]) * 23e4672a3d72ce6bab17edee3c74c0d3db844fcc: build(deps): bump github.com/testcontainers/testcontainers-go/modules/mariadb (#1686) (@dependabot[bot]) * 5996f5a16e0627df6422a7f41a91cd88528de988: build(deps): bump github.com/testcontainers/testcontainers-go/modules/postgres (#1583) (@dependabot[bot]) * 7e23557fe0b1be19080dd05fa7221302afd73e5d: build(deps): bump github.com/testcontainers/testcontainers-go/modules/postgres (#1629) (@dependabot[bot]) * 111bb02ac9962ddf1de2bec4df8928f8f2c1df51: build(deps): bump github.com/testcontainers/testcontainers-go/modules/postgres (#1690) (@dependabot[bot]) * 13c5ca960af941d44d1445e1d427e41c07234adc: build(deps): bump github.com/testcontainers/testcontainers-go/modules/redis (#1580) (@dependabot[bot]) * feaaed88a95e42e4b034d75ec85721a6c9ff7384: build(deps): bump github.com/testcontainers/testcontainers-go/modules/redis (#1627) (@dependabot[bot]) * 0baf23c1660655ba1b7f497ce866e90a14e13631: build(deps): bump github.com/testcontainers/testcontainers-go/modules/redis (#1689) (@dependabot[bot]) * 7f9399be1e27bc6dfef1f928937f316d1710ab54: build(deps): bump golang.org/x/crypto from 0.30.0 to 0.31.0 (#1662) (@dependabot[bot]) * 1157f9258ed28a7a9611ce87a65290125ef47ab8: build(deps): bump golang.org/x/net from 0.26.0 to 0.27.0 (#1539) (@dependabot[bot]) * 0dff6f1adfb79c7dc150a70bf505cb0a6bb8c2fe: build(deps): bump golang.org/x/net from 0.28.0 to 0.30.0 (#1621) (@dependabot[bot]) * 72b397cd4536df9b3b43dd5c9d6445a7abaab9eb: build(deps): bump golang.org/x/net from 0.30.0 to 0.32.0 (#1655) (@dependabot[bot]) * 11a910a23255ae55a9f782db87b45a7a878ac5f0: build(deps): bump golang.org/x/net from 0.32.0 to 0.33.0 (#1669) (@dependabot[bot]) * 23fd5bb7ba4ac570bdfb12d43eff8388514435c7: build(deps): bump golang.org/x/net from 0.33.0 to 0.34.0 (#1680) (@dependabot[bot]) * 5799825a8dd4239515c655ce85ac44213cd89ea2: build(deps): bump golang.org/x/tools from 0.21.0 to 0.22.0 (#1511) (@dependabot[bot]) * 3bf94c10c2682d7eae7c2f060463f9ff2058129a: build(deps): bump golang.org/x/tools from 0.22.0 to 0.23.0 (#1542) (@dependabot[bot]) * 486974e4f9845c240545932174d2bfbee0a7952c: build(deps): bump golang.org/x/tools from 0.23.0 to 0.24.0 (#1567) (@dependabot[bot]) * bf5f136b48334eed5fc1f975c9de4aa0afd472b2: build(deps): bump gorm.io/driver/mysql from 1.5.6 to 1.5.7 (#1520) (@dependabot[bot]) * 1d0421f48d9426b84b5774fefccddb5a4aacd716: build(deps): bump gorm.io/driver/postgres from 1.5.7 to 1.5.9 (#1522) (@dependabot[bot]) * 00e0ee01b7c3d38773c49a48cbad96520e2afa4f: build(deps): bump gorm.io/driver/postgres from 1.5.9 to 1.5.11 (#1651) (@dependabot[bot]) * db610d3e3373b27c7d9e9bd6eb1c114a13388885: build(deps): bump gorm.io/driver/sqlite from 1.5.5 to 1.5.6 (#1518) (@dependabot[bot]) * 1fcf65b12816550d7d661da194c53e5469f57050: build(deps): bump gorm.io/driver/sqlite from 1.5.6 to 1.5.7 (#1661) (@dependabot[bot]) * 05588028f49c51dee5692180c020e1f22f8d20a9: build(deps): bump gorm.io/gorm from 1.25.10 to 1.25.11 (#1548) (@dependabot[bot]) * 4497b8f3ba3e1ad6e4414be79c8e98855f48f4d0: build(deps): bump gorm.io/gorm from 1.25.11 to 1.25.12 (#1601) (@dependabot[bot]) * 582e55f0e2010c7db8f8907c2d496e7e37f3adf8: build(deps): bump mvdan.cc/gofumpt from 0.5.0 to 0.7.0 (#1576) (@dependabot[bot]) * de7ebbf3baa679097f572b3aded1de2022b6febe: build(deps): upgrade oapi-codegen (@0xERR0R) * dbba2fabae59125d1d89462734497677e2720ab3: chore(build): update golangci-lint (@0xERR0R) * 7001474ea5a03700dfd3bcc1ecb86f005766664a: chore(deps): update docker and testcontainers libs (#1552) (@0xERR0R)

v0.24
? · 2024-05-25

**Features:** - support client name lookup when querying via the API (@ThinkChaos) - Support defining records by dns zone format (#1360) (@BenMcH) - add `queryLog.ignore.sudn` option to ignore SUDN responses (@ThinkChaos) - add a unique ID (`req_id`) to all logs related to a request (@ThinkChaos) - do not hardcode the job name in the grafana dashboard.(#1326) (@shizunge) - log the rule which is the cause of blocking (#1460) (@zc-devs) - support CNAME records in customDNS mappings (#1352) (@BenMcH) **Misc:** - Updated dependencies and documentation - update list config and code to use "allow/deny" language (@ThinkChaos) - code refactoring and build optimization (thanks @kwitsch) **Bugfix:** - use proxy env vars via Go default HTTP Transport values (@ThinkChaos) - don't print querylog target password when using a database (@ThinkChaos) - use RCode=ServFail instead of HTTP 500 for internal errors (@ThinkChaos) - Parse time from file names in the local system timezone (@BenMcH) - add `Resolver.String` so logs don't use Go's default format (@ThinkChaos) - api regression breaking `blocky blocking disable` (#1373) (@BenMcH) - don't use upstream `ServFail` responses besides forwarding them (@ThinkChaos) ## Changelog * 3ab04562fe1e887799bfcc85a116e12e79643694: --- (#1490) (@dependabot[bot]) * 7eef4bf6e2d585ee267df6424ce90cfd7e8ea12a: Build Cache Optimization (#1402) (@kwitsch) * 30cda6c367cadc468f4d6e2bbd3f7dfab8f2b363: Feature: binary build workflow (#1445) (@kwitsch) * 999a16847f7e253a5dd7277be3bcdb08be7abb7b: Fix docs: upstream spelling (#1333) (@DerRockWolf) * 2d3ad830875cb44de3a128e10f6b50c8645010dd: Refactoring/e2e tests (#1316) (@kwitsch) * debac9eaa8b11878ab7621ef42d1f64ce86bad1f: Refactoring/linter (#1447) (@kwitsch) * 8bb5b177afad50b87e980aff24cc9ce3e0d3f8ef: build(deps): bump codecov/codecov-action from 3 to 4 (#1363) (@dependabot[bot]) * b302582e40f493f480e1deb960090b929a3b7994: build(deps): bump github.com/DATA-DOG/go-sqlmock from 1.5.1 to 1.5.2 (#1327) (@dependabot[bot]) * c8b1dd67a6b1f95d3cc6aa8c91a80d2dbe3b2c9c: build(deps): bump github.com/alicebob/miniredis/v2 from 2.31.0 to 2.31.1 (#1324) (@dependabot[bot]) * ca7497897e46b41503f24dbf23f05ec5d2a20a1e: build(deps): bump github.com/alicebob/miniredis/v2 from 2.31.1 to 2.32.1 (#1400) (@dependabot[bot]) * cbbe8d46f05ecf5b54664e18ac55410c2eca1d6b: build(deps): bump github.com/avast/retry-go/v4 from 4.5.1 to 4.6.0 (#1456) (@dependabot[bot]) * ac2bfd90aea8fb4547137bfab108eebeb71eac31: build(deps): bump github.com/docker/docker (#1350) (@dependabot[bot]) * 297304563216821420816fd4132e740b7f42c6be: build(deps): bump github.com/docker/docker (#1362) (@dependabot[bot]) * e26ebfc406ece6f0a8230a512d95fdb6e24e93ae: build(deps): bump github.com/docker/docker (#1372) (@dependabot[bot]) * c3c229125dd3fef4139f66b578c27199898acf50: build(deps): bump github.com/docker/docker (#1396) (@dependabot[bot]) * 80e7b14aad758298793f365020494c6ccfa9bc32: build(deps): bump github.com/docker/docker (#1412) (@dependabot[bot]) * 58c506980371c4794e4b777a298e5a54930b1f6e: build(deps): bump github.com/docker/docker (#1444) (@dependabot[bot]) * 62b1354fbadd4fa4ee70ee4cd8d40560b7f4fc57: build(deps): bump github.com/docker/docker (#1459) (@dependabot[bot]) * e12f6b54daec90ca171d469dd8031a426e9ad15f: build(deps): bump github.com/docker/go-connections from 0.4.0 to 0.5.0 (#1328) (@dependabot[bot]) * efc14d25ca57dbc0652d4e9784ba2e61646caeaa: build(deps): bump github.com/go-chi/chi/v5 from 5.0.11 to 5.0.12 (#1381) (@dependabot[bot]) * 3817d98e7487ba3a3fdbf57ff84a910732df6f78: build(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0 (#1349) (@dependabot[bot]) * 5d0397d571e304880b819f0e7862b886c47400fd: build(deps): bump github.com/miekg/dns from 1.1.57 to 1.1.58 (#1341) (@dependabot[bot]) * 4ebe1ef21a988ad2b2cb8b9dff02b71bf80aa5ce: build(deps): bump github.com/miekg/dns from 1.1.58 to 1.1.59 (#1452) (@dependabot[bot]) * 1d1206f1ea04437011b76c4670c36c8d68b4f804: build(deps): bump github.com/oapi-codegen/runtime from 1.1.0 to 1.1.1 (#1325) (@dependabot[bot]) * 49c808f71d141482aef94e08dab86cee3dc444fb: build(deps): bump github.com/onsi/ginkgo/v2 from 2.13.2 to 2.14.0 (#1334) (@dependabot[bot]) * 879087607b6d02fee0a19c0e700c4bcc85a25e23: build(deps): bump github.com/onsi/ginkgo/v2 from 2.14.0 to 2.15.0 (#1339) (@dependabot[bot]) * d32f3b83d2eb85a4c94cb499b4e7440c3847312d: build(deps): bump github.com/onsi/ginkgo/v2 from 2.15.0 to 2.16.0 (#1388) (@dependabot[bot]) * 24f1187f3d0e5f0774d09190cde79e61a78ddbe4: build(deps): bump github.com/onsi/ginkgo/v2 from 2.16.0 to 2.17.0 (#1407) (@dependabot[bot]) * 28f979fdf780e6bd3781c74eb96cb3af66d4fda1: build(deps): bump github.com/onsi/ginkgo/v2 from 2.17.0 to 2.17.1 (#1415) (@dependabot[bot]) * bbdb80a8adba0fab1544df5427fe9a486e9eb614: build(deps): bump github.com/onsi/ginkgo/v2 from 2.17.1 to 2.17.2 (#1465) (@dependabot[bot]) * 2476d385292f8b200362a19e2664ae9e2e749f0b: build(deps): bump github.com/onsi/ginkgo/v2 from 2.17.2 to 2.17.3 (#1475) (@dependabot[bot]) * aaee562460078f6c37eb0fa7fdca9c5ac0b9784c: build(deps): bump github.com/onsi/gomega from 1.30.0 to 1.31.0 (#1340) (@dependabot[bot]) * cf5c09a3d0485aa6de8f4052265003e8c5642caa: build(deps): bump github.com/onsi/gomega from 1.31.0 to 1.31.1 (#1345) (@dependabot[bot]) * 12e5ffa6c03b8333c971ffc27976a834ae159225: build(deps): bump github.com/onsi/gomega from 1.31.1 to 1.32.0 (#1406) (@dependabot[bot]) * 7f20d17d2ec0be843f28ee372dfc6b30cf699112: build(deps): bump github.com/onsi/gomega from 1.32.0 to 1.33.0 (#1455) (@dependabot[bot]) * d51d39929f340c4d54814646d784bfd13723638e: build(deps): bump github.com/onsi/gomega from 1.33.0 to 1.33.1 (#1467) (@dependabot[bot]) * 5cde62f354e17a60af23763ab748b5b7fbecaa26: build(deps): bump github.com/prometheus/client_golang (#1322) (@dependabot[bot]) * f93d3f834f221d51bdd2afdbee54cf717f26a0f7: build(deps): bump github.com/prometheus/client_golang (#1384) (@dependabot[bot]) * ddbf7a3965a46a2f493f63ad987753a4183e3668: build(deps): bump github.com/stretchr/testify from 1.8.4 to 1.9.0 (#1386) (@dependabot[bot]) * 85ae0e70e5cf03fbfd199f60249164d35a2d193d: build(deps): bump github.com/testcontainers/testcontainers-go (#1377) (@dependabot[bot]) * 6bcc1d06065c47268c2bb44b7d3c39330d3985ec: build(deps): bump github.com/testcontainers/testcontainers-go (#1392) (@dependabot[bot]) * 7ce7f9ad5047945f5ad5b650cf8e82b76b5ebcb6: build(deps): bump github.com/testcontainers/testcontainers-go/modules/mariadb (#1380) (@dependabot[bot]) * 615fd81bbaaa2e3a46993ac9fbd8c19ed68050e8: build(deps): bump github.com/testcontainers/testcontainers-go/modules/mariadb (#1393) (@dependabot[bot]) * 5040ed8216ab0ad687d8189788ff39854d18766f: build(deps): bump github.com/testcontainers/testcontainers-go/modules/mariadb (#1438) (@dependabot[bot]) * 07b864e7e7315865e319569ba9dfbaad6d6a3f42: build(deps): bump github.com/testcontainers/testcontainers-go/modules/postgres (#1379) (@dependabot[bot]) * fc490ec61c6cc49fe9f3883fc9523b66bcaf76f3: build(deps): bump github.com/testcontainers/testcontainers-go/modules/postgres (#1394) (@dependabot[bot]) * 1d71bc525a2ae907334b99dd120e0080a3854964: build(deps): bump github.com/testcontainers/testcontainers-go/modules/postgres (#1439) (@dependabot[bot]) * ed2072071f150504916399869daec0b6897d0ae5: build(deps): bump github.com/testcontainers/testcontainers-go/modules/redis (#1378) (@dependabot[bot]) * 160e159113460015c9e4d9fba79ece74c2ef8df4: build(deps): bump github.com/testcontainers/testcontainers-go/modules/redis (#1395) (@dependabot[bot]) * 166ecbeb4014b96b4b5864281bd690eb1a8a357e: build(deps): bump github.com/testcontainers/testcontainers-go/modules/redis (#1437) (@dependabot[bot]) * 75a7914ec0a740907c7e9df0514ec607cba3d471: build(deps): bump golang.org/x/net from 0.19.0 to 0.20.0 (#1330) (@dependabot[bot]) * db016bbdaa4c00d987b3bde97121bcb5224974f9: build(deps): bump golang.org/x/net from 0.20.0 to 0.21.0 (#1374) (@dependabot[bot]) * 82578d2ee5e0abdd1fb2e96bb1f55d66b5f0e5a4: build(deps): bump golang.org/x/net from 0.21.0 to 0.22.0 (#1389) (@dependabot[bot]) * 3482e93d4a88b92e5c1df05002b8561188df77f7: build(deps): bump golang.org/x/net from 0.24.0 to 0.25.0 (#1472) (@dependabot[bot]) * e686a1d39cc100732bbb90c6a796d377abe7dcb6: build(deps): bump golang.org/x/tools from 0.16.1 to 0.17.0 (#1335) (@dependabot[bot]) * e98e3432c573c35ee9a9b853f3190770cf146ea2: build(deps): bump golang.org/x/tools from 0.17.0 to 0.18.0 (#1375) (@dependabot[bot]) * 4d8595f8ecce06f0696a17e677d483751b69ec64: build(deps): bump golang.org/x/tools from 0.18.0 to 0.19.0 (#1387) (@dependabot[bot]) * f61c93b185a0f1e8dc637d707c96c71eeed46478: build(deps): bump golang.org/x/tools from 0.19.0 to 0.20.0 (#1431) (@dependabot[bot]) * 63468a71681e325ee4b98e2abff16bf573289437: build(deps): bump golang.org/x/tools from 0.20.0 to 0.21.0 (#1473) (@dependabot[bot]) * 09ce2a148a07855150cc742e0251a4f8f457e677: build(deps): bump google.golang.org/protobuf from 1.32.0 to 1.33.0 (#1399) (@dependabot[bot]) * b7abcc303b5f3b1722e4c1164e7460fa89798519: build(deps): bump gorm.io/driver/mysql from 1.5.2 to 1.5.4 (#1371) (@dependabot[bot]) * f00dbb421a1a55491131c91111271e9649a53e99: build(deps): bump gorm.io/driver/mysql from 1.5.4 to 1.5.5 (#1404) (@dependabot[bot]) * 2d49a9f45529d8ae5e5adf6bb010ae83207d7202: build(deps): bump gorm.io/driver/mysql from 1.5.5 to 1.5.6 (#1413) (@dependabot[bot]) * 29cd78071f92d1db12b5e1458a30067160087dd8: build(deps): bump gorm.io/driver/postgres from 1.5.4 to 1.5.6 (#1370) (@dependabot[bot]) * e5cb34ebc71c95894327065e56309a897d36a75b: build(deps): bump gorm.io/driver/postgres from 1.5.6 to 1.5.7 (#1397) (@dependabot[bot]) * 10e293fdb1895f5d7927f8b972d85ed98891538a: build(deps): bump gorm.io/driver/sqlite from 1.5.4 to 1.5.5 (#1367) (@dependabot[bot]) * 3eaee7a84ee29f691d89514878770efbf1d97681: build(deps): bump gorm.io/gorm from 1.25.5 to 1.25.6 (#1358) (@dependabot[bot]) * 7de0dfe111520c43c4bc23da6674384a0027f93e: build(deps): bump gorm.io/gorm from 1.25.6 to 1.25.7 (#1369) (@dependabot[bot]) * 9d50941e2f0d76b653a16d5818167e68db3c8d32: build(deps): bump gorm.io/gorm from 1.25.7 to 1.25.8 (#1405) (@dependabot[bot]) * 351548379575c04ec791cde773bd2b1ee689325a: build(deps): bump gorm.io/gorm from 1.25.8 to 1.25.9 (#1418) (@dependabot[bot]) * d8efa7949671cca62690d95d2645fabf633c872d: build(deps): bump gorm.io/gorm from 1.25.9 to 1.25.10 (#1464) (@dependabot[bot]) * 716ad9498f7798bd432bd93455b9a2a310b25c4b: chore(build): update testcontainers dependency (#1376) (@0xERR0R) * 7abbaefb07e8e561781377ee99db9a943d33bb9d: chore(docs): update material emoji config to non deprecated options (@ThinkChaos) * 1a035c35592fd974e260b4914c9da1097fc99d9c: ci(docs): use `push: paths:` to limit job runs (@ThinkChaos) * c56f0f91ca6af16e3415aa5c9213df78f40b214c: ci(fork-sync): add hint that it can be disabled (@ThinkChaos) * 75c2a6f9f6bce89887002ed826008e1c71651a6c: ci(makefile): use `push: paths:` to limit job runs (@ThinkChaos) * b5682980f71cd3581d3147191978922c9ce32431: ci: allow concurrent "Makefile" workflows (@ThinkChaos) * 90b9677198f50b250c2c90c079ada960a3000072: ci: fix docs workflow not running for branches (@ThinkChaos) * 5242fb68ad5dfc186e4110517db817d6435434d6: docs(installation): move "frontend" and add "lists updater" to projects (@ThinkChaos) * 2ecdfd8d7881fba254d874426c9b821fa0c06f7d: docs(installation): remove Kubernetes and cleanup list (@ThinkChaos) * f5bd69cf125b295f36e63f1bf642d240581ac513: docs(installation): style and minor content tweaks (@ThinkChaos) * e9a1e8974d4cbc43d16bbda5ca71db764aca4655: feat(api): support client name lookup when querying via the API (@ThinkChaos) * 9f633f18d03246ebc50a26f268453ee94d60ed25: feat: Support defining records by dns zone format (#1360) (@BenMcH) * 9d65b9395dc94e5243a9c792382c4d97acddf42a: feat: add `queryLog.ignore.sudn` option to ignore SUDN responses (@ThinkChaos) * 0a47eaad09bedd448eda32be396d1caf8630ea46: feat: add a unique ID (`req_id`) to all logs related to a request (@ThinkChaos) * 95bd01360b149f05dd7fbc5f566eb7c5b9f08afb: feat: do not hardcode the job name in the grafana dashboard.(#1326) (@shizunge) * e99c98b4c2eb7a61de1d910eb8f23e7bf7b758b2: feat: log the rule which is the cause of blocking (#1460) (@zc-devs) * b8b4dc323a82893f9cb26390a8e953d8cc214c58: feat: support CNAME records in customDNS mappings (#1352) (@BenMcH) * bcd1381e18d16b443cca9776bfcde927c1639358: feat: update list config and code to use "allow/deny" language (@ThinkChaos) * d2cb593d328d9f7e7af7121efe8f5eabb76cc333: fix(grafana): move panel around. keep related panels in the same row. (#1344) (@shizunge) * 2c6b704433c63406b148383804b8c39120f6ab2d: fix(log): don't print querylog target password when using a database (@ThinkChaos) * 4919ffac0d3ae0691e8771d9ec8aca6741694c60: fix(server): use RCode=ServFail instead of HTTP 500 for internal errors (@ThinkChaos) * 178dbb740e0cf93fae5eb7f6b16f11d50ed5cd80: fix: Parse time from file names in the local system timezone (@BenMcH) * dd76cf5bb0f4ed53e98bad11d9e6911c15612002: fix: add `Resolver.String` so logs don't use Go's default format (@ThinkChaos) * fe84ab8ca2fabc8987fcb09fa77219859643d25c: fix: api regression breaking `blocky blocking disable` (#1373) (@BenMcH) * ad1ef0bcfb768821254887ac577ec9781904f1d5: fix: don't use upstream `ServFail` responses besides forwarding them (@ThinkChaos) * 1edf8cc35507be3fbea3d7646fe0701464f2dd5d: fix: obfuscate secrets using a constant length string (@ThinkChaos) * d5b6ee93b5b4406ac614b5a66c64ccb74b4735be: fix: use proxy env vars via Go default HTTP Transport values (@ThinkChaos) * b335887992d36d491db6619e22bf7296312f8401: refactor(log): store log in context so it's automatically propagated (@ThinkChaos) * d83b7432d456310758929ab13ca520ed2df447a5: refactor(log): use `logrus.Level` directly and document `trace` level (@ThinkChaos) * f0ad412d8d73e34782efeb91d0185fd967c16acb: refactor(server): add `resolve` for common query code (@ThinkChaos) * 3fcf379df75bc6bad5f7751e4a8dbed2bf286eb7: refactor(util): make `LogOnError` get the log from a `Context` (@ThinkChaos) * 73e5d6ab88f270aac2a34d10c4fb4e8fde7bfeab: refactor: remove `model.Request.Log` in favor of use `Context` (@ThinkChaos) * c3a319f1995a3b6a8944e06a49938d8bae9c8e29: refactoring - e2e network (#1401) (@kwitsch) * 79fc06f6c2433fb4a24278de917f906e32501f98: test(config): make sure `docs/config.yml` doesn't use deprecated options (@ThinkChaos) * dbd1390589996b3d54977c2f4064e49e82c85199: tests(resolver): fix data race introduced by querylog ignore (@ThinkChaos)

v0.23
? · 2024-01-06

**Features:** - add support for wildcard lists using a custom Trie (#1233) (Thanks @ThinkChaos) - querylog: add flushInterval parameter - race UDP and TCP when connecting upstream (Thanks @ThinkChaos) - API-first approach for REST interface (#1129) - add API endpoint to flush the DNS Cache (#1178) - add `upstreams.init.strategy` (Thanks @ThinkChaos) - add timeout to bootstrap (#1158) - add upstream strategy `random` (#1221) (Thanks @DerRockWolf) - reduce DNS response cache memory consumption (#1196) - EDNS: Client Subnet (#1007) (Thanks @kwitsch) **Misc** - Updated dependencies and documentation **Bugfix** - make `FatalOnError` override `log.Silence` (Thanks @ThinkChaos) - ANSI color codes being printed on Windows (#1225) (Thanks @kwitsch) - conditional resolver panics on response without question (#1148) - don't cache DNS responses with CD flag - don't cache EDNS pseudo records (#1150) - don't convert regex from punycode to ASCII (#1126) (#1131) - log.privacy option no longer hides domain names being resolved (#1255) - return error code on server starup failure (#1165) - truncated responses should not be cached (#1149) - use different TTL of multiple records in answer - rewrite: support the case where upstream doesn't echo the question (Thanks @ThinkChaos) ## Changelog * 9a77dcdccc6ef5051776d76d4ad4e9707a8acfab: BlockingConfig -> Blocking (@kwitsch) * 11543356b6b303ffa18613992cbf48aefc269f8f: Bugfix in ECS forward (#1290) (@kwitsch) * fb8c4192abf153281d40d4996cc88d43e176e7ab: Bugfix/GitHub workflows (#1234) (@kwitsch) * dc66eff8e9409e9e661db1bdc69fc91ddcf2fcf3: Bugfix/readme (#1232) (@kwitsch) * e30e852c860effcac17e5e39554d600287ce0bc3: ClientLookupConfig -> ClientLookup (@kwitsch) * 00d43412710cafa52430f730c7c437c23210684d: ConditionalUpstreamConfig -> ConditionalUpstream (@kwitsch) * 26d5f6215ff238c86e39f3a7362bd90eb447e7de: CustomDNSConfig -> CustomDNS (@kwitsch) * 6fca40ca7f6ed86c23f1f5af0b6ed40d43db0d37: Dockerfile streamline (#1185) (@kwitsch) * d37d18348f7823b7cd272080a5dc516a5cea08ce: EDNS: Client Subnet (#1007) (@kwitsch) * acfc2915474fadbb0893f43173ef58b9f89b87c5: Feature/devcontainer (#1179) (@kwitsch) * 76155849443aa443ed263888833546ee8ae137a3: Feature/ginkgolinter (#1235) (@kwitsch) * 1a200c77e3b45994a64a87370cc2c563ae257cb4: Fix/opencontainer labels (#1192) (@kwitsch) * fda2dbe9df62bcbcc9a07c3754de915a51b844b7: Refactoring Redis (#1271) (@kwitsch) * 976d6198f1cb0beec28885fb305fe57e43d6a9a9: Refactoring server.go (#1277) (@kwitsch) * 03131c443cb935f51428e223318491d1b8abdb56: Refactoring/config struct names (#1315) (@kwitsch) * 3378316982faedfa43790b907f2bcbcb6a86f80f: Refactoring: FileDownloader (#1281) (@kwitsch) * 6c000090b16fb698d56e0775cfa4f3c67e450862: Unit test refactoring & devcontainer enhancement(#1245) (@kwitsch) * 72352a968a87402336e0cd8b648806920a1188a0: UpstreamsConfig -> Upstreams (@kwitsch) * d8d7fa52d6551b0c13e199ede4d8056a559c801e: build(deps): bump actions/checkout from 3 to 4 (#1127) (@dependabot[bot]) * c703f8f973b835c0eb4cf8a611375a20c9614766: build(deps): bump actions/download-artifact from 3 to 4 (#1305) (@dependabot[bot]) * 3e8b7af189083c2fc64e5c36d881d13a197dd6aa: build(deps): bump actions/setup-go from 4 to 5 (#1294) (@dependabot[bot]) * 79d3afa57a880440691455043afb70e2c9d5608c: build(deps): bump actions/setup-python from 4 to 5 (#1295) (@dependabot[bot]) * 5490fc63639bc150e8989310a44bcdc2f50f979b: build(deps): bump actions/stale from 8 to 9 (#1296) (@dependabot[bot]) * 343d38cd3b7858b2647b2b80c6f41b204ba62ad3: build(deps): bump actions/upload-artifact from 3 to 4 (#1306) (@dependabot[bot]) * c72a0e18f19a147a04d04471fccd7f2d2d3db167: build(deps): bump codecov/codecov-action from 3 to 4 (#1147) (@dependabot[bot]) * e31d20c13214a4b2314b503c9ef83f9b666b3d90: build(deps): bump crazy-max/ghaction-docker-meta from 4 to 5 (#1142) (@dependabot[bot]) * cb5f72f830222b084bd6d27e4a582bb9853e9675: build(deps): bump docker/build-push-action from 4 to 5 (#1140) (@dependabot[bot]) * c212ab30d362e4f37d389319fc3896de27644c32: build(deps): bump docker/login-action from 2 to 3 (#1139) (@dependabot[bot]) * e187aaa7fbd3ae2a7873844a14f24510921e8ebe: build(deps): bump docker/setup-buildx-action from 2 to 3 (#1143) (@dependabot[bot]) * 4006b16263f30a31f24b22656db7c9d7db56376a: build(deps): bump docker/setup-qemu-action from 2 to 3 (#1141) (@dependabot[bot]) * 825f1ddb37c096a252ac4e1b1a5b5c0bc34fe036: build(deps): bump github.com/DATA-DOG/go-sqlmock from 1.5.0 to 1.5.1 (#1297) (@dependabot[bot]) * 4c65865c6c64461aede2446d9e6fdafcfc0d149a: build(deps): bump github.com/abice/go-enum from 0.5.10 to 0.6.0 (#1309) (@dependabot[bot]) * 710efa357cf879199b6cb31823cc527825034f87: build(deps): bump github.com/abice/go-enum from 0.5.7 to 0.5.8 (@dependabot[bot]) * 7f7161f4c1128a1219ee7625ab0747965219f1cd: build(deps): bump github.com/abice/go-enum from 0.5.8 to 0.5.10 (@dependabot[bot]) * 9f4929117720fa8a725fd2d84f54760beec83a3f: build(deps): bump github.com/alicebob/miniredis/v2 from 2.30.5 to 2.31.0 (#1201) (@dependabot[bot]) * 5fefca57323bb568e0d71b67f784904211e48892: build(deps): bump github.com/avast/retry-go/v4 from 4.5.0 to 4.5.1 (#1249) (@dependabot[bot]) * 4e901094ecd51e5d77dcfc87f9252255760fe347: build(deps): bump github.com/containerd/containerd from 1.7.7 to 1.7.11 (#1310) (@dependabot[bot]) * e4e46d7c306692832386778572f8d92200900600: build(deps): bump github.com/deepmap/oapi-codegen from 1.14.0 to 1.15.0 (@dependabot[bot]) * 18be1e99e276dda60d326ed25f30255f297e7785: build(deps): bump github.com/deepmap/oapi-codegen from 1.15.0 to 1.16.2 (#1209) (@dependabot[bot]) * 68eeebeed4bdf2c8b1911368d607f595cd0bdc8b: build(deps): bump github.com/docker/docker (#1216) (@dependabot[bot]) * f9fa81d18dfbb23273020650126e393de0087b95: build(deps): bump github.com/docker/docker (@dependabot[bot]) * c6304e9d7fa10796bcc5b23f1902e2ca2577f7ad: build(deps): bump github.com/go-chi/chi/v5 from 5.0.10 to 5.0.11 (#1314) (@dependabot[bot]) * fd8ee7cf40b732429eb011c1175393712bcc5e86: build(deps): bump github.com/google/uuid from 1.3.1 to 1.4.0 (#1218) (@dependabot[bot]) * abe9e5c46133455eefea620d04c545b91f3f2ca9: build(deps): bump github.com/google/uuid from 1.4.0 to 1.5.0 (#1300) (@dependabot[bot]) * 9f532ce41ff138edfd0bcfa909ecaa66aa87ae37: build(deps): bump github.com/miekg/dns from 1.1.55 to 1.1.56 (@dependabot[bot]) * f1a6fb0014f52fa52f040a94d4ebd0c8c92a467b: build(deps): bump github.com/miekg/dns from 1.1.56 to 1.1.57 (#1253) (@dependabot[bot]) * 7edb856e679788472a37af24034b6856749f5ede: build(deps): bump github.com/oapi-codegen/runtime from 1.0.0 to 1.1.0 (#1250) (@dependabot[bot]) * f512e11cbf0e1d4d2afb11d76183fc70ecb05c52: build(deps): bump github.com/onsi/ginkgo/v2 from 2.12.0 to 2.12.1 (@dependabot[bot]) * 02569b06d9d81cfd7f2c6422344b0607bd749c68: build(deps): bump github.com/onsi/ginkgo/v2 from 2.12.1 to 2.13.0 (#1195) (@dependabot[bot]) * 6448be6667466daaf07e4fdf6bfd25faee51b8d3: build(deps): bump github.com/onsi/ginkgo/v2 from 2.13.0 to 2.13.1 (#1237) (@dependabot[bot]) * 77ef228efe96964c582037a4186bc393b7dd6760: build(deps): bump github.com/onsi/ginkgo/v2 from 2.13.1 to 2.13.2 (#1280) (@dependabot[bot]) * d76740ea51a79bb7417c868475268f254dc200ec: build(deps): bump github.com/onsi/gomega from 1.27.10 to 1.28.0 (@dependabot[bot]) * 589e998e5c62b49db7fae07e059ff49d4892314c: build(deps): bump github.com/onsi/gomega from 1.28.0 to 1.28.1 (#1207) (@dependabot[bot]) * 5ba1cc27e54d0c2d09247d6390d34b33bee87728: build(deps): bump github.com/onsi/gomega from 1.28.1 to 1.29.0 (#1213) (@dependabot[bot]) * ad27adcdeb9178170e998e5927bea5e66e808cdd: build(deps): bump github.com/onsi/gomega from 1.29.0 to 1.30.0 (#1228) (@dependabot[bot]) * d923c8c36a40bef4a86c97e8241c4ce51d56dbd2: build(deps): bump github.com/prometheus/client_golang (@dependabot[bot]) * 23ce44d457eb54b4553027a3a75fdf104c63f35b: build(deps): bump github.com/spf13/cobra from 1.7.0 to 1.8.0 (#1223) (@dependabot[bot]) * 51bb54b5959619955b84c5d49484a41caf294501: build(deps): bump github.com/swaggo/swag from 1.16.1 to 1.16.2 (#1123) (@dependabot[bot]) * 3dc0ca18852a4c9d29b5a6ca9c900ad983986019: build(deps): bump github.com/testcontainers/testcontainers-go (@dependabot[bot]) * e63ad3880cb27d38e0e70c3e758d31fb71a1ab8c: build(deps): bump github.com/testcontainers/testcontainers-go (@dependabot[bot]) * 7f38a3b617670c153f3d108d58b8519a1212207f: build(deps): bump github.com/testcontainers/testcontainers-go/modules/mariadb (#1181) (@dependabot[bot]) * 4c62b2ddcfc4ce0031c78551e8fac23ed3026ca1: build(deps): bump github.com/testcontainers/testcontainers-go/modules/mariadb (#1219) (@dependabot[bot]) * 1292a200095c3b14b3297e7df3113fd396a083cc: build(deps): bump github.com/testcontainers/testcontainers-go/modules/mariadb (@dependabot[bot]) * ed3a3dee0fa66ffcf47b58b76bdad60770826128: build(deps): bump github.com/testcontainers/testcontainers-go/modules/postgres (#1182) (@dependabot[bot]) * 1aec7d633e6d8d5048bc37c4e2a677eaa5283c11: build(deps): bump github.com/testcontainers/testcontainers-go/modules/postgres (#1214) (@dependabot[bot]) * b87c54530056366f9d996c3ed702b57058a4f0cd: build(deps): bump github.com/testcontainers/testcontainers-go/modules/postgres (@dependabot[bot]) * 10b678b0fdfe49168f5e5a1bcf2c25334c0c2f56: build(deps): bump github.com/testcontainers/testcontainers-go/modules/redis (#1183) (@dependabot[bot]) * b2775069b342173179a36b14b39dfdd3c34e16f3: build(deps): bump github.com/testcontainers/testcontainers-go/modules/redis (#1215) (@dependabot[bot]) * 69f6ae4eadcdb615ba69d10187de9df6f442168e: build(deps): bump github.com/testcontainers/testcontainers-go/modules/redis (@dependabot[bot]) * c814667b1410411d8233240a201d4889555506a3: build(deps): bump github/codeql-action from 2 to 3 (#1303) (@dependabot[bot]) * 4217e933e0203c5edb40d56e05ca8dd9f81aae1b: build(deps): bump golang.org/x/crypto from 0.16.0 to 0.17.0 (#1308) (@dependabot[bot]) * ccabb5ad872b91858b4449a11dc702a994354a5d: build(deps): bump golang.org/x/net from 0.15.0 to 0.16.0 (#1186) (@dependabot[bot]) * 8dec31813038be1915ec8523fe8076d9ddebdaa5: build(deps): bump golang.org/x/net from 0.16.0 to 0.17.0 (#1197) (@dependabot[bot]) * 5e6f6c4e6a9514335ed2b5ce24ffee72cd222168: build(deps): bump golang.org/x/net from 0.17.0 to 0.18.0 (#1230) (@dependabot[bot]) * 09552f9318427c1a5f2ba2793a5aa9c60af207e3: build(deps): bump golang.org/x/net from 0.18.0 to 0.19.0 (#1278) (@dependabot[bot]) * c09eb9e306e91c8556aef352989ad578d1c3fc78: build(deps): bump golang.org/x/tools from 0.12.0 to 0.13.0 (@dependabot[bot]) * 0e1bd0cf1757928b20319a507c4f11b2c0c936b7: build(deps): bump golang.org/x/tools from 0.13.0 to 0.14.0 (#1193) (@dependabot[bot]) * 42d6f21ceb57ffeef000ec79b9fe630bcb26e7f0: build(deps): bump golang.org/x/tools from 0.14.0 to 0.15.0 (#1229) (@dependabot[bot]) * b1cd2557994a4c3b7d77ed7df1a42424fd9adfca: build(deps): bump golang.org/x/tools from 0.15.0 to 0.16.0 (#1279) (@dependabot[bot]) * d5a98b1306efb6b5eb4738fa63dad292caeda78e: build(deps): bump golang.org/x/tools from 0.16.0 to 0.16.1 (#1299) (@dependabot[bot]) * c591fb88f0b9bfff749f66e49da2d3a81fc563c5: build(deps): bump google.golang.org/grpc from 1.57.0 to 1.57.1 (#1211) (@dependabot[bot]) * f5ec92f43879c3fd469f4ff973a020879d03b9cb: build(deps): bump goreleaser/goreleaser-action from 4 to 5 (#1136) (@dependabot[bot]) * de13ffc6aecf7dffcf7a56f879bd5df78b30ae48: build(deps): bump gorm.io/driver/mysql from 1.5.0 to 1.5.2 (#1200) (@dependabot[bot]) * 2fcdf695ede825b1107eccebae69ca71f28958af: build(deps): bump gorm.io/driver/postgres from 1.5.2 to 1.5.3 (#1199) (@dependabot[bot]) * 58bfe5acc2217686a1db0b92c53b297b1ac10d98: build(deps): bump gorm.io/driver/postgres from 1.5.3 to 1.5.4 (#1212) (@dependabot[bot]) * 210900b25dac042c7eb0bef6a9ad862d04d8989c: build(deps): bump gorm.io/driver/sqlite from 1.5.3 to 1.5.4 (#1194) (@dependabot[bot]) * 733a54d7377642a313f5bfb8d0098c0e2fdb389a: build(deps): bump gorm.io/gorm from 1.25.4 to 1.25.5 (#1198) (@dependabot[bot]) * 7782818e8d49cc71d1e605608a049b5da75d8815: chore(build): change deprecated "rm-dist" flag to "clean" (#1120) (@0xERR0R) * 45a933565e4d33ed5ab4f8092842acd3ee98e8de: chore(build): revert codecov-action update (@0xERR0R) * 1dcbf9023249f104a915bc533975ebd416aa7276: chore(build): update Golang to 1.21 (#1122) (@0xERR0R) * 7645ed35a358b1d66a2b664bf6776f3181788eae: chore(build): update golangci-lint to 1.54.2 (#1121) (@0xERR0R) * 497bd0d0fd1a2afb58cfd36a3c37c8e5aca9a467: chore(refactor): refactor cache implementation (#1174) (@0xERR0R) * 81529996cea3573051662ccf0fe68ae163a38ebf: chore(test): add retry on network deletion (#1144) (@0xERR0R) * 19865bba5570222388925f7a18133523f1dad3aa: chore(test): change container wait strategy (@0xERR0R) * 720e6550bef13deb5370745648ef34cd873f2c91: chore(test): fix flaky test (@0xERR0R) * 500c18708222eb037829fe9bd30b6e1a2fcdeb25: chore(test): fix race conditions (@0xERR0R) * a9ec322c8d73989e2a7f26f89ede8b339dd6b409: chore(test): set timeout and flake-attempts for e2e tests (@0xERR0R) * bcff170a94ddb57ea2e4b55a460d4d22a640bab2: chore(test): use testcontainers modules (#1164) (@0xERR0R) * aa9ae0bd6308cddd614a09210cf449e0cd2f20d3: chore(text): fix ipv6 representation (@0xERR0R) * 8ece708fe9d34b761c64ad70ad5e58d297b2cdcb: devcontainer & unit test refactoring (#1220) (@kwitsch) * b498bc509427ca6fc25a9bc57f87f7beedda2d50: feat(lists): add support for wildcard lists using a custom Trie (#1233) (@ThinkChaos) * b1d014017b01f738679e0f56792fc5d00b6e72f9: feat(querylog): add flushInterval parameter (@0xERR0R) * df8c373ef123b2d4e00589df31944b8998b2dba7: feat(resolver): race UDP and TCP when connecting upstream (@ThinkChaos) * 72d747c16f6d181d3d5bc27d31d42f40551c9d20: feat: API-first approach for REST interface (#1129) (@0xERR0R) * d77f0ed54f1d43d9a5cbb8a6bfd3ed199090353a: feat: add API endpoint to flush the DNS Cache (#1178) (@0xERR0R) * 7a3c054b4367d81653b70d3f33e7dfb967fb04ed: feat: add `upstreams.init.strategy` (@ThinkChaos) * 6f60bea5c253c5ba3bc9ce9426f5e0b9cfe9ceee: feat: add timeout to bootstrap (#1158) (@0xERR0R) * 94663eeaeb8365e5f1feccd60a6bf6226877e547: feat: add upstream strategy `random` (#1221) (@DerRockWolf) * 73bc60cb2223ba55fdfa49bb060fd375c9229c3a: feat: reduce DNS response cache memory consumption (#1196) (@0xERR0R) * 6dd294b4a7569f57828afffb485290e2865794c9: fix(ci): limit docs job concurrency to one (@ThinkChaos) * 7feaba48c77b9192723dab321e64deb4871ebd60: fix(docs): clarify `blocky_error_total` (#1270) (@ThinkChaos) * 6775410909c91a26adbdcc4316caed33c7b92cf6: fix(docs): fix documentation link in README.md (#1133) (#1134) (@0xERR0R) * a7f2ca208b5706ba1aab3d3f7ad6827932dfb3fe: fix(docs): make custom DNS matching recursively more explicit (@ThinkChaos) * b2fa627a4642d2d3267a8be23c12de946230be84: fix(docs): remove note that slipped in (@ThinkChaos) * 2db0bd9c6b0ab17d84f27a62e962ea6bc75b79ff: fix(docs): update `hostsFile` to use "sources" (@ThinkChaos) * e4ebc16ccc08cb35f37b631aa8be32c5a3eccdf1: fix(parallel_best): set `typeName` to "random" when appropriate (@ThinkChaos) * dece894bd6d62205f2ec69379850e2a526667c8d: fix(rewrite): support the case where upstream doesn't echo the question (@ThinkChaos) * 08a3df6e644bc8e66726688e23daf7e1efcb8b0a: fix(tests): don't make following requests wait on the first (@ThinkChaos) * d52c598546918827774d64203e863f6213f833eb: fix(tests): properly silence log output (#1259) (@ThinkChaos) * 4e89b441858e5ce458d0a7338fa9b8dc9bf34e86: fix(util): make `FatalOnError` override `log.Silence` (@ThinkChaos) * d87e6b4157cdc723893d3984b78f9a91e59d2c08: fix: ANSI color codes being printed on Windows (#1225) (@kwitsch) * 47eb8be77f15a7cbff2b2f1892f0cc70fc04c4a7: fix: conditional resolver panics on response without question (#1148) (@0xERR0R) * 431b9be3e523b74de63fccfd2eb4aba1690f76e8: fix: don't cache DNS responses with CD flag (@0xERR0R) * 9f15228c097723676e9ed3897f257fbcb66f502a: fix: don't cache EDNS pseudo records (#1150) (@0xERR0R) * 245bb613df9b16499444153bb23c9a393a86ee27: fix: don't convert regex from punycode to ASCII (#1126) (#1131) (@0xERR0R) * 4a5a3956553b5b2da8d6e30ab56f1e7fe67d5b94: fix: log.privacy option no longer hides domain names being resolved (#1255) (@0xERR0R) * 65ff6847ad83c02376771cd1e70d88b9018ef192: fix: return error code on server starup failure (#1165) (@0xERR0R) * d5be5884d9d3bba349a8b0bbc582239a5fb23d8a: fix: truncated responses should not be cached (#1149) (@0xERR0R) * f98859325e0d40b188fcca97f46c5bc3fa3fd7b5: fix: use different TTL of multiple records in answer (@0xERR0R) * 15bd383460654c1e641deff26e3d89d7d0dd2754: ginkgolinter: enable all checks and fix findings (#1274) (@nunnatsa) * f0a96f9cd1611745bf520ffc493d9095f1aa7d4c: opencontainer labels enhancement (#1191) (@kwitsch) * 29a5681b3c79f19d609b3b49a1ceae0afaa4c256: refactor(bootstap): prepare for resolver package split (@ThinkChaos) * 0f69630563389176951dfc7223b1be6400ad07a5: refactor(bootstrap): replace `Dialer.Timeout` with a `context` deadline (@ThinkChaos) * 270dc178dc2f279ea4481117c3ae8a0f4ada5ef9: refactor(config): add `TLSVersion` type (@ThinkChaos) * ef29cdc45eff15dc97ea471f12e40d6f664d5344: refactor(config): ensure `upstreams.timeout` is always valid (@ThinkChaos) * 9760735f3a4b186c8520b38844775402016699f4: refactor(config): move `dohUserAgent` to `upstreams.userAgent` (@ThinkChaos) * e4be0c0c869be70208907dc6b36dff43a08c46f1: refactor(config): remove `GetConfig` and its last uses (@ThinkChaos) * a6654dcd5770a32d933fa6d419fea13aea90ebac: refactor(config): rename `StartStrategyType` to `InitStrategy` (@ThinkChaos) * 659076dd7be4000c9b58aef8ae23e3ef94942ea7: refactor(resolvers): make `Bootstrap` implement `Resolver` (@ThinkChaos) * 891d0fba743484c533dcb2b57295b6870476a718: refactor(tests): move `DeferCleanup` into helper functions (@ThinkChaos) * 8c7b89cbb36df05c0aee362ea03541862fdda299: refactor(tests): remove `TmpFile.Error` to centralize error checks (@ThinkChaos) * adb970af100d23ed7bd27bc777ea1facc7b91bfd: refactor(tests): use `MockUDPUpstreamServer.WithDelay` where possible (@ThinkChaos) * 8ad83d0568e013664404c72ea6e5c7428d34fda3: refactor(tests): use a `const timeout` to simplify race avoidance (@ThinkChaos) * 02cf4903f388e0b0488651902511703cee5e567b: refactor(util): use `LogPrivacy` global instead of `GetConfig` (@ThinkChaos) * b386e22ebeac9f0ca564f0a3eddc0aa829cd0c59: refactor: embed `Upstreams` in `UpstreamGroup` to make values accessible (@ThinkChaos) * eae99ec5505ad1633db6aff7467fd40a10cfa929: refactor: make use of contexts in more places (@ThinkChaos) * 33ea93301588bce2c0eaa726fbb88ec9d252b5ed: refactor: pass context for goroutine shutdown (#1187) (@0xERR0R) * 2c71f91aca5b796bb869620f5ce134c19d56a6a9: refactor: remove deprecated and no-op `SingleInflight` (@ThinkChaos) * 603d374405e2466b61690bcb215d89da005bde22: refactor: remove no longer needed TLS handshake timeout (@ThinkChaos) * 7d93ffb80c6eec7d2265e71d00cbac45c59c553c: refactor: remove the `config` global (@ThinkChaos) * 3f14e71eeb42982a78f55304a417c38e10057e59: remove go version in devcontainer file (#1184) (@kwitsch) * ac54110886ec464a90f8a51420d572389ae04722: squash: remove Nix flake (@ThinkChaos) * c5cc1120a9a2ce5043ca5650c9e3acce615ef1e7: squash: remove `TmpFolder.ReadDir` and partially revert querylog test (@ThinkChaos) * 23359d14715e69731e3d00cb28fc1efa6a8da9a6: style(config): add `config/migration` to `dot-import` allow-list (@ThinkChaos) * fa2d8149ba19537a5518b8024b2e9eed23a07730: style(config): remove unused `nolint` (@ThinkChaos) * 321680250ade98e9023a38fe82c26a47819593ab: style(tests): `Should(Not(x))` -> `ShouldNot(x)` (@ThinkChaos) * fe5c753eedf073421351eaf06d70eddc7fbf16db: style(tests): `ShouldNot(HaveOccurred())` -> `Should(Succeed())` (@ThinkChaos) * a3301749491d26ee30bece3a84237cc46b83fbb2: style(tests): `ShouldNot(Succeed())` -> `Should(HaveOccurred())` (@ThinkChaos) * f371857150992bbc86bf08b15f691db8e755040d: style(tests): use `ContainElements` where possible (@ThinkChaos) * 1a1891c8b63b390a58e890f734f095202df030cf: symbol name refactoring (#1263) (@kwitsch)