Dependency Detection
  • 28 Apr 2023
  • 1 Minute to read
  • Dark
    Light
  • PDF

Dependency Detection

  • Dark
    Light
  • PDF

Article summary

Identifying the entire supply chain in your software product is essential in determining whether security vulnerabilities or other risk factors exist. Depending on the data available, Ion Channel can detect all of a project's direct and transitive dependencies.

Direct Dependencies

Direct dependencies are components that the project explicitly indicates are required for the project to run or compile.

Transitive Dependencies

Transitive dependencies are any dependencies of your project's direct dependencies (see the diagram below). For most projects, there is no limit to how far down that dependency tree will be checked to find all of the transitive dependencies in a project.

Detection Details and Requirements

Ion Channel will look for dependencies within the file formats listed below. For a dependency file to be scanned, it must be located less than six folders deep. Searching Git submodules are not supported.

Package ManagerLanguageSupported File FormatsNotes
Go ModulesGolanggo.modAll Go dependencies are considered to be direct.
GlideGolangglide.lock, glide.yamlGlide.yaml files will only be inspected if no glide.lock file is present.
MavenJava, Scalapom.xmlIncludes dependencies in the dependencies and artifacts sections. Optional transitive dependencies are ignored.
npmJavascriptpackage-lock.json, package.jsonPackage.json files will only be inspected if no package-lock.json files are present.
NugetC#, F#, VB.NET.nuspec

PyPIPythonpipfile, *requirements*.txtAny .txt file with the word "requirements" anywhere in the filename will be scanned for dependencies.
RubyGemsRubyGemfile.lock, Gemfile, .gemspecGemfiles will only be inspected if no Gemfile.lock files are present.
YarnJavascriptyarn.lock, package.jsonPackage.json files will only be inspected if no yarn.lock file is present.



Was this article helpful?