-
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
🎉 Source Oracle: Added support for connection via SSH tunnels #6356
🎉 Source Oracle: Added support for connection via SSH tunnels #6356
Conversation
…(aka bastion server)
...ration/java/io/airbyte/integrations/source/oracle/AbstractSshOracleSourceAcceptanceTest.java
Outdated
Show resolved
Hide resolved
/test connector=connectors/source-oracle
|
docs/integrations/sources/oracle.md
Outdated
@@ -100,6 +100,23 @@ Your database user should now be ready for use with Airbyte. | |||
|
|||
Case sensitive. Defaults to the upper-cased user if empty. If the user does not have access to the configured schemas, no tables will be discovered. | |||
|
|||
## Connection to Oracle via an SSH Tunnel |
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.
## Connection to Oracle via an SSH Tunnel | |
## Connection via an SSH Tunnel |
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.
updated, thanks
5. `SSH Login Username` is the username that Airbyte should use when connection to the bastion server. This is NOT the Oracle username. | ||
6. If you are using `Password Authentication`, then `SSH Login Username` should be set to the password of the User from the previous step. If you are using `SSH Key Authentication` leave this blank. Again, this is not the Oracle password, but the password for the OS-user that Airbyte is using to perform commands on the bastion. | ||
7. If you are using `SSH Key Authentication`, then `SSH Private Key` should be set to the RSA Private Key that you are using to create the SSH connection. This should be the full contents of the key file starting with `-----BEGIN RSA PRIVATE KEY-----` and ending with `-----END RSA PRIVATE KEY-----`. | ||
|
||
|
||
## Changelog |
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.
we should update changelog too
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.
Hi Sherif.
Sure, I was going to to update versions, changelog and secrets before publishing
|
||
@Override | ||
public Path getConfigFilePath() { | ||
return Path.of("secrets/ssh-pwd-config.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.
shouldn't this secret be injected in ci_credentials.sh
? where is it being inserted in CI?
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.
Hi Sherif.
Sure, I was going to update versions, changelog, and secrets before publishing. Secrets themselves are already added to LastPass and GitHub like ORACLE_SSH_KEY_TEST_CREDS и ORACLE_SSH_PWD_TEST_CREDS.
For json file name, I just follow the pattern of how it was done in other connectors
btw, great work on the screenshots! makes it very easy to see what's happening |
/test connector=connectors/source-oracle
|
/publish connector=connectors/source-oracle
|
What
The goal of this PR is to add SSH only for the
Oracle Source
. It does not try to deal with how it can be reused for other sources or destinations.Took the concept of My PR for Oracle source
How
Handles injecting the SSH tunnel in the check, discover, read methods of
Oracle source
directly. This makes it relatively straightforward to inject without worrying about touching other jdbc dbs.Tested with AWS EC2 bastion and RDS Oracle + test normal connection.
Got 2 new options to connect via SSH (with key or pass)
Here is what was in the source DB
Here is the result of data migration via SSH
Also checked that direct connection to DB still works:
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/SUMMARY.md
docs/integrations/<source or destination>/<name>.md
including changelog. See changelog exampledocs/integrations/README.md
airbyte-integrations/builds.md
Airbyter
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./publish
command described hereUpdating a 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 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./publish
command described hereConnector Generator
-scaffold
in their name) have been updated with the latest scaffold by running./gradlew :airbyte-integrations:connector-templates:generator:testScaffoldTemplates
then checking in your changes