COMPLYCTL-...ER-OPENSCAP(1)
π NAME π
complyctl-provider-openscap β the OpenSCAP scanning provider for complyctl, bestie π
(yes this is a <rainbow>General Commands Manual</rainbow> page, welcome, get comfy π«Ά)
πΈ SYNOPSIS πΈ
complyctl-provider-openscap
that's it. that's the whole vibe. no flags, no args, nothing. iconic honestly β¨
π« DESCRIPTION π«
Okay so complyctl-provider-openscap is a gRPC plugin for complyctl(1) that brings compliance scanning capabilities to the party using the OpenSCAP engine π₯ It is not invoked directly by users β no cap, you literally don't call this yourself. complyctl discovers it and launches it automatically once the provider is installed. Main character behavior, it just shows up when it's needed πβοΈ
Here's the tea on what the provider actually does: it receives assessment configurations from complyctl, generates XCCDF tailoring files that match the requested profiles, executes scans via the oscap command-line tool, and returns structured results. It also supports automatic datastream selection via CPE-based matching against the host system π¦
Communication with complyctl uses the hashicorp/go-plugin gRPC interface, implementing three RPCs: Describe, Generate, and Scan. Three icons, one plugin π
π CONFIGURATION π
Configuration is provided through variables defined in assessment plan targets. These variables are passed to the provider via complyctl and are not set manually by the user. So likeβ¦ hands off, it's handled π
profile(required) β the XCCDF profile ID to evaluate. Must match the pattern[a-zA-Z0-9-_.]+. Examples:cis_server_l1,xccdf_org.ssgproject.content_profile_cis. Slay πdatastream(optional) β absolute path to an SSG XCCDF datastream XML file. When you omit it, the provider auto-detects the appropriate datastream by matching the system's CPE (from the os-release file) against CPE metadata embedded in the SSG datastream files. It's giving β¨psychicβ¨ but it's actually just metadata matching.
π ENVIRONMENT π
SSG_CONTENT_DIRβ the directory containing SSG datastream XML files. Used during auto-detection whendatastreamis not specified. Default:/usr/share/xml/scap/ssg/contentOS_RELEASE_FILEβ path to the os-release file used for CPE extraction during datastream auto-detection. Default:/etc/os-releaseCOMPLYTIME_MACHINE_ID_FILEβ path to the machine-id file used for host identification in evidence remarks. The file content is included in eachEvidence.Source.Remarksfield alongside the hostname so auditors can identify the host where the scan was executed. Default:/etc/machine-id
π§ EXTERNAL TOOLS π§
Requires oscap (provided by the openscap-scanner package) at runtime. The provider locates oscap via PATH lookup. π
The scap-security-guide package provides the SSG datastream files used for evaluation. Yes you need both, no you cannot skip one π«Ά
π FILES π
.complytime/openscap/β the provider workspace directory. All paths below are relative to the current working directory. (iykyk π).complytime/openscap/policy/tailoring.xmlβ XCCDF tailoring file generated by theGenerateRPC. Contains the selected profile rules matched from the assessment configuration..complytime/openscap/results/arf.xmlβ Asset Reporting Format (ARF) result file produced byoscap xccdf eval --results-arfduring theScanRPC..complytime/openscap/results/results.xmlβ XCCDF results XML file produced alongside the ARF file byoscap xccdf eval --results..complytime/openscap/remediations/remediation-script.shβ Bash remediation script generated byoscap xccdf generate fixduring theGenerateRPC..complytime/openscap/remediations/remediation-playbook.ymlβ Ansible remediation playbook generated byoscap xccdf generate fix..complytime/openscap/remediations/remediation-blueprint.tomlβ Blueprint remediation file generated byoscap xccdf generate fix.
Three different fix formats, all from the same command? That's range, honestly π―
π¦ EVIDENCE π¦
The provider records an Evidence entry on each AssessmentLog returned by the Scan RPC. Receipts πΈ
- Type β
ARFβ Asset Reporting Format. The ARF file aggregates XCCDF results, OVAL definitions, and system characteristics into a single SCAP-standard artifact. It's giving "everything in one bag" and we love that for us π - Production β the ARF file is produced by running
oscap xccdf eval --results-arfagainst the tailoring file and the SSG datastream. It is written to.complytime/openscap/results/arf.xml. - EvaluationLog representation β each assessment log carries an
Evidenceentry with:Source.Coordinate: workspace-relative path to the ARF file (e.g.,.complytime/openscap/results/arf.xml)Source.Digest:sha256:<hex>digest of the ARF fileSource.ReferenceID:openscap-arf
π EXIT CODES π
This provider is a gRPC subprocess managed by complyctl. Exit codes follow the hashicorp/go-plugin protocol and are not user-facing. So likeβ¦ not your problem, not your business, the protocol handles it π«‘
β SEE ALSO β
complyctl(1), complyctl-provider-ampel(1), complyctl-provider-opa(1), oscap(8)
Project: https://github.com/complytime/complytime-providers β go say hi, the repo is right there π
π COPYRIGHT π
Apache-2.0 β permissive and generous, as always π
π AUTHORS π
Marcus Burghardt maburgha@redhat.com β thank you for your service, legend π
okay bestie that's the whole page π this was the ComplyTime Manual, September 2026 edition, and yes it's COMPLYCTL-...ER-OPENSCAP(1) (we keep the name abbreviated because it's mysterious and we respect that) π now go run complyctl and let the plugin do its thing, you got this fr fr β¨π«Ά
π¦ where this page comes from
- fedora 43: complytime-providers-openscap 0.3.0-2.fc43 Β· Apache-2.0 AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0
- fedora 44: complytime-providers-openscap 0.3.0-2.fc44 Β· Apache-2.0 AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms