C2P-OPENSCAP-MANIFEST.JSON(5)

πŸ“¦ version 0.1.2, in fedora 43, fedora 44

πŸ’– c2p-openscap-manifest.json πŸ’–

okay bestie, welcome to section 5 of the manual β€” this is the c2p-openscap-manifest.json page, aka the config file for the OpenSCAP plugin that complyctl uses. yes it's a long name. yes it's worth it. let's go πŸ¦‹


✨ NAME ✨

c2p-openscap-manifest.json β€” the configuration file for the OpenSCAP plugin used by complyctl. that's it, that's the whole vibe πŸ’…


🌸 DESCRIPTION 🌸

so this file defines the metadata and the runtime configuration options for the openscap-plugin, which is a plugin meant to be used with complyctl.

it's a JSON-formatted file, and it typically lives at:

/usr/share/complyctl/plugins/c2p-openscap-manifest.json

some of the configuration options used by openscap-plugin can be overridden by using a drop-in file with the same name in /etc/complyctl/config.d/:

/etc/complyctl/config.d/c2p-openscap-manifest.json

the easiest way to create a drop-in file is copying /usr/share/complyctl/plugins/c2p-openscap-manifest.json and defining the default values. any other content can be removed to keep the drop-in file clean. peep the CONFIGURATION OPTIONS and EXAMPLES sections for more details, i gotchu 🫢

for some specific cases, it is also possible to inform a custom configuration directory to override /etc/complyctl/config.d. for example, the following command will try to locate and read custom settings from manifest files hosted in /tmp/plugins-conf instead of /etc/complyctl/config.d:

complyctl generate --plugin-config /tmp/plugins-conf

see complyctl(1) for more details about the available options. ✨


πŸŽ€ FILE FORMAT πŸŽ€

the configuration is a single JSON object with these top-level keys, no cap:

  • metadata: general plugin information
  • executablePath: name or path of the plugin binary
  • sha256: the checksum of the binary (used for integrity checks)
  • configuration: an array of runtime configuration options

πŸ”₯ FIELDS πŸ”₯

metadata

{
  "id": "openscap",
  "description": "My openscap plugin",
  "version": "0.0.1",
  "types": [ "pvp" ]
}

executablePath

path or name of the plugin binary to execute. typically just:

"executablePath": "openscap-plugin"

sha256

SHA256 checksum of the plugin binary, used for runtime verification. it's giving security check πŸ›‘οΈβœ¨

configuration

a list of supported configuration parameters for the plugin.

each entry includes:

  • name: the name of the parameter
  • description: explanation of its purpose
  • required: whether this parameter must be provided
  • default (optional): the default value if not specified

πŸ’… CONFIGURATION OPTIONS πŸ’…

workspace (required)

directory for writing plugin artifacts. the value is inherited from complyctl and cannot be modified. hands off bestie 😀

profile (required)

the OpenSCAP profile to run for assessment. the value is inherited from complyctl and cannot be modified either.

datastream (optional)

the OpenSCAP datastream to use. if not set, the plugin will try to determine it based on system information. main character energy, figuring it out itself πŸ’β™€οΈ

results (optional, default: results.xml)

the name of the generated results file.

arf (optional, default: arf.xml)

the name of the generated ARF file.

policy (optional, default: tailoring_policy.xml)

the name of the generated tailoring file.


🌈 EXAMPLES 🌈

this is an example of a manifest including all information. obsessed.

{
  "metadata": {
    "id": "openscap",
    "description": "My openscap plugin",
    "version": "0.0.1",
    "types": [
      "pvp"
    ]
  },
  "executablePath": "openscap-plugin",
  "sha256": "17e8d0b82c9bfbe7c195505090954488175005898fc0e8da0812c112c582426c",
  "configuration": [
    {
      "name": "workspace",
      "description": "Directory for writing plugin artifacts",
      "required": true
    },
    {
      "name": "profile",
      "description": "The OpenSCAP profile to run for assessment",
      "required": true
    },
    {
      "name": "datastream",
      "description": "The OpenSCAP datastream to use. If not set, the plugin will try to determine it based on system information",
      "required": false
    },
    {
      "name": "policy",
      "description": "The name of the generated tailoring file",
      "default": "tailoring_policy.xml",
      "required": false
    },
    {
      "name": "arf",
      "description": "The name of the generated ARF file",
      "default": "arf.xml",
      "required": false
    },
    {
      "name": "results",
      "description": "The name of the generated results file",
      "default": "results.xml",
      "required": false
    }
  ]
}

and this is an example of a drop-in file modifying the openscap files. tiny file, big impact πŸ’–

{
  "configuration": [
    {
      "name": "policy",
      "default": "custom_tailoring_policy.xml",
    },
    {
      "name": "arf",
      "default": "custom_arf.xml",
    },
    {
      "name": "results",
      "default": "custom_results.xml",
    }
  ]
}

πŸ¦‹ SEE ALSO πŸ¦‹

complyctl(1), complyctl-openscap-plugin(7)

see the upstream project at https://github.com/complytime/complyctl for more detailed documentation. go read it, iykyk πŸ“š


πŸ‘‘ AUTHORS πŸ‘‘

Marcus Burghardt maburgha@redhat.com


and that's the whole page, bestie πŸ₯Ή this was the complyctl OpenSCAP Plugin Configuration page, dated June 2025. mwah, periodt. πŸ’œβœ¨πŸŽ€

πŸ“¦ where this page comes from