Skip to content

Latest commit

 

History

History
481 lines (368 loc) · 22.2 KB

CHANGELOG.md

File metadata and controls

481 lines (368 loc) · 22.2 KB

Release Notes

Most recent version is listed first.

v0.1.12

  • ong/mux: add flexible pattern that allows a handler to serve almost all request URIs: #481

v0.1.11

  • ong/cry: use constant parameters for argon key generation: #477

v0.1.10

  • ong/cry: refactor aead implementation: #476

v0.1.9

  • ong/middleware: logFunc should not be passed a http.ResponseWriter: #474

v0.1.8

  • ong/middleware: Make loadshed percentile configurable: #473

v0.1.7

  • Update go version; #469
  • ong/cry: Replace scrypt with argon2id: #471
  • ong/middleware: Give users control over what and how logging happens in the middlewares: #472

v0.1.6

  • Bump versions of dependencies used

v0.1.5

  • ong/errors: Fix panic when an error is already wrapped: #467

v0.1.4

  • ong/errors: Do not panic when joining stack errors that have used errorf: #464

v0.1.3

  • ong/errors: Join error should be formatted correctly: #462

v0.1.2

  • ong/middleware: Fix a number of CORS issues: #442
  • ong/middleware: Eliminate panics: #459
  • ong/middleware: AntiReplay function should not take a pointer to request: #460
  • ong/middleware: Rename security middleware to csp: #461

v0.1.1

  • ong/middleware: do not show hint: #457

v0.1.0

  • ong/errors: handle stacktraces for more error types: #455

v0.0.99

  • ong/errors: retain stack traces when errors are wrapped with fmt: #452
  • ong/mux: detect route conflicts in more cases: #453

v0.0.98

  • ong/errors: add equivalent functions from standard library: #449

v0.0.97

  • ong/middleware: disable reload protector middleware : #448 That middleware is not working as intended. This PR mitigates until we can implement a proper fix.

v0.0.96

  • ong/acme: verify the requested acme challenge token: #440 This is a bug fix for v0.0.95

v0.0.95

  • ong/acme: verify the requested acme challenge token: #439

v0.0.94

  • ong/sync: simplify API: #435

v0.0.93

  • ong/sync: limit export surface of package: #434

v0.0.92

  • Update docs on id generation: #420
  • Update dependencies: #428
  • ong/sync: concat errors: #429
  • ong/sync: rename WaitGroup to Group: #430
  • ong/sync: propagate panics: #431
  • ong/sync: remove unlimited concurrency from sync: #433

v0.0.91

  • Upgrade to Go v1.22: #408 #409
  • Replace math/rand with math/rand/v2: #411
  • ong/id: Improve id generation: #415 #416
  • ong/log: Improve conformance with slog.Handler interface: #417

v0.0.90

  • ong/middleware: a http subdomain should be redirected to the same subdomain at https: #406
  • Improve documentation: #407

v0.0.89

  • ong/server: Do not create certificate directory unless certificate fetch succeeded: #404

v0.0.88

  • Update dependencies: #401
  • ong/server: Add ability to specify the exact domains to use for TLS as well as wildcards: #402

v0.0.87

  • ong/sync: Fix bug in sync Waitgroup: #399
  • ong/sync: Make it possible to call Waitgroup concurrently: #398

v0.0.86

  • Update dependencies: #397

v0.0.85

  • Do not loadshed based on latency from pprof endpoints: #392

v0.0.84

  • ong/cookies: Fix name of antiReplay mechanism that uses client fingerprint: #390

v0.0.83

  • ong/cookies: Do not use IP address and TLS fingerprint to validate cookies by default: #388
  • ong/sync: Add new package that has a more intuitive WaitGroup: #387

v0.0.82

  • ong/config: Move middleware.ClientIPstrategy to config.ClientIPstrategy: #386

v0.0.81

  • ong/middleware: Add support for CORS allowCredentials: #385

v0.0.80

  • ong/middleware: Validate secretKeys a bit more: #384

v0.0.79

  • ong/middleware: Try and prevent path traversal attacks: #382

v0.0.78

  • ong/middleware: Add 'self' to CSP policy: #379

v0.0.77

  • ong/middleware: Add support for http.NewResponseController: #368
  • ong/middleware: Improve formatting of some types: #370
  • ong/mux: Remove logger from mux: #371
  • ong/mux: Add internal/mux: #372
  • ong/config: Create common config options: #374
  • ong/config: Add config.secureKey: #376
  • ong/server: Serve pprof using the same server as the application: #375

v0.0.76

  • ong/middleware: Configure what percentage of ratelimited or loadshed responses should be logged: #364

v0.0.75

  • ong/middleware: Make more middleware configurable: #362

v0.0.74

  • ong/log: Conform to log/slog: #357 Eliminate duplicate logIDs
  • ong/log: Integrate ong packages with new logger: #358
  • ong/log: Improve log perfomance: #359

v0.0.73

  • Remove /ex/exp: #352

v0.0.72

  • ong/log: Use slog from stdlib: #349
  • ong/xcontext: Remove the package since Go v1.21 has similar functionality: #350
  • Use testing.Testing() where appropriate: #351

v0.0.71

  • Only use test dependencies in test files: #348

v0.0.70

v0.0.69

  • ong/server: Bugfix; add ability to use mutual TLS authentication: #335

v0.0.68

  • ong/server: Add ability to use mutual TLS authentication: #334

v0.0.67

  • ong/middleware: Update security headers: #330
  • ong: Make sure that the secretKey has some minimum security properties: #329

v0.0.66

  • ong/acme: Bugfix, fetch certficate for subdomain beginning with number: #328

v0.0.65

  • ong/id: Do not use crypto/rand: #322
  • ong/middleware: Fix logging of ratelimited/loadshedded requests: #325
  • ong/acme: When an acme challenge request is malformed, fail the request: #326

v0.0.64

  • ong/acme: Limit size of certificate allowed for download: #321

v0.0.63

  • ong/middleware: Log unexpected http HOST header: #315
  • Update dependencies: #318
  • ong/log: Do not duplicate logID: #317
  • ong/log: Log source attribute in one line: #319

v0.0.62

  • ong/acme: Check acme.HostPolicy before making request to ACME servers: #313
  • ong/acme: add context cancellation: #314

v0.0.61

  • ong/server: Log http.Server.ErrorLog at Info by default: #312

v0.0.60

  • ong/acme: Refuse to fetch certificates for IP addresses: #306
  • ong/acme: If fetch certificates fails, log the clientIP and clientFingerPrint: #310
  • ong/acme: Add a fastpath(for certs that are already in memory) while fetching certificates: #311

v0.0.59

  • ong/acme: Fix bug where acme certificates were not cached in memory: #304

v0.0.58

  • ong/acme: Tighten check cert validity script: #303

v0.0.57

  • ong/acme: Add own ACME client implementation: #294
  • Work around bug in checklocks static analyzer: #298
  • Make tests fast by pinging port: #299
  • Synchronize automax tests: #300
  • Improve rate limit tests: #301
  • ong/middleware: Fix superfluous response.WriteHeader call: #302

v0.0.56

  • ong/server: Set appropriate log level for http.Server.ErrorLog: #288
  • ong/acme: Move acme handler to ong/middleware: #290
  • ong/id: Add uuid support: #292

v0.0.55

  • ong/client: Improve timeouts: #286
  • ong/acme: Use one server for ACME and app: #287

v0.0.54

  • ong/middleware: Validate domain in middleware: #283

v0.0.53

  • ong/acme: Add acme server that will handle requests from ACME CA: #281

v0.0.52

  • ong/server: Bugfix; match number of log arguments: #275
  • ong/middleware: Add protection against DNS rebinding attacks: #276

v0.0.51

  • ong/acme: Add a http timeout when calling ACME for certificates: #272
  • ong/acme: Make certificate management from ACME to be agnostic of the CA: #273

v0.0.50

v0.0.49

  • ong/mux: Add mux Resolve function: #268
  • ong/middleware: Use http.Handler as the http middleware instead of http.HandlerFunc: #269
  • ong/client: Add optional http timeout: #270
  • Use Go cache in CI: #271

v0.0.48

  • Change attest import path: #265

v0.0.47

  • ong/server: Leave http.server.DisableGeneralOptionsHandler at its default value: #255
  • ong/middleware: Validate expiry of csrf tokens: #257
  • ong/middleware: Add support for PROXY protocol in clientIP: #258
  • Add nilness vet check: #259
  • ong/server: Add option to restrict size of request bodies: #261
  • ong/server: Gracefully handle application termniation in kubernetes: #263
  • ong/log: Update to latest exp/slog: #262

v0.0.46

  • ong/cookie: Include TLS fingerprint in encrypted cookies: #250
  • ong/log: Update to latest exp/slog: #251

v0.0.45

  • Run all tests in CI: #248

v0.0.44

  • Organise imports: #245
  • Create an internal/octx that houses context keys used by multiple ong packages: #246
  • ong/middleware: Add support for TLS fingerprinting: #244

v0.0.43

  • ong/middleware: Add precision to ratelimiting: #239

v0.0.42

  • ong/middleware: ClientIP, use remoteAddress if IP is local adress: #238

v0.0.41

  • ong/middleware: Better loadshed calculations: #234 : #237

v0.0.40

  • Detect leaks in tests: #232
  • Bugfix; loadshed records latency in milliseconds: #233

v0.0.39

  • Remove pid from logs: #230

v0.0.38

  • Update to latest exp/slog changes: #229

v0.0.37

  • Make gvisor/checklocks analyzer ignore tests: #228

v0.0.36

  • Update to latest exp/slog changes: #226
  • Add gvisor/checklocks analyzer: #202

v0.0.35

  • Run integration tests in CI: #225

v0.0.34

  • Create dev certs only if they do not exists or are expired: #224

v0.0.33

  • Remove log.Handler.StdLogger(), upstream slog now has an analogous function: #219

v0.0.32

  • ong/middleware: Loadshedder should not re-order latencies: #218

v0.0.31

v0.0.30

  • Update to Go v1.20: #209
  • ong/client: Use net.Dialer.ControlContext instead of use net.Dialer.Control: #212
  • Re-enable golangci-lint: #214
  • ong/log: Use the new stdlib structured logger: #208
  • ong/log: Replace custom logger with slog: #215
  • ong/middleware; Add a trace middleware: #216

v0.0.29

  • ong/log: WithCtx should only use the id from context, if that ctx actually contains an Id: #196
  • ong/errors: wrap as deep as possible: #199
  • ong/errors: add errors.Dwrap: #200
  • ong/id: bug fix where ids generated were not always of the requested length; #201
  • ong/cry: Do not use math/rand in encryption: #203
  • Improve examples: #204
  • ong/middleware: Do not duplicate session cookies: #206
  • Fix changelog versions: #207

v0.0.28

  • ong/id: Should generate strings of the exact requested length: #192
  • ong/log: Do not quote special characters: #193

v0.0.27

  • ong/cookie: Add Get cookie function: #189

v0.0.26

  • ong/middleware: Create middleware that adds the "real" client IP address: #187
    Note that this is on a best effort basis.
    Finding the true client IP address is a precarious process 1

v0.0.25

  • ong/client: Use roundTripper for logging: #185
  • ong/middleware: Make most middleware private: #186

v0.0.24

  • ong/sess: Set session cookie only if non-empty: #170
  • ong/middleware: Add ReloadProtector middleware: #171
  • ong/mux: Creating a new route should panic if handler is already wrapped in an ong middleware: #172

v0.0.23

  • ong/client: Add log id http header: #166

v0.0.22

  • ong/middleware: Panic/recoverer middleware should include correct stack trace: #164
  • ong/middleware: Log client address without port: #165

v0.0.21

  • ong/cry: Improve performance of calling Csrf middleware multiple times: #161

v0.0.20

  • ong/mux: Bugfix: When a route conflict is detected, report the correct file & line number: #160

v0.0.19

  • ong/mux: Fix false positive/negative/whatever route conflict: #157

v0.0.18

  • Update documentation

v0.0.17

  • Update documentation

v0.0.16

  • ong/cookie: Add support for http sessions: #154
  • ong/mux: Add ability to specify a custom 404 handler: #155

v0.0.15

  • ong/cookie: Make encrypted cookies more performant: #152

v0.0.14

  • Update documentation: #151

v0.0.13

  • ong/automax: Fix bug in parsing cgroup mem values from files: #148

v0.0.12

  • ong/errors: Prefix errors produced by ong with a constant string: #147
  • ong/cookie: Try and mitigate cookie replay attacks: #146

v0.0.11

  • ong/cookie; Add secure/encrypted cookies: #143

v0.0.10

  • ong/log: Remove ctx from log.Logger struct: #142

v0.0.9

  • ong/cry: Add password hashing capabilities: #137
  • ong/middleware: Simplify loadshedding implementation: #138
  • ong/automax: Make automax to be a stand-alone package: #139
  • ong/mux: Add a router/muxer with a bit more functionality: #140

v0.0.8

  • Improve documentation.

v0.0.7

  • ong/middleware: Implement io.ReaderFrom & http.Pusher: #131
  • ong/client: Replace use of net.Ip with net/netip: #132

v0.0.6

  • Improve documentation.

v0.0.5

  • ong/cry: use key derivation in the enc ecryption/decryption package: #119
  • fix vulnerabilities: #123
  • ong/client: add a http client: #120

v0.0.4

  • ong/cry: add new encryption/decryption package: #118

v0.0.3

  • ong/xcontext: add an xcontext package: #109
  • use latest semgrep-go linter: #111
  • add semgrep linter: #113
  • ong/middleware: add ability to handle csrf tokens in a distributed setting: #112
  • ong/middleware: redirect csrf failures to same url: #117

v0.0.2

  • ong/automax: automatically set GOMAXPROCS in container environments, using internal package: #106

v0.0.1

  • added some middlewares: #22
  • add build/test cache: #24
  • harmonize timeouts: #25
  • add panic middleware: #26
  • cookies: #27
  • csrf middleware: #32
  • cors middleware: #33
  • gzip middleware: #36
  • errors: https://github.com/komuw/ong/commit/2603c06ca1257d75fb170872124b2afd81eb3f3e
  • logger: #39
  • logging middleware: #41
  • quality of life improvements: #45
  • add unique id generator: #50
  • try mitigate breach attack: #51
  • add load shedding: #52
  • fix memory leak in tests: #53
  • add ratelimiter: #55
  • add naive mux: #57
  • handle tls: #58
  • expvar metrics: #64
  • fix some races: #66
  • resuse address/port for pprof and redirect servers: #67
  • rename: #68
  • make some updates to circular buffer: #71
  • use acme for certificates: #69
  • issues/73: bind on 0.0.0.0 or localhost conditionally: #74
  • redirect IP to domain: #75
  • dont require csrf for POST requests that have no cookies and arent http auth: #77
  • remove http: #79
  • make the redirector a proper middleware: #80
  • bugfix, gzip error: #82
  • gzip almost everthing: #83
  • pass logger as an arg to the middlewares: #84
  • disable gzip: #86
  • a more efficient error stack trace: #87
  • update go.akshayshah.org/attest: #93
  • update to Go 1.19: #102
  • remove rlimit code, go1.19 does automatically: #104
  • automatically set GOMEMLIMIT in container environments: #105