enhancementgood first issueintegrationnew-featurenew-integration
Repository metrics
- Stars
- (1,930 個のスター)
- PR merge metrics
- (PR metrics pending)
説明
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