in src/cartservice/src/cartstore/AlloyDBCartStore.cs [30:59]
public AlloyDBCartStore(IConfiguration configuration)
{
// Create a Cloud Secrets client.
SecretManagerServiceClient client = SecretManagerServiceClient.Create();
var projectId = configuration["PROJECT_ID"];
var secretId = configuration["ALLOYDB_SECRET_NAME"];
SecretVersionName secretVersionName = new SecretVersionName(projectId, secretId, "latest");
AccessSecretVersionResponse result = client.AccessSecretVersion(secretVersionName);
// Convert the payload to a string. Payloads are bytes by default.
string alloyDBPassword = result.Payload.Data.ToStringUtf8().TrimEnd('\r', '\n');
// TODO: Create a separate user for connecting within the application
// rather than using our superuser
string alloyDBUser = "postgres";
string databaseName = configuration["ALLOYDB_DATABASE_NAME"];
// TODO: Consider splitting workloads into read vs. write and take
// advantage of the AlloyDB read pools
string primaryIPAddress = configuration["ALLOYDB_PRIMARY_IP"];
connectionString = "Host=" +
primaryIPAddress +
";Username=" +
alloyDBUser +
";Password=" +
alloyDBPassword +
";Database=" +
databaseName;
tableName = configuration["ALLOYDB_TABLE_NAME"];
}