Project Structure
- barbican/ (Barbican-specific Python source files)
- api/ (REST API related source files)
- controllers/ (Pecan-based controllers handling REST-based requests)
- middleware/ (Middleware business logic to process REST requests)
- cmd/ (Barbican admin command source files)
- common/ (Modules shared across other Barbican folders)
- locale/ (Translation templates)
- model/ (SQLAlchemy-based model classes)
- plugin/ (Plugin related logic, interfaces and look-up management)
- resources.py (Supports interactions with plugins)
- crypto/ (Hardware security module (HSM) logic and plugins)
- interface/ (Certificate manager and secret store interface
classes)
- (The remaining modules here are implementations of above interfaces)
- queue/ (Client and server interfaces to the queue)
- client.py (Allows clients to publish tasks to queue)
- server.py (Runs the worker service, responds to enqueued tasks)
- tasks/ (Worker-related controllers and implementations)
- tests/ (Unit tests)
- bin/ (Start-up scripts for the Barbican nodes)
- devstack/ (Barbican DevStack plugin, DevStack gate configuration and
- Vagrantfile for installing DevStack VM)
- etc/barbican/ (Configuration files)
- functionaltests (Functional Barbican tests)
- doc/source (Sphinx documentation)
- releasenotes (Barbican Release Notes)