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.





  • Oleg Nenashev
  • michael cirioli
  • Andrey Falko