关键要点
此模板为您提供一个带有匿名日志、案件状态和调查笔记的内部举报人后端,以便您的团队可以在一个系统中进行初步接收、分类和后续跟进。
- 匿名日志接收 — 将报告存储在WhistleblowerLog中,包含如reportChannel和anonymityFlag等案件安全字段。
- 案件状态跟踪 — 使用CaseFile状态更改显示事项是新建、审查中、升级或已关闭。
- 上下文中的调查笔记 — 将InvestigationNote条目附加到CaseFile,以便调查人员可以记录行动、结果和后续步骤。
概述:内部举报者
良好的内部举报者卫生意味着审查员可以抽样记录并立即了解范围、状态和下一个所需的行动。解决方案是操作性的,而不是激励性的。在Back4app上使用Reporter、WhistleblowerLog、CaseFile和InvestigationNote作为结构化合规基本元素,以保持内部举报者工作流程在不同地点和班次之间的一致性。该模式涵盖Reporter(别名、联系方法、同意后续跟进)、WhistleblowerLog(报告渠道、类别、详细信息、匿名标志)、CaseFile(案件编号、状态、优先级、指定协调员)和InvestigationNote(案件文件、备注文本、备注类型、创建者),并内置了授权、匿名接纳和案件处理。连接您首选的前端,快速交付。
最佳适用:
内部举报者后端概述
当人员变动但数据模型无法适应新 SKU、站点或政策时,季节性波动对内部举报者的冲击最为严重。
此摘要帮助团队在任何人深入 ER 图或 JSON 导出之前,围绕 Reporter、WhistleblowerLog 和 CaseFile 进行定位。
核心举报人功能
此中心中的每个技术卡片都使用相同的举报人后端架构,包括举报人、举报日志、案例文件和调查笔记。
举报人录入
举报人存储别名、联系方法和同意后续联系。
匿名日志
WhistleblowerLog记录reportChannel、category、details和anonymityFlag。
案件状态跟踪
CaseFile保存caseNumber、status、priority和assignedCoordinator。
调查笔记
调查笔记链接案例文件、笔记类型、笔记文本和创建者。
为什么使用 Back4app 构建您的内部举报者后端?
Back4app 为您提供报告者、案件和备注原语,使您的团队可以专注于接收和调查工作流程,而不是基础设施。
- •CaseFile 和 WhistleblowerLog 在一个模型中: WhistleblowerLog 捕获匿名细节,而 CaseFile 持有调查团队的状态、优先级和分配信息。
- •受控访问敏感笔记: 调查笔记条目可以通过 ACL 和 Cloud Code 验证限制为协调员和指定审阅者。
- •实时加上 API 灵活性: 在保持 REST 和 GraphQL 可用于员工仪表板和审计工具的同时,使用 Live Queries 处理案件状态变更。
利用一个后端合同在每个平台上快速构建和迭代举报人录入。
核心优势
一个举报人后端,帮助您从匿名提交转向案例处理,而不失去记录的踪迹。
更快的接收设置
从完整的举报人、举报日志、案例文件和调查笔记架构开始,而不是从零设计案例表。
更干净的状态交接
使用案例文件状态和分配协调员字段,以便协调员知道哪些事项是新的、活跃的或已关闭的。
受保护的备注处理
限制调查备注的写入权限,仅限授权审查员和调查人员。
清除访问边界
将匿名日志内容与报告者联系数据分开,并通过 ACL/CLP 保护两者。
一个地方的案件历史
将举报者日志和调查备注存储在一起,以便审查团队可以跟随事件的顺序。
AI辅助引导
使用一个结构化提示快速生成后台脚手架和集成指导。
准备好发布您的举报者应用程序了吗?
让 Back4app AI 代理构建您的内部举报后端,并从一个提示生成匿名日志、案件状态和调查笔记。
免费启动 — 每月 50 次 AI 代理提示,无需信用卡
技术栈
此内部举报后端模板中包含所有内容。
ER图
内部举报人后台架构的实体关系模型。
涵盖报告人、匿名日志、案卷和调查笔记的架构。
查看图表源
erDiagram
User ||--o{ WhistleblowerCase : "reportedBy"
User ||--o{ WhistleblowerCase : "assignedTo"
User ||--o{ InvestigationNote : "author"
User ||--o{ CaseStatusUpdate : "updatedBy"
WhistleblowerCase ||--o{ AnonymousLog : "case"
WhistleblowerCase ||--o{ InvestigationNote : "case"
WhistleblowerCase ||--o{ CaseStatusUpdate : "case"
User {
String objectId PK
String username
String email
String password
String role
String fullName
Date createdAt
Date updatedAt
}
WhistleblowerCase {
String objectId PK
String caseNumber
String title
String category
String status
String priority
String reportedById FK
String assignedToId FK
String anonymousCode
String summary
Date createdAt
Date updatedAt
}
AnonymousLog {
String objectId PK
String caseId FK
String message
String visibility
Date submittedAt
String authorCode
Date createdAt
Date updatedAt
}
InvestigationNote {
String objectId PK
String caseId FK
String authorId FK
String noteType
String noteText
Boolean isInternalOnly
Date createdAt
Date updatedAt
}
CaseStatusUpdate {
String objectId PK
String caseId FK
String updatedById FK
String fromStatus
String toStatus
String statusComment
Date updatedAtTime
Date createdAt
Date updatedAt
}
集成流程
进行身份验证、匿名日志接收、案件状态更新和调查笔记的典型运行流程。
查看图表源
sequenceDiagram
participant User
participant App as Internal Whistleblower App
participant Back4app as Back4app Cloud
User->>App: Sign in as manager or coordinator
App->>Back4app: POST /login
Back4app-->>App: Session token
User->>App: Open case queue
App->>Back4app: GET /classes/WhistleblowerCase?include=reportedBy,assignedTo&order=-updatedAt
Back4app-->>App: Case list with status and anonymousCode
User->>App: Add anonymous log or investigation note
App->>Back4app: POST /classes/AnonymousLog
App->>Back4app: POST /classes/InvestigationNote
Back4app-->>App: Log and note objectIds
User->>App: Update case status
App->>Back4app: POST /classes/CaseStatusUpdate
App->>Back4app: PUT /classes/WhistleblowerCase/:objectId
Back4app-->>App: Updated case status and timeline数据字典
举报者模式中每个类的完整字段级参考。
| 字段 | 类型 | 描述 | 必填 |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | 自动 |
| username | String | User login name | |
| String | User email address | ||
| password | String | Hashed password (write-only) | |
| role | String | User role such as manager, coordinator, or investigator | |
| fullName | String | Display name for internal staff | — |
| createdAt | Date | Auto-generated creation timestamp | 自动 |
| updatedAt | Date | Auto-generated last-update timestamp | 自动 |
8 在 User 中的字段
安全与权限
ACL和CLP策略如何保护报告者、匿名日志、案卷和调查笔记。
报告者隐私控制
将报告者的联系方法和后续跟进的同意视为受限字段;只有获得批准的协调员可以查看后续详情。
匿名日志完整性
只有经过身份验证的工作人员可以创建或关闭案卷项,而举报者日志提交可以设计为匿名。
限制调查访问
限制对调查笔记和案卷的读取和写入,仅限于指定的审阅者、合规负责人或协调员。
架构(JSON)
原始JSON架构定义,准备复制到Back4app或用作实施参考。
{
"classes": [
{
"className": "User",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"username": {
"type": "String",
"required": true
},
"email": {
"type": "String",
"required": true
},
"password": {
"type": "String",
"required": true
},
"role": {
"type": "String",
"required": true
},
"fullName": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "WhistleblowerCase",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"caseNumber": {
"type": "String",
"required": true
},
"title": {
"type": "String",
"required": true
},
"category": {
"type": "String",
"required": true
},
"status": {
"type": "String",
"required": true
},
"priority": {
"type": "String",
"required": true
},
"reportedBy": {
"type": "Pointer",
"required": false,
"targetClass": "User"
},
"assignedTo": {
"type": "Pointer",
"required": false,
"targetClass": "User"
},
"anonymousCode": {
"type": "String",
"required": true
},
"summary": {
"type": "String",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "AnonymousLog",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"case": {
"type": "Pointer",
"required": true,
"targetClass": "WhistleblowerCase"
},
"message": {
"type": "String",
"required": true
},
"visibility": {
"type": "String",
"required": true
},
"submittedAt": {
"type": "Date",
"required": true
},
"authorCode": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "InvestigationNote",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"case": {
"type": "Pointer",
"required": true,
"targetClass": "WhistleblowerCase"
},
"author": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"noteType": {
"type": "String",
"required": true
},
"noteText": {
"type": "String",
"required": true
},
"isInternalOnly": {
"type": "Boolean",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "CaseStatusUpdate",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"case": {
"type": "Pointer",
"required": true,
"targetClass": "WhistleblowerCase"
},
"updatedBy": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"fromStatus": {
"type": "String",
"required": true
},
"toStatus": {
"type": "String",
"required": true
},
"statusComment": {
"type": "String",
"required": true
},
"updatedAtTime": {
"type": "Date",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}与AI代理一起构建
使用Back4app AI代理从此模板生成真实的内部举报者应用,包括前端、后端、认证、匿名日志、案件状态和调查备注流程。
在Back4app上创建一个内部举报者应用后端,使用此确切的架构和行为。 架构: 1. 用户(使用Back4app内置):用户名,电子邮件,密码;objectId,createdAt,updatedAt(系统)。 2. 举报人:别名(字符串,必填),联系方式(字符串),同意跟进(布尔,必填);objectId,createdAt,updatedAt(系统)。 3. 举报日志:举报人(指向举报人的指针,可选),报告渠道(字符串,必填),类别(字符串,必填),详情(字符串,必填),匿名标志(布尔,必填),提交时间(日期,必填);objectId,createdAt,updatedAt(系统)。 4. 案件档案:案件编号(字符串,必填),日志(指向举报日志的指针,必填),状态(字符串,必填),优先级(字符串,必填),指定协调员(指向用户的指针,可选),开启时间(日期,必填),关闭时间(日期);objectId,createdAt,updatedAt(系统)。 5. 调查备注:案件档案(指向案件档案的指针,必填),备注类型(字符串,必填),备注文本(字符串,必填),创建者(指向用户的指针,必填),创建时间(日期,必填);objectId,createdAt,updatedAt(系统)。 安全: - 保护举报人的联系方式和同意跟进。使用ACL/CLP,只有获得批准的协调员才能查看限制性细节。 - 只有经过身份验证的工作人员可以创建或关闭案件档案项。使用云代码进行验证。 - 限制对调查备注的读取和写入,仅限于指定的审阅者和协调员。 认证: - 注册、登录、注销。 行为: - 提交匿名日志、列出案件档案、更新案件状态和添加调查备注。 交付: - 带架构、ACL、CLP的Back4app应用;用于匿名处理、案件档案和调查备注的前端。
按下面的按钮打开带有此模板提示预填充的代理。
这是没有技术后缀的基本提示。您可以在之后调整生成的前端堆栈。
API 演示
尝试 REST 和 GraphQL 端点,与举报者架构进行交互。响应使用模拟数据,不需要 Back4app 账户。
使用与此模板相同的架构。
选择您的技术
展开每个卡片以查看如何将 Reporter、WhistleblowerLog 和 CaseFile 集成到您选择的技术栈中。
Flutter 内部举报人后台
React 内部举报人后台
React 原生 内部举报人后台
Next.js 内部举报人后台
JavaScript 内部举报人后台
Android 内部举报人后台
iOS 内部举报人后台
Vue 内部举报人后台
Angular 内部举报人后台
GraphQL 内部举报人后台
REST API 内部举报人后台
PHP 内部举报人后台
.NET 内部举报人后台
每种技术都可以获得的内容
每个堆栈都使用相同的举报者后端架构和 API 合同。
统一的举报者数据结构
通过一个一致的架构管理举报者、匿名日志、案件文件和调查备注。
用于内部举报的匿名接收
在一个简洁的工作流程中捕获 reportChannel、类别、详细信息和 anonymityFlag。
协调员的案件状态可见性
保持 caseNumber、状态和 assignedCoordinator 在团队中的同步。
对调查员的受控备注访问
限制调查备注的查看权限,只向合适的工作人员展示,而不暴露后续细节。
技术比较
比较所有支持的技术的设置速度、SDK 风格和 AI 支持。
| 框架 | 设置时间 | 举报者应用优势 | SDK 类型 | AI 支持 |
|---|---|---|---|---|
| 大约 5 分钟 | 在移动和网页上进行举报者信息录入的单一代码库。 | 输入 SDK | 完整 | |
| 少于 5 分钟 | 快速的网页仪表盘,用于案件状态和备注。 | 输入的 SDK | 完整 | |
| ~3–7 分钟 | 跨平台移动应用程序,用于匿名举报。 | 输入的 SDK | 完整 | |
| 快速(5分钟)设置 | 服务器渲染的案件审核仪表盘。 | 输入的 SDK | 完整 | |
| ~3–5 分钟 | 轻量级内部报告集成。 | 输入的 SDK | 完整 | |
| 大约 5 分钟 | 用于匿名日志接收的原生 Android 应用。 | 类型化 SDK | 完整 | |
| 少于 5 分钟 | 用于案例审查的原生 iOS 应用。 | 类型化 SDK | 完整 | |
| 大约 3-7 分钟 | React 员工控制台,用于举报人案件。 | 类型化 SDK | 完整 | |
| 快速(5分钟)设置 | 用于调查的企业仪表板。 | 输入的SDK | 完整 | |
| 少于2分钟 | 灵活的GraphQL API用于吹哨人案件。 | GraphQL API | 完整 | |
| 快速(2分钟)设置 | REST API用于匿名日志和案件的集成。 | REST API | 完整 | |
| 约3分钟 | 服务器端 __品牌0__ 案件处理工作流。 | __品牌0__ | 完整 | |
| ~3–7分钟 | __品牌0__ 用于举报操作的后端。 | 输入型SDK | 完整 |
设置时间反映了从项目启动到使用此模板架构的第一个举报日志或案例查询的预期持续时间。
常见问题
关于使用此模板构建内部举报人后端的常见问题。