feat: add hasura cloud

This commit is contained in:
nafees nazik
2023-10-18 22:40:34 +05:30
parent ebe4f70b51
commit a6e02238ad
4 changed files with 575 additions and 560 deletions
+22 -19
View File
@@ -14,6 +14,7 @@ import {
INTEGRATION_GITHUB, INTEGRATION_GITHUB,
INTEGRATION_GITLAB, INTEGRATION_GITLAB,
INTEGRATION_HASHICORP_VAULT, INTEGRATION_HASHICORP_VAULT,
INTEGRATION_HASURA_CLOUD,
INTEGRATION_HEROKU, INTEGRATION_HEROKU,
INTEGRATION_LARAVELFORGE, INTEGRATION_LARAVELFORGE,
INTEGRATION_NETLIFY, INTEGRATION_NETLIFY,
@@ -76,7 +77,8 @@ export interface IIntegration {
| "cloud-66" | "cloud-66"
| "northflank" | "northflank"
| "windmill" | "windmill"
| "gcp-secret-manager"; | "gcp-secret-manager"
| "hasura-cloud";
integrationAuth: Types.ObjectId; integrationAuth: Types.ObjectId;
metadata: Metadata; metadata: Metadata;
} }
@@ -86,67 +88,67 @@ const integrationSchema = new Schema<IIntegration>(
workspace: { workspace: {
type: Schema.Types.ObjectId, type: Schema.Types.ObjectId,
ref: "Workspace", ref: "Workspace",
required: true, required: true
}, },
environment: { environment: {
type: String, type: String,
required: true, required: true
}, },
isActive: { isActive: {
type: Boolean, type: Boolean,
required: true, required: true
}, },
url: { url: {
// for custom self-hosted integrations (e.g. self-hosted GitHub enterprise) // for custom self-hosted integrations (e.g. self-hosted GitHub enterprise)
type: String, type: String,
default: null, default: null
}, },
app: { app: {
// name of app in provider // name of app in provider
type: String, type: String,
default: null, default: null
}, },
appId: { appId: {
// id of app in provider // id of app in provider
type: String, type: String,
default: null, default: null
}, },
targetEnvironment: { targetEnvironment: {
// target environment // target environment
type: String, type: String,
default: null, default: null
}, },
targetEnvironmentId: { targetEnvironmentId: {
type: String, type: String,
default: null, default: null
}, },
targetService: { targetService: {
// railway-specific service // railway-specific service
// qovery-specific project // qovery-specific project
type: String, type: String,
default: null, default: null
}, },
targetServiceId: { targetServiceId: {
// railway-specific service // railway-specific service
// qovery specific project // qovery specific project
type: String, type: String,
default: null, default: null
}, },
owner: { owner: {
// github-specific repo owner-login // github-specific repo owner-login
type: String, type: String,
default: null, default: null
}, },
path: { path: {
// aws-parameter-store-specific path // aws-parameter-store-specific path
// (also) vercel preview-branch // (also) vercel preview-branch
type: String, type: String,
default: null, default: null
}, },
region: { region: {
// aws-parameter-store-specific path // aws-parameter-store-specific path
type: String, type: String,
default: null, default: null
}, },
scope: { scope: {
// qovery-specific scope // qovery-specific scope
@@ -183,19 +185,20 @@ const integrationSchema = new Schema<IIntegration>(
INTEGRATION_DIGITAL_OCEAN_APP_PLATFORM, INTEGRATION_DIGITAL_OCEAN_APP_PLATFORM,
INTEGRATION_CLOUD_66, INTEGRATION_CLOUD_66,
INTEGRATION_NORTHFLANK, INTEGRATION_NORTHFLANK,
INTEGRATION_GCP_SECRET_MANAGER INTEGRATION_GCP_SECRET_MANAGER,
INTEGRATION_HASURA_CLOUD
], ],
required: true, required: true
}, },
integrationAuth: { integrationAuth: {
type: Schema.Types.ObjectId, type: Schema.Types.ObjectId,
ref: "IntegrationAuth", ref: "IntegrationAuth",
required: true, required: true
}, },
secretPath: { secretPath: {
type: String, type: String,
required: true, required: true,
default: "/", default: "/"
}, },
metadata: { metadata: {
type: Schema.Types.Mixed, type: Schema.Types.Mixed,
@@ -203,7 +206,7 @@ const integrationSchema = new Schema<IIntegration>(
} }
}, },
{ {
timestamps: true, timestamps: true
} }
); );
@@ -16,6 +16,7 @@ import {
INTEGRATION_GITHUB, INTEGRATION_GITHUB,
INTEGRATION_GITLAB, INTEGRATION_GITLAB,
INTEGRATION_HASHICORP_VAULT, INTEGRATION_HASHICORP_VAULT,
INTEGRATION_HASURA_CLOUD,
INTEGRATION_HEROKU, INTEGRATION_HEROKU,
INTEGRATION_LARAVELFORGE, INTEGRATION_LARAVELFORGE,
INTEGRATION_NETLIFY, INTEGRATION_NETLIFY,
@@ -62,7 +63,8 @@ import {
| "teamcity" | "teamcity"
| "northflank" | "northflank"
| "windmill" | "windmill"
| "gcp-secret-manager"; | "gcp-secret-manager"
| "hasura-cloud";
teamId: string; teamId: string;
accountId: string; accountId: string;
url: string; url: string;
@@ -87,7 +89,7 @@ import {
workspace: { workspace: {
type: Schema.Types.ObjectId, type: Schema.Types.ObjectId,
ref: "Workspace", ref: "Workspace",
required: true, required: true
}, },
integration: { integration: {
type: String, type: String,
@@ -117,89 +119,85 @@ import {
INTEGRATION_DIGITAL_OCEAN_APP_PLATFORM, INTEGRATION_DIGITAL_OCEAN_APP_PLATFORM,
INTEGRATION_CLOUD_66, INTEGRATION_CLOUD_66,
INTEGRATION_NORTHFLANK, INTEGRATION_NORTHFLANK,
INTEGRATION_GCP_SECRET_MANAGER INTEGRATION_GCP_SECRET_MANAGER,
INTEGRATION_HASURA_CLOUD
], ],
required: true, required: true
}, },
teamId: { teamId: {
// vercel-specific integration param // vercel-specific integration param
type: String, type: String
}, },
url: { url: {
// for any self-hosted integrations (e.g. self-hosted hashicorp-vault) // for any self-hosted integrations (e.g. self-hosted hashicorp-vault)
type: String, type: String
}, },
namespace: { namespace: {
// hashicorp-vault-specific integration param // hashicorp-vault-specific integration param
type: String, type: String
}, },
accountId: { accountId: {
// netlify-specific integration param // netlify-specific integration param
type: String, type: String
}, },
refreshCiphertext: { refreshCiphertext: {
type: String, type: String,
select: false, select: false
}, },
refreshIV: { refreshIV: {
type: String, type: String,
select: false, select: false
}, },
refreshTag: { refreshTag: {
type: String, type: String,
select: false, select: false
}, },
accessIdCiphertext: { accessIdCiphertext: {
type: String, type: String,
select: false, select: false
}, },
accessIdIV: { accessIdIV: {
type: String, type: String,
select: false, select: false
}, },
accessIdTag: { accessIdTag: {
type: String, type: String,
select: false, select: false
}, },
accessCiphertext: { accessCiphertext: {
type: String, type: String,
select: false, select: false
}, },
accessIV: { accessIV: {
type: String, type: String,
select: false, select: false
}, },
accessTag: { accessTag: {
type: String, type: String,
select: false, select: false
}, },
accessExpiresAt: { accessExpiresAt: {
type: Date, type: Date,
select: false, select: false
}, },
algorithm: { // the encryption algorithm used algorithm: {
// the encryption algorithm used
type: String, type: String,
enum: [ALGORITHM_AES_256_GCM], enum: [ALGORITHM_AES_256_GCM],
required: true, required: true
}, },
keyEncoding: { keyEncoding: {
type: String, type: String,
enum: [ enum: [ENCODING_SCHEME_UTF8, ENCODING_SCHEME_BASE64],
ENCODING_SCHEME_UTF8, required: true
ENCODING_SCHEME_BASE64,
],
required: true,
}, },
metadata: { metadata: {
type: Schema.Types.Mixed type: Schema.Types.Mixed
} }
}, },
{ {
timestamps: true, timestamps: true
} }
); );
export const IntegrationAuth = model<IIntegrationAuth>( export const IntegrationAuth = model<IIntegrationAuth>("IntegrationAuth", integrationAuthSchema);
"IntegrationAuth",
integrationAuthSchema
);
+48 -36
View File
@@ -22,7 +22,7 @@ export const INTEGRATION_GITLAB = "gitlab";
export const INTEGRATION_RENDER = "render"; export const INTEGRATION_RENDER = "render";
export const INTEGRATION_RAILWAY = "railway"; export const INTEGRATION_RAILWAY = "railway";
export const INTEGRATION_FLYIO = "flyio"; export const INTEGRATION_FLYIO = "flyio";
export const INTEGRATION_LARAVELFORGE = "laravel-forge" export const INTEGRATION_LARAVELFORGE = "laravel-forge";
export const INTEGRATION_CIRCLECI = "circleci"; export const INTEGRATION_CIRCLECI = "circleci";
export const INTEGRATION_TRAVISCI = "travisci"; export const INTEGRATION_TRAVISCI = "travisci";
export const INTEGRATION_TEAMCITY = "teamcity"; export const INTEGRATION_TEAMCITY = "teamcity";
@@ -38,6 +38,7 @@ export const INTEGRATION_WINDMILL = "windmill";
export const INTEGRATION_DIGITAL_OCEAN_APP_PLATFORM = "digital-ocean-app-platform"; export const INTEGRATION_DIGITAL_OCEAN_APP_PLATFORM = "digital-ocean-app-platform";
export const INTEGRATION_CLOUD_66 = "cloud-66"; export const INTEGRATION_CLOUD_66 = "cloud-66";
export const INTEGRATION_NORTHFLANK = "northflank"; export const INTEGRATION_NORTHFLANK = "northflank";
export const INTEGRATION_HASURA_CLOUD = "hasura-cloud";
export const INTEGRATION_SET = new Set([ export const INTEGRATION_SET = new Set([
INTEGRATION_GCP_SECRET_MANAGER, INTEGRATION_GCP_SECRET_MANAGER,
INTEGRATION_AZURE_KEY_VAULT, INTEGRATION_AZURE_KEY_VAULT,
@@ -63,7 +64,8 @@ export const INTEGRATION_SET = new Set([
INTEGRATION_BITBUCKET, INTEGRATION_BITBUCKET,
INTEGRATION_DIGITAL_OCEAN_APP_PLATFORM, INTEGRATION_DIGITAL_OCEAN_APP_PLATFORM,
INTEGRATION_CLOUD_66, INTEGRATION_CLOUD_66,
INTEGRATION_NORTHFLANK INTEGRATION_NORTHFLANK,
INTEGRATION_HASURA_CLOUD
]); ]);
// integration types // integration types
@@ -71,15 +73,14 @@ export const INTEGRATION_OAUTH2 = "oauth2";
// integration oauth endpoints // integration oauth endpoints
export const INTEGRATION_GCP_TOKEN_URL = "https://oauth2.googleapis.com/token"; export const INTEGRATION_GCP_TOKEN_URL = "https://oauth2.googleapis.com/token";
export const INTEGRATION_AZURE_TOKEN_URL = "https://login.microsoftonline.com/common/oauth2/v2.0/token"; export const INTEGRATION_AZURE_TOKEN_URL =
"https://login.microsoftonline.com/common/oauth2/v2.0/token";
export const INTEGRATION_HEROKU_TOKEN_URL = "https://id.heroku.com/oauth/token"; export const INTEGRATION_HEROKU_TOKEN_URL = "https://id.heroku.com/oauth/token";
export const INTEGRATION_VERCEL_TOKEN_URL = export const INTEGRATION_VERCEL_TOKEN_URL = "https://api.vercel.com/v2/oauth/access_token";
"https://api.vercel.com/v2/oauth/access_token";
export const INTEGRATION_NETLIFY_TOKEN_URL = "https://api.netlify.com/oauth/token"; export const INTEGRATION_NETLIFY_TOKEN_URL = "https://api.netlify.com/oauth/token";
export const INTEGRATION_GITHUB_TOKEN_URL = export const INTEGRATION_GITHUB_TOKEN_URL = "https://github.com/login/oauth/access_token";
"https://github.com/login/oauth/access_token";
export const INTEGRATION_GITLAB_TOKEN_URL = "https://gitlab.com/oauth/token"; export const INTEGRATION_GITLAB_TOKEN_URL = "https://gitlab.com/oauth/token";
export const INTEGRATION_BITBUCKET_TOKEN_URL = "https://bitbucket.org/site/oauth2/access_token" export const INTEGRATION_BITBUCKET_TOKEN_URL = "https://bitbucket.org/site/oauth2/access_token";
// integration apps endpoints // integration apps endpoints
export const INTEGRATION_GCP_API_URL = "https://cloudresourcemanager.googleapis.com"; export const INTEGRATION_GCP_API_URL = "https://cloudresourcemanager.googleapis.com";
@@ -106,11 +107,13 @@ export const INTEGRATION_WINDMILL_API_URL = "https://app.windmill.dev/api";
export const INTEGRATION_DIGITAL_OCEAN_API_URL = "https://api.digitalocean.com"; export const INTEGRATION_DIGITAL_OCEAN_API_URL = "https://api.digitalocean.com";
export const INTEGRATION_CLOUD_66_API_URL = "https://app.cloud66.com/api"; export const INTEGRATION_CLOUD_66_API_URL = "https://app.cloud66.com/api";
export const INTEGRATION_NORTHFLANK_API_URL = "https://api.northflank.com"; export const INTEGRATION_NORTHFLANK_API_URL = "https://api.northflank.com";
export const INTEGRATION_HASURA_CLOUD_API_URL = "https://data.pro.hasura.io/v1/graphql";
export const INTEGRATION_GCP_SECRET_MANAGER_SERVICE_NAME = "secretmanager.googleapis.com" export const INTEGRATION_GCP_SECRET_MANAGER_SERVICE_NAME = "secretmanager.googleapis.com";
export const INTEGRATION_GCP_SECRET_MANAGER_URL = `https://${INTEGRATION_GCP_SECRET_MANAGER_SERVICE_NAME}`; export const INTEGRATION_GCP_SECRET_MANAGER_URL = `https://${INTEGRATION_GCP_SECRET_MANAGER_SERVICE_NAME}`;
export const INTEGRATION_GCP_SERVICE_USAGE_URL = "https://serviceusage.googleapis.com"; export const INTEGRATION_GCP_SERVICE_USAGE_URL = "https://serviceusage.googleapis.com";
export const INTEGRATION_GCP_CLOUD_PLATFORM_SCOPE = "https://www.googleapis.com/auth/cloud-platform"; export const INTEGRATION_GCP_CLOUD_PLATFORM_SCOPE =
"https://www.googleapis.com/auth/cloud-platform";
export const getIntegrationOptions = async () => { export const getIntegrationOptions = async () => {
const INTEGRATION_OPTIONS = [ const INTEGRATION_OPTIONS = [
@@ -121,7 +124,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "oauth", type: "oauth",
clientId: await getClientIdHeroku(), clientId: await getClientIdHeroku(),
docsLink: "", docsLink: ""
}, },
{ {
name: "Vercel", name: "Vercel",
@@ -131,7 +134,7 @@ export const getIntegrationOptions = async () => {
type: "oauth", type: "oauth",
clientId: "", clientId: "",
clientSlug: await getClientSlugVercel(), clientSlug: await getClientSlugVercel(),
docsLink: "", docsLink: ""
}, },
{ {
name: "Netlify", name: "Netlify",
@@ -140,7 +143,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "oauth", type: "oauth",
clientId: await getClientIdNetlify(), clientId: await getClientIdNetlify(),
docsLink: "", docsLink: ""
}, },
{ {
name: "GitHub", name: "GitHub",
@@ -149,7 +152,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "oauth", type: "oauth",
clientId: await getClientIdGitHub(), clientId: await getClientIdGitHub(),
docsLink: "", docsLink: ""
}, },
{ {
name: "Render", name: "Render",
@@ -158,7 +161,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "pat", type: "pat",
clientId: "", clientId: "",
docsLink: "", docsLink: ""
}, },
{ {
name: "Railway", name: "Railway",
@@ -167,7 +170,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "pat", type: "pat",
clientId: "", clientId: "",
docsLink: "", docsLink: ""
}, },
{ {
name: "Fly.io", name: "Fly.io",
@@ -176,7 +179,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "pat", type: "pat",
clientId: "", clientId: "",
docsLink: "", docsLink: ""
}, },
{ {
name: "AWS Parameter Store", name: "AWS Parameter Store",
@@ -185,7 +188,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "custom", type: "custom",
clientId: "", clientId: "",
docsLink: "", docsLink: ""
}, },
{ {
name: "Laravel Forge", name: "Laravel Forge",
@@ -194,7 +197,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "pat", type: "pat",
clientId: "", clientId: "",
docsLink: "", docsLink: ""
}, },
{ {
name: "AWS Secrets Manager", name: "AWS Secrets Manager",
@@ -203,7 +206,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "custom", type: "custom",
clientId: "", clientId: "",
docsLink: "", docsLink: ""
}, },
{ {
name: "Azure Key Vault", name: "Azure Key Vault",
@@ -212,7 +215,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "oauth", type: "oauth",
clientId: await getClientIdAzure(), clientId: await getClientIdAzure(),
docsLink: "", docsLink: ""
}, },
{ {
name: "Circle CI", name: "Circle CI",
@@ -221,7 +224,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "pat", type: "pat",
clientId: "", clientId: "",
docsLink: "", docsLink: ""
}, },
{ {
name: "GitLab", name: "GitLab",
@@ -230,7 +233,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "custom", type: "custom",
clientId: await getClientIdGitLab(), clientId: await getClientIdGitLab(),
docsLink: "", docsLink: ""
}, },
{ {
name: "Terraform Cloud", name: "Terraform Cloud",
@@ -239,7 +242,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "pat", type: "pat",
cliendId: "", cliendId: "",
docsLink: "", docsLink: ""
}, },
{ {
name: "Travis CI", name: "Travis CI",
@@ -248,7 +251,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "pat", type: "pat",
clientId: "", clientId: "",
docsLink: "", docsLink: ""
}, },
{ {
name: "TeamCity", name: "TeamCity",
@@ -257,7 +260,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "pat", type: "pat",
clientId: "", clientId: "",
docsLink: "", docsLink: ""
}, },
{ {
name: "Supabase", name: "Supabase",
@@ -266,7 +269,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "pat", type: "pat",
clientId: "", clientId: "",
docsLink: "", docsLink: ""
}, },
{ {
name: "Checkly", name: "Checkly",
@@ -275,7 +278,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "pat", type: "pat",
clientId: "", clientId: "",
docsLink: "", docsLink: ""
}, },
{ {
name: "Qovery", name: "Qovery",
@@ -284,7 +287,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "pat", type: "pat",
clientId: "", clientId: "",
docsLink: "", docsLink: ""
}, },
{ {
name: "HashiCorp Vault", name: "HashiCorp Vault",
@@ -293,7 +296,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "pat", type: "pat",
clientId: "", clientId: "",
docsLink: "", docsLink: ""
}, },
{ {
name: "GCP Secret Manager", name: "GCP Secret Manager",
@@ -329,7 +332,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "pat", type: "pat",
clientId: "", clientId: "",
docsLink: "", docsLink: ""
}, },
{ {
name: "Windmill", name: "Windmill",
@@ -338,7 +341,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "pat", type: "pat",
clientId: "", clientId: "",
docsLink: "", docsLink: ""
}, },
{ {
name: "Digital Ocean App Platform", name: "Digital Ocean App Platform",
@@ -347,7 +350,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "pat", type: "pat",
clientId: "", clientId: "",
docsLink: "", docsLink: ""
}, },
{ {
name: "Cloud 66", name: "Cloud 66",
@@ -356,7 +359,7 @@ export const getIntegrationOptions = async () => {
isAvailable: true, isAvailable: true,
type: "pat", type: "pat",
clientId: "", clientId: "",
docsLink: "", docsLink: ""
}, },
{ {
name: "Northflank", name: "Northflank",
@@ -367,7 +370,16 @@ export const getIntegrationOptions = async () => {
clientId: "", clientId: "",
docsLink: "" docsLink: ""
}, },
] {
name: "Hasura Cloud",
slug: "hasura-cloud",
image: "Northflank.png",
isAvailable: true,
type: "pat",
clientId: "",
docsLink: ""
}
];
return INTEGRATION_OPTIONS; return INTEGRATION_OPTIONS;
} };
+40 -38
View File
@@ -6,74 +6,75 @@ const integrationSlugNameMapping: Mapping = {
"azure-key-vault": "Azure Key Vault", "azure-key-vault": "Azure Key Vault",
"aws-parameter-store": "AWS Parameter Store", "aws-parameter-store": "AWS Parameter Store",
"aws-secret-manager": "AWS Secrets Manager", "aws-secret-manager": "AWS Secrets Manager",
"heroku": "Heroku", heroku: "Heroku",
"vercel": "Vercel", vercel: "Vercel",
"netlify": "Netlify", netlify: "Netlify",
"github": "GitHub", github: "GitHub",
"gitlab": "GitLab", gitlab: "GitLab",
"render": "Render", render: "Render",
"laravel-forge": "Laravel Forge", "laravel-forge": "Laravel Forge",
"railway": "Railway", railway: "Railway",
"flyio": "Fly.io", flyio: "Fly.io",
"circleci": "CircleCI", circleci: "CircleCI",
"travisci": "TravisCI", travisci: "TravisCI",
"supabase": "Supabase", supabase: "Supabase",
"checkly": "Checkly", checkly: "Checkly",
"qovery": "Qovery", qovery: "Qovery",
"terraform-cloud": "Terraform Cloud", "terraform-cloud": "Terraform Cloud",
"teamcity": "TeamCity", teamcity: "TeamCity",
"hashicorp-vault": "Vault", "hashicorp-vault": "Vault",
"cloudflare-pages": "Cloudflare Pages", "cloudflare-pages": "Cloudflare Pages",
"codefresh": "Codefresh", codefresh: "Codefresh",
"digital-ocean-app-platform": "Digital Ocean App Platform", "digital-ocean-app-platform": "Digital Ocean App Platform",
"bitbucket": "BitBucket", bitbucket: "BitBucket",
"cloud-66": "Cloud 66", "cloud-66": "Cloud 66",
"northflank": "Northflank", northflank: "Northflank",
"windmill": "Windmill", windmill: "Windmill",
"gcp-secret-manager": "GCP Secret Manager" "gcp-secret-manager": "GCP Secret Manager",
} "hasura-cloud": "Hasura Cloud"
};
const envMapping: Mapping = { const envMapping: Mapping = {
Development: "dev", Development: "dev",
Staging: "staging", Staging: "staging",
Production: "prod", Production: "prod",
Testing: "test", Testing: "test"
}; };
const reverseEnvMapping: Mapping = { const reverseEnvMapping: Mapping = {
dev: "Development", dev: "Development",
staging: "Staging", staging: "Staging",
prod: "Production", prod: "Production",
test: "Testing", test: "Testing"
}; };
const contextNetlifyMapping: Mapping = { const contextNetlifyMapping: Mapping = {
"dev": "Local development", dev: "Local development",
"branch-deploy": "Branch deploys", "branch-deploy": "Branch deploys",
"deploy-preview": "Deploy Previews", "deploy-preview": "Deploy Previews",
"production": "Production" production: "Production"
} };
const reverseContextNetlifyMapping: Mapping = { const reverseContextNetlifyMapping: Mapping = {
"Local development": "dev", "Local development": "dev",
"Branch deploys": "branch-deploy", "Branch deploys": "branch-deploy",
"Deploy Previews": "deploy-preview", "Deploy Previews": "deploy-preview",
"Production": "production" Production: "production"
} };
const plansDev: Mapping = { const plansDev: Mapping = {
"starter": "prod_Mb4ATFT5QAHoPM", starter: "prod_Mb4ATFT5QAHoPM",
"team": "prod_NEpD2WMXUS2eDn", team: "prod_NEpD2WMXUS2eDn",
"professional": "prod_Mb4CetZ2jE7jdl", professional: "prod_Mb4CetZ2jE7jdl",
"enterprise": "licence_key_required" enterprise: "licence_key_required"
} };
const plansProd: Mapping = { const plansProd: Mapping = {
"starter": "prod_Mb8oR5XNwyFTul", starter: "prod_Mb8oR5XNwyFTul",
"team": "prod_NEp7fAB3UJWK6A", team: "prod_NEp7fAB3UJWK6A",
"professional": "prod_Mb8pUIpA0OUi5N", professional: "prod_Mb8pUIpA0OUi5N",
"enterprise": "licence_key_required" enterprise: "licence_key_required"
} };
const plans = plansProd || plansDev; const plans = plansProd || plansDev;
@@ -83,4 +84,5 @@ export {
integrationSlugNameMapping, integrationSlugNameMapping,
plans, plans,
reverseContextNetlifyMapping, reverseContextNetlifyMapping,
reverseEnvMapping} reverseEnvMapping
};