Skip to content

feat(project): enforce path field on dlt-project runtimes via model validator #176

Description

@JesuFemi-O

Context

RuntimeEntry was added in #169 (T2-1). The path field is documented as only meaningful for dlt-project runtimes, but a type: dlt-project entry with no path currently parses cleanly and only fails later when something tries to resolve it.

Goal

Add a model_validator(mode="after") to RuntimeEntry that:

  • Requires path when type == "dlt-project"
  • Optionally rejects path when type is one of the cloud-managed types (fivetran, airbyte, estuary, dlt-managed) since it has no meaning there

Acceptance

  • A dlt-project entry with no path raises a ValidationError at parse time with a clear message
  • An unknown type: value is rejected (already enforced by Literal, but add a negative test to confirm)
  • pytest tests/test_project.py covers both paths with negative tests

Depends on

#169

Notes

Deferred from the #169 review — neither field is consumed anywhere in src/ yet so there is no user-facing exposure in the meantime.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: configtycoon.yml schema + config singletontype: taskIndividual implementation tasks

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions