@friggframework/devtools 2.0.0--canary.461.54b9dc9.0 → 2.0.0--canary.461.b8d8dfd.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -59,6 +59,38 @@ class MigrationBuilder extends InfrastructureBuilder {
|
|
|
59
59
|
environment: {},
|
|
60
60
|
};
|
|
61
61
|
|
|
62
|
+
// Create S3 bucket for migration status tracking
|
|
63
|
+
result.resources.FriggMigrationStatusBucket = {
|
|
64
|
+
Type: 'AWS::S3::Bucket',
|
|
65
|
+
Properties: {
|
|
66
|
+
BucketName: '${self:service}-${self:provider.stage}-migration-status',
|
|
67
|
+
VersioningConfiguration: {
|
|
68
|
+
Status: 'Enabled', // Enable versioning for audit trail
|
|
69
|
+
},
|
|
70
|
+
LifecycleConfiguration: {
|
|
71
|
+
Rules: [
|
|
72
|
+
{
|
|
73
|
+
Id: 'DeleteOldMigrations',
|
|
74
|
+
Status: 'Enabled',
|
|
75
|
+
ExpirationInDays: 90, // Keep migration history for 90 days
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
},
|
|
79
|
+
PublicAccessBlockConfiguration: {
|
|
80
|
+
BlockPublicAcls: true,
|
|
81
|
+
BlockPublicPolicy: true,
|
|
82
|
+
IgnorePublicAcls: true,
|
|
83
|
+
RestrictPublicBuckets: true,
|
|
84
|
+
},
|
|
85
|
+
Tags: [
|
|
86
|
+
{ Key: 'ManagedBy', Value: 'Frigg' },
|
|
87
|
+
{ Key: 'Purpose', Value: 'MigrationStatusTracking' },
|
|
88
|
+
],
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
console.log(' ✓ Created FriggMigrationStatusBucket resource');
|
|
93
|
+
|
|
62
94
|
// Create SQS queue for migration jobs
|
|
63
95
|
result.resources.DbMigrationQueue = {
|
|
64
96
|
Type: 'AWS::SQS::Queue',
|
|
@@ -176,6 +208,10 @@ class MigrationBuilder extends InfrastructureBuilder {
|
|
|
176
208
|
|
|
177
209
|
console.log(' ✓ Created dbMigrationRouter function');
|
|
178
210
|
|
|
211
|
+
// Add S3 bucket name to environment (for migration status tracking)
|
|
212
|
+
result.environment.S3_BUCKET_NAME = { Ref: 'FriggMigrationStatusBucket' };
|
|
213
|
+
result.environment.MIGRATION_STATUS_BUCKET = { Ref: 'FriggMigrationStatusBucket' };
|
|
214
|
+
|
|
179
215
|
// Add queue URL to environment
|
|
180
216
|
result.environment.DB_MIGRATION_QUEUE_URL = { Ref: 'DbMigrationQueue' };
|
|
181
217
|
|
|
@@ -183,7 +219,7 @@ class MigrationBuilder extends InfrastructureBuilder {
|
|
|
183
219
|
// Avoids Prisma needing to load app definition to determine database type
|
|
184
220
|
result.environment.DB_TYPE = 'postgresql';
|
|
185
221
|
|
|
186
|
-
console.log(' ✓ Added DB_MIGRATION_QUEUE_URL and DB_TYPE environment variables');
|
|
222
|
+
console.log(' ✓ Added S3_BUCKET_NAME, DB_MIGRATION_QUEUE_URL, and DB_TYPE environment variables');
|
|
187
223
|
|
|
188
224
|
// Add IAM permissions for SQS
|
|
189
225
|
result.iamStatements.push({
|
|
@@ -209,7 +245,13 @@ class MigrationBuilder extends InfrastructureBuilder {
|
|
|
209
245
|
's3:DeleteObject',
|
|
210
246
|
],
|
|
211
247
|
Resource: {
|
|
212
|
-
'Fn::
|
|
248
|
+
'Fn::Join': [
|
|
249
|
+
'',
|
|
250
|
+
[
|
|
251
|
+
{ 'Fn::GetAtt': ['FriggMigrationStatusBucket', 'Arn'] },
|
|
252
|
+
'/migrations/*',
|
|
253
|
+
],
|
|
254
|
+
],
|
|
213
255
|
},
|
|
214
256
|
});
|
|
215
257
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@friggframework/devtools",
|
|
3
3
|
"prettier": "@friggframework/prettier-config",
|
|
4
|
-
"version": "2.0.0--canary.461.
|
|
4
|
+
"version": "2.0.0--canary.461.b8d8dfd.0",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@aws-sdk/client-ec2": "^3.835.0",
|
|
7
7
|
"@aws-sdk/client-kms": "^3.835.0",
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
"@babel/eslint-parser": "^7.18.9",
|
|
12
12
|
"@babel/parser": "^7.25.3",
|
|
13
13
|
"@babel/traverse": "^7.25.3",
|
|
14
|
-
"@friggframework/schemas": "2.0.0--canary.461.
|
|
15
|
-
"@friggframework/test": "2.0.0--canary.461.
|
|
14
|
+
"@friggframework/schemas": "2.0.0--canary.461.b8d8dfd.0",
|
|
15
|
+
"@friggframework/test": "2.0.0--canary.461.b8d8dfd.0",
|
|
16
16
|
"@hapi/boom": "^10.0.1",
|
|
17
17
|
"@inquirer/prompts": "^5.3.8",
|
|
18
18
|
"axios": "^1.7.2",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"serverless-http": "^2.7.0"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@friggframework/eslint-config": "2.0.0--canary.461.
|
|
38
|
-
"@friggframework/prettier-config": "2.0.0--canary.461.
|
|
37
|
+
"@friggframework/eslint-config": "2.0.0--canary.461.b8d8dfd.0",
|
|
38
|
+
"@friggframework/prettier-config": "2.0.0--canary.461.b8d8dfd.0",
|
|
39
39
|
"aws-sdk-client-mock": "^4.1.0",
|
|
40
40
|
"aws-sdk-client-mock-jest": "^4.1.0",
|
|
41
41
|
"jest": "^30.1.3",
|
|
@@ -70,5 +70,5 @@
|
|
|
70
70
|
"publishConfig": {
|
|
71
71
|
"access": "public"
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "b8d8dfde09edee96392f40cf86093afd4cbc1216"
|
|
74
74
|
}
|