feat: add raw artifact audit trail

This commit is contained in:
2026-06-24 09:38:15 +08:00
parent 6a17c9a336
commit a770070b34
12 changed files with 670 additions and 16 deletions

View File

@@ -46,6 +46,17 @@ PYTHONPATH=src python3 -m shanghai_housing validate-import \
通过时输出行数和模板名;失败时逐行返回错误信息。
## 原始文件指纹
导入前先计算文件指纹,用于登记 `audit.raw_artifacts` 并识别重复文件。
```bash
PYTHONPATH=src python3 -m shanghai_housing fingerprint-file \
--file docs/import_templates/area_monthly_metrics.csv
```
输出内容包含 `original_filename``raw_uri``sha256``size_bytes``mime_type`,可作为 `POST /api/v1/raw-artifacts` 的主要 payload。
## API 校验
```bash
@@ -72,3 +83,22 @@ curl -X POST http://127.0.0.1:8080/api/v1/imports/validate \
]
}'
```
## API 原始文件登记
```bash
curl -X POST http://127.0.0.1:8080/api/v1/raw-artifacts \
-H 'content-type: application/json' \
-d '{
"run_id": 1,
"source_id": 1,
"original_filename": "area_monthly_metrics.csv",
"raw_uri": "raw://sha256/<sha256>/area_monthly_metrics.csv",
"sha256": "<64-character-lowercase-sha256>",
"size_bytes": 2048,
"mime_type": "text/csv",
"uploaded_by": "researcher"
}'
```
同一个 `sha256` 重复登记时API 返回已有 artifact并可将新的导入批次关联到该 artifact。