FEAT: list identity providers link for sso

This commit is contained in:
marcos-silva-rodrigues
2025-07-14 15:16:19 -03:00
parent 8cb7144ff4
commit c9bfe68ea5
6 changed files with 50 additions and 5 deletions
+22
View File
@@ -6062,6 +6062,24 @@
}
}
},
"/identity-providers/links": {
"get": {
"operationId": "IdentityProviderController_providerLinks",
"parameters": [],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
}
}
}
},
"/network-policy": {
"get": {
"operationId": "NetworkPolicyController_getNetworks",
@@ -6370,12 +6388,16 @@
"refreshToken": {
"type": "string"
},
"accessToken": {
"type": "string"
},
"customerName": {
"type": "string"
}
},
"required": [
"refreshToken",
"accessToken",
"customerName"
]
},
+4 -4
View File
@@ -12,7 +12,7 @@
"@aws-sdk/client-secrets-manager": "^3.414.0",
"@dadosfera/dadosfera-logs": "^1.0.0-beta.4",
"@dadosfera/protospack": "2.5.3",
"@dadosfera/protospack-v2": "3.38.0-beta.7",
"@dadosfera/protospack-v2": "3.38.0-beta.8",
"@grpc/grpc-js": "^1.9.3",
"@grpc/proto-loader": "^0.7.9",
"@nestjs/cli": "^9.5.0",
@@ -1407,9 +1407,9 @@
}
},
"node_modules/@dadosfera/protospack-v2": {
"version": "3.38.0-beta.7",
"resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com/npm/dadosfera-npm/@dadosfera/protospack-v2/-/protospack-v2-3.38.0-beta.7.tgz",
"integrity": "sha512-Lp+hW/F/F9gMtrwBJCpFS8ekVfpEP4av8u8OQKSnTz8Cxc7MXC7OxD1BdKi0m05GuVpWEa5aCe+ZLWq0mhhjDw==",
"version": "3.38.0-beta.8",
"resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com/npm/dadosfera-npm/@dadosfera/protospack-v2/-/protospack-v2-3.38.0-beta.8.tgz",
"integrity": "sha512-8hEJnfFtKKLn7DqvkOi27GpXZkin6PodTvFbQJIplzcsxuurWNmtvWDmNRavm/SYJcotv4kTJkxnCPOKJqYYpA==",
"license": "ISC",
"dependencies": {
"@grpc/grpc-js": "^1.9.3",
+1 -1
View File
@@ -30,7 +30,7 @@
"@aws-sdk/client-secrets-manager": "^3.414.0",
"@dadosfera/dadosfera-logs": "^1.0.0-beta.4",
"@dadosfera/protospack": "2.5.3",
"@dadosfera/protospack-v2": "3.38.0-beta.7",
"@dadosfera/protospack-v2": "3.38.0-beta.8",
"@grpc/grpc-js": "^1.9.3",
"@grpc/proto-loader": "^0.7.9",
"@nestjs/cli": "^9.5.0",
@@ -144,6 +144,21 @@ export class IdentityProviderController {
return await this.identityProviderService.getTokenByIdp(code, state);
}
@Get('/links')
@HttpCode(HttpStatus.OK)
async providerLinks(@Req() req: Request) {
this.logger.info('GET /identity-providers/links');
const frontDomain = req.headers['origin'] as string;
if (!frontDomain) {
throw new Error(ErrorCodes.IDENTITY_PROVIDER.INVALID_HEADER);
}
const result = await this.identityProviderService.identityProvidersLinksPerDomain(frontDomain);
return result;
}
@Get(':id')
@HttpCode(HttpStatus.OK)
@Redirect()
@@ -156,4 +171,5 @@ export class IdentityProviderController {
url: redirectUrl,
};
}
}
@@ -153,4 +153,10 @@ export class IdentityProviderService implements OnModuleInit {
);
}
async identityProvidersLinksPerDomain(frontDomain: string) {
return await lastValueFrom(
this.identityProviderService.GetProviderLinksFromDomain({ frontDomain }),
);
}
}
+1
View File
@@ -77,6 +77,7 @@ const CATALOG = {
};
const IDENTITY_PROVIDER = {
INVALID_RESPONSE: 'IDENTITY_PROVIDER.INVALID_RESPONSE',
INVALID_HEADER: 'IDENTITY_PROVIDER.INVALID_HEADER',
}
const ErrorCodes = {
UNKNOWN: 'UNKNOWN',