+
+
+
+
+
+
+
+
- {/* Rate Limit */}
+ {/* Device API Rate Limit override */}
-
+
setEditingTenant({ ...editingTenant, rateLimitRequestsPerMinute: parseInt(e.target.value) || 100 })}
+ max="10000"
+ placeholder="Blank = inherit global default"
+ value={editingTenant.customRateLimitRequestsPerMinute ?? ""}
+ onChange={(e) => {
+ const v = e.target.value.trim();
+ setEditingTenant({ ...editingTenant, customRateLimitRequestsPerMinute: v === "" ? null : (parseInt(v) || null) });
+ }}
className="w-full px-3 py-2 border border-gray-300 rounded-lg text-sm text-gray-900 placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-colors"
/>
+
Per-device (agent/cert) limit. Leave blank to inherit the global default.
+
+
+ {/* User API Rate Limit override */}
+
+
+
{
+ const v = e.target.value.trim();
+ setEditingTenant({ ...editingTenant, customUserRateLimitRequestsPerMinute: v === "" ? null : (parseInt(v) || null) });
+ }}
+ className="w-full px-3 py-2 border border-gray-300 rounded-lg text-sm text-gray-900 placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-colors"
+ />
+
Per-user (portal) limit for standard users. Leave blank to inherit the global default. Does not apply to Global Admins.