async function createJwksAddToSecrets()

in resources/add_federation_configuration_lambda/handler.js [101:139]


async function createJwksAddToSecrets(tenantId) {
  return new Promise(async (resolve, reject) => {
    console.log(`REQUEST RECEIVED:\n${JSON.stringify(tenantId)}`);

    const keystore = new KeyStore();
    keystore.generateSync('EC', 'P-256');
    keystore.generateSync('EC', 'P-384');
    keystore.generateSync('EC', 'P-521');
    keystore.generateSync('RSA', 1024);

    let responseData; let
      responseStatus;
    try {
      console.log('Creating JWKS as secret in AWS Secrets Manager...');

      const params = {
        Description: `JWKS for ${tenantId}`,
        Name: `/mysaasapp/${tenantId}/jwks`,
        SecretString: JSON.stringify(keystore.toJWKS(true)),
      };

      const secretResponse = await secretsmanager.createSecret(params).promise();

      responseData = {
        SecretArn: secretResponse.ARN,
        SecretName: secretResponse.Name,
        SecretVersionId: secretResponse.secretVersionId,
      };
      console.log(`Create secret response data: ${JSON.stringify(responseData)}`);
      responseStatus = 'SUCCESS';
      resolve(responseData);
    } catch (err) {
      responseStatus = 'FAILED';
      responseData = { Error: 'Update of tenant jwks secret failed.' };
      console.log(`${responseData.Error}:\n`, err);
      reject(responseStatus, err);
    }
  });
}