Architecture of the eduTAP Semantic Pass API#
Overview#
Here we provide semantic pass schemas and possible definitions, primarily vendor-neutral. There is no direct one-to-one mapping from semantic pass definitions to vendor-specific pass models, because of differences between different vendors with their proprietary pass models.
Attention
These semantic pass models are from user-centric view and not technical aspect.
We shall provide:
registry of pass models
base classes for semantic pass models
declarative definition of pass models
transformation engine from semantic model to vendor-specific pass models, where the transformations are defined declaratively
transformations concern json data and file data
Terminology of Semantic Model and Logic:#
Pass Schema#
contains the information which fields have to or can be provided for a concrete pass template
contains the transformation specification for the different target platforms
validation information
Pass Definition#
contains the data definition for a specific pass e.g. LMU Library Pass, but still vendor independent.
ModelEngine#
based on the fields and their constraints given in the Pass Schema, the ModelEngine validates the Pass Definition.
based on the transformation definition given in the Pass Schema, the ModelEngine transforms the Pass Definition into a vendor specific pass models.
Vendor specific:#
This is not part of the sematic model, but the vendor specific packages. Anyway, we need to know the terminology to be able to map the semantic model to the vendor specific models.
Hint
Explanation of the Google Terminology
Hint
There are already rough mappings between both vendors online, i.e.:
Google#
Pass Class like a template of a specific pass domain, i.e. the LMU Library Cards*.
Pass Object the specific pass of a person, like an instance of the Pass Class, referencing it, downloadable to the wallet on the tappers device.
Apple#
The differentiation into Pass Class and Pass Object as its done as Google is not relevant.
Apple follows a different approach to handle passes.
Apple contains only passes stored in a *.pkpass
file which is a .zip file with checksums and a manifest signed by certificates to make it manipulation-safe.
However, to work efficiently with passes, internally at eduTAP we decided to introduce pass templates to distinguish between them and and passes as well. We have:
Pass Template: a pass definition that can be used to create a pass object by copy and modify.
Pass: a pass object that can be used to create a
*.pkpass
file to be downloaded/ sent to the tapper.