# Implementation Checklist

## Overview

This checklist can help you plan your implementation. Besides technical and operational details, it covers server setup, QR code, certificate template changes, and updating and verifying certificates.

## QR code

<table><thead><tr><th width="194.6056391555013">Section</th><th>Checklist</th><th>Description</th></tr></thead><tbody><tr><td>Create QR code</td><td>Change the value in context section.</td><td><ul><li>This value indicates the release version of the certificate schema. This versioning will support in introducing validations (if required) on certificates generated in previous schemas such as  "revoking/invalidating certificates with previous schema."  </li><li>For example: For release 1 - It could be "https://moh.prod/credentials/vaccination/v1" and for release 2 - It could be "https://moh.prod/credentials/vaccination/v2" </li><li>For more details and sample QR code content, click <a href="../divocs-verifiable-certificate-features-2.0/creating-a-divoc-certificate/what-information-is-included-in-the-divoc-certificate"><strong>here</strong></a>.</li></ul></td></tr><tr><td>Create QR code</td><td>The Id field in "credentialSubject" should be in a URI format.</td><td><ul><li>If certify request payload contains “identity,” set it to “did::” </li><li>Else, use the “preEnrollmentCode” and set it to “did::”</li></ul></td></tr><tr><td>Create QR code</td><td>The date value passed in the payload in the 'vaccination' section should match with the value in the 'evidence' section of the QR code and it should follow the YYYY-MM-DD format.</td><td><p></p><ul><li>The format is as per the WHO-DDCC data standard.</li><li>Validate the date value as it may have impact due to the vaccination system (external), and DIVOC is deployed in servers with a different timezone (UTC). Border cases to be checked as day/date may change.</li></ul></td></tr><tr><td>Create QR code</td><td>The 'issuer' is mapped correctly as per the requirement.</td><td><ul><li>This value indicates the certificate issuing authority. The issuer field is configured in the platform. For more details, click <a href="../configuration/configuring-the-certification-and-verification-component/configuring-certificates/step-2-configure-the-qr-code-content"><strong>here</strong></a>. </li><li>The value of this change to be added here: <a href="https://github.com/egovernments/DIVOC/blob/main/docker-compose.yml#L295"><strong>https://github.com/egovernments/DIVOC/blob/main/docker-compose.yml#L295</strong></a>.</li></ul></td></tr><tr><td>Create QR code</td><td>The vaccine list provided by a country is available in the master list. </td><td><ul><li>The vaccines provided in the platform are listed <a href="../divocs-verifiable-certificate-features-2.0/who-master-vaccine-checklist"><strong>here</strong></a>. </li><li>Validate and add to the list if a new vaccine needs to be added in the list - <a href="https://github.com/egovernments/DIVOC/blob/main/default-configuration/etcd/ICD.json"><strong>https://github.com/egovernments/DIVOC/blob/main/default-configuration/etcd/ICD.json</strong></a> and <a href="https://github.com/egovernments/DIVOC/blob/main/default-configuration/etcd/VACCINE_ICD.json"><strong>https://github.com/egovernments/DIVOC/blob/main/default-configuration/etcd/VACCINE_ICD.json</strong></a>.</li></ul></td></tr><tr><td>Create QR code</td><td>The vaccine and prophylaxis mapping is as per the country requirements.</td><td><ul><li>The vaccines provided in the platform are listed <a href="../divocs-verifiable-certificate-features-2.0/who-master-vaccine-checklist"><strong>here</strong></a>.</li><li>Validate and add to the list if a new vaccine need to be added in the list - <a href="https://github.com/egovernments/DIVOC/blob/main/default-configuration/etcd/ICD.json"><strong>https://github.com/egovernments/DIVOC/blob/main/default-configuration/etcd/ICD.json</strong></a> and <a href="https://github.com/egovernments/DIVOC/blob/main/default-configuration/etcd/VACCINE_ICD.json"><strong>https://github.com/egovernments/DIVOC/blob/main/default-configuration/etcd/VACCINE_ICD.jso</strong></a>.</li></ul></td></tr><tr><td>Create QR code</td><td>Vaccine 'manufacturer,' 'batch' values shared in the payload are getting reflected in the QR code.</td><td><ul><li>The sample payload and the QR code is mentioned <a href="../divocs-verifiable-certificate-features-2.0/creating-a-divoc-certificate"><strong>here</strong></a>. </li></ul></td></tr><tr><td>Create QR code</td><td>The addressCountry value in the evidence section captures the 3-digit country code from here.</td><td><ul><li>The values are set here: <a href="https://github.com/egovernments/DIVOC/blob/main/docker-compose.yml#L214"><strong>https://github.com/egovernments/DIVOC/blob/main/docker-compose.yml#L214</strong></a>.</li></ul></td></tr><tr><td>Create QR code</td><td>'dose' and "totalDoses" value shared in the payload are getting reflected in the QR code.</td><td><ul><li>For more details, click <a href="../divocs-verifiable-certificate-features-2.0/creating-a-divoc-certificate/what-information-is-included-in-the-divoc-certificate"><strong>here</strong></a>. </li></ul></td></tr><tr><td>Create QR code</td><td>The 'Id' part in the evidence section is in a URI format.</td><td><ul><li>For example, 'id' - "<a href="https://divoc.dev/vaccine/710208455">https://divoc.dev/vaccine/</a>&#x3C;certificateId>" Where - certificateId is unique for each certificate. If the certificate gets updated, a new certificate will be generated with a new certificate Id for the same event. For more details, click <a href="../divocs-verifiable-certificate-features-2.0/creating-a-divoc-certificate/what-information-is-included-in-the-divoc-certificate"><strong>here</strong></a>.  </li></ul></td></tr></tbody></table>

## Update changes

| Section              | Checklist                                                                                                                                                                                                                                                                                           | Description                                                                                                                                                                                                                                                                                                                                |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Update a certificate | Update limits are set according to a country's requirement. The details to configure the update limit are available [**here**](https://divoc.digit.org/divoc-wiki-3.0/platform/configuration/configuring-the-certification-and-verification-component/how-to-configure-the-update-certificate-api). |                                                                                                                                                                                                                                                                                                                                            |
| Revoke a certificate | The system should be able to generate a certificate for a revoked dose.                                                                                                                                                                                                                             | For example, if the dose 2 certificate has been removed from the system, the user should be allowed to generate another/correct dose 2 certificate. Click [**here**](https://divoc.digit.org/divoc-wiki-3.0/platform/divocs-verifiable-certificate-features-2.0/revoking-a-divoc-certificate) to know more on DIVOC's revocation services. |
| Revoke a certificate | The system is only revoking the earlier certificate which existed for the specified dose value.                                                                                                                                                                                                     | For example, If dose 2 certificate has been removed from the system, the user should be allowed to generate another/correct dose 2 certificate.                                                                                                                                                                                            |

## Certificate template changes

| Section                     | Checklist                                                                                                                                                                                                                                                       | Description                                                                                                                                                                                                                                                            |
| --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Create certificate template | QR code size is 2.5x2.5 inch on a printed A4 size paper.                                                                                                                                                                                                        | Click [**here**](https://divoc.digit.org/divoc-wiki-3.0/platform/divocs-verifiable-certificate-features-2.0/creating-a-divoc-certificate/divocs-certificate-generation-service-how-does-it-work) to see a sample certificate.                                          |
| Create certificate template | Does the printed certificate show the minimal values based on the WHO-DDCC standard?                                                                                                                                                                            | Click [**here**](https://divoc.digit.org/divoc-wiki-3.0/platform/divocs-verifiable-certificate-features-2.0/what-information-goes-into-a-qr-code) to see the  list of minimal data set as per the WHO-DDCC standard.                                                   |
| Create certificate template | If the certificate template has a table which shows the current and the previous dose details (if available), then the table should be configured to be scalable to capture details of both the current and the previous dose details in required combinations. | For example, the certificate template should have only one template file to refer to for the generation of certificates with a combination of dose 1, dose 1 and 2, dose 1, 2, and 3, etc. This should be up to a maximum feasible limit based on the template design. |

## Certificate verification

| Section              | Checklist                                                                                                               | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Verify a certificate | SSL certificate has been applied to the verification page.                                                              | The SSL certificate is required to open the camera in the browser.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| Verify a certificate | The verification page has been configured to provide the necessary guidance to the user for the verification component. | <p>For example, the verification page should include following messaging/guidelines/ information: </p><ul><li>How to scan the QR code? </li><li>The possible reason for showing a certificate as invalid or revoked? </li><li>What steps to follow if a certificate is shown as invalid or revoked, such as information of the contact person. </li><li>The possible reason if the verification component is not able to scan the QR code? Click <a href="../configuration/configuring-the-certification-and-verification-component/how-to-set-up-the-verification-portal-for-implementation"><strong>here</strong></a> for more details. </li></ul> |

## Setting up the server&#x20;

| Section      | Checklist                                                                                                                                                                                                                                                                                                                                                                | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Server setup | Infrastructure estimation guide.                                                                                                                                                                                                                                                                                                                                         | For example, if the load goes up, then the system should be configured for scalability.                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| Server setup | <p>The production environment should support the following recommendations: </p><ul><li>Data backup policy.</li><li>Authentication and password management.</li><li>Error handling and logging. </li><li>System configurations.</li><li>Click <a href="../../community/about-project-team/platform-policy-guidelines"><strong>here</strong></a> to know more. </li></ul> |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| Server setup | System is configured to handle network crash or infrastructure crash.                                                                                                                                                                                                                                                                                                    | For example, if the master/slave nodes go down, are they configured to autostart/auto-deploy? Click [**here**](https://divoc.digit.org/divoc-wiki-3.0/platform/installation/setting-up-divoc-in-k8-cluster/infrastructure-recovery) to know more.                                                                                                                                                                                                                                                                                          |
| Server setup | The system should be configured to backup. Click [**here**](https://divoc.digit.org/divoc-wiki-3.0/platform/installation/setting-up-divoc-in-k8-cluster/backup-and-restore-postgres-clickhouse-kafka-and-redis) to know more.                                                                                                                                            | <p></p><p>Back up of the following:</p><ol><li>DB/server setup.</li><li>Online/offline line.</li></ol>                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| Server setup | Click [**here**](https://divoc.digit.org/divoc-wiki-3.0/platform/installation/setting-up-divoc-in-k8-cluster/server-hardening) to read the server hardening guidelines.                                                                                                                                                                                                  | <p>The section should cover activities to be performed to ensure security of data and application. </p><p>For example, </p><ul><li>Restrict all the non-essential ports on the public network. Ports of DB/other inter-components should only be accessible within the application. Click <a href="https://github.com/egovernments/DIVOC/blob/main/docker-compose.yml"><strong>here</strong></a> for the list of ports. </li><li>Firewall controls should also be in place, such as  user management, for better access control.</li></ul> |

## Generating signed key pairs

| Section             | Checklist                                | Description                                                                                                                                                                            |
| ------------------- | ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Sign key generation | It is done as per the standard.          | Click [**here**](https://divoc.digit.org/divoc-wiki-3.0/platform/configuration/configuring-the-certification-and-verification-component/generating-signed-key-pairs) for more details. |
| Sign key generation | Keycloak configuration related to DIVOC. | Click [**here**](https://divoc.digit.org/divoc-wiki-3.0/platform/tech-docs/setting-up-divoc-development-environment) for more details.                                                 |

## Operational checklist

| Section        | Checklist                                                                                                                                                                                                       | Description                                                                                                                                                                                                                                                                         |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Privacy policy | Privacy policies are based on the recommendations made to implementing partners. They are advised to share it with citizens regarding their personally identifiable information and how it is managed in DIVOC. | As the application contains citizen data, access rights (read/write) should be agreed between parties for staging/production/other environments. Click [**here**](https://divoc.digit.org/divoc-wiki-3.0/community/about-project-team/privacy-policy-recommendations) to know more. |

[![Creative Commons License](https://i.creativecommons.org/l/by/4.0/80x15.png)](http://creativecommons.org/licenses/by/4.0/)*All content on this page by* [*eGov Foundation*](https://egov.org.in/) *is licensed under a* [*Creative Commons Attribution 4.0 International License*](http://creativecommons.org/licenses/by/4.0/)*.*
