From da2c2fda8182aae043a378d419a279bb6bdb3f53 Mon Sep 17 00:00:00 2001 From: "David A. Ventimiglia" Date: Tue, 10 Sep 2024 07:51:32 -0700 Subject: [PATCH 01/11] Initializing the ndc-calcite registration --- registry/hasura/calcite/README.md | 83 +++++ registry/hasura/calcite/logo.svg | 346 ++++++++++++++++++ registry/hasura/calcite/metadata.json | 30 ++ .../releases/v0.6.5/connector-packaging.json | 11 + 4 files changed, 470 insertions(+) create mode 100644 registry/hasura/calcite/README.md create mode 100644 registry/hasura/calcite/logo.svg create mode 100644 registry/hasura/calcite/metadata.json create mode 100644 registry/hasura/calcite/releases/v0.6.5/connector-packaging.json diff --git a/registry/hasura/calcite/README.md b/registry/hasura/calcite/README.md new file mode 100644 index 00000000..2999bdc9 --- /dev/null +++ b/registry/hasura/calcite/README.md @@ -0,0 +1,83 @@ +## Overview + +The Calcite Native Data Connector allows for connecting to a Calcite instance giving you an instant GraphQL API on top of your Calcite data. +This uses the [Rust Data Connector SDK](https://github.com/hasura/ndc-hub#rusk-sdk) from the [Data connector Hub](https://github.com/hasura/ndc-hub) and implements the [Data Connector Spec](https://github.com/hasura/ndc-spec). + +Calcite is a powerful open-source columnar database that offers a range of features designed for speed and efficiency in processing large volumes of data. Calcite is an excellent choice for a database when you are dealing with large volumes of data and require high-speed data retrieval, aggregation, and analysis. It's particularly well-suited for real-time analytics and handling time-series data, log data, or any scenario where read operations vastly outnumber writes. Calcite thrives in environments where query performance and the ability to generate reports quickly are critical, such as in financial analysis, IoT data management, and online analytical processing (OLAP). Furthermore, its column-oriented architecture makes it ideal for queries that need to scan large datasets but only access a subset of columns. + +## Connect to Hasura + +Please refer to the [Getting Started - Create an API](https://hasura.io/docs/3.0/getting-started/create-a-project) documentation if you get stuck during any of the steps outlined below. + +### Prerequisites +1. Install the [new Hasura CLI](https://hasura.io/docs/3.0/cli/installation) — to quickly and easily create and manage your Hasura projects and builds. +2. (recommended) Install the [Hasura VS Code extension](https://marketplace.visualstudio.com/items?itemName=HasuraHQ.hasura) — with support for other editors coming soon! +3. Create a [Calcite account](https://Calcite.cloud/signUp?loc=nav-get-started) if you don't already have one. +4. Make sure to make your Calcite service open to the public or add Hasura's IP to the allowlist. + +### Create Project and Connect Calcite + +Login to Hasura Cloud with the CLI + +``` +ddn login +``` + +Create a new project using the [create project](https://hasura.io/docs/3.0/cli/commands/create-project/) command in the CLI and change to the new directory that was generated. + +``` +ddn create project --dir ./my-first-supergraph +cd my-first-supergraph +``` + +Run the add [connector-manifest](https://hasura.io/docs/3.0/cli/commands/add-connector-manifest/) command to create a connector for Calcite in your project. + +``` +ddn add connector-manifest Calcite_connector --subgraph app --hub-connector hasura/Calcite --type cloud +``` + +Add values for your Calcite username, password, and connection string to corresponding definition found in: `app/Calcite/connector/Calcite_connector.build.hml` + +``` +kind: ConnectorManifest +version: v1 +spec: + supergraphManifests: + - base +definition: + name: Calcite_connector + type: cloud + connector: + type: hub + name: hasura/Calcite:v0.2.5 + deployments: + - context: . + env: + CALCITE_PASSWORD: + value: "" + CALCITE_URL: + value: "" + CALCITE_USERNAME: + value: "" +``` + +Note: You can also use environment variables for these values. Please refer to our [Getting Started - Add a connector manifest](https://hasura.io/docs/3.0/cli/commands/add-connector-manifest/) for more details. + +### Update Connector, Track Models and Build + +At this point you can either run the [dev](https://hasura.io/docs/3.0/cli/commands/dev/) mode to watch your project and create new builds as changes are made to your metadata using [Hasura’s LSP](https://hasura.io/docs/3.0/glossary/#lsp-language-server-protocol) and [VSCode extension](https://marketplace.visualstudio.com/items?itemName=HasuraHQ.hasura). + +``` +ddn dev +``` + +Alternatively, you can run the following commands to add specific models, in this example the `Trips` table and `MonthlyRevenue` view if added the view following the steps mentioned above. +``` +ddn update connector-manifest Calcite_connector +ddn update data-connector-link Calcite_connector +ddn add model --data-connector-link Calcite_connector --name Trips +ddn add model --data-connector-link Calcite_connector --name MonthlyRevenue +ddn build supergraph-manifest +``` + +You are now ready to start using your API! During the previous step the console will return some information including the Console URL. Load this link in your browser to explore the API you have created for your Calcite database. The UI will resemble something like this. diff --git a/registry/hasura/calcite/logo.svg b/registry/hasura/calcite/logo.svg new file mode 100644 index 00000000..ce489a18 --- /dev/null +++ b/registry/hasura/calcite/logo.svg @@ -0,0 +1,346 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/registry/hasura/calcite/metadata.json b/registry/hasura/calcite/metadata.json new file mode 100644 index 00000000..ff17a81e --- /dev/null +++ b/registry/hasura/calcite/metadata.json @@ -0,0 +1,30 @@ +{ + "overview": { + "namespace": "hasura", + "description": "The Calcite Native Data Connector allows for connecting to a Calcite instance giving you an instant GraphQL API on top of your Calcite data.", + "title": "Calcite Native Data Connector", + "logo": "logo.svg", + "tags": [ + "database" + ], + "latest_version": "v0.6.5" + }, + "author": { + "support_email": "support@hasura.io", + "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-calcite/", + "version": [ + { + "tag": "v0.6.5", + "hash": "d8f082edf359eb530340586e3cf02136644defb3", + "is_verified": true + } + ] + } +} diff --git a/registry/hasura/calcite/releases/v0.6.5/connector-packaging.json b/registry/hasura/calcite/releases/v0.6.5/connector-packaging.json new file mode 100644 index 00000000..e6f31620 --- /dev/null +++ b/registry/hasura/calcite/releases/v0.6.5/connector-packaging.json @@ -0,0 +1,11 @@ +{ + "version": "0.6.5", + "uri": "https://github.com/hasura/ndc-calcite/releases/download/v0.6.5/connector-definition.tgz", + "checksum": { + "type": "sha256", + "value": "8ed69bad57e86ce49ab6efb29581c8bfd876f818efd1d5604b7b9cc81d9101fe" + }, + "source": { + "hash": "d8f082edf359eb530340586e3cf02136644defb3" + } +} From 9c14f3b98267b4d78d2dad54a936720891e4bc11 Mon Sep 17 00:00:00 2001 From: "David A. Ventimiglia" Date: Wed, 11 Sep 2024 08:47:38 -0700 Subject: [PATCH 02/11] Changed URL for content-definition.tgz do GDrive (temporarily) --- .../hasura/calcite/releases/v0.6.5/connector-packaging.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/registry/hasura/calcite/releases/v0.6.5/connector-packaging.json b/registry/hasura/calcite/releases/v0.6.5/connector-packaging.json index e6f31620..4bee3f13 100644 --- a/registry/hasura/calcite/releases/v0.6.5/connector-packaging.json +++ b/registry/hasura/calcite/releases/v0.6.5/connector-packaging.json @@ -1,6 +1,6 @@ { "version": "0.6.5", - "uri": "https://github.com/hasura/ndc-calcite/releases/download/v0.6.5/connector-definition.tgz", + "uri": "https://drive.google.com/file/d/18egOHipjj6tLpY31-wpY5-jq0B4VMzbt/view?usp=sharing", "checksum": { "type": "sha256", "value": "8ed69bad57e86ce49ab6efb29581c8bfd876f818efd1d5604b7b9cc81d9101fe" From 686f446bbbcd0fbe8d29c40a61e5f1dd3427fc32 Mon Sep 17 00:00:00 2001 From: "David A. Ventimiglia" Date: Thu, 12 Sep 2024 08:22:30 -0700 Subject: [PATCH 03/11] Migrating "calcite" to "cassandra" --- registry/hasura/calcite/logo.svg | 346 ------------------ .../hasura/{calcite => cassandra}/README.md | 36 +- registry/hasura/cassandra/logo-white-r.png | Bin 0 -> 28790 bytes .../{calcite => cassandra}/metadata.json | 8 +- .../releases/v1.0.0}/connector-packaging.json | 2 +- 5 files changed, 23 insertions(+), 369 deletions(-) delete mode 100644 registry/hasura/calcite/logo.svg rename registry/hasura/{calcite => cassandra}/README.md (55%) create mode 100644 registry/hasura/cassandra/logo-white-r.png rename registry/hasura/{calcite => cassandra}/metadata.json (60%) rename registry/hasura/{calcite/releases/v0.6.5 => cassandra/releases/v1.0.0}/connector-packaging.json (92%) diff --git a/registry/hasura/calcite/logo.svg b/registry/hasura/calcite/logo.svg deleted file mode 100644 index ce489a18..00000000 --- a/registry/hasura/calcite/logo.svg +++ /dev/null @@ -1,346 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/registry/hasura/calcite/README.md b/registry/hasura/cassandra/README.md similarity index 55% rename from registry/hasura/calcite/README.md rename to registry/hasura/cassandra/README.md index 2999bdc9..7dc06919 100644 --- a/registry/hasura/calcite/README.md +++ b/registry/hasura/cassandra/README.md @@ -1,9 +1,9 @@ ## Overview -The Calcite Native Data Connector allows for connecting to a Calcite instance giving you an instant GraphQL API on top of your Calcite data. +The Cassandra Native Data Connector allows for connecting to a Cassandra instance giving you an instant GraphQL API on top of your Cassandra data. This uses the [Rust Data Connector SDK](https://github.com/hasura/ndc-hub#rusk-sdk) from the [Data connector Hub](https://github.com/hasura/ndc-hub) and implements the [Data Connector Spec](https://github.com/hasura/ndc-spec). -Calcite is a powerful open-source columnar database that offers a range of features designed for speed and efficiency in processing large volumes of data. Calcite is an excellent choice for a database when you are dealing with large volumes of data and require high-speed data retrieval, aggregation, and analysis. It's particularly well-suited for real-time analytics and handling time-series data, log data, or any scenario where read operations vastly outnumber writes. Calcite thrives in environments where query performance and the ability to generate reports quickly are critical, such as in financial analysis, IoT data management, and online analytical processing (OLAP). Furthermore, its column-oriented architecture makes it ideal for queries that need to scan large datasets but only access a subset of columns. +Cassandra is a powerful open-source columnar database that offers a range of features designed for speed and efficiency in processing large volumes of data. Cassandra is an excellent choice for a database when you are dealing with large volumes of data and require high-speed data retrieval, aggregation, and analysis. It's particularly well-suited for real-time analytics and handling time-series data, log data, or any scenario where read operations vastly outnumber writes. Cassandra thrives in environments where query performance and the ability to generate reports quickly are critical, such as in financial analysis, IoT data management, and online analytical processing (OLAP). Furthermore, its column-oriented architecture makes it ideal for queries that need to scan large datasets but only access a subset of columns. ## Connect to Hasura @@ -12,10 +12,10 @@ Please refer to the [Getting Started - Create an API](https://hasura.io/docs/3.0 ### Prerequisites 1. Install the [new Hasura CLI](https://hasura.io/docs/3.0/cli/installation) — to quickly and easily create and manage your Hasura projects and builds. 2. (recommended) Install the [Hasura VS Code extension](https://marketplace.visualstudio.com/items?itemName=HasuraHQ.hasura) — with support for other editors coming soon! -3. Create a [Calcite account](https://Calcite.cloud/signUp?loc=nav-get-started) if you don't already have one. -4. Make sure to make your Calcite service open to the public or add Hasura's IP to the allowlist. +3. Create a [Cassandra account](https://Cassandra.cloud/signUp?loc=nav-get-started) if you don't already have one. +4. Make sure to make your Cassandra service open to the public or add Hasura's IP to the allowlist. -### Create Project and Connect Calcite +### Create Project and Connect Cassandra Login to Hasura Cloud with the CLI @@ -30,13 +30,13 @@ ddn create project --dir ./my-first-supergraph cd my-first-supergraph ``` -Run the add [connector-manifest](https://hasura.io/docs/3.0/cli/commands/add-connector-manifest/) command to create a connector for Calcite in your project. +Run the add [connector-manifest](https://hasura.io/docs/3.0/cli/commands/add-connector-manifest/) command to create a connector for Cassandra in your project. ``` -ddn add connector-manifest Calcite_connector --subgraph app --hub-connector hasura/Calcite --type cloud +ddn add connector-manifest Cassandra_connector --subgraph app --hub-connector hasura/Cassandra --type cloud ``` -Add values for your Calcite username, password, and connection string to corresponding definition found in: `app/Calcite/connector/Calcite_connector.build.hml` +Add values for your Cassandra username, password, and connection string to corresponding definition found in: `app/Cassandra/connector/Cassandra_connector.build.hml` ``` kind: ConnectorManifest @@ -45,19 +45,19 @@ spec: supergraphManifests: - base definition: - name: Calcite_connector + name: Cassandra_connector type: cloud connector: type: hub - name: hasura/Calcite:v0.2.5 + name: hasura/Cassandra:v0.2.5 deployments: - context: . env: - CALCITE_PASSWORD: + CASSANDRA_PASSWORD: value: "" - CALCITE_URL: + CASSANDRA_URL: value: "" - CALCITE_USERNAME: + CASSANDRA_USERNAME: value: "" ``` @@ -73,11 +73,11 @@ ddn dev Alternatively, you can run the following commands to add specific models, in this example the `Trips` table and `MonthlyRevenue` view if added the view following the steps mentioned above. ``` -ddn update connector-manifest Calcite_connector -ddn update data-connector-link Calcite_connector -ddn add model --data-connector-link Calcite_connector --name Trips -ddn add model --data-connector-link Calcite_connector --name MonthlyRevenue +ddn update connector-manifest Cassandra_connector +ddn update data-connector-link Cassandra_connector +ddn add model --data-connector-link Cassandra_connector --name Trips +ddn add model --data-connector-link Cassandra_connector --name MonthlyRevenue ddn build supergraph-manifest ``` -You are now ready to start using your API! During the previous step the console will return some information including the Console URL. Load this link in your browser to explore the API you have created for your Calcite database. The UI will resemble something like this. +You are now ready to start using your API! During the previous step the console will return some information including the Console URL. Load this link in your browser to explore the API you have created for your Cassandra database. The UI will resemble something like this. diff --git a/registry/hasura/cassandra/logo-white-r.png b/registry/hasura/cassandra/logo-white-r.png new file mode 100644 index 0000000000000000000000000000000000000000..cb003c2d8437c087cb9b348c6fbf08a51e4d2e1e GIT binary patch literal 28790 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 literal 0 HcmV?d00001 diff --git a/registry/hasura/calcite/metadata.json b/registry/hasura/cassandra/metadata.json similarity index 60% rename from registry/hasura/calcite/metadata.json rename to registry/hasura/cassandra/metadata.json index ff17a81e..42c3e9a1 100644 --- a/registry/hasura/calcite/metadata.json +++ b/registry/hasura/cassandra/metadata.json @@ -1,9 +1,9 @@ { "overview": { "namespace": "hasura", - "description": "The Calcite Native Data Connector allows for connecting to a Calcite instance giving you an instant GraphQL API on top of your Calcite data.", - "title": "Calcite Native Data Connector", - "logo": "logo.svg", + "description": "The Cassandra Native Data Connector allows for connecting to a Cassandra instance giving you an instant GraphQL API on top of your Cassandra data.", + "title": "Cassandra Native Data Connector", + "logo": "logo-white-r.png", "tags": [ "database" ], @@ -18,7 +18,7 @@ "is_hosted_by_hasura": false, "source_code": { "is_open_source": true, - "repository": "https://github.com/hasura/ndc-calcite/", + "repository": "https://github.com/hasura/ndc-cassandra/", "version": [ { "tag": "v0.6.5", diff --git a/registry/hasura/calcite/releases/v0.6.5/connector-packaging.json b/registry/hasura/cassandra/releases/v1.0.0/connector-packaging.json similarity index 92% rename from registry/hasura/calcite/releases/v0.6.5/connector-packaging.json rename to registry/hasura/cassandra/releases/v1.0.0/connector-packaging.json index 4bee3f13..2693cc2d 100644 --- a/registry/hasura/calcite/releases/v0.6.5/connector-packaging.json +++ b/registry/hasura/cassandra/releases/v1.0.0/connector-packaging.json @@ -1,5 +1,5 @@ { - "version": "0.6.5", + "version": "1.0.0", "uri": "https://drive.google.com/file/d/18egOHipjj6tLpY31-wpY5-jq0B4VMzbt/view?usp=sharing", "checksum": { "type": "sha256", From 7729e9a09cb0c2608c2e79dff06517274c69c399 Mon Sep 17 00:00:00 2001 From: "David A. Ventimiglia" Date: Thu, 12 Sep 2024 09:05:19 -0700 Subject: [PATCH 04/11] Publishing a new connector version for cassandra --- .../cassandra/releases/v1.0.0/connector-packaging.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/registry/hasura/cassandra/releases/v1.0.0/connector-packaging.json b/registry/hasura/cassandra/releases/v1.0.0/connector-packaging.json index 2693cc2d..c5125fb8 100644 --- a/registry/hasura/cassandra/releases/v1.0.0/connector-packaging.json +++ b/registry/hasura/cassandra/releases/v1.0.0/connector-packaging.json @@ -1,11 +1,11 @@ { "version": "1.0.0", - "uri": "https://drive.google.com/file/d/18egOHipjj6tLpY31-wpY5-jq0B4VMzbt/view?usp=sharing", + "uri": "https://github.com/hasura/ndc-cassandra/releases/download/v1.0.0/connector-definition.tgz", "checksum": { "type": "sha256", - "value": "8ed69bad57e86ce49ab6efb29581c8bfd876f818efd1d5604b7b9cc81d9101fe" + "value": "a1375bffffb8bbe77b80f42cbdeeab6697717355c92810fefb93d18f8f7f8f6c" }, "source": { - "hash": "d8f082edf359eb530340586e3cf02136644defb3" + "hash": "d24a7b7c25026ffaf9aad48a6c29d47003c0c03a" } } From 0af1f41179930649c331f16c97687fc57cdd0dde Mon Sep 17 00:00:00 2001 From: "David A. Ventimiglia" Date: Thu, 12 Sep 2024 09:09:18 -0700 Subject: [PATCH 05/11] Publishing a new connector version for cassandra --- registry/hasura/cassandra/metadata.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/registry/hasura/cassandra/metadata.json b/registry/hasura/cassandra/metadata.json index 42c3e9a1..308411e2 100644 --- a/registry/hasura/cassandra/metadata.json +++ b/registry/hasura/cassandra/metadata.json @@ -21,8 +21,8 @@ "repository": "https://github.com/hasura/ndc-cassandra/", "version": [ { - "tag": "v0.6.5", - "hash": "d8f082edf359eb530340586e3cf02136644defb3", + "tag": "v1.0.0", + "hash": "d24a7b7c25026ffaf9aad48a6c29d47003c0c03a", "is_verified": true } ] From f08813d2a41800ed829bda65d7702157d34b00fc Mon Sep 17 00:00:00 2001 From: "David A. Ventimiglia" Date: Thu, 12 Sep 2024 09:12:19 -0700 Subject: [PATCH 06/11] Publishing a new connector version for cassandra --- registry/hasura/cassandra/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/registry/hasura/cassandra/metadata.json b/registry/hasura/cassandra/metadata.json index 308411e2..6bc7b879 100644 --- a/registry/hasura/cassandra/metadata.json +++ b/registry/hasura/cassandra/metadata.json @@ -7,7 +7,7 @@ "tags": [ "database" ], - "latest_version": "v0.6.5" + "latest_version": "v1.0.0" }, "author": { "support_email": "support@hasura.io", From 74359afef36b81e6c808e46e72c4ae5395be3eec Mon Sep 17 00:00:00 2001 From: "David A. Ventimiglia" Date: Tue, 17 Sep 2024 10:57:15 -0700 Subject: [PATCH 07/11] Revamped the README (copied over from mongodb) --- registry/hasura/cassandra/README.md | 89 +++++------------------------ 1 file changed, 15 insertions(+), 74 deletions(-) diff --git a/registry/hasura/cassandra/README.md b/registry/hasura/cassandra/README.md index 7dc06919..46304d91 100644 --- a/registry/hasura/cassandra/README.md +++ b/registry/hasura/cassandra/README.md @@ -1,83 +1,24 @@ ## Overview -The Cassandra Native Data Connector allows for connecting to a Cassandra instance giving you an instant GraphQL API on top of your Cassandra data. -This uses the [Rust Data Connector SDK](https://github.com/hasura/ndc-hub#rusk-sdk) from the [Data connector Hub](https://github.com/hasura/ndc-hub) and implements the [Data Connector Spec](https://github.com/hasura/ndc-spec). +`ndc-cassandra` provides a Hasura Data Connector to the Cassandra database, +which can expose and run GraphQL queries via the Hasura v3 Project. -Cassandra is a powerful open-source columnar database that offers a range of features designed for speed and efficiency in processing large volumes of data. Cassandra is an excellent choice for a database when you are dealing with large volumes of data and require high-speed data retrieval, aggregation, and analysis. It's particularly well-suited for real-time analytics and handling time-series data, log data, or any scenario where read operations vastly outnumber writes. Cassandra thrives in environments where query performance and the ability to generate reports quickly are critical, such as in financial analysis, IoT data management, and online analytical processing (OLAP). Furthermore, its column-oriented architecture makes it ideal for queries that need to scan large datasets but only access a subset of columns. +- [Cassandra Connector information in the Hasura Connectors directory](https://hasura.io/connectors/cassandra) +- [GitHub repository](https://github.com/hasura/ndc-cassandra) -## Connect to Hasura +The connector implements the [NDC Specification](https://hasura.github.io/ndc-spec/overview.html), +but does not currently support mutations, column relationship arguments in queries, functions or procedures. -Please refer to the [Getting Started - Create an API](https://hasura.io/docs/3.0/getting-started/create-a-project) documentation if you get stuck during any of the steps outlined below. +Visit the +[Hasura v3 Documentation](https://hasura.io/docs/3.0/native-data-connectors/cassandra) +for more information. -### Prerequisites -1. Install the [new Hasura CLI](https://hasura.io/docs/3.0/cli/installation) — to quickly and easily create and manage your Hasura projects and builds. -2. (recommended) Install the [Hasura VS Code extension](https://marketplace.visualstudio.com/items?itemName=HasuraHQ.hasura) — with support for other editors coming soon! -3. Create a [Cassandra account](https://Cassandra.cloud/signUp?loc=nav-get-started) if you don't already have one. -4. Make sure to make your Cassandra service open to the public or add Hasura's IP to the allowlist. +## Usage -### Create Project and Connect Cassandra +Follow the [Quick Start Guide](https://hasura.io/docs/3.0/quickstart/) +to use the Cassandra data connector from the [Hasura v3 Console](https://console.hasura.io). -Login to Hasura Cloud with the CLI +## Troubleshooting -``` -ddn login -``` - -Create a new project using the [create project](https://hasura.io/docs/3.0/cli/commands/create-project/) command in the CLI and change to the new directory that was generated. - -``` -ddn create project --dir ./my-first-supergraph -cd my-first-supergraph -``` - -Run the add [connector-manifest](https://hasura.io/docs/3.0/cli/commands/add-connector-manifest/) command to create a connector for Cassandra in your project. - -``` -ddn add connector-manifest Cassandra_connector --subgraph app --hub-connector hasura/Cassandra --type cloud -``` - -Add values for your Cassandra username, password, and connection string to corresponding definition found in: `app/Cassandra/connector/Cassandra_connector.build.hml` - -``` -kind: ConnectorManifest -version: v1 -spec: - supergraphManifests: - - base -definition: - name: Cassandra_connector - type: cloud - connector: - type: hub - name: hasura/Cassandra:v0.2.5 - deployments: - - context: . - env: - CASSANDRA_PASSWORD: - value: "" - CASSANDRA_URL: - value: "" - CASSANDRA_USERNAME: - value: "" -``` - -Note: You can also use environment variables for these values. Please refer to our [Getting Started - Add a connector manifest](https://hasura.io/docs/3.0/cli/commands/add-connector-manifest/) for more details. - -### Update Connector, Track Models and Build - -At this point you can either run the [dev](https://hasura.io/docs/3.0/cli/commands/dev/) mode to watch your project and create new builds as changes are made to your metadata using [Hasura’s LSP](https://hasura.io/docs/3.0/glossary/#lsp-language-server-protocol) and [VSCode extension](https://marketplace.visualstudio.com/items?itemName=HasuraHQ.hasura). - -``` -ddn dev -``` - -Alternatively, you can run the following commands to add specific models, in this example the `Trips` table and `MonthlyRevenue` view if added the view following the steps mentioned above. -``` -ddn update connector-manifest Cassandra_connector -ddn update data-connector-link Cassandra_connector -ddn add model --data-connector-link Cassandra_connector --name Trips -ddn add model --data-connector-link Cassandra_connector --name MonthlyRevenue -ddn build supergraph-manifest -``` - -You are now ready to start using your API! During the previous step the console will return some information including the Console URL. Load this link in your browser to explore the API you have created for your Cassandra database. The UI will resemble something like this. +Please [submit a Github issue](https://github.com/hasura/graphql-engine/issues/new) +if you encounter any problems! From c1652c4e47a9588243dde32c7f11cb5b6492e5aa Mon Sep 17 00:00:00 2001 From: "David A. Ventimiglia" Date: Tue, 17 Sep 2024 10:58:33 -0700 Subject: [PATCH 08/11] Moved logo-white-r.png to logo.png --- .../hasura/cassandra/{logo-white-r.png => logo.png} | Bin registry/hasura/cassandra/metadata.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename registry/hasura/cassandra/{logo-white-r.png => logo.png} (100%) diff --git a/registry/hasura/cassandra/logo-white-r.png b/registry/hasura/cassandra/logo.png similarity index 100% rename from registry/hasura/cassandra/logo-white-r.png rename to registry/hasura/cassandra/logo.png diff --git a/registry/hasura/cassandra/metadata.json b/registry/hasura/cassandra/metadata.json index 6bc7b879..ed9f8e44 100644 --- a/registry/hasura/cassandra/metadata.json +++ b/registry/hasura/cassandra/metadata.json @@ -3,7 +3,7 @@ "namespace": "hasura", "description": "The Cassandra Native Data Connector allows for connecting to a Cassandra instance giving you an instant GraphQL API on top of your Cassandra data.", "title": "Cassandra Native Data Connector", - "logo": "logo-white-r.png", + "logo": "logo.png", "tags": [ "database" ], From 958fa8acd5b16b20a0a0630318cf01962beeb971 Mon Sep 17 00:00:00 2001 From: "David A. Ventimiglia" Date: Tue, 17 Sep 2024 11:25:24 -0700 Subject: [PATCH 09/11] Bumped to v1.0.1 1. Removed reference to `ddn dev` from README.md 2. Renamed logo-white-r.png to logo.png 3. Replaced connector defintion with one pointing to ndc-cassandra release v1.0.1 - Replaced kstott with ghcr.io/hasura --- registry/hasura/cassandra/metadata.json | 4 ++-- .../cassandra/releases/v1.0.0/connector-packaging.json | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/registry/hasura/cassandra/metadata.json b/registry/hasura/cassandra/metadata.json index ed9f8e44..0cf03ccd 100644 --- a/registry/hasura/cassandra/metadata.json +++ b/registry/hasura/cassandra/metadata.json @@ -21,8 +21,8 @@ "repository": "https://github.com/hasura/ndc-cassandra/", "version": [ { - "tag": "v1.0.0", - "hash": "d24a7b7c25026ffaf9aad48a6c29d47003c0c03a", + "tag": "v1.0.1", + "hash": "c12a7356e20d01559e5824f7956234a9c6f43b1e", "is_verified": true } ] diff --git a/registry/hasura/cassandra/releases/v1.0.0/connector-packaging.json b/registry/hasura/cassandra/releases/v1.0.0/connector-packaging.json index c5125fb8..3783d7fe 100644 --- a/registry/hasura/cassandra/releases/v1.0.0/connector-packaging.json +++ b/registry/hasura/cassandra/releases/v1.0.0/connector-packaging.json @@ -1,11 +1,11 @@ { "version": "1.0.0", - "uri": "https://github.com/hasura/ndc-cassandra/releases/download/v1.0.0/connector-definition.tgz", + "uri": "https://github.com/hasura/ndc-cassandra/releases/download/v1.0.1/connector-definition.tgz", "checksum": { "type": "sha256", - "value": "a1375bffffb8bbe77b80f42cbdeeab6697717355c92810fefb93d18f8f7f8f6c" + "value": "86461486360f0c651780239e3dffc51c3a6f4fd9c284d7e405ee75c0a0cdb9f0" }, "source": { - "hash": "d24a7b7c25026ffaf9aad48a6c29d47003c0c03a" + "hash": "c12a7356e20d01559e5824f7956234a9c6f43b1e" } } From 926bb558141c38275a9c50a5973677d769d6ce5d Mon Sep 17 00:00:00 2001 From: "David A. Ventimiglia" Date: Thu, 19 Sep 2024 11:21:37 -0700 Subject: [PATCH 10/11] Bumped the cassandra version to v1.0.1 --- registry/hasura/cassandra/metadata.json | 2 +- .../releases/v1.0.1/connector-packaging.json | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 registry/hasura/cassandra/releases/v1.0.1/connector-packaging.json diff --git a/registry/hasura/cassandra/metadata.json b/registry/hasura/cassandra/metadata.json index 0cf03ccd..e5da0982 100644 --- a/registry/hasura/cassandra/metadata.json +++ b/registry/hasura/cassandra/metadata.json @@ -7,7 +7,7 @@ "tags": [ "database" ], - "latest_version": "v1.0.0" + "latest_version": "v1.0.1" }, "author": { "support_email": "support@hasura.io", diff --git a/registry/hasura/cassandra/releases/v1.0.1/connector-packaging.json b/registry/hasura/cassandra/releases/v1.0.1/connector-packaging.json new file mode 100644 index 00000000..ac8fb858 --- /dev/null +++ b/registry/hasura/cassandra/releases/v1.0.1/connector-packaging.json @@ -0,0 +1,11 @@ +{ + "version": "1.0.1", + "uri": "https://github.com/hasura/ndc-cassandra/releases/download/v1.0.1/connector-definition.tgz", + "checksum": { + "type": "sha256", + "value": "6840b4e49830c8f7c1b4760d9c36a4e00bc0df83217e0d4dc927b03490051b82" + }, + "source": { + "hash": "c12a7356e20d01559e5824f7956234a9c6f43b1e" + } +} From 9a097df0dc88530ac22ff74ce3586e73c3141fef Mon Sep 17 00:00:00 2001 From: "David A. Ventimiglia" Date: Thu, 19 Sep 2024 11:29:14 -0700 Subject: [PATCH 11/11] Bumped the cassandra version to v1.0.1 --- .../hasura/cassandra/releases/v1.0.1/connector-packaging.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/registry/hasura/cassandra/releases/v1.0.1/connector-packaging.json b/registry/hasura/cassandra/releases/v1.0.1/connector-packaging.json index ac8fb858..3acd0fca 100644 --- a/registry/hasura/cassandra/releases/v1.0.1/connector-packaging.json +++ b/registry/hasura/cassandra/releases/v1.0.1/connector-packaging.json @@ -3,9 +3,9 @@ "uri": "https://github.com/hasura/ndc-cassandra/releases/download/v1.0.1/connector-definition.tgz", "checksum": { "type": "sha256", - "value": "6840b4e49830c8f7c1b4760d9c36a4e00bc0df83217e0d4dc927b03490051b82" + "value": "7c96e93c6f6ddcd190f6e11e195e10a6d5bab0123df3481919786fdda0285bdc" }, "source": { - "hash": "c12a7356e20d01559e5824f7956234a9c6f43b1e" + "hash": "c12a7356e20d01559e5824f7956234a9c6f43b1e" } }