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
🚨✨ Source Convex - switch the JSON format requested from Convex #30853
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
Before Merging a Connector Pull RequestWow! What a great pull request you have here! 🎉 To merge this PR, ensure the following has been done/considered for each connector added or updated:
If the checklist is complete, but the CI check is failing,
|
Add fmt param to the source-convex connector for future extensibility. May add it to the configuration options in the future, but for now, just have it there for testability, defaulting to json format.
6f9fb70
to
614a12f
Compare
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.
Thanks for the contribution @nipunn1313 and sorry the missing update here.
This introduces a breaking change to existing connectors? If someone update the message read by Airbyte will be different?
Convex is deprecating the convex_json
or you're introducing only another supported type?
If the first, what is the ETA to remove it?
Can you remove the parse_config
function? The UI already apply this validation and it's duplicating features here.
If you have only a format type you as a constant in the code, if users can select the format type, which I don't believe it brings any performance to them add the option in the spec.json/yaml file.
Yes... sort of. It (subtly/minorly) simplifies the JSON format for subsequent documents. Fortunately, we have stats on our side (from the server API endpoints) on who is using the airbyte connector with convex and it is only one customer - whom we are directly in contact with. They are ok with this change.
There is only one documented type
Yes - I can do that. |
Hello. I've removed |
Hello. I wanted to check in here again. |
@nipunn1313 at the moment the team is dedicated reviewing Hackathon contribution. We're going to return to the community backlog in the future. |
Hello. Wanted to check in here. I understand your team has been busy recently. What expectations should I have around the timing of this review? (IE - when should I check in again?). |
Hey @nipunn1313 , I apologize for the delay here. This is certainly not the experience we want you to have when contributing. Your PR, among others, sparked conversations internally about how we can improve the speed of PR review for those contributing their own company's connectors. @katmarkham is our steward of API sources here, and is working with her team to set a process to fast-track these in the future. For this particular PR, the team is hoping to start review by the end of next week as other projects are getting shuffled. |
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.
Approved with condition. The braking changes process must be followed.
|
||
|
||
# Source | ||
class SourceConvex(AbstractSource): | ||
def _json_schemas(self, config: ConvexConfig) -> requests.Response: | ||
deployment_url = config["deployment_url"] | ||
access_key = config["access_key"] | ||
url = f"{deployment_url}/api/json_schemas?deltaSchema=true&format=convex_json" | ||
url = f"{deployment_url}/api/json_schemas?deltaSchema=true&format=json" |
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.
Look like braking changes as schema will be updated.
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.
Approved with condition. The braking changes process must be followed.
@lazebnyi In the comments, it's noted there is only 1 user of the connector and they are already aware of this change as the contributor is already in close contact with the user. While it is a schema change, I recommend not requiring the breaking change process given we can simply inform the user of the connector of the change. @katmarkham |
Yep! That sounds good to us. |
Removed parse_config and GL approved
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.
Releasing without breaking change as @nataliekwong commented.
@nipunn1313 thanks for the contribution. Waiting the master branch allow to merge your contribution :) |
What
We're updating the json format which is requested from the backend from
convex_json
tojson
. The new format is more readable/usable (rather than prioritizing roundtrippable).How
Updating the source connector to request
json
format (rather thanconvex_json
format). The format is a tad simpler and cleaner in how it handles a few cases.Added a
fmt
parameter to the configuration structure, defaulting it tojson
format. Intentionally left it out of the yml.We updated the airbyte-client version number which we send up as a header so the server can detect the new version.
Recommended reading order
source.py
- Updates json formatunit tests
🚨 User Impact 🚨
The users will see a simpler JSON format which encodes a few values a bit differently. Most exports will not see a difference.
Examples:
Bigints go from
{"$integer": "55"}
to"55"
Infinite floats go from
{"$float": "Inf"}
to{"Inf"}
... a few more cases
Pre-merge Actions
Community member or Airbyter
Airbyter
If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.