Skip to content

Commit 541dea0

Browse files
mdesmetclaude
andcommitted
fix: change pydantic extra fields from forbid to allow in manifest parsers
Allow extra fields in all manifest parser models to prevent validation errors when dbt manifests contain fields not defined in the schema. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 739d9b0 commit 541dea0

File tree

12 files changed

+653
-653
lines changed

12 files changed

+653
-653
lines changed

src/vendor/dbt_artifacts_parser/parsers/manifest/manifest_v1.py

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
class ManifestMetadata(BaseParserModel):
2020
model_config = ConfigDict(
21-
extra="forbid",
21+
extra="allow",
2222
)
2323
dbt_schema_version: Optional[str] = "https://schemas.getdbt.com/dbt/manifest/v1.json"
2424
dbt_version: Optional[str] = "0.19.0"
@@ -39,15 +39,15 @@ class ResourceType(Enum):
3939

4040
class FileHash(BaseParserModel):
4141
model_config = ConfigDict(
42-
extra="forbid",
42+
extra="allow",
4343
)
4444
name: str
4545
checksum: str
4646

4747

4848
class Hook(BaseParserModel):
4949
model_config = ConfigDict(
50-
extra="forbid",
50+
extra="allow",
5151
)
5252
sql: str
5353
transaction: Optional[bool] = True
@@ -56,7 +56,7 @@ class Hook(BaseParserModel):
5656

5757
class DependsOn(BaseParserModel):
5858
model_config = ConfigDict(
59-
extra="forbid",
59+
extra="allow",
6060
)
6161
macros: Optional[list[str]] = []
6262
nodes: Optional[list[str]] = []
@@ -76,14 +76,14 @@ class ColumnInfo(BaseParserModel):
7676

7777
class Docs(BaseParserModel):
7878
model_config = ConfigDict(
79-
extra="forbid",
79+
extra="allow",
8080
)
8181
show: Optional[bool] = True
8282

8383

8484
class InjectedCTE(BaseParserModel):
8585
model_config = ConfigDict(
86-
extra="forbid",
86+
extra="allow",
8787
)
8888
id: str
8989
sql: str
@@ -131,7 +131,7 @@ class ResourceType5(Enum):
131131

132132
class TestMetadata(BaseParserModel):
133133
model_config = ConfigDict(
134-
extra="forbid",
134+
extra="allow",
135135
)
136136
namespace: Optional[str] = None
137137
name: str
@@ -176,7 +176,7 @@ class ResourceType9(Enum):
176176

177177
class ParsedDataTestNode(BaseParserModel):
178178
model_config = ConfigDict(
179-
extra="forbid",
179+
extra="allow",
180180
)
181181
raw_sql: str
182182
database: Optional[str] = None
@@ -243,7 +243,7 @@ class ResourceType13(Enum):
243243

244244
class ParsedSchemaTestNode(BaseParserModel):
245245
model_config = ConfigDict(
246-
extra="forbid",
246+
extra="allow",
247247
)
248248
raw_sql: str
249249
test_metadata: TestMetadata
@@ -300,7 +300,7 @@ class ResourceType14(Enum):
300300

301301
class ParsedSeedNode(BaseParserModel):
302302
model_config = ConfigDict(
303-
extra="forbid",
303+
extra="allow",
304304
)
305305
raw_sql: str
306306
database: Optional[str] = None
@@ -445,7 +445,7 @@ class ResourceType16(Enum):
445445

446446
class Quoting(BaseParserModel):
447447
model_config = ConfigDict(
448-
extra="forbid",
448+
extra="allow",
449449
)
450450
database: Optional[bool] = None
451451
schema_: Optional[bool] = Field(None, alias="schema")
@@ -455,7 +455,7 @@ class Quoting(BaseParserModel):
455455

456456
class FreshnessMetadata(BaseParserModel):
457457
model_config = ConfigDict(
458-
extra="forbid",
458+
extra="allow",
459459
)
460460
dbt_schema_version: Optional[str] = "https://schemas.getdbt.com/dbt/sources/v1.json"
461461
dbt_version: Optional[str] = "0.19.0"
@@ -470,7 +470,7 @@ class Status(Enum):
470470

471471
class SourceFreshnessRuntimeError(BaseParserModel):
472472
model_config = ConfigDict(
473-
extra="forbid",
473+
extra="allow",
474474
)
475475
unique_id: str
476476
error: Optional[Union[str, int]] = None
@@ -492,7 +492,7 @@ class Period(Enum):
492492

493493
class Time(BaseParserModel):
494494
model_config = ConfigDict(
495-
extra="forbid",
495+
extra="allow",
496496
)
497497
count: int
498498
period: Period
@@ -521,14 +521,14 @@ class ResourceType17(Enum):
521521

522522
class MacroDependsOn(BaseParserModel):
523523
model_config = ConfigDict(
524-
extra="forbid",
524+
extra="allow",
525525
)
526526
macros: Optional[list[str]] = []
527527

528528

529529
class MacroArgument(BaseParserModel):
530530
model_config = ConfigDict(
531-
extra="forbid",
531+
extra="allow",
532532
)
533533
name: str
534534
type: Optional[str] = None
@@ -537,7 +537,7 @@ class MacroArgument(BaseParserModel):
537537

538538
class ParsedDocumentation(BaseParserModel):
539539
model_config = ConfigDict(
540-
extra="forbid",
540+
extra="allow",
541541
)
542542
unique_id: str
543543
package_name: str
@@ -578,7 +578,7 @@ class Maturity(Enum):
578578

579579
class ExposureOwner(BaseParserModel):
580580
model_config = ConfigDict(
581-
extra="forbid",
581+
extra="allow",
582582
)
583583
email: str
584584
name: Optional[str] = None
@@ -605,7 +605,7 @@ class NodeConfig(BaseParserModel):
605605

606606
class CompiledDataTestNode(BaseParserModel):
607607
model_config = ConfigDict(
608-
extra="forbid",
608+
extra="allow",
609609
)
610610
raw_sql: str
611611
compiled: bool
@@ -661,7 +661,7 @@ class CompiledDataTestNode(BaseParserModel):
661661

662662
class CompiledModelNode(BaseParserModel):
663663
model_config = ConfigDict(
664-
extra="forbid",
664+
extra="allow",
665665
)
666666
raw_sql: str
667667
compiled: bool
@@ -716,7 +716,7 @@ class CompiledModelNode(BaseParserModel):
716716

717717
class CompiledHookNode(BaseParserModel):
718718
model_config = ConfigDict(
719-
extra="forbid",
719+
extra="allow",
720720
)
721721
raw_sql: str
722722
compiled: bool
@@ -772,7 +772,7 @@ class CompiledHookNode(BaseParserModel):
772772

773773
class CompiledRPCNode(BaseParserModel):
774774
model_config = ConfigDict(
775-
extra="forbid",
775+
extra="allow",
776776
)
777777
raw_sql: str
778778
compiled: bool
@@ -827,7 +827,7 @@ class CompiledRPCNode(BaseParserModel):
827827

828828
class CompiledSchemaTestNode(BaseParserModel):
829829
model_config = ConfigDict(
830-
extra="forbid",
830+
extra="allow",
831831
)
832832
raw_sql: str
833833
test_metadata: TestMetadata
@@ -885,7 +885,7 @@ class CompiledSchemaTestNode(BaseParserModel):
885885

886886
class CompiledSeedNode(BaseParserModel):
887887
model_config = ConfigDict(
888-
extra="forbid",
888+
extra="allow",
889889
)
890890
raw_sql: str
891891
compiled: bool
@@ -941,7 +941,7 @@ class CompiledSeedNode(BaseParserModel):
941941

942942
class CompiledSnapshotNode(BaseParserModel):
943943
model_config = ConfigDict(
944-
extra="forbid",
944+
extra="allow",
945945
)
946946
raw_sql: str
947947
compiled: bool
@@ -996,7 +996,7 @@ class CompiledSnapshotNode(BaseParserModel):
996996

997997
class ParsedAnalysisNode(BaseParserModel):
998998
model_config = ConfigDict(
999-
extra="forbid",
999+
extra="allow",
10001000
)
10011001
raw_sql: str
10021002
database: Optional[str] = None
@@ -1046,7 +1046,7 @@ class ParsedAnalysisNode(BaseParserModel):
10461046

10471047
class ParsedHookNode(BaseParserModel):
10481048
model_config = ConfigDict(
1049-
extra="forbid",
1049+
extra="allow",
10501050
)
10511051
raw_sql: str
10521052
database: Optional[str] = None
@@ -1097,7 +1097,7 @@ class ParsedHookNode(BaseParserModel):
10971097

10981098
class ParsedModelNode(BaseParserModel):
10991099
model_config = ConfigDict(
1100-
extra="forbid",
1100+
extra="allow",
11011101
)
11021102
raw_sql: str
11031103
database: Optional[str] = None
@@ -1147,7 +1147,7 @@ class ParsedModelNode(BaseParserModel):
11471147

11481148
class ParsedRPCNode(BaseParserModel):
11491149
model_config = ConfigDict(
1150-
extra="forbid",
1150+
extra="allow",
11511151
)
11521152
raw_sql: str
11531153
database: Optional[str] = None
@@ -1197,7 +1197,7 @@ class ParsedRPCNode(BaseParserModel):
11971197

11981198
class ParsedSnapshotNode(BaseParserModel):
11991199
model_config = ConfigDict(
1200-
extra="forbid",
1200+
extra="allow",
12011201
)
12021202
raw_sql: str
12031203
database: Optional[str] = None
@@ -1229,7 +1229,7 @@ class ParsedSnapshotNode(BaseParserModel):
12291229

12301230
class FreshnessThreshold(BaseParserModel):
12311231
model_config = ConfigDict(
1232-
extra="forbid",
1232+
extra="allow",
12331233
)
12341234
warn_after: Optional[Time] = None
12351235
error_after: Optional[Time] = None
@@ -1238,7 +1238,7 @@ class FreshnessThreshold(BaseParserModel):
12381238

12391239
class SourceFreshnessOutput(BaseParserModel):
12401240
model_config = ConfigDict(
1241-
extra="forbid",
1241+
extra="allow",
12421242
)
12431243
unique_id: str
12441244
max_loaded_at: datetime
@@ -1262,7 +1262,7 @@ class ExternalTable(BaseParserModel):
12621262

12631263
class ParsedMacro(BaseParserModel):
12641264
model_config = ConfigDict(
1265-
extra="forbid",
1265+
extra="allow",
12661266
)
12671267
unique_id: str
12681268
package_name: str
@@ -1283,7 +1283,7 @@ class ParsedMacro(BaseParserModel):
12831283

12841284
class ParsedExposure(BaseParserModel):
12851285
model_config = ConfigDict(
1286-
extra="forbid",
1286+
extra="allow",
12871287
)
12881288
fqn: list[str]
12891289
unique_id: str
@@ -1305,7 +1305,7 @@ class ParsedExposure(BaseParserModel):
13051305

13061306
class CompiledAnalysisNode(BaseParserModel):
13071307
model_config = ConfigDict(
1308-
extra="forbid",
1308+
extra="allow",
13091309
)
13101310
raw_sql: str
13111311
compiled: bool
@@ -1360,7 +1360,7 @@ class CompiledAnalysisNode(BaseParserModel):
13601360

13611361
class ParsedSourceDefinition(BaseParserModel):
13621362
model_config = ConfigDict(
1363-
extra="forbid",
1363+
extra="allow",
13641364
)
13651365
fqn: list[str]
13661366
database: Optional[str] = None
@@ -1395,7 +1395,7 @@ class ParsedSourceDefinition(BaseParserModel):
13951395

13961396
class ManifestV1(BaseParserModel):
13971397
model_config = ConfigDict(
1398-
extra="forbid",
1398+
extra="allow",
13991399
)
14001400
metadata: ManifestMetadata = Field(..., description="Metadata about the manifest")
14011401
nodes: dict[

0 commit comments

Comments
 (0)