Files
passkit-generator/examples/self-hosted

Examples

This is examples folder. These examples are used to test new features and as sample showcases.

Each example owns an endpoint where a pass can be reached. This project is built upon Express.js.

Typescript compilation is done automatically through tsx.

Before generating a new pass, you'll have to override the passTypeIdentifier and teamIdentifier for them to match the data in your certificates. This can be done in two ways:

a) Edit manually the `pass.json` of the model you are going to run;
b) Pass the two fields in the query string of the example you are running when querying it;

Omitting this step, will make your pass unopenable.

Install the dependencies from wherever path you are with pnpm install. Installing the dependencies will link passkit-generator in the parent workspace, so to reflect any change, it will be enough to build passkit-generator and restart the example.

Then be sure to be placed in this folder (examples/self-hosted) and run this command to run the web server:

$ pnpm example;

Certificates paths in examples are linked to a folder certificates in the root of this project which is not provided. To make them work, you'll have to edit both certificates and model path.

Every example runs on 0.0.0.0:8080. Visit http://localhost:8080/:example/:modelName, by replacing :example with one of the following and :modelName with one inside models folder.

Please note that field.js example is hardcoded to download exampleBooking.pass.

Example name Endpoint name Additional notes
localize /localize -
fields /fields -
expirationDate /expirationDate Accepts a required parameter in query string fn, which can be either expiration or void, to switch generated example.
scratch /scratch -
PKPass.from /pkpassfrom -
barcodes /barcodes Using ?alt=true query parameter, will lead to barcode string message usage instead of selected ones
pkpasses /pkpasses -

Every contribution is really appreciated. ❤️ Thank you!