enhancementgood first issueintegrationnew-featurenew-integration
Repository metrics
- Stars
- (1,930 stars)
- PR merge metrics
- (Avg merge 3h 2m) (10 merged PRs in 30d)
Description
Description
Add Bitwarden integration to sync vault activity, organization events, member management, and collection data into CORE.
Reference Implementations
Existing Integrations (use as templates)
integrations/github/- OAuth-based integration with event trackingintegrations/linear/- Organization management patternsintegrations/slack/- For reference
Required Files Structure
integrations/bitwarden/
├── src/
│ ├── index.ts # Main entry, API spec
│ ├── schedule.ts # Sync logic
│ ├── utils.ts # Bitwarden API utilities
│ ├── account-create.ts # Auth setup
│ └── create-activity.ts # Activity formatting
├── package.json
├── tsup.config.ts
└── README.md
Bitwarden API Integration
OAuth Setup
- Use API Key authentication (Client ID + Client Secret)
- Bitwarden provides two APIs:
- Public API (Organization management):
https://api.bitwarden.com/public/ - Vault Management API:
https://api.bitwarden.com/
- Public API (Organization management):
- Authentication: OAuth 2.0 Client Credentials Grant
- Token URL:
https://identity.bitwarden.com/connect/token - Grant type:
client_credentials - Scope:
api.organization
- Token URL:
- For self-hosted: Replace
bitwarden.comwith your domain - Personal API keys available for individual vault access
Key Endpoints (Public API)
GET /public/members- List organization membersGET /public/members/{id}- Get member detailsGET /public/collections- List collectionsGET /public/collections/{id}- Get collection detailsGET /public/groups- List groupsGET /public/groups/{id}- Get group detailsGET /public/events- List organization eventsGET /public/policies- List policiesGET /public/organization/subscription- Get subscription info
Events to Track
-
Member Activity
- Member invited, accepted, confirmed, removed
- Member role changes
- Member 2FA status changes
- SSO login events
-
Vault & Collections
- Collection created, updated, deleted
- Items shared to collections
- Group membership changes
- Policy updates
-
Organization Events
- Organization setting changes
- Subscription updates
- Security audit events
- Failed login attempts
Implementation Tasks
- Set up basic integration structure following
integrations/github/src/index.tspattern - Implement Client Credentials OAuth flow in
account-create.ts - Create Bitwarden API utilities in
utils.ts - Implement sync logic in
schedule.tsusing events endpoint - Convert Bitwarden events to CORE activity format
- Add error handling and rate limiting
- Create integration documentation
- Add to
integrations/README.md
Technical Notes
- The Public API is OAS3 compliant with a Swagger UI available at
https://bitwarden.com/help/api/. - The Public API is for organization-level management only; it cannot manage individual vault items.
- For individual vault management, use the Vault Management API with a personal API key.
- Authentication tokens obtained via Client Credentials grant have a limited lifetime; implement token refresh.
- Self-hosted Bitwarden instances use different base URLs (e.g.,
https://your.domain.com/api/). - API responses now include SSO external identifiers for organization members.
- Event logs provide comprehensive audit trail data for compliance.
- Security consideration: This integration should never store or sync actual vault item contents (passwords, notes, etc.).
Resources
- Bitwarden Public API Documentation
- Bitwarden APIs Overview
- Bitwarden Personal API Key
- Bitwarden Contributing - Public API
- Bitwarden Server (GitHub)
Labels
enhancement, integration, new-feature