Brightmarket Sync Guide

Estructura del proyecto

Archivos de tu proyecto cliente y qué debés implementar en cada uno.

Tu proyecto cliente sigue esta estructura. Cada página de esta sección explica qué implementar en un archivo concreto de tu repositorio.

brightmarket-<tu-org>-sync/
├── .env.example
├── login_aws.env.example
├── requirements.txt
├── scripts/
│   ├── auth-pip.sh
│   ├── auth-pip-win.ps1
│   ├── auth-pip-win.cmd
│   ├── print-codeartifact-token.sh
│   └── print-codeartifact-token-win.ps1
├── .github/workflows/build.yml   # opcional
└── src/
    ├── main.py
    ├── sync_registry.py
    ├── db.py
    ├── adapter.py
    ├── constants.py
    └── transforms/          # opcional: lógica específica del cliente
        └── ...

Capas

CapaArchivoRol
SDK (pip)Login HTTP, sync y escritura en la API
Adaptersrc/adapter.pyLee tu fuente de datos (get_*)
Constantssrc/constants.pyField maps (*_FIELD_MAP) y value maps (*_MAPPING)
Transformssrc/transforms/Enrichment propio del cliente (nombres, IDs, parsing) antes del sync
Registrysrc/sync_registry.pyConecta adapter + constants al runner del SDK
CLIsrc/main.pyWrapper que delega en el SDK

No necesitás src/sync/*.py. El SDK (brightmarket_data_sync.sync) agrupa filas, arma payloads y llama writers.

Buena práctica: src/transforms/

Mantené la raíz de src/ solo para el cableado del SDK (adapter, constants, sync_registry, main, db). Si necesitás reglas de negocio propias del cliente (por ejemplo enriquecer el name/externalId de una promoción con fechas), ponelas en src/transforms/ y llámálas desde el adapter antes de devolver las filas. No pongas writers ni orquestación de sync ahí.

Páginas de referencia

Contrato de filas y sync del SDK: Referencia del SDK.

On this page