Hi all,
It brings me great joy in introducing the Jenkins community to one of the ongoing Google Summer of Code (GSoC) projects: External Fingerprint Storage for Jenkins.
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 also allow tracking them across the entire CI/CD flow.
The goals of this project include:
- Building a pluggable storage engine, which would allow fingerprints to be stored in external storages managed by storage system specific plugins.
- Reference implementation in the form of Redis backed fingerprint storage plugin.
- Allowing fingerprints to be traced across Jenkins instances (possibly via another plugin)
The code for this project currently lives in two places:
So whilst we are working towards this project, we would love to receive community suggestions and feedback as to how we can make this project even better, and how maybe we can solve some problems for the users/developers. Here is a link to our draft
design document, which is soon to be converted into a JEP.
I would also like to invite everyone interested to join us for a demo of the project at the Cloud Native SIG Meeting, for which the
doodle is open for voting.
All other information regarding the project can be found at our up to date
project page.
Best Regards,
Sumit Sarin