The naming tool's metadata editor saves pre-upload overrides to the
override_metadata table (shared ferrero_tracking DB), but until now the
Python upload pipeline never read from it — every edit was being saved
but never applied to DAM. This wires up the consumer side so user edits
land on the uploaded asset.
- database.py: get_override_metadata() / mark_override_applied(),
resilient to a missing override_metadata table on dev DBs
- metadata_extractor_mvp.py: OVERRIDE_FIELD_MAP (mirrors the naming
tool's editor-field → DAM-field-ID map) + _apply_override_fields().
Applied after master/filename/forced/CreativeX values but before
asset_type_overrides so EOL/LTD compliance still wins. Empty editor
values are skipped (leaves inherited value alone). Validity ISO
dates normalised to MM/DD/YYYY for DAM
- a2_to_a3_upload_polling.py: lookup before building the asset rep,
pass override_fields into build_mvp_asset_representation, mark
applied only after confirmed upload success
Override priority: user edit > master metadata > forced defaults >
hardcoded today+365 validity — so the team's per-asset validity
period (e.g. 1 month) now flows through end-to-end.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>