deckhand/deckhand/control
Felipe Monteiro 84ab5c5096 [test] Add integration test scenario for encrypting generic type
This PS adds an integration test scenario for validating that
encrypting a generic document type and using it as a substitution
source during document rendering works.

Deckhand will now submit all generic documents to be encrypted
to Barbican with a 'secret_type' of 'passphrase'. No encoding
is provided Deckhand-side (i.e. base64) because encoding is
deprecated in Barbican since it lead to strange behavior;
Barbican will figure out what to encode the payload as
automatically. For more information, see [0] and [1].

In addition, this PS handles 2 edge cases around secret
payloads that are rejected by Barbican if not handled
correctly by Deckhand: empty payloads and non-string
type payloads [2]. For the first case Deckhand forcibly
changes the document to cleartext because there is no
point in encrypting a document with an empty payload.
For the second case Deckhand sets overrides any
previously set secret_type to 'opaque' and encodes
the payload to base64 -- when it goes to render
the secret it decodes the payload also using base64.

Integration tests have been added to handle both edge
cases described above.

[0] https://bugs.launchpad.net/python-barbicanclient/+bug/1419166
[1] 49505b9aec/barbicanclient/v1/secrets.py (L252)
[2] 49505b9aec/barbicanclient/v1/secrets.py (L297)

Change-Id: I1964aa84ad07b6f310b39974f078b84a1dc84983
2018-06-16 15:11:20 -04:00
..
views [feature] Endpoint for listing revision validations with details 2018-04-29 01:37:38 +00:00
__init__.py DECKHAND-2: Design core Deckhand API framework 2017-06-27 19:26:51 +01:00
api.py Add no oauth middleware to bypass keystone authentication 2018-05-08 03:46:52 +01:00
base.py Add validation for empty documents inside multi-document payload 2018-03-31 22:36:55 -04:00
buckets.py Make Deckhand validation exceptions adhere to UCP standard 2018-04-26 18:51:08 +00:00
common.py [test] Add integration test scenario for encrypting generic type 2018-06-16 15:11:20 -04:00
health.py Allow anonymous access for health and versions 2017-11-21 16:37:34 -06:00
middleware.py style(pep8): remove identation ignores 2018-06-01 22:08:42 +00:00
no_oauth_middleware.py Add no oauth middleware to bypass keystone authentication 2018-05-08 03:46:52 +01:00
revision_diffing.py Make Deckhand validation exceptions adhere to UCP standard 2018-04-26 18:51:08 +00:00
revision_documents.py Add limit query filter param 2018-05-09 01:17:06 +00:00
revision_tags.py Make Deckhand validation exceptions adhere to UCP standard 2018-04-26 18:51:08 +00:00
revisions.py Make Deckhand validation exceptions adhere to UCP standard 2018-04-26 18:51:08 +00:00
rollback.py Make Deckhand validation exceptions adhere to UCP standard 2018-04-26 18:51:08 +00:00
validations.py [feature] Endpoint for listing revision validations with details 2018-04-29 01:37:38 +00:00
versions.py Allow anonymous access for health and versions 2017-11-21 16:37:34 -06:00