Skip to content

OutputsConfig

relationalai.config.config_fields

Settings for individual outputs (tables and relations) that your model produces.

This allows you to customize how specific outputs are computed. Each setting is a map keyed by the output’s name. Names follow Snowflake rules: unquoted names match case-insensitively (cancel_chain matches CANCEL_CHAIN); to match a quoted Snowflake identifier — one with special characters or that preserves case — wrap the key in double quotes (e.g. '"My.Table"').

outputs:
force_reasoner:
recursive_closure: logic
cancel_chain_root: sql
materialization_default: table
force_materialization:
customer_summary: view
big_join_result: table
streaming_agg: dynamic_table
OutputsConfig.force_reasoner: (dict[str, str], optional)

Pick which reasoner — "sql" or "logic" — computes specific outputs. When two relations are mutually recursive, naming either one moves the whole cycle.

Advanced option. Only force outputs that the target reasoner can actually compute. Incompatible forcings will surface as a runtime error at refresh time rather than at config load.

OutputsConfig.materialization_default: (str, optional)

Default materialization for outputs (Snowflake only) when no per-output override is set in force_materialization. Values: "dynamic_table" (default), "table", or "view".

OutputsConfig.force_materialization: (dict[str, str], optional)

Per-output materialization override (Snowflake only), keyed by the unqualified output table name. Values: "dynamic_table", "table", or "view". Outputs not listed use materialization_default. Ignored on DuckDB.

OutputsConfigpydantic.BaseModel