Skip to content

Latest commit

 

History

History
36 lines (26 loc) · 2.67 KB

PLATFORM.md

File metadata and controls

36 lines (26 loc) · 2.67 KB

Buttercup Platform

The Buttercup platform is made up of many (mostly open-source) projects that serve very specific purposes. The bulk of them are written in JavaScript, with a couple here and there written in TypeScript. There are also the odd instances of other languages, but these items are usually present to provide some native OS-level functionality.

The majority belong to the Buttercup organisation, though some individual projects referenced here are standalone.

Project Tree

The core/shared structure (not exhaustive) of most Buttercup apps:

  • Buttercup Apps (desktop/mobile/web/terminal)
    • Buttercup core - Core functionality for the entire platform (Groups and Entries, Archives and Archive Managers etc.)
      • iocane - Encryption toolkit for NodeJS and the web
      • WebDAV client - WebDAV connection client
      • Google Drive client - Client for managing Google Drive files
      • Dropbox client - Client for managing Dropbox files
      • Datasources - Vault host adapters for connecting Buttercup to services like Dropbox, Google Drive etc.
      • Signing - Encrypted string signing and validation
      • App-Env - Application environment bootstrap utility for preparing complex features like encryption for each specific platform (node/web, not React-Native)
      • Credentials - Login/token construct for transferring account credentails between core and the datasources
      • Channel Queue - Procedure queuing for asynchronous tasks
    • Facades - Object-only (serialisation) vault & entry handling
    • Google OAuth2 client - Authentication client for mapping user logins to OAuth2 tokens (offline access)

NB: Struck-out items have most likely been recently included in the v4 release of Buttercup core.

Browser extension:

  • Extension
    • Locust - Login form detection and connection to Buttercup

Desktop app:

  • Desktop application
    • Exporter - Export Buttercup vaults
    • Importer - Import vaults from other password managers