AR-3 (P1): PersistKeysToFileSystem + persistentes Volume
Program.cs: AddDataProtection().PersistKeysToFileSystem(keyRingPath).SetApplicationName(GerbilManager)
Pfad konfigurierbar via DataProtection:KeyRingPath (env DataProtection__KeyRingPath);
Fallback = ContentRoot/.data-protection-keys (Aspire-Dev-ephemeral, ok).
compose.yaml: DataProtection__KeyRingPath: /data/keys + Volume-Mount keys:/data/keys.
Volumes: neues 'keys' Volume (Bind-Mount auf NAS-Dataset KEYS_PATH=/mnt/SSD/gerbil/keys).
.gitignore: .data-protection-keys/ ignoriert (Dev-only ephemeral keys).
Verhindert: Gmail-App-Passwort wird nach Image-Redeploy unlesbar (bisher stilles inbox-fail).
AR-4 (P1): compose.yaml + .env.example: AI__* statt ANTHROPIC_API_KEY
compose.yaml: ANTHROPIC_API_KEY entfernt (Code liest es nicht). Korrekte Vars:
AI__BaseUrl: ${AI__BaseUrl:-}
AI__ApiKey: ${AI__ApiKey:-}
AI__Model: ${AI__Model:-gemini-2.0-flash}
.env.example: AI__BaseUrl/ApiKey/Model + KEYS_PATH hinzugefuegt; ANTHROPIC_API_KEY entfernt.
Quelle: docs/ai-provider.md (war korrekt, compose war falsch).
Verhindert: alle 4 KI-Features (Verkaufstext, Inbox-Entwurf) blieben in prod stumm.
GATE: 139/139 C#-Tests, build gruen (using Microsoft.AspNetCore.DataProtection; framework-included).
140 lines
2.1 KiB
Plaintext
140 lines
2.1 KiB
Plaintext
# User-specific files
|
|
*.suo
|
|
*.user
|
|
*.sln.docstates
|
|
|
|
# Build results
|
|
|
|
[Dd]ebug/
|
|
[Rr]elease/
|
|
x64/
|
|
[Bb]in/
|
|
[Oo]bj/
|
|
|
|
# MSTest test Results
|
|
[Tt]est[Rr]esult*/
|
|
[Bb]uild[Ll]og.*
|
|
|
|
*_i.c
|
|
*_p.c
|
|
*_i.h
|
|
*.ilk
|
|
*.meta
|
|
*.obj
|
|
*.pch
|
|
*.pdb
|
|
*.pgc
|
|
*.pgd
|
|
*.rsp
|
|
*.sbr
|
|
*.tlb
|
|
*.tli
|
|
*.tlh
|
|
*.tmp
|
|
*.tmp_proj
|
|
*.log
|
|
*.vspscc
|
|
*.vssscc
|
|
.builds
|
|
*.pidb
|
|
*.log
|
|
*.svclog
|
|
*.scc
|
|
|
|
# Visual C++ cache files
|
|
ipch/
|
|
*.aps
|
|
*.ncb
|
|
*.opensdf
|
|
*.sdf
|
|
*.cachefile
|
|
|
|
# Visual Studio profiler
|
|
*.psess
|
|
*.vsp
|
|
*.vspx
|
|
|
|
# Guidance Automation Toolkit
|
|
*.gpState
|
|
|
|
# ReSharper is a .NET coding add-in
|
|
_ReSharper*/
|
|
*.[Rr]e[Ss]harper
|
|
*.DotSettings.user
|
|
|
|
# Click-Once directory
|
|
publish/
|
|
|
|
# Publish Web Output
|
|
*.Publish.xml
|
|
*.pubxml
|
|
*.azurePubxml
|
|
|
|
# NuGet Packages Directory
|
|
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
|
|
packages/
|
|
## TODO: If the tool you use requires repositories.config, also uncomment the next line
|
|
!packages/repositories.config
|
|
|
|
# Windows Azure Build Output
|
|
csx/
|
|
*.build.csdef
|
|
|
|
# Windows Store app package directory
|
|
AppPackages/
|
|
|
|
# Others
|
|
sql/
|
|
*.Cache
|
|
ClientBin/
|
|
[Ss]tyle[Cc]op.*
|
|
![Ss]tyle[Cc]op.targets
|
|
~$*
|
|
*~
|
|
*.dbmdl
|
|
*.[Pp]ublish.xml
|
|
|
|
*.publishsettings
|
|
|
|
# RIA/Silverlight projects
|
|
Generated_Code/
|
|
|
|
# Backup & report files from converting an old project file to a newer
|
|
# Visual Studio version. Backup files are not needed, because we have git ;-)
|
|
_UpgradeReport_Files/
|
|
Backup*/
|
|
UpgradeLog*.XML
|
|
UpgradeLog*.htm
|
|
|
|
# SQL Server files
|
|
App_Data/*.mdf
|
|
App_Data/*.ldf
|
|
|
|
# =========================
|
|
# Windows detritus
|
|
# =========================
|
|
|
|
# Windows image file caches
|
|
Thumbs.db
|
|
ehthumbs.db
|
|
|
|
# Folder config file
|
|
Desktop.ini
|
|
|
|
# Recycle Bin used on file shares
|
|
$RECYCLE.BIN/
|
|
|
|
# Mac desktop service store files
|
|
.DS_Store
|
|
|
|
|
|
# MemPalace per-project files (issue #185)
|
|
mempalace.yaml
|
|
entities.json
|
|
|
|
# Runtime photo store (uploaded/imported gerbil photos) — never commit
|
|
GerbilManagerWebAPI/photo-storage/
|
|
|
|
# AR-3: Data Protection key ring (dev-only ephemeral keys) — never commit
|
|
GerbilManagerWebAPI/.data-protection-keys/
|