Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
895903f
add customer table
netomi Jan 9, 2026
7ece19a
update bucket4 spring boot starter dep
netomi Jan 9, 2026
2ba9c69
add customer table
netomi Jan 9, 2026
6ba3768
add filter impls
netomi Jan 13, 2026
2889440
add copyright
netomi Jan 13, 2026
b6e4e13
use jediscluster, add configuration, rename to Tieredxxx
netomi Jan 13, 2026
7e129a5
rename UsageService to CustomerUsageService, simplify config
netomi Jan 13, 2026
fdfd109
update mounts for docker services, add .gitignore
netomi Jan 14, 2026
e91eba3
add tier entity, update sql, add repositories, service
netomi Jan 15, 2026
f4714cc
add usage stats entity
netomi Jan 15, 2026
60cc298
add IdentittyService, CollectUsageStatsJobs
netomi Jan 19, 2026
4d9c604
refactor jobs, schedule them based on tiered rate limiting enabled
netomi Jan 19, 2026
5c7dfef
add enforcement state
netomi Jan 19, 2026
5a3eaf7
add bucket handling
netomi Jan 21, 2026
7efb096
feat: adding tier admin view (#1556)
gnugomez Jan 21, 2026
5a7abed
fix missing type, formatting
netomi Jan 21, 2026
ce5ab1b
implement tier related api requests
netomi Jan 22, 2026
7c4024e
tier ui improvements
netomi Jan 22, 2026
237655f
feat: adding customers admin view (#1558)
gnugomez Jan 23, 2026
8edd8fd
add endpoints for customer management
netomi Jan 23, 2026
3569742
add endpoint to get all customers of a tier
netomi Jan 23, 2026
6b405e7
feat: improving admin forms inputs (#1560)
gnugomez Jan 23, 2026
cb8e296
add login button when accessing the admin dashboard without being log…
netomi Jan 23, 2026
708f934
improve error handling, reformatting
netomi Jan 23, 2026
e53434c
remove dependency on bucket4j starter, self-contained config
netomi Jan 26, 2026
7362e32
feat: using datagrid for tier & customer views (#1564)
gnugomez Jan 26, 2026
f915524
remove unused imports
netomi Jan 26, 2026
caaf866
fix import
netomi Jan 26, 2026
8d6111c
support caching buckets
netomi Jan 26, 2026
b638442
feat: adding usage stats view (#1566)
gnugomez Jan 27, 2026
55b0404
be more specific about dependencies and add missing types
netomi Jan 27, 2026
df7def3
fix trailing whitespace
netomi Jan 27, 2026
038f975
Merge branch 'master' into rate-limiting
netomi Jan 28, 2026
6e6d538
fix unit tests
netomi Jan 28, 2026
960d9eb
allow subscription for redis
netomi Jan 28, 2026
514f1df
support subscription to redis update channel
netomi Jan 28, 2026
07c06cf
add tiertype, improve error handling
netomi Feb 2, 2026
f6bb3aa
update customer handling, improve error messages, only allow non-free…
netomi Feb 2, 2026
01bf126
refactor ratelimit stuff, support config updates
netomi Feb 2, 2026
96a367d
implement usage stats data
netomi Feb 2, 2026
f9f04b7
use qualifier for fileCacheManager
netomi Feb 2, 2026
fd14b8e
fix copyright header
netomi Feb 2, 2026
8a380e0
update admin dashboard welcome
netomi Feb 2, 2026
4706089
fix error in debug mode
netomi Feb 4, 2026
29d46e5
improve usage stats chart
netomi Feb 4, 2026
e9d1d59
chart updates
netomi Feb 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
data
14 changes: 7 additions & 7 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ services:
command: redis-server /etc/redis.conf
volumes:
- ./redis.conf:/etc/redis.conf
- /redis/node-1:/data
- ./data/redis/node-1:/data
environment:
- REDISCLI_AUTH=openvsx
healthcheck:
Expand All @@ -76,7 +76,7 @@ services:
command: redis-server /etc/redis.conf
volumes:
- ./redis.conf:/etc/redis.conf
- /redis/node-2:/data
- ./data/redis/node-2:/data
environment:
- REDISCLI_AUTH=openvsx
healthcheck:
Expand All @@ -97,7 +97,7 @@ services:
command: redis-server /etc/redis.conf
volumes:
- ./redis.conf:/etc/redis.conf
- /redis/node-3:/data
- ./data/redis/node-3:/data
environment:
- REDISCLI_AUTH=openvsx
healthcheck:
Expand All @@ -118,7 +118,7 @@ services:
command: redis-server /etc/redis.conf
volumes:
- ./redis.conf:/etc/redis.conf
- /redis/node-4:/data
- ./data/redis/node-4:/data
environment:
- REDISCLI_AUTH=openvsx
healthcheck:
Expand All @@ -139,7 +139,7 @@ services:
command: redis-server /etc/redis.conf
volumes:
- ./redis.conf:/etc/redis.conf
- /redis/node-5:/data
- ./data/redis/node-5:/data
environment:
- REDISCLI_AUTH=openvsx
healthcheck:
Expand All @@ -160,7 +160,7 @@ services:
command: redis-server /etc/redis.conf
volumes:
- ./redis.conf:/etc/redis.conf
- /redis/node-6:/data
- ./data/redis/node-6:/data
environment:
- REDISCLI_AUTH=openvsx
healthcheck:
Expand Down Expand Up @@ -218,7 +218,7 @@ services:
profiles:
- openvsx
- backend

webui:
image: node:18
working_dir: /app
Expand Down
2 changes: 1 addition & 1 deletion redis.conf
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ appendonly yes
maxmemory 64mb
maxmemory-policy allkeys-lru
user default off
user openvsx on >openvsx ~* +@all
user openvsx on >openvsx ~* +@all allchannels
masteruser openvsx
masterauth openvsx
6 changes: 4 additions & 2 deletions server/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ def versions = [
jackson: '2.15.2',
woodstox: '6.4.0',
jobrunr: '7.5.0',
bucket4j: '0.12.7',
bucket4j: '0.12.10',
bucket4j_redis: '8.10.1',
tika: '3.2.2',
bouncycastle: '1.80',
Expand All @@ -43,7 +43,8 @@ def versions = [
jaxb_impl: '2.3.8',
gatling: '3.14.9',
loki4j: '1.4.2',
jedis: '6.2.0'
jedis: '6.2.0',
ipaddress: '5.5.1'
]
ext['junit-jupiter.version'] = versions.junit
java {
Expand Down Expand Up @@ -117,6 +118,7 @@ dependencies {
implementation "redis.clients:jedis:${versions.jedis}"
implementation "com.giffing.bucket4j.spring.boot.starter:bucket4j-spring-boot-starter:${versions.bucket4j}"
implementation "com.bucket4j:bucket4j-redis:${versions.bucket4j_redis}"
implementation "com.github.seancfoley:ipaddress:${versions.ipaddress}"
implementation "org.jobrunr:jobrunr-spring-boot-3-starter:${versions.jobrunr}"
implementation "org.flywaydb:flyway-core:${versions.flyway}"
implementation "com.google.cloud:google-cloud-storage:${versions.gcloud}"
Expand Down
6 changes: 6 additions & 0 deletions server/src/dev/resources/db/migration/V1_58_1__RateLimit.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
-- add basic tier and assign customer for loopback IP to it

INSERT INTO tier (id, name, description, tier_type, capacity, duration, refill_strategy) VALUES (1, 'free', '', 'FREE', 50, 60, 'GREEDY');
INSERT INTO tier (id, name, description, tier_type, capacity, duration, refill_strategy) VALUES (2, 'safety', '', 'SAFETY', 200, 60, 'GREEDY');
INSERT INTO tier (id, name, description, tier_type, capacity, duration, refill_strategy) VALUES (3, 'basic', '', 'NON_FREE', 100, 60, 'GREEDY');
INSERT INTO customer (id, name, tier_id, state, cidr_blocks) VALUES (1, 'loopback', 1, 'EVALUATION', '127.0.0.1/32');
Loading