Custom Integration Properties Reference
The Custom integration accepts observations for built-in Euno resource types and custom resource types registered for your account. Only a closed subset of Euno built-in properties may be set in each observation.
If an observation includes a property that is not listed below, the observation is skipped and counted in the run report as invalid.
For observation structure and upload flows, see Custom Integration and Handling High Volume of Observations.
Observation shape
Each observation is a JSON object with:
properties
Yes
Object containing type, name, and any optional supported properties below.
Example
{
"uri": "custom.analytics.customer_summary",
"properties": {
"type": "table",
"name": "customer_summary",
"description": "Aggregated customer metrics",
"database_technology": "snowflake",
"tags": ["analytics", "production"],
"meta": {
"owner": "data-team"
},
"explicit_additional_dependencies": [
"custom.analytics.raw_customers"
]
}
}Supported properties
type
Yes
string
Built-in Euno resource type such as table or column, or a custom type registered for your account such as campaign_view or cube_measure.
name
Yes
string
Display name of the resource.
description
No
string
Human-readable description of the resource.
raw_code
No
string
Raw SQL or other source code associated with the resource.
qualified_code
No
string
Code for the resource, fully qualified based on known column schemas and upstream tables.
tags
No
array of strings
Tags applied to the resource.
meta
No
object
Arbitrary key-value metadata (JSON object).
database_technology
No
string
Warehouse or database technology where the resource lives (for example snowflake, bigquery, redshift).
table_dependencies
No
array of strings
Upstream resource URIs for resource-level lineage on any type except table and column. Each entry must be a valid URI string. See Lineage properties.
explicit_additional_dependencies
No
array of strings
Upstream URIs for type: "table" and type: "column" only. On tables, merged into resource-level lineage; on columns, merged into field-level lineage. Do not use on other types. See Lineage properties.
upstream_fields
No
array of strings
Upstream field URIs for field-level lineage on field-like resources other than column (for example dbt_metric, dbt_dimension, snowflake_metric, snowflake_dimension, looker_measure, looker_dimension, omni_measure, omni_dimension). Each entry must be a valid URI string. Do not use on type: "column"; use explicit_additional_dependencies instead. See Lineage properties.
parent_container
No
string
URI of the parent container of the resource. Creates a has parent / has child relationship in the graph. The value must be a valid URI string.
parent_container_name
No
string
Display name of the parent container. Normally derived automatically from the parent's name once the parent is observed; setting it directly on the child is only useful when the parent observation lags or is omitted.
container_chain
No
array of objects
Ancestry of the resource from immediate parent outward. Each element is a {uri, name, native_type, normalized_type} object.
Required properties on every observation
Every observation must include both type and name in its properties object. Observations missing either property are skipped and reported in the run report.
Observations with allowed properties but invalid values (for example a malformed icon_url, or tags provided as a string instead of an array) are also skipped and counted as invalid.
Custom resource types must be registered before observations use them. Built-in types such as table and column do not need registration. If an observation uses an unregistered custom type, Euno skips that observation and records the unknown type in the run report. Register custom types with POST /accounts/YOUR_ACCOUNT_ID/resource_types before sending observations.
Lineage properties
Custom integration supports three lineage input properties. Which one to use depends on the resource type and whether the lineage is resource-level or field-level:
Resource type
Lineage kind
Property to set
Relationship created in Euno
table
Resource-level
explicit_additional_dependencies
has upstream
column
Field-level
explicit_additional_dependencies
has upstream_fields
Any other type (for example campaign_view, acme_transform_script)
Resource-level
table_dependencies
has upstream
Any field-like type other than column (for example dbt_metric, dbt_dimension, snowflake_metric, snowflake_dimension, looker_measure, looker_dimension, omni_measure, omni_dimension)
Field-level
upstream_fields
has upstream_fields
Rules
explicit_additional_dependenciesβ use only ontableandcolumn. On tables, do not usetable_dependencies; it will not persist as lineage.table_dependenciesβ use on every other type for resource-level lineage. Do not useexplicit_additional_dependencieson other types; it is stored but does not create lineage edges.upstream_fieldsβ use for field-level lineage on field-like types other thancolumn. Fortype: "column", useexplicit_additional_dependenciesinstead β Euno recomputesupstream_fieldsfor column-typed resources fromexplicit_additional_dependencies(and inferred code-based column dependencies), so a value set directly on a column would be overwritten.
For relationship semantics in Euno, see Relationships.
explicit_additional_dependencies
explicit_additional_dependenciesUse only when type is table or column:
table_dependencies
table_dependenciesUse when type is anything other than table or column and you want resource-level lineage:
upstream_fields
upstream_fieldsUse on field-like types other than column to declare field-level lineage directly:
Parent/child relationships
Use parent_container to attach a resource to its parent in the graph. The parent itself must also be observed (in the same run or a previous one) so the edge can resolve. container_chain optionally captures the ancestry from the immediate parent outward, as a list of {uri, name, native_type, normalized_type} objects.
Example β a dbt_metric child observation, the semantic_model parent observation, and the ancestry:
Notes:
parent_container_nameis normally derived automatically from the parent'snameonce the parent is observed; supply it directly on the child only when the parent observation lags or is omitted.Every entry in
container_chainmust include all four keys (uri,name,native_type,normalized_type); theurimust be a valid URI. Malformed entries cause the whole observation to be skipped and reported in the run report.
Custom type icons
Use icon_url to supply a custom icon for resources whose type is not a built-in Euno resource type (for example acme_transform_script).
Requirements:
The URL must use
http://orhttps://and be at most 2048 characters.For the icon to render in the Euno UI, the URL path should end with a common image extension such as
.svg,.png,.jpg,.gif, or.webp.Host the image at a URL your Euno users can reach (public HTTPS is typical).
table,database, anddatabase_schemaresources use the warehouse icon fromdatabase_technologyinstead oficon_url.
Set icon_url on each resource that should display the icon (typically every resource of the same custom type uses the same URL).
Related documentation
Last updated