feat(admin): add optional expiry to admin IP bans (#3163)

This commit is contained in:
Hampus authored and GitHub committed 2026-10-03 14:41:00 +02:00
1 parent 1664050ef7
commit e9167d96ec
88 files changed
+462 -139

No files matched your search

@@ -26,8 +26,8 @@ The error code determines which supplementary members a failure has, and most co
- `ip_address` is the normalised client address.
- `appeal_email` is the address an appeal is sent to.
- `appeals_supported` is `true` only for the permanent ban.
- `ban_kind` is `permanent` or `temporary_24h`.
- `appeals_supported` is `true` for both kinds of ban.
- `ban_kind` is `permanent` or `temporary_24h`. `temporary_24h` covers every ban that records an expiry, whatever its length.
- `expires_at` is an ISO 8601 timestamp when the ban records an expiry, and `null` otherwise, including on every permanent ban.
## Validation failure codes
@@ -462,7 +462,7 @@ Your IP address {ipAddress} has been permanently blocked from the Fluxer API by
### `GLOBAL_IP_TEMPORARILY_BANNED`
Your IP address {ipAddress} has been temporarily blocked from the Fluxer API for 24 hours because of abusive or unusual access patterns
Your IP address {ipAddress} has been temporarily blocked from the Fluxer API
### `GONE`
@@ -197,7 +197,7 @@ The operation deletes the ban together with the address and email blocks it had.
It does not restore the removed membership, the guild profile fields and roles that membership had, or the deleted messages. The unbanned account can rejoin through an ordinary invite.
An instance-wide IP ban is a separate mechanism this operation does not touch. Every request from an address it covers is still refused with 403 `GLOBAL_IP_BANNED` for a permanent ban and 403 `GLOBAL_IP_TEMPORARILY_BANNED` for a 24 hour one.
An instance-wide IP ban is a separate mechanism this operation does not touch. Every request from an address it covers is still refused with 403 `GLOBAL_IP_BANNED` for a permanent ban and 403 `GLOBAL_IP_TEMPORARILY_BANNED` for a temporary one.
### Rate limit