Commit Graph

9 Commits

Author SHA1 Message Date
wizardchen b3898eb101 fix(helm): preserve SYSTEM_AES_KEY/TENANT_AES_KEY across upgrades
The Secret template defaulted both keys to randAlphaNum 32, which Helm
re-rolls on every template render. As a result, any `helm upgrade`
without explicit secrets.systemAesKey / secrets.tenantAesKey rotated
the keys, breaking decryption of every previously encrypted field
(tenants.api_key, model API keys, vector store credentials, web
search provider keys, WeKnoraCloud.AppSecret) and surfacing
"enc:v1:..." ciphertext in the UI.

Use Helm's `lookup` to reuse the values stored in the existing Secret
when one is already present, falling back to randAlphaNum only on
first install. Also document the recovery caveat in values.yaml so
operators understand the risk of relying on the auto-generated value.
2026-04-29 19:46:21 +08:00
DaWesen e309e0bed8 feat(storage): 集成S3存储适配器
添加对AWS S3及兼容存储服务的支持:
- 实现完整的S3FileService接口
- 支持文件上传、下载、删除功能
- 添加配置支持和环境变量检查
- 实现连接测试功能
- 遵循与其他存储适配器相同的代码风格
2026-03-09 10:39:46 +08:00
AndyYang 6c69de2df1 feat(security): add AES-256-GCM encryption for API keys at rest
- Add crypto utility (internal/utils/crypto.go) with AES-256-GCM encrypt/decrypt
  using SYSTEM_AES_KEY env var, with "enc:v1:" prefix for versioned ciphertext
- Encrypt tenant API key via GORM BeforeSave/AfterFind hooks and manual
  encryption in CreateTenant/UpdateAPIKey (db.Updates bypasses hooks)
- Encrypt model API key in ModelParameters Value/Scan (driver.Valuer)
- Widen api_key column from varchar(64) to varchar(256) across all DB dialects
  (MySQL, ParadeDB, SQLite) and add versioned migration 000018
- Propagate SYSTEM_AES_KEY through docker-compose, Helm secrets and values
- Fix migration 000017 PL/pgSQL dollar-quoting syntax ($ -> $$)
2026-03-09 10:35:07 +08:00
Dounx 6adecdb30e feat: add volcengine tos support 2026-02-25 14:24:50 +08:00
Dounx 6e03f1ea79 feat(redis): add REDIS_USERNAME support for Redis ACL 2026-02-04 19:38:40 +08:00
임희호 d6f94cd7ec feat(helm): 添加Neo4j模板支持GraphRAG功能
- 新增neo4j.yaml部署和服务模板
- 在app.yaml中添加Neo4j环境变量
- 在pvc.yaml中添加Neo4j持久卷
- 在secrets.yaml中添加Neo4j认证信息
- 在_helpers.tpl中添加Neo4j镜像助手
- 在NOTES.txt中添加GraphRAG说明
- 在values.yaml中添加Neo4j配置
- 简化.helmignore以修复Helm否定模式错误 (helm/helm#8688)

Fixes #483

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 11:36:47 +08:00
임희호 4159c9d3a5 fix: Use versioned image tag and remove capabilities drop
- Chart.yaml: appVersion "0.2.5" -> "v0.2.5" (match Docker Hub tag format)
- values.yaml: app.image.tag "" (use appVersion) instead of "latest"
- values.yaml: Remove capabilities drop (nginx requires CAP_CHOWN)

Verified all pods running successfully on local k3s cluster.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 15:29:29 +08:00
임희호 f82a0f360c fix: Disable runAsNonRoot for official images compatibility
Official Docker images (nginx, postgres, redis, paradedb) run as root
by default. Disabled runAsNonRoot and readOnlyRootFilesystem to ensure
compatibility.

Changes:
- global.podSecurityContext: removed runAsNonRoot
- global.containerSecurityContext: removed runAsNonRoot, readOnlyRootFilesystem
- Component securityContext: commented out incompatible settings
- app.image.tag: changed from "" to "latest" (versioned tags not available)

Tested on local Kubernetes cluster (k3s) with all pods running successfully.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 15:29:29 +08:00
임희호 451f543e6d feat: Add Helm chart for Kubernetes deployment
Add comprehensive Helm chart for deploying WeKnora to Kubernetes clusters.

Features:
- Core services: app, frontend, docreader, postgresql, redis
- Optional services: MinIO, Neo4j, Qdrant, Jaeger (matching docker-compose profiles)
- CNCF security best practices (SecurityContext, ServiceAccount, non-root)
- Comprehensive documentation (README.md, NOTES.txt)
- Required secrets validation (no default passwords)

References:
- https://helm.sh/docs/chart_best_practices/
- https://github.com/argoproj/argo-helm
- https://github.com/prometheus-community/helm-charts
- https://github.com/cert-manager/cert-manager

Fixes #478

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 15:29:29 +08:00