Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 38 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,30 +11,63 @@ To ensure consistency, we follow a structured contribution process. All guidelin

## 🎃 Hacktoberfest 2025 @ OLake

OLake is officially open for **Hacktoberfest contributions**! 🚀
OLake is officially open for **Hacktoberfest contributions**! 🚀

If you’re participating in Hacktoberfest, look out for any issues labeled:

- **`hacktoberfest`**
- **`good first issue`**

These are designed to help new contributors get started quickly.
We welcome everything — bug fixes, documentation updates, tests, or feature enhancements.
We welcome everything — bug fixes, documentation updates, tests, or feature enhancements.

👉 [Check our open issues here](../../issues)

Let’s hack, learn, and grow together this Hacktoberfest. Happy contributing & happy engineering! ⚡

---

## 🔐 Testing SSH Tunnel Support (Oracle & MongoDB)

OLake drivers for **Oracle** and **MongoDB** now support SSH tunneling via a local port-forwarded connection.

To test this feature:

1. Generate a dummy PEM key:

```bash
ssh-keygen -t rsa -b 2048 -m PEM -f test_key.pem -N ""

```

2. Place the key in the appropriate driver folder:
drivers/oracle/internal/test_key.pem
drivers/mongodb/internal/test_key.pem

3. Run the tests:
go test -v -run TestOracleSSHConnection
go test -v -run TestMongoSSHConnection

These tests are designed to fail gracefully if no SSH server is running on localhost:2222, but they validate:

- SSH key parsing
- Tunnel setup logic
- DSN override behavior

This ensures contributors can safely test SSH logic without needing a real bastion.

## Getting Help

For any questions, concerns, or queries:
- Start a discussion on our [**Slack**](https://olake.io/slack/) channel.
- Check [GitHub Discussions](https://github.com/datazip-inc/olake/discussions) for ongoing conversations.

- Start a discussion on our [**Slack**](https://olake.io/slack/) channel.
- Check [GitHub Discussions](https://github.com/datazip-inc/olake/discussions) for ongoing conversations.
- Don’t hesitate to open an issue if something is unclear.

---

### 💡 We look forward to your feedback and contributions to improve this project!
<!----variables---->

<!----variables---->

[CLA]: https://docs.google.com/forms/d/e/1FAIpQLSdze2q6gn81fmbIp2bW5cIpAXcpv7Y5OQjQyXflNvoYWiO4OQ/viewform
4 changes: 3 additions & 1 deletion drivers/mongodb/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,6 @@ require (
golang.org/x/text v0.24.0 // indirect
golang.org/x/tools v0.30.0 // indirect
sigs.k8s.io/yaml v1.4.0 // indirect
)
)

replace github.com/datazip-inc/olake/pkg/ssh => ../../pkg/ssh
7 changes: 7 additions & 0 deletions drivers/mongodb/internal/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,13 @@ type Config struct {
RetryCount int `json:"backoff_retry_count"`
ChunkingStrategy string `json:"chunking_strategy"`
UseIAM bool `json:"use_iam"`

// SSH tunneling support
SSHEnabled bool `json:"ssh_enabled"`
SSHHost string `json:"ssh_host"`
SSHPort int `json:"ssh_port"`
SSHUser string `json:"ssh_user"`
SSHPrivateKey string `json:"ssh_private_key"`
}

func (c *Config) URI() string {
Expand Down
Loading