feat(infisical-pg): added github,gitlab and google oauth

This commit is contained in:
Akhil Mohan
2024-01-27 12:38:22 +05:30
parent d0695a8998
commit fbe5a1adb0
13 changed files with 756 additions and 3 deletions
+14 -2
View File
@@ -27,14 +27,26 @@ const envSchema = z
SMTP_PASSWORD: zpStr(z.string().optional()),
SMTP_FROM_ADDRESS: zpStr(z.string().optional()),
SMTP_FROM_NAME: zpStr(z.string().optional().default("Infisical")),
COOKIE_SECRET_SIGN_KEY: z.string().default("g5giLbOMpaJhqEogXApkiw2ZFW5Q0jvA"),
COOKIE_SECRET_SIGN_KEY: z
.string()
.min(32)
.default("#5VihU%rbXHcHwWwCot5L3vyPsx$7dWYw^iGk!EJg2bC*f$PD$%KCqx^R@#^LSEf"),
SITE_URL: zpStr(z.string().optional()),
// jwt options
JWT_AUTH_SECRET: zpStr(z.string()),
JWT_AUTH_LIFETIME: zpStr(z.string().default("10d")),
JWT_SIGNUP_LIFETIME: zpStr(z.string().default("15m")),
JWT_REFRESH_LIFETIME: zpStr(z.string().default("90d")),
JWT_MFA_LIFETIME: zpStr(z.string().default("5m"))
JWT_MFA_LIFETIME: zpStr(z.string().default("5m")),
JWT_PROVIDER_AUTH_LIFETIME: zpStr(z.string().default("15m")),
// Oauth
CLIENT_ID_GOOGLE_LOGIN: zpStr(z.string().optional()),
CLIENT_SECRET_GOOGLE_LOGIN: zpStr(z.string().optional()),
CLIENT_ID_GITHUB_LOGIN: zpStr(z.string().optional()),
CLIENT_SECRET_GITHUB_LOGIN: zpStr(z.string().optional()),
CLIENT_ID_GITLAB_LOGIN: zpStr(z.string().optional()),
CLIENT_SECRET_GITLAB_LOGIN: zpStr(z.string().optional()),
CLIENT_GITLAB_LOGIN_URL: zpStr(z.string().optional())
})
.transform((data) => ({ ...data, isSmtpConfigured: Boolean(data.SMTP_HOST) }));
+10
View File
@@ -0,0 +1,10 @@
import axios from "axios";
import axiosRetry from "axios-retry";
export const request = axios.create();
axiosRetry(request, {
retries: 3,
retryDelay: axiosRetry.exponentialDelay,
retryCondition: (err) => axiosRetry.isNetworkError(err) || axiosRetry.isRetryableError(err)
});
+18
View File
@@ -0,0 +1,18 @@
import { request } from "../config/request";
const INTEGRATION_GITHUB_API_URL = "https://api.github.com";
type TGithubEmail = {
email: string;
primary: boolean;
verified: boolean;
visibility: null | string;
};
export const fetchGithubEmails = async (accessToken: string) => {
const { data } = await request.get<TGithubEmail[]>(`${INTEGRATION_GITHUB_API_URL}/user/emails`, {
headers: {
Authorization: `Bearer ${accessToken}`
}
});
return data;
};