- Add `API_KEY_RATE_LIMIT_EXCEEDED` error code. - Refactor `QuotaExceededError` to support resource type localization. - Optimize rate limiting service by implementing the sliding window algorithm. - Add rate limit validation for tenant plans. - Unify quota check decorator to support both synchronous and asynchronous operations. - Enhance quota usage statistics endpoints.
151 lines
6.2 KiB
JSON
151 lines
6.2 KiB
JSON
{
|
|
"common": {
|
|
"internal_error": "Internal server error",
|
|
"network_error": "Network connection error",
|
|
"timeout": "Request timeout",
|
|
"service_unavailable": "Service temporarily unavailable",
|
|
"bad_request": "Bad request parameters",
|
|
"unauthorized": "Unauthorized access",
|
|
"forbidden": "Access forbidden",
|
|
"not_found": "Resource not found",
|
|
"method_not_allowed": "Method not allowed",
|
|
"conflict": "Resource conflict",
|
|
"too_many_requests": "Too many requests, please try again later",
|
|
"validation_failed": "Validation failed",
|
|
"database_error": "Database operation failed",
|
|
"file_operation_error": "File operation failed"
|
|
},
|
|
"auth": {
|
|
"invalid_credentials": "Invalid username or password",
|
|
"token_expired": "Session expired, please login again",
|
|
"token_invalid": "Invalid authentication token",
|
|
"token_missing": "Authentication token missing",
|
|
"unauthorized": "Unauthorized access",
|
|
"forbidden": "Permission denied",
|
|
"account_locked": "Account has been locked",
|
|
"account_disabled": "Account has been disabled",
|
|
"account_not_verified": "Account not verified",
|
|
"password_incorrect": "Incorrect password",
|
|
"password_too_weak": "Password is too weak",
|
|
"password_expired": "Password expired, please change it",
|
|
"email_not_verified": "Email not verified",
|
|
"phone_not_verified": "Phone number not verified",
|
|
"verification_code_invalid": "Invalid verification code",
|
|
"verification_code_expired": "Verification code expired",
|
|
"login_failed": "Login failed",
|
|
"logout_failed": "Logout failed",
|
|
"session_expired": "Session expired",
|
|
"already_logged_in": "Already logged in",
|
|
"not_logged_in": "Not logged in"
|
|
},
|
|
"user": {
|
|
"not_found": "User not found",
|
|
"already_exists": "User already exists",
|
|
"email_already_exists": "Email already in use",
|
|
"phone_already_exists": "Phone number already in use",
|
|
"username_already_exists": "Username already taken",
|
|
"invalid_email": "Invalid email format",
|
|
"invalid_phone": "Invalid phone number format",
|
|
"invalid_username": "Invalid username format",
|
|
"create_failed": "Failed to create user",
|
|
"update_failed": "Failed to update user",
|
|
"delete_failed": "Failed to delete user",
|
|
"cannot_delete_self": "Cannot delete yourself",
|
|
"cannot_update_self_role": "Cannot update your own role",
|
|
"profile_update_failed": "Failed to update profile",
|
|
"avatar_upload_failed": "Failed to upload avatar",
|
|
"password_change_failed": "Failed to change password",
|
|
"old_password_incorrect": "Old password is incorrect"
|
|
},
|
|
"workspace": {
|
|
"not_found": "Workspace not found",
|
|
"already_exists": "Workspace already exists",
|
|
"name_required": "Workspace name is required",
|
|
"name_too_long": "Workspace name is too long",
|
|
"create_failed": "Failed to create workspace",
|
|
"update_failed": "Failed to update workspace",
|
|
"delete_failed": "Failed to delete workspace",
|
|
"permission_denied": "Permission denied to access this workspace",
|
|
"not_member": "Not a workspace member",
|
|
"already_member": "Already a workspace member",
|
|
"member_limit_reached": "Member limit reached",
|
|
"cannot_leave_last_manager": "Cannot leave, you are the last manager",
|
|
"cannot_remove_last_manager": "Cannot remove the last manager",
|
|
"cannot_remove_self": "Cannot remove yourself",
|
|
"invite_not_found": "Invite not found",
|
|
"invite_expired": "Invite has expired",
|
|
"invite_already_accepted": "Invite already accepted",
|
|
"invite_already_revoked": "Invite already revoked",
|
|
"invite_send_failed": "Failed to send invite",
|
|
"archived": "Workspace is archived",
|
|
"suspended": "Workspace is suspended"
|
|
},
|
|
"tenant": {
|
|
"not_found": "Tenant not found",
|
|
"already_exists": "Tenant already exists",
|
|
"create_failed": "Failed to create tenant",
|
|
"update_failed": "Failed to update tenant",
|
|
"delete_failed": "Failed to delete tenant",
|
|
"suspended": "Tenant is suspended",
|
|
"expired": "Tenant has expired",
|
|
"license_invalid": "Invalid license",
|
|
"license_expired": "License has expired",
|
|
"quota_exceeded": "Quota exceeded"
|
|
},
|
|
"file": {
|
|
"not_found": "File not found",
|
|
"upload_failed": "File upload failed",
|
|
"download_failed": "File download failed",
|
|
"delete_failed": "File deletion failed",
|
|
"too_large": "File size exceeds limit",
|
|
"invalid_type": "Unsupported file type",
|
|
"invalid_format": "Invalid file format",
|
|
"corrupted": "File is corrupted",
|
|
"storage_full": "Storage is full",
|
|
"access_denied": "Access denied to this file"
|
|
},
|
|
"api": {
|
|
"rate_limit_exceeded": "API rate limit exceeded",
|
|
"quota_exceeded": "{resource} quota exceeded",
|
|
"invalid_api_key": "Invalid API key",
|
|
"api_key_expired": "API key has expired",
|
|
"api_key_revoked": "API key has been revoked",
|
|
"endpoint_not_found": "API endpoint not found",
|
|
"method_not_allowed": "Method not allowed",
|
|
"invalid_request": "Invalid request",
|
|
"missing_parameter": "Missing required parameter: {param}",
|
|
"invalid_parameter": "Invalid parameter: {param}",
|
|
"api_key_rate_limit_exceeded": "API Key rate limit ({rate_limit}) exceeds tenant plan limit ({limit})"
|
|
},
|
|
"database": {
|
|
"connection_failed": "Database connection failed",
|
|
"query_failed": "Database query failed",
|
|
"transaction_failed": "Database transaction failed",
|
|
"constraint_violation": "Data constraint violation",
|
|
"duplicate_key": "Duplicate data",
|
|
"foreign_key_violation": "Foreign key constraint violation",
|
|
"deadlock": "Database deadlock"
|
|
},
|
|
"validation": {
|
|
"invalid_input": "Invalid input data",
|
|
"missing_field": "Missing required field: {field}",
|
|
"invalid_field": "Invalid field: {field}",
|
|
"field_too_long": "Field too long: {field}",
|
|
"field_too_short": "Field too short: {field}",
|
|
"invalid_format": "Invalid format: {field}",
|
|
"invalid_value": "Invalid value: {field}",
|
|
"out_of_range": "Value out of range: {field}"
|
|
},
|
|
"quota_resources": {
|
|
"workspace": "Workspace",
|
|
"app": "App",
|
|
"skill": "Skill",
|
|
"knowledge_capacity": "Knowledge capacity",
|
|
"memory_engine": "Memory engine",
|
|
"end_user": "End user",
|
|
"model": "Model",
|
|
"ontology_project": "Ontology project",
|
|
"api_ops_rate_limit": "API ops rate limit"
|
|
}
|
|
}
|