3701 Commits

Author SHA1 Message Date
Giovanni Rivera
a84a7cee7e
📚 Doc: Fix code snippet indentation in /docs/api/middleware/keyauth.md
Removes an an extra level of indentation in line 51 of
`keyauth.md` [here](https://github.com/gofiber/fiber/blob/v2/docs/api/middleware/keyauth.md?plain=1#L51)
2024-02-18 18:21:23 -08:00
RW
4e0f180fe3
Update routing.md 2024-02-08 08:18:26 +01:00
RW
56d2ec7bd0
Update ctx.md 2024-02-06 09:11:21 +01:00
René Werner
8325ed086c update queryParser config 2024-02-06 08:40:32 +01:00
Jongmin Kim
e524b73524
Fix default value to false in docs of QueryBool (#2811)
fix default value to false in docs of QueryBool
2024-01-28 18:28:47 +01:00
René Werner
7ba3137f2e configure workflows for V2 branch 2024-01-06 17:45:21 +01:00
René Werner
2e66937b4e configure workflows for V2 branch 2024-01-06 17:36:42 +01:00
René Werner
476e1ed9fe fix healthcheck.md v2.52.0 2024-01-05 14:36:18 +01:00
René Werner
89f551becc prepare release v2.52.0
- add more Parser tests
2024-01-05 14:02:59 +01:00
Lucas Lemos
6249bc48bc
feat: add liveness and readiness checks (#2509)
*  feat: add liveness and readiness checkers

* 📝 docs: add docs for liveness and readiness

*  feat: add options method for probe checkers

*  tests: add tests for liveness and readiness

* ♻️ refactor: change default endpoint values

* ♻️ refactor: change default value for liveness endpoint

* 📝 docs: add return status for liveness and readiness probes

* ♻️ refactor: change probechecker to middleware

* 📝 docs: move docs to middleware session

* ♻️ refactor: apply gofumpt formatting

* ♻️ refactor: remove unused parameter

* split config and apply a review

* apply reviews and add testcases

* add benchmark

* cleanup

* rename middleware

* fix linter

* Update docs and config values

* Revert change to IsReady

* Updates based on code review

* Update docs to match other middlewares

---------

Co-authored-by: Muhammed Efe Cetin <efectn@protonmail.com>
Co-authored-by: Juan Calderon-Perez <835733+gaby@users.noreply.github.com>
Co-authored-by: Juan Calderon-Perez <jgcalderonperez@protonmail.com>
2024-01-03 18:13:58 +01:00
RW
38eb4bd238
♻️ logger/middleware colorize logger error message #2593 (#2773) 2023-12-23 08:31:58 +01:00
gilwo
d6c88764eb
🩹🚨 - fix for redirect with query params (#2748)
* redirect with query params did not work, fix it and add test for it

* redirect middleware - fix test typo
2023-12-22 16:18:04 +01:00
RW
c49faf9a8a
🐛 [Bug]: Adaptator + otelfiber issue #2641 (#2772) 2023-12-22 14:49:58 +01:00
Muhammad Kholid B
1fac52a42a
🩹 Fix: CORS middleware should use the defined AllowedOriginsFunc config when AllowedOrigins is empty (#2771) 2023-12-22 14:48:37 +01:00
RW
43fa236d99
Update hooks.md
fix wrong hooks signature
2023-12-19 13:27:10 +01:00
Bruno
dc2d2ef524
Changing default log output (#2730)
changing default log output

Closes #2729
2023-12-18 15:20:18 +01:00
dependabot[bot]
b0925dc454
build(deps): bump github/codeql-action from 2 to 3 (#2763)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-16 13:30:45 +03:00
dependabot[bot]
c3fed55744
build(deps): bump github.com/google/uuid from 1.4.0 to 1.5.0 (#2762)
Bumps [github.com/google/uuid](https://github.com/google/uuid) from 1.4.0 to 1.5.0.
- [Release notes](https://github.com/google/uuid/releases)
- [Changelog](https://github.com/google/uuid/blob/master/CHANGELOG.md)
- [Commits](https://github.com/google/uuid/compare/v1.4.0...v1.5.0)

---
updated-dependencies:
- dependency-name: github.com/google/uuid
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-13 15:53:13 +03:00
Mehmet Firat KOMURCU
090acbbc5d
📚 Update app.md for indentation (#2761)
Update app.md for indentation
2023-12-13 08:52:16 +01:00
Benjamin Grosse
b1850834a3
fix: don't constrain middlewares' context-keys to strings 🐛 (#2751)
* Revert "Revert "🐛 requestid.Config.ContextKey is interface{} (#2369)" (#2742)"

This reverts commit 28be17f929cfa7d3c27dd292fc3956f2f9882e22.

* fix: request ContextKey default value condition

Should check for `nil` since it is `any`.

* fix: don't constrain middlewares' context-keys to strings

`context` recommends using "unexported type" as context keys to avoid
collisions https://pkg.go.dev/github.com/gofiber/fiber/v2#Ctx.Locals.

The official go blog also recommends this https://go.dev/blog/context.

`fiber.Ctx.Locals(key any, value any)` correctly allows consumers to
use unexported types or e.g. strings.

But some fiber middlewares constrain their context-keys to `string` in
their "default config structs", making it impossible to use unexported
types.

This PR removes the `string` _constraint_ from all middlewares, allowing
to now use unexported types as per the official guidelines. However
the default value is still a string, so it's not a breaking change, and
anyone still using strings as context keys is not affected.
2023-12-12 14:55:29 +01:00
iRedMail
c441bdf2d0
🩹 middleware/logger/: log client IP address by default (#2755)
* middleware/logger: Log client IP address by default.

* Update doc.
2023-12-08 10:36:43 +01:00
dependabot[bot]
8aa88689ae
build(deps): bump actions/setup-go from 4 to 5 (#2754)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 4 to 5.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-07 15:14:33 +01:00
Jason McNeil
e4d7e84335
chore(encryptcookie)!: update default config (#2753)
* chore(encryptcookie)!: update default config

docs(encryptcookie): enhance documentation and examples

BREAKING CHANGE: removed the hardcoded "csrf_" from the Except.

* docs(encryptcookie): reads or modifies cookies

* chore(encryptcookie): csrf config example

* docs(encryptcookie): md table spacing
2023-12-07 08:39:41 +01:00
tokelo-12
a80b288592
Update CONTRIBUTING.md (#2752)
Grammar correction.
2023-12-05 15:21:03 +01:00
RW
9bcc7f3978
Update v3-changes.md 2023-12-03 10:20:29 +01:00
RW
2d3027eaba
Update pull_request_template.md 2023-12-03 10:19:13 +01:00
dependabot[bot]
fa30b4e9d0
build(deps): bump golang.org/x/sys from 0.14.0 to 0.15.0 (#2744)
Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.14.0 to 0.15.0.
- [Commits](https://github.com/golang/sys/compare/v0.14.0...v0.15.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-28 22:42:05 +03:00
nickajacks1
8d5248bee6
🚨 Test: race in session middleware tests (#2740)
A Session must not be accessed after Save() is called, but a unit test
calls Session.ID() after Session.Save(), sometimes causing the test to
fail when -race is enabled. The assertions that ID() was being used in
were redundant with the previous two assertions (checking that the
session name header is empty), so we can just remove the offending code.
2023-11-27 14:38:31 +01:00
RW
28be17f929
Revert "🐛 requestid.Config.ContextKey is interface{} (#2369)" (#2742)
This reverts commit d7b36cde
2023-11-27 14:35:49 +01:00
nickajacks1
6b9630b5f7
🚨 Test: improve benchmarks for getOffer (#2739) 2023-11-23 09:36:22 +01:00
dependabot[bot]
93c5f2830f
build(deps): bump github.com/valyala/fasthttp from 1.50.0 to 1.51.0 (#2721)
Bumps [github.com/valyala/fasthttp](https://github.com/valyala/fasthttp) from 1.50.0 to 1.51.0.
- [Release notes](https://github.com/valyala/fasthttp/releases)
- [Commits](https://github.com/valyala/fasthttp/compare/v1.50.0...v1.51.0)

---
updated-dependencies:
- dependency-name: github.com/valyala/fasthttp
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-22 20:12:15 +01:00
nickajacks1
eeced206ed
test: Fix failing CSRF tests (#2720)
 test: fix failing csrf test

A test validating that expired tokens fail was hitting a race condition
with garbage collection. Sometimes, an assertion that expects memory
storage GC to have triggered happens too quickly, causing the assertion
to fail. Give the GC a little bit more time to process before asserting.
2023-11-22 19:21:30 +01:00
nickajacks1
12e0e487ce
🚨 Test: fix race condition in parallel tests (#2734)
Tests that call SetParserDecoder were causing a race condition with
other tests that read from decoderPoolMap. Fix by making the offending
tests not run in parallel.
2023-11-22 18:38:49 +01:00
Jmper
2c5d883a69
[Bug]: utils.IsIPv4 and net.ParseIP have inconsistent results #2735 (#2736) 2023-11-21 10:48:37 +01:00
Jason McNeil
2374cad3cd
📄 docs: improve csrf docs (#2726)
* docs: improve csrf docs

- fix issues with `X-Csrf-Token` capitalization inconsistency.
- reduce redundancy and repetition.
- improve grammar.

* docs: update middleware description

* docs: within vs in

* docs: deleting tokens

* docs: MUST

* docs: add colon

* docs: all modern browsers

* docs: patterns

* docs: improve phrasing of pattern options
2023-11-16 12:34:31 +01:00
René Werner
3ab3d151c7 refresh docs for
🔥 Add support for application/problem+json #2704
2023-11-15 09:23:08 +01:00
RW
239e36e0f6
Update sync_docs.sh 2023-11-15 08:50:26 +01:00
RW
dceb0b4c45
Update app.go
prepare release v2.51.0
v2.51.0
2023-11-14 08:18:46 +01:00
Reid Hurlburt
9f082af045
🔥 Add support for application/problem+json (#2704)
🔥 Add support for custom JSON content headers
2023-11-13 15:18:05 +01:00
nickajacks1
1e55045a30
test(limiter): fix intermittent failures (#2716)
The limiter middleware unit tests are failing due to a race between the
storage garbage collector and the unit test itself. The sliding window
limiter tracks requests using memory storage. In several of the unit
tests, this storage expiry ends up being 4 seconds. The test waits for 4
seconds, then sends a request, expecting it to succeed. However, the
unit test occasionally wakes up before the storage GC kicks in. As an
effect of the very coarse timer (using seconds as units), the middleware
correctly rejects the request, causing the test to fail.

Update the sleep to 4.5 seconds. This will not slow down the execution
of the test suite, as these tests run in parallel with a separate 9
second long test.

I'm not 100% sure this solves the issue, and ideally we'd be able to
run tests without time.Sleep.
2023-11-10 11:33:10 +01:00
nickajacks1
5d888cee3d
️ perf(ctx.Range): reduce allocations (#2705)
* perf(ctx.Range): reduce allocations

strings.Split was causing extra allocations where using
strings.IndexByte can suffice. ALso switch from strconv.Atoi because it
causes an allocation when parsing a non-integer, which is common for
Ranges.

* chore: fix lint
2023-11-10 11:32:25 +01:00
database64128
b99712f13e
middleware/pprof: improve performance (#2709)
*  middleware/pprof: improve performance

Concatenate the custom and fixed prefixes beforehand, so the trimmed path can be switched on against constant strings.

goos: linux
goarch: amd64
pkg: github.com/gofiber/fiber/v2/middleware/pprof
cpu: 13th Gen Intel(R) Core(TM) i9-13900K
BenchmarkPprof/Slow-32         	 4912642	       246.3 ns/op	     480 B/op	      10 allocs/op
BenchmarkPprof/Fast-32         	411908472	         2.913 ns/op	       0 B/op	       0 allocs/op
PASS

* 🌂 middleware/pprof: disable nonamedreturns linter on cutPrefix
2023-11-09 08:05:54 +01:00
René Werner
862ea7dbf6 add v3 pr templates info 2023-11-08 13:23:46 +01:00
René Werner
efdd0093b3 add v3 issue/pr templates 2023-11-07 19:09:23 +01:00
René Werner
781f71a0d1 add v3 issue/pr templates 2023-11-07 19:04:00 +01:00
nickajacks1
cbcb1aec0a
feat: add support for parameters in content negotiation (#2678)
*  feat: add support for parameters in content negotiation

Attempts to approach the level of support offered by express,
but behavior may differ in unusual corner cases.
Some key behaviors from Express that are implemented:
 - If an offer does not have every parameter listed in the given Accept,
   it is rejected.
 - Parameters do not affect specificity.
 - In a given specificity, more parameters gives greater precedence
 - Parameters are unordered
 - Matching is case-insensitive
 - Surrounding quotes for parameter values are stripped
 - If an Accept type specifies a parameter more than once, the last
   value provided is taken.
 - Parameters after q are not processed.

https://www.rfc-editor.org/rfc/rfc9110#name-parameters

* doc: properly attribute reader.go for validHeaderFieldByte

* fix: remove underscores from fuzz test name

* test(forEachParameter): improve coverage

* doc: add comment clarifying RFC 9110 non-compliance for corner case
2023-11-07 08:25:23 +01:00
dependabot[bot]
426dd3aff9
build(deps): bump golang.org/x/sys from 0.13.0 to 0.14.0 (#2707)
Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.13.0 to 0.14.0.
- [Commits](https://github.com/golang/sys/compare/v0.13.0...v0.14.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-06 16:27:04 +03:00
Moritz
fe395b9850
📚 Doc: Add additional information as to why GetReqHeaders returns a map where the values are slices of strings (#2698)
* Update ctx.md

Added additional information to why GetReqHeaders returns a map where the values are slices of strings (instead of a single string as one might expect)

* Update ctx.md

added the same explanation to GetRespHeaders too
2023-11-01 21:42:57 +01:00
HardikBandhiya
0104e59e9f
fix: changed "Twitter" to "X (Twitter)" in README.md Contribute Section (#2696)
* Update README.md

in README.md contribute section the name of twitter was old i changed it to 𝕏

* Update README.md

updated domain as per suggested

* Update CONTRIBUTING.md

* Update README_az.md

* Update README_ckb.md

in this i changed domain only.

* Update README_de.md

* Update README_eg.md

in this i changed domain

* Update README_es.md

* Update README_fa.md

* Update README_fr.md

* Update README_he.md

* Update README_id.md

* Update README_it.md

* Update README_ja.md

* Update README_ko.md

* Update README_nl.md

* Update README_pl.md

* Update README_pt.md

* Update README_ru.md

* Update README_sa.md

* Update README_tr.md

* Update README_uk.md

* Update README_zh-CN.md

* Update README_zh-TW.md
2023-11-01 09:24:14 +01:00
RW
4099ef87bb
Update routing.md
fix invalid regex constraint
2023-11-01 08:22:10 +01:00