mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-07 19:28:09 +00:00
laravel forge integration
This commit is contained in:
@@ -18,6 +18,8 @@ import {
|
|||||||
INTEGRATION_CHECKLY_API_URL,
|
INTEGRATION_CHECKLY_API_URL,
|
||||||
INTEGRATION_CIRCLECI,
|
INTEGRATION_CIRCLECI,
|
||||||
INTEGRATION_CIRCLECI_API_URL,
|
INTEGRATION_CIRCLECI_API_URL,
|
||||||
|
INTEGRATION_CLOUDFLARE_PAGES,
|
||||||
|
INTEGRATION_CLOUDFLARE_PAGES_API_URL,
|
||||||
INTEGRATION_FLYIO,
|
INTEGRATION_FLYIO,
|
||||||
INTEGRATION_FLYIO_API_URL,
|
INTEGRATION_FLYIO_API_URL,
|
||||||
INTEGRATION_GITHUB,
|
INTEGRATION_GITHUB,
|
||||||
@@ -26,6 +28,8 @@ import {
|
|||||||
INTEGRATION_HASHICORP_VAULT,
|
INTEGRATION_HASHICORP_VAULT,
|
||||||
INTEGRATION_HEROKU,
|
INTEGRATION_HEROKU,
|
||||||
INTEGRATION_HEROKU_API_URL,
|
INTEGRATION_HEROKU_API_URL,
|
||||||
|
INTEGRATION_LARAVELFORGE,
|
||||||
|
INTEGRATION_LARAVELFORGE_API_URL,
|
||||||
INTEGRATION_NETLIFY,
|
INTEGRATION_NETLIFY,
|
||||||
INTEGRATION_NETLIFY_API_URL,
|
INTEGRATION_NETLIFY_API_URL,
|
||||||
INTEGRATION_RAILWAY,
|
INTEGRATION_RAILWAY,
|
||||||
@@ -34,8 +38,6 @@ import {
|
|||||||
INTEGRATION_RENDER_API_URL,
|
INTEGRATION_RENDER_API_URL,
|
||||||
INTEGRATION_SUPABASE,
|
INTEGRATION_SUPABASE,
|
||||||
INTEGRATION_SUPABASE_API_URL,
|
INTEGRATION_SUPABASE_API_URL,
|
||||||
INTEGRATION_CLOUDFLARE_PAGES,
|
|
||||||
INTEGRATION_CLOUDFLARE_PAGES_API_URL,
|
|
||||||
INTEGRATION_TRAVISCI,
|
INTEGRATION_TRAVISCI,
|
||||||
INTEGRATION_TRAVISCI_API_URL,
|
INTEGRATION_TRAVISCI_API_URL,
|
||||||
INTEGRATION_VERCEL,
|
INTEGRATION_VERCEL,
|
||||||
@@ -154,6 +156,14 @@ const syncSecrets = async ({
|
|||||||
accessToken,
|
accessToken,
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
case INTEGRATION_LARAVELFORGE:
|
||||||
|
await syncSecretsLaravelForge({
|
||||||
|
integration,
|
||||||
|
secrets,
|
||||||
|
accessId,
|
||||||
|
accessToken,
|
||||||
|
});
|
||||||
|
break;
|
||||||
case INTEGRATION_TRAVISCI:
|
case INTEGRATION_TRAVISCI:
|
||||||
await syncSecretsTravisCI({
|
await syncSecretsTravisCI({
|
||||||
integration,
|
integration,
|
||||||
@@ -168,58 +178,30 @@ const syncSecrets = async ({
|
|||||||
accessToken,
|
accessToken,
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case INTEGRATION_FLYIO:
|
case INTEGRATION_CHECKLY:
|
||||||
await syncSecretsFlyio({
|
await syncSecretsCheckly({
|
||||||
|
integration,
|
||||||
|
secrets,
|
||||||
|
accessToken,
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case INTEGRATION_HASHICORP_VAULT:
|
||||||
|
await syncSecretsHashiCorpVault({
|
||||||
|
integration,
|
||||||
|
integrationAuth,
|
||||||
|
secrets,
|
||||||
|
accessId,
|
||||||
|
accessToken,
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case INTEGRATION_CLOUDFLARE_PAGES:
|
||||||
|
await syncSecretsCloudflarePages({
|
||||||
integration,
|
integration,
|
||||||
secrets,
|
secrets,
|
||||||
accessToken,
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
case INTEGRATION_CIRCLECI:
|
|
||||||
await syncSecretsCircleCI({
|
|
||||||
integration,
|
|
||||||
secrets,
|
|
||||||
accessToken,
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
case INTEGRATION_TRAVISCI:
|
|
||||||
await syncSecretsTravisCI({
|
|
||||||
integration,
|
|
||||||
secrets,
|
|
||||||
accessToken,
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
case INTEGRATION_SUPABASE:
|
|
||||||
await syncSecretsSupabase({
|
|
||||||
integration,
|
|
||||||
secrets,
|
|
||||||
accessToken,
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
case INTEGRATION_CHECKLY:
|
|
||||||
await syncSecretsCheckly({
|
|
||||||
integration,
|
|
||||||
secrets,
|
|
||||||
accessToken,
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
case INTEGRATION_HASHICORP_VAULT:
|
|
||||||
await syncSecretsHashiCorpVault({
|
|
||||||
integration,
|
|
||||||
integrationAuth,
|
|
||||||
secrets,
|
|
||||||
accessId,
|
accessId,
|
||||||
accessToken,
|
accessToken
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case INTEGRATION_CLOUDFLARE_PAGES:
|
|
||||||
await syncSecretsCloudflarePages({
|
|
||||||
integration,
|
|
||||||
secrets,
|
|
||||||
accessId,
|
|
||||||
accessToken
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1167,6 +1149,40 @@ const syncSecretsRender = async ({
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sync/push [secrets] to Laravel Forge sites with id [integration.appId]
|
||||||
|
* @param {Object} obj
|
||||||
|
* @param {IIntegration} obj.integration - integration details
|
||||||
|
* @param {Object} obj.secrets - secrets to push to integration (object where keys are secret keys and values are secret values)
|
||||||
|
* @param {String} obj.accessToken - access token for Laravel Forge integration
|
||||||
|
*/
|
||||||
|
const syncSecretsLaravelForge = async ({
|
||||||
|
integration,
|
||||||
|
secrets,
|
||||||
|
accessId,
|
||||||
|
accessToken,
|
||||||
|
}: {
|
||||||
|
integration: IIntegration;
|
||||||
|
secrets: any;
|
||||||
|
accessId: string | null;
|
||||||
|
accessToken: string;
|
||||||
|
}) => {
|
||||||
|
await standardRequest.put(
|
||||||
|
`${INTEGRATION_LARAVELFORGE_API_URL}/api/v1/servers/${accessId}/sites/${integration.appId}/env`,
|
||||||
|
Object.keys(secrets).map((key) => ({
|
||||||
|
key,
|
||||||
|
value: secrets[key],
|
||||||
|
})),
|
||||||
|
{
|
||||||
|
headers: {
|
||||||
|
Authorization: `Bearer ${accessToken}`,
|
||||||
|
Accept: "application/json",
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sync/push [secrets] to Railway project with id [integration.appId]
|
* Sync/push [secrets] to Railway project with id [integration.appId]
|
||||||
* @param {Object} obj
|
* @param {Object} obj
|
||||||
|
|||||||
Reference in New Issue
Block a user