This is an official Swiss Government project developed by the Federal Office of Information Technology, Systems and Telecommunication (FOITT) as part of the electronic identity (e-ID) initiative.
The project is a pilot application that utilizes the Swiss e-ID infrastructure, specifically the Generic Verification Services (Generic Verifier Validator Service & Generic Verifier Management Service), to verify a learning driver's license. It is a public-facing application that does not store any data.
This repository is part of the broader ecosystem being developed for the future official Swiss e-ID. Our goal is to engage with the community and foster collaboration on building a secure, interoperable ecosystem for e-ID and other digital credentials.
For more information about the project, please visit the introduction to the public beta open-source initiative.
flowchart TD
lc[\"`**LicenceCheck**`"\]
isam(Verifier Management Service)
isdb[(Postgres)]
isoi(Verifier Validator Service)
wallet[Swiyu Wallet]
subgraph Generic Verification Services
isam ---> isdb
isoi ---> isdb
end
lc ---> isam
wallet ---> isoi
Technology | Required Version |
---|---|
Java | >= 17 |
node | >= 20 |
npm | >= 10 |
mvn | >= 3.9.3 |
Important
Due to security reasons, all secrets and files containing secrets have been removed from the project. It is still possible to test it locally with mocked data.
To run the application, you need to:
- Run
mvn clean install
in root folder - Run
java -jar -Dspring.profiles.active=local ./vz-licencecheck-service/target/vz-licencecheck-service.jar
When the server has finished starting, it is possible to access the following addresses:
Application | Link |
---|---|
LicenceCheck | http://localhost:8888/ |
SwaggerUI | http://localhost:8888/swagger-ui.html |
The backend has mock implementations to enable local usage.
If a new verification process is started, there will always be successful verification because the underlying infrastructure has
been mocked. To change the mock response, the application-local.yml
file can be modified at line 5 or 6 to get different responses.
If you want a successful verification, set failResponse: false
, otherwise set failResponse: true
.
To test various error codes, set the expected error code in line 6. See all possible error codes in ErrorCodeDto.java.
We welcome any feedback on the code regarding both the implementation and security aspects. Please follow the guidelines for contributing found in CONTRIBUTING.md.
This project is licensed under the terms of the MIT license. See the LICENSE file for details.