712 lines
15 KiB
JSON
712 lines
15 KiB
JSON
{
|
|
"$defs": {
|
|
"AptConfigSnapshot": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/$defs/RoleCommon"
|
|
},
|
|
{
|
|
"properties": {
|
|
"role_name": {
|
|
"const": "apt_config"
|
|
}
|
|
},
|
|
"type": "object"
|
|
}
|
|
],
|
|
"unevaluatedProperties": false
|
|
},
|
|
"DnfConfigSnapshot": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/$defs/RoleCommon"
|
|
},
|
|
{
|
|
"properties": {
|
|
"role_name": {
|
|
"const": "dnf_config"
|
|
}
|
|
},
|
|
"type": "object"
|
|
}
|
|
],
|
|
"unevaluatedProperties": false
|
|
},
|
|
"EtcCustomSnapshot": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/$defs/RoleCommon"
|
|
},
|
|
{
|
|
"properties": {
|
|
"role_name": {
|
|
"const": "etc_custom"
|
|
}
|
|
},
|
|
"type": "object"
|
|
}
|
|
],
|
|
"unevaluatedProperties": false
|
|
},
|
|
"ExcludedFile": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"path": {
|
|
"minLength": 1,
|
|
"pattern": "^/.*",
|
|
"type": "string"
|
|
},
|
|
"reason": {
|
|
"enum": [
|
|
"user_excluded",
|
|
"unreadable",
|
|
"backup_file",
|
|
"log_file",
|
|
"denied_path",
|
|
"too_large",
|
|
"not_regular_file",
|
|
"not_symlink",
|
|
"binary_like",
|
|
"sensitive_content"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"path",
|
|
"reason"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ExtraPathsSnapshot": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/$defs/RoleCommon"
|
|
},
|
|
{
|
|
"properties": {
|
|
"exclude_patterns": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"include_patterns": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"role_name": {
|
|
"const": "extra_paths"
|
|
}
|
|
},
|
|
"required": [
|
|
"include_patterns",
|
|
"exclude_patterns"
|
|
],
|
|
"type": "object"
|
|
}
|
|
],
|
|
"unevaluatedProperties": false
|
|
},
|
|
"InstalledPackageInstance": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"arch": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"version": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"version",
|
|
"arch"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ManagedDir": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"group": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"mode": {
|
|
"pattern": "^[0-7]{4}$",
|
|
"type": "string"
|
|
},
|
|
"owner": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"minLength": 1,
|
|
"pattern": "^/.*",
|
|
"type": "string"
|
|
},
|
|
"reason": {
|
|
"enum": [
|
|
"parent_of_managed_file",
|
|
"user_include_dir"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"path",
|
|
"owner",
|
|
"group",
|
|
"mode",
|
|
"reason"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ManagedFile": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"group": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"mode": {
|
|
"pattern": "^[0-7]{4}$",
|
|
"type": "string"
|
|
},
|
|
"owner": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"minLength": 1,
|
|
"pattern": "^/.*",
|
|
"type": "string"
|
|
},
|
|
"reason": {
|
|
"enum": [
|
|
"apt_config",
|
|
"apt_keyring",
|
|
"apt_signed_by_keyring",
|
|
"apt_source",
|
|
"authorized_keys",
|
|
"cron_snippet",
|
|
"custom_specific_path",
|
|
"custom_unowned",
|
|
"dnf_config",
|
|
"logrotate_snippet",
|
|
"modified_conffile",
|
|
"modified_packaged_file",
|
|
"related_timer",
|
|
"rpm_gpg_key",
|
|
"ssh_public_key",
|
|
"system_cron",
|
|
"system_firewall",
|
|
"system_logrotate",
|
|
"system_modprobe",
|
|
"system_mounts",
|
|
"system_network",
|
|
"system_rc",
|
|
"system_security",
|
|
"system_sysctl",
|
|
"systemd_dropin",
|
|
"systemd_envfile",
|
|
"user_include",
|
|
"user_profile",
|
|
"user_shell_aliases",
|
|
"user_shell_logout",
|
|
"user_shell_rc",
|
|
"usr_local_bin_script",
|
|
"usr_local_etc_custom",
|
|
"yum_conf",
|
|
"yum_config",
|
|
"yum_repo"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"src_rel": {
|
|
"minLength": 1,
|
|
"pattern": "^[^/].*",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"path",
|
|
"src_rel",
|
|
"owner",
|
|
"group",
|
|
"mode",
|
|
"reason"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ManagedLink": {
|
|
"additionalProperties": false,
|
|
"type": "object",
|
|
"properties": {
|
|
"path": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"pattern": "^/.*"
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"reason": {
|
|
"type": "string",
|
|
"enum": [
|
|
"enabled_symlink"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"path",
|
|
"target",
|
|
"reason"
|
|
]
|
|
},
|
|
"ObservedVia": {
|
|
"oneOf": [
|
|
{
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"kind": {
|
|
"const": "user_installed"
|
|
}
|
|
},
|
|
"required": [
|
|
"kind"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"kind": {
|
|
"const": "systemd_unit"
|
|
},
|
|
"ref": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"kind",
|
|
"ref"
|
|
],
|
|
"type": "object"
|
|
},
|
|
{
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"kind": {
|
|
"const": "package_role"
|
|
},
|
|
"ref": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"kind",
|
|
"ref"
|
|
],
|
|
"type": "object"
|
|
}
|
|
]
|
|
},
|
|
"PackageInventoryEntry": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"arches": {
|
|
"items": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"installations": {
|
|
"items": {
|
|
"$ref": "#/$defs/InstalledPackageInstance"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"observed_via": {
|
|
"items": {
|
|
"$ref": "#/$defs/ObservedVia"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"roles": {
|
|
"items": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"version": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"version",
|
|
"arches",
|
|
"installations",
|
|
"observed_via",
|
|
"roles"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"PackageSnapshot": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/$defs/RoleCommon"
|
|
},
|
|
{
|
|
"properties": {
|
|
"package": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"package"
|
|
],
|
|
"type": "object"
|
|
}
|
|
],
|
|
"unevaluatedProperties": false
|
|
},
|
|
"RoleCommon": {
|
|
"properties": {
|
|
"excluded": {
|
|
"items": {
|
|
"$ref": "#/$defs/ExcludedFile"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"managed_dirs": {
|
|
"items": {
|
|
"$ref": "#/$defs/ManagedDir"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"managed_files": {
|
|
"items": {
|
|
"$ref": "#/$defs/ManagedFile"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"managed_links": {
|
|
"items": {
|
|
"$ref": "#/$defs/ManagedLink"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"notes": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"role_name": {
|
|
"minLength": 1,
|
|
"pattern": "^[A-Za-z0-9_]+$",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"role_name",
|
|
"managed_dirs",
|
|
"managed_files",
|
|
"excluded",
|
|
"notes"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ServiceSnapshot": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/$defs/RoleCommon"
|
|
},
|
|
{
|
|
"properties": {
|
|
"active_state": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"condition_result": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"packages": {
|
|
"items": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"role_name": {
|
|
"minLength": 1,
|
|
"pattern": "^[a-z_][a-z0-9_]*$",
|
|
"type": "string"
|
|
},
|
|
"sub_state": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"unit": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"unit_file_state": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"unit",
|
|
"packages",
|
|
"active_state",
|
|
"sub_state",
|
|
"unit_file_state",
|
|
"condition_result"
|
|
],
|
|
"type": "object"
|
|
}
|
|
],
|
|
"unevaluatedProperties": false
|
|
},
|
|
"UserEntry": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"gecos": {
|
|
"type": "string"
|
|
},
|
|
"gid": {
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"home": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"primary_group": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"shell": {
|
|
"type": "string"
|
|
},
|
|
"supplementary_groups": {
|
|
"items": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"uid": {
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"uid",
|
|
"gid",
|
|
"gecos",
|
|
"home",
|
|
"shell",
|
|
"primary_group",
|
|
"supplementary_groups"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"UsersSnapshot": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/$defs/RoleCommon"
|
|
},
|
|
{
|
|
"properties": {
|
|
"role_name": {
|
|
"const": "users"
|
|
},
|
|
"users": {
|
|
"items": {
|
|
"$ref": "#/$defs/UserEntry"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"users"
|
|
],
|
|
"type": "object"
|
|
}
|
|
],
|
|
"unevaluatedProperties": false
|
|
},
|
|
"UsrLocalCustomSnapshot": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/$defs/RoleCommon"
|
|
},
|
|
{
|
|
"properties": {
|
|
"role_name": {
|
|
"const": "usr_local_custom"
|
|
}
|
|
},
|
|
"type": "object"
|
|
}
|
|
],
|
|
"unevaluatedProperties": false
|
|
}
|
|
},
|
|
"$id": "https://enroll.sh/schema/state.schema.json",
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"enroll": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"harvest_time": {
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"version": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"version",
|
|
"harvest_time"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"host": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"hostname": {
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"os": {
|
|
"enum": [
|
|
"debian",
|
|
"redhat",
|
|
"unknown"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"os_release": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
"pkg_backend": {
|
|
"enum": [
|
|
"dpkg",
|
|
"rpm"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"hostname",
|
|
"os",
|
|
"pkg_backend",
|
|
"os_release"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"inventory": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"packages": {
|
|
"additionalProperties": {
|
|
"$ref": "#/$defs/PackageInventoryEntry"
|
|
},
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"packages"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"roles": {
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"apt_config": {
|
|
"$ref": "#/$defs/AptConfigSnapshot"
|
|
},
|
|
"dnf_config": {
|
|
"$ref": "#/$defs/DnfConfigSnapshot"
|
|
},
|
|
"etc_custom": {
|
|
"$ref": "#/$defs/EtcCustomSnapshot"
|
|
},
|
|
"extra_paths": {
|
|
"$ref": "#/$defs/ExtraPathsSnapshot"
|
|
},
|
|
"packages": {
|
|
"items": {
|
|
"$ref": "#/$defs/PackageSnapshot"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"services": {
|
|
"items": {
|
|
"$ref": "#/$defs/ServiceSnapshot"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"users": {
|
|
"$ref": "#/$defs/UsersSnapshot"
|
|
},
|
|
"usr_local_custom": {
|
|
"$ref": "#/$defs/UsrLocalCustomSnapshot"
|
|
}
|
|
},
|
|
"required": [
|
|
"users",
|
|
"services",
|
|
"packages",
|
|
"apt_config",
|
|
"dnf_config",
|
|
"etc_custom",
|
|
"usr_local_custom",
|
|
"extra_paths"
|
|
],
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"enroll",
|
|
"host",
|
|
"inventory",
|
|
"roles"
|
|
],
|
|
"title": "Enroll harvest state.json schema (latest)",
|
|
"type": "object"
|
|
}
|