Koji
Connect a Koji XML-RPC hub to import package/build inventory with links to Koji web pages.
Discovery does not protect Koji builds
The Sensor does not identify Koji builds. Discovery neither instruments them nor associates Sensor telemetry; builds remain unobserved and cannot contribute to Full or Partial protection.
Object Mapping
| Koji object | Team Server object |
|---|---|
| Package | Pipeline |
| Build with no binary RPM architecture | One build |
| Build with binary RPM architectures | One build per unique architecture |
Source and noarch RPMs add no architecture records. For example, x86_64, aarch64, noarch, and src together produce two builds: x86_64 and aarch64.
Team Server queries builds created within Build Discovery Hours, configured under Administration > Pipeline Settings. The default is 1 hour.
Prerequisites
- A Koji hub URL, commonly
https://koji.example.com/kojihub - Network access from Team Server to the hub
- Anonymous API access, or a Koji client certificate and issuing CA certificate
- Operator or Administrator access in Team Server
Confirm hub access and certificate authentication with its administrator.
For private/reserved hub addresses, allow only the required network in settings.http.allowed_networks. Supply its CA on the integration, not in global settings.http.ca_certificates.
Credentials and Permissions
Permit read-only getAPIVersion, listPackages, listBuilds, and listRPMs. There are no PAT scopes or built-in write/admin requirements. Confirm any additional custom hub policy requirements with its administrator.
Anonymous
Use anonymous access only when the hub permits all four methods without authentication. Team Server tests the connection with getAPIVersion.
Client Certificate
For authenticated access, obtain PEMs for a dedicated read-only identity:
- Client Certificate: a single PEM containing the client certificate chain and its private key;
- CA Certificate: the PEM certificate or chain that issued the Koji hub’s TLS certificate.
Protect the private-key PEM. Team Server uses mutual TLS and Koji sslLogin.
Add the Integration
- Open Integrations > Koji in Team Server.
- Select Create.
- Enter the hub URL, including
/kojihubfor a standard installation. - Select Anonymous or Client Certificate.
- For client-certificate authentication, paste both PEM values.
- Select Test.
- After the test succeeds, select Save.
Browser links replace /kojihub with /koji; verify links for nonstandard hub paths.
Schedule Discovery
Keep both jobs enabled in production.yaml:
scheduler:
output: stdout
jobs:
koji_pipelines:
run: "koji_sync mode:pipelines trigger:scheduled"
schedule: "0 10 * * * * *"
koji_builds:
run: "koji_sync mode:builds trigger:scheduled"
schedule: "0 14,29,44,59 * * * * *"Pipeline discovery imports packages and marks packages no longer returned by Koji as retired. Build discovery imports recent builds for known package pipelines.
Manage Sync and Deletion
Use Start Sync for an immediate run. See sync controls and deletion.
Verify
- Wait for both discovery jobs, or run the corresponding scheduler tasks manually.
- Open Pipelines and confirm Koji packages appear.
- Open a package pipeline and confirm its recent builds and Koji links.
- Review Team Server application logs for Koji connectivity, authentication, or malformed-response errors.
Troubleshooting
| Symptom | Check |
|---|---|
| Test fails for an internal hub | Allow the exact network in settings.http.allowed_networks and confirm DNS from Team Server |
| Client-certificate test fails | Confirm the client field contains both its certificate chain and private key, and that the CA PEM signs the hub certificate |
| Packages do not appear | Confirm listPackages access and the koji_sync mode:pipelines trigger:scheduled schedule |
| Recent builds do not appear | Confirm listBuilds and listRPMs access, the build state in Koji, the build-discovery schedule, and Build Discovery Hours |
| Links open the wrong page | Use a standard hub URL ending in /kojihub, or confirm the custom hub and web UI layout with Endura |