# Bitwarden 贡献文档

## Bitwarden 贡献文档

- [关于](https://dev.ppgg.in/about.md)
- [概述](https://dev.ppgg.in/getting-started/overview.md)
- [工具](https://dev.ppgg.in/getting-started/tools.md)
- [服务器](https://dev.ppgg.in/getting-started/server.md)
- [设置指南](https://dev.ppgg.in/getting-started/server/guide.md)
- [高级服务器设置](https://dev.ppgg.in/getting-started/server/advanced-setup.md)
- [数据库](https://dev.ppgg.in/getting-started/server/database.md)
- [MSSQL](https://dev.ppgg.in/getting-started/server/database/mssql.md)
- [实体框架](https://dev.ppgg.in/getting-started/server/database/ef.md)
- [事件日志](https://dev.ppgg.in/getting-started/server/events.md)
- [Ingress 隧道](https://dev.ppgg.in/getting-started/server/tunnel.md)
- [SCIM](https://dev.ppgg.in/getting-started/server/scim.md)
- [自托管指南](https://dev.ppgg.in/getting-started/server/self-hosted.md)
- [系统管理门户](https://dev.ppgg.in/getting-started/server/portal.md)
- [单点登录 (SSO)](https://dev.ppgg.in/getting-started/server/sso.md)
- [本地 IdP](https://dev.ppgg.in/getting-started/server/sso/local.md)
- [Okta](https://dev.ppgg.in/getting-started/server/sso/okta.md)
- [故障排除](https://dev.ppgg.in/getting-started/server/troubleshooting.md)
- [用户机密](https://dev.ppgg.in/getting-started/server/secrets.md)
- [公共 API](https://dev.ppgg.in/getting-started/server/gong-gong-api.md)
- [网页客户端](https://dev.ppgg.in/getting-started/clients.md)
- [网页密码库](https://dev.ppgg.in/getting-started/clients/web-vault.md)
- [WebAuthn](https://dev.ppgg.in/getting-started/clients/web-vault/webauthn.md)
- [浏览器端](https://dev.ppgg.in/getting-started/clients/browser.md)
- [生物识别解锁](https://dev.ppgg.in/getting-started/clients/browser/biometric.md)
- [Firefox 隐私模式](https://dev.ppgg.in/getting-started/clients/browser/ff-private.md)
- [桌面端](https://dev.ppgg.in/getting-started/clients/desktop.md)
- [Mac App Store Dev](https://dev.ppgg.in/getting-started/clients/desktop/mac.md)
- [Microsoft Store](https://dev.ppgg.in/getting-started/clients/desktop/microsoft-store.md)
- [Native Messaging Test Runner](https://dev.ppgg.in/getting-started/clients/desktop/native-messaging-test-runner.md)
- [更新测试](https://dev.ppgg.in/getting-started/clients/desktop/update.md)
- [CLI](https://dev.ppgg.in/getting-started/clients/cli.md)
- [故障排除](https://dev.ppgg.in/getting-started/clients/troubleshooting.md)
- [移动端](https://dev.ppgg.in/getting-started/mobile.md)
- [Android](https://dev.ppgg.in/getting-started/mobile/android.md)
- [F-Droid](https://dev.ppgg.in/getting-started/mobile/android/f-droid.md)
- [iOS](https://dev.ppgg.in/getting-started/mobile/ios.md)
- [.NET MAUI (legacy)](https://dev.ppgg.in/getting-started/mobile/net-maui-legacy.md)
- [Android](https://dev.ppgg.in/getting-started/mobile/net-maui-legacy/android.md)
- [iOS](https://dev.ppgg.in/getting-started/mobile/net-maui-legacy/ios.md)
- [watchOS](https://dev.ppgg.in/getting-started/mobile/net-maui-legacy/watchos.md)
- [SDK](https://dev.ppgg.in/getting-started/sdk.md)
- [内部 SDK](https://dev.ppgg.in/getting-started/sdk/internal-sdk.md)
- [Secrets Manager](https://dev.ppgg.in/getting-started/sdk/secrets-manager.md)
- [Integrations](https://dev.ppgg.in/getting-started/sdk/secrets-manager/integrations.md)
- [Kubernetes](https://dev.ppgg.in/getting-started/sdk/secrets-manager/integrations/kubernetes.md)
- [业务 App](https://dev.ppgg.in/getting-started/business.md)
- [目录连接器](https://dev.ppgg.in/getting-started/business/directory-connector.md)
- [JumpCloud](https://dev.ppgg.in/getting-started/business/directory-connector/jumpcloud.md)
- [OpenLDAP Docker 服务器](https://dev.ppgg.in/getting-started/business/directory-connector/open-ldap.md)
- [Key Connector](https://dev.ppgg.in/getting-started/business/key-connector.md)
- [Splunk App](https://dev.ppgg.in/getting-started/business/splunk-app.md)
- [贡献](https://dev.ppgg.in/contributing/contributing.md)
- [代码样式](https://dev.ppgg.in/contributing/code-style.md)
- [=Android & Kotlin](https://dev.ppgg.in/contributing/code-style/android-and-kotlin.md)
- [Angular & TypeScript](https://dev.ppgg.in/contributing/code-style/angular.md)
- [C#](https://dev.ppgg.in/contributing/code-style/csharp.md)
- [=Rust](https://dev.ppgg.in/contributing/code-style/rust.md)
- [T-SQL](https://dev.ppgg.in/contributing/code-style/t-sql.md)
- [=Swift](https://dev.ppgg.in/contributing/code-style/swift.md)
- [Tailwind](https://dev.ppgg.in/contributing/code-style/tailwind.md)
- [数据库迁移](https://dev.ppgg.in/contributing/database-migrations.md)
- [进化数据库设计](https://dev.ppgg.in/contributing/database-migrations/edd.md)
- [提交签名](https://dev.ppgg.in/contributing/commit-signing.md)
- [拉取请求](https://dev.ppgg.in/contributing/pull-requests.md)
- [=贡献审查程序](https://dev.ppgg.in/contributing/pull-requests/contribution-review-process.md)
- [分支](https://dev.ppgg.in/contributing/pull-requests/branching.md)
- [代码审查](https://dev.ppgg.in/contributing/pull-requests/code-review.md)
- [UI 审查 - Chromatic](https://dev.ppgg.in/contributing/pull-requests/chromatic.md)
- [无障碍](https://dev.ppgg.in/contributing/accessibility.md)
- [依赖管理](https://dev.ppgg.in/contributing/dependencies.md)
- [功能标记](https://dev.ppgg.in/contributing/feature-flags.md)
- [模板存储库](https://dev.ppgg.in/contributing/template-repository.md)
- [测试](https://dev.ppgg.in/contributing/testing.md)
- [=数据库集成测试](https://dev.ppgg.in/contributing/testing/database.md)
- [负载测试](https://dev.ppgg.in/contributing/testing/load.md)
- [单元测试](https://dev.ppgg.in/contributing/testing/unit.md)
- [命名约定](https://dev.ppgg.in/contributing/testing/unit/naming-conventions.md)
- [测试结构](https://dev.ppgg.in/contributing/testing/unit/structure.md)
- [修改用户机密](https://dev.ppgg.in/contributing/user-secrets.md)
- [架构](https://dev.ppgg.in/architecture/architecture.md)
- [架构决策记录 (ADR)](https://dev.ppgg.in/architecture/adr.md)
- [0001 - Angular Reactive Forms](https://dev.ppgg.in/architecture/adr/0001-angular-reactive-forms.md)
- [0002 - Public API for modules](https://dev.ppgg.in/architecture/adr/0002-public-api-for-modules.md)
- [0003 - Adopt Observable Data Services for Angular](https://dev.ppgg.in/architecture/adr/0003-adopt-observable-data-services-for-angular.md)
- [0004 - Refactor State Service](https://dev.ppgg.in/architecture/adr/0004-refactor-state-service.md)
- [0005 - Refactor Api Service](https://dev.ppgg.in/architecture/adr/0005-refactor-api-service.md)
- [0006 - Clients: Use Jest Mocks](https://dev.ppgg.in/architecture/adr/0006-clients-use-jest-mocks.md)
- [0007 - Manifest V3 sync Observables](https://dev.ppgg.in/architecture/adr/0007-manifest-v3-sync-observables.md)
- [0008 - Server: Adopt CQRS](https://dev.ppgg.in/architecture/adr/0008-server-adopt-cqrs.md)
- [0009 - Composition over inheritance](https://dev.ppgg.in/architecture/adr/0009-composition-over-inheritance.md)
- [0010 - Angular Modules](https://dev.ppgg.in/architecture/adr/0010-angular-modules.md)
- [0011 - Scalable Angular Clients folder structure](https://dev.ppgg.in/architecture/adr/0011-scalable-angular-clients-folder-structure.md)
- [0012 - Angular Filename convention](https://dev.ppgg.in/architecture/adr/0012-angular-filename-convention.md)
- [0013 - Avoid layered folder structure for request/response models](https://dev.ppgg.in/architecture/adr/0013-avoid-layered-folder-structure-for-request-response-models.md)
- [0014 - Adopt Typescript Strict flag](https://dev.ppgg.in/architecture/adr/0014-adopt-typescript-strict-flag.md)
- [0015 - Short Lived Browser Services](https://dev.ppgg.in/architecture/adr/0015-short-lived-browser-services.md)
- [0016 - Move Decryption and Encryption to Views](https://dev.ppgg.in/architecture/adr/0016-move-decryption-and-encryption-to-views.md)
- [0017 - Use Swift to build watchOS app](https://dev.ppgg.in/architecture/adr/0017-use-swift-to-build-watchos-app.md)
- [0018 - Feature management](https://dev.ppgg.in/architecture/adr/0018-feature-management.md)
- [0019 - Adoption of Web Push](https://dev.ppgg.in/architecture/adr/0019-adoption-of-web-push.md)
- [0020 - Observability with OpenTelemetry](https://dev.ppgg.in/architecture/adr/0020-observability-with-opentelemetry.md)
- [0021 - Logging to Standard Output](https://dev.ppgg.in/architecture/adr/0021-logging-to-standard-output.md)
- [=0022 - Authorization](https://dev.ppgg.in/architecture/adr/server-authorization.md)
- [=0023 - Identifying Integrated Clients](https://dev.ppgg.in/architecture/adr/integration-identifiers.md)
- [移动客户端架构](https://dev.ppgg.in/architecture/mobile-clients.md)
- [=Android](https://dev.ppgg.in/architecture/mobile-clients/android.md)
- [=iOS](https://dev.ppgg.in/architecture/mobile-clients/ios.md)
- [=推送通知故障排除提示](https://dev.ppgg.in/architecture/mobile-clients/ios/push-notification-troubleshooting.md)
- [=.NET MAUI (legacy)](https://dev.ppgg.in/architecture/mobile-clients/net-maui-legacy.md)
- [=概述](https://dev.ppgg.in/architecture/mobile-clients/net-maui-legacy/overview.md)
- [watchOS](https://dev.ppgg.in/architecture/mobile-clients/net-maui-legacy/watchos.md)
- [=SDK 架构](https://dev.ppgg.in/architecture/sdk.md)
- [=数据模型](https://dev.ppgg.in/architecture/sdk/data-models.md)
- [=依赖](https://dev.ppgg.in/architecture/sdk/dependencies.md)
- [Password Manager](https://dev.ppgg.in/architecture/sdk/password-manager.md)
- [Web](https://dev.ppgg.in/architecture/sdk/password-manager/web.md)
- [=互操作性](https://dev.ppgg.in/architecture/sdk/password-manager/web/interoperability.md)
- [=Secrets Manager](https://dev.ppgg.in/architecture/sdk/secrets-manager.md)
- [=服务器绑定](https://dev.ppgg.in/architecture/sdk/server-bindings.md)
- [=版本控制和破坏性更改](https://dev.ppgg.in/architecture/sdk/versioning.md)
- [网络客户端架构](https://dev.ppgg.in/architecture/clients.md)
- [概述](https://dev.ppgg.in/architecture/clients/overview.md)
- [数据模型](https://dev.ppgg.in/architecture/clients/data-model.md)
- [表示层](https://dev.ppgg.in/architecture/clients/presentation.md)
- [Angular](https://dev.ppgg.in/architecture/clients/presentation/angular.md)
- [CLI](https://dev.ppgg.in/architecture/clients/presentation/cli.md)
- [=依赖注入](https://dev.ppgg.in/architecture/clients/dependency-injection.md)
- [服务层](https://dev.ppgg.in/architecture/clients/services.md)
- [Vision](https://dev.ppgg.in/architecture/clients/services/vision.md)
- [实现](https://dev.ppgg.in/architecture/clients/services/implementation.md)
- [服务器架构](https://dev.ppgg.in/architecture/server.md)
- [深度剖析](https://dev.ppgg.in/architecture/deep-dives.md)
- [身份验证](https://dev.ppgg.in/architecture/deep-dives/authentication.md)
- [双重身份验证](https://dev.ppgg.in/architecture/deep-dives/authentication/two-factor-auth.md)
- [=授权](https://dev.ppgg.in/architecture/deep-dives/authorization.md)
- [=浏览器自动填充](https://dev.ppgg.in/architecture/deep-dives/autofill.md)
- [收集页面详细信息](https://dev.ppgg.in/architecture/deep-dives/autofill/collecting-page-details.md)
- [生成并执行填充脚本](https://dev.ppgg.in/architecture/deep-dives/autofill/generating-fill-scripts.md)
- [表单提交检测](https://dev.ppgg.in/architecture/deep-dives/autofill/form-submission-detection.md)
- [Shadow DOM](https://dev.ppgg.in/architecture/deep-dives/autofill/shadow-dom.md)
- [=内联自动填充菜单](https://dev.ppgg.in/architecture/deep-dives/autofill/autofill-menu.md)
- [Captcha](https://dev.ppgg.in/architecture/deep-dives/captchas.md)
- [=只读数据库副本](https://dev.ppgg.in/architecture/deep-dives/database-replicas.md)
- [事件日志](https://dev.ppgg.in/architecture/deep-dives/event-logs.md)
- [=FIDO2 和通行密钥](https://dev.ppgg.in/architecture/deep-dives/passkeys.md)
- [=凭据](https://dev.ppgg.in/architecture/deep-dives/passkeys/credentials.md)
- [=操作](https://dev.ppgg.in/architecture/deep-dives/passkeys/operations.md)
- [=命名惯例](https://dev.ppgg.in/architecture/deep-dives/passkeys/naming-convention.md)
- [=实现](https://dev.ppgg.in/architecture/deep-dives/passkeys/implementations.md)
- [=提供程序](https://dev.ppgg.in/architecture/deep-dives/passkeys/implementations/provider.md)
- [=浏览器扩展](https://dev.ppgg.in/architecture/deep-dives/passkeys/implementations/provider/browser-extension.md)
- [=依赖方](https://dev.ppgg.in/architecture/deep-dives/passkeys/implementations/relying-party.md)
- [=用于解密的通行密钥](https://dev.ppgg.in/architecture/deep-dives/passkeys/implementations/relying-party/prf.md)
- [=术语表](https://dev.ppgg.in/architecture/deep-dives/passkeys/glossary.md)
- [推送通知](https://dev.ppgg.in/architecture/deep-dives/push-notifications.md)
- [移动端推送通知](https://dev.ppgg.in/architecture/deep-dives/push-notifications/mobile.md)
- [其他客户端推送通知](https://dev.ppgg.in/architecture/deep-dives/push-notifications/non-mobile.md)
- [=SSH 密钥和代理](https://dev.ppgg.in/architecture/deep-dives/ssh.md)
- [=SSH 代理](https://dev.ppgg.in/architecture/deep-dives/ssh/agent.md)
- [=状态提供程序框架](https://dev.ppgg.in/architecture/deep-dives/state.md)
- [=派生状态](https://dev.ppgg.in/architecture/deep-dives/state/derived-state.md)
- [=安全](https://dev.ppgg.in/architecture/security.md)
- [=定义](https://dev.ppgg.in/architecture/security/definitions.md)
- [=原则](https://dev.ppgg.in/architecture/security/principles.md)
- [=P01 - 锁定的密码库是安全的](https://dev.ppgg.in/architecture/security/principles/locked-vault-is-secure.md)
- [=P02 - 半受损设备密码库的有限安全性](https://dev.ppgg.in/architecture/security/principles/limited-security-on-semi-compromised.md)
- [=P03 - 完全损坏的系统没有安全性](https://dev.ppgg.in/architecture/security/principles/no-security-on-fully-compromised.md)
- [=P04 - 控制密码库数据的访问权限](https://dev.ppgg.in/architecture/security/principles/controlled-access.md)
- [=P05 - 将安全漏洞的影响降至最低](https://dev.ppgg.in/architecture/security/principles/minimized-impact-of-security-breaches.md)
- [=要求](https://dev.ppgg.in/architecture/security/requirements.md)
