From eeadba2d42588886ea8afff97f6a37e4ec7bf86e Mon Sep 17 00:00:00 2001 From: Stivenjs Date: Sat, 7 Jun 2025 00:19:33 -0500 Subject: [PATCH 1/2] refactor(template-loader): replace environment variables with outputs for S3 bucket name and region configuration --- lib/store-renderer/services/template-loader.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/store-renderer/services/template-loader.ts b/lib/store-renderer/services/template-loader.ts index 086fbd67..20c4591a 100644 --- a/lib/store-renderer/services/template-loader.ts +++ b/lib/store-renderer/services/template-loader.ts @@ -1,6 +1,7 @@ import { S3Client, GetObjectCommand, ListObjectsV2Command } from '@aws-sdk/client-s3' import type { TemplateFile, TemplateCache, TemplateError } from '../types' import { cookiesClient } from '@/utils/AmplifyServer' +import outputs from '@/amplify_outputs.json' interface S3TemplateCache { [storeId: string]: { @@ -18,7 +19,7 @@ class TemplateLoader { private readonly appEnv: string private constructor() { - this.bucketName = process.env.BUCKET_NAME || '' + this.bucketName = outputs.storage.bucket_name || '' this.cloudFrontDomain = process.env.CLOUDFRONT_DOMAIN_NAME || '' this.appEnv = process.env.APP_ENV || 'development' @@ -29,7 +30,7 @@ class TemplateLoader { accessKeyId: process.env.ACCESS_KEY_ID || '', secretAccessKey: process.env.SECRET_ACCESS_KEY || '', }, - region: process.env.AWS_REGION_BUCKET || 'us-east-2', + region: outputs.auth.aws_region, }) } } From b9107091cf2e565a74b04edd461bc1ea2f7caacc Mon Sep 17 00:00:00 2001 From: Stivenjs Date: Sat, 7 Jun 2025 00:27:06 -0500 Subject: [PATCH 2/2] refactor(template): improve S3 client initialization by conditionally setting credentials based on environment variables --- app/api/stores/template/route.ts | 11 +++++++---- lib/store-renderer/services/template-loader.ts | 11 +++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/app/api/stores/template/route.ts b/app/api/stores/template/route.ts index 33e95996..b56ef406 100644 --- a/app/api/stores/template/route.ts +++ b/app/api/stores/template/route.ts @@ -26,10 +26,13 @@ interface TemplateFile { // Configuración de S3 const s3Client = new S3Client({ - credentials: { - accessKeyId: process.env.ACCESS_KEY_ID || '', - secretAccessKey: process.env.SECRET_ACCESS_KEY || '', - }, + ...(process.env.ACCESS_KEY_ID && + process.env.SECRET_ACCESS_KEY && { + credentials: { + accessKeyId: process.env.ACCESS_KEY_ID, + secretAccessKey: process.env.SECRET_ACCESS_KEY, + }, + }), region: outputs.auth.aws_region, }) diff --git a/lib/store-renderer/services/template-loader.ts b/lib/store-renderer/services/template-loader.ts index 20c4591a..8a607b4e 100644 --- a/lib/store-renderer/services/template-loader.ts +++ b/lib/store-renderer/services/template-loader.ts @@ -26,10 +26,13 @@ class TemplateLoader { // Solo inicializar S3 si tenemos bucket configurado if (this.bucketName) { this.s3Client = new S3Client({ - credentials: { - accessKeyId: process.env.ACCESS_KEY_ID || '', - secretAccessKey: process.env.SECRET_ACCESS_KEY || '', - }, + ...(process.env.ACCESS_KEY_ID && + process.env.SECRET_ACCESS_KEY && { + credentials: { + accessKeyId: process.env.ACCESS_KEY_ID, + secretAccessKey: process.env.SECRET_ACCESS_KEY, + }, + }), region: outputs.auth.aws_region, }) }