Contributor
stellargo

External Fingerprint Storage for Jenkins


Mentors
Oleg Nenashev, michael cirioli, Andrey Falko
Organization
Jenkins project

File fingerprinting is a way to track which version of a file is being used by a job/build, making dependency tracking easy. The fingerprint engine of Jenkins can track usages of artifacts, credentials, files, etc within the system. It does this by maintaining a local XML-based database. This leads to dependence on the physical disk of the Jenkins master. Hence, the core idea of this project is to extend Jenkins core to support storing of fingerprints in an external storage, which would be managed by storage system specific plugins. This would involve designing and creating the external fingerprint storage API. The API would also allow multiple Jenkins instances to store their fingerprints inside a single external storage instance, enabling traceability of artifacts across the CI/CD flow. The project also involves creating two plugins, as reference implementations. These plugins would allow users to store fingerprints inside their Redis and PostgreSQL instances.