aries-cloudagent-python icon indicating copy to clipboard operation
aries-cloudagent-python copied to clipboard

Fix: SchemasInputDescriptorFilter: broken deserialization renders generated clients unusable

Open rmnre opened this issue 3 years ago • 0 comments

What’s wrong? The OpenAPI spec requires an Input Descriptor’s schema property to contain a SchemasInputDescriptorFilter object. However, on deserialization, there is a preprocessing step which ensures that lists of URIs or a dict containing a oneof_filter property are accepted as well by transforming them into said object. (These alternative input formats are also included as examples in the InputDescriptors model.) Yet, input that already IS a SchemasInputDescriptorFilter object is not handled correctly during preprocessing and deserialization fails. This results in any client adhering to the spec being unable to create valid input descriptors and, ultimately, a presentation definition to use in a DIF proof request.

What has been changed? I adjusted the preprocessing step such that input is forwarded as-is if it looks like a SchemasInputDescriptorFilter. I also extended the tests to cover deserializing the actual object.

rmnre avatar Aug 11 '22 15:08 rmnre