Skip to content

do-not-merge: fix(file-based): satisfy Form UX checks in shared file-based spec - #1258

Draft
Aaron ("AJ") Steers (aaronsteers) wants to merge 2 commits into
mainfrom
devin/1793391678-form-ux-file-based-spec
Draft

Aaron ("AJ") Steers (aaronsteers) wants to merge 2 commits into
mainfrom
devin/1793391678-form-ux-file-based-spec

Conversation

@aaronsteers

Copy link
Copy Markdown
Member

Caution

Do not merge. This is a demo PR. It shows what the shared file-based spec needs in order to pass the proposed Form UX checks (UX-01–UX-12) from airbyte-ops-mcp#1531, which are defined by the handbook rewrite in airbyte#89600. Requested by Aaron ("AJ") Steers (@aaronsteers).

Summary

Most Form UX findings on file-based sources come from fields the CDK owns, not the connector: start_date, delivery_method, streams[] and the format options. This PR fixes them in airbyte_cdk/sources/file_based/config/*. #1531 only gates manifest-only connectors, so the same FormUxCheck.find() rules were run directly against each connector's emitted spec.

Results with this branch installed (CDK 7.43.0.post3.dev0+a62f297e), alongside the connector PRs:

Connector master Connector PR only Connector PR + this CDK branch
source-google-drive 61 52 0
source-s3 61 52 1 (connector-owned Delivery Method title override, fixed in the connector PR)

Connector PRs: airbyte#90265 (source-google-drive), airbyte#90266 (source-s3).

Commits:

  • dd6a800b: non-breaking changes. Sentence-case titles (UX-02) and more specific descriptions (UX-08), e.g. CSV double_quote, skip_rows_after_header, true_values/false_values. It also fixes the typo'd title Files To Read For Schema Discover → Files to read for schema discovery.
  • a62f297e: UX-07, breaking. AbstractFileBasedSpec.schema() now adds every visible defaulted property to required, recursively through delivery_method, streams[].items and the oneOf options. Hidden properties are skipped.
    required.append("delivery_method")  # when it has a default
    cls._mark_defaulted_fields_as_required(delivery_method)
    cls._mark_defaulted_fields_as_required(transformed_schema["properties"]["streams"])
    To keep the suite green, 128 scenario configs that left out delivery_method now spell out its schema default. That count shows the blast radius: any existing config that leaves out a now-required field fails spec validation. The inline expected spec in csv_scenarios.py moved to file_based_spec.json.

Form preview, using source-google-drive with this branch and the connector PR (airbyte#90265). Collapsed sections are force-expanded. Stream-level fields are in the "Add stream" modal, so they aren't shown here.

source-google-drive form before/after

Verification: the narrow config tests and the file-based scenario suite (253 passed) both pass, and Ruff is clean.


Posted by Devin, on behalf of Aaron ("AJ") Steers (@aaronsteers).

Open in Devin Desktop: https://app.devin.ai/desktop/session/b3e2eb2e3fdd47ca9141ad358b23a988?variant=devin

devin-ai-integration Bot and others added 2 commits October 30, 2026 20:23
@devin-ai-integration

Copy link
Copy Markdown
Contributor

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@github-actions

Copy link
Copy Markdown

👋 Greetings, Airbyte Team Member!

Here are some helpful tips and reminders for your convenience.

💡 Show Tips and Tricks

Testing This CDK Version

You can test this version of the CDK using the following:

# Run the CLI from this branch:
uvx 'git+https://github.com/airbytehq/airbyte-python-cdk.git@devin/1793391678-form-ux-file-based-spec#egg=airbyte-python-cdk[dev]' --help

# Update a connector to use the CDK from this branch ref:
cd airbyte-integrations/connectors/source-example
poe use-cdk-branch devin/1793391678-form-ux-file-based-spec

PR Slash Commands

Airbyte Maintainers can execute the following slash commands on your PR:

  • /autofix - Fixes most formatting and linting issues
  • /poetry-lock - Updates poetry.lock file
  • /test - Runs connector tests with the updated CDK
  • /prerelease - Triggers a prerelease publish with default arguments
  • /poe build - Regenerate git-committed build artifacts, such as the pydantic models which are generated from the manifest JSON schema in YAML.
  • /poe <command> - Runs any poe command in the CDK environment
📚 Show Repo Guidance

Helpful Resources

📝 Edit this welcome message.

@github-actions

Copy link
Copy Markdown

PyTest Results (Fast)

6 253 tests  +1   6 231 ✅ +1   6m 39s ⏱️ + 1m 16s
    1 suites ±0      22 💤 ±0 
    1 files   ±0       0 ❌ ±0 

Results for commit a62f297. ± Comparison against base commit 82d08e5.

@github-actions

Copy link
Copy Markdown

PyTest Results (Full)

6 256 tests  +1   6 234 ✅ +1   9m 38s ⏱️ -49s
    1 suites ±0      22 💤 ±0 
    1 files   ±0       0 ❌ ±0 

Results for commit a62f297. ± Comparison against base commit 82d08e5.

This branch has not been deployed

No deployments
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.

1 participant