Skip to content
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 Salesforce new ContentDocumentLink stream #33342

Merged

Conversation

midavadim
Copy link
Collaborator

@midavadim midavadim commented Dec 12, 2023

What

#30819
new ContentDocumentLink stream

How

ContentDocumentLink is implemented as HttpSubStream, where parent stream is ContentDocument.
Implemented Rest and Bulk classes.
ContentDocumentLink does not support incremental syncs due to API restrictions for this particular stream:
https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_contentdocumentlink.htm

  • You can't run a query without filters against ContentDocumentLink.
  • You can't filter on ContentDocument fields if you're filtering by ContentDocumentId. You can only filter on ContentDocument fields if you're filtering by LinkedEntityId.
  • A SOQL query must filter on one of Id, ContentDocumentId, or LinkedEntityId

Possible solution:

  1. SELECT ... FROM ContentDocumentLink WHERE ContentDocumentId = '<ContentDocument.Id>'
  • but it means we need each separate request for each ContentDocument node.
  1. SELECT ... FROM ContentDocumentLink WHERE ContentDocumentId in (SELECT Id from ContentDocument)
  • does not support by API
  1. SELECT ... FROM ContentDocumentLink WHERE ContentDocumentId IN ( < LIST OF IDS > )
  • THIS APPROACH WAS IMPLEMENTED

🚨 User Impact 🚨

No impact

…with batched streamslices, support Rest and Bulk API
Copy link

vercel bot commented Dec 12, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
airbyte-docs ✅ Ready (Inspect) Visit Preview 💬 Add feedback Dec 15, 2023 9:44am

@octavia-squidington-iii octavia-squidington-iii added the area/connectors Connector related issues label Dec 12, 2023
Copy link
Contributor

github-actions bot commented Dec 12, 2023

Before Merging a Connector Pull Request

Wow! 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:

  • PR name follows PR naming conventions
  • Breaking changes are considered. If a Breaking Change is being introduced, ensure an Airbyte engineer has created a Breaking Change Plan.
  • Connector version has been incremented in the Dockerfile and metadata.yaml according to our Semantic Versioning for Connectors guidelines
  • You've updated the connector's metadata.yaml file any other relevant changes, including a breakingChanges entry for major version bumps. See metadata.yaml docs
  • Secrets in the connector's spec are annotated with airbyte_secret
  • All documentation files are up to date. (README.md, bootstrap.md, docs.md, etc...)
  • Changelog updated in docs/integrations/<source or destination>/<name>.md with an entry for the new version. See changelog example
  • Migration guide updated in docs/integrations/<source or destination>/<name>-migrations.md with an entry for the new version, if the version is a breaking change. See migration guide example
  • If set, you've ensured the icon is present in the platform-internal repo. (Docs)

If the checklist is complete, but the CI check is failing,

  1. Check for hidden checklists in your PR description

  2. Toggle the github label checklist-action-run on/off to re-run the checklist CI.

@midavadim midavadim linked an issue Dec 12, 2023 that may be closed by this pull request
Copy link
Collaborator

@artem1205 artem1205 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please add unit test for your changes, specifically for BULK API query

…link-stream

# Conflicts:
#	airbyte-integrations/connectors/source-salesforce/metadata.yaml
#	docs/integrations/sources/salesforce.md
@midavadim
Copy link
Collaborator Author

please add unit test for your changes, specifically for BULK API query

added

@midavadim midavadim enabled auto-merge (squash) December 14, 2023 18:37
@midavadim midavadim merged commit 0859afc into master Dec 15, 2023
26 checks passed
@midavadim midavadim deleted the midavadim/30819-salesforce-contentdocumentlink-stream branch December 15, 2023 10:23
Copy link

sentry-io bot commented Dec 16, 2023

Suspect Issues

This pull request was deployed and Sentry observed the following issues:

  • ‼️ TypeError: 'NoneType' object is not subscriptable /airbyte/integration_code/source_salesforce/str... View Issue

Did you find this useful? React with a 👍 or 👎

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/connectors Connector related issues area/documentation Improvements or additions to documentation connectors/source/salesforce
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Source SalesForce: add new stream: ContentDocumentLink
3 participants