refactor: rename safe and audit backend resources
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
# Task 2 Report: Safe and Audit Backend Rename
|
||||
|
||||
## Status
|
||||
|
||||
Task 2 is complete for the backend. The model exports, ORM table names, resource
|
||||
contracts, protected routes, approval workflow, dashboard query, and focused SQL
|
||||
tests now use the `safe_*` and `audit_*` names exclusively. No frontend
|
||||
resources, routes, or pages were changed.
|
||||
|
||||
## TDD Evidence
|
||||
|
||||
The existing Task 1 route and resource-contract tests provided the initial RED
|
||||
baseline. Before production changes, the backend focused suite failed because
|
||||
the `safe_*` and `audit_*` contracts/routes were missing while the legacy
|
||||
`saf_*` and `aud_*` routes remained registered.
|
||||
|
||||
The backend behavior tests were then updated first for the renamed model API,
|
||||
tables, request paths, and disposal relation. Running the focused suite again
|
||||
failed as expected with `models.SafeRule` undefined, in addition to the route
|
||||
contract failures. This confirmed the tests required the production rename.
|
||||
|
||||
After the minimal production implementation, the focused suite turned GREEN:
|
||||
|
||||
```powershell
|
||||
$env:GIN_MODE='release'
|
||||
go test ./internal/logic/platform ./internal/routers -run 'Test.*(Safe|Audit)' -v
|
||||
```
|
||||
|
||||
Result: exit code 0. All selected safe/audit logic and router tests passed.
|
||||
|
||||
## Implementation
|
||||
|
||||
- Renamed the seven model files and exports to:
|
||||
- `models.SafeRule`
|
||||
- `models.SafeEvent`
|
||||
- `models.SafeEventDisposal`
|
||||
- `models.SafeInspection`
|
||||
- `models.AuditApproval`
|
||||
- `models.AuditExportLog`
|
||||
- `models.AuditOperationLog`
|
||||
- Updated model comments while preserving the Chinese model and field
|
||||
descriptions.
|
||||
- Updated migration registrations and `TableName()` values to `safe_rule`,
|
||||
`safe_event`, `safe_event_disposal`, `safe_inspection`, `audit_approval`,
|
||||
`audit_export_log`, and `audit_operation_log`.
|
||||
- Renamed the disposal relation field, GORM column, JSON field, queries, and SQL
|
||||
expectations to `safe_event_identity`.
|
||||
- Renamed the safety and audit resource catalogue entries and protected routes,
|
||||
including the append-only safe-event disposal endpoints and the audit approval
|
||||
action.
|
||||
- Updated the audit workflow to persist to the renamed audit tables and record
|
||||
`audit_approval` as its object type.
|
||||
- Updated dashboard and resource behavior tests for the renamed tables and
|
||||
models.
|
||||
|
||||
No legacy aliases were retained. No table/data migration was added.
|
||||
|
||||
## Verification
|
||||
|
||||
From `backend/api`:
|
||||
|
||||
```powershell
|
||||
go test ./...
|
||||
```
|
||||
|
||||
Result: exit code 0; all Go packages passed.
|
||||
|
||||
```powershell
|
||||
go build ./cmd/main
|
||||
```
|
||||
|
||||
Result: exit code 0.
|
||||
|
||||
Production-only searches found no legacy model exports, `saf_`/`aud_` tokens, or
|
||||
legacy model filenames under `backend/api`. Negative assertions in backend tests
|
||||
intentionally retain the old public paths so regressions cannot reintroduce
|
||||
aliases.
|
||||
|
||||
From `frontend/platform_admin`:
|
||||
|
||||
```powershell
|
||||
node --test scripts/audit-check.test.mjs
|
||||
```
|
||||
|
||||
Result: expected exit code 1, with 6 passing and 1 failing test. The remaining
|
||||
failure is the Task 1 frontend rename contract assigned to Task 3. No frontend
|
||||
file was modified by this task.
|
||||
|
||||
`git diff --check` completed without whitespace errors.
|
||||
|
||||
## Concerns
|
||||
|
||||
- Deploying this backend before Task 3 would leave the current frontend calling
|
||||
the removed legacy resource paths. The coordinated frontend rename must ship
|
||||
with the backend contract change.
|
||||
- Historical `saf_*` and `aud_*` tables/data are intentionally not migrated or
|
||||
aliased, per the task constraint.
|
||||
Reference in New Issue
Block a user