Coverage for src / lexigram / admin / settings / panel / rate_limit_spec.py: 93%

14 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-08-13 22:14 +0800

1"""Rate limit configuration specification.""" 

2 

3from __future__ import annotations 

4 

5from lexigram.admin.config import AdminRateLimitConfig 

6from lexigram.admin.settings.panel.nodes import PydanticConfigSpec 

7from lexigram.admin.settings.panel.registry import ConfigRegistry 

8 

9__all__ = ["RateLimitSpec", "register_spec"] 

10 

11 

12class RateLimitSpec(PydanticConfigSpec): 

13 """Rate limit configuration spec.""" 

14 

15 namespace = "admin.rate_limit" 

16 label = "Rate Limiting" 

17 icon = "hand-raised" 

18 description = "Authentication rate limits by window and action." 

19 model = AdminRateLimitConfig 

20 required_permissions = frozenset({"admin.settings.edit"}) 

21 

22 

23def register_spec(registry: ConfigRegistry) -> None: 

24 """Register this spec with the config registry.""" 

25 registry.register_spec("system", RateLimitSpec)