🎉 New Source: Microsoft Dataverse [python cdk]#18646
🎉 New Source: Microsoft Dataverse [python cdk]#18646Marcos Marx (marcosmarxm) merged 34 commits intoairbytehq:masterfrom
Conversation
|
|
There was a problem hiding this comment.
Hello Danilo Siqueira (@danilo-dti) , Marcos from Airbyte here 👋 . We received more than 25 new contributions along the weekend. One is yours 🎉 thank so much for! Our team is limited and maybe the review process can take longer than expected. As described in the Airbyte's Hacktoberfest your contribution was submitted before November 2nd and it is eligible to win the prize. The review process will validate other requirements. I ask to you patience until someone from the team review it.
Because I reviewed some contributions for Hacktoberfest so far I saw some common patterns you can check in advance:
- Make sure you have added connector documentation to
/docs/integrations/ - Remove the file
catalogfrom/integration_tests - Edit the
sample_config.jsoninside/integration_tests - For the
configured_catalogyou can use onlyjson_schema: {} - Add title to all properties in the
spec.yaml - Make sure the
documentationUrlin thespec.yamlredirect to Airbyte's future connector page, eg: connector Airtable thedocumentationUrl: https://docs.airbyte.com/integrations/sources/airtable - Review now new line at EOF (end-of-file) for all files.
If possible send to me a DM in Slack with the tests credentials, this process will make easier to us run integration tests and publish your connector. If you only has production keys, make sure to create a bootstrap.md explaining how to get the keys.
Marcos Marx (marcosmarxm)
left a comment
There was a problem hiding this comment.
A few comments beside my last message. Would be nice to have a test account to run some tests for this complex source.
| if dataverse_type == "String": | ||
| attribute_type = {"type": ["null", "string"]} | ||
| elif dataverse_type == "DateTime": | ||
| attribute_type = {"type": ["null", "string"], "format": "date-time", "airbyte_type": "timestamp_with_timezone"} | ||
| elif dataverse_type == "Integer": | ||
| attribute_type = {"type": ["null", "integer"]} | ||
| elif dataverse_type == "Money": | ||
| attribute_type = {"type": ["null", "number"]} | ||
| elif dataverse_type == "Boolean": | ||
| attribute_type = {"type": ["null", "boolean"]} | ||
| elif dataverse_type == "Double": | ||
| attribute_type = {"type": ["null", "number"]} | ||
| elif dataverse_type == "Decimal": | ||
| attribute_type = {"type": ["null", "number"]} | ||
| elif dataverse_type == "Virtual": | ||
| return None |
There was a problem hiding this comment.
What about having an Enum class?
There was a problem hiding this comment.
Done, I don't know if is how you imagined it, but I think the code is better.
| def parse_response(self, response: requests.Response, **kwargs) -> Iterable[Mapping]: | ||
| response_json = response.json() | ||
| if "@odata.deltaLink" in response_json: |
There was a problem hiding this comment.
please add unit test
All done. |
|
Hello! I'm going to be out of the office this Friday and won't be able to review your contribution again today, I return next Monday. So far, most contributions look solid and are almost done to be approved. As said in Chris' comment all contributions made before 2-November are eligible to receive the prize and have 2 weeks to merge the contributions. But I ensure next week we're going to have your contribution merged. If you have questions about the implementation you can send them in Sorry the inconvenience and see you again next week, thank you so much for your contribution! |
|
Danilo Siqueira (@danilo-dti) I won't have time to review your contribution today. I added it to my tomorrow's priority list. |
|
Danilo Siqueira (@danilo-dti) can you share the output of |
Attaching the file below. |
|
/publish connector=connectors/source-microsoft-dataverse run-tests=false
if you have connectors that successfully published but failed definition generation, follow step 4 here |
|
Thanks Marcelo Castro (@marcelopio) for working together and Marcos Marx (@marcosmarxm) for the support. |
|
Hi Danilo Siqueira (@danilo-dti) can you please update your github with your contact email? If you don't want to update your github profile with your email you can also send me a DM on slack with a link to this PR, your full name and email plz :). Thank you! |
* Connector files * Add test files * Add integration test config files * Multiple changes to make it on Airbyte standards * Cleaning up * More clean ups * More clean ups * Removed max pages * Remove unused variable * Correctly separating Full refresh and incremental * Removed unused variables * Fix full_refresh class * Better code for creating stream classes * Fixing review comments * Update docs and Enum class * Update type conversion function * Fix enum class and update docs * Update discover * Implemented some unit tests * Update discover * Update test_source * Increase discovery test timeout * Update configured_catalog * Fix default_cursor_field * Adding final unit tests * Update spec: set client_id and tenant_id as secrets * Update discover to deal with Lookup and Picklist types * Fix Lookup data type conversion * add microsoft dataverse to source def * run format * auto-bump connector version Co-authored-by: Marcelo Pio de Castro <[email protected]> Co-authored-by: daniloss99 <[email protected]> Co-authored-by: Marcos Marx <[email protected]> Co-authored-by: marcosmarxm <[email protected]> Co-authored-by: Octavia Squidington III <[email protected]>
What
Implementing Microsoft Dataverse API:
https://learn.microsoft.com/en-us/power-apps/developer/data-platform/webapi/overview
How
Using Airbyte CDK Python HTTP API.
Recommended reading order
x.javay.python🚨 User Impact 🚨
Are there any breaking changes? What is the end result perceived by the user? If yes, please merge this PR with the 🚨🚨 emoji so changelog authors can further highlight this if needed.
Pre-merge Checklist
Expand the relevant checklist and delete the others.
New Connector
Community member or Airbyter
airbyte_secret./gradlew :airbyte-integrations:connectors:<name>:integrationTest.README.mdbootstrap.md. See description and examplesdocs/integrations/<source or destination>/<name>.mdincluding changelog. See changelog exampledocs/integrations/README.mdairbyte-integrations/builds.mdAirbyter
If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.
/test connector=connectors/<name>command is passing/publishcommand described hereUpdating a connector
Community member or Airbyter
airbyte_secret./gradlew :airbyte-integrations:connectors:<name>:integrationTest.README.mdbootstrap.md. See description and examplesdocs/integrations/<source or destination>/<name>.mdincluding changelog. See changelog exampleAirbyter
If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.
/test connector=connectors/<name>command is passing/publishcommand described hereConnector Generator
-scaffoldin their name) have been updated with the latest scaffold by running./gradlew :airbyte-integrations:connector-templates:generator:testScaffoldTemplatesthen checking in your changesTests
Unit
Put your unit tests output here.
Integration
Put your integration tests output here.
Acceptance
Put your acceptance tests output here.