-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for Smartsheet Reports (full refresh only) #46379
base: master
Are you sure you want to change the base?
Conversation
@bffrost is attempting to deploy a commit to the Airbyte Growth Team on Vercel. A member of the Team first needs to authorize it. |
@@ -120,7 +164,7 @@ def json_schema(self) -> Dict[str, Any]: | |||
} | |||
return json_schema | |||
|
|||
def read_records(self, from_dt: str) -> Iterable[Dict[str, str]]: | |||
def read_records(self, from_dt: Optional[str] = None) -> Iterable[Dict[str, str]]: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This argument was already optional within self._fetch_sheet
/bump-version type="minor" changelog="Add reports support"
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for this!
The code looks good. I'm trying to bump the version automatically, let's see if that will work. After that, I'll kick-off full CI and see how this works.
"title": "Is Report", | ||
"type": "boolean", | ||
"description": "If true, the source will treat the provided sheet_id as a report. If false, the source will treat the provided sheet_id as a sheet.", | ||
"default": false, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice touch to have the default value.
@natikgadzhi it looks like the automatic version bumped failed - possibly something to do with the way I forked the airbyte repo?
I'm not sure how to address this but please let me know if there's anything I can do to get this fixed up and mergeable |
@bffrost wooops. Sorry for the delay, got into company offsite and then one thing after the other. You can bump versions manually.
|
@natikgadzhi My turn for a delayed response 😅 |
What
Adds support for reading from Smartsheet Reports. This addresses #35197. Because Reports are derived views on data in Smartsheet, they don't seem to support incremental querying via the API, so only a full refresh strategy is implemented here.
How
This adds an "Is Report" config that tells the source whether the provided sheet ID is actually a sheet or a report. The connector then implements slightly different behavior for how to read from a Report vs the existing logic that only works with Sheets.
Review guide
is_report
added tospec.json
streams.py
to add aSmartsheetReportStream
which does not have incremental syncs_fetch_sheet
to get the entire report rather than one row at a time_construct_record
logicUser Impact
For existing connections this should not change the behavior at all. It will allow users to configure Smartsheet Reports as sources, so it will unlock additional ways to connect data.
Can this PR be safely reverted and rolled back?