Skip to content

models: strip minLength and maxLength from relaxed write schema#2822

Merged
jshearer merged 1 commit intomasterfrom
jshearer/strip_length_from_relaxed_schema
Mar 31, 2026
Merged

models: strip minLength and maxLength from relaxed write schema#2822
jshearer merged 1 commit intomasterfrom
jshearer/strip_length_from_relaxed_schema

Conversation

@jshearer
Copy link
Copy Markdown
Contributor

@jshearer jshearer commented Mar 31, 2026

Connectors emit maxLength constraints reflecting source column sizes. When these constraints pass through to flow://relaxed-write-schema and intersect with the inferred schema via allOf, the most restrictive bound wins. This causes materialization validation failures when transformations like SHA-256 redaction produce values longer than the original column limit.

  • Add minLength and maxLength to RelaxedSchemaObj's stripped keyword set, matching the existing pattern for type, required, format, const, and enum

Part of #2818

Connectors emit `maxLength` constraints reflecting source column sizes. When these constraints pass through to `flow://relaxed-write-schema` and intersect with the inferred schema via `allOf`, the most restrictive bound wins. This causes materialization validation failures when transformations like SHA-256 redaction produce values longer than the original column limit.

* Add `minLength` and `maxLength` to `RelaxedSchemaObj`'s stripped keyword set, matching the existing pattern for `type`, `required`, `format`, `const`, and `enum`
* Add `maxLength` to the test fixture and a focused unit test

Part of #2818
@jshearer jshearer requested a review from a team March 31, 2026 14:44
@jshearer jshearer self-assigned this Mar 31, 2026
@jshearer jshearer merged commit 92a6ccc into master Mar 31, 2026
11 checks passed
github-actions Bot pushed a commit to estuary/homebrew-flowctl that referenced this pull request Apr 14, 2026
This releases the new Target Naming setting on materializations, in addition to a couple of other smaller changes that impact `flowctl`:

---
* models: strip `minLength` and `maxLength` from relaxed write schema by @jshearer in estuary/flow#2822
* models,ops: add a task `flags` mechanism for runtime feature flags by @jgraettinger in estuary/flow#2786
* Shuffle v2: disk-backed log pipeline with zero-copy combiner pass-through by @jgraettinger in estuary/flow#2778
* discovers: replace invalid collection keys with discovered fallback keys by @jshearer in estuary/flow#2808
* Update default agent API URL to api.estuary.dev by @skord in estuary/flow#2825
* Target naming phase 1 by @jshearer in estuary/flow#2809
github-actions Bot pushed a commit to estuary/homebrew-flowctl that referenced this pull request Apr 14, 2026
This releases the new Target Naming setting on materializations, in addition to a couple of other smaller changes that impact `flowctl`:

---
* models: strip `minLength` and `maxLength` from relaxed write schema by @jshearer in estuary/flow#2822
* models,ops: add a task `flags` mechanism for runtime feature flags by @jgraettinger in estuary/flow#2786
* Shuffle v2: disk-backed log pipeline with zero-copy combiner pass-through by @jgraettinger in estuary/flow#2778
* discovers: replace invalid collection keys with discovered fallback keys by @jshearer in estuary/flow#2808
* Update default agent API URL to api.estuary.dev by @skord in estuary/flow#2825
* Target naming phase 1 by @jshearer in estuary/flow#2809
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants