Merge pull request #4810 from Infisical/PAM-41

pam: return metadata for pam access requests
This commit is contained in:
Andre
2025-11-05 19:54:23 -05:00
committed by GitHub
2 changed files with 34 additions and 2 deletions
@@ -92,7 +92,8 @@ export const registerPamAccountRouter = async (server: FastifyZodProvider) => {
gatewayClientCertificate: z.string(), gatewayClientCertificate: z.string(),
gatewayClientPrivateKey: z.string(), gatewayClientPrivateKey: z.string(),
gatewayServerCertificateChain: z.string(), gatewayServerCertificateChain: z.string(),
relayHost: z.string() relayHost: z.string(),
metadata: z.record(z.string(), z.string()).optional()
}) })
} }
}, },
@@ -480,6 +480,36 @@ export const pamAccountServiceFactory = ({
throw new NotFoundError({ message: `Gateway connection details for gateway '${gatewayId}' not found.` }); throw new NotFoundError({ message: `Gateway connection details for gateway '${gatewayId}' not found.` });
} }
let metadata;
switch (resourceType) {
case PamResource.Postgres:
case PamResource.MySQL:
{
const connectionCredentials = await decryptResourceConnectionDetails({
encryptedConnectionDetails: resource.encryptedConnectionDetails,
kmsService,
projectId: account.projectId
});
const credentials = await decryptAccountCredentials({
encryptedCredentials: account.encryptedCredentials,
kmsService,
projectId: account.projectId
});
metadata = {
username: credentials.username,
database: connectionCredentials.database,
accountName: account.name,
accountPath
};
}
break;
default:
break;
}
return { return {
sessionId: session.id, sessionId: session.id,
resourceType, resourceType,
@@ -491,7 +521,8 @@ export const pamAccountServiceFactory = ({
gatewayServerCertificateChain: gatewayConnectionDetails.gateway.serverCertificateChain, gatewayServerCertificateChain: gatewayConnectionDetails.gateway.serverCertificateChain,
relayHost: gatewayConnectionDetails.relayHost, relayHost: gatewayConnectionDetails.relayHost,
projectId: account.projectId, projectId: account.projectId,
account account,
metadata
}; };
}; };