feat(05-03): calendar backend — model, crypto, source CRUD module

- Add CalendarSource Prisma model with encrypted credentials (AES-256-GCM)
- Create CalendarCryptoService with encrypt/decrypt using CALENDAR_ENCRYPTION_KEY
- Create CalendarController with source CRUD endpoints (GET/POST/PATCH/DELETE)
- Create CalendarService with ownership checks and SSRF URL validation
- Add DTOs with https-only URL validation and class-validator decorators
- Register CalendarModule in AppModule
- Install tsdav, node-ical, ews-javascript-api, @microsoft/microsoft-graph-client
- Stub provider files for Task 2 compilation
This commit is contained in:
2026-06-24 15:09:03 +02:00
parent 7616365cbe
commit 9ec6313f4d
14 changed files with 1114 additions and 6 deletions
+5 -1
View File
@@ -9,6 +9,7 @@
"type-check": "tsc --noEmit"
},
"dependencies": {
"@microsoft/microsoft-graph-client": "3.0.7",
"@nestjs-modules/mailer": "^2.3.7",
"@nestjs/common": "^11.0.0",
"@nestjs/config": "^4.0.0",
@@ -24,13 +25,16 @@
"class-transformer": "^0.5.1",
"class-validator": "^0.15.1",
"cookie-parser": "^1.4.7",
"ews-javascript-api": "0.15.3",
"ldapts": "^8.1.8",
"node-ical": "0.26.1",
"nodemailer": "^9.0.1",
"passport": "^0.7.0",
"passport-jwt": "^4.0.1",
"passport-local": "^1.0.0",
"reflect-metadata": "^0.2.0",
"rxjs": "^7.0.0"
"rxjs": "^7.0.0",
"tsdav": "2.2.2"
},
"devDependencies": {
"@nestjs/cli": "^11.0.0",