{"library":"python-barbicanclient","title":"OpenStack Barbican Client Library","description":"python-barbicanclient is the official Python client library for interacting with the OpenStack Barbican Key Management API. It provides programmatic access to store, manage, and retrieve secrets, and also includes a command-line interface (`barbican`). The library is actively maintained as part of the OpenStack ecosystem, with releases generally aligning with OpenStack's development cadence. The current version is 7.3.0.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install python-barbicanclient"],"cli":{"name":"barbican","version":"WARNING:barbicanclient.barbican:This Barbican CLI interface has been deprecated and will be removed in the O release. Please use the openstack unified client instead."}},"imports":["from barbicanclient import client","from keystoneauth1 import session","from keystoneclient.auth import identity"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom keystoneclient.auth import identity\nfrom keystoneauth1 import session\nfrom barbicanclient import client\n\n# Configure Keystone authentication using environment variables\nauth_url = os.environ.get('OS_AUTH_URL', 'http://localhost:5000/v3')\nusername = os.environ.get('OS_USERNAME', 'admin')\nuser_domain_name = os.environ.get('OS_USER_DOMAIN_NAME', 'Default')\npassword = os.environ.get('OS_PASSWORD', 'password')\nproject_name = os.environ.get('OS_PROJECT_NAME', 'demo')\nproject_domain_name = os.environ.get('OS_PROJECT_DOMAIN_NAME', 'Default')\nbarbican_endpoint = os.environ.get('OS_BARBICAN_ENDPOINT', 'http://localhost:9311/v1')\n\n# Create a Keystone authentication plugin\nauth = identity.v3.Password(\n    auth_url=auth_url,\n    username=username,\n    user_domain_name=user_domain_name,\n    password=password,\n    project_name=project_name,\n    project_domain_name=project_domain_name\n)\n\n# Create a Keystone session\nsess = session.Session(auth=auth)\n\n# Create a Barbican client instance\n# Pass the Barbican endpoint directly if not discoverable via Keystone catalog\nbarbican = client.Client(session=sess, endpoint=barbican_endpoint, version='v1')\n\n# Example: Create and store a secret\ntry:\n    secret_name = \"my-test-secret\"\n    payload = \"my_sensitive_data_123\"\n    secret = barbican.secrets.create(name=secret_name, payload=payload)\n    secret.store()\n    print(f\"Secret '{secret_name}' stored with URI: {secret.secret_ref}\")\n\n    # Example: Retrieve the secret\n    retrieved_secret = barbican.secrets.get(secret.secret_ref)\n    print(f\"Retrieved secret name: {retrieved_secret.name}\")\n    # Note: To retrieve the actual payload, you would typically call .payload on the retrieved secret,\n    # but direct payload retrieval for security reasons is often handled carefully and might require specific permissions/methods.\n    # For this example, we just show retrieval of metadata.\n\nexcept Exception as e:\n    print(f\"An error occurred: {e}\")\n    print(\"Ensure Barbican and Keystone services are running and accessible.\")\n    print(\"Check environment variables like OS_AUTH_URL, OS_USERNAME, OS_PASSWORD, OS_PROJECT_NAME, OS_BARBICAN_ENDPOINT.\")\n","lang":"python","description":"This quickstart demonstrates how to authenticate with OpenStack Keystone and then use the `python-barbicanclient` to create and store a simple secret. It assumes environment variables are set for OpenStack authentication, which is a common practice.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"7.3.0","pypi_latest":"7.3.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":6.3,"avg_import_s":0.77,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"python-barbicanclient","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.72,"mem_mb":14,"disk_size":"60.7M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"python-barbicanclient","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":6.1,"import_time_s":0.52,"mem_mb":14,"disk_size":"62M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"python-barbicanclient","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.91,"mem_mb":15.4,"disk_size":"66.9M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"python-barbicanclient","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":6.1,"import_time_s":0.93,"mem_mb":15.4,"disk_size":"69M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"python-barbicanclient","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.81,"mem_mb":16,"disk_size":"66.8M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"python-barbicanclient","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":6.2,"import_time_s":0.92,"mem_mb":16,"disk_size":"69M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"python-barbicanclient","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.81,"mem_mb":16.9,"disk_size":"66.7M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"python-barbicanclient","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":5.9,"import_time_s":0.84,"mem_mb":16.9,"disk_size":"68M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"python-barbicanclient","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.62,"mem_mb":13.3,"disk_size":"62.7M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"python-barbicanclient","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":7.3,"import_time_s":0.58,"mem_mb":13.3,"disk_size":"64M"}]}}