Skip to content

Reference

Data Model

The ossiq domain model is located in the ossiq.domain module. It defines the core entities used for analysis.

Project

A software project being analyzed. Each Project contains a name and lists of its direct production and development dependencies.

For full details, see ossiq/domain/project.py.

Package

A dependency of a Project. A Package is defined by its name and contains a list of all its available versions.

For full details, see ossiq/domain/package.py.

Version Models

The version-related models capture details from different sources and are aggregated into a single Version object.

The primary Version object aggregates package_data (from a package registry) and repository_data (from a source code repository). Other data classes like Commit and User provide granular detail about the source code history.

For a complete definition of all version-related data classes, see ossiq/domain/version.py.


System Behavior

Dependency Resolution

  • Dependency Graph: The system operates on a flat list of dependencies resolved from a lockfile (e.g., package-lock.json). It does not build or traverse a dependency graph.
  • Transitive Dependencies: Transitive dependency resolution is not performed. The tool relies on the dependency resolution of the target project's native package manager (e.g., npm, pip).

Data Provenance

Package metadata is sourced from ecosystem-specific repositories (e.g., npm registry, PyPI). This is handled by a set of adapters in the ossiq.adapters module (e.g., ossiq.adapters.api_npm).

Analysis Output

A single analysis run produces a ProjectOverviewSummary object.

Class: ossiq.service.project.ProjectOverviewSummary

Description: Contains an analysis of each dependency, including version lags, time lags, and associated vulnerabilities.


Warning

Everything below is vibe-coded draft what needs to be described. Since there are quite a few halluzinations, list might be incorrect.

Inputs

  • What OSS IQ consumes
  • Software Ecosystem Analysis
  • Manifest Files
  • Lockfiles
  • SBOM Formats (SPDX, CycloneDX, etc.)
  • External Data Sources (enumerated, no justification)
  • Configuration Parameters
  • Policy Definitions

Outputs

  • What OSS IQ produces
  • OSS IQ Score (overall)
  • Dimension Scores
  • Security
  • Maintenance Activity Signals
  • Supply Chain Exposure
  • Per-Dependency Scores
  • Risk Aggregation
  • Longitudinal Analysis (if applicable)
  • Output Formats (JSON, SARIF, CLI, etc.)

Scoring Model

  • Formal definitions, no motivation
  • Score Dimensions
  • Signal Normalization
  • Weighted Scoring Models
  • Score Ranges & Interpretation Bounds
  • Risk Propagation (transitive impact)
  • Missing Data Bias Handling

Metric Operationalization

Atomic, inspectable units

For each metric:

  • Name
  • Metric Validity & Scope
  • Input Data
  • Output Type
  • Scope (dependency / project)
  • Stability (stable / experimental)

Structural Dependency Risk

  • How structure is interpreted
  • Graph Directionality
  • Depth Handling
  • Cycles
  • Optional / Dev Dependencies
  • Runtime vs Build Dependencies
  • Workspace / Monorepo Handling

Policy Enforcement

  • Deterministic behavior
  • Policy Syntax
  • Thresholds
  • Gates
  • Fail / Warn / Inform Outcomes
  • CI Exit Codes

Versioning & Stability Guarantees

What users can rely on

  • Score Versioning
  • Metric Deprecation
  • Backward Compatibility
  • Reproducible Analysis

CLI & API Reference

Pure interface definition

  • CLI Commands
  • Flags & Options
  • Environment Variables
  • API Endpoints (if applicable)
  • Response Schemas