Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Redis should work with ban #336

Merged
merged 17 commits into from
Nov 10, 2023
Merged

Redis should work with ban #336

merged 17 commits into from
Nov 10, 2023

Conversation

gurgunday
Copy link
Member

@gurgunday gurgunday commented Nov 1, 2023

Closes #335

Now a custom store user should handle when ban happens themselves - I believe this will actually lead to more flexible configurations and simpler code because that's how max currently works as well

If someone objects to my last point, I can make it non-breaking by adding a simple check and falling back to old behavior if res.ban is undefined, which means CustomStore didn't do anything with the newly added ban parameter

@Uzlopak
Copy link
Contributor

Uzlopak commented Nov 1, 2023

How is the performance?

@gurgunday
Copy link
Member Author

Will check it

@gurgunday
Copy link
Member Author

gurgunday commented Nov 3, 2023

@Uzlopak I reset my Mac and can't set up Redis right now... I don't think it's that bad and besides we can't have a feature not working correctly

The change is no longer breaking

@gurgunday gurgunday requested a review from a team November 3, 2023 17:31
@Uzlopak Uzlopak merged commit 3c47083 into fastify:master Nov 10, 2023
@@ -8,31 +8,36 @@ function LocalStore (cache = 5000, timeWindow, continueExceeding) {
this.continueExceeding = continueExceeding
}

LocalStore.prototype.incr = function (ip, cb, max) {
LocalStore.prototype.incr = function (ip, cb, max, ban) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should add it to the doc about the CustomStore

@gurgunday gurgunday deleted the redis-ban branch November 10, 2023 11:03
gurgunday added a commit that referenced this pull request Dec 13, 2023
* Update README.md to reflect #307 (#342)

* Redis should work with ban (#336)

* Redis should work with ban

* fix ttl

* simplify

* format

* remove warning

* move property

* add test

* fix test

* fix test

* fix test

* still fix the same test

* make it non-breaking

* make it non-breaking

* make it non-breaking

* make it non-breaking

* perf: add ban back

* Bumped v8.1.0

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* Bumped v9.0.0

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* Fix in-memory cache bug when there is only one entry (#345)

* Bumped v9.0.1

---------

Signed-off-by: Matteo Collina <hello@matteocollina.com>
Co-authored-by: Trevor Lund <89029310+tlund101@users.noreply.github.com>
Co-authored-by: Matteo Collina <hello@matteocollina.com>
Co-authored-by: Igor Savin <iselwin@gmail.com>
jsumners added a commit that referenced this pull request Jul 10, 2024
* Updating for v5 (#338)

* ci: add node 21 to test matrix and remove node 14 and 16

* package.json update for v5

* merge main to next (#348)

* Update README.md to reflect #307 (#342)

* Redis should work with ban (#336)

* Redis should work with ban

* fix ttl

* simplify

* format

* remove warning

* move property

* add test

* fix test

* fix test

* fix test

* still fix the same test

* make it non-breaking

* make it non-breaking

* make it non-breaking

* make it non-breaking

* perf: add ban back

* Bumped v8.1.0

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* Bumped v9.0.0

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* Fix in-memory cache bug when there is only one entry (#345)

* Bumped v9.0.1

---------

Signed-off-by: Matteo Collina <hello@matteocollina.com>
Co-authored-by: Trevor Lund <89029310+tlund101@users.noreply.github.com>
Co-authored-by: Matteo Collina <hello@matteocollina.com>
Co-authored-by: Igor Savin <iselwin@gmail.com>

* Revert "merge main to next (#348)"

This reverts commit 5446122.

* revert workflow update as its causing issues (#350)

* revert: handle ban in store (#347)

* remove ban handling from store

* don't use negation

* add undef

* don't pass ban to promis

* fix accidental explicit checks

* fix accidental line change

* inline ban

* Workflow v4 (#354)

* refactor: make RedisStore default key a default parameter (#356)

* refactor redis parameters and throw if no instance was provided

* revert error

* Add function support for timeWindow (#357)

* feat: dynamic time window support

* fix: proper usage of timeWindowString

---------

Co-authored-by: lukas <git@lukaselsner.de>

* update docs (#360)

* fix: remove unnecessary parameter timeWindow (#363)

* refactor: consistent option handling (#365)

* small refactor in option handling

* simplify

* simplify

* perf: pregenerate `timeWindow` string when possible and use `noop` as default function (#364)

* pregenerate timeWindowString if possible

* simplify

* simplify

* noop

* simplify

* simple-example

* rename

* update for v5 (#370)

* update for v5

* update for v5

* update for v5

* update for v5

* update for v5

* update for v5

* update for v5

* update for v5

* update for v5

* update for v5

* update for v5

* update for v5

* update for v5

* update for v5

* update fastify deps

---------

Signed-off-by: Matteo Collina <hello@matteocollina.com>
Co-authored-by: Eliphaz Bouye <53824344+Eliphaz-Bouye@users.noreply.github.com>
Co-authored-by: Gürgün Dayıoğlu <gurgun.dayioglu@icloud.com>
Co-authored-by: Trevor Lund <89029310+tlund101@users.noreply.github.com>
Co-authored-by: Matteo Collina <hello@matteocollina.com>
Co-authored-by: Igor Savin <iselwin@gmail.com>
Co-authored-by: lukas <mindrunner@users.noreply.github.com>
Co-authored-by: lukas <git@lukaselsner.de>
Co-authored-by: Gürgün Dayıoğlu <hey@gurgun.day>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Make ban work with Redis
3 participants