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.
| Method | Path | Description |
|---|---|---|
| GET | /projects/{project}/inflow/box | Available box types (connectors, transformations) |
| GET | /projects/{project}/inflow/box/{boxId} | Definition of one box type |
| GET | /projects/{project}/inflow/flowlist?fullLoad=true | Flows with inputs/outputs and the last run's status |
| POST | /projects/{project}/kodiak/transform/execute | Run a flow (MD Admin) |
| POST | /projects/{project}/kodiak/transform/stop | Stop a running flow: { "id": "<flowId>" } |
| GET | /projects/{project}/inflow/trigger/list | Triggers with last/next run |
| PUT | /projects/{project}/inflow/trigger/toggle | Enable/disable triggers: { "enabled": ["t1"], "disabled": ["t2"] } |
| POST | /projects/{project}/inflow/trigger/run | Run 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
| Type | Runs when |
|---|---|
flowTimer | On a schedule |
flowSequence | After another flow finishes |
flowSftpFilechange | A file changes on an SFTP server |
flowWebdavFilechange | A file changes in project storage |
7. Semantic model
The semantic model (metadata) describes your data in business terms. Every object has a type:
| Type | Description |
|---|---|
attribute, label, fact | Model columns (created by data loads) |
metric | Business calculation, e.g. Total Revenue |
filter | Reusable filter |
report | Query with a layout (table or chart) |
dashboard | Dashboard |
folder | Organizes objects |
userrole | Group of users with access rights |
flow, trigger, credentials | Data integration objects |
Objects
| Method | Path | Description |
|---|---|---|
| GET | /projects/{project}/pmd/obj?rel=object.metric | List objects. Filter with rel=object.<type> (repeatable) or query= |
| POST | /projects/{project}/pmd/obj | Create 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}/history | Revision 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,def | Fetch many objects at once, optionally only some fields |
| GET | /projects/{project}/app/obj/search?query=...¶ms=name,type,description | Search objects |
| POST | /projects/{project}/pmd/modifyfolder | Add/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
| Method | Path | Description |
|---|---|---|
| GET | /projects/{project}/pmd/graph/ldm | Logical data model (datasets, attributes, joins) |
| GET | /projects/{project}/pmd/graph/odm | Object dependency graph |
| GET | /projects/{project}/pmd/check/model | Model consistency checks |
| GET | /projects/{project}/pmd/check/obj | Object consistency checks (missing dependencies, ...) |
Further reading
Was this helpful?
Contact support