async function addTenantAppClientRecordToOidcProviderTable()

in resources/add_federation_configuration_lambda/handler.js [299:339]


async function addTenantAppClientRecordToOidcProviderTable(baseParams, tenantParams, tenantId, clientSecret) {
  // setting tenant_app_client placeholders to values passed from the step function
  const tenantOidcProviderAppClientUuid = uuid.v4();
  const secretName = `/mysaasapp/${tenantId}/oidcappclientsecret`;

  const createSecretParams = {
    Name: secretName,
    Description: `App client secret for app ${tenantId}`,
    SecretString: clientSecret,
  };
  const secretResponse = await secretsmanager.createSecret(createSecretParams).promise();
  const responseData = {
    SecretArn: secretResponse.ARN,
    SecretName: secretResponse.Name,
    SecretVersionId: secretResponse.secretVersionId,
    clientSecret,
  };
  console.log(`Update secret response data: ${JSON.stringify(responseData)}`);

  console.log('About to add tenantOidcProviderAppClientUuid parmeter to ssm param store');

  const putParamResponseData = await putParameterValue('tenantOidcProviderAppClientUuid', tenantOidcProviderAppClientUuid, tenantId);

  console.log(`Done adding tenantOidcProviderAppClientUuid parmeter to ssm param store ${putParamResponseData}`);

  console.log('About to build oidc provider tenant app client record');
  tenantAppClient.id = `client:${tenantOidcProviderAppClientUuid}`;
  tenantAppClient.client_id = tenantOidcProviderAppClientUuid;
  tenantAppClient.client_secret = clientSecret;
  tenantAppClient.client_uri = `https://cognito-idp.${getParameterValue('cognitoUserPoolRegion', baseParams)}.amazonaws.com/${getParameterValue('cognitoUserPoolId', baseParams)}`;
  tenantAppClient.redirect_uris = [`https://${getParameterValue('cognitoUserPoolDomainPrefix', baseParams)}.auth.${getParameterValue('cognitoUserPoolRegion', baseParams)}.amazoncognito.com/oauth2/idpresponse`];
  tenantAppClient.tenant_id = getParameterValue('tenantUuid', tenantParams);
  console.log('Done setting tenant app settings', JSON.stringify(tenantAppClient));

  console.log('About to add oidc provider tenant app client record to DDB');
  const tenantAppClientParams = {
    TableName: 'oidc-provider',
    Item: tenantAppClient,
  };
  return documentClient.put(tenantAppClientParams).promise();
}