Skip to content

Commit fceb298

Browse files
committed
[api] move devices registration rate limit to Traefik
1 parent 09eb17e commit fceb298

File tree

2 files changed

+68
-7
lines changed

2 files changed

+68
-7
lines changed

deployments/docker-swarm-terraform/main.tf

Lines changed: 68 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,32 @@ resource "docker_service" "app" {
6868
label = "traefik.docker.network"
6969
value = data.docker_network.proxy.name
7070
}
71+
72+
#region rate-limit_5-per-1m Middleware
73+
labels {
74+
label = "traefik.http.middlewares.rate-limit_5-per-1m.ratelimit.average"
75+
value = "5"
76+
}
77+
78+
labels {
79+
label = "traefik.http.middlewares.rate-limit_5-per-1m.ratelimit.period"
80+
value = "1m"
81+
}
82+
83+
labels {
84+
label = "traefik.http.middlewares.rate-limit_5-per-1m.ratelimit.sourcecriterion.ipstrategy.depth"
85+
value = "1"
86+
}
87+
#endregion
88+
89+
#region Add Prefix Middleware
90+
labels {
91+
label = "traefik.http.middlewares.${var.app-name}-new-addprefix.addprefix.prefix"
92+
value = "/api"
93+
}
94+
#endregion
95+
96+
#region Deprecated
7197
labels {
7298
label = "traefik.http.routers.${var.app-name}.rule"
7399
value = "Host(`${var.app-host}`) && PathPrefix(`/api`)"
@@ -80,27 +106,64 @@ resource "docker_service" "app" {
80106
label = "traefik.http.routers.${var.app-name}.tls.certresolver"
81107
value = "le"
82108
}
109+
#endregion
83110

111+
#region Deprecated Limited
84112
labels {
85-
label = "traefik.http.middlewares.${var.app-name}-new-addprefix.addprefix.prefix"
86-
value = "/api"
113+
label = "traefik.http.routers.${var.app-name}_limited.rule"
114+
value = "Host(`${var.app-host}`) && PathPrefix(`/api/mobile/v1/device`) && Method(`POST`)"
87115
}
88116
labels {
89-
label = "traefik.http.routers.${var.app-name}-new.entrypoints"
117+
label = "traefik.http.routers.${var.app-name}_limited.middlewares"
118+
value = "rate-limit_5-per-1m"
119+
}
120+
labels {
121+
label = "traefik.http.routers.${var.app-name}_limited.entrypoints"
90122
value = "https"
91123
}
92124
labels {
93-
label = "traefik.http.routers.${var.app-name}-new.middlewares"
94-
value = "${var.app-name}-new-addprefix"
125+
label = "traefik.http.routers.${var.app-name}_limited.tls.certresolver"
126+
value = "le"
95127
}
128+
#endregion
129+
130+
#region Primary
96131
labels {
97132
label = "traefik.http.routers.${var.app-name}-new.rule"
98133
value = "Host(`api.sms-gate.app`)"
99134
}
135+
labels {
136+
label = "traefik.http.routers.${var.app-name}-new.entrypoints"
137+
value = "https"
138+
}
139+
labels {
140+
label = "traefik.http.routers.${var.app-name}-new.middlewares"
141+
value = "${var.app-name}-new-addprefix"
142+
}
100143
labels {
101144
label = "traefik.http.routers.${var.app-name}-new.tls.certresolver"
102145
value = "le"
103146
}
147+
#endregion
148+
149+
#region Primary Limited
150+
labels {
151+
label = "traefik.http.routers.${var.app-name}-new_limited.rule"
152+
value = "Host(`api.sms-gate.app`) && PathPrefix(`/mobile/v1/device`) && Method(`POST`)"
153+
}
154+
labels {
155+
label = "traefik.http.routers.${var.app-name}-new_limited.entrypoints"
156+
value = "https"
157+
}
158+
labels {
159+
label = "traefik.http.routers.${var.app-name}-new_limited.middlewares"
160+
value = "rate-limit_5-per-1m,${var.app-name}-new-addprefix"
161+
}
162+
labels {
163+
label = "traefik.http.routers.${var.app-name}-new_limited.tls.certresolver"
164+
value = "le"
165+
}
166+
#endregion
104167

105168
labels {
106169
label = "traefik.http.services.${var.app-name}.loadbalancer.server.port"

internal/sms-gateway/handlers/mobile.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import (
1919
"github.com/go-playground/validator/v10"
2020
"github.com/gofiber/fiber/v2"
2121
"github.com/gofiber/fiber/v2/middleware/keyauth"
22-
"github.com/gofiber/fiber/v2/middleware/limiter"
2322
"github.com/jaevor/go-nanoid"
2423
"go.uber.org/fx"
2524
"go.uber.org/zap"
@@ -232,7 +231,6 @@ func (h *mobileHandler) Register(router fiber.Router) {
232231
router = router.Group("/mobile/v1")
233232

234233
router.Post("/device",
235-
limiter.New(),
236234
userauth.New(h.authSvc),
237235
keyauth.New(keyauth.Config{
238236
Next: func(c *fiber.Ctx) bool {

0 commit comments

Comments
 (0)