98 lines
3.3 KiB
Markdown
98 lines
3.3 KiB
Markdown
# 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.
|