added custom instance URLs to databricks

This commit is contained in:
Vladyslav Matsiiako
2024-10-03 16:21:47 -07:00
parent 25b55087cf
commit 2ca34099ed
4 changed files with 38 additions and 6 deletions
@@ -15,6 +15,7 @@ export enum Integrations {
FLYIO = "flyio",
LARAVELFORGE = "laravel-forge",
CIRCLECI = "circleci",
DATABRICKS = "databricks",
TRAVISCI = "travisci",
TEAMCITY = "teamcity",
SUPABASE = "supabase",
@@ -73,6 +74,7 @@ export enum IntegrationUrls {
RAILWAY_API_URL = "https://backboard.railway.app/graphql/v2",
FLYIO_API_URL = "https://api.fly.io/graphql",
CIRCLECI_API_URL = "https://circleci.com/api",
DATABRICKS_API_URL = "https:/dbc-5e0185c0-20ac.cloud.databricks.com/api",
TRAVISCI_API_URL = "https://api.travis-ci.com",
SUPABASE_API_URL = "https://api.supabase.com",
LARAVELFORGE_API_URL = "https://forge.laravel.com",
@@ -210,6 +212,15 @@ export const getIntegrationOptions = async () => {
clientId: "",
docsLink: ""
},
{
name: "Databricks",
slug: "databricks",
image: "Databricks.png",
isAvailable: true,
type: "pat",
clientId: "",
docsLink: ""
},
{
name: "GitLab",
slug: "gitlab",
@@ -2090,18 +2090,22 @@ const syncSecretsCircleCI = async ({
*/
const syncSecretsDatabricks = async ({
integration,
integrationAuth,
secrets,
accessToken
}: {
integration: TIntegrations;
integrationAuth: TIntegrationAuths;
secrets: Record<string, { value: string; comment?: string }>;
accessToken: string;
}) => {
const databricksApiUrl = `${integrationAuth.url}/api`;
// sync secrets to Databricks
await Promise.all(
Object.keys(secrets).map(async (key) =>
request.post(
`${IntegrationUrls.DATABRICKS_API_URL}/2.0/secrets/put`,
`${databricksApiUrl}/2.0/secrets/put`,
{
scope: integration.app,
key,
@@ -2120,7 +2124,7 @@ const syncSecretsDatabricks = async ({
// get secrets from Databricks
const getSecretsRes = (
await request.get<{ secrets: { key: string; last_updated_timestamp: number }[] }>(
`${IntegrationUrls.DATABRICKS_API_URL}/2.0/secrets/list`,
`${databricksApiUrl}/2.0/secrets/list`,
{
headers: {
Authorization: `Bearer ${accessToken}`,
@@ -2138,7 +2142,7 @@ const syncSecretsDatabricks = async ({
getSecretsRes.map(async (sec) => {
if (!(sec.key in secrets)) {
return request.post(
`${IntegrationUrls.DATABRICKS_API_URL}/2.0/secrets/delete`,
`${databricksApiUrl}/2.0/secrets/delete`,
{
scope: integration.app,
key: sec.key
@@ -4094,6 +4098,7 @@ export const syncIntegrationSecrets = async ({
case Integrations.DATABRICKS:
await syncSecretsDatabricks({
integration,
integrationAuth,
secrets,
accessToken
});