1
1
mirror of https://github.com/ZeroCatDev/ClassworksKV.git synced 2025-10-22 18:33:11 +00:00
2025-10-02 12:07:50 +08:00

282 lines
7.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# KV 服务管理应用
一个基于 Vue 3 + JavaScript + shadcn-vue 的 KV 存储服务管理界面,支持多应用 Token 管理和本地设备码生成。
## 功能特性
- 🔑 **多 Token 管理**:管理多个应用的访问 Token
- 🔐 **本地设备码生成**:自动生成设备授权码,无需服务器
- 📊 **KV 空间信息**:实时显示当前 KV 空间的使用情况
- 💾 **数据管理**:浏览、创建、编辑和删除 KV 键值对
- 🔍 **搜索过滤**:支持键名搜索和多种排序方式
- 📱 **响应式设计**:适配桌面和移动设备
- 🎨 **现代 UI**shadcn-vue 组件库,简洁清爽
-**快速开发**Vite 驱动HMR 即时更新
- 🗂️ **约定式路由**:基于文件系统的自动路由
## 技术栈
- **框架**Vue 3 + JavaScript
- **构建工具**Vite
- **UI 组件**shadcn-vue
- **样式**Tailwind CSS v4
- **路由**Vue Router + unplugin-vue-router (约定式路由)
- **图标**Lucide Icons
- **状态管理**LocalStorage (轻量级)
## 快速开始
### 1. 安装依赖
```bash
pnpm install
```
### 2. 配置环境变量
复制 `.env.example``.env` 并填写配置:
```bash
cp .env.example .env
```
编辑 `.env` 文件:
```env
VITE_API_BASE_URL=http://localhost:3000
VITE_SITE_KEY=your-site-key-here
```
### 3. 启动开发服务器
```bash
pnpm dev
```
应用将在 http://localhost:5173 运行
### 4. 构建生产版本
```bash
pnpm build
```
构建产物将输出到 `dist` 目录。
## 项目结构
```
kv-admin/
├── src/
│ ├── components/
│ │ └── ui/ # shadcn-vue 组件
│ ├── pages/ # 约定式路由页面
│ │ ├── index.vue # Token 管理页面 (/)
│ │ └── dashboard.vue # KV 数据管理 (/dashboard)
│ ├── lib/
│ │ ├── api.js # API 客户端
│ │ ├── tokenStore.js # Token 存储管理
│ │ └── utils.js # 工具函数
│ ├── App.vue # 根组件
│ ├── main.js # 入口文件
│ └── style.css # 全局样式
├── .env.example # 环境变量模板
├── components.json # shadcn-vue 配置
├── jsconfig.json # JavaScript 配置
├── vite.config.js # Vite 配置
└── package.json
```
## 核心功能说明
### 1. Token 管理(首页)
- **添加应用 Token**:输入应用名称和 Token系统自动生成设备码
- **设备码生成**:本地随机生成格式如 `XXXX-XXXX-XXXX-XXXX` 的设备码
- **多 Token 支持**:可以添加多个应用的 Token方便切换
- **活跃 Token**:选择当前要使用的 Token
- **KV 空间信息**:显示当前活跃应用的 KV 数据统计
- **Token 可见性**:支持显示/隐藏 Token 值
- **复制功能**:一键复制设备码和 Token
### 2. 数据管理Dashboard
- **浏览数据**:查看当前应用的所有 KV 键值对
- **搜索**:通过键名快速查找
- **排序**:按键名、创建时间或更新时间排序
- **创建**添加新的键值对JSON 格式)
- **编辑**:修改现有键值对的内容
- **查看详情**:查看完整的键值对信息和元数据
- **删除**:删除不需要的键值对
- **分页**:支持大量数据的分页浏览
### 设备码说明
**什么是设备码?**
- 设备码是应用授权的密钥,相当于一个唯一标识符
- 格式:`XXXX-XXXX-XXXX-XXXX`4段每段4个字母/数字)
- **本地生成**:无需服务器接口,在浏览器端随机生成
- **用途**:用于标识和授权特定的应用或设备访问 KV 服务
**工作流程:**
1. 用户添加应用 Token 时,系统自动生成设备码
2. 设备码与 Token 绑定存储在本地
3. 应用可以使用设备码作为标识符进行授权验证
## API 端点
应用与以下 API 端点交互:
### KV 存储
- `GET /kv` - 获取键值对列表
- `GET /kv/_keys` - 获取键名列表
- `GET /kv/:key` - 获取指定键的值
- `GET /kv/:key/metadata` - 获取键的元数据
- `POST /kv/:key` - 创建或更新键值对
- `DELETE /kv/:key` - 删除键值对
- `POST /kv/_batchimport` - 批量导入
## 数据存储
应用使用 LocalStorage 存储以下数据:
- `kv_tokens` - Token 列表数据
```json
[
{
"id": "1234567890",
"token": "your-token-here",
"appName": "我的应用",
"deviceCode": "ABCD-1234-EFGH-5678",
"createdAt": "2025-01-01T00:00:00.000Z",
"lastUsed": "2025-01-01T00:00:00.000Z"
}
]
```
- `kv_active_token` - 当前活跃的 Token ID
## 约定式路由
本项目使用 `unplugin-vue-router` 实现约定式路由,无需手动配置路由:
- `src/pages/index.vue` → `/` (Token 管理页面)
- `src/pages/dashboard.vue` → `/dashboard` (数据管理页面)
### 路由元信息
在页面组件中使用 `defineOptions` 设置路由元信息:
```vue
<script setup>
defineOptions({
meta: {
requiresAuth: true
}
})
</script>
```
### 导航守卫
路由守卫在 `src/main.js` 中配置,自动处理授权检查:
```javascript
router.beforeEach((to, _from, next) => {
const requiresAuth = to.meta?.requiresAuth
const activeToken = tokenStore.getActiveToken()
if (requiresAuth && !activeToken) {
next({ path: '/' })
} else {
next()
}
})
```
## 开发
### 添加新页面
在 `src/pages/` 目录下创建新的 `.vue` 文件,路由会自动生成:
```
src/pages/
├── index.vue → /
├── dashboard.vue → /dashboard
└── settings.vue → /settings (自动添加)
```
### 添加新组件
使用 shadcn-vue CLI 添加组件:
```bash
pnpm dlx shadcn-vue@latest add [component-name]
```
## 部署
### Vercel / Netlify
这些平台会自动检测 Vite 项目并进行构建。只需连接 Git 仓库即可。
### 传统服务器
构建后将 `dist` 目录部署到您的 Web 服务器,确保配置 SPA 回退规则:
**Nginx 示例**
```nginx
location / {
try_files $uri $uri/ /index.html;
}
```
## 使用流程
### 首次使用
1. 访问首页
2. 点击"添加应用"
3. 输入应用名称(可选)和访问 Token
4. 系统自动生成设备码并保存
5. 点击"管理数据"进入数据管理页面
### 切换应用
1. 在首页的应用列表中
2. 点击要切换的应用行的"选择"按钮
3. 该应用变为"活跃"状态
4. KV 空间信息自动更新
5. 点击"管理数据"查看该应用的数据
### 管理数据
1. 在数据管理页面可以进行 CRUD 操作
2. 使用搜索框快速查找键名
3. 使用排序和分页功能浏览大量数据
4. 点击左上角的"主页"图标返回 Token 管理页面
## 安全建议
1. 始终使用 HTTPS 部署生产环境
2. 定期更换访问 Token
3. 不要在前端代码中硬编码敏感信息
4. 使用环境变量管理配置
5. 实施适当的 CORS 策略
6. LocalStorage 数据在浏览器端存储,注意隐私保护
## 技术亮点
-**纯 JavaScript**:无 TypeScript 依赖,更简单轻量
-**约定式路由**:基于文件系统,自动生成路由
-**本地设备码**:客户端生成,无需服务器接口
-**多 Token 管理**:支持多应用切换
-**现代化工具链**Vite + Vue 3 组合式 API
-**完整的 UI 组件**44 个 shadcn-vue 组件
-**响应式设计**Tailwind CSS v4
-**轻量级状态**LocalStorage 管理,无需额外状态库
## 许可证
MIT