CHANGES
=======

1.0.0.0b3
---------

* Add Project Quota Information to the Barbican Quick Start Guide
* Removes pyenv from barbican.sh
* Update API Reference Docs with Project Quota Information
* Add Functional Tests for Quota Enforcement
* Implement Enforce Method for QuotaEnforcer
* Add Request ID to worker-side logs in barbican
* Updated from global requirements
* Use the new Devstack external plugin method
* Add get_count() method to project resource repositories
* Ensure Project and ProjectQuotas Tables are in sync
* Allow debug flag in Barbican tox and debugging documentation
* Removing unused dependency: discover
* Fixed Testing Attributes Bug
* Updated from global requirements
* Migrate to using gate_hook.sh pre-devstack-update
* Cleanup database after functional test runs
* Updated from global requirements
* Updated from global requirements
* Add Quota Enforcement API
* Use config rather than hardcoded admin id from Quotas test
* Make tests in test_acls.py and test_cas.py py3 compatible
* Implement Models and Repositories for Resource Quotas
* Updated from global requirements
* Replace itertools.ifilter with six.moves.filter for py3 compatibility
* Introduce the key-manager:service-admin role
* Updated from global requirements
* Make tests in barbican.tests.api.middleware py3 compatible
* Use "key-manager" instead of "keymanagement"
* Ensure a http 405 is returned on container(s) PUT
* Updated from global requirements
* Drop downgrade field in alembic script.py.mako and version
* Made Functional Test Key 256 Bits
* Make tests in test_hrefs, test_quota py3 compatible
* Remove obsolete term "incubated" from docs
* Remove rpmbuild directory
* Introduce the concept of plugin status
* Replace python-ldap with ldap3 library
* Catch any exception from base64.b64decode during validation
* Updated from global requirements
* Skip Bandit Checks on Functional Test Code
* Removing Cloudkeep from comments
* Updated from global requirements
* Imported Translations from Transifex
* Replace dict.iteritems() with six.iteritems(dict) for py3 support
* Replace urllib with six.moves.urllib for py3 support
* Add py34 support in tox
* Add invalid property info to validation error message
* Imported Translations from Transifex
* Updated from global requirements
* Revert backwards incompatible paste change
* Flatten exceptions used in policy tests
* Fix colorized logging in Devstack

1.0.0.0b2
---------

* Imported Translations from Transifex
* Updated from global requirements
* Configure dogtag installation's domain name
* Unauthed tests for Secret & Container ACLs
* Remove docbook documentation
* Updated from global requirements
* Add RBAC Functional Test for ACL Opeations
* Updated from global requirements
* Add Private Key to the resulting container if stored-key order
* Added opaque data support to KMIP secret store
* Updated from global requirements
* Implement Configuration, Controllers, and Validators for Resource Quotas
* Fix unit test errors caused by new mock version
* Add retry server and functional tests to DevStack
* Fix policy.json certificate_authority inconsistency
* Imported Translations from Transifex
* Adding script for rewrapping p11 KEKs
* Remove invalid skipping of tests
* Completed localization tagging for plugin directory
* Fix JSON structure example for stored-key orders
* Fix config file name to barbican.conf
* Drop file extensions for /usr/bin/*
* Add Functional Tests for ACLs Using Multiple Users
* Updated from global requirements
* Fix gate-barbican-docs after change to infra
* Update unwrap key to accept specific variables
* Add troubleshooting for _bsdbb import error
* Fix for admin and creator user access for secret/container read calls
* Update queries to use proper offset and limit

1.0.0.0b1
---------

* Remove left over reference to admin endpoint
* Remove ProjectSecret table-related code
* Make db-manage script use same config file as barbican
* Replace oslo incubator code with oslo_service
* Updated from global requirements
* Fill project_id in secrets where needed
* Added unit test around bug related to who can modify ACL
* Updated from global requirements
* Refactor Barbican model registration
* Added Certificate API Docs and Quick Start Guides
* Display all versions info in versions controller
* Changed Test Key Size to 2048
* Update version for Liberty

1.0.0a0
-------

* Replace oslo incubator code with i18n
* Replace oslo incubator code with oslo_utils
* Added passphrase support to KMIP secret store
* Added certificate support to KMIP secret store
* Add project_id to Secret model
* Updated from global requirements
* Replace oslo incubator jsonutils with oslo_serialization
* Updated from global requirements
* Fixed Inconsistent Request Id in Log Messages
* Sync with latest oslo-incubator
* Changes to fix dogtag nss db handling
* service_enabled instead of environment variable for dogtag
* Updated from global requirements
* Change naming convention for Barbican config files
* Remove duplicate 'have' in doc/source/api/reference/acls.rst
* Fix NewRelic error reporting
* Updated from global requirements
* Add RBAC tests for orders
* Fix http 500 when no accept header passed to secret GET /payload
* Added pkcs1_only Configuration to KMIP
* Documentation for PKCS11 Key Generation script
* Updated from global requirements
* Complete RBAC tests for containers
* Renaming ACL creator-only to project-access flag
* Adding a new script to generate mkek and hmac
* Updated from global requirements
* Centralize Barbican API Config
* Complete RBAC tests for secrets
* Removed per ACL operations and added support for PUT method
* Adding documentation for ACLs operations
* Fix cert tasks not being scheduled for retry
* Imported Translations from Transifex
* Drop incubating theme from docs
* Add more users/roles to secret/container RBAC tests
* Fix Dogtag setup script
* Remove unused incubated cryptoutils
* Split out generate mkek and hmac from get command
* Updating setup docs to use Python 2.7.9
* Switch from MySQL-python to PyMySQL
* Move policy options to the oslo_policy group in the config
* Splitting out PKCS11 plugin
* Fix the sql_pool_logging config attribute
* Fixing unauthenticated middleware role bug
* Updated from global requirements
* Adding config option for specifying HSM slot
* Base64 encode the cert returned from the Dogtag plugin
* Imported Translations from Transifex
* Port the Architecture, Dataflow, and Project Strucure docs
* Add Multi-user support for Functional Tests
* Fix snakeoil_ca plugin
* Updated from global requirements
* Removed extraneous config.py
* Remove deprecated references to admin endpoint
* Updated from global requirements
* Add Barbican configs for SQLAlchemy pool settings
* Imported Translations from Transifex
* Updated from global requirements
* Adding a info log for each processed request
* Migrate to oslo_context
* Adding more logging around containers & consumers
* Updated from global requirements

2015.1.0
--------

* Fixed Bug for KMIP Secret Storage
* Fixed Bug for KMIP Secret Storage
* Drop use of 'oslo' namespace package

2015.1.0rc2
-----------

* Fix for missing id check in ACL count query
* Improved error code handling for pkcs11 errors
* Remove Future Parameters (write, list, delete) from ACL Validation Schema
* Adding ACL check when new stored key order is submitted
* Fix for missing id check in ACL count query
* Removing signing_dir directive from config
* Fix failure with get on dict that was None
* Fix call to load_privatekey() when passphrase is None
* Fix call to load_privatekey() when passphrase is None
* Updated from global requirements
* Removing signing_dir directive from config
* Updated from global requirements
* Fix failure with get on dict that was None
* Security tests for Secret resources
* Updated from global requirements
* Update .gitreview to match stable/kilo
* Refactor RSA Functional Smoke Tests

2015.1.0rc1
-----------

* Refactor and Fix Translation Code for PER and DER Formats
* Add order_retry_tasks migration per latest model
* Readability-related changes to secret store functions
* Adding MySQL fixes to migrations
* Refactor dogtag gate scripts
* Fix Dogtag plugin to make latest functional tests pass
* Fix KMIP Secret Store input/output
* Potential resource exhaustion when registering consumers to containers
* Fix handling of payload_content_encoding for orders
* Add utility functions to convert between and PEM and DER
* Fix base64 decoding of payloads in one-step POST
* Fix errors in functional tests
* Fix generating a CSR with an encrypted private key
* Enable alternate error message for OpenSSL 1.0.2
* Imported Translations from Transifex
* Fix expectations of order certificate test cases
* Sign CSRs issued in SnakeOilCA tests
* Imported Translations from Transifex
* Add new smoke tests for RSA type containers and secrets
* Expose root cause plugin exceptions
* Create Barbican python scripts for development
* Open Liberty development
* Delete openstack.common.context
* Changes to get remaining cert functional tests working
* Switch to oslo_policy
* Add Bandit security static analysis checking via tox
* Security tests for Order resources
* Return container not found before ACL checks
* Remove str() casting for the client_message variable
* Imported Translations from Transifex
* Imported Translations from Transifex
* Fixing python 3 imcompatiblity in common.utils
* Updating hacking version for py3pep8 tox job
* Adding simple log.info's to the SecretController
* Security tests for Consumer resources
* Imported Translations from Transifex
* Implement validators and tests for stored key certificate orders
* Adding policy layer changes for ACL support (Part 5)
* Adding Container ACL controller layer changes (Part 4)
* Adding Secret ACL controller layer changes (Part 3)
* Adding ACL db repository changes (Part 2)
* Adding ACL db model changes (Part 1)
* Updating Orders functional tests to new naming convention
* Adding docs to index and minor fixes
* Imported Translations from Transifex
* Restore worker tasks processing catching exceptions
* Adding GET and DELETE for containers quickstart guide
* Fix error in setting and updating ca and preferred ca tables
* Create snakeoil certificate plugin
* Imported Translations from Transifex
* Introducing container types and examples to quickstart guide
* Initial connect up retry task submit and re-enqueue
* Write task retry info to database from server.py
* Creating initial commit for containers quickstart guide
* Removing a forgotten TODO
* Adding reference doc page for containers
* Allow business logic and plugins to retry tasks
* Turning on info logging level by default
* Fix string formatting for a secret store exception message
* Add ability to run secrets tests in parallel
* Security tests for Container resources
* Completing secret reference documentation
* Add utf-8 decoding for Content-Type
* Imported Translations from Transifex
* Adding more detail to the secrets quickstart guide
* Switching how we handle sessions in p11_crypto
* Changes to get Dogtag related functional tests working
* Fix some ca_id related bugs, add more functional test code
* Fix CA related exceptions, and unskip relevant tests
* Removing unused TimeKeeper class
* Splitting out remaining order tests from test_resources
* Fix pep8 gate errors
* Adding more content to the api reference for secrets
* Fix flake8 issue
* Updated from global requirements
* Removing the debian folder
* Add functional tests for certificate orders
* Fix common misspellings
* Imported Translations from Transifex
* Updated from global requirements
* Add retry periodic task and worker-client logic
* Add sub-status logic to worker/task processing
* BarbicanHTTPException can take arguments for client_message
* Starting to rework docs around the secret resource
* Fix string substitution in exception messages missing the s

2015.1.0b3
----------

* Fix string substitution in exception messages missing the s
* Change certificate unit tests to use strong algorithms
* Make the default devstack config use the right password
* Add asymmetric key support to KMIP plugin
* Fixing errors and warnings on the sphinx docs
* Removed get_secret_type
* Moving containers tests to separate module
* Add code to populate CA tables and select plugin based on ca_id
* Remove unused etc/dev_tempest.conf file
* Refactor secrets functional tests for readability
* Test functionality of generated asymmetric keys
* Update README file
* Imported Translations from Transifex
* Implement validate_pkcs10_data
* Deprecate old secret decrypt path both in code and docs
* Use unique refs for RSA container example
* Added new repository classes and controller classes for CAs
* Standardized Secret Encoding
* Updating secret store plugin to support PyKMIP 0.3.0
* Making sure we allow all content-types for delete calls
* Third round of refactoring secrets tests
* Porting more tests to test_secrets
* add another missing status code check in functional tests
* Fix functionaltest keystone URL fetch bug for v2
* Add missing alembic migration script for CA tables
* Upping process-timeout and fixing posargs in tox.ini
* Starting to split out orders from test_resources.py
* check some responses in functional tests before using the resp
* Fix create orders functional tests for asynchronous order processing
* Making the tox -e functional tests run faster
* Cleanup and renaming within secrets smoke tests
* Remove extra v1 from override uri
* Split out and refactored more secret tests
* hide the eggs
* Replacing functional test authentication hookup
* Fix for order obj expiration issue with SQLAlchemy
* Starting refactor of test_resources
* Fixing test dependence on execution order
* Enforce X-Project-Id coming from the request headers
* Ensure that external secret refs cannot be added to containers
* Ported API documentation to the repo
* Updated from global requirements
* Creating indexes for foreign keys
* Fixing race-condition for order processing in workers
* Enable secret decrypt through 'payload' resource
* Imported Translations from Transifex
* Let functional tests run with older tempest
* Fixed Binary Encoding to Secret Stores
* Updated from global requirements
* Use oslo_log in db-manage script
* Get rid of Repositories class
* Use urljoin instead of os.path.join
* Fix functional tests to use new auth provider interface
* Validate character set used for payload when encoding is base64
* Adding NewRelic monitoring to worker tasks
* Fix bug in tests assuming order is active
* Update devstack to run tests both sequentially and in parallel
* Remove version from endpoints in catalog
* get_or_create_project now calls repo factory
* Clean up test inheritance
* Containers and Consumers controllers use repo factories
* Refactor Secrets resource to use repository factories
* Refactor Orders resource to use repository factories
* Modified plugin contract to include barbican-meta-dto
* Making RootController load child controller at runtime
* Split override-url in functional test config file
* Imported Translations from Transifex
* Cleaning up application initialization
* Using a central secret store manager to remove lock
* Attempting to clean up some of the db session code
* Fixing logging import for barbican-worker.py
* Fixing unable to retrieve req id bug
* Use dictionary comprehensions and literals
* Add missing localisation markers
* Imported Translations from Transifex
* Remove pysqlite requirement
* Add Barbican order metadata table and repository
* Add support for dogtag in devstack testing
* Updated from global requirements
* Port to graduated oslo.log package
* Sync with latest oslo-incubator
* Fix security bug with host HTTP header field
* Add container consumer repository factory
* Removing uuid verification mock
* Add clarification regarding _lookup in secrets and orders
* Enforce secret and order IDs are valid UUIDs
* Port the Database Migrations doc
* Add validation for profile for Orders API
* Adding ldap dependencies to documentation
* Added mixin class to allow soft deletes
* Added secret_type to Secret model
* Imported Translations from Transifex
* Add missing repository factory functions
* Updating copyright on barbican/api files
* Updated copyright dates for functional tests/models
* Add subject_dn validator
* Changing basic copyright for a section of functional tests
* Refactor _lookup for orders controller
* Imported Translations from Transifex
* Configure colored logging in devstack
* Refactor _lookup for secrets
* Remove useless requirements wsgiref
* Add code to generate a CSR in the stored key case
* fix a use after free bug in the pkcs11 plugin
* Fix "invalid credentials" error running functional tests
* Fix symmetric/asymmetric key order meta validation
* Replaced calls to iteritems with calls to six.iteritems
* Imported Translations from Transifex
* Cleaning up code duplication in hrefs.py
* Cleaning up method identation in transportkeys.py
* Cleaning up literal dict in validators.py
* Refactor exception handling in the app side
* Run functional tests against any barbican server

2015.1.0b2
----------

* Imported Translations from Transifex
* Add the ability to use either identity v2 or v3 API
* Drop old namespace for some oslo libraries
* Updated from global requirements
* Change exception when store plugin is misconfigured
* Trivial refactors to secret controller
* Imported Translations from Transifex
* Completely refactor PKCS11 plugin
* Delete comments that are no longer valid
* Renamed outputted keys from base model
* Fix downgrade for revision 254495565185
* Fix error in "tenants to projects" migration script
* Remove unnecessary checks from migration commands
* Added new model classes for CAs
* Add 'current' option to the migration script
* Add 'history' option to the migration script
* Handle SystemExit properly in migration script
* Add support for simple cmc requests to Dogtag plugin
* Updated from global requirements
* Switch Python's json to the OpenStack's json wrapper
* Updated from global requirements
* Remove commented test cases
* Inherit tests instead of explictly calling them
* Updated from global requirements
* Resolve intermittent HTTP 404 in devstack gate
* Include logging for barbican functional tests
* Fix content type validation if missing payload
* Drop Python 2.6 support
* Refactor order validation
* Updated from global requirements
* Add data model entities for OrderRetryTask
* Fix 500 error when PUTing an order
* Adding exceptions on bad key file permissions
* Checking the certificate file has reasonable permissions
* Return the actual name value for entities
* Fix UnicodeDecodeError's in the functional tests
* Updated from global requirements
* Adding client certificates to connection credentials
* Fix usage of keystone v3
* Only de-serialize objects when possible
* Enable functional tests to take a regex from tox
* Configure keystomemiddleware using identity_uri
* Make default action return 405 in the controllers
* Updated from global requirements
* Moving exception logging in the base behaviors
* Adding error handling to help debug devstack issue
* Replace and remove native asserts
* Add I18n-related unit tests (Part 3)
* Plugin contract changes for the certificate-order-api
* Add validation for certificate-order-api
* Enable passing test regex to testr from tox
* Remove invalid TODOs related to bug 1331815
* Replace instances of keystone_id from the code
* Change keystone_id for external_id in model
* Fixes crypto enabled plugins configuration

2015.1.0b1
----------

* Fix content_type loading to be consistent
* Updated from global requirements
* Delete secret from plugin only if there's metadata
* Setting the max secret bit_length size to be 32767
* Add I18n-related unit tests (Part 2)
* Use keystone v3 credentials for functional tests
* Support containers without a name
* Removing conditional logic around KMIP tests
* Actually run type order creation test
* Notify user if no database is specified
* Add I18n-related unit tests (Part 1)
* Changing ModelBase.save to correct updated time
* Replace 'tenants' for 'projects' in documentation
* Replace model related instances of tenant
* Make flake8 ignore *.egg
* Imported Translations from Transifex
* Dont set debug and verbose as our example
* Updated from global requirements
* Update log messages to oslo.i18n
* Workflow documentation is now in infra-manual
* Updated from global requirements
* Remove py26 from tox.ini
* Container deletion will now clean up Consumers
* Add functional tests for order
* Added smoke tests for consumers
* Updated from global requirements
* Add PyKMIP to requirements
* Updated from global requirements
* Moved secret functional tests to data driven tests
* Updated from global requirements
* Use canonical name for coverage job
* Updated from global requirements
* Updated from global requirements
* Added test to check that an expired secret cannot be retrieved
* Fix communication of secret_type info
* Use "key-manager" for service type
* Fixing remaining hacking violations
* Added smoke tests for containers
* Excluding alembic migrations from coverage
* Cleaning up a couple nits in the Symantec plugin
* The last round of secrets functional tests
* Remove redundant else, none returned by default
* First set of functional tests for orders
* Adding basic functional tests for containers
* Added smoke tests for orders
* Replace trivial instances of tenant for project
* Updated from global requirements
* Port the Dependency Adding/Updating docs to Sphinx
* Added second round of secrets functional tests
* Port the troubleshooting documentation into Sphinx
* Added first round of functional tests for secrets
* Added support classes for secret functional tests
* Adding simple getting involved doc
* Adding docs around running tests and devstack
* Taking a first stab at putting together setup docs
* Attempting to fix the devstack gate job
* add new diffcover target for a future non-voting gate job
* Smoke tests for secrets in Barbican Functional Tests
* sync global requirements now that pecan 0.8 is out
* Add certificate plugin page
* Add secret store plugin page
* Updated version tests to include auth and unauth flavors
* Add plugin sub-folder and augment crypto plugin doc
* Move functionaltests into smoke or functional subdirectories
* Bumping default ssl_version to TLSv1, in light of POODLE
* Removing new_name argument from test_wrapper
* Add missing \n at the end of file
* Remove extraneous vim editor configuration comments
* Delete usage-indications from the model docstrings
* Adding keystone notification listener support

2014.2
------

* Update to the latest global requirements versions
* Imported Translations from Transifex
* Adding tox job for local functional test dev
* Adding a sample tempest config
* Open Kilo development
* Sync SQLAlchemy lifecycle to request cycle
* Cleaning up secret functional tests
* Code clean-up due to type order enhancement
* Use canonical cover name for coverage
* Adding parameterized decorators for unit tests
* Fix error in two-step secret PUT with base64
* Use OpenStack Incubated branding for docs
* Allowing all content-types for secret delete
* Adding size limits for create secret json fields
* Refactor secret functional tests using models and behaviors
* Add asymmtric order validator
* Changes to get certificate issuance flow working
* Deduplicate HACKING.rst with docs.openstack.org/developer/hacking/
* Add asymmetric key generation in dogtag plugin
* Pin Pecan to 0.6.0 to fix binary secret decrypts
* Test the secret model using an in memory database
* Adds to KMIP secret store test coverage
* Switch barbican.sh to use testr
* Typos 'asychronous' and 'formated'
* removed tenant id from code samples
* Bringing translation.py coverage up to 100%
* Remove restrictive hard-coded orders validation
* removed whitespace from pom.xml
* Update Getting Started Guide to include tech review feedback
* Adding sub-status and message to orders
* Imported Translations from Transifex
* Remove config parameter from secret_store.py interface
* Modifying testr conf to suppress output
* Fixing the PYTHONHASHSEED bug with our unittests
* Updated dev guide to include feedback from previous tech review
* removed image files as they referred to internal architecure
* Switch to running tests in parallel with testr
* Install tempest instead of just adding it to PYTHONPATH
* PKCS11 refactor to use a master KEK and per project KEK
* Adding support for allowing binary data as-is as part of PUT
* Adding missing unit test on queue server tasks
* Imported Translations from Transifex
* Making a few MORE modules hacking 0.9.2 compliant
* Adding initial update logic for orders
* Move to oslotest

2014.2.b3
---------

* Add initial files for certificate event handling
* Reorganize code to use store crypto plug-in
* Remove some inline if/else statements
* Replace explicit assertion for function
* Make a whole host of modules hacking 0.9.2 compliant
* Updating API unit and functional tests to new hacking standards
* Imported Translations from Transifex
* Making a few modules hacking 0.9.2 compliant
* Additional work on certificate processing
* Updated Create Secret request and response
* Updated Get Secrets request and response
* Initial connect orders resource to certificate processing
* Updated Get Orders request and response
* Add a py3pep8 tox job. This will verify py3 compliant syntax
* Imported Translations from Transifex
* Fix Container list to properly format secret_refs
* fix for bug #1359197
* fix all the log statments to use %s fomatting
* Add order plugin metadata entity and logic
* Add certificate_manager functionality to dogtag plugin
* Allow devstack to do git clone of barbican
* Remove second setUp() call in tests
* change CryptoPluginManager to be instantiated in the module scope
* Imported Translations from Transifex
* Edited docs to improve context
* Minor cleanup and moving around code for clarity
* Add more type in order post
* Update versionbuild script to handle setup.cfg version
* Replacing backslashes
* Adds KMIPSecretStore and unit tests
* Install of a Barbican RPM fails due to missing keystonemiddleware
* Imported Translations from Transifex
* Removing symantec as a default plugin
* Updating symantec plugin docstrings
* First attempt at adding the symantecssl library
* Revert remove version from setup.cfg
* Install sqlite-devel package on fedora
* Refactor secret_store for consistency
* remove project-id from resource URIs
* Replace hard-coded setup version setting
* Fixed misspelling in error message
* Make transport_key an optional arg in SecretDTO
* Add Certificate Interface & Symantec Plugin
* Clean old comments (already implemented)
* Add support to Barbican for consumer registration
* Force uWSGI to set "Connection: close" header
* Adds store_secret_supports to secret_store
* Remove remaining skipTest
* Add code to retrieve secrets metadata and data with transport key
* autodoc import error for plugin.rst
* Replace skipTest in favor of decorator
* Eager load KEKDatum record when EncryptedDatum is retrieved
* Code to pass through transport_key_id when storing secret
* Correct container create response code to be 201
* Adding doc sections to tox.ini
* code to retrieve transport key on metadata request
* Set python hash seed to 0 in tox.ini
* Imported Translations from Transifex
* Add tempest tests to run in devstack gate
* Use auth_token from keystonemiddleware
* Cleaning up index.rst file
* Don't log message for keystone ID query when supressing exceptions

2014.2.b2
---------

* Added duplicate secret_id validation in a container request
* Fix accepting longer PKI keystone auth requests to Barbican
* Imported Translations from Transifex
* Bug fix 1336995 DateTime type only accepts Python
* removing dead code from common.resources
* Remove dead code from config
* Replace should_fail for should_raise in tests
* Fix 500 error for secret PUT
* Fix Dogtag plugin and tests to match current secret_store API
* Implement content-type HTTP header enforcement
* Change function and import names for readability
* Correctly ordering requirements.txt
* Move crypto package contents to the new plugin structure
* Refactor json validator
* Correct default bit_length to match schema constraint
* Replaced some UTF-8 characters with ASCII characters
* Update from global requirements
* Update devstack endpoint creation to include v1
* Increase test coverage to 100% in validators.py
* Increased test coverage for app and updated .gitignore
* Removing an unnecessary catch
* Excluding the docs target folder from flake8
* Pin barbican above the most recent version of pecan
* Disable empty or null names for crypto plugins
* editing for gramatical and english errors
* Ensure that secrets within orders have expiration date isoformatted
* Add dogtag plugin to new plugin structure
* Increased common/utils.py test coverage to 100%
* Refactor secret validation for redability
* Adding test cases for more coverage
* Refactor allow_all_content_types for readability
* Don't package dependencies available in RDO
* Use oslo-config and oslo-messaging from RDO
* Restructure project to accommodate plugin types
* Pass tests in newer versions of pecan
* Addes intermediates to certificate container
* Add **kwargs to on_<verb> controllers
* fix for - JSONErrorHook is not setting content type to JSON
* Fix for Unicode-objects must be encoded before decryption exception
* remove default=None for config options
* Ensure that datetimes are isoformatted
* Add certificate to the container type option
* Fixed several typos
* replace iterator.next() with next(iterator)
* fix to include data migration script
* Adding 3 new columns Type, Meta and container_id to Orders
* Add SecretStore interface
* Fix data migration script error
* Adding SecretStoreMetadatum to the list of MODELS
* Crypto dev plugin now uses per-tenant KEKs
* Prepare barbican for localization
* Replace nonexistent function in test
* Usage of __metaclass__ not necesary with six.add_metaclass
* Enable tox to upgrade packages if needed
* Add a local.conf for easier DevStack spinning up
* Adding docbook-based docs
* enable all hacking checks
* Update the links to python-barbicanclient
* Prefer os.urandom to PyCrypto's PRNG
* Beginning transition from pycrypto to cryptography
* More Hacking Violation Fixes
* Update to oslo-incubator (caed79d)
* Additional Hacking violation corrections
* enable hacking check H234
* unpin iso8601 dependency
* Fixed some Hacking violations
* major hacking fixes
* Fixing A Few Hacking Violations
* Add TransportKey as a resource
* Update Plugin Development documentation
* Changing from stackforge to openstack project
* Change name of SecretMetadatum table to SecretStoreMetadatum
* Update .gitreview file for new repo name
* Fix flake8 errors in migration version file
* Lock Pecan version to 0.5.0 for now, https://review.openstack.org/89849
* Fix dogtag unit tests
* Remove extra parameter for generate_symmetric & generate_asymmetric in test plugin
* Fixed http 500 due to mismatch between ResponseDTO and tuple from plugin encrypt
* Fixed a typo in a comment
* Pass secret metadata to crypto extension manager for plugin search
* Remove redundant code on offset, limit parameters
* Implement the REST API with pecan
* Increase DevStack uWSGI buffer for Tempest support (Keystone Headers)
* change assertEquals to assertEqual
* Adds SecretMetadatum table
* Extend crypto plugin to support more key types
* Metaclass Python 3.x Compatibility
* Ensure uWSGI process in DevStack is actually killed
* Fix a bug with handling of binary data
* Add configuration items to limit secret and request sizes
* Add Sphinx developer documentation skeleton
* Add Dogtag crypto plugin
* correcting spelling error in README file

2014.1
------

* Support for debug mode start in barbican
* Update crypto plugin interface to support Dogtag
* Clean up Verifications resource
* Revive Alembic-based database migration logic
* Remove v1 from the falcon app route
* Housekeeping, re-alphabetize requirements
* Make max api request size configurable
* Barbican should not do rbac on version api call
* Include discover in test-requirements
* Switch to testtools and make barbican compatible with Python2.6
* Fix string format used to report content validation errors
* Correct RBAC response codes
* Create secret - case insensitive Content-Type check

2014.1.b3
---------

* adding placeholder for endpoints
* Barbican uWSGI stats server listen on localhost
* Minor changes to make the bash8 check happy
* Adding more msgs, checking admin/non-admin endpoints
* Modify python-dateutil RPM build process
* Fixing bug 1287993 - logging issue
* Correcting bash script pre-test-hook
* Remove oslo.uuidutils
* Locking the version of iso8601
* Adjust contrib location, minor adjustments
* Adjust location of the functionaltests folder to root of project
* use of more readable policy language in policy file
* Adding DevStack Support
* Adds container endpoints to Barbican API
* Tell install to create files as 644 instead of 755
* Removes dead and unneeded code
* Add script to ensure semantic versions work with continuous build
* Specified content type is dropped on single step create secret
* add fpm packaging to satisfy oslo.messaging dependency for pyYaml
* Add queue configuration changes to support HA Rabbit queues
* Initial checkin of doc source
* fix for - create a secret - doesn't trim content type
* Support building wheels (PEP-427)
* exclude abstractmethod from coverage
* fix for testr
* Switch to testr
* Set rpm %_topdir macro during build
* Removed dead code and updated tests to cover 100% for crypto
* Remove custom install_command for argparse
* Enable tag-based full version reporting via pbr

2014.1.b2
---------

* Add RPM package dependencies needed for Barbican nodes post oslo.msg/pbr
* Alphabetizing requirements as per OpenStack best practices
* Switching to use VIRTUAL_ENV env variable
* Fixing issue around error messages not being populated
* Update crypto unit test coverage
* Add RPM package dependencies needed for Barbican API/Worker nodes
* Removed scripts that are not being used
* Remove PostgreSQL dependencies from Barbican
* removing run_tests.sh
* Updating copyright year
* Adding invalid_property attr to support test code
* Sync the kombu and amqp versions
* Remove lingering celery dependencies out of RPM dependencies
* Enabled branch coverage for barbican. Took out inclusive coverage
* Fix file copy bug with the barbican installer
* Removing bin/versionrelease
* Updating RPM build version
* Attempting to fix the tox environments
* Fix RBAC unit test failure due to uninitialized mock
* Sync with global requirements
* Fixed to un-quote the name parameter that gets used when querying for secrets
* Removes unneeded details from the error message
* Migrate to pbr
* Replace Celery with Oslo messaging for asynchronous queuing
* Expand secrets list API to allow for filters on name, mode, algorithm, and bit length
* host_href should include scheme
* Fixed response object in the Verifications GET list resource method
* Add .mailmap file
* Add verification REST service to Barbican
* Line wrap README, revise IRC channel to #openstack-barbican
* Fix automatic signing
* Sign RPM builds
* Update Launchpad URL
* add link to bug tracker
* Removed README.rst in favor of README.md
* Remove Celery and Kombu version pinning
* Gracefully handle request for binary data as plain
* Update the keystone configuration script for Barbican per Johns Hopkins team
* Add a better installer for local Barbican application instances
* Fix spelling error, and add uWSGI stats server support
* Pin billiard version to 2.7.3.34
* Fix for bug/1238895: normalize plain text mime types
* Change the queue 'broker' config to allow a list of brokers
* Add back a explicit barbican-worker.py install line
* Remove unneeded Barbican worker script from generated RPM
* Add files to create worker RPM and get api/db/queue/worker nodes deployed
* Modify version template for the final OpenStack Havana release
* Fix KEK generation in the P11 Plugin + fix unit tests
* Change from using 'cypher_type' to 'mode' in API and code base
* Remove duplicate TenantSecret on secret PUT call
* Remove base64 encoding feature from decrypted secrets GET API
* Refine the Secret metadata response by *not* returning the 'content-encodings'
* Add the error reason to the Order entity if async processing fails
* Refactor plugin API methods
* Update 404 message
* Freeze amqp version for rpm packaging
* Update dependency packaging
* moar dependencies thanks to oslo
* Add missing content type and encoding business logic after MIME-type revamp
* Remove uwsgi requirement
* Added total number of secrets/orders available to response
* Add new dependencies to rpm
* adds lazy app loading to the uwsgi inis
* Add role based access control (RBAC) to Barbican
* Handle missing cyper_type and algorithm fields
* Remove padding code and tests in the p11 plugin
* Fix order creation bug involving content types
* Add mock testing for the p11_crypto plugin
* Fix rpm build
* P11CryptoPlugin is now functional
* Update P11 plugin to function & match new plugin contract
* First attempt to integrate Paul's HSM plugin into Barbican
* p11 plugin work
* Added hacking target to tox
* Change the location of the New Relic config file
* Mime Type Revamp
* Add New Relic application monitoring
* Fix PyCrypto rpm package name built by fpm
* Package PyCrypto 2.6 into an rpm using fpm
* Stop barbican-api during rpm removal
* Fixing NoneType issue with limit and offset
* Restrict use of 'plain_text' to 'text/plain' MIME
* Package dependencies in RPMs using fpm
* Automate rpm build
* Clean list paging offset and limit values properly
* Fix rpm dependencies
* Validate MIME type and cypher type during order creation
* Added logic to skip migrations for sqlite databases, as sqlite does not support altering schema data
* Added barbican-api rpm packaging
* Adding files to support database migration via alembic
* Adjust debian upstart script to allow for updating running app when updating package version
* Added missing -1 in debian changelog file
* Revamped version release script to use time stamps;
* Clean up debian packaging. Install dependencies from distro repos
* Add .gitreviw file; Fixed pyflakes violations; Fixed pep7 violations; Fixed tox.ini config;
* Prepare for next release

0.1.65
------

* Release for v0.1.65
* Fixed script rename in setup.py
* Restore comments about policy in barbican run script
* Renamed barbican-api script to barbican-all
* Use upstart instead of init scripts for uwsgi emperor
* Added admin api as a separate falcon app
* Removed unused uwsgi.ini file
* Prepare for next release

0.1.64
------

* Release for v0.1.64
* Updated the perf URI;
* Prepare for next release

0.1.63
------

* Release for v0.1.63
* Changing the performance URI;
* Prepare for next release

0.1.62
------

* Release for v0.1.62
* Adding blitz.io API contract;
* Modified readme to refer to the wiki home page;
* Clean up unit test suite; Remove print statements;
* Prepare for next release

0.1.61
------

* Release for v0.1.61
* Require latest SQLAlchemy (8.1)
* Prepare for next release

0.1.60
------

* Release for v0.1.60
* Prepare for next release

0.1.59
------

* Release for v0.1.59
* support faux key creation in crypto plugins + tests
* PEP8 clean up;
* #131 Fix defect involving expiration dates with time zones; Add graceful handling of 500 errors in REST resources;
* Prepare for next release

0.1.58
------

* Release for v0.1.58
* Prepare for next release
* Release for v0.1.57

0.1.57
------

* Updating API Doc and Technology links
* Prepare for next release
* Release for v0.1.56

0.1.56
------

* Address Douglass review items; Officially deleting api validators.py;
* Put text/plain in front of octet-stream in secret mime-type enum, as is more common type probably;
* Added enum validation of mime-types
* Finished order validation; Fixed secret from order bug; Added logic to display secret UUID for name if not specified;
* Added orders validation; Fixed bug in the max size of plain text secrets;
* Prepare for next release
* Release for v0.1.55

0.1.55
------

* Added more testing around nulls/empties in JSON input;
* Prepare for next release
* Fixed parser failure output back to REST client
* Release for v0.1.54

0.1.54
------

* FIxed PEP8 violations; Added jsonschema to installer dependencies;
* Added validation logic for new secrets;
* put back the copyright range to that of the original copied file .. instead of the incremented 2013
* do not need wsgi, using Middleware class from barbican.api.middleware.__init__.py
* using Middleware from api.middleware.__init__, just what we need. Added debug middleware to the __init__ file. Also extended copyright range from 2011-2012
* Prepare for next release
* Release for v0.1.53

0.1.53
------

* Adding err.log to git ignore list; Remove spurious log;
* Fixed mismatch between tenantsecret table's FKs and the ids of the models;
* Add tox to test requires;
* Add tox to test requires; Better handle mal-formed JSON errors;
* creating a request context after token authorization that contains user particulars such as tenant-id, user-id etc
* support for keystone context in request
* fixes the problem of 'Command tools/with_venv.sh pip install --upgrade pip failed.' In the process adopted install_venv_common.py. Note setup.sh is currently commented out
* Prepare for next release
* Release for v0.1.52

0.1.52
------

* Added more debug logging in the paging repo methods, to troubleshoot defect;
* Oops, put back the 'see glance setup.py' for later version flow incorporation ala OpenStack lines
* Grab kek from config file for simple plugin
* need to make executable to not get permissions error when no virtual environment exists
* Prepare for next release
* Release for v0.1.51

0.1.51
------

* removed references to glance and substituted with barbican
* Prepare for next release
* Release for v0.1.50

0.1.50
------

* Adjusted limits logic; Added logging around limits to troubleshoot bug;
* Prepare for next release
* Release for v0.1.49

0.1.49
------

* Added missing is-deleted filter on order query; Changed secret POST response code to 201;
* Prepare for next release
* Release for v0.1.48

0.1.48
------

* Restore docstring param accidently removed;
* Addressed Douglas issues with imports; Fixed PEP8 violations
* Bug fix for order/tenant creation;
* Merged in Douglas' changes;
* Added better error feedback to clients; Added missing unit tests;
* Remove EncryptedDatum from plugin
* Added missing tenant-filtering logic/SQL; Added improved error reporting to clients;
* Only use byte type in plugin
* Added tenant-id filter to db queries of secrets;
* Secret can have more than one encrypted datum
* Save encryption details to kek_metadata, not datum.mime_type
* Prepare for next release
* Release for v0.1.47
* Added aes-128-cbc encryption in plugin using pycrypto

0.1.47
------

* Added size limits to the secret data; Fixed the next nav link to hide if no more data to display;
* Added methods to the crypto plugin manager to handle key gen and is-supports API flows; Added more code to deal with corner cases in API flow;
* Added soft-delete orders/secrets support; Updated unit tests;
* Fixed PEP8 violations; Tweaked fake encrypt/decrypt to show original passed in data;
* Prepare for next release
* Release for v0.1.46

0.1.46
------

* Don't inject conf into extension manager
* Added support for retrieving secret info stored in datum records, more work to follow
* Prepare for next release
* Release for v0.1.45

0.1.45
------

* Prepare for next release
* Release for v0.1.44

0.1.44
------

* Prepare for next release
* Release for v0.1.43
* Use oslo.config to load crypto plugins

0.1.43
------

* Prepare for next release
* Fixed the one-step POST call flow, verified with text/plain mime type; Modified exception handling to provide better feedback to client on errors;
* Release for v0.1.42

0.1.42
------

* Comment out identity policy setup in bin that is clobbering auto deployment process
* Added warning about is-null test
* Fix SQL bug in model code;
* Prepare for next release
* Release for v0.1.41
* Fixed some PEP8 violations;
* Merged Douglas' changes; Updated debian installer to install stevedore package;
* Added support for restricting GETs of expired secrets; Set default page size to 10 records;
* Prepare for next release
* Release for v0.1.40

0.1.40
------

* Prepare for next release
* Release for v0.1.39

0.1.39
------

* pep8 fixes
* Fixed tox tests broken by upstream commits
* Add support/tests for paged orders list via GETs;
* Fixed unit tests to mock policy enforcer;
* Fixed order test
* Finished secrets GET unit tests;
* Removed barbican.crypto.fields module. Use plugin system instead
* Added decrypt via plugin
* Added paging logic, preliminary unit tests
* manual test aid
* merged with latest secrets resources, and load-balance related changes
* keystone middleware integration
* integrating keystone policy infrastructure
* Add paged list of secrets via secrets GET;
* Added crypto plugin encryption to Secrets post
* Prepare for next release
* Release for v0.1.38

0.1.38
------

* Converted ids to HATEOS-style refs per API docs; Added true host name for this href via conf file;
* Transferring blueprint from apiary.io
* Added missing secret fields; Changed order request to have an embedded secret dict that mirrors the secret request type;
* Prepare for next release
* Release for v0.1.37
* Prepare for next release
* Release for v0.1.37

0.1.37
------

* Fix secret post error
* Prepare for next release
* Release for v0.1.36

0.1.36
------

* Prepare for next release
* Add unit testing; Add text/plain mime handling;
* Release for v0.1.35
* Add PUT secret logic; add generate key (simple only); Add more unit tests; Still need to add missing secret paramters
* Added content-types output for secret GET
* changed port to 9311 instead of 8080
* Prepare for next release
* Release for v0.1.34
* Added creation of secret from order processing
* changed port to 9311, avoiding 9292 (taken by glance) and 8080 (taken by S3)
* Prepare for next release
* Release for v0.1.33

0.1.33
------

* Prepare for next release
* Release for v0.1.32
* Resolve diff in versions
* Prepare for next release
* Release for v0.1.30
* Revamped Secret and Order stuff per discussion, just baseline functionality, not complete
* Modified files per revamped secrets/orders API
* require python-keystoneclient to support keystone authentication
* Prepare for next release
* Release for v0.1.31

0.1.31
------

* Remove duplicate debian source folder
* Ignore IntelliJ module files
* Prepare for next release
* Release for v0.1.30

0.1.30
------

* Prepare for next release
* Release for v0.1.29
* Added v1 prefix to URI routes
* Prepare for next release
* Release for v0.1.28
* Changed working and links for new info
* Changed the mailing list in the README to the openstack-dev one; Added info about the Freenode IRC for barbican as well
* Prepare for next release
* Release for v0.1.27
* Add links from main git page to wiki pages
* Prepare for next release
* Release for v0.1.26
* Added unit test for the sample middleware component; Tweaks to the Barbican worker node boot script;
* Prepare for next release
* Release for v0.1.25
* Added unit test for tasks; Replaced TBDs with more IDE-friendly TODOs
* Prepare for next release
* Release for v0.1.24
* Add final config file changes for queuing/Celery
* Prepare for next release
* Release for v0.1.23
* Prepare for next release
* Release for v0.1.22
* Added files needed to run Celery- and RabbitMQ-based workers
* Revamped to look more like the Celery tasking approach
* Prepare for next release
* Release for v0.1.21
* Prepare for next release
* Release for v0.1.20
* Prepare for next release
* Release for v0.1.19
* Prepare for next release
* Release for v0.1.18
* Modified the test/default/standalone db connection to use a sqlite file in a folder writable by the barbican user
* Prepare for next release
* Release for v0.1.17
* Added missing pip dependencies for debian package
* Prepare for next release
* Release for v0.1.16
* Prepare for next release
* Release for v0.1.15
* Modify boot script to put copy of conf file into home dir for local-only deployments
* Address issue with oslo config rejecting cli options for logging
* Fixed mismatch between wiki and api script file venv setting
* Moved config files back to etc/barbican
* Added missing requires
* Added middleware sample; Modified boot script accordingly;
* Utilizing openstack jsonutils, per Chad feedback
* Fixed mismatch in bin script with wiki docs
* Fixed bug in local launch of barbican via bin script
* PEP8 cleanup
* Added secret entity type; Updated the banner of source files to match Rackspace open source
* Fixed/added unit tests...more to come
* Added initial worker and queue modules, more work to go..
* Added CSR and SSL Certificate resource and models...still need to plumb components
* Added tenent resource test;
* Cleaned up repo/model/config files to be more like Glance;
* Add initial revamped data related files
* Add paste config file
* Prepare for next release
* Release for v0.1.14
* Add oslo/openstack files; Modified barbican-api script and config to support local spinup of uwsgi API server
* Prepare for next release
* Release for v0.1.13
* Fixed PEP8 violations
* Prepare for next release
* Release for v0.1.12
* adding images for the wiki page
* Prepare for next release
* Release for v0.1.11
* Prepare for next release
* Release for v0.1.10
* Add change to test Jenkins for sprint review
* Prepare for next release
* Release for v0.1.9
* Test config to trigger Jenkins
* Prepare for next release
* Release for v0.1.8
* Prepare for next release
* Release for v0.1.7
* Test change to repo
* Prepare for next release
* Release for v0.1.6
* Prepare for next release
* Release for v0.1.5
* Prepare for next release
* Release for v0.1.4
* Prepare for next release
* Release for v0.1.3
* Prepare for next release
* Release for v0.1.2
* Added pythonpath to where config.py is located
* Added missing version utility modules
* Bump to the next version
* Fixed syntax error in script
* Added bin folder, to contain start scripts for the Barbican services
* Adjust the inital version to 0.1.1
* Moving POC code
* Update README.md
* Update README.md
* Update LICENSE
* Basic Readme
* Adding PANIC log type
* removing tag code
* workaround for bad header parsing
* Wrap policies in plural container
* Update README.md
* Added missing dependency
* PEP8 Fixes
* \Merge branch 'tenantAPI' of github.com:cloudkeep/barbican
* fix a bug for mutiple page agent pairing
* a bug fix for updating pairings
* Added Agent API and Agent WebUI
* Use Markup for escape
* Update Web UI for event display
* Updated tenant API and API testing
* add tenant api
* add test script for API
* added sample files to give coverage tool something to chew on
* added missing args from tox config
* Removed conflicting argument for nosetests
* added missing nosetests parameters in setup.cfg
* added missing package py files
* added pip and test requirements
* Add test and config files to test Jenkins
* adding tox.ini file
* API Support For Policies
* Added Pairing Call
* API Example
* WIP: First API Call
* Added basic policies
* Added Key model
* Added Tenant model
* Authenciation & Admin
* Improved style for Users
* Added Twitter Bootstrap for style
* SQLAlchemy Part 2
* Adding SQLAlchemy persistence
* Simple formatting fixes
* API Blueprint
* Flask Structure
* Update README.md
* Initial commit
