File Requirements & Validation
- Supported formats: csv (UTF-8), json (UTF-8), json.gz (UTF-8). Gzipped CSV (
.csv.gz) is not supported. - S3 key shape:
companyName_companyId/TYPE-SUBTYPE/filename.ext. - CSV specifics: Header row required. Delimiter must match the mapping config (
delimiter); if none is set, it defaults to a comma (,). Fields should not span multiple lines. - Encoding: UTF-8 only; no BOM(Byte Order Mark). (Header BOM is stripped if present, but avoid it.)
- Nulls & placeholders: Use empty cells for nulls. Reject/clean
NULL,N/A,-, or whitespace-only placeholders. - Schema expectations: A mapping config must exist for
company_id + file_type-subtype(defaults for community/user/resident/agent). Columns must match configured headers Data structure; extra/missing columns fail mapping. Portfolio ID must be present or derivable for non-default types. - Validation consistency: Column count must stay constant per row; use consistent line endings (
\nor\r\n). No control characters or embedded binaries/base64 blobs.
Pre-flight Checklist for Uploaders
- File extension is
.csv,.json, or.json.gz - UTF-8 encoding, no BOM
- Delimiter matches mapping config (or default comma if not configured)
- Nulls are empty cells (no
NULL/N/A/-) - Headers match the expected mapping; column count is consistent
- S3 key follows
companyName_companyId/TYPE-SUBTYPE/filename.ext

