mirror of
https://github.com/dadosfera/maestro.git
synced 2026-09-03 21:24:49 +00:00
Compare commits
13
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b2299a5f2f | ||
|
|
aee33334ac | ||
|
|
b0d9f3a468 | ||
|
|
5b117acaa9 | ||
|
|
a5cb607650 | ||
|
|
fe626155c5 | ||
|
|
debbe1c1b1 | ||
|
|
f937a6efe2 | ||
|
|
30cb3c87eb | ||
|
|
fa46294154 | ||
|
|
72554fb27f | ||
|
|
4e6985b572 | ||
|
|
4477647613 |
+34
-32
@@ -22,35 +22,37 @@ charts:
|
||||
value: 1
|
||||
|
||||
# Environment to test Network Policies
|
||||
- name: private-maestro
|
||||
chart: ../helm-chart
|
||||
values:
|
||||
- ../helm-chart/values.yaml
|
||||
set:
|
||||
- name: app_name
|
||||
value: maestro-private
|
||||
- name: maestro.duc_url
|
||||
value: duc.stg.dadosfera.ai
|
||||
- name: hostname
|
||||
value: private-maestro.stg.dadosfera.ai
|
||||
- name: maestro.pi_factory_url
|
||||
value: pi-factory.dadosfera.ai
|
||||
- name: maestro.in_factory_url
|
||||
value: in-factory.stg.dadosfera.ai
|
||||
- name: maestro.tr_factory_url
|
||||
value: in-factory.dadosfera.ai
|
||||
- name: maestro.open_customer_id
|
||||
value: b3e3dfe5-b992-4586-a73c-c0b0c00f615d
|
||||
- name: maestro.open_group_id
|
||||
value: e3f98a2f-7748-4981-8505-7695c8ca8218
|
||||
# Customer id
|
||||
- name: maestro.dedicated_proxy
|
||||
value: 14d52fd4-d83d-4cdd-be34-bf11cc28b3bd
|
||||
- name: replicaCount
|
||||
value: 1
|
||||
- name: affinity
|
||||
value: null
|
||||
- name: resources
|
||||
value: null
|
||||
- name: maestro.restricted_ip
|
||||
value: "57.151.113.140/30"
|
||||
# - name: private-maestro
|
||||
# chart: ../helm-chart
|
||||
# values:
|
||||
# - ../helm-chart/values.yaml
|
||||
# set:
|
||||
# - name: app_name
|
||||
# value: maestro-private
|
||||
# - name: maestro.env
|
||||
# value: stg
|
||||
# - name: maestro.duc_url
|
||||
# value: duc.stg.dadosfera.ai
|
||||
# - name: hostname
|
||||
# value: private-maestro.stg.dadosfera.ai
|
||||
# - name: maestro.pi_factory_url
|
||||
# value: pi-factory.dadosfera.ai
|
||||
# - name: maestro.in_factory_url
|
||||
# value: in-factory.stg.dadosfera.ai
|
||||
# - name: maestro.tr_factory_url
|
||||
# value: in-factory.dadosfera.ai
|
||||
# - name: maestro.open_customer_id
|
||||
# value: b3e3dfe5-b992-4586-a73c-c0b0c00f615d
|
||||
# - name: maestro.open_group_id
|
||||
# value: e3f98a2f-7748-4981-8505-7695c8ca8218
|
||||
# # Customer id
|
||||
# - name: maestro.dedicated_proxy
|
||||
# value: 14d52fd4-d83d-4cdd-be34-bf11cc28b3bd
|
||||
# - name: replicaCount
|
||||
# value: 1
|
||||
# - name: affinity
|
||||
# value: null
|
||||
# - name: resources
|
||||
# value: null
|
||||
# - name: maestro.restricted_ip
|
||||
# value: "57.151.113.140/30"
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ async function bootstrap() {
|
||||
});
|
||||
app.use(helmet());
|
||||
|
||||
if (process.env.ENV === 'prd') {
|
||||
if (process.env.ENV !== 'local') {
|
||||
app.use('/catalog/register-dataset', json({ limit: '10mb' }));
|
||||
app.use('/catalog/register-dataset', urlencoded({ extended: true, limit: '10mb' }));
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@ export class GoogleLoginStrategy extends PassportStrategy(
|
||||
callbackURL: oauthSecrets['google-login'].redirect_uri,
|
||||
scope: ['email', 'profile', 'openid'],
|
||||
};
|
||||
console.log("GoogleLoginStrategy", options.clientID, options.callbackURL);
|
||||
const verify = (
|
||||
accessToken: string,
|
||||
refreshToken: string,
|
||||
|
||||
@@ -8,7 +8,6 @@ import {
|
||||
HttpStatus,
|
||||
Inject,
|
||||
Param,
|
||||
Patch,
|
||||
Post,
|
||||
Put,
|
||||
Redirect,
|
||||
@@ -155,9 +154,8 @@ export class IdentityProviderController {
|
||||
}
|
||||
|
||||
const origin = req.headers['origin'] as string;
|
||||
const langHeader = req.headers['dadosfera-lang'] as string;
|
||||
|
||||
const lang = langHeader.substring(0, 2) + langHeader.substring(2).toUpperCase();
|
||||
const lang = language.substring(0, 2) + language.substring(2).toUpperCase();
|
||||
const callbackUrl = process.env.ENV !== "prd" ? `${origin}/auth/callback` : `${origin}/${lang}/auth/callback`;
|
||||
|
||||
return await this.identityProviderService.getTokenByIdp(code, state, callbackUrl);
|
||||
@@ -184,11 +182,21 @@ export class IdentityProviderController {
|
||||
@Get(':id')
|
||||
@HttpCode(HttpStatus.OK)
|
||||
@Redirect()
|
||||
async loginIdp(@Param('id') id: string) {
|
||||
async loginIdp(@Param('id') id: string, @Req() req: Request, @Language() language: LanguageEnum) {
|
||||
this.logger.info('GET /identity-providers/:id');
|
||||
|
||||
|
||||
const frontDomain = req.headers['origin'] as string || req.headers['referer'] as string;
|
||||
this.logger.info(`Front domain: ${frontDomain}`);
|
||||
const host = frontDomain.lastIndexOf('/') !== -1
|
||||
? frontDomain.substring(0, frontDomain.lastIndexOf('/'))
|
||||
: frontDomain;
|
||||
|
||||
const lang = language.substring(0, 2) + language.substring(2).toUpperCase();
|
||||
const callbackUrl = process.env.ENV !== "prd" ? `${host}/auth/callback` : `${host}/${lang}/auth/callback`;
|
||||
|
||||
const redirectUrl =
|
||||
await this.identityProviderService.loginIdentityProvider(id);
|
||||
await this.identityProviderService.loginIdentityProvider(id, callbackUrl);
|
||||
|
||||
this.logger.info(`Redirecting to: ${redirectUrl}`);
|
||||
return {
|
||||
|
||||
@@ -44,7 +44,7 @@ export class IdentityProviderService implements OnModuleInit {
|
||||
);
|
||||
}
|
||||
|
||||
async loginIdentityProvider(id: string) {
|
||||
async loginIdentityProvider(id: string, callbackUrl: string) {
|
||||
const idp = await lastValueFrom(
|
||||
this.identityProviderService.FindIdentityProvider({ id }),
|
||||
);
|
||||
@@ -83,6 +83,7 @@ export class IdentityProviderService implements OnModuleInit {
|
||||
code_challenge_method: 'S256',
|
||||
state,
|
||||
nonce,
|
||||
redirect_uri: callbackUrl,
|
||||
});
|
||||
const idpUrl = url + '&identity_provider=' + idp.name;
|
||||
return idpUrl;
|
||||
|
||||
@@ -24,15 +24,21 @@ export async function getOauthSecrets() {
|
||||
const path = process.env.SM_OAUTH_PATH;
|
||||
const secretsManagerClient = new SecretsManagerClient({});
|
||||
for (const key in secrets) {
|
||||
console.log(`Fetching secret for ${key} from path ${path}/${key}`);
|
||||
const getSecretComand = new GetSecretValueCommand({
|
||||
SecretId: `${path}/${key}`,
|
||||
});
|
||||
const res = await secretsManagerClient
|
||||
.send(getSecretComand)
|
||||
.catch(() => null);
|
||||
.catch((err) => {
|
||||
console.error(`Error fetching secret for ${key}:`, err);
|
||||
return null;
|
||||
});
|
||||
if (res) {
|
||||
secrets[key] = JSON.parse(res.SecretString);
|
||||
console.log(JSON.parse(res.SecretString).client_id)
|
||||
} else {
|
||||
console.log("No secret found for", key);
|
||||
secrets[key] = {
|
||||
client_id: 'id',
|
||||
client_secret: 'id',
|
||||
|
||||
Reference in New Issue
Block a user