-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
🎉 New Source: Senseforce [low-code CDK] #18775
Conversation
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.
Hello @andnig, 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
catalog
from/integration_tests
- Edit the
sample_config.json
inside/integration_tests
- For the
configured_catalog
you can use onlyjson_schema: {}
- Add title to all properties in the
spec.yaml
- Make sure the
documentationUrl
in thespec.yaml
redirect 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.
@andnig please request my review again when all points in my previous comment are solved. |
@marcosmarxm I think all points are resolved, are they? Sorry if not - would you mind pointing me to the issue? |
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! |
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.
Some comments, do you have test account to share to run tests?
# TODO: Define your stream schemas | ||
Your connector must describe the schema of each stream it can output using [JSONSchema](https://json-schema.org). | ||
|
||
You can describe the schema of your streams using one `.json` file per stream. | ||
|
||
## Static schemas |
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.
Remove this file.
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.
Done
request_body_data: | | ||
[{"clause": {"type": "timestamp", "operator": 10, "parameters": | ||
[{"value": {{ stream_slice['start_time'] | int * 1000 }} }, | ||
{"value": {{ stream_slice['end_time'] | int * 1000 + (86400000 - 1) }} } |
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.
What happen if you don't use end_date
?
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.
It fetches all the data in a given dataset from start_time
"properties": { | ||
"timestamp": { | ||
"type": "integer" | ||
}, | ||
"thing": { | ||
"type": "string" | ||
}, | ||
"id": { | ||
"type": ["null", "string"] | ||
}, | ||
"airbyte_cursor": { | ||
"type": "number" | ||
} |
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 is correct to all possible datasets?
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 is the minimum set on columns available for all Senseforce datasets.
Senseforce users can than dynamically add additional columns but they are purely dependent on the users data model which again is fully flexibly defined by the user - so the connector does not know the full dataset in advance.
Long story short: The columns defined here are part of any Senseforce dataset as per the set up manual of this connector - but there most certainly are additional columns, which are dynamically added or removed from Senseforce users.
@marcosmarxm Removed the file and answered your comments. |
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 @andnig I'll publish your connector later!
This commit is the initial commit to the senseforce.io source. It contains the auto-generated lowcode CDK source connector files as well as the spec definition of the connector. Not working yet.
This commit adds the stream slicing and incremental sync feature. This commit passes all configured acceptance tests.
/test connector=connectors/source-senseforce
Build PassedTest summary info:
|
b318902
to
853a9cd
Compare
/publish connector=connectors/source-senseforce
if you have connectors that successfully published but failed definition generation, follow step 4 here |
/publish connector=connectors/source-senseforce
if you have connectors that successfully published but failed definition generation, follow step 4 here |
/test connector=connectors/source-senseforce
Build PassedTest summary info:
|
/publish connector=connectors/source-senseforce
if you have connectors that successfully published but failed definition generation, follow step 4 here |
* feat: initial commit source senseforce This commit is the initial commit to the senseforce.io source. It contains the auto-generated lowcode CDK source connector files as well as the spec definition of the connector. Not working yet. * feat: stream slicing and incremental sync [pass] This commit adds the stream slicing and incremental sync feature. This commit passes all configured acceptance tests. * docs: Update documentation * change: remove unused schema readme * change: remove catalog.json from integration_tests * add senseforce to source def * run format * correct tests * auto-bump connector version Co-authored-by: marcosmarxm <[email protected]> Co-authored-by: Octavia Squidington III <[email protected]>
What
This PR adds the new low-code CDK based Senseforce connector. Senseforce is a european IoT company.
How
This PR uses the lowcode CDK to create a Omnisend connector with the following streams:
Recommended reading order
spec.yaml
omnisend.yaml
🚨 User Impact 🚨
No changes to existing code, except docs/integrations/Readme.md
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.md
bootstrap.md
. See description and examplesdocs/integrations/<source or destination>/<name>.md
including changelog. See changelog exampledocs/integrations/README.md
airbyte-integrations/builds.md
Tests
Acceptance