Skip to main content

Output Configuration

This section describes how to configure output targets for Streams using two files:

  • object.json → declares the list of business objects Streams will build
  • project.json → defines where the created/updated objects are stored in the target system

These files live inside the project folder:

<project folder>/
├── project.json
└── config/
└── objects.json (sometimes named object.json)

1. objects.json

Purpose

Defines the set of business objects that Streams may create or update during processing.
Each object optionally declares variants allowing different behaviors per context.

Structure

{
"objects": [
{
"name": "<objectName>", // Required: identifier of the object
"title": "<displayLabel>", // Optional: human-readable label
"description": "<description>", // Optional: functional meaning
"variants": {
"category": "<variantGroup>", // Optional: classification key
"values": [
"<variantCode1>",
"<variantCode2>"
]
}
},
...
]
}

Field Definitions

FieldRequiredDescription
nameYesTechnical identifier of the object (referenced by create/update streams).
titleNoUser-facing label for UI or metadata displays.
descriptionNoShort explanation of the business meaning.
variantsNoAllows alternative representations per business case.
variants.categoryNoLabel grouping multiple variants into one context.
variants.values[]NoAllowed variant codes for this object (array).

Example:

{
"objects": [
{
"name": "customer",
"title": "Customer",
"description": "End-user purchasing products",
"variants": {
"category": "default",
"values": ["STD"]
}
},
{
"name": "order",
"title": "Order",
"description": "Customer order and order lines",
"variants": {
"category": "default",
"values": ["STD", "SHIPMENT"]
}
}
]
}

2. project.json

Purpose

Defines target storage locations in the database for both:

  • raw data extracted from source (data)
  • the objects built by Streams (model)

Structure

{
"data": {
"bucket": "<dataBucket>", // Target for stored raw/extracted data
"scope": "<dataScope>" // Logical grouping of raw tables/collections
},
"model": {
"bucket": "<modelBucket>", // Target bucket for object models
"scope": "<modelScope>", // Logical grouping of object collections
"collection": "<modelCollection>" // Where objects produced by streams are stored
}
}

Field Definitions

FieldRequiredDescription
data.bucketYesBucket where source/raw data is written.
data.scopeYesLogical scope grouping extracted stream data.
model.bucketYesBucket where Streams stores constructed object instances.
model.scopeYesLogical scope for target object models.
model.collectionYesName of the target collection/table receiving objects.

Example

{
"data": {
"bucket": "Raw",
"scope": "sourceData"
},
"model": {
"bucket": "Warehouse",
"scope": "businessObjects",
"collection": "customers"
}
}