Execution engine

Elements: documentatiehub

Elements zijn Python bouwblokken binnen Dashview. Deze hub splitst de documentatie in twee detailreferenties: editor/filebeheer en runtime/execution.

1. End-to-end workflow

  1. Maak element aan met ID, naam, kind en entrypoint.
  2. Voeg code/files toe en stel requirements/pythonVersion in.
  3. Save draft en publiceer een nieuwe version.
  4. Configureer runtime vars/secrets.
  5. Gebruik Test execute en controleer execution logs.
  6. Koppel element aan datasource connector of Autoflow nodes.
Elements overzicht
Elements overzicht met publish, versions, execute en logs.
Element editor
Editor voor velden, files en requirements.

2. Detailreferenties

Runtime & execution reference

Publish/versioning, runtime vars/secrets, test execute payloads en logvelden.

Open runtime reference →

3. Integratie met datasources en flows

4. Element contract voor datasource transforms

Input in run(context, params)

  • params.rows: inputdataset van de huidige transformstap.
  • params.transformParams: transformconfig uit de datasource.
  • context: tenant/element/version metadata.

Return value

  • Return altijd een lijst met rows (array van objecten).
  • Vermijd tuple-output als eindresultaat; connector verwacht rows.
  • Als interne helper (rows, info) geeft, return je alleen rows.

Voorbeeld transform-wrapper

def run(context, params):
    rows = params.get(\"rows\") or []
    transform_params = params.get(\"transformParams\") or {}

    result = predict_session_pattern_trend(rows, transform_params)
    if isinstance(result, tuple) and len(result) == 2:
      return result[0]  # alleen rows teruggeven
    return result

5. Code voorbeelden

Voorbeeld A: run(params)

def run(params):
    limit = int(params.get(\"limit\", 5))
    country = params.get(\"country\", \"NL\")
    rows = []
    for i in range(limit):
        rows.append({
            \"rank\": i + 1,
            \"country\": country,
            \"value\": (i + 1) * 100
        })
    return rows

Voorbeeld B: run(context, params)

def run(context, params):
    tenant_id = context.get(\"tenantId\")
    element_id = context.get(\"elementId\")
    return [{
        \"tenantId\": tenant_id,
        \"elementId\": element_id,
        \"echo\": params
    }]

Voorbeeld C: runtime vars en secrets

def run(params):
    api_key = getSecret(\"external_api_key\")
    if not api_key:
        raise ValueError(\"Missing runtime secret: external_api_key\")

    cursor = int(getVar(\"sync_cursor\", 0) or 0)
    batch_size = int(params.get(\"batchSize\", 3))
    rows = []
    for index in range(batch_size):
        rows.append({\"cursor\": cursor + index, \"source\": \"element\"})
    setVar(\"sync_cursor\", cursor + batch_size)
    return rows