{"schemaVersion":"ki-abhaengigkeitsatlas/v1","dataset":"german-public-sector-ai-dependency-atlas","parserVersion":"1","generatedAt":"2026-07-20T14:37:29.537Z","trackingSince":"2026-07-18T21:20:30.334Z","source":{"codeRadar":{"dataset":"german-public-sector-ai-code-radar","generatedAt":"2026-07-20T14:36:19.763Z","parserVersion":"3","url":"https://i6eal.de/tools/ki-code-radar/"},"openCode":{"label":"openCode GitLab","url":"https://gitlab.opencode.de/"},"depsDev":{"label":"deps.dev API v3","url":"https://docs.deps.dev/api/v3/"},"osv":{"label":"OSV API","url":"https://google.github.io/osv.dev/api/"},"spdx":{"label":"SPDX License List","url":"https://spdx.org/licenses/","version":"3.28.0","releaseDate":"2026-02-20T00:00:00Z"}},"coverage":{"repositoryCount":30,"completeTreeCount":29,"incompleteTreeCount":1,"lockfileRepositoryCount":17,"sbomRepositoryCount":4,"artifactRepositoryCount":20,"resolvedRepositoryCount":29,"resolvedArtifactRepositoryCount":20,"dependencyFileCount":33,"parsedFileCount":32,"parseErrorCount":1,"unsupportedFileCount":0,"evaluatedVersionCount":4205,"metadataResolvedCount":4191,"metadataNotFoundCount":14,"osvEvaluatedVersionCount":4205,"codeRadarRepositoryCount":30},"methodology":{"componentParserSchemaVersion":"ki-dependency-atlas-components/v1","candidateBoundary":"repositories_with_exact_ai_code_evidence","resolvedVersionBoundary":"exact_lockfile_or_sbom_component_or_exact_double_equals_manifest_pin","manifestRangesResolved":false,"latestVersionSubstitution":false,"containerTagsVulnerabilityChecked":false,"osvClaim":"osv_matched_observed_resolved_package_version_at_collection_time","depsDevLicenseSemantics":"spdx_expressions_as_reported_without_inferred_compatibility","providerSemantics":"package_interface_presence_not_api_configuration_procurement_or_use","generativeAiUsed":false,"scoreUsed":false,"treeEntryCeiling":2500,"fileByteCeiling":5242880,"uniqueVersionCeiling":5000,"observedFormats":["package-lock.json / npm-shrinkwrap.json","uv.lock","poetry.lock","Pipfile.lock","CycloneDX JSON","SPDX JSON or YAML","exact == manifest pins"]},"summary":{"repositoryCount":30,"packageCount":2831,"aiPackageCount":41,"resolvedComponentCount":7181,"resolvedVersionCount":4205,"providerExposureRepositoryCount":7,"licenseExpressionCount":57,"knownLicensePackageCount":2796,"unknownLicensePackageCount":35,"advisoryCount":572,"matchedAdvisoryRepositoryCount":25,"topPackage":{"id":"package:pypi:openai","slug":"openai-0dd26ac5","label":"OpenAI SDK","repositoryCount":18,"repositoryShare":0.6}},"kind":"repository","entity":{"id":"opencode:5137","slug":"opencode-5137","gitlabProjectId":5137,"name":"fish_monitoring","pathWithNamespace":"uba-ki-lab/fish_monitoring","description":"Framework to set up monitoring of fish, based on their movements using image and video data","webUrl":"https://gitlab.opencode.de/uba-ki-lab/fish_monitoring","commitSha":"49e06e88ca3d907b4e0812d05604125ddcbea0d6","commitUrl":"https://gitlab.opencode.de/uba-ki-lab/fish_monitoring/-/commit/49e06e88ca3d907b4e0812d05604125ddcbea0d6","lastActivityAt":"2025-06-23T00:00:07.541Z","headCommittedAt":"2025-05-20T12:59:57.000Z","tree":{"complete":true,"entryCount":37,"truncated":false},"files":[{"path":"sbom.JSON","kind":"sbom-json","blobSha":"4da521aea485dacf7b4e08033925ceeb927d0b74","sourceUrl":"https://gitlab.opencode.de/uba-ki-lab/fish_monitoring/-/blob/49e06e88ca3d907b4e0812d05604125ddcbea0d6/sbom.JSON","commitSha":"49e06e88ca3d907b4e0812d05604125ddcbea0d6","contentSha256":"27c80944bcf2f0f6c455d3ea43a0c03727f9d2a828a83991f6aef5c317f41bd9","byteCount":44073,"state":"parsed","componentCount":33}],"resolvedComponentCount":34,"artifactResolvedComponentCount":33,"exactManifestPinCount":1,"packageCount":34,"ecosystems":["pypi"],"aiPackageCount":1,"licenseExpressionCount":10,"unknownLicensePackageCount":1,"advisoryIds":["GHSA-65pc-fj4g-8rjx","GHSA-vfmq-68hx-4jfw"],"advisoryCount":2,"providers":[]},"evidence":{"files":[{"path":"pyproject.toml","kind":"exact-manifest-pin","sourceUrl":"https://gitlab.opencode.de/uba-ki-lab/fish_monitoring/-/blob/49e06e88ca3d907b4e0812d05604125ddcbea0d6/pyproject.toml","commitSha":"49e06e88ca3d907b4e0812d05604125ddcbea0d6","blobSha":"74f8cd51bf7e87b78bbb3f6ff934ffd362478cef","state":"parsed","componentCount":1},{"path":"sbom.JSON","kind":"sbom-json","blobSha":"4da521aea485dacf7b4e08033925ceeb927d0b74","sourceUrl":"https://gitlab.opencode.de/uba-ki-lab/fish_monitoring/-/blob/49e06e88ca3d907b4e0812d05604125ddcbea0d6/sbom.JSON","commitSha":"49e06e88ca3d907b4e0812d05604125ddcbea0d6","contentSha256":"27c80944bcf2f0f6c455d3ea43a0c03727f9d2a828a83991f6aef5c317f41bd9","byteCount":44073,"state":"parsed","componentCount":33}],"occurrenceCount":34},"related":{"packages":[{"id":"package:pypi:ultralytics","slug":"ultralytics-df6c7359","identity":"pypi:ultralytics","label":"Ultralytics","aiRelevant":true,"provider":null,"advisoryCount":0,"licenseExpressions":["AGPL-3.0"],"versions":["8.3.3"],"dossier":true,"occurrenceCount":1,"directOccurrenceCount":1,"evidenceFiles":["pyproject.toml"]},{"id":"package:pypi:idna","slug":"idna-994c9929","identity":"pypi:idna","label":"idna","aiRelevant":false,"provider":null,"advisoryCount":1,"licenseExpressions":["BSD-3-Clause","non-standard"],"versions":["3.10"],"dossier":true,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:lxml","slug":"lxml-53ddfa54","identity":"pypi:lxml","label":"lxml","aiRelevant":false,"provider":null,"advisoryCount":1,"licenseExpressions":["BSD-3-Clause"],"versions":["5.4.0"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:arrow","slug":"arrow-d0e153a5","identity":"pypi:arrow","label":"arrow","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["non-standard"],"versions":["1.3.0"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:attrs","slug":"attrs-2e7954ac","identity":"pypi:attrs","label":"attrs","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["MIT"],"versions":["25.3.0"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:boolean-py","slug":"boolean-py-d2700117","identity":"pypi:boolean-py","label":"boolean-py","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["BSD-2-Clause"],"versions":["5.0"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:chardet","slug":"chardet-69451fbd","identity":"pypi:chardet","label":"chardet","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["0BSD","non-standard"],"versions":["5.2.0"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:cyclonedx-bom","slug":"cyclonedx-bom-120c32c1","identity":"pypi:cyclonedx-bom","label":"cyclonedx-bom","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["Apache-2.0"],"versions":["6.1.1"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:cyclonedx-py","slug":"cyclonedx-py-e13e2bc2","identity":"pypi:cyclonedx-py","label":"cyclonedx-py","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":[],"versions":["1.0.1"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:cyclonedx-python-lib","slug":"cyclonedx-python-lib-af6d232b","identity":"pypi:cyclonedx-python-lib","label":"cyclonedx-python-lib","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["Apache-2.0"],"versions":["10.0.1"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:defusedxml","slug":"defusedxml-fab5db42","identity":"pypi:defusedxml","label":"defusedxml","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["non-standard"],"versions":["0.7.1"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:fqdn","slug":"fqdn-2616214a","identity":"pypi:fqdn","label":"fqdn","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["non-standard"],"versions":["1.5.1"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:isoduration","slug":"isoduration-e8f86ac8","identity":"pypi:isoduration","label":"isoduration","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["ISC"],"versions":["20.11.0"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:jsonpointer","slug":"jsonpointer-a61b5f8f","identity":"pypi:jsonpointer","label":"jsonpointer","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["non-standard"],"versions":["3.0.0"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:jsonschema","slug":"jsonschema-df23f5cd","identity":"pypi:jsonschema","label":"jsonschema","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["MIT"],"versions":["4.23.0"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:jsonschema-specifications","slug":"jsonschema-specifications-5d87863a","identity":"pypi:jsonschema-specifications","label":"jsonschema-specifications","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["MIT"],"versions":["2025.4.1"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:license-expression","slug":"license-expression-66cbb677","identity":"pypi:license-expression","label":"license-expression","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["Apache-2.0"],"versions":["30.4.1"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:packageurl-python","slug":"packageurl-python-dc3afccd","identity":"pypi:packageurl-python","label":"packageurl-python","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["MIT"],"versions":["0.16.0"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:packaging","slug":"packaging-78ee1f47","identity":"pypi:packaging","label":"packaging","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["Apache-2.0 OR BSD-2-Clause","non-standard"],"versions":["25.0"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:pip-requirements-parser","slug":"pip-requirements-parser-3a4c3c44","identity":"pypi:pip-requirements-parser","label":"pip-requirements-parser","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["MIT"],"versions":["32.0.1"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:py-serializable","slug":"py-serializable-cebfca90","identity":"pypi:py-serializable","label":"py-serializable","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["Apache-2.0"],"versions":["2.0.0"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:pyparsing","slug":"pyparsing-a28b9b62","identity":"pypi:pyparsing","label":"pyparsing","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["MIT"],"versions":["3.2.3"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:python-dateutil","slug":"python-dateutil-8eac96b7","identity":"pypi:python-dateutil","label":"python-dateutil","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["non-standard"],"versions":["2.9.0.post0"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:referencing","slug":"referencing-b8d98ce1","identity":"pypi:referencing","label":"referencing","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["MIT"],"versions":["0.36.2"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:rfc3339-validator","slug":"rfc3339-validator-433f6951","identity":"pypi:rfc3339-validator","label":"rfc3339-validator","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["MIT"],"versions":["0.1.4"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:rfc3987","slug":"rfc3987-a4373505","identity":"pypi:rfc3987","label":"rfc3987","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["non-standard"],"versions":["1.3.8"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:rpds-py","slug":"rpds-py-67c64be8","identity":"pypi:rpds-py","label":"rpds-py","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["MIT"],"versions":["0.25.0"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:six","slug":"six-3c3888bd","identity":"pypi:six","label":"six","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["MIT"],"versions":["1.17.0"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:sortedcontainers","slug":"sortedcontainers-9601b229","identity":"pypi:sortedcontainers","label":"sortedcontainers","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["Apache-2.0"],"versions":["2.4.0"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:tomli","slug":"tomli-e09082bd","identity":"pypi:tomli","label":"tomli","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["MIT"],"versions":["2.2.1"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:types-python-dateutil","slug":"types-python-dateutil-7c72d321","identity":"pypi:types-python-dateutil","label":"types-python-dateutil","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["Apache-2.0"],"versions":["2.9.0.20241206"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:typing-extensions","slug":"typing-extensions-87d153eb","identity":"pypi:typing-extensions","label":"typing-extensions","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["PSF-2.0","non-standard"],"versions":["4.13.2"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:uri-template","slug":"uri-template-04c43560","identity":"pypi:uri-template","label":"uri-template","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["MIT"],"versions":["1.3.0"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]},{"id":"package:pypi:webcolors","slug":"webcolors-380e4f6b","identity":"pypi:webcolors","label":"webcolors","aiRelevant":false,"provider":null,"advisoryCount":0,"licenseExpressions":["BSD-3-Clause"],"versions":["24.11.1"],"dossier":false,"occurrenceCount":1,"directOccurrenceCount":0,"evidenceFiles":["sbom.JSON"]}],"vulnerabilities":[{"id":"GHSA-65pc-fj4g-8rjx","slug":"ghsa-65pc-fj4g-8rjx-9fe9e88a","dossier":true,"summary":"Internationalized Domain Names in Applications (IDNA): Specially crafted inputs to idna.encode() can bypass CVE-2024-3651 fix","aliases":["CVE-2026-45409","PYSEC-2026-215"],"sourceIds":["GHSA-65pc-fj4g-8rjx","PYSEC-2026-215"],"published":"2026-05-19T14:34:32Z","modified":"2026-07-08T17:45:15.021597323Z","checkedAt":"2026-07-20T14:37:29.537Z","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"},{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N"}],"references":[{"type":"ADVISORY","url":"https://github.com/kjd/idna/security/advisories/GHSA-65pc-fj4g-8rjx"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-45409"},{"type":"PACKAGE","url":"https://github.com/kjd/idna"},{"type":"WEB","url":"https://github.com/pypa/advisory-database/tree/main/vulns/idna/PYSEC-2026-215.yaml"}],"versionKeys":["pypi:idna@3.10","pypi:idna@3.11","pypi:idna@3.7"],"packageCount":1,"repositoryCount":17},{"id":"GHSA-vfmq-68hx-4jfw","slug":"ghsa-vfmq-68hx-4jfw-7287cb04","dossier":false,"summary":"lxml: Default configuration of iterparse() and ETCompatXMLParser() allows XXE to local files","aliases":["CVE-2026-41066","PYSEC-2026-87"],"sourceIds":["GHSA-vfmq-68hx-4jfw","PYSEC-2026-87"],"published":"2026-04-21T20:38:44Z","modified":"2026-06-06T01:15:07.932706387Z","checkedAt":"2026-07-20T14:37:29.537Z","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"}],"references":[{"type":"ADVISORY","url":"https://github.com/lxml/lxml/security/advisories/GHSA-vfmq-68hx-4jfw"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-41066"},{"type":"REPORT","url":"https://bugs.launchpad.net/lxml/+bug/2146291"},{"type":"PACKAGE","url":"https://github.com/lxml/lxml"},{"type":"WEB","url":"https://github.com/lxml/lxml/releases/tag/lxml-6.1.0"},{"type":"WEB","url":"https://github.com/pypa/advisory-database/tree/main/vulns/lxml/PYSEC-2026-87.yaml"}],"versionKeys":["pypi:lxml@5.3.0","pypi:lxml@5.4.0","pypi:lxml@6.0.2"],"packageCount":1,"repositoryCount":5}]}}
