From ddf6b28f396f5b72e8814e99e3b24a30dc279de8 Mon Sep 17 00:00:00 2001 From: notrogue Date: Sun, 27 Apr 2025 13:12:57 +0900 Subject: [PATCH] add description/columns to ModelNodeArgs so that plugins ingest them --- .changes/unreleased/Under the Hood-20250429-131931.yaml | 6 ++++++ core/dbt/contracts/graph/node_args.py | 5 ++++- core/dbt/contracts/graph/nodes.py | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 .changes/unreleased/Under the Hood-20250429-131931.yaml diff --git a/.changes/unreleased/Under the Hood-20250429-131931.yaml b/.changes/unreleased/Under the Hood-20250429-131931.yaml new file mode 100644 index 00000000000..e2ab7b5c80a --- /dev/null +++ b/.changes/unreleased/Under the Hood-20250429-131931.yaml @@ -0,0 +1,6 @@ +kind: Under the Hood +body: Add description/columns to external ExternalNode so that plugins ingest description/columns +time: 2025-04-29T13:19:31.737607807+09:00 +custom: + Author: toukoudo + Issue: "11527" diff --git a/core/dbt/contracts/graph/node_args.py b/core/dbt/contracts/graph/node_args.py index d402b0999d4..aa472b24dab 100644 --- a/core/dbt/contracts/graph/node_args.py +++ b/core/dbt/contracts/graph/node_args.py @@ -1,8 +1,9 @@ from dataclasses import dataclass, field from datetime import datetime, timezone -from typing import List, Optional +from typing import Dict, List, Optional from dbt.artifacts.resources import NodeVersion +from dbt.artifacts.resources.v1.components import ColumnInfo from dbt.node_types import AccessType, NodeType @@ -17,6 +18,8 @@ class ModelNodeArgs: version: Optional[NodeVersion] = None latest_version: Optional[NodeVersion] = None deprecation_date: Optional[datetime] = None + description: str = "" + columns: Dict[str, ColumnInfo] = field(default_factory=dict) access: Optional[str] = AccessType.Protected.value generated_at: datetime = field( default_factory=lambda: datetime.now(timezone.utc).replace(tzinfo=None) diff --git a/core/dbt/contracts/graph/nodes.py b/core/dbt/contracts/graph/nodes.py index 6ae96084f3a..2ee60f85808 100644 --- a/core/dbt/contracts/graph/nodes.py +++ b/core/dbt/contracts/graph/nodes.py @@ -507,6 +507,7 @@ def from_args(cls, args: ModelNodeArgs) -> "ModelNode": schema=args.schema, alias=args.identifier, deprecation_date=args.deprecation_date, + description=args.description, checksum=FileHash.from_contents(f"{unique_id},{args.generated_at}"), access=AccessType(args.access), original_file_path="", @@ -514,6 +515,7 @@ def from_args(cls, args: ModelNodeArgs) -> "ModelNode": unrendered_config=unrendered_config, depends_on=DependsOn(nodes=args.depends_on_nodes), config=ModelConfig(enabled=args.enabled), + columns=args.columns, ) @property