Feature Wiki

Information about planned and released features

Tabs

Add Unique Certificate ID for Certificate Editor

1 Initial Problem

Currently a certificate is just a PDF document based on a template created with the certificate editor. A certificate document does not have any attribute to verify its validity. It is very easy to manipulate/fake this document.

A typical scenario were this could be a problem is:

  1. A user certificate was issued by ILIAS.
  2. The person submits the PDF for the application to a new employer.
  3. The new employer currently can't verfiy the validity of the certificate, event if he/she contacts the support of the issuing ILIAS installation.

2 Conceptual Summary

Therefore we suggest to provide a new placeholder for certificate templates (see screenshot in section "affected views" below):

  • [CERTIFICATE_ID]

If a persisting certicicate as issue this placeholder will be replaced with a unique id.

We suggest do use a UUID (see: https://en.wikipedia.org/wiki/Universally_unique_identifier) for the certificate, because the internal id of a certificate is an incrementing integer value and not unqiue across different ILIAS installations.
Alternative options, like composing the id based on other attributes are suboptimal, because an installation id in ILIAS is optional (and often 0), environment paremeters like the host, server name etc. can change over time and can be confusing. Plus we don't see the need to implement an own sequence number retrieval service if we have existing concepts of acquiring unique identifiers.

2.1 Creating an Overview for Administrators

Furthermore we would like to introduce a new certificate overview in the global ILIAS certificate administration, as a first consumer of this certificate id. There should be a new tab 'Overview', where persons with 'read' permission are able to retrieve a list of certificates.

The list offerst the following filters:

  • Certificate ID (Type: Textfield: Default: Empty)
  • Issue date (Type: Date Period/Range, Default: from = [NOW] - [ONE_WEEK], until: [NOW])
  • Object (Type: Textfield, Default Empty, Behaviour: Search base are all object titles of issued user certicates, the persisted title is used for already deleted objects)
  • Owner: (Type: Textfield, Default: Empty / Search base are all users owning a certificate)

We will use the UI filters, which do not offer any typehead/autocomplete functionality at the moment.

Column Definition:

  • Certificate ID (Format: String / The unique certificate id of the issued certificate)
  • Issue Datetime (Format: String formatted by \ilDatePresentation::formatDate / The date and time when the certificate was issued)
  • Object (Format: String / The object title of the ILIAS repository object the certificate was issued for)
  • Owner (Format: String / The username presentation of the person who owns the certificate)
  • Actions (Type: UI Dropdown): -- Download (Type: UI Button: A download link for the certificate. Clicking the link triggers the PDF download.

If the UI table is fully implemented at the time of feature implementation, we will use the UI table.

Ordering will be implemented similar to other ILIAS tables. The same applies for the pagination.

2.2 Migration

Because certificates are immutable, we don't migrate old certificates - but we would still show them in the global overview without a UUID.

2.3 Future Outlook

If components are able to offer views in the anonymous area (like the password assistance or self registration) in the future without taking the 'hacky way', we could think of some (optional, activatable) public view to verify the validity of a certificate by entering the certificate id and the email address of the owning user account.

3 User Interface Modifications

3.1 List of Affected Views

  • ILIAS  Repository Object (e.g. Course) - Settings - Certificate
  • Administration / Achievements / Certificates
    • The settings form will be presented in a (first) sub-tab `Settings`.
    • The suggested administrative list will be placed in a new sub-tab `Overview`.

3.2 User Interface Details

  • No Substantial Change - Just a new placeholder

3.3 New User Interface Concepts

None

3.4 Accessibility Implications

None

4 Technical Information

None

5 Privacy

The PRIVAY.md https://github.com/ILIAS-eLearning/ILIAS/blob/trunk/Services/Certificate/PRIVACY.md has to be modified. The suggested administrative view has to be extended by listing the new view as a location where (person related) data is presented (and exported).

6 Security

None

7 Contact

8 Funding

If you are interest in funding this feature, please add your name and institution to this list.

Hesse, Joel [Joel_Hesse]

9 Discussion

JourFixe, ILIAS [jourfixe], 15 MAY 2023: We highly appreciate this suggestion and accept the feature for ILIAS 9 with the following change:

  • Instead of creating sub-tabs of the 'Settings' tab we would like to have a proper main tab 'Certificates' within the administration node of Certificates.
  • This main tab 'Certificates' shows all certificates issued on the installation and allow to filter them.

JourFixe, ILIAS [jourfixe], 13 NOV 2023 : We still would like to have this feature and re-schedule the FR. Feature suggestion is accepted for ILIAS 10.

Jansen, Michael [mjansen], 26 APR 2024: Contrary to the migration process described above (namely: no migration), we would like to offer a "migration" in the "Setup Agent" of the "Certificate" component. We ran a few tests on our local machines, and were able to migrate (i.e. populate with a unique UUID) 500,000 persistent certificate records in 30 seconds. This would allow us to enforce certain business rules in the database, namely that each certificate must have a unique ID and cannot be persisted without it ("Unique Constraint"). It would have no benefit for existing PDF documents, but for the future, e.g. for pages with a "Certificate Verification", if we would still show certificate owners this ID in the "Deck of Cards", or similar use cases).

JourFixe, ILIAS [jourfixe], 29 APR 2024: Different that originally thought, a migration of existing certificates is possible. They would get UUIDs as well. We highly appreciate this and accept the change for ILIAS 10.

10 Implementation

Implemented as described above/and in the comments, with the following exceptions:

  • Instead of using sub-tabs, we put the the overview under an "Overview" tab (1st tab)

Test Cases

Test cases completed at 2024-05-06 by Jansen, Michael [mjansen]

  • 70172 : Zertifikatsübersicht aufrufen
  • 70173 : Zertifikat herunterladen
  • 70174 : Zertifikate filtern

Privacy

Information in privacy.md of component: updated on 2024-05-06 by Jansen, Michael [mjansen]

Approval

Approved at 04/23/2024 by [joel_hesse]

Last edited: 6. May 2024, 10:47, Jansen, Michael [mjansen]