mirror of
https://github.com/bitwarden/server
synced 2025-12-06 00:03:34 +00:00
3.2 KiB
3.2 KiB
Bitwarden Server - Claude Code Configuration
Critical Rules
- NEVER edit:
/bin/,/obj/,/.git/,/.vs/,/packages/which are generated files - NEVER use code regions: If complexity suggests regions, refactor for better readability
- NEVER compromise zero-knowledge principles: User vault data must remain encrypted and inaccessible to Bitwarden
- NEVER log or expose sensitive data: No PII, passwords, keys, or vault data in logs or error messages
- ALWAYS use secure communication channels: Enforce confidentiality, integrity, and authenticity
- ALWAYS encrypt sensitive data: All vault data must be encrypted at rest, in transit, and in use
- ALWAYS prioritize cryptographic integrity and data protection
- ALWAYS add unit tests (with mocking) for any new feature development
Project Context
- Architecture: Feature and team-based organization
- Framework: .NET 8.0, ASP.NET Core
- Database: SQL Server primary, EF Core supports PostgreSQL, MySQL/MariaDB, SQLite
- Testing: xUnit, NSubstitute
- Container: Docker, Docker Compose, Kubernetes/Helm deployable
Project Structure
- Source Code:
/src/- Services and core infrastructure - Tests:
/test/- Test logic aligning with the source structure, albeit with a.Testsuffix - Utilities:
/util/- Migration tools, seeders, and setup scripts - Dev Tools:
/dev/- Local development helpers - Configuration:
appsettings.{Environment}.json,/dev/secrets.jsonfor local development
Security Requirements
- Compliance: SOC 2 Type II, SOC 3, HIPAA, ISO 27001, GDPR, CCPA
- Principles: Zero-knowledge, end-to-end encryption, secure defaults
- Validation: Input sanitization, parameterized queries, rate limiting
- Logging: Structured logs, no PII/sensitive data in logs
Common Commands
- Build:
dotnet build - Test:
dotnet test - Run locally:
dotnet run --project src/Api - Database update:
pwsh dev/migrate.ps1 - Generate OpenAPI:
pwsh dev/generate_openapi_files.ps1
Code Review Checklist
- Security impact assessed
- xUnit tests added / updated
- Performance impact considered
- Error handling implemented
- Breaking changes documented
- CI passes: build, test, lint
- Feature flags considered for new features
- CODEOWNERS file respected
Key Architectural Decisions
- Use .NET nullable reference types (ADR 0024)
- TryAdd dependency injection pattern (ADR 0026)
- Authorization patterns (ADR 0022)
- OpenTelemetry for observability (ADR 0020)
- Log to standard output (ADR 0021)