PATCH-UPGRADE/viper

GitHub: PATCH-UPGRADE/viper

VIPER 是一个面向医疗保健领域的漏洞管理平台,支持定义医疗工作流并在其上模拟网络安全事件,帮助机构评估和提升安全响应能力。

Stars: 2 | Forks: 0

# 欢迎使用 Viper Viper 是 PATCH 团队的漏洞管理平台(VMP)。 - 定义医疗保健工作流 - 在这些工作流上模拟网络安全事件。 ## 工单跟踪 我们使用 [Northeastern PATCH Jira](https://northeastern-patch.atlassian.net/jira/software/projects/VW/boards/67) 来跟踪工单/进度。 ## 快速开始 请查看 `docs` 文件夹以及 `CLAUDE.md` 下的文档。 按照 `.env.example` 中的指南创建一个 `.env` 文件。 安装 `mprocs` 以运行多个服务: ``` npm install -g mprocs ``` 安装依赖项: ``` npm i ``` 运行 mprocs: ``` mprocs ``` ## 数据库填充 该项目包含一个填充脚本,用于使用示例数据填充数据库,以供开发和测试使用。 ### 如何填充: ``` npm run db:seed ``` 该填充脚本将: 1. 检查种子用户是否存在(如果需要则创建) 2. 填充 20 个属于该种子用户的逼真医院资产 如果你还想要一个临时(24 小时)的测试 API key,请运行: ``` npm run db:create-test-api-key ``` ### 可选:在填充前清空数据库 ``` SEED_CLEAR_DB=true npm run db:seed ``` ⚠️ **警告:** 这将在填充前删除所有现有的资产和资产设置! ### 填充后登录 填充完成后,你可以使用以下凭据登录: - Email: `user@example.com` - 密码:(阅读填充脚本) - 在生产环境中,只有与白名单域名关联的账户才能进行身份验证。该白名单存在于 Vercel 的环境变量中。 ## 技术栈 - React 框架:Next.js - 路由:Next.js App Router - 数据获取/缓存:Tanstack - 样式:Tailwind - 队列:inngest - 数据库:PSQL - ORM:prisma - RPC:tRPC - API 验证:Zod - 测试框架:Vitest - API 测试:Supertest - 代码检查工具:biome ## 数据库 运行 `npx prisma studio` 查看数据库,通常位于 `http://localhost:5555` ### 手动迁移部署 1. 运行 `npx prisma migrate status` —— 应该会提示你有一个已生成但尚未应用的迁移 2. 将你的 `DATABASE_URL` `.env` 文件更改为与你的 Vercel 预览/生产环境关联的 URL - 你可以通过访问我们的 Vercel viper 项目页面 -> Storage -> neon-vmp-db 找到它 - 点击“show secret” 3. 使用 `npx prisma studio` 验证你是否使用了正确的 `DATABASE_URL`。只需确保条目看起来一致即可 4. `npx prisma migrate deploy` 5. 遇到错误了?犯了错误?你可以在 Neon 控制台中恢复我们的 Neon 数据库(通过 Vercel -> neon-vmp-db -> Open in Neon 访问) - 进入“Backup & Restore”,选择一个要恢复的时间(通常只需选择几分钟前即可) - 查看 [Prisma 失败迁移文档](https://www.prisma.io/docs/orm/prisma-migrate/workflows/patching-and-hotfixing#failed-migration) 你也可以先使用你的 Vercel 预览环境尝试此过程,然后再在主分支上尝试。然而,有时 *main* 可能比你的预览环境有更多的迁移(例如,你创建了一个分支,而在那之后其他人创建了一个带有迁移的分支,并抢在你之前将其合并到了 main 中),所以这并不总是有效。 ## 测试 要使用 Vitest 运行测试,请使用 `npm run test`。 你需要手动导出你的 `API_KEY` 环境变量来测试 API。 你可以在 `/user/settings` 下找到你的 API key。 ## 代码检查 要检查 lint 错误,请使用 `npm run lint`。 要让 biome linter 进行更改,请使用 `npm run format`。
标签:GPT, PostgreSQL, Prisma, Web平台, 医疗IT, 工作流模拟, 测试用例, 漏洞管理, 自动化攻击