E11-F2: Blacklist CSV Import¶
Epic: E11: Blacklist & Security
Size: S (Small)
Problem / Outcome¶
Bulk import blacklist entries from CSV.
Scope¶
In-Scope:
- CSV upload
- OIB validation (format and checksum)
- Duplicate detection (in file and database)
- Import with progress tracking
Out-of-Scope:
- Incremental import
Acceptance Criteria¶
- AC1: Valid CSV rows imported successfully
- AC2: Invalid OIB checksum flagged as error
- AC3: Duplicate OIBs (in file or DB) skipped
Data Model Impact¶
BlacklistImportBatch table:
- id (UUID, PK)
- file_name (VARCHAR)
- total_rows (INTEGER)
- successful_rows (INTEGER)
- failed_rows (INTEGER)
- duplicate_rows (INTEGER)
- error_report_json (JSONB)
- imported_by (UUID, FK)
- imported_at (TIMESTAMP)
CSV format:
- oib (required) - 11-digit Croatian personal ID
- first_name (optional)
- last_name (optional)
Permissions/Roles¶
- Admin (BLACKADMIN)
How to Verify¶
npm test -- --grep "blacklist CSV"
Expected: Valid rows imported, invalid reported.
Dependencies¶
Implementation Tasks¶
See E11: Blacklist ## Doc References Security Tasks
Doc References¶
Last Updated: January 2026