Search code examples
vhdlartifactoryregister-transfer-leveljfrog-xray

Can I create a new Jfrog Artifactory package type plugin?


I want to store RTL modules (Mostly VHDL files - .vhd) in Artifactory, and be able to trace the dependencies of those packages with Xray and the other Jfrog services.

I already have a pretty clean "package" format, I just want to have Artifactory parse my meta-data files on upload that are part of that package, the same way it does control files in a debian package.

Is this possible? And where would I start?


Solution

  • Since you mentioned Xray, it’s important to note that XRay supports only the certain types of files it supports (and these have to reside within a supported repository type). I’m not sure what you mean by “tracking dependencies” but I should note that XRay is mostly good at scanning code components and identifying vulnerabilities.

    To simply track dependencies (i.e methodically know which dependencies are associated with a certain package) you can use the various Build Info integrations. Read about this here: https://www.jfrog.com/confluence/display/RTF/Build+Integration

    If you associate your files with a certain build info object (a metadata object that stores build-related information), you’ll be able to track build artifacts and dependencies in the Artifactory UI and even query for them using the Artifactory Query Language. There are various options (CI plugins) depending on which CI server you are using, but in general all of the JFrog CI plugins serve the same purpose, which is uploading your content to Artifactory and keeping track of build metadata, such as build dependencies.

    With regards to your question, you didn’t elaborate on your end goal but you should be able to achieve this using a User Plugin. User Plugins can be used to extend Artifactory’s built-in capabilities and add your own business logic to procedures in Artifactory (like a deployment of a file). You can read more about this here: https://www.jfrog.com/confluence/display/RTF/User+Plugins

    There are many examples on our public Github repository that will probably help: https://github.com/JFrogDev/artifactory-user-plugins