diff --git a/.changes/unreleased/Fixes-20250128-135509.yaml b/.changes/unreleased/Fixes-20250128-135509.yaml new file mode 100644 index 00000000000..4ba96df354a --- /dev/null +++ b/.changes/unreleased/Fixes-20250128-135509.yaml @@ -0,0 +1,6 @@ +kind: Fixes +body: Loosen validation on freshness to accomodate previously wrong but harmless config. +time: 2025-01-28T13:55:09.318833-08:00 +custom: + Author: ChenyuLInx peterallenwebb + Issue: "11123" diff --git a/core/dbt/artifacts/resources/v1/model.py b/core/dbt/artifacts/resources/v1/model.py index aca176ad397..2a62665e4df 100644 --- a/core/dbt/artifacts/resources/v1/model.py +++ b/core/dbt/artifacts/resources/v1/model.py @@ -8,12 +8,11 @@ CompiledResource, DeferRelation, NodeVersion, - Time, ) from dbt.artifacts.resources.v1.config import NodeConfig from dbt_common.contracts.config.base import MergeBehavior from dbt_common.contracts.constraints import ModelLevelConstraint -from dbt_common.dataclass_schema import dbtClassMixin +from dbt_common.dataclass_schema import ExtensibleDbtClassMixin, dbtClassMixin @dataclass @@ -42,14 +41,14 @@ class ModelFreshnessDependsOnOptions(enum.Enum): @dataclass -class ModelBuildAfter(Time): +class ModelBuildAfter(ExtensibleDbtClassMixin): depends_on: ModelFreshnessDependsOnOptions = ModelFreshnessDependsOnOptions.any count: int = 0 period: TimePeriod = TimePeriod.hour @dataclass -class ModelFreshness(dbtClassMixin): +class ModelFreshness(ExtensibleDbtClassMixin): build_after: ModelBuildAfter = field(default_factory=ModelBuildAfter) diff --git a/schemas/dbt/manifest/v12.json b/schemas/dbt/manifest/v12.json index af7f5b2bd65..0be0a978588 100644 --- a/schemas/dbt/manifest/v12.json +++ b/schemas/dbt/manifest/v12.json @@ -4848,6 +4848,13 @@ "type": "object", "title": "ModelBuildAfter", "properties": { + "depends_on": { + "enum": [ + "all", + "any" + ], + "default": "any" + }, "count": { "type": "integer", "default": 0 @@ -4859,19 +4866,12 @@ "day" ], "default": "hour" - }, - "depends_on": { - "enum": [ - "all", - "any" - ], - "default": "any" } }, - "additionalProperties": false + "additionalProperties": true } }, - "additionalProperties": false + "additionalProperties": true }, { "type": "null" @@ -14817,6 +14817,13 @@ "type": "object", "title": "ModelBuildAfter", "properties": { + "depends_on": { + "enum": [ + "all", + "any" + ], + "default": "any" + }, "count": { "type": "integer", "default": 0 @@ -14828,19 +14835,12 @@ "day" ], "default": "hour" - }, - "depends_on": { - "enum": [ - "all", - "any" - ], - "default": "any" } }, - "additionalProperties": false + "additionalProperties": true } }, - "additionalProperties": false + "additionalProperties": true }, { "type": "null"