Source: konflux¶
The konflux push source allows the loading of content from local JSON files
organized by advisory. This source is designed for use with Konflux-generated
advisory metadata and does not require network access or external API calls.
Supported content types:
RPMs
Advisories
The source is designed to be extensible and can support additional content types (such as modules, container images, etc.) in the future as needed.
konflux source URLs¶
The base form of a konflux source URL is:
konflux:base-directory?advisories=RHXA-XXXX:0001[,RHXA-XXXX:0002[,...]]
For example, referencing a single advisory would look like:
konflux:/path/to/konflux/data?advisories=RHSA-2020:0509
Multiple advisories can be specified with a comma-separated list:
konflux:/path/to/konflux/data?advisories=RHSA-2020:0509,RHSA-2020:0510
The base directory should contain subdirectories named after each advisory ID. Each advisory subdirectory must contain:
advisory_cdn_metadata.json- Advisory metadata (title, severity, references, packages, etc.)advisory_cdn_filelist.json- RPM file list with checksums, signing keys, and repository destinations
Directory structure¶
Example directory structure:
/path/to/konflux/data/
├── RHSA-2020:0509/
│ ├── advisory_cdn_metadata.json
│ └── advisory_cdn_filelist.json
└── RHSA-2020:0510/
├── advisory_cdn_metadata.json
└── advisory_cdn_filelist.json
File format¶
advisory_cdn_metadata.json
This file contains advisory metadata in the standard Errata Tool format, including:
Advisory ID, title, description, severity
Package list with checksums
References (CVEs, Bugzilla links, etc.)
Release information
advisory_cdn_filelist.json
This file contains build and RPM information:
{
"build-nvr": {
"rpms": {
"rpm-filename.rpm": ["repo1", "repo2", ...]
},
"checksums": {
"md5": {
"rpm-filename.rpm": "checksum-value"
},
"sha256": {
"rpm-filename.rpm": "checksum-value"
}
},
"sig_key": "signing-key-id"
}
}
Differences from ErrataSource¶
Unlike the ErrataSource, the KonfluxSource:
Reads from local JSON files rather than querying the Errata API
Does not require Koji integration
Does not currently support filtering by architecture (this use case may be supported in the future)
Currently produces RPMs and advisories (additional content types such as modules and container images can be supported in the future)
RPM push items have
src=None(no local RPM files, only metadata)
Python API reference¶
- class pushsource.KonfluxSource(url, advisories, threads=4, timeout=3600)[source]¶
Source for push items loaded from Konflux JSON files.
This source reads advisory metadata from local JSON files organized in subdirectories per advisory, and generates push items for RPMs and erratum metadata.
The source is designed to be extensible and can support additional content types (such as modules, container images, etc.) in the future.
Note: This source does not currently support filtering by architecture, though such filtering could be added if needed.
- __init__(url, advisories, threads=4, timeout=3600)[source]¶
Create a new Konflux source.
- Parameters:
url (str) – Base directory containing advisory subdirectories. Each subdirectory should be named after an advisory ID and contain advisory_cdn_metadata.json and advisory_cdn_filelist.json files.
advisories (str, list[str]) – Advisory ID(s) to process. Can be a single string or list. Multiple IDs can be comma-separated.
threads (int) – Number of threads for concurrent processing.
timeout (int) – Timeout in seconds for operations.