SingleStore Data Connector
The Hasura SingleStore Connector ("the connector") enables you to connect to a SingleStore database and gives instant access to a GraphQL API on top of your data.
This connector is built using the Typescript Data Connector SDK and, it implements the Data Connector Spec.
Features
The following matrix lists the features supported by the Hasura SingleStore connector:
Feature | Supported | Notes |
---|---|---|
Native Queries + Logical Models | ❌ | |
Simple Object Query | ✅ | |
Filter / Search | ✅ | |
Simple Aggregation | ✅ | |
Sort | ✅ | |
Paginate | ✅ | |
Table Relationships | ✅ | |
Views | ✅ | |
Distinct | ✅ | |
Remote Relationships | ✅ | |
Mutations | ❌ | coming soon |
Prerequisites
- Create a Hasura Cloud account
- Please ensure you have the DDN CLI and Docker installed
- Create a supergraph
- Create a subgraph
- An active SingleStore deployment that serves as the data source for the API.
The steps below explain how to initialize and configure a connector on your local machine (typically for development purposes).You can learn how to deploy a connector to Hasura DDN — after it's been configured — here.
Using the SingleStore connector
With the context set for an existing subgraph, initialize the connector:
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 | Default | Description |
---|---|---|
SINGLESTORE_HOST | localhost | Hostname of the SingleStore database to connect with. |
SINGLESTORE_PORT | 3306 | Port number of the SingleStore database. |
SINGLESTORE_USER | SingleStore user to authenticate as. | |
SINGLESTORE_PASSWORD | Password of the SingleStore database user. | |
SINGLESTORE_DATABASE | Name of the SingleStore database to connect with. | |
SINGLESTORE_SSL_CA | CA certificate. | |
SINGLESTORE_SSL_CERT | Certificate chain in PEM format. | |
SINGLESTORE_SSL_KEY | Private key in PEM format. | |
SINGLESTORE_SSL_CIPHERS | Cipher suite specification. If specified, it replaces the default value. | |
SINGLESTORE_SSL_PASSPHRASE | Shared passphrase used for a single private key. | |
SINGLESTORE_SSL_REJECT_UNAUTHORIZED | true | If enabled, the server rejects any connection that is not authorized with the list of supplied CAs. |
The connector uses MySQL2 library to establish a connection. For more information, refer to Connection options and Pool options.
After the CLI initializes the connector, you'll need to:
- Introspect the source.
- Add your models, commands, and relationships.
- Create a new build.
- Test it by running your project along with the connector.
Note
SingleStore does not support foreign keys. Relationships between tables must be added manually. You can define
relationships by appending relationship information to the .hml
files generated in the previous step. For information
on defining relationships, refer to Relationships. For
example, to add a relationship from a message
table to the user
table, append following text to the DbMessage.hml
file:
--- kind: Relationship version: v1 definition: name: user sourceType: DbMessage target: model: name: DbUser subgraph: app relationshipType: Object mapping: - source: fieldPath: - fieldName: userId target: modelField: - fieldName: id description: The user details for a message
License
The SingleStore connector is available under the Apache License 2.0.