Skip to content

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.md del 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.js declara como fuentes 14 tablas de LoanPro (esquema loanpro_short en solvento-data-prod): loan_entity, loan_tx, payment_entity, customer_entity, line_of_credit_entity, line_of_credit_daily_archive, etc.
  • Los .sqlx además leen directamente de solvento-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 snapshot historiza el estado diario (incremental, particionado por fecha); el latest expone 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.json con @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.