Ingests
In HEAT, an Ingest is a managed endpoint that triggers the creation or augmentation of a Session. By sending data (e.g., a file, JSON payload, or CSV) to an Ingest’s URL, you begin the data-processing workflow defined by a specified Session Template in a particular Project.
How Ingests Work
-
Programmatic Endpoint
An Ingest provides an HTTP endpoint (/ingest/...) that you can POST data to. You can define a custom URL suffix for clarity (e.g.,/ingest/my-simulator), but all Ingests reside under the/ingest/prefix. -
Session Creation or Augmentation
When you post data to this endpoint, HEAT automatically:- Creates a Session based on the assigned Session Template if no existing session is found.
- Inserts your submitted payload into the input node specified by the template.
- Optionally updates an existing Session if you’ve configured the Ingest to group multiple data uploads into a single Session.
-
Data Pipeline Kickstart
Once the payload is placed into the designated input node, HEAT begins executing the data-processing pipeline (DAG) specified in the chosen Session Template. This includes any transformations, analytics, or validation steps defined by the workflow.
Creating and Configuring an Ingest
Creation Methods
- Cluster Manager
Use the Cluster Manager’s GUI to create a new Ingest. Specify a desired endpoint path, target Project, Session Template, and input node. - HEAT API
Programmatically create Ingests via the HEAT API. This approach allows automated setup or dynamic provisioning when new integrations come online.
Required Settings
- Project & Session Template
Each Ingest must be tied to a single Project and Session Template. These define where and how incoming data is processed. - Input Node
Identify which node in the Session Template will receive the uploaded data. This node is typically configured to parse CSV, JSON, or handle binary files.
Data Format Rules
- Payload Type
You can configure each Ingest to accept:- Any Data: Files of any type are accepted.
- JSON Only: Strictly JSON payloads.
- CSV Only: Strictly CSV files.
- Anonymous or Keyed Access
- Anonymous: No authentication required, allowing any client to POST data.
- Secret Key: The request must include a designated key for security. This helps ensure only authorized clients can trigger sessions.
Session Augmentation
Ingests can optionally be configured to append data to an existing session if certain conditions are met (e.g., matching an identifier or session tag). This is useful when multiple data files combine to form a single training session, or when data arrives incrementally.
Usage Example
-
Create an Ingest
Through Cluster Manager or the API, define an endpoint such as/ingest/my-sim. Map it to:- Project: DefaultProject
- Session Template: MySimulationTemplate
- Input Node: RawDataNode
-
Send Data
Use a tool likecurlto post a JSON or CSV payload:curl -X POST -H "Content-Type: application/json" \ -d '{"playerID":1234, "actions":[...]}' https://heat.example.com/ingest/my-sim