Compare commits

...

3 commits

Author SHA1 Message Date
dependabot[bot]
425bc86cc7
Bump @types/node from 22.19.18 to 25.9.0 (#9)
Some checks are pending
Deploy / deploy (push) Waiting to run
@types/node 25.9.0 — validated locally: tsc --noEmit passes.
2026-05-18 17:27:53 -04:00
dependabot[bot]
c0ac1e3fc3
Bump typescript from 5.7.3 to 6.0.3 (#8)
TypeScript 6.0.3 — validated locally: tsc --noEmit and cdk synth both pass.
2026-05-18 17:27:47 -04:00
Adam Moussa
d2b718a126
Fix compliance audit violations from issue #6 (#7)
Pin aws-cdk-lib to blessed 2.253.1, add dependabot.yml, export
backup verification Lambda ARN, pin node-version: 24 in workflows,
add __pycache__ to .gitignore.
2026-05-18 16:35:23 -04:00
8 changed files with 49 additions and 23 deletions

15
.github/dependabot.yml vendored Normal file
View file

@ -0,0 +1,15 @@
version: 2
updates:
- package-ecosystem: npm
directory: /
schedule:
interval: weekly
assignees:
- amoussa1229
- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
assignees:
- amoussa1229

View file

@ -7,4 +7,5 @@ jobs:
ci:
uses: Sea-Haven-Industries/.github/.github/workflows/ci-typescript-cdk.yaml@main
with:
node-version: "24"
enable-qemu: true

View file

@ -15,6 +15,7 @@ jobs:
deploy:
uses: Sea-Haven-Industries/.github/.github/workflows/cd-cdk.yaml@main
with:
node-version: "24"
enable-qemu: true
secrets:
deploy-role-arn: ${{ secrets.AWS_DEPLOY_ROLE_ARN }}

1
.gitignore vendored
View file

@ -5,3 +5,4 @@ cdk.out/
*.d.ts
*.js.map
docs/*.pdf
__pycache__/

View file

@ -18,6 +18,8 @@ interface BackupVerificationProps {
}
export class BackupVerification extends Construct {
public readonly functionArn: string;
constructor(scope: Construct, id: string, props: BackupVerificationProps) {
super(scope, id);
@ -106,5 +108,7 @@ export class BackupVerification extends Construct {
treatMissingData: cloudwatch.TreatMissingData.BREACHING,
comparisonOperator: cloudwatch.ComparisonOperator.GREATER_THAN_OR_EQUAL_TO_THRESHOLD,
});
this.functionArn = fn.functionArn;
}
}

View file

@ -455,7 +455,7 @@ export class ForgejoStack extends cdk.Stack {
),
});
new BackupVerification(this, "BackupVerification", {
const backupVerification = new BackupVerification(this, "BackupVerification", {
sourceBucket: backupBucket,
replicaBucketName: props.replicaBucketName,
gcsBucket: "forgejo-backups-offsite-seahaven",
@ -463,6 +463,10 @@ export class ForgejoStack extends cdk.Stack {
slackWebhookSecretName: "forgejo/slack-webhook",
});
new cdk.CfnOutput(this, "BackupVerificationFunctionArn", {
value: backupVerification.functionArn,
});
new cdk.CfnOutput(this, "ForgejoUrl", {
value: "https://forgejo.seahaven.com",
});

36
package-lock.json generated
View file

@ -8,18 +8,18 @@
"name": "forgejo",
"version": "1.0.0",
"dependencies": {
"@aws-cdk/aws-lambda-python-alpha": "^2.252.0-alpha.0",
"aws-cdk-lib": "^2.252.0",
"@aws-cdk/aws-lambda-python-alpha": "2.253.1-alpha.0",
"aws-cdk-lib": "2.253.1",
"constructs": "^10.0.0"
},
"bin": {
"app": "bin/app.js"
},
"devDependencies": {
"@types/node": "^22.0.0",
"@types/node": "^25.9.0",
"aws-cdk": "^2.252.0",
"source-map-support": "^0.5.21",
"typescript": "~5.7.0"
"typescript": "~6.0.3"
}
},
"node_modules/@aws-cdk/asset-awscli-v1": {
@ -35,15 +35,15 @@
"license": "Apache-2.0"
},
"node_modules/@aws-cdk/aws-lambda-python-alpha": {
"version": "2.252.0-alpha.0",
"resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda-python-alpha/-/aws-lambda-python-alpha-2.252.0-alpha.0.tgz",
"integrity": "sha512-hVcursqZQ6tjToN4AvzOTfoeiN9epJGbUVi5VCGbIT88ide4hUzKsOda29+vw1Ket8nLi5i/xNB9odWU5QWdkw==",
"version": "2.253.1-alpha.0",
"resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda-python-alpha/-/aws-lambda-python-alpha-2.253.1-alpha.0.tgz",
"integrity": "sha512-k4yeoKExF7aGvmcY7pPFP6wjrt1L/mNtnddA72yIqcSDumAKI0hRqkqp7yG6GC45ubeuAD0pCQeSW9YGkEMI9A==",
"license": "Apache-2.0",
"engines": {
"node": ">= 20.0.0"
},
"peerDependencies": {
"aws-cdk-lib": "^2.252.0",
"aws-cdk-lib": "^2.253.1",
"constructs": "^10.5.0"
}
},
@ -84,13 +84,13 @@
}
},
"node_modules/@types/node": {
"version": "22.19.18",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.18.tgz",
"integrity": "sha512-9v00a+dn2yWVsYDEunWC4g/TcRKVq3r8N5FuZp7u0SGrPvdN9c2yXI9bBuf5Fl0hNCb+QTIePTn5pJs2pwBOQQ==",
"version": "25.9.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.0.tgz",
"integrity": "sha512-AOQwYUNolgy3VosiRqXrACUXTN8nJUtPl7FJXMqZVyxiiCLhQuG3jXKvCS1ALr+Y2OmZhzzLVlYPEqJaiqkaJQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"undici-types": "~6.21.0"
"undici-types": ">=7.24.0 <7.24.7"
}
},
"node_modules/aws-cdk": {
@ -515,9 +515,9 @@
}
},
"node_modules/typescript": {
"version": "5.7.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
"integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz",
"integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==",
"dev": true,
"license": "Apache-2.0",
"bin": {
@ -529,9 +529,9 @@
}
},
"node_modules/undici-types": {
"version": "6.21.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
"integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
"version": "7.24.6",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz",
"integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==",
"dev": true,
"license": "MIT"
}

View file

@ -12,14 +12,14 @@
"diff": "cdk diff"
},
"devDependencies": {
"@types/node": "^22.0.0",
"@types/node": "^25.9.0",
"aws-cdk": "^2.252.0",
"source-map-support": "^0.5.21",
"typescript": "~5.7.0"
"typescript": "~6.0.3"
},
"dependencies": {
"@aws-cdk/aws-lambda-python-alpha": "^2.252.0-alpha.0",
"aws-cdk-lib": "^2.252.0",
"@aws-cdk/aws-lambda-python-alpha": "2.253.1-alpha.0",
"aws-cdk-lib": "2.253.1",
"constructs": "^10.0.0"
}
}