Documentation

    InFlow and the semantic model

    6. Data integration (InFlow)

    InFlow is Inzata's visual data-integration tool. A flow is a pipeline of boxes: connectors to databases, SaaS applications, files and APIs, plus transformations and outputs. A trigger schedules flows or chains them.

    Flows and triggers are model objects (type: "flow" / type: "trigger"). You create and edit them through the model API and run them with the endpoints below.

    MethodPathDescription
    GET/projects/{project}/inflow/boxAvailable box types (connectors, transformations)
    GET/projects/{project}/inflow/box/{boxId}Definition of one box type
    GET/projects/{project}/inflow/flowlist?fullLoad=trueFlows with inputs/outputs and the last run's status
    POST/projects/{project}/kodiak/transform/executeRun a flow (MD Admin)
    POST/projects/{project}/kodiak/transform/stopStop a running flow: { "id": "<flowId>" }
    GET/projects/{project}/inflow/trigger/listTriggers with last/next run
    PUT/projects/{project}/inflow/trigger/toggleEnable/disable triggers: { "enabled": ["t1"], "disabled": ["t2"] }
    POST/projects/{project}/inflow/trigger/runRun a trigger once, now

    Run a flow and wait for the result

    HTTP

    POST /api/v1/projects/{project}/kodiak/transform/execute
    Content-Type: application/json
    
    { "type": "flow", "id": "daily_crm_import" }

    JSON

    { "link": [ { "rel": "scache", "id": "I_57_9f8e7d", "href": ".../kodiak/scache/obj/I_57_9f8e7d" } ] }

    Then poll GET .../kodiak/scache/obj/I_57_9f8e7d until status is OK or ERROR. Running the same flow while it is still running returns 403 This flow is already running.

    Trigger types

    TypeRuns when
    flowTimerOn a schedule
    flowSequenceAfter another flow finishes
    flowSftpFilechangeA file changes on an SFTP server
    flowWebdavFilechangeA file changes in project storage

    7. Semantic model

    The semantic model (metadata) describes your data in business terms. Every object has a type:

    TypeDescription
    attribute, label, factModel columns (created by data loads)
    metricBusiness calculation, e.g. Total Revenue
    filterReusable filter
    reportQuery with a layout (table or chart)
    dashboardDashboard
    folderOrganizes objects
    userroleGroup of users with access rights
    flow, trigger, credentialsData integration objects

    Objects

    MethodPathDescription
    GET/projects/{project}/pmd/obj?rel=object.metricList objects. Filter with rel=object.<type> (repeatable) or query=
    POST/projects/{project}/pmd/objCreate an object, or an array of up to 1000 (MD Admin)
    GET/projects/{project}/pmd/obj/{id}Get an object. Options: predecessors=1, successors=1 (dependency graph), history=1
    PUT/projects/{project}/pmd/obj/{id}Replace the object definition
    DELETE/projects/{project}/pmd/obj/{id}Delete an object
    GET/projects/{project}/pmd/obj/{id}/historyRevision history
    GET/projects/{project}/pmd/obj/{id}/history/{revision}The object at a given revision
    GET/projects/{project}/pmd/bulkobj?idents=a,b,c&keys=ident,name,defFetch many objects at once, optionally only some fields
    GET/projects/{project}/app/obj/search?query=...&params=name,type,descriptionSearch objects
    POST/projects/{project}/pmd/modifyfolderAdd/remove folder items: { "ident": "f1", "op": "add", "content": ["m1","d2"] }

    Object shape

    JSON

    {
      "ident": "rev_total",
      "type": "metric",
      "name": "Total Revenue",
      "description": "Sum of invoiced amounts",
      "def": { "...": "type-specific definition" },
      "acl": [ { "userrole": "sales_team", "acl": "Rw---" } ],
      "tag": ["sales"]
    }

    Model graphs and checks

    MethodPathDescription
    GET/projects/{project}/pmd/graph/ldmLogical data model (datasets, attributes, joins)
    GET/projects/{project}/pmd/graph/odmObject dependency graph
    GET/projects/{project}/pmd/check/modelModel consistency checks
    GET/projects/{project}/pmd/check/objObject consistency checks (missing dependencies, ...)

    Further reading

    Was this helpful?

    Contact support