feat(source-monday): add timeline column fields to items.column_values - #83271
feat(source-monday): add timeline column fields to items.column_values#83271devin-ai-integration[bot] wants to merge 2 commits into
Conversation
Requests TimelineValue fields via an inline GraphQL fragment and asks for calculated column values so rollup columns are not returned empty.
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
|
Devin AI seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |
👋 Greetings, Airbyte Team Member!Here are some helpful tips and reminders for your convenience. 💡 Show Tips and TricksPR Slash CommandsAirbyte Maintainers (that's you!) can execute the following slash commands on your PR:
📚 Show Repo GuidanceHelpful Resources
|
|
Note Autopilot progressive rollouts are not enabled for the following modified connector(s):
This is a courtesy heads-up only — it does not block merge or fail any check. |
|
Deploy preview for airbyte-docs ready!
Deployed with vercel-action |
|
What
Requested by Gary Yang (@gary-yang-airbyte?) for a prospect evaluating Airbyte as a Fivetran replacement: the
itemsstream returns timeline columns, but only as the genericColumnValuefields (text, plus a raw JSONvalue), so consumers have to parse JSON downstream to get the date range.timelinecolumns are returned asTimelineValue, a concrete implementation of theColumnValueinterface, so its fields (from,to,visualization_type,updated_at) are only queryable through an inline fragment — verified against the live API:Additionally, per Monday's timeline docs, columns with rollup capability on multi-level boards return an empty
column_valuesarray unless calculated values are requested explicitly, so those boards currently sync no column values at all.How
MondayGraphqlRequester._build_query()already rewritescolumn_valuesto move interface-specific fields into inline fragments (MirrorValue,BoardRelationValue,DependencyValue). This extends the same mechanism:and adds
capabilities:[CALCULATED]as an argument to the nestedcolumn_valuesobject. Resulting query foritems:The fragment is driven by the schema (fields are only requested if present in
items.column_values), so removing a timeline field from the schema removes it from the query.Review guide
components.py—TIMELINE_VALUE_FIELDS, the fragment construction, and thecapabilitiesargument.manifest.yaml— newitems.column_valuesproperties:from,to,visualization_type,updated_at(date-time) andis_leaf(boolean, a field on theColumnValueinterface itself).unit_tests/test_graphql_requester.py— new parametrizedtest_build_column_values_querycovering no/partial/full timeline fields.unit_tests/integrations/monday_requests/items_request_builder.pyandintegration_tests/expected_records.jsonl— updated for the new query and the addedis_leaffield.Verified against a live Monday account (the connector's own integration-test workspace) rather than only against mocks:
itemsquery is accepted by API version2026-01.from: "2026-03-01T00:00:00+00:00",to: "2026-03-15T00:00:00+00:00",text: "2026-03-01 - 2026-03-15",updated_at, andvisualization_type: null.capabilities:[CALCULATED]andis_leafare accepted on boards without rollup columns, so the change is not gated on multi-level boards.poetry run pytestinunit_tests: 36 passed, 2 skipped.Not covered locally: an account that actually has multi-level boards with rollup timeline columns — the sandbox has none, so the empty-array behaviour that
capabilities:[CALCULATED]addresses was not reproduced first-hand.User Impact
itemsrecords now include typed timeline fields on timeline column values instead of only the raw JSON blob, and boards using rollup columns should return column values where they previously returned an empty array. Additive schema change (minor bump to 2.6.0); no existing field changes type or disappears.Can this PR be safely reverted and rolled back?
Link to Devin session: https://app.devin.ai/sessions/f1d7fae3d87a4ca6869c6eb5c43a5f0a