# Project Structure

1. `barbican/` (Barbican-specific Python source files)

   1. `api/` (REST API related source files)

      1. `controllers/` (Pecan-based controllers handling REST-based requests)

      2. `middleware/` (Middleware business logic to process REST requests)

   2. `cmd/` (Barbican admin command source files)

   3. `common/` (Modules shared across other Barbican folders)

   4. `locale/` (Translation templates)

   5. `model/` (SQLAlchemy-based model classes)

   6. `plugin/` (Plugin related logic, interfaces and look-up management)

      1. `resources.py` (Supports interactions with plugins)

      2. `crypto/` (Hardware security module (HSM) logic and plugins)

      3. `interface/` (Certificate manager and secret store interface classes)

      4. (The remaining modules here are implementations of above interfaces)

   7. `queue/` (Client and server interfaces to the queue)

      1. `client.py` (Allows clients to publish tasks to queue)

      2. `server.py` (Runs the worker service, responds to enqueued tasks)

   8. `tasks/` (Worker-related controllers and implementations)

   9. `tests/` (Unit tests)

2. `bin/` (Start-up scripts for the Barbican nodes)

3. `devstack/` (Barbican DevStack plugin, DevStack gate configuration and

     Vagrantfile for installing DevStack VM)

4. `etc/barbican/` (Configuration files)

5. `functionaltests` (Functional Barbican tests)

6. `doc/source` (Sphinx documentation)

7. `releasenotes` (Barbican Release Notes)

this page last updated: 2026-04-01 16:51:00

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug