docs: remove heroku one-click and references

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7164
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
GitOrigin-RevId: e0fb2af227f323f82a401c81135a18f813cb3ce3
This commit is contained in:
Rob Dominguez 2022-12-06 12:06:24 -06:00 committed by hasura-bot
parent dc065cb98d
commit 6446c798ab
11 changed files with 46 additions and 304 deletions

View File

@ -31,7 +31,7 @@ engine instance via the console / metadata APIs / CLI:
Head to `Data -> Manage -> Connect database`
<Thumbnail src='/img/databases/connect-db_step-1_console_2.10.1.png' alt='Connect default database' width='1000px' />
<Thumbnail src="/img/databases/connect-db_step-1_console_2.10.1.png" alt="Connect default database" width="1000px" />
</TabItem>
<TabItem value="cli" label="CLI">
@ -107,7 +107,7 @@ X-Hasura-Role: admin
:::info Create a new Postgres DB inside Hasura Cloud
For a quick start with Hasura, you can also create a Postgres database with Heroku from inside of Hasura Cloud. For more
For a quick start with Hasura, you can also create a Postgres database with Neon from inside of Hasura Cloud. For more
information, see
[Connect new/existing database on Hasura Cloud](/getting-started/getting-started-cloud.mdx#create-new-db-with-cloud).

View File

@ -1,270 +0,0 @@
---
description: Deploy Hasura GraphQL engine with Heroku
keywords:
- hasura
- docs
- deployment
- heroku
sidebar_position: 5
sidebar_label: Using Heroku (one-click)
---
import Thumbnail from '@site/src/components/Thumbnail';
import TOCInline from '@theme/TOCInline';
import LatestRelease from '@site/src/components/LatestRelease';
# Run Hasura GraphQL engine on Heroku
## Introduction
This guide shows how to deploy Hasura GraphQL engine on Heroku.
## Deploying Hasura on Heroku
<TOCInline toc={toc} filterTOC={'deploying-hasura-on-heroku'} />
### Option 1: One-click deployment {#heroku-one-click}
Click the below button to deploy Hasura on Heroku in a few seconds:
[<img src="https://camo.githubusercontent.com/83b0e95b38892b49184e07ad572c94c8038323fb/68747470733a2f2f7777772e6865726f6b7563646e2e636f6d2f6465706c6f792f627574746f6e2e737667" className="no-shadow" width="200" alt="heroku_deploy_button" />](https://heroku.com/deploy?template=https://github.com/hasura/graphql-engine-heroku)
:::info Note
If you don't have an account on Heroku, you need to sign up on Heroku. You won't need a credit card, and once you sign
up you'll be redirected to your Heroku app creation page automatically.
:::
<Thumbnail src='/img/deployment/heroku-app.png' alt='Deploy to Heroku' />
Heroku's free Postgres add-on is automatically provisioned.
Once the deployment is complete, click on the `View` button to open the Hasura Console where you can
[connect a database](#heroku-connect-db).
### Option 2: Deploy via Heroku CLI {#heroku-cli-deployment}
Follow these instructions to create a new Heroku app with a Postgres add-on using the Heroku CLI.
#### Step 1: Clone the Hasura GraphQL engine Heroku app
The Hasura app with Heroku buildpack/configuration is available at:
[https://github.com/hasura/graphql-engine-heroku](https://github.com/hasura/graphql-engine-heroku)
#### Step 2: Create an app with **--stack=container**
Use the [Heroku CLI](https://devcenter.heroku.com/articles/heroku-cli) to create a new Heroku app from inside the cloned
directory. Let's call the app `todo-hasura1`.
```bash
# Replace todo-hasura1 with whatever you'd like your app to be called
$ heroku create todo-hasura1 --stack=container
Creating ⬢ todo-hasura1... done, stack is container
https://todo-hasura1.herokuapp.com/ | https://git.heroku.com/todo-hasura1.git
```
**Note**:
- `HEROKU_GIT_REMOTE`: _https://git.heroku.com/todo-hasura1.git_
- `HEROKU_APP_URL`: _https://todo-hasura1.herokuapp.com/_
#### Step 3: Create the Heroku Postgres add-on
Create the Postgres add-on in your Heroku app.
```bash
$ heroku addons:create heroku-postgresql:hobby-dev -a todo-hasura1
Creating heroku-postgresql:hobby-dev on ⬢ todo-hasura1... free
Database has been created and is available
! This database is empty. If upgrading, you can transfer
! data from another database with pg:copy
Created postgresql-angular-20334 as DATABASE_URL
Use heroku addons:docs heroku-postgresql to view documentation
```
#### Step 4: **git push** to deploy
Remember to change `HEROKU_GIT_REMOTE` to your git remote below. In our case: `https://git.heroku.com/todo-hasura1.git`.
```bash
$ git init && git add .
$ git commit -m "first commit"
$ git remote add heroku <HEROKU_GIT_REMOTE>
$ git push heroku master
```
Visit `https://todo-hasura1.herokuapp.com` (replace `todo-hasura1` with your app name) and you should see the Hasura
console where you can [connect a database](#heroku-connect-db).
## Connecting a database {#heroku-connect-db}
<TOCInline toc={toc} filterTOC={'heroku-connect-db'} />
### Option 1: New database
Head to the `Data` tab on the console to connect your database. You can connect to the Heroku Postgres database that was
set up with your deployment using the `DATABASE_URL` env var.
<Thumbnail src='/img/deployment/heroku_connect_db.png' alt='Connect db on Heroku' width='1200px' />
### Option 2: Existing database
Let's say you have an existing [Heroku Postgres](https://www.heroku.com/postgres) database with data in it, and you'd
like to add GraphQL to it.
#### Step 1: Configure environment variables
Add an env var, say `PG_DATABASE_URL` with your existing Heroku Postgres database URL and a
`HASURA_GRAPHQL_ADMIN_SECRET` if you want to [secure your endpoint](#heroku-secure).
<Thumbnail src='/img/deployment/heroku_database_env.png' alt='Configure environment variables' />
:::info Note
The Hasura GraphQL engine needs access permissions to your Postgres database as described in
[Postgres permissions](/deployment/postgres-requirements.mdx#postgres-permissions).
:::
#### Step 2: Connect your database
Wait for the GraphQL engine to restart then head to the `Data` tab on the console and connect your database using the
env var added above.
<Thumbnail src='/img/deployment/heroku_connect_db.png' alt='Connect db on Heroku' width='1200px' />
#### Step 3: Track tables and relationships
See [Setting up a GraphQL schema using an existing Postgres database](/schema/postgres/using-existing-database.mdx) to
enable GraphQL over the database.
## Securing the GraphQL endpoint {#heroku-secure}
To make sure that your GraphQL endpoint and the Hasura console are not publicly accessible, you need to configure an
admin secret key.
### Add an admin secret
Head to the config-vars URL on your Heroku dashboard and set the `HASURA_GRAPHQL_ADMIN_SECRET` environment variable.
<Thumbnail src='/img/deployment/secure-heroku.png' alt='Add an admin secret' />
Setting this environment variable will automatically restart the dyno. Now when you access your console, you'll be
prompted for the admin secret key.
<Thumbnail src='/img/deployment/access-key-console.png' alt='Prompt for the admin secret' />
:::info Note
The `HASURA_GRAPHQL_ADMIN_SECRET` should never be passed from the client to Hasura GraphQL engine as it would give the
client full admin rights to your Hasura instance. See [Authentication & Authorization](/auth/index.mdx) for information
on setting up authentication.
:::
#### (optional) Use the admin secret with the CLI
In case you're using the CLI to open the Hasura console, use the `admin-secret` flag when you open the console:
```bash
hasura console --admin-secret=myadminsecretkey
```
## GraphQL engine server logs {#heroku-logs}
You can use the [Heroku CLI](https://devcenter.heroku.com/articles/heroku-cli) to check the logs of the Hasura GraphQL
engine deployed on Heroku:
```bash
$ heroku logs --app <hasura-graphql-engine-app-name>
2018-10-09T11:18:21.306000+00:00 app[web.1]: {"timestamp":"2018-10-09T11:18:21.305+0000", "level":"info", "type":"http-log", "detail":{"status":200, "query_hash":"48c74f902b53a886f9ddc1b7dd12a4a6020d70c3", "http_version":"HTTP/1.1", "query_execution_time":9.477913e-3, "request_id":"b7bb6fb3-97b3-4c6f-a54a-1e0f71a190e9", "url":"/v1/graphql", "user":{"x-hasura-role":"admin"}, "ip":"171.61.77.16", "response_size":15290, "method":"POST", "detail":null}}
...
```
**See:**
- [https://devcenter.heroku.com/articles/logging](https://devcenter.heroku.com/articles/logging) for more details on
logging on Heroku.
- [Hasura GraphQL engine logs](/deployment/logging.mdx) for more details on Hasura logs
## Updating GraphQL engine {#heroku-update}
This section will help you update the Hasura GraphQL engine running on Heroku.
The current latest version is:
<code>
hasura/graphql-engine:
<LatestRelease />
</code>
### Update to the latest version
#### Step 1: Clone the Hasura GraphQL engine Heroku app
The Hasura app with Heroku buildpack/configuration is available at:
[https://github.com/hasura/graphql-engine-heroku](https://github.com/hasura/graphql-engine-heroku).
Clone the above repository.
```bash
git clone https://github.com/hasura/graphql-engine-heroku
cd graphql-engine-heroku
```
If you already have this, then pull the latest changes which will have the updated GraphQL engine Docker image.
#### Step 2: Attach your Heroku app
Let's say your Heroku app is called `hasura-heroku` and is running on `https://hasura-heroku.herokuapp.com`.
From inside the `graphql-engine-heroku` directory, use the
[Heroku CLI](https://devcenter.heroku.com/articles/heroku-cli) to configure the git repo you cloned in Step 1 to be able
to push to this app.
```bash
# Replace <hasura-heroku> with your Heroku app's name
heroku git:remote -a <hasura-heroku>
heroku stack:set container -a <hasura-heroku>
```
You can find your Heroku git repo in your Heroku - Settings - Info - Heroku Git URL
#### Step 3: **git push** to deploy the latest Hasura GraphQL engine
When you `git push` to deploy, the Heroku app will get updated with the latest changes:
```bash
git push heroku master
```
### Deploy a specific version
Head to the `Dockerfile` in the git repo you cloned in step 1. Change the `FROM` line to the specific version you want.
A list of all releases can be found at
[https://github.com/hasura/graphql-engine/releases](https://github.com/hasura/graphql-engine/releases).
```docker {1}
FROM hasura/graphql-engine:v1.0.0
...
...
```
Change `v1.0.0` to `v1.1.0` for example, commit this and then `git push heroku master` to deploy.
:::info Note
If you are downgrading to an older version of the GraphQL engine you might need to downgrade your metadata catalogue
version as described in [Downgrading Hasura GraphQL engine](/deployment/downgrading.mdx)
:::
## Advanced
- [Setting up migrations](/migrations-metadata-seeds/migrations-metadata-setup.mdx)

View File

@ -22,7 +22,6 @@ If you want to take Hasura for a spin and check out the features, the following
you:
- [Deploy using Hasura Cloud](/getting-started/getting-started-cloud.mdx) (**recommended**)
- [Deploy using Heroku](/deployment/deployment-guides/heroku.mdx#heroku-one-click)
- [Deploy using Render One-click Deploy with Managed PostgreSQL](/deployment/deployment-guides/render-one-click.mdx)
- [Deploy using Nhost One-click Deploy with Managed PostgreSQL, Storage, and Auth](/deployment/deployment-guides/nhost-one-click.mdx)
@ -33,7 +32,6 @@ Choose from the full list of deployment guides:
- [Deploy using Hasura Cloud](/getting-started/getting-started-cloud.mdx) (**recommended**)
- [Deploy using Docker](/deployment/deployment-guides/docker.mdx)
- [Deploy using Kubernetes](/deployment/deployment-guides/kubernetes.mdx)
- [Deploy using Heroku](/deployment/deployment-guides/heroku.mdx)
- [Deploy using Digital Ocean One-click App on Marketplace](/deployment/deployment-guides/digital-ocean-one-click.mdx)
- [Deploy using Azure Container Instances with Postgres](/deployment/deployment-guides/azure-container-instances-postgres.mdx)
- [Deploy using Google Cloud Platform with Kubernetes engine and Cloud SQL](/deployment/deployment-guides/google-kubernetes-engine-cloud-sql.mdx)

View File

@ -20,7 +20,6 @@ simple as changing the image tag to the version you want.
Based on your deployment method, follow the appropriate guide to
downgrade the GraphQL engine version you're running:
- [Updating on Heroku](/deployment/deployment-guides/heroku.mdx#heroku-update)
- [Updating on Docker](/deployment/deployment-guides/docker.mdx#docker-update)
- [Updating on Kubernetes](/deployment/deployment-guides/kubernetes.mdx#kubernetes-update)

View File

@ -16,7 +16,6 @@ sidebar_label: Server logs
Based on your deployment method, the Hasura GraphQL engine logs can be accessed as follows:
- [On Heroku](/deployment/deployment-guides/heroku.mdx#heroku-logs)
- [On Docker](/deployment/deployment-guides/docker.mdx#docker-logs)
- [On Kubernetes](/deployment/deployment-guides/kubernetes.mdx#kubernetes-logs)
- [On Digital Ocean](/deployment/deployment-guides/digital-ocean-one-click.mdx#do-logs)
@ -46,21 +45,21 @@ Default enabled log-types are: `startup, http-log, webhook-log, websocket-log, j
All the log-types that can be enabled/disabled are:
| Log type | Description | Log Level |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
| `startup` | Information that is logged during startup | `info` |
| `query-log` | Logs: the entire GraphQL query with variables, generated SQL statements (only for database queries, not for mutations/subscriptions or remote schema and action queries), the operation name (if provided in the GraphQL request) | `info` |
| `http-log` | Http access and error logs at the webserver layer (handling GraphQL and metadata requests) | `info` and `error` |
| `websocket-log` | Websocket events and error logs at the websocket server layer (handling GraphQL requests) | `info` and `error` |
| `webhook-log` | Logs responses and errors from the authorization webhook (if setup) | `info` and `error` |
| `jwk-refresh-log` | Logs information and errors about periodic refreshing of JWK | `info` and `error` |
| Log type | Description | Log Level |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
| `startup` | Information that is logged during startup | `info` |
| `query-log` | Logs: the entire GraphQL query with variables, generated SQL statements (only for database queries, not for mutations/subscriptions or remote schema and action queries), the operation name (if provided in the GraphQL request) | `info` |
| `http-log` | Http access and error logs at the webserver layer (handling GraphQL and metadata requests) | `info` and `error` |
| `websocket-log` | Websocket events and error logs at the websocket server layer (handling GraphQL requests) | `info` and `error` |
| `webhook-log` | Logs responses and errors from the authorization webhook (if setup) | `info` and `error` |
| `jwk-refresh-log` | Logs information and errors about periodic refreshing of JWK | `info` and `error` |
Configurable log-types
Apart from the above, there are other internal log-types which cannot be configured:
| Log type | Description | Log Level |
|----------------------|-----------------------------------------------------------------------------------------------------|--------------------|
| -------------------- | --------------------------------------------------------------------------------------------------- | ------------------ |
| `pg-client` | Logs from the postgres client library | `warn` |
| `metadata` | Logs inconsistent metadata items | `warn` |
| `telemetry-log` | Logs error (if any) while sending out telemetry data | `info` |
@ -475,7 +474,7 @@ The `type` in the log will be `health-check-log` and details of the health check
The `detail` field value is an object contains the following members.
| Name | Type | Description |
|---------------|----------------------------|--------------------------------------------------------|
| ------------- | -------------------------- | ------------------------------------------------------ |
| `source_name` | string | The name of the source |
| `status` | `HealthCheckStatus` string | The health status of the source |
| `timestamp` | string | The timestamp in UTC when the health check is finished |
@ -484,15 +483,16 @@ The `detail` field value is an object contains the following members.
- **HealthCheckStatus** is a mandatory field whose values are as follows.
| Health check status | Description | Log level |
|---------------------|--------------------------------------------------------------------------------------|-----------|
| `OK` | Health check succeeded with no errors. | `info` |
| `FAILED` | Health check is failed maybe due to bad connection config. | `warn` |
| `TIMEOUT` | Health check is timed out. The timeout value is specified in the healch check config | `warn` |
| `ERROR` | Health check results in an exception. | `warn` |
| Health check status | Description | Log level |
| ------------------- | ------------------------------------------------------------------------------------ | --------- |
| `OK` | Health check succeeded with no errors. | `info` |
| `FAILED` | Health check is failed maybe due to bad connection config. | `warn` |
| `TIMEOUT` | Health check is timed out. The timeout value is specified in the healch check config | `warn` |
| `ERROR` | Health check results in an exception. | `warn` |
- **HealthCheckError** contains more information about the health check exception when the status is `ERROR`.
For other statuses the value will be `null`. The `error` object contains the following fields
- `message`: _string_. A very brief description about the error.
- `extra`: _any json_. Contains extra and detailed information about the error.

View File

@ -18,7 +18,6 @@ Depending on your deployment method, follow one of these guides to configure an
access to your GraphQL endpoint and the Hasura console:
- Hasura Cloud projects have a randomly generated admin secret added by default at the time of creation.
- [For Heroku](/deployment/deployment-guides/heroku.mdx#heroku-secure)
- [For Docker](/deployment/deployment-guides/docker.mdx#docker-secure)
- [For Kubernetes](/deployment/deployment-guides/kubernetes.mdx#kubernetes-secure)
- [For Digital Ocean](/deployment/deployment-guides/digital-ocean-one-click.mdx#digital-ocean-secure)

View File

@ -10,7 +10,7 @@ sidebar_position: 110
sidebar_label: Updating GraphQL engine
---
import LatestRelease from "@site/src/components/LatestRelease";
import LatestRelease from '@site/src/components/LatestRelease';
# Updating Hasura GraphQL engine
@ -22,7 +22,6 @@ simple as changing the image tag.
Based on your deployment method, follow the appropriate guide to update
the GraphQL engine version you're running:
- [Updating on Heroku](/deployment/deployment-guides/heroku.mdx#heroku-update)
- [Updating on Docker](/deployment/deployment-guides/docker.mdx#docker-update)
- [Updating on Kubernetes](/deployment/deployment-guides/kubernetes.mdx#kubernetes-update)
- [Updating on Digital Ocean](/deployment/deployment-guides/digital-ocean-one-click.mdx#do-updating)

View File

@ -30,7 +30,11 @@ This opens a form on the right where you can create your new project.
Choose a pricing plan and select a region for your project.
<Thumbnail src='/img/projects/create-project_console_2.12.png' alt='Create new project in Hasura Console' width='900px' />
<Thumbnail
src='/img/projects/create-project_console_2.12.png'
alt='Create new project in Hasura Console'
width='900px'
/>
Once you have completed the project setup, click `Create Project`.
@ -54,20 +58,32 @@ Hasura Cloud does not host databases, but does provide integrations with which y
many 3rd party managed cloud providers. Check out a
[list of supported databases here](/databases/index.mdx#supported-databases).
To get started with a demo database, choose `Create Heroku Database -> Create Database`, and follow the prompts to
authenticate with Heroku. Hasura Cloud will integrate with your Heroku account and manage the initial setup of a
dev-tier Postgres instance. You can always upgrade the instance and manage options later through your Heroku account.
To get started with a demo database, choose `Create New Database`:
<Thumbnail src='/img/projects/create-database-heroku_console_2.12.png' alt='database setup with existing
database' width='700px' />
<Thumbnail
src='/img/projects/create-database-neon-2.15.png'
alt='database setup with existing
database'
width='700px'
/>
Select `Create Neon Database` and follow the prompts. Hasura Cloud will integrate with your Neon account and manage the
initial setup of a Postgres instance. You can always upgrade the instance and manage options later through your Neon
account:
<Thumbnail
src='/img/projects/connect-database-neon-2.15.png'
alt='database setup with existing
database'
width='700px'
/>
### Existing database
To use an existing database, choose `Connect existing database` and enter your database connection URL and enter your
database connection string (looks like `postgres://username:password@hostname:port/dbname`).
<Thumbnail src='/img/projects/connect-database_console_2.12.png' alt='database setup with new database' width='700px' />
<Thumbnail src='/img/projects/connect-database_console_2.15.png' alt='database setup with new database' width='700px' />
:::info
@ -105,4 +121,5 @@ Make sure your database user has the right
## More databases
Support for more databases is coming soon. Stay up to date with [supported databases here](/databases/index.mdx#supported-databases).
Support for more databases is coming soon. Stay up to date with
[supported databases here](/databases/index.mdx#supported-databases).

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB