Skip to content

Supported languages ​

The Application Assessment reads an application's source code and build manifests. Not every pass understands every language: some checks are written for a specific stack, others read any file. This page shows, per language, how each pass that reads source files or manifests covers it, so you know before a run which findings to expect and where the evidence will be thin.

The same matrix is part of every run. Pass 01 (INV) counts the lines of code per language in the application (signal INV-90), records the coverage of the languages it found in passes/01-inv.yaml and raises INV-91 when more than half of the production code is in languages that no code-analysis pass reads deterministically. The publication shows the result as the language coverage block.

What the values mean ​

  • deterministic: a rule-based check reads the language's source files or build manifests. The result is repeatable and every finding points at the file it came from.
  • LLM: the pass puts the language's source files into the language-model prompt, but no rule-based check reads them. Today this applies to the data classification (Pass 03 DATA) only. The quality of the result depends on the model and on which files fit into the prompt.
  • none: the pass does not read files of this language. Absence of a finding from this pass says nothing about code in that language.

Inventory (INV), code health (QUALITY) and the secret scan (SECRETS) do not count as language-specific code analysis for the INV-91 warning: the inventory only detects manifests, code health measures quality rather than sovereignty, and the secret scan is a pattern scan over every file (when Gitleaks is installed). Passes that reason over signals and supplied documents rather than source code (CTX, COMP, SYNTH, BLOCKS) and passes that read no source code (DYNAMIC, SCOPE) are not columns.

Coverage by language and pass ​

The table is generated from the scan lists the passes use, so it always matches the shipped code.

LanguageInventory (INV)State (STATE)Data (DATA)Dependencies (SBOM)Twelve-factor (TF)Egress (EGR)Cryptography (CRYPTO)Code health (QUALITY)Secrets (SECRETS)
Cnonenonenonenonenonenonenonedeterministicdeterministic
C#deterministicnonedeterministicnonedeterministicnonedeterministicdeterministicdeterministic
C++nonenonenonenonenonenonenonedeterministicdeterministic
COBOLnonenonenonenonenonenonenonenonedeterministic
Dartnonenonenonenonenonenonenonenonedeterministic
F#deterministicnonenonenonenonenonenonenonedeterministic
Godeterministicnonedeterministicnonenonenonedeterministicdeterministicdeterministic
Groovydeterministicnonenonedeterministicnonedeterministicnonedeterministicdeterministic
Javadeterministicdeterministicdeterministicdeterministicdeterministicdeterministicdeterministicdeterministicdeterministic
JavaScriptdeterministicdeterministicdeterministicdeterministicdeterministicdeterministicdeterministicdeterministicdeterministic
Kotlindeterministicdeterministicdeterministicdeterministicdeterministicdeterministicdeterministicdeterministicdeterministic
PHPdeterministicnonenonenonenonenonenonedeterministicdeterministic
PowerShellnonenonenonenonenonenonenonedeterministicdeterministic
Pythondeterministicnonedeterministicnonedeterministicnonedeterministicdeterministicdeterministic
RubydeterministicnoneLLMnonenonenonenonedeterministicdeterministic
Rustdeterministicnonedeterministicnonedeterministicnonenonedeterministicdeterministic
Scaladeterministicnonenonedeterministicnonedeterministicnonedeterministicdeterministic
Shellnonenonenonenonenonenonenonedeterministicdeterministic
SQLnonenonedeterministicnonenonenonenonedeterministicdeterministic
Swiftnonenonenonenonenonenonenonedeterministicdeterministic
TypeScriptdeterministicdeterministicdeterministicdeterministicdeterministicdeterministicdeterministicdeterministicdeterministic
VB.NETdeterministicnonenonenonenonenonenonedeterministicdeterministic

Package ecosystems ​

The inventory recognises build manifests at any depth for the ecosystems below. The software bill of materials (Pass 05 SBOM) looks up known vulnerabilities in OSV for the ecosystems marked in the last column.

Package ecosystemLanguagesBuild manifests read (INV)Vulnerability lookup in OSV (SBOM)
crates.ioRustyesno
GoGoyesno
MavenGroovy, Java, Kotlin, Scalayesyes
npmJavaScript, TypeScriptyesyes
NuGetC#, F#, VB.NETyesno
PackagistPHPyesno
PyPIPythonyesno
RubyGemsRubyyesno

Languages with little or no coverage ​

If the dominant language of your application shows mostly none, the assessment still runs: the inventory, the census, the secret scan and every pass that works on your supplied context (architecture documents, CMDB extracts, operational data) produce results. Compensate for the missing code analysis by adding context documents to wsp/inputs/ and by reviewing the INV-91 warning in the report. For applications without accessible source code, use the Service Portfolio Assessment.


Further reading ​