• Edric.Li's avatar
    feat(api-key): 添加 IP 白名单/黑名单限制功能 (#221) · 0a4641c2
    Edric.Li authored
    * feat(api-key): add IP whitelist/blacklist restriction and usage log IP tracking
    
    - Add IP restriction feature for API keys (whitelist/blacklist with CIDR support)
    - Add IP address logging to usage logs (admin-only visibility)
    - Remove billing_type column from usage logs UI (redundant)
    - Use generic "Access denied" error message for security
    
    Backend:
    - New ip package with IP/CIDR validation and matching utilities
    - Database migrations for ip_whitelist, ip_blacklist (api_keys) and ip_address (usage_logs)
    - Middleware IP restriction check after API key validation
    - Input validation for IP/CIDR patterns on create/update
    
    Frontend:
    - API key form with enable toggle for IP restriction
    - Shield icon indicator in table for keys with IP restriction
    - Removed billing_type filter and column from usage views
    
    * fix: update API contract tests for ip_whitelist/ip_blacklist fields
    
    Add ip_whitelist and ip_blacklist fields to expected JSON responses
    in API contract tests to match the new API key schema.
    0a4641c2
gemini_v1beta_handler.go 14.1 KB