export async function generateAppSyncConfig()

in bootstrapping-lambda/src/generateAppSyncConfig.ts [9:33]


export async function generateAppSyncConfig(
  userEmail: string,
  s3: S3
): Promise<AppSyncConfig> {
  const graphqlEndpoint = getEnvironmentVariableOrThrow("graphqlEndpoint");

  const pandaConfig = await getPandaConfig<{ privateKey: string }>(s3);

  const privateKey = crypto.createPrivateKey(
    `-----BEGIN RSA PRIVATE KEY-----\n${pandaConfig.privateKey}\n-----END RSA PRIVATE KEY-----`
  );

  const authToken = await new SignJWT({ userEmail })
    .setIssuedAt()
    .setExpirationTime("24h")
    .setIssuer(APP)
    .setProtectedHeader({ alg: "RS256" })
    .sign(privateKey);

  if (!authToken) {
    throw Error("Could not retrieve/create an authentication token.");
  }

  return { graphqlEndpoint, authToken };
}