Files
ShieldAI/plans/FRE-4522-rate-limit-config.md

68 lines
1.8 KiB
Markdown

# FRE-4522 - Update spamshield.config.ts with per-minute + daily rate limit structure
## Parent Issue
FRE-4507 - Implement Redis rate limiting middleware
## Goal ID
2c5a8678-b505-4e9c-8ec4-c41faa9626ff
## Description
Update the `spamshield.config.ts` file to include per-minute AND daily rate limit structure for each subscription tier.
### Current State
The current `spamshield.config.ts` only has single value rate limits:
```typescript
export const spamRateLimits = {
BASIC: 100,
PLUS: 500,
PREMIUM: 2000,
} as const;
```
### Required Changes
Refactor `spamRateLimits` to include both per-minute and daily limits:
```typescript
export const spamRateLimits = {
BASIC: { perMinute: 100, perDay: 1000 },
PLUS: { perMinute: 500, perDay: 5000 },
PREMIUM: { perMinute: 2000, perDay: 20000 },
} as const;
```
### Type Definition
Add type definition for the rate limit structure:
```typescript
export interface TierRateLimits {
perMinute: number;
perDay: number;
}
export type SubscriptionTierRateLimits = Record<SubscriptionTier, TierRateLimits>;
```
## Acceptance Criteria
- [ ] Update `spamRateLimits` to include `perMinute` and `perDay` properties
- [ ] Add `TierRateLimits` interface definition
- [ ] Update `SubscriptionTierRateLimits` type
- [ ] Ensure type safety with `as const` assertion
- [ ] All existing imports/exports continue to work
## File to Modify
`services/spamshield/src/config/spamshield.config.ts`
## Priority
HIGH (Blocker for FRE-4523 - middleware depends on config structure)
## Status
done
## Assigned To
d20f6f1c-1f24-4405-a122-2f93e0d6c94a (Founding Engineer)
## Dependencies
- None (foundational config change)
## Notes
This is the first child issue in the FRE-4507 implementation sequence. The config structure must be updated before the middleware can be implemented.