THCLab / oca-ecosystem

European Union Public License 1.2
3 stars 0 forks source link

Alternate approach to credential layout #4

Open swcurran opened 2 years ago

swcurran commented 2 years ago

We are considering a constrained way to define a credential layout. Basically, we want to declare some screen elements and then leave it to the item displaying the credential to assemble them into a layout. For example, an OCA Bundle publisher might say:

I'm getting a link to a presentation where we go over this.

Is it technically possible to use the "layout" overlay to set some data elements that a display engine knows about, but not provide detailed layout information?

Is that a good approach?

One of our concerns is providing a responsive display of the credential -- e.g. that looks good on both mobile and web. Is it technically possible to provide the "Swiss Passport" type detail that works across devices and display types?

pknowl commented 2 years ago

As OCA has evolved over the past four years, it has become increasingly clear that each overlay type should have a specific semantic task to ensure a fully interoperable architecture. This is worth considering for the presentation overlays. Presently, these overlays currently contain several amalgamated tasks (i.e., labelling, formatting, etc.). If we stay true to the OCA methodology, I suggest maintaining a granular separation of each task. By adding "transient_object_type" as a meta attribute in the core overlay types, we may be able to simplify (or even remove) the current layout overlays (i.e. Credential Layout Overlay, Form Layout Overlay). Just a thought.

pknowl commented 2 years ago

"presentation_type" is probably a better name for that suggested meta-attribute.

swcurran commented 2 years ago

I'm avoiding the term "presentation" because of the use of presentation in the verifiable credential context. Display on a screen vs. present to a verifier.

pknowl commented 2 years ago

Just delving into the Oxford Dictionary. "document_type" should work.

Forms, credentials, notices, and contracts are all types of documents.

swcurran commented 2 years ago

FYI --- here is a presentation on what we are trying to do for credential presentation. We are not aiming to do the "High Fidelity" option, because we think there are too many ways that can go sideways. Rather, we want do the template approach, where the OCA publisher (e.g. a credential issuer) provides items and the consumer of the OCA bundles uses those items to display the credential in different contexts. On page 11 of the presentation you will see the "Stacked" view, and can imagine how that will be done technically.

So -- need to figure out if the "template" approach with data provided from OCA is viable. Perhaps we can get together to discuss the "OCA Way" to do this?

pknowl commented 2 years ago

Super-cool deck, Stephen!

A fully customisable "Template overlay" is certainly worth investigating for defining a display template.

e.g., ...

{ "capture_base" : "EPMaG1h2hVxKCZ5_3KoNNwgAyd4Eq8zrxK3xgaaRsz2M", "object_type" : "spec/overlay/template/1.0", "document_type" : "credential", "background_colour" : "#FF5733", "background_image" : "sjrvnacnkevmwe_64wfGG", "logo_image" : "kvynie935fvg_64tfSS", //// sizing attributes, box positioning, etc.//// }

Happy to jump on a call to discuss.

swcurran commented 1 year ago

Reading some notes from @blelump via @pknowl about the term "template" --- based on this article. "Template" may not be the right term to use. I don't think we are using "template" in the same way as defined in the article.

What the current credential and form overlays do is put the layout entirely in the control of the issuer (or more generally, the publisher of the OCA Bundle). They control the layout all of the elements -- logos, background image, where labels and attribute data are placed and so on. As noted above, we don't want to provide that for various reasons -- mostly that we think the UX will be very inconsistent across issuers.

What we want is within an ecosystem (e.g. Aries), allow the OCA Publisher to specify some parameters about the data/credential, and leave how those parameters are used to the Agent (Mobile wallet, verifier) displaying the data/credential. That way, the Agent can do the layout for all credential, and use the parameters from the Overlay to tune it to the specific data/credential being displayed. In the Aries community, we'll put some hard constraints on the elements, especially things like the icon and background image.

Is "template" the right term for the overlay? Perhaps "Display Parameters Overlay"?