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

Add the redshift connector #386

Merged
merged 5 commits into from
Dec 2, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
78 changes: 78 additions & 0 deletions registry/hasura/redshift/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# Redshift Connector

[![Docs](https://img.shields.io/badge/docs-v3.x-brightgreen.svg?style=flat)](https://hasura.io/docs/3.0/getting-started/overview/)


With this connector, Hasura allows you to instantly create a real-time GraphQL API on top of your data models in Amazon Redshift Database.
This connector supports Redshift's functionalities listed in the table below, allowing for efficient and scalable data
operations. Additionally, users benefit from all the powerful features of Hasura’s Data Delivery Network (DDN) platform,
including query pushdown capabilities that delegate query operations to the database, thereby enhancing query
optimization and performance.

This connector implements the [Data Connector Spec](https://github.com/hasura/ndc-spec).

- [Connector information in the Hasura Hub](https://hasura.io/connectors/redshift)
- [Hasura V3 Documentation](https://hasura.io/docs/3.0)

## Features

Below, you'll find a matrix of all supported features for the Redshift connector:

| Feature | Supported | Notes |
| ------------------------------- | --------- | ----- |
| Native Queries + Logical Models | ❌ | |
| Native Mutations | ❌ | |
| Simple Object Query | ✅ | |
| Filter / Search | ✅ | |
| Simple Aggregation | ✅ | |
| Sort | ✅ | |
| Paginate | ✅ | |
| Table Relationships | ❌ | |
| Views | ✅ | |
| Remote Relationships | ❌ | |
| Custom Fields | ❌ | |
| Mutations | ❌ | |
| Distinct | ❌ | |
| Enums | ❌ | |
| Naming Conventions | ❌ | |
| Default Values | ❌ | |
| User-defined Functions | ❌ | |

## Prerequisites

1. Create a [Hasura Cloud account](https://console.hasura.io)
2. Please ensure you have the [DDN CLI](https://hasura.io/docs/3.0/cli/installation) and
[Docker](https://docs.docker.com/engine/install/) installed
3. [Create a supergraph](https://hasura.io/docs/3.0/getting-started/init-supergraph)
4. [Create a subgraph](https://hasura.io/docs/3.0/getting-started/init-subgraph)

## Using the Redshift connector

With the [context set](https://hasura.io/docs/3.0/cli/commands/ddn_context_set/) for an existing subgraph, initialize
the connector:

```sh
ddn connector init -i
```

When the wizard runs, you'll be prompted to enter the following env vars necessary for your connector to function:

| Name | Description | Required |
|-------------------|------------------------------|----------|
| REDSHIFT_JDBC_URL | JDBC URL of your Redshift DB | Yes |
| REDSHIFT_USERNAME | Username of your Redshift DB | Yes |
| REDSHIFT_PASSWORD | Password of your Redshift DB | Yes |


After the CLI initializes the connector, you'll need to:

- [Introspect](https://hasura.io/docs/3.0/cli/commands/ddn_connector_introspect) the source.
- Add your [models](https://hasura.io/docs/3.0/cli/commands/ddn_model_add),
[commands](https://hasura.io/docs/3.0/cli/commands/ddn_command_add), and
[relationships](https://hasura.io/docs/3.0/cli/commands/ddn_relationship_add).
- Create a [new build](https://hasura.io/docs/3.0/cli/commands/ddn_supergraph_build_local).
- Test it by [running your project along with the connector](https://hasura.io/docs/3.0/cli/commands/ddn_run#examples).

## License

The Hasura Redshift connector is available under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0).
Binary file added registry/hasura/redshift/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 30 additions & 0 deletions registry/hasura/redshift/metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"overview": {
"namespace": "hasura",
"description": "The Redshift Native Data Connector allows for connecting to a Redshift instance giving you an instant GraphQL API on top of your Redshift data.",
"title": "Redshift Native Data Connector",
"logo": "logo.png",
"tags": [
"database"
],
"latest_version": "v0.1.1"
},
"author": {
"support_email": "[email protected]",
"homepage": "https://hasura.io",
"name": "Hasura"
},
"is_verified": true,
"is_hosted_by_hasura": false,
"source_code": {
"is_open_source": true,
"repository": "https://github.com/hasura/ndc-redshift/",
"version": [
{
"tag": "v0.1.1",
"hash": "5cad71dc7c6ad975ec643ac13f2361f3bd1e26cb",
"is_verified": true
}
]
}
}
11 changes: 11 additions & 0 deletions registry/hasura/redshift/releases/v0.1.1/connector-packaging.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"version": "v0.1.1",
"uri": "https://github.com/hasura/ndc-redshift/releases/download/v0.1.1/connector-definition.tgz",
"checksum": {
"type": "sha256",
"value": "4b06875ba1f4b92bcfe6cbc2a2eed1d07494a63b8800061ae4af2eb36ac8fdbd"
},
"source": {
"hash": "5cad71dc7c6ad975ec643ac13f2361f3bd1e26cb"
}
}
Loading