{
  "type": "featherpanel.pages.route",
  "route": "/admin/rate-limits",
  "area": "admin",
  "file_slug": "admin-rate-limits",
  "source": "src/app/(app)/admin/rate-limits/page.tsx",
  "dynamic": false,
  "params": [],
  "title": "Rate Limits",
  "description": "Configure rate limits for API routes to prevent abuse.",
  "title_key": "admin.rate_limits.title",
  "description_key": "admin.rate_limits.description",
  "component": "RateLimitsPage",
  "audience": "Panel administrators (requires admin permissions)",
  "nav": {
    "id": "admin-rate-limits",
    "title": "Rate Limits",
    "title_key": "navigation.items.rateLimits",
    "permission": "admin.settings.view",
    "group": "system",
    "category": "admin",
    "matched_url": "/admin/rate-limits",
    "inherited": false
  },
  "widget_slugs": [
    "admin-rate-limits"
  ],
  "sections": [
    "Global Rate Limiting",
    "Route Configuration"
  ],
  "features": [
    "Refresh",
    "Save All",
    "Rate limiting is enabled globally. Individual routes can still be disabled.",
    "Rate limiting is disabled globally. No rate limits will be applied.",
    "Global Status",
    "Toggle standard rate limiting across the entire application.",
    "Manage rate limits for individual API routes.",
    "Route",
    "Status",
    "/s",
    "/m",
    "/h"
  ],
  "ui_labels": [
    {
      "key": "admin.rate_limits.messages.reset_confirm",
      "value": "Reset configuration for {route}?"
    },
    {
      "key": "admin.rate_limits.actions.refresh",
      "value": "Refresh"
    },
    {
      "key": "admin.rate_limits.actions.save_all",
      "value": "Save All"
    },
    {
      "key": "admin.rate_limits.global.title",
      "value": "Global Rate Limiting"
    },
    {
      "key": "admin.rate_limits.global.description_enabled",
      "value": "Rate limiting is enabled globally. Individual routes can still be disabled."
    },
    {
      "key": "admin.rate_limits.global.description_disabled",
      "value": "Rate limiting is disabled globally. No rate limits will be applied."
    },
    {
      "key": "admin.rate_limits.global.status_label",
      "value": "Global Status"
    },
    {
      "key": "admin.rate_limits.global.status_description",
      "value": "Toggle standard rate limiting across the entire application."
    },
    {
      "key": "admin.rate_limits.routes.title",
      "value": "Route Configuration"
    },
    {
      "key": "admin.rate_limits.routes.description",
      "value": "Manage rate limits for individual API routes."
    },
    {
      "key": "admin.rate_limits.routes.table.route",
      "value": "Route"
    },
    {
      "key": "admin.rate_limits.routes.table.status",
      "value": "Status"
    },
    {
      "key": "admin.rate_limits.routes.table.per_second",
      "value": "/s"
    },
    {
      "key": "admin.rate_limits.routes.table.per_minute",
      "value": "/m"
    },
    {
      "key": "admin.rate_limits.routes.table.per_hour",
      "value": "/h"
    },
    {
      "key": "admin.rate_limits.routes.table.per_day",
      "value": "/d"
    },
    {
      "key": "admin.rate_limits.routes.table.namespace",
      "value": "Namespace"
    },
    {
      "key": "admin.rate_limits.routes.table.actions",
      "value": "Actions"
    },
    {
      "key": "admin.rate_limits.routes.table.empty",
      "value": "No rate limits configured."
    }
  ],
  "hooks": [
    "usePluginWidgets"
  ],
  "api_modules": [],
  "api_paths": [
    "/api/admin/rate-limits",
    "/api/admin/rate-limits/bulk",
    "/api/admin/rate-limits/global"
  ],
  "summary": "**Rate Limits** Configure rate limits for API routes to prevent abuse. Requires permission `admin.settings.view`. Key UI: Refresh; Save All; Rate limiting is enabled globally. Individual routes can still be disabled.; Rate limiting is disabled globally. No rate limits will be applied.; Global Status; Toggle standard rate limiting across the entire application..",
  "how_to_guide_users": "1. Open Admin sidebar.\n2. Go to **Rate Limits**.\n3. Direct URL: `/admin/rate-limits`.\n4. User needs permission `admin.settings.view` (or `admin.root`)."
}
