# Audit 覆盖度扫描报告

- 时间: 2026-05-08T07:10:07.728Z
- 后端: http://localhost:3001/api/v1
- 用户: itadmin
- 控制器文件数: 96
- @Auditable 端点总数: 284
- audit_log 增量: 0 (before=72, after=72)

## 静态扫描

| 模块 | @Auditable 总数 | GET | POST | PUT | PATCH | DELETE | 敏感 | 财务 |
|---|---:|---:|---:|---:|---:|---:|---:|---:|
| ai-assistant/chat | 3 | 0 | 2 | 0 | 0 | 1 | 1 | 0 |
| ai-assistant/config | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
| ai-assistant/feedback | 2 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
| ai-assistant/knowledge | 2 | 0 | 1 | 1 | 0 | 0 | 2 | 0 |
| ai-assistant/prompt | 3 | 0 | 2 | 1 | 0 | 0 | 0 | 0 |
| ai-assistant/ticket | 4 | 0 | 3 | 1 | 0 | 0 | 0 | 0 |
| core/compute | 7 | 0 | 5 | 0 | 1 | 1 | 7 | 0 |
| core/messaging | 7 | 0 | 5 | 1 | 0 | 1 | 5 | 0 |
| engines/approval | 12 | 0 | 12 | 0 | 0 | 0 | 6 | 0 |
| engines/form | 57 | 0 | 34 | 4 | 8 | 11 | 49 | 0 |
| feedback | 5 | 0 | 2 | 0 | 2 | 1 | 4 | 0 |
| flow-diagram | 5 | 0 | 3 | 0 | 1 | 1 | 0 | 0 |
| ops-center/m365-dormant | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 |
| organization/ai-tools | 8 | 0 | 4 | 2 | 0 | 2 | 0 | 0 |
| organization/auth | 4 | 0 | 3 | 1 | 0 | 0 | 2 | 0 |
| organization/departments | 8 | 0 | 4 | 2 | 0 | 2 | 2 | 0 |
| organization/iam-governance | 14 | 0 | 7 | 0 | 2 | 5 | 0 | 0 |
| organization/organizations | 5 | 0 | 2 | 0 | 1 | 2 | 0 | 0 |
| organization/positions | 3 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
| organization/regions | 4 | 0 | 1 | 1 | 1 | 1 | 4 | 0 |
| organization/roles | 4 | 0 | 1 | 2 | 0 | 1 | 4 | 0 |
| organization/sync | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 |
| organization/user-departments | 4 | 0 | 1 | 1 | 1 | 1 | 4 | 0 |
| organization/users | 17 | 0 | 13 | 0 | 2 | 2 | 13 | 0 |
| organization/workflow-roles | 6 | 0 | 3 | 1 | 0 | 2 | 6 | 0 |
| parts | 26 | 0 | 21 | 2 | 0 | 3 | 26 | 0 |
| parts/controllers | 19 | 0 | 8 | 5 | 0 | 6 | 19 | 0 |
| robot-manager | 32 | 0 | 10 | 14 | 0 | 8 | 0 | 3 |
| tickets | 20 | 0 | 9 | 0 | 4 | 7 | 15 | 0 |

## 动态层 GET 探测结果

| 模块 | @Auditable | GET 探测 | 200/2xx | 失败 | audit_log 增量 |
|---|---:|---:|---:|---:|---:|
| ai-assistant/chat | 3 | 0 | 0 | 0 | 0 |
| ai-assistant/config | 1 | 0 | 0 | 0 | 0 |
| ai-assistant/feedback | 2 | 0 | 0 | 0 | 0 |
| ai-assistant/knowledge | 2 | 0 | 0 | 0 | 0 |
| ai-assistant/prompt | 3 | 0 | 0 | 0 | 0 |
| ai-assistant/ticket | 4 | 0 | 0 | 0 | 0 |
| core/compute | 7 | 0 | 0 | 0 | 0 |
| core/messaging | 7 | 0 | 0 | 0 | 0 |
| engines/approval | 12 | 0 | 0 | 0 | 0 |
| engines/form | 57 | 0 | 0 | 0 | 0 |
| feedback | 5 | 0 | 0 | 0 | 0 |
| flow-diagram | 5 | 0 | 0 | 0 | 0 |
| ops-center/m365-dormant | 1 | 0 | 0 | 0 | 0 |
| organization/ai-tools | 8 | 0 | 0 | 0 | 0 |
| organization/auth | 4 | 0 | 0 | 0 | 0 |
| organization/departments | 8 | 0 | 0 | 0 | 0 |
| organization/iam-governance | 14 | 0 | 0 | 0 | 0 |
| organization/organizations | 5 | 0 | 0 | 0 | 0 |
| organization/positions | 3 | 0 | 0 | 0 | 0 |
| organization/regions | 4 | 0 | 0 | 0 | 0 |
| organization/roles | 4 | 0 | 0 | 0 | 0 |
| organization/sync | 1 | 0 | 0 | 0 | 0 |
| organization/user-departments | 4 | 0 | 0 | 0 | 0 |
| organization/users | 17 | 0 | 0 | 0 | 0 |
| organization/workflow-roles | 6 | 0 | 0 | 0 | 0 |
| parts | 26 | 0 | 0 | 0 | 0 |
| parts/controllers | 19 | 0 | 0 | 0 | 0 |
| robot-manager | 32 | 0 | 0 | 0 | 0 |
| tickets | 20 | 0 | 0 | 0 | 0 |

## 完整端点清单

| 模块 | Verb | Path | Controller.method | 敏感 | 财务 |
|---|---|---|---|---|---|
| tickets | POST | `/tickets/admin/categories` | TicketAdminController.createCategory | ✓ |  |
| tickets | PATCH | `/tickets/admin/categories/:id` | TicketAdminController.updateCategory | ✓ |  |
| tickets | DELETE | `/tickets/admin/categories/:id` | TicketAdminController.deleteCategory | ✓ |  |
| tickets | POST | `/tickets/admin/groups` | TicketAdminController.createGroup | ✓ |  |
| tickets | PATCH | `/tickets/admin/groups/:id` | TicketAdminController.updateGroup | ✓ |  |
| tickets | POST | `/tickets/admin/groups/:id/members` | TicketAdminController.addGroupMembers | ✓ |  |
| tickets | DELETE | `/tickets/admin/groups/:id/members` | TicketAdminController.removeGroupMembers | ✓ |  |
| tickets | DELETE | `/tickets/admin/groups/:id` | TicketAdminController.deleteGroup | ✓ |  |
| tickets | POST | `/tickets` | TicketsController.create | ✓ |  |
| tickets | PATCH | `/tickets/:id` | TicketsController.update |  |  |
| tickets | PATCH | `/tickets/:id/status` | TicketsController.updateStatus |  |  |
| tickets | POST | `/tickets/:id/assign` | TicketsController.assign | ✓ |  |
| tickets | DELETE | `/tickets/:id` | TicketsController.remove | ✓ |  |
| tickets | POST | `/tickets/:id/comments` | TicketsController.addComment |  |  |
| tickets | DELETE | `/tickets/:id/comments/:commentId` | TicketsController.deleteComment | ✓ |  |
| tickets | POST | `/tickets/:id/satisfaction` | TicketsController.submitSatisfaction |  |  |
| tickets | POST | `/tickets/:id/watch` | TicketsController.watch | ✓ |  |
| tickets | DELETE | `/tickets/:id/watch` | TicketsController.unwatch | ✓ |  |
| tickets | POST | `/tickets/:id/watchers/:watcherId` | TicketsController.addWatcher |  |  |
| tickets | DELETE | `/tickets/:id/watchers/:watcherId` | TicketsController.removeWatcher | ✓ |  |
| robot-manager | PUT | `/robot-manager/admin/config/:key` | RobotAdminController.setConfig |  |  |
| robot-manager | DELETE | `/robot-manager/admin/config/:key` | RobotAdminController.deleteConfig |  |  |
| robot-manager | POST | `/robot-manager/admin/models` | RobotAdminController.createModel |  |  |
| robot-manager | PUT | `/robot-manager/admin/models/:id` | RobotAdminController.updateModel |  |  |
| robot-manager | DELETE | `/robot-manager/admin/models/:id` | RobotAdminController.deleteModel |  |  |
| robot-manager | POST | `/robot-manager/admin/skus` | RobotAdminController.createSku |  |  |
| robot-manager | PUT | `/robot-manager/admin/skus/:id` | RobotAdminController.updateSku |  |  |
| robot-manager | DELETE | `/robot-manager/admin/skus/:id` | RobotAdminController.deleteSku |  |  |
| robot-manager | POST | `/robot-manager/admin/suppliers` | RobotAdminController.createSupplier |  |  |
| robot-manager | PUT | `/robot-manager/admin/suppliers/:id` | RobotAdminController.updateSupplier |  |  |
| robot-manager | DELETE | `/robot-manager/admin/suppliers/:id` | RobotAdminController.deleteSupplier |  |  |
| robot-manager | POST | `/robot-manager/admin/customers` | RobotAdminController.createCustomer |  |  |
| robot-manager | PUT | `/robot-manager/admin/customers/:id` | RobotAdminController.updateCustomer |  |  |
| robot-manager | DELETE | `/robot-manager/admin/customers/:id` | RobotAdminController.deleteCustomer |  |  |
| robot-manager | POST | `/robot-manager/admin/locations` | RobotAdminController.createLocation |  |  |
| robot-manager | PUT | `/robot-manager/admin/locations/:id` | RobotAdminController.updateLocation |  |  |
| robot-manager | DELETE | `/robot-manager/admin/locations/:id` | RobotAdminController.deleteLocation |  |  |
| robot-manager | POST | `/robot-manager/admin/field-defs` | RobotAdminController.createFieldDef |  |  |
| robot-manager | PUT | `/robot-manager/admin/field-defs/:id` | RobotAdminController.updateFieldDef |  |  |
| robot-manager | DELETE | `/robot-manager/admin/field-defs/:id` | RobotAdminController.deleteFieldDef |  |  |
| robot-manager | POST | `/robot-manager/excel/import` | RobotExcelController.importExcel |  |  |
| robot-manager | POST | `/robot-manager/:id/status` | RobotStatusController.changeStatus |  |  |
| robot-manager | POST | `/robot-manager` | RobotUnitController.create |  |  |
| robot-manager | PUT | `/robot-manager/:id` | RobotUnitController.update |  | ✓ |
| robot-manager | DELETE | `/robot-manager/:id` | RobotUnitController.softDelete |  |  |
| robot-manager | PUT | `/robot-manager/:id/identity` | RobotUnitController.updateIdentity |  |  |
| robot-manager | PUT | `/robot-manager/:id/supply-chain` | RobotUnitController.updateSupplyChain |  |  |
| robot-manager | PUT | `/robot-manager/:id/sales` | RobotUnitController.updateSales |  | ✓ |
| robot-manager | PUT | `/robot-manager/:id/finance` | RobotUnitController.updateFinance |  | ✓ |
| robot-manager | PUT | `/robot-manager/:id/after-sales` | RobotUnitController.updateAfterSales |  |  |
| robot-manager | PUT | `/robot-manager/:id/compliance` | RobotUnitController.updateCompliance |  |  |
| robot-manager | POST | `/robot-manager/bulk-status-change` | RobotUnitController.bulkStatusChange |  |  |
| parts | POST | `/alerts/acknowledge` | AlertsController.acknowledge | ✓ |  |
| parts | POST | `/alerts/resolve` | AlertsController.resolve | ✓ |  |
| parts | POST | `/alerts/bulk-acknowledge` | AlertsController.bulkAcknowledge | ✓ |  |
| parts | POST | `/alerts/bulk-resolve` | AlertsController.bulkResolve | ✓ |  |
| parts | POST | `/alerts/auto-resolve` | AlertsController.autoResolveFixedAlerts | ✓ |  |
| parts | POST | `/parts/columns/configs` | ColumnConfigController.create | ✓ |  |
| parts | PUT | `/parts/columns/configs/:id` | ColumnConfigController.update | ✓ |  |
| parts | DELETE | `/parts/columns/configs/:id` | ColumnConfigController.remove | ✓ |  |
| parts | POST | `/parts/columns/configs/:id/set-default` | ColumnConfigController.setDefault | ✓ |  |
| parts | POST | `/parts/columns/configs/:id/copy` | ColumnConfigController.copy | ✓ |  |
| parts | POST | `/parts/excel/import` | ExcelController.importExcel | ✓ |  |
| parts | POST | `/parts/excel/validate` | ExcelController.validateExcel | ✓ |  |
| parts | POST | `/inventory/check-in` | InventoryController.checkIn | ✓ |  |
| parts | POST | `/inventory/check-out` | InventoryController.checkOut | ✓ |  |
| parts | POST | `/inventory/adjust` | InventoryController.adjustInventory | ✓ |  |
| parts | POST | `/inventory/transfer` | InventoryController.transferInventory | ✓ |  |
| parts | POST | `/inventory/bulk-operation` | InventoryController.bulkOperation | ✓ |  |
| parts | POST | `/labels/generate` | LabelsController.generateLabel | ✓ |  |
| parts | POST | `/labels/generate/bulk` | LabelsController.bulkGenerateLabels | ✓ |  |
| parts | POST | `/labels/print` | LabelsController.printLabel | ✓ |  |
| parts | POST | `/labels/print/bulk` | LabelsController.bulkPrintLabels | ✓ |  |
| parts | DELETE | `/labels/:id` | LabelsController.voidLabel | ✓ |  |
| parts | POST | `/parts` | PartsController.create | ✓ |  |
| parts | POST | `/parts/bulk-import` | PartsController.bulkImport | ✓ |  |
| parts | PUT | `/parts/:partIdentifier` | PartsController.update | ✓ |  |
| parts | DELETE | `/parts/:partIdentifier` | PartsController.remove | ✓ |  |
| parts/controllers | POST | `/parts/groups` | PartGroupsController.createGroup | ✓ |  |
| parts/controllers | PUT | `/parts/groups/:id` | PartGroupsController.updateGroup | ✓ |  |
| parts/controllers | DELETE | `/parts/groups/:id` | PartGroupsController.deleteGroup | ✓ |  |
| parts/controllers | POST | `/parts/groups/:groupId/fields` | PartGroupsController.addCustomFieldToGroup | ✓ |  |
| parts/controllers | PUT | `/parts/groups/fields/:fieldId` | PartGroupsController.updateCustomField | ✓ |  |
| parts/controllers | DELETE | `/parts/groups/fields/:fieldId` | PartGroupsController.deleteCustomField | ✓ |  |
| parts/controllers | POST | `/parts/groups/:groupId/parts` | PartGroupsController.assignPartsToGroup | ✓ |  |
| parts/controllers | DELETE | `/parts/groups/:groupId/parts` | PartGroupsController.removePartsFromGroup | ✓ |  |
| parts/controllers | POST | `/stations` | StationController.create | ✓ |  |
| parts/controllers | POST | `/stations/bulk-import` | StationController.bulkImport | ✓ |  |
| parts/controllers | PUT | `/stations/:id` | StationController.update | ✓ |  |
| parts/controllers | DELETE | `/stations/:id` | StationController.remove | ✓ |  |
| parts/controllers | POST | `/storage-locations` | StorageLocationController.create | ✓ |  |
| parts/controllers | POST | `/storage-locations/bulk-import/:warehouseId` | StorageLocationController.bulkImport | ✓ |  |
| parts/controllers | PUT | `/storage-locations/:id` | StorageLocationController.update | ✓ |  |
| parts/controllers | DELETE | `/storage-locations/:id` | StorageLocationController.remove | ✓ |  |
| parts/controllers | POST | `/warehouses` | WarehouseController.create | ✓ |  |
| parts/controllers | PUT | `/warehouses/:id` | WarehouseController.update | ✓ |  |
| parts/controllers | DELETE | `/warehouses/:id` | WarehouseController.remove | ✓ |  |
| organization/workflow-roles | POST | `/workflow-roles` | WorkflowRolesController.create | ✓ |  |
| organization/workflow-roles | PUT | `/workflow-roles/:id` | WorkflowRolesController.update | ✓ |  |
| organization/workflow-roles | DELETE | `/workflow-roles/:id` | WorkflowRolesController.remove | ✓ |  |
| organization/workflow-roles | POST | `/workflow-roles/:id/users` | WorkflowRolesController.assignUsers | ✓ |  |
| organization/workflow-roles | DELETE | `/workflow-roles/:id/users/:userId` | WorkflowRolesController.removeUser | ✓ |  |
| organization/workflow-roles | POST | `/workflow-roles/resolve` | WorkflowRolesController.resolve | ✓ |  |
| organization/users | POST | `/users` | UsersController.create |  |  |
| organization/users | POST | `/users/import-memberships` | UsersController.importMemberships |  |  |
| organization/users | POST | `/users/import-work-city/preview` | UsersController.previewImportWorkCity |  |  |
| organization/users | POST | `/users/import-work-city/commit` | UsersController.commitImportWorkCity | ✓ |  |
| organization/users | PATCH | `/users/:id` | UsersController.update |  |  |
| organization/users | DELETE | `/users/:id` | UsersController.remove | ✓ |  |
| organization/users | POST | `/users/:id/roles` | UsersController.assignRoles | ✓ |  |
| organization/users | POST | `/users/:id/roles/add` | UsersController.addRoles | ✓ |  |
| organization/users | DELETE | `/users/:id/roles/:roleId` | UsersController.removeRole | ✓ |  |
| organization/users | POST | `/users/:id/region-roles` | UsersController.assignRegionRoles | ✓ |  |
| organization/users | POST | `/users/:id/region-roles/add` | UsersController.addRegionRole | ✓ |  |
| organization/users | POST | `/users/:id/region-roles/remove` | UsersController.removeRegionRole | ✓ |  |
| organization/users | POST | `/users/:id/terminate` | UsersController.terminate | ✓ |  |
| organization/users | POST | `/users/:id/activate` | UsersController.activate | ✓ |  |
| organization/users | PATCH | `/users/:id/status` | UsersController.updateStatus | ✓ |  |
| organization/users | POST | `/users/:id/restore` | UsersController.restore | ✓ |  |
| organization/users | POST | `/users/:id/reset-password` | UsersController.resetPassword | ✓ |  |
| organization/user-departments | POST | `/users/:userId/departments` | UserDepartmentsController.addUserDepartment | ✓ |  |
| organization/user-departments | PATCH | `/users/:userId/departments/:departmentId` | UserDepartmentsController.updateUserDepartment | ✓ |  |
| organization/user-departments | PUT | `/users/:userId/departments/:departmentId/primary` | UserDepartmentsController.setPrimaryDepartment | ✓ |  |
| organization/user-departments | DELETE | `/users/:userId/departments/:departmentId` | UserDepartmentsController.removeUserDepartment | ✓ |  |
| organization/sync | POST | `/organization/sync` | SyncController.syncFromEntraId | ✓ |  |
| organization/roles | POST | `/roles` | RolesController.create | ✓ |  |
| organization/roles | PUT | `/roles/:id` | RolesController.update | ✓ |  |
| organization/roles | DELETE | `/roles/:id` | RolesController.remove | ✓ |  |
| organization/roles | PUT | `/roles/:id/permissions` | RolesController.assignPermissions | ✓ |  |
| organization/regions | POST | `/regions` | RegionsController.create | ✓ |  |
| organization/regions | PATCH | `/regions/:id` | RegionsController.update | ✓ |  |
| organization/regions | DELETE | `/regions/:id` | RegionsController.remove | ✓ |  |
| organization/regions | PUT | `/regions/:id/default-organization` | RegionsController.setDefaultOrganization | ✓ |  |
| organization/positions | POST | `/positions` | PositionsController.create |  |  |
| organization/positions | PUT | `/positions/:id` | PositionsController.update |  |  |
| organization/positions | DELETE | `/positions/:id` | PositionsController.remove |  |  |
| organization/organizations | POST | `/organizations` | OrganizationsController.create |  |  |
| organization/organizations | PATCH | `/organizations/:id` | OrganizationsController.update |  |  |
| organization/organizations | DELETE | `/organizations/:id` | OrganizationsController.remove |  |  |
| organization/organizations | POST | `/organizations/:id/regions` | OrganizationsController.manageRegions |  |  |
| organization/organizations | DELETE | `/organizations/:id/regions/:regionId` | OrganizationsController.removeRegion |  |  |
| organization/iam-governance | POST | `/iam/access-review/:id/approve` | AccessReviewController.approve |  |  |
| organization/iam-governance | POST | `/iam/access-review/:id/revoke` | AccessReviewController.revoke |  |  |
| organization/iam-governance | POST | `/iam/data-scopes` | DataScopesController.create |  |  |
| organization/iam-governance | PATCH | `/iam/data-scopes/:id` | DataScopesController.update |  |  |
| organization/iam-governance | DELETE | `/iam/data-scopes/:id` | DataScopesController.remove |  |  |
| organization/iam-governance | POST | `/iam/delegations` | DelegationsController.create |  |  |
| organization/iam-governance | DELETE | `/iam/delegations/:id` | DelegationsController.revoke |  |  |
| organization/iam-governance | POST | `/iam/emergency-bypass` | EmergencyBypassController.enable |  |  |
| organization/iam-governance | DELETE | `/iam/emergency-bypass/:endpoint` | EmergencyBypassController.disable |  |  |
| organization/iam-governance | POST | `/iam/field-permissions` | FieldPermissionsController.create |  |  |
| organization/iam-governance | PATCH | `/iam/field-permissions/:id` | FieldPermissionsController.update |  |  |
| organization/iam-governance | DELETE | `/iam/field-permissions/:id` | FieldPermissionsController.remove |  |  |
| organization/iam-governance | POST | `/iam/role-data-scopes` | RoleDataScopesController.bind |  |  |
| organization/iam-governance | DELETE | `/iam/role-data-scopes/:id` | RoleDataScopesController.unbind |  |  |
| organization/departments | POST | `/departments` | DepartmentsController.create |  |  |
| organization/departments | POST | `/departments/batch` | DepartmentsController.batchCreate |  |  |
| organization/departments | PUT | `/departments/:id` | DepartmentsController.update |  |  |
| organization/departments | PUT | `/departments/:id/head` | DepartmentsController.setHead | ✓ |  |
| organization/departments | POST | `/departments/:id/members` | DepartmentsController.addMember |  |  |
| organization/departments | POST | `/departments/:id/members/batch` | DepartmentsController.addMembers |  |  |
| organization/departments | DELETE | `/departments/:id/members/:userId` | DepartmentsController.removeMember |  |  |
| organization/departments | DELETE | `/departments/:id` | DepartmentsController.remove | ✓ |  |
| organization/auth | POST | `/auth/register` | AuthController.register | ✓ |  |
| organization/auth | POST | `/auth/login` | AuthController.login |  |  |
| organization/auth | POST | `/auth/logout` | AuthController.logout |  |  |
| organization/auth | PUT | `/auth/change-password` | AuthController.changePassword | ✓ |  |
| organization/ai-tools | POST | `/ai-tools/grants` | AIToolsController.createRoleGrant |  |  |
| organization/ai-tools | POST | `/ai-tools/grants/batch` | AIToolsController.batchCreateRoleGrants |  |  |
| organization/ai-tools | DELETE | `/ai-tools/grants/:id` | AIToolsController.deleteRoleGrant |  |  |
| organization/ai-tools | POST | `/ai-tools/user-grants` | AIToolsController.createUserGrant |  |  |
| organization/ai-tools | DELETE | `/ai-tools/user-grants/:id` | AIToolsController.deleteUserGrant |  |  |
| organization/ai-tools | POST | `/ai-tools/sync` | AIToolsController.triggerSync |  |  |
| organization/ai-tools | PUT | `/ai-tools/grants/role/:roleId` | AIToolsController.setRoleGrants |  |  |
| organization/ai-tools | PUT | `/ai-tools/user-grants/:userId` | AIToolsController.setUserGrants |  |  |
| ops-center/m365-dormant | POST | `/ops-center/m365-dormant/sync` | M365DormantController.triggerSync | ✓ |  |
| flow-diagram | POST | `/flow-diagrams` | FlowDiagramController.create |  |  |
| flow-diagram | PATCH | `/flow-diagrams/:id` | FlowDiagramController.update |  |  |
| flow-diagram | DELETE | `/flow-diagrams/:id` | FlowDiagramController.delete |  |  |
| flow-diagram | POST | `/flow-diagrams/:id/duplicate` | FlowDiagramController.duplicate |  |  |
| flow-diagram | POST | `/flow-diagrams/:id/restore-previous` | FlowDiagramController.restorePrevious |  |  |
| feedback | POST | `/feedbacks` | FeedbackController.create |  |  |
| feedback | POST | `/feedbacks/batch-status` | FeedbackController.batchUpdateStatus | ✓ |  |
| feedback | PATCH | `/feedbacks/:id/status` | FeedbackController.updateStatus | ✓ |  |
| feedback | PATCH | `/feedbacks/:id` | FeedbackController.update | ✓ |  |
| feedback | DELETE | `/feedbacks/:id` | FeedbackController.delete | ✓ |  |
| ai-assistant/ticket | POST | `/ai-assistant/tickets` | TicketController.create |  |  |
| ai-assistant/ticket | PUT | `/ai-assistant/tickets/:id` | TicketController.update |  |  |
| ai-assistant/ticket | POST | `/ai-assistant/tickets/:id/assign` | TicketController.assign |  |  |
| ai-assistant/ticket | POST | `/ai-assistant/tickets/:id/resolve` | TicketController.resolve |  |  |
| ai-assistant/prompt | POST | `/ai-assistant/prompts` | PromptController.create |  |  |
| ai-assistant/prompt | PUT | `/ai-assistant/prompts/:id` | PromptController.update |  |  |
| ai-assistant/prompt | POST | `/ai-assistant/prompts/:id/activate` | PromptController.activate |  |  |
| ai-assistant/knowledge | POST | `/ai-assistant/knowledge-fixes` | KnowledgeController.create | ✓ |  |
| ai-assistant/knowledge | PUT | `/ai-assistant/knowledge-fixes/:id/review` | KnowledgeController.review | ✓ |  |
| ai-assistant/feedback | POST | `/ai-assistant/messages/:id/feedback` | FeedbackController.createFeedback |  |  |
| ai-assistant/feedback | PUT | `/ai-assistant/messages/:id/feedback` | FeedbackController.updateFeedback |  |  |
| ai-assistant/config | PUT | `/ai-assistant/config/:key` | AIConfigController.update | ✓ |  |
| ai-assistant/chat | POST | `/ai-assistant/conversations` | ChatController.create |  |  |
| ai-assistant/chat | DELETE | `/ai-assistant/conversations/:id` | ChatController.remove | ✓ |  |
| ai-assistant/chat | POST | `/ai-assistant/conversations/:id/messages` | ChatController.sendMessage |  |  |
| engines/form | POST | `/form-management/definitions` | FormManagementController.create | ✓ |  |
| engines/form | PATCH | `/form-management/definitions/:id` | FormManagementController.update | ✓ |  |
| engines/form | DELETE | `/form-management/definitions/:id` | FormManagementController.remove | ✓ |  |
| engines/form | PUT | `/form-management/definitions/:id/design` | FormManagementController.saveDesign | ✓ |  |
| engines/form | PUT | `/form-management/definitions/:id/form-design` | FormManagementController.saveFormDesign | ✓ |  |
| engines/form | PUT | `/form-management/definitions/:id/process-design` | FormManagementController.saveProcessDesign | ✓ |  |
| engines/form | POST | `/form-management/definitions/:id/archive` | FormManagementController.archive | ✓ |  |
| engines/form | POST | `/form-management/definitions/:id/disable` | FormManagementController.disable | ✓ |  |
| engines/form | POST | `/form-management/definitions/:id/enable` | FormManagementController.enable | ✓ |  |
| engines/form | POST | `/form-management/instances` | InstanceController.create | ✓ |  |
| engines/form | PATCH | `/form-management/instances/:id` | InstanceController.updateInstance | ✓ |  |
| engines/form | POST | `/form-management/instances/:id/submit` | InstanceController.submitInstance | ✓ |  |
| engines/form | POST | `/form-management/instances/:id/withdraw` | InstanceController.withdrawInstance | ✓ |  |
| engines/form | DELETE | `/form-management/instances/:id` | InstanceController.deleteInstance | ✓ |  |
| engines/form | POST | `/form-management/definitions/:id/submit-review` | SnapshotController.submitReview | ✓ |  |
| engines/form | POST | `/form-management/snapshots/:snapshotId/review` | SnapshotController.review | ✓ |  |
| engines/form | POST | `/form-management/snapshots/:snapshotId/publish` | SnapshotController.publish | ✓ |  |
| engines/form | POST | `/form-management/snapshots/:snapshotId/rollback` | SnapshotController.rollback | ✓ |  |
| engines/form | POST | `/form-management/webhooks` | WebhookController.create | ✓ |  |
| engines/form | PATCH | `/form-management/webhooks/:id` | WebhookController.update | ✓ |  |
| engines/form | DELETE | `/form-management/webhooks/:id` | WebhookController.remove | ✓ |  |
| engines/form | POST | `/form-management/webhooks/:id/test` | WebhookController.sendTestEvent | ✓ |  |
| engines/form | POST | `/form-instances` | FormInstancesController.create | ✓ |  |
| engines/form | PATCH | `/form-instances/:instanceIdentifier` | FormInstancesController.update | ✓ |  |
| engines/form | POST | `/form-instances/:instanceIdentifier/submit` | FormInstancesController.submit | ✓ |  |
| engines/form | DELETE | `/form-instances/:instanceIdentifier` | FormInstancesController.remove | ✓ |  |
| engines/form | POST | `/form-instances/:instanceIdentifier/cancel` | FormInstancesController.cancel | ✓ |  |
| engines/form | POST | `/form-instances/:instanceIdentifier/restore` | FormInstancesController.restore | ✓ |  |
| engines/form | POST | `/form-instances/batch-update-status` | FormInstancesController.batchUpdateStatus | ✓ |  |
| engines/form | DELETE | `/form-instances/_batch/delete` | FormInstancesController.batchDelete | ✓ |  |
| engines/form | POST | `/form-instances/:instanceIdentifier/withdraw` | FormInstancesController.withdrawForm | ✓ |  |
| engines/form | POST | `/form-templates` | FormTemplatesController.create | ✓ |  |
| engines/form | PATCH | `/form-templates/:templateIdentifier` | FormTemplatesController.update | ✓ |  |
| engines/form | DELETE | `/form-templates/:templateIdentifier` | FormTemplatesController.remove | ✓ |  |
| engines/form | POST | `/form-templates/:templateIdentifier/create-form` | FormTemplatesController.createFormFromTemplate | ✓ |  |
| engines/form | PUT | `/forms/:formIdentifier/versions/:version/translations/:locale` | FormTranslationsController.upsert | ✓ |  |
| engines/form | DELETE | `/forms/:formIdentifier/versions/:version/translations/:locale` | FormTranslationsController.remove | ✓ |  |
| engines/form | POST | `/forms/:formIdentifier/versions/:version/translations/import` | FormTranslationsController.batchImport | ✓ |  |
| engines/form | POST | `/forms/:formIdentifier/versions` | FormVersionsController.create | ✓ |  |
| engines/form | PATCH | `/forms/:formIdentifier/versions/:version` | FormVersionsController.update | ✓ |  |
| engines/form | POST | `/forms/:formIdentifier/versions/:version/publish` | FormVersionsController.publish | ✓ |  |
| engines/form | POST | `/forms/:formIdentifier/versions/:version/deprecate` | FormVersionsController.deprecate | ✓ |  |
| engines/form | POST | `/forms/:formIdentifier/versions/_actions/set-default` | FormVersionsController.setDefault | ✓ |  |
| engines/form | DELETE | `/forms/:formIdentifier/versions/:version` | FormVersionsController.remove | ✓ |  |
| engines/form | POST | `/forms/:formIdentifier/versions/:version/submit-review` | FormVersionsController.submitForReview | ✓ |  |
| engines/form | POST | `/forms/:formIdentifier/versions/:version/review` | FormVersionsController.reviewVersion | ✓ |  |
| engines/form | POST | `/forms` | FormsController.create |  |  |
| engines/form | PATCH | `/forms/:formIdentifier` | FormsController.update |  |  |
| engines/form | DELETE | `/forms/:formIdentifier` | FormsController.remove | ✓ |  |
| engines/form | POST | `/forms/:formIdentifier/archive` | FormsController.archive |  |  |
| engines/form | POST | `/forms/:formIdentifier/unarchive` | FormsController.unarchive |  |  |
| engines/form | PATCH | `/forms/:formIdentifier/slug` | FormsController.updateSlug |  |  |
| engines/form | POST | `/forms/:formIdentifier/aliases` | FormsController.addAliases |  |  |
| engines/form | DELETE | `/forms/:formIdentifier/aliases/:alias` | FormsController.removeAlias |  |  |
| engines/form | POST | `/forms/:formIdentifier/publish` | FormsController.publish | ✓ |  |
| engines/form | DELETE | `/forms/_batch/delete` | FormsController.batchDelete | ✓ |  |
| engines/form | POST | `/forms/_batch/archive` | FormsController.batchArchive |  |  |
| engines/approval | POST | `/approval/start` | ApprovalController.startApproval |  |  |
| engines/approval | POST | `/approval/admin/sync` | ApprovalController.syncDefinitions | ✓ |  |
| engines/approval | POST | `/approval/:instanceId/approve` | ApprovalController.approve | ✓ |  |
| engines/approval | POST | `/approval/:instanceId/reject` | ApprovalController.reject | ✓ |  |
| engines/approval | POST | `/approval/:instanceId/return` | ApprovalController.return | ✓ |  |
| engines/approval | POST | `/approval/:instanceId/forward` | ApprovalController.forward |  |  |
| engines/approval | POST | `/approval/:instanceId/withdraw` | ApprovalController.withdraw |  |  |
| engines/approval | POST | `/approval/:instanceId/approver-withdraw` | ApprovalController.approverWithdraw | ✓ |  |
| engines/approval | POST | `/approval/:instanceId/add-sign` | ApprovalController.addSign | ✓ |  |
| engines/approval | POST | `/approval/:instanceId/claim` | ApprovalController.claim |  |  |
| engines/approval | POST | `/approval/:instanceId/unclaim` | ApprovalController.unclaim |  |  |
| engines/approval | POST | `/approval/:instanceId/execute` | ApprovalController.execute |  |  |
| core/messaging | POST | `/notifications/send` | NotificationController.send |  |  |
| core/messaging | POST | `/notifications/batch` | NotificationController.sendBatch |  |  |
| core/messaging | POST | `/notifications/:id/retry` | NotificationController.retry | ✓ |  |
| core/messaging | POST | `/notifications/templates` | NotificationController.createTemplate | ✓ |  |
| core/messaging | PUT | `/notifications/templates/:code` | NotificationController.updateTemplate | ✓ |  |
| core/messaging | DELETE | `/notifications/templates/:code` | NotificationController.deleteTemplate | ✓ |  |
| core/messaging | POST | `/notifications/templates/test-render` | NotificationController.testRender | ✓ |  |
| core/compute | POST | `/automation/tasks` | AutomationController.create | ✓ |  |
| core/compute | PATCH | `/automation/tasks/:id` | AutomationController.update | ✓ |  |
| core/compute | DELETE | `/automation/tasks/:id` | AutomationController.remove | ✓ |  |
| core/compute | POST | `/automation/tasks/:id/enable` | AutomationController.enable | ✓ |  |
| core/compute | POST | `/automation/tasks/:id/pause` | AutomationController.pause | ✓ |  |
| core/compute | POST | `/automation/tasks/:id/disable` | AutomationController.disable | ✓ |  |
| core/compute | POST | `/automation/tasks/:id/execute` | AutomationController.execute | ✓ |  |