docs: fix user API auth and add admin delete API docs (#836)

This commit is contained in:
Dream Hunter
2026-02-16 15:49:26 +08:00
committed by GitHub
parent bde08b9d55
commit 566c6536d1
11 changed files with 1208 additions and 1544 deletions

View File

@@ -10,8 +10,13 @@
### Features
- feat: |用户注册| 新增用户注册邮箱正则校验功能,管理员可配置邮箱格式验证规则
### Bug Fixes
- fix: |文档| 修复 User Mail API 文档中错误使用 `x-admin-auth` 的问题,改为正确的 `x-user-token`
- docs: |文档| 新增 Admin 删除邮件、删除邮箱地址、清空收件箱、清空发件箱 API 文档
### Improvements
- style: |邮件列表| 优化收件箱和发件箱空状态显示,根据邮件数量显示不同提示信息,添加语义化图标

View File

@@ -10,8 +10,13 @@
### Features
- feat: |User Registration| Add email regex validation for user registration, admins can configure email format validation rules
### Bug Fixes
- fix: |Docs| Fix User Mail API documentation incorrectly using `x-admin-auth`, changed to correct `x-user-token`
- docs: |Docs| Add Admin API documentation for delete mail, delete address, clear inbox, and clear sent items
### Improvements
- style: |Mail List| Improve empty state display for inbox and sent box, show different messages based on mail count, add semantic icons

View File

@@ -22,17 +22,17 @@
"dependencies": {
"@fingerprintjs/fingerprintjs": "^5.0.1",
"@simplewebauthn/browser": "10.0.0",
"@unhead/vue": "^2.1.2",
"@vueuse/core": "^14.2.0",
"@unhead/vue": "^2.1.4",
"@vueuse/core": "^14.2.1",
"@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^5.1.12",
"axios": "^1.13.4",
"axios": "^1.13.5",
"jszip": "^3.10.1",
"mail-parser-wasm": "^0.2.1",
"naive-ui": "^2.43.2",
"postal-mime": "^2.7.3",
"vooks": "^0.2.12",
"vue": "^3.5.27",
"vue": "^3.5.28",
"vue-clipboard3": "^2.0.0",
"vue-i18n": "^11.2.8",
"vue-router": "^4.6.4"
@@ -40,7 +40,7 @@
"devDependencies": {
"@vicons/fa": "^0.13.0",
"@vicons/material": "^0.13.0",
"@vitejs/plugin-vue": "^6.0.3",
"@vitejs/plugin-vue": "^6.0.4",
"unplugin-auto-import": "^20.3.0",
"unplugin-vue-components": "^30.0.0",
"vite": "^7.3.1",
@@ -49,7 +49,7 @@
"vite-plugin-wasm": "^3.5.0",
"workbox-build": "^7.4.0",
"workbox-window": "^7.4.0",
"wrangler": "^4.61.1"
"wrangler": "^4.65.0"
},
"packageManager": "pnpm@10.10.0+sha512.d615db246fe70f25dcfea6d8d73dee782ce23e2245e3c4f6f888249fb568149318637dca73c2c5c8ef2a4ca0d5657fb9567188bfab47f566d1ee6ce987815c39"
}

1081
frontend/pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -11,7 +11,7 @@
"author": "",
"license": "ISC",
"devDependencies": {
"wrangler": "^4.61.1"
"wrangler": "^4.65.0"
},
"packageManager": "pnpm@10.10.0+sha512.d615db246fe70f25dcfea6d8d73dee782ce23e2245e3c4f6f888249fb568149318637dca73c2c5c8ef2a4ca0d5657fb9567188bfab47f566d1ee6ce987815c39"
}

View File

@@ -42,6 +42,74 @@ print(response.json())
**Note**: Keyword filtering has been removed from the backend API. If you need to filter emails by content, please use the frontend filter input in the UI, which filters the currently displayed page.
## Admin Delete Mail API
Delete a single mail by mail ID.
```python
import requests
mail_id = 1
url = f"https://<your-worker-address>/admin/mails/{mail_id}"
headers = {"x-admin-auth": "<your-Admin-password>"}
response = requests.delete(url, headers=headers)
print(response.json())
```
## Admin Delete Address API
Delete an email address by address ID (also deletes associated mails, sender permissions, and user bindings).
```python
import requests
address_id = 1
url = f"https://<your-worker-address>/admin/delete_address/{address_id}"
headers = {"x-admin-auth": "<your-Admin-password>"}
response = requests.delete(url, headers=headers)
print(response.json())
```
## Admin Clear Inbox API
Clear all received mails for an address by address ID.
```python
import requests
address_id = 1
url = f"https://<your-worker-address>/admin/clear_inbox/{address_id}"
headers = {"x-admin-auth": "<your-Admin-password>"}
response = requests.delete(url, headers=headers)
print(response.json())
```
## Admin Clear Sent Items API
Clear all sent mails for an address by address ID.
```python
import requests
address_id = 1
url = f"https://<your-worker-address>/admin/clear_sent_items/{address_id}"
headers = {"x-admin-auth": "<your-Admin-password>"}
response = requests.delete(url, headers=headers)
print(response.json())
```
## User Mail API
Supports `address` filter
@@ -58,7 +126,7 @@ querystring = {
"address":"xxxx@awsl.uk"
}
headers = {"x-admin-auth": "<your-Admin-password>"}
headers = {"x-user-token": "<your-user-JWT-token>"}
response = requests.get(url, headers=headers, params=querystring)

View File

@@ -42,6 +42,74 @@ print(response.json())
**注意**:后端 API 已移除关键词过滤功能。如需按内容过滤邮件,请使用前端界面的过滤输入框,该功能可过滤当前显示的页面。
## admin 删除邮件 API
通过邮件 ID 删除单封邮件。
```python
import requests
mail_id = 1
url = f"https://<你的worker地址>/admin/mails/{mail_id}"
headers = {"x-admin-auth": "<你的Admin密码>"}
response = requests.delete(url, headers=headers)
print(response.json())
```
## admin 删除邮箱地址 API
通过邮箱地址 ID 删除邮箱地址(同时删除该地址关联的邮件、发件权限和用户绑定)。
```python
import requests
address_id = 1
url = f"https://<你的worker地址>/admin/delete_address/{address_id}"
headers = {"x-admin-auth": "<你的Admin密码>"}
response = requests.delete(url, headers=headers)
print(response.json())
```
## admin 清空收件箱 API
通过邮箱地址 ID 清空该地址的所有收件。
```python
import requests
address_id = 1
url = f"https://<你的worker地址>/admin/clear_inbox/{address_id}"
headers = {"x-admin-auth": "<你的Admin密码>"}
response = requests.delete(url, headers=headers)
print(response.json())
```
## admin 清空发件箱 API
通过邮箱地址 ID 清空该地址的所有发件。
```python
import requests
address_id = 1
url = f"https://<你的worker地址>/admin/clear_sent_items/{address_id}"
headers = {"x-admin-auth": "<你的Admin密码>"}
response = requests.delete(url, headers=headers)
print(response.json())
```
## user 邮件 API
支持 `address` 过滤
@@ -58,7 +126,7 @@ querystring = {
"address":"xxxx@awsl.uk"
}
headers = {"x-admin-auth": "<你的Admin密码>"}
headers = {"x-user-token": "<你的用户JWT Token>"}
response = requests.get(url, headers=headers, params=querystring)

View File

@@ -4,9 +4,9 @@
"version": "1.4.0",
"type": "module",
"devDependencies": {
"@types/node": "^25.1.0",
"@types/node": "^25.2.3",
"vitepress": "^1.6.4",
"wrangler": "^4.61.1"
"wrangler": "^4.65.0"
},
"scripts": {
"dev": "vitepress dev docs",

File diff suppressed because it is too large Load Diff

View File

@@ -11,24 +11,24 @@
"build": "wrangler deploy --dry-run --outdir dist --minify"
},
"devDependencies": {
"@cloudflare/workers-types": "^4.20260131.0",
"@cloudflare/workers-types": "^4.20260214.0",
"@eslint/js": "9.39.1",
"@simplewebauthn/types": "10.0.0",
"@types/node": "^25.1.0",
"@types/node": "^25.2.3",
"eslint": "9.39.1",
"globals": "^16.5.0",
"typescript-eslint": "^8.54.0",
"wrangler": "^4.61.1"
"typescript-eslint": "^8.55.0",
"wrangler": "^4.65.0"
},
"dependencies": {
"@aws-sdk/client-s3": "3.888.0",
"@aws-sdk/s3-request-presigner": "3.888.0",
"@simplewebauthn/server": "10.0.1",
"hono": "^4.11.7",
"jsonpath-plus": "^10.3.0",
"hono": "^4.11.9",
"jsonpath-plus": "^10.4.0",
"mimetext": "^3.0.28",
"postal-mime": "^2.7.3",
"resend": "^6.9.1",
"resend": "^6.9.2",
"telegraf": "4.16.3",
"worker-mailer": "^1.2.1"
},

789
worker/pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff