Passbolt.Api 1.0.23

dotnet add package Passbolt.Api --version 1.0.23
                    
NuGet\Install-Package Passbolt.Api -Version 1.0.23
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Passbolt.Api" Version="1.0.23" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Passbolt.Api" Version="1.0.23" />
                    
Directory.Packages.props
<PackageReference Include="Passbolt.Api" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Passbolt.Api --version 1.0.23
                    
#r "nuget: Passbolt.Api, 1.0.23"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Passbolt.Api@1.0.23
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Passbolt.Api&version=1.0.23
                    
Install as a Cake Addin
#tool nuget:?package=Passbolt.Api&version=1.0.23
                    
Install as a Cake Tool

Passbolt.Api

NuGet License: MIT .NET 10 Codacy Badge

Typed .NET client primitives for integrating with Passbolt APIs in a safe, testable, and DI-friendly way.

Installation

dotnet add package Passbolt.Api

Quick Start

using Passbolt.Api;

var options = new PassboltClientOptions
{
    Uri = new Uri("https://passbolt.example.com"),
    Username = "user@example.com",
    Password = "password",
    PrivateKeyBlock = "-----BEGIN PGP PRIVATE KEY BLOCK-----\n..."
};

using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30));
using var client = new PassboltClient(options);

// Get server status
var status = await client.Status.GetStatusAsync(cts.Token);
Console.WriteLine($"Passbolt status: {status.Status}");

// List all resources
var resources = await client.Resources.GetAllAsync(cts.Token);
foreach (var resource in resources.Value)
{
    Console.WriteLine($"Resource: {resource.Name} (ID: {resource.Id})");
}

API responses are wrapped in a Response<T> envelope — the payload is on .Value, with metadata on .Header.

Command-line tool (Passbolt.Cli)

The same client also ships as a cross-platform command-line tool, installable as a .NET global tool:

dotnet tool install --global Passbolt.Cli

This installs a passbolt command. Configure it once (the passphrase is never stored):

passbolt configure --server https://passbolt.example.com --username user@example.com --private-key-file ~/.passbolt/private.asc

Connection settings resolve in the order option → environment variable → config file, with the private key falling back to ~/.passbolt/private.asc. Environment variables: PASSBOLT_SERVER, PASSBOLT_USERNAME, PASSBOLT_PASSWORD, PASSBOLT_PRIVATE_KEY_FILE.

# Server + identity
passbolt status
passbolt whoami

# Browse (add --json to any command for machine-readable output)
passbolt resource list
passbolt resource get <id>
passbolt user list
passbolt group get <id>
passbolt folder list
passbolt role list
passbolt permission list --resource <id>

# Manage (non-secret writes)
passbolt user create --email new@example.com --first-name Ada --last-name Lovelace
passbolt user update <id> --last-name Byron
passbolt group create --name "Engineering" --manager <user-id>
passbolt group add-member <group-id> --user <user-id> --admin
passbolt folder create --name "Shared" --parent <folder-id>
passbolt resource update <id> --name "New name" --uri https://example.com
passbolt resource delete <id> --yes

# Governance: flag resources with fewer than two owners or no group owner
passbolt audit ownership
passbolt audit ownership --min-owners 2 --json

Command coverage

Area Commands
Server status, whoami, configure
Resources list, get, update (metadata), delete
Users list, get, create, update, delete
Groups list, get, create, add-member, delete
Folders list, get, create, update, delete
Roles list
Permissions list --resource\|--user
Audit ownership

Not yet supported: creating a resource, rotating a resource's secret, and sharing (which re-encrypts the secret for new recipients) all require encrypting the secret to each recipient's PGP public key. That secret-encryption capability is being added to Passbolt.Api first — see issue #31.

Every command accepts --server/-s, --username/-u, --password/-p, --private-key-file/-k, --config/-c and --json/-j. In --json mode stdout carries only JSON (status text goes to stderr), so it pipes cleanly into jq.

Features

Library

  • Strongly-typed PassboltClient for intuitive API access
  • Refit-backed REST API interface for seamless HTTP endpoint mapping
  • Built-in support for Passbolt's PGP authentication flow
  • Async/await support throughout
  • Dependency injection compatible design

CLI (Passbolt.Cli)

  • Installable as a .NET global tool (passbolt)
  • Cobra-style subcommands with rich help
  • Human-friendly tables and clean --json for scripting/jq
  • Config file + environment variables + per-command options
  • Ownership audit that flags under-owned resources — a governance view not offered by the reference Go CLI

Quality

  • Built with TreatWarningsAsErrors
  • Nullable reference types enabled
  • XML documentation generated
  • CI validates restore, build, test, and package output

Supported Endpoints

Core Entities

  • Status: Server status and healthcheck information
  • Users: CRUD operations and listing for user management
  • Groups: CRUD operations and listing for group management
  • Resources: CRUD operations, listing, searching by name/URI, and resource sharing
  • Folders: CRUD operations and listing for folder management
  • Comments: Create, read, and delete comments on resources
  • Permissions: Query and filter permissions by resource or user
  • Roles: List available roles and retrieve role details
  • Avatars: Retrieve user profile images
  • Me: Access current authenticated user's profile information
  • Passbolt — the open-source password manager this client talks to. 💙
  • passbolt/go-passbolt and passbolt/go-passbolt-cli — the excellent, mature Go SDK and CLI. They're the reference implementation we learned from, and remain the go-to for Go users. Passbolt.Api/Passbolt.Cli exist to give the .NET ecosystem a first-class, idiomatic option — with a bit of friendly cross-language rivalry. 🤝

This project is community-built and is not an official Passbolt product. "Passbolt" is a trademark of its respective owner and is used here only to describe interoperability.

License

MIT - see LICENSE.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.23 78 8/7/2026
1.0.22 82 8/7/2026
1.0.15 138 6/14/2026
1.0.13 113 6/14/2026
1.0.12 110 6/14/2026