dataform_metabase_luzmo (Dataform → dataset dashboards)
Proyecto Dataform que construye tablas/vistas de negocio (saldos, pagos, límites) sobre datos de LoanPro y las materializa en
solvento-data-prod.dashboards. Proceso clave y muy usado: hace cálculos centrales de LoanPro (saldos de capital/intereses/moratorios, pagos a proveedor, límites) que alimentan dashboards de operación y negocio.
¿Qué es? (lo que realmente contiene el repo)
⚠️ El
README.mddel repo es boilerplate de GitLab (plantilla sin contenido propio). Esta ficha documenta el código real del repositorio, no el README.
dataform_metabase_luzmo es un proyecto Dataform (@dataform/core 3.0.0), no dbt. Su workflow_settings.yaml:
defaultProject: solvento-data-prod
defaultLocation: us
defaultDataset: dashboards
defaultAssertionDataset: dashboards_assertions
Es decir: lee de solvento-data-prod y escribe en el dataset solvento-data-prod.dashboards.
| Campo | Valor |
|---|---|
| Tipo | Infraestructura / transformación BI (Dataform) |
| Origen | solvento-data-prod.datastream_loanpro.* (LoanPro vía Datastream) |
| Destino | solvento-data-prod.dashboards.* |
| Tecnología | Dataform (.sqlx) — no dbt |
| Tag de refresh | dashboards_refresh |
| Orquestación | Dataform (workflow programado del propio Dataform en GCP) |
| Criticidad | 🔴 Alta — cálculos clave de LoanPro, muy consumidos |
Sobre el nombre "metabase_luzmo"
El nombre refleja a los consumidores: las tablas de dashboards alimentan los dashboards de Metabase y Luzmo. El repo no contiene la integración a esas herramientas (no hay API ni conectores) — es la capa de tablas que ellas leen desde solvento-data-prod.dashboards.
Qué construye (definiciones)
Las definiciones (definitions/*.sqlx) son modelos de saldos, pagos y límites para colaboradores, en pares snapshot (incremental, historiza por snapshot_ts) y latest (vista del último snapshot por entidad):
| Modelo | Tipo | Grano / clave |
|---|---|---|
saldos_v7_snapshot |
incremental (tag dashboards_refresh) |
por LoanId + UUID, particionado por DATE(snapshot_ts) |
saldos_v7_latest / saldos_v7_latest_v2 |
view / incremental | último snapshot por LoanId |
pagos_v11_colab_snapshot |
incremental (tag dashboards_refresh) |
por Tx_Id |
pagos_v11_colab_latest |
view | último snapshot por Tx_Id |
limites_colab_snapshot |
incremental (tag dashboards_refresh) |
por customer_id |
limites_colab_latest |
view | último por customer_id |
loanpro_sources.jsdeclara como fuentes 14 tablas de LoanPro (esquemaloanpro_shortensolvento-data-prod):loan_entity,loan_tx,payment_entity,customer_entity,line_of_credit_entity,line_of_credit_daily_archive, etc.- Los
.sqlxademás leen directamente desolvento-data-prod.datastream_loanpro.5202851_P_*(LoanPro replicado por Datastream):loan_status_archive,customer_entity,custom_field__entity,line_of_credit_*, etc. - Salidas con columnas de negocio en español:
Saldo_Capital,Saldo_Intereses,Saldo_Moratorios,Monto,Total_Pagado,LIMIT,available_credit,outstanding, etc.
Patrón snapshot + latest: el
snapshothistoriza el estado diario (incremental, particionado por fecha); ellatestexpone solo el último estado por entidad — pensado para que un dashboard lea "lo de hoy" sin recorrer todo el histórico.
Diagrama
graph LR
LP[("solvento-data-prod<br/>datastream_loanpro.* · loanpro_short.*")]
subgraph df["Dataform · dataform_metabase_luzmo"]
SNAP["*_snapshot.sqlx<br/><i>incremental · historiza</i>"]
LAT["*_latest.sqlx<br/><i>último por entidad</i>"]
end
DASH[("solvento-data-prod<br/>dashboards.*")]
BI["Metabase / Luzmo<br/>(dashboards de operación y negocio)"]
LP --> SNAP --> LAT --> DASH --> BI
classDef store fill:#bfdbfe,stroke:#1e40af,color:#000;
class LP,DASH store;
Cómo se ejecuta / orquesta
- Proyecto Dataform estándar (
package.jsoncon@dataform/core,workflow_settings.yaml). - Se orquesta con el propio Dataform (workflow programado en GCP) que ejecuta el tag
dashboards_refresh. No usa dbt Cloud ni scheduler externo.
Si falla 🛠️
Impacto: si el refresh no corre, las tablas dashboards.*saldos*/*pagos*/*limites* (saldos, pagos y límites de colaboradores) quedan desactualizadas y los dashboards que las leen muestran datos viejos.
| Síntoma | Dónde mirar | Acción |
|---|---|---|
| Dashboard de saldos/pagos/límites desactualizado | Última corrida del workflow Dataform (tag dashboards_refresh) |
Re-ejecutar el run; revisar qué .sqlx falló |
Assertion fallida (ej. uniqueKey en saldos_v7_latest_v2) |
dashboards_assertions |
Revisar duplicados en la fuente LoanPro |
| Datos faltantes aguas arriba | solvento-data-prod.datastream_loanpro.* (Datastream LoanPro) |
Si Datastream está atrasado, escalar la ingesta |
Escalación: lógica SQL / dashboards → Diego · resto → Martin.
Enlaces
- 📦 Repo:
dataform_metabase_luzmo(definitions/*.sqlx,workflow_settings.yaml) - 🗄️ Salida:
solvento-data-prod.dashboards.* - 🔗 Fuente LoanPro (Datastream) → ver la ficha de LoanPro / Datastream en el catálogo
Última actualización: 2026-06-21 · Confirmado: proceso clave, orquestado por el propio Dataform; consumido por Metabase/Luzmo desde dashboards.