Convert Figma logo to code with AI

passbolt logopassbolt_api

Passbolt Community Edition (CE) API. The JSON API for the open source password manager for teams!

4,568
300
4,568
17

Top Related Projects

15,131

Bitwarden infrastructure/backend (API, database, Docker, etc).

Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs

12,237

Free cross-platform password manager compatible with KeePass

2,657

A modern, open source password manager for individuals and teams.

Quick Overview

Passbolt API is an open-source password manager for teams, designed for self-hosting. It provides a secure way to store, share, and manage passwords and other sensitive data within organizations. The API is built with CakePHP and offers extensive functionality for password management and user collaboration.

Pros

  • Self-hosted solution, giving organizations full control over their data
  • Strong encryption and security measures, including OpenPGP for end-to-end encryption
  • Extensive API documentation and support for integration with other systems
  • Active development and community support

Cons

  • Requires technical expertise to set up and maintain
  • May have a steeper learning curve compared to some commercial password managers
  • Limited mobile support compared to some alternatives
  • Self-hosting responsibility means organizations need to manage their own backups and security

Getting Started

To set up Passbolt API, follow these steps:

  1. Clone the repository:

    git clone https://github.com/passbolt/passbolt_api.git
    
  2. Install dependencies:

    cd passbolt_api
    composer install
    
  3. Configure your environment:

    • Copy .env.default to .env
    • Edit .env to set your database and other configuration options
  4. Run database migrations:

    bin/cake passbolt migrate
    
  5. Generate GPG keys for the server:

    bin/cake passbolt create_server_keys
    
  6. Start the development server:

    bin/cake server
    

For production deployment, additional steps are required, including setting up a web server, configuring SSL, and ensuring proper security measures are in place.

Competitor Comparisons

15,131

Bitwarden infrastructure/backend (API, database, Docker, etc).

Pros of Bitwarden server

  • More active development with frequent updates and contributions
  • Broader feature set, including support for organizations and sharing
  • Larger community and ecosystem, with official mobile and desktop clients

Cons of Bitwarden server

  • More complex codebase, potentially harder to self-host and maintain
  • Higher resource requirements for hosting
  • Less focus on API-first approach compared to Passbolt

Code comparison

Passbolt API (PHP):

public function isAuthenticated()
{
    return $this->Auth->user() !== null;
}

Bitwarden server (C#):

public async Task<bool> IsAuthenticated(ClaimsPrincipal principal)
{
    return principal?.Identity?.IsAuthenticated ?? false;
}

Both projects implement authentication checks, but Bitwarden's approach is asynchronous and uses .NET's ClaimsPrincipal, while Passbolt relies on a simpler synchronous method using its Auth component.

Passbolt focuses on a clean API-driven architecture, making it easier to integrate with existing systems. Bitwarden offers a more comprehensive password management solution with built-in clients and additional features like secure file sharing.

Bitwarden's larger community and more frequent updates may lead to faster bug fixes and feature additions, but it comes at the cost of a more complex self-hosting setup. Passbolt's simpler architecture might be preferable for organizations prioritizing customization and integration with existing workflows.

Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs

Pros of Vaultwarden

  • Lightweight and efficient, requiring fewer system resources
  • Compatible with official Bitwarden clients and browser extensions
  • Supports self-hosting with easier setup and maintenance

Cons of Vaultwarden

  • Fewer enterprise-level features compared to Passbolt API
  • Limited official support as it's a third-party implementation
  • May lack some advanced access control options

Code Comparison

Vaultwarden (Rust):

#[get("/sync")]
fn sync(conn: DbConn, nt: Headers, user: User) -> JsonResult {
    let user_json = user.to_json(&conn)?;
    Ok(Json(json!({
        "Profile": user_json,
        "Folders": folders::get_folders_json(&conn, &user.uuid),
        "Ciphers": ciphers::get_ciphers_json(&conn, &user.uuid),
        "Domains": domains::get_domains_json(&user.uuid, &conn),
    })))
}

Passbolt API (PHP):

public function sync()
{
    $user = $this->User->get($this->Auth->user('id'));
    $folders = $this->Folder->findAllByUserId($user['User']['id']);
    $resources = $this->Resource->findAllByUserId($user['User']['id']);
    $domains = $this->Domain->findAllByUserId($user['User']['id']);
    
    return $this->success([
        'User' => $user,
        'Folders' => $folders,
        'Resources' => $resources,
        'Domains' => $domains,
    ]);
}

This comparison highlights the different programming languages and approaches used in both projects, with Vaultwarden utilizing Rust for performance and Passbolt API using PHP for web development.

12,237

Free cross-platform password manager compatible with KeePass

Pros of KeeWeb

  • Offline-capable and can be used as a standalone application
  • Supports multiple password file formats, including KeePass
  • Cross-platform compatibility (web, desktop, and mobile)

Cons of KeeWeb

  • Lacks built-in sharing and collaboration features
  • No server-side component for centralized management
  • Limited enterprise-level features compared to Passbolt

Code Comparison

KeeWeb (JavaScript):

const kdbxweb = require('kdbxweb');
const db = kdbxweb.Kdbx.create(credentials, 'My Database');
const entry = db.createEntry(db.getDefaultGroup());
entry.fields.set('Title', 'My Entry');
entry.fields.set('Password', kdbxweb.ProtectedValue.fromString('secret'));

Passbolt API (PHP):

$user = $this->Users->newEntity();
$user->username = 'john@doe.com';
$user->role_id = $this->Roles->getIdByName('user');
$user->active = true;
$this->Users->save($user);

The code snippets demonstrate the different approaches: KeeWeb focuses on client-side password management, while Passbolt API handles server-side user and password management.

2,657

A modern, open source password manager for individuals and teams.

Pros of Padloc

  • Cross-platform support with web, desktop, and mobile apps
  • End-to-end encryption for enhanced security
  • Open-source and self-hostable solution

Cons of Padloc

  • Smaller community and less extensive documentation
  • Fewer enterprise-focused features
  • Less mature project compared to Passbolt

Code Comparison

Padloc (TypeScript):

export class Vault extends Serializable {
  @field("items")
  items: VaultItem[] = [];

  @field("name")
  name: string = "";

  @field("description")
  description: string = "";
}

Passbolt (PHP):

class ResourcesTable extends Table
{
    public function initialize(array $config): void
    {
        parent::initialize($config);
        $this->setTable('resources');
        $this->setDisplayField('name');
        $this->setPrimaryKey('id');
    }
}

Both projects use object-oriented programming, but Padloc utilizes TypeScript with decorators for field definitions, while Passbolt employs PHP with a more traditional class structure for database table representation.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

passbolt-logo

The open source password manager for teams.

License PHPStan Enabled Psalm level

Table of Contents


Passbolt on desktop, mobile, and cli

Introducing Passbolt

Passbolt is a security-first, open source password manager for teams. It helps organizations centralize, organize and share passwords and secrets securely.

What makes passbolt different?

  • Security: Passbolt security model features user-owned secret keys and end-to-end encryption. It is audited multiple times annually, and findings are made public.
  • Collaboration: Securely share and audit credentials, with powerful and dependable policies for power users.
  • Privacy: Passbolt is headquartered in the EU,:european_union: specifically in Luxembourg. Passbolt doesn't collect personal data or telemetry, and can be deployed in an air-gapped environment.

Get Started

passbolt community edition CTA     passbolt PRO edition CTA     passbolt Cloud edition CTA

Run it on your own server, natively

Install passbolt on DockerInstall passbolt on KubernetesInstall passbolt on UbuntuInstall passbolt on DebianInstall passbolt on RedHatInstall passbolt on Raspberry PiInstall passbolt on RockyLinux
Install passbolt on AlmaLinuxInstall passbolt on OracleInstall passbolt on FedoraInstall passbolt on openSuseInstall passbolt on AWSInstall passbolt on DigitalOceanInstall passbolt on CentOS

Available Clients And Apps

Browser Extensions

Mobile Apps

CLI

Install passbolt CLI tool: go-passbolt-CLI

Desktop App

Coming soon see the pre-alpha version here.


Contributing

Contributing to passbolt with code starts by reading Contributing.md. Join the community forum to join discussions about feature requests, translations, development, and more.


Reporting a security issue

If you've found a security-related issue with passbolt, please email security@passbolt.com. Submitting to GitHub makes the vulnerability public, making it easy to exploit. We'll do a public disclosure of the security issue once it's been fixed.

After receiving a report, passbolt will take the following steps:

  • Confirmation that the issue has been received and that it's in the process of being addressed.
  • Attempt to reproduce the problem and confirm the vulnerability.
  • Prepare a patch/fix and associated automated tests.
  • Release a new version of all the affected versions.
  • Prominently announce the problem in the release notes.
  • If requested, give credit to the reporter.

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License (AGPL) as published by the Free Software Foundation version 3.

The name "Passbolt" is a registered trademark of Passbolt SA, and Passbolt SA hereby declines to grant a trademark license to "Passbolt" pursuant to the GNU Affero General Public License version 3 Section 7(e), without a separate agreement with Passbolt SA.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see GNU Affero General Public License v3.