inspec 1.51.15 → 1.51.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (404) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +101 -101
  3. data/CHANGELOG.md +2922 -2915
  4. data/Gemfile +53 -53
  5. data/LICENSE +14 -14
  6. data/MAINTAINERS.md +31 -31
  7. data/MAINTAINERS.toml +47 -47
  8. data/README.md +419 -419
  9. data/Rakefile +167 -167
  10. data/bin/inspec +12 -12
  11. data/docs/.gitignore +2 -2
  12. data/docs/README.md +40 -40
  13. data/docs/dsl_inspec.md +258 -258
  14. data/docs/dsl_resource.md +93 -93
  15. data/docs/glossary.md +99 -99
  16. data/docs/habitat.md +191 -191
  17. data/docs/inspec_and_friends.md +107 -107
  18. data/docs/matchers.md +165 -165
  19. data/docs/migration.md +293 -293
  20. data/docs/plugin_kitchen_inspec.md +49 -49
  21. data/docs/profiles.md +370 -370
  22. data/docs/resources/aide_conf.md.erb +78 -78
  23. data/docs/resources/apache.md.erb +66 -66
  24. data/docs/resources/apache_conf.md.erb +67 -67
  25. data/docs/resources/apt.md.erb +70 -70
  26. data/docs/resources/audit_policy.md.erb +46 -46
  27. data/docs/resources/auditd.md.erb +78 -78
  28. data/docs/resources/auditd_conf.md.erb +68 -68
  29. data/docs/resources/auditd_rules.md.erb +116 -116
  30. data/docs/resources/bash.md.erb +74 -74
  31. data/docs/resources/bond.md.erb +89 -89
  32. data/docs/resources/bridge.md.erb +54 -54
  33. data/docs/resources/bsd_service.md.erb +65 -65
  34. data/docs/resources/command.md.erb +137 -137
  35. data/docs/resources/cpan.md.erb +77 -77
  36. data/docs/resources/cran.md.erb +63 -63
  37. data/docs/resources/crontab.md.erb +87 -87
  38. data/docs/resources/csv.md.erb +53 -53
  39. data/docs/resources/dh_params.md.erb +216 -216
  40. data/docs/resources/directory.md.erb +28 -28
  41. data/docs/resources/docker.md.erb +163 -163
  42. data/docs/resources/docker_container.md.erb +99 -99
  43. data/docs/resources/docker_image.md.erb +93 -93
  44. data/docs/resources/docker_service.md.erb +113 -113
  45. data/docs/resources/elasticsearch.md.erb +230 -230
  46. data/docs/resources/etc_fstab.md.erb +124 -124
  47. data/docs/resources/etc_group.md.erb +74 -74
  48. data/docs/resources/etc_hosts.md.erb +75 -75
  49. data/docs/resources/etc_hosts_allow.md.erb +73 -73
  50. data/docs/resources/etc_hosts_deny.md.erb +73 -73
  51. data/docs/resources/file.md.erb +512 -512
  52. data/docs/resources/filesystem.md.erb +40 -40
  53. data/docs/resources/firewalld.md.erb +105 -105
  54. data/docs/resources/gem.md.erb +78 -78
  55. data/docs/resources/group.md.erb +60 -60
  56. data/docs/resources/grub_conf.md.erb +101 -101
  57. data/docs/resources/host.md.erb +77 -77
  58. data/docs/resources/http.md.erb +104 -104
  59. data/docs/resources/iis_app.md.erb +120 -120
  60. data/docs/resources/iis_site.md.erb +132 -132
  61. data/docs/resources/inetd_conf.md.erb +95 -95
  62. data/docs/resources/ini.md.erb +72 -72
  63. data/docs/resources/interface.md.erb +55 -55
  64. data/docs/resources/iptables.md.erb +63 -63
  65. data/docs/resources/json.md.erb +61 -61
  66. data/docs/resources/kernel_module.md.erb +106 -106
  67. data/docs/resources/kernel_parameter.md.erb +58 -58
  68. data/docs/resources/key_rsa.md.erb +73 -73
  69. data/docs/resources/launchd_service.md.erb +56 -56
  70. data/docs/resources/limits_conf.md.erb +66 -66
  71. data/docs/resources/login_def.md.erb +62 -62
  72. data/docs/resources/mount.md.erb +68 -68
  73. data/docs/resources/mssql_session.md.erb +59 -59
  74. data/docs/resources/mysql_conf.md.erb +98 -98
  75. data/docs/resources/mysql_session.md.erb +73 -73
  76. data/docs/resources/nginx.md.erb +78 -78
  77. data/docs/resources/nginx_conf.md.erb +127 -127
  78. data/docs/resources/npm.md.erb +59 -59
  79. data/docs/resources/ntp_conf.md.erb +59 -59
  80. data/docs/resources/oneget.md.erb +52 -52
  81. data/docs/resources/oracledb_session.md.erb +51 -51
  82. data/docs/resources/os.md.erb +140 -140
  83. data/docs/resources/os_env.md.erb +77 -77
  84. data/docs/resources/package.md.erb +119 -119
  85. data/docs/resources/packages.md.erb +66 -66
  86. data/docs/resources/parse_config.md.erb +102 -102
  87. data/docs/resources/parse_config_file.md.erb +137 -137
  88. data/docs/resources/passwd.md.erb +140 -140
  89. data/docs/resources/pip.md.erb +66 -66
  90. data/docs/resources/port.md.erb +136 -136
  91. data/docs/resources/postgres_conf.md.erb +78 -78
  92. data/docs/resources/postgres_hba_conf.md.erb +92 -92
  93. data/docs/resources/postgres_ident_conf.md.erb +75 -75
  94. data/docs/resources/postgres_session.md.erb +68 -68
  95. data/docs/resources/powershell.md.erb +101 -101
  96. data/docs/resources/processes.md.erb +107 -107
  97. data/docs/resources/rabbitmq_config.md.erb +40 -40
  98. data/docs/resources/registry_key.md.erb +157 -157
  99. data/docs/resources/runit_service.md.erb +56 -56
  100. data/docs/resources/security_policy.md.erb +46 -46
  101. data/docs/resources/service.md.erb +120 -120
  102. data/docs/resources/shadow.md.erb +143 -143
  103. data/docs/resources/ssh_config.md.erb +79 -79
  104. data/docs/resources/sshd_config.md.erb +82 -82
  105. data/docs/resources/ssl.md.erb +118 -118
  106. data/docs/resources/sys_info.md.erb +41 -41
  107. data/docs/resources/systemd_service.md.erb +56 -56
  108. data/docs/resources/sysv_service.md.erb +56 -56
  109. data/docs/resources/upstart_service.md.erb +56 -56
  110. data/docs/resources/user.md.erb +139 -139
  111. data/docs/resources/users.md.erb +126 -126
  112. data/docs/resources/vbscript.md.erb +54 -54
  113. data/docs/resources/virtualization.md.erb +56 -56
  114. data/docs/resources/windows_feature.md.erb +46 -46
  115. data/docs/resources/windows_hotfix.md.erb +52 -52
  116. data/docs/resources/windows_task.md.erb +89 -89
  117. data/docs/resources/wmi.md.erb +80 -80
  118. data/docs/resources/x509_certificate.md.erb +150 -150
  119. data/docs/resources/xinetd_conf.md.erb +155 -155
  120. data/docs/resources/xml.md.erb +84 -84
  121. data/docs/resources/yaml.md.erb +68 -68
  122. data/docs/resources/yum.md.erb +97 -97
  123. data/docs/resources/zfs_dataset.md.erb +52 -52
  124. data/docs/resources/zfs_pool.md.erb +46 -46
  125. data/docs/ruby_usage.md +203 -203
  126. data/docs/shared/matcher_be.md.erb +1 -1
  127. data/docs/shared/matcher_cmp.md.erb +43 -43
  128. data/docs/shared/matcher_eq.md.erb +3 -3
  129. data/docs/shared/matcher_include.md.erb +1 -1
  130. data/docs/shared/matcher_match.md.erb +1 -1
  131. data/docs/shell.md +172 -172
  132. data/examples/README.md +8 -8
  133. data/examples/inheritance/README.md +65 -65
  134. data/examples/inheritance/controls/example.rb +14 -14
  135. data/examples/inheritance/inspec.yml +15 -15
  136. data/examples/kitchen-ansible/.kitchen.yml +25 -25
  137. data/examples/kitchen-ansible/Gemfile +19 -19
  138. data/examples/kitchen-ansible/README.md +53 -53
  139. data/examples/kitchen-ansible/files/nginx.repo +6 -6
  140. data/examples/kitchen-ansible/tasks/main.yml +16 -16
  141. data/examples/kitchen-ansible/test/integration/default/default.yml +5 -5
  142. data/examples/kitchen-ansible/test/integration/default/web_spec.rb +28 -28
  143. data/examples/kitchen-chef/.kitchen.yml +20 -20
  144. data/examples/kitchen-chef/Berksfile +3 -3
  145. data/examples/kitchen-chef/Gemfile +19 -19
  146. data/examples/kitchen-chef/README.md +27 -27
  147. data/examples/kitchen-chef/metadata.rb +7 -7
  148. data/examples/kitchen-chef/recipes/default.rb +6 -6
  149. data/examples/kitchen-chef/recipes/nginx.rb +30 -30
  150. data/examples/kitchen-chef/test/integration/default/web_spec.rb +28 -28
  151. data/examples/kitchen-puppet/.kitchen.yml +22 -22
  152. data/examples/kitchen-puppet/Gemfile +20 -20
  153. data/examples/kitchen-puppet/Puppetfile +25 -25
  154. data/examples/kitchen-puppet/README.md +53 -53
  155. data/examples/kitchen-puppet/manifests/site.pp +33 -33
  156. data/examples/kitchen-puppet/metadata.json +11 -11
  157. data/examples/kitchen-puppet/test/integration/default/web_spec.rb +28 -28
  158. data/examples/meta-profile/README.md +37 -37
  159. data/examples/meta-profile/controls/example.rb +13 -13
  160. data/examples/meta-profile/inspec.yml +13 -13
  161. data/examples/profile-attribute.yml +2 -2
  162. data/examples/profile-attribute/README.md +14 -14
  163. data/examples/profile-attribute/controls/example.rb +11 -11
  164. data/examples/profile-attribute/inspec.yml +8 -8
  165. data/examples/profile-sensitive/README.md +29 -29
  166. data/examples/profile-sensitive/controls/sensitive-failures.rb +9 -9
  167. data/examples/profile-sensitive/controls/sensitive.rb +9 -9
  168. data/examples/profile-sensitive/inspec.yml +8 -8
  169. data/examples/profile/README.md +48 -48
  170. data/examples/profile/controls/example.rb +23 -23
  171. data/examples/profile/controls/gordon.rb +36 -36
  172. data/examples/profile/controls/meta.rb +34 -34
  173. data/examples/profile/inspec.yml +10 -10
  174. data/examples/profile/libraries/gordon_config.rb +53 -53
  175. data/inspec.gemspec +47 -47
  176. data/lib/bundles/README.md +3 -3
  177. data/lib/bundles/inspec-artifact.rb +7 -7
  178. data/lib/bundles/inspec-artifact/README.md +1 -1
  179. data/lib/bundles/inspec-artifact/cli.rb +277 -277
  180. data/lib/bundles/inspec-compliance.rb +16 -16
  181. data/lib/bundles/inspec-compliance/.kitchen.yml +20 -20
  182. data/lib/bundles/inspec-compliance/README.md +185 -185
  183. data/lib/bundles/inspec-compliance/api.rb +316 -316
  184. data/lib/bundles/inspec-compliance/api/login.rb +152 -152
  185. data/lib/bundles/inspec-compliance/bootstrap.sh +41 -41
  186. data/lib/bundles/inspec-compliance/cli.rb +277 -277
  187. data/lib/bundles/inspec-compliance/configuration.rb +103 -103
  188. data/lib/bundles/inspec-compliance/http.rb +86 -86
  189. data/lib/bundles/inspec-compliance/support.rb +36 -36
  190. data/lib/bundles/inspec-compliance/target.rb +98 -98
  191. data/lib/bundles/inspec-compliance/test/integration/default/cli.rb +93 -93
  192. data/lib/bundles/inspec-habitat.rb +12 -12
  193. data/lib/bundles/inspec-habitat/cli.rb +36 -36
  194. data/lib/bundles/inspec-habitat/log.rb +10 -10
  195. data/lib/bundles/inspec-habitat/profile.rb +390 -390
  196. data/lib/bundles/inspec-init.rb +8 -8
  197. data/lib/bundles/inspec-init/README.md +31 -31
  198. data/lib/bundles/inspec-init/cli.rb +97 -97
  199. data/lib/bundles/inspec-init/templates/profile/README.md +3 -3
  200. data/lib/bundles/inspec-init/templates/profile/controls/example.rb +19 -19
  201. data/lib/bundles/inspec-init/templates/profile/inspec.yml +8 -8
  202. data/lib/bundles/inspec-supermarket.rb +13 -13
  203. data/lib/bundles/inspec-supermarket/README.md +45 -45
  204. data/lib/bundles/inspec-supermarket/api.rb +84 -84
  205. data/lib/bundles/inspec-supermarket/cli.rb +65 -65
  206. data/lib/bundles/inspec-supermarket/target.rb +34 -34
  207. data/lib/fetchers/git.rb +163 -163
  208. data/lib/fetchers/local.rb +74 -74
  209. data/lib/fetchers/mock.rb +35 -35
  210. data/lib/fetchers/url.rb +204 -204
  211. data/lib/inspec.rb +24 -24
  212. data/lib/inspec/archive/tar.rb +29 -29
  213. data/lib/inspec/archive/zip.rb +19 -19
  214. data/lib/inspec/backend.rb +92 -92
  215. data/lib/inspec/base_cli.rb +327 -324
  216. data/lib/inspec/cached_fetcher.rb +66 -66
  217. data/lib/inspec/cli.rb +298 -298
  218. data/lib/inspec/completions/bash.sh.erb +45 -45
  219. data/lib/inspec/completions/fish.sh.erb +34 -34
  220. data/lib/inspec/completions/zsh.sh.erb +61 -61
  221. data/lib/inspec/control_eval_context.rb +179 -179
  222. data/lib/inspec/dependencies/cache.rb +72 -72
  223. data/lib/inspec/dependencies/dependency_set.rb +92 -92
  224. data/lib/inspec/dependencies/lockfile.rb +115 -115
  225. data/lib/inspec/dependencies/requirement.rb +123 -123
  226. data/lib/inspec/dependencies/resolver.rb +86 -86
  227. data/lib/inspec/describe.rb +27 -27
  228. data/lib/inspec/dsl.rb +66 -66
  229. data/lib/inspec/dsl_shared.rb +33 -33
  230. data/lib/inspec/env_printer.rb +157 -157
  231. data/lib/inspec/errors.rb +13 -13
  232. data/lib/inspec/exceptions.rb +12 -12
  233. data/lib/inspec/expect.rb +45 -45
  234. data/lib/inspec/fetcher.rb +45 -45
  235. data/lib/inspec/file_provider.rb +275 -275
  236. data/lib/inspec/formatters.rb +3 -3
  237. data/lib/inspec/formatters/base.rb +208 -208
  238. data/lib/inspec/formatters/json_rspec.rb +20 -20
  239. data/lib/inspec/formatters/show_progress.rb +12 -12
  240. data/lib/inspec/library_eval_context.rb +58 -58
  241. data/lib/inspec/log.rb +11 -11
  242. data/lib/inspec/metadata.rb +253 -253
  243. data/lib/inspec/method_source.rb +24 -24
  244. data/lib/inspec/objects.rb +14 -14
  245. data/lib/inspec/objects/attribute.rb +65 -65
  246. data/lib/inspec/objects/control.rb +61 -61
  247. data/lib/inspec/objects/describe.rb +92 -92
  248. data/lib/inspec/objects/each_loop.rb +36 -36
  249. data/lib/inspec/objects/list.rb +15 -15
  250. data/lib/inspec/objects/or_test.rb +40 -40
  251. data/lib/inspec/objects/ruby_helper.rb +15 -15
  252. data/lib/inspec/objects/tag.rb +27 -27
  253. data/lib/inspec/objects/test.rb +87 -87
  254. data/lib/inspec/objects/value.rb +27 -27
  255. data/lib/inspec/plugins.rb +60 -60
  256. data/lib/inspec/plugins/cli.rb +24 -24
  257. data/lib/inspec/plugins/fetcher.rb +86 -86
  258. data/lib/inspec/plugins/resource.rb +132 -132
  259. data/lib/inspec/plugins/secret.rb +15 -15
  260. data/lib/inspec/plugins/source_reader.rb +40 -40
  261. data/lib/inspec/polyfill.rb +12 -12
  262. data/lib/inspec/profile.rb +510 -510
  263. data/lib/inspec/profile_context.rb +207 -207
  264. data/lib/inspec/profile_vendor.rb +66 -66
  265. data/lib/inspec/reporters.rb +50 -50
  266. data/lib/inspec/reporters/base.rb +24 -24
  267. data/lib/inspec/reporters/cli.rb +395 -395
  268. data/lib/inspec/reporters/json.rb +138 -134
  269. data/lib/inspec/reporters/json_min.rb +48 -48
  270. data/lib/inspec/reporters/junit.rb +77 -77
  271. data/lib/inspec/require_loader.rb +33 -33
  272. data/lib/inspec/resource.rb +176 -176
  273. data/lib/inspec/rule.rb +266 -266
  274. data/lib/inspec/runner.rb +342 -340
  275. data/lib/inspec/runner_mock.rb +41 -41
  276. data/lib/inspec/runner_rspec.rb +163 -163
  277. data/lib/inspec/runtime_profile.rb +26 -26
  278. data/lib/inspec/schema.rb +192 -186
  279. data/lib/inspec/secrets.rb +19 -19
  280. data/lib/inspec/secrets/yaml.rb +30 -30
  281. data/lib/inspec/shell.rb +223 -223
  282. data/lib/inspec/shell_detector.rb +90 -90
  283. data/lib/inspec/source_reader.rb +29 -29
  284. data/lib/inspec/version.rb +8 -8
  285. data/lib/matchers/matchers.rb +397 -397
  286. data/lib/resources/aide_conf.rb +160 -160
  287. data/lib/resources/apache.rb +49 -49
  288. data/lib/resources/apache_conf.rb +158 -158
  289. data/lib/resources/apt.rb +150 -150
  290. data/lib/resources/audit_policy.rb +64 -64
  291. data/lib/resources/auditd.rb +233 -233
  292. data/lib/resources/auditd_conf.rb +56 -56
  293. data/lib/resources/auditd_rules.rb +205 -205
  294. data/lib/resources/bash.rb +36 -36
  295. data/lib/resources/bond.rb +69 -69
  296. data/lib/resources/bridge.rb +123 -123
  297. data/lib/resources/command.rb +69 -69
  298. data/lib/resources/cpan.rb +60 -60
  299. data/lib/resources/cran.rb +66 -66
  300. data/lib/resources/crontab.rb +169 -169
  301. data/lib/resources/csv.rb +58 -58
  302. data/lib/resources/dh_params.rb +83 -83
  303. data/lib/resources/directory.rb +25 -25
  304. data/lib/resources/docker.rb +239 -239
  305. data/lib/resources/docker_container.rb +92 -92
  306. data/lib/resources/docker_image.rb +86 -86
  307. data/lib/resources/docker_object.rb +57 -57
  308. data/lib/resources/docker_service.rb +94 -94
  309. data/lib/resources/elasticsearch.rb +168 -168
  310. data/lib/resources/etc_fstab.rb +102 -102
  311. data/lib/resources/etc_group.rb +157 -157
  312. data/lib/resources/etc_hosts.rb +81 -81
  313. data/lib/resources/etc_hosts_allow_deny.rb +122 -122
  314. data/lib/resources/file.rb +298 -298
  315. data/lib/resources/filesystem.rb +31 -31
  316. data/lib/resources/firewalld.rb +144 -144
  317. data/lib/resources/gem.rb +71 -71
  318. data/lib/resources/groups.rb +213 -213
  319. data/lib/resources/grub_conf.rb +237 -237
  320. data/lib/resources/host.rb +300 -300
  321. data/lib/resources/http.rb +252 -252
  322. data/lib/resources/iis_app.rb +103 -103
  323. data/lib/resources/iis_site.rb +147 -147
  324. data/lib/resources/inetd_conf.rb +63 -63
  325. data/lib/resources/ini.rb +29 -29
  326. data/lib/resources/interface.rb +130 -130
  327. data/lib/resources/iptables.rb +70 -70
  328. data/lib/resources/json.rb +115 -115
  329. data/lib/resources/kernel_module.rb +110 -110
  330. data/lib/resources/kernel_parameter.rb +58 -58
  331. data/lib/resources/key_rsa.rb +67 -67
  332. data/lib/resources/limits_conf.rb +56 -56
  333. data/lib/resources/login_def.rb +67 -67
  334. data/lib/resources/mount.rb +90 -90
  335. data/lib/resources/mssql_session.rb +103 -103
  336. data/lib/resources/mysql.rb +82 -82
  337. data/lib/resources/mysql_conf.rb +133 -133
  338. data/lib/resources/mysql_session.rb +72 -72
  339. data/lib/resources/nginx.rb +97 -97
  340. data/lib/resources/nginx_conf.rb +228 -228
  341. data/lib/resources/npm.rb +48 -48
  342. data/lib/resources/ntp_conf.rb +59 -59
  343. data/lib/resources/oneget.rb +72 -72
  344. data/lib/resources/oracledb_session.rb +140 -140
  345. data/lib/resources/os.rb +46 -46
  346. data/lib/resources/os_env.rb +76 -76
  347. data/lib/resources/package.rb +357 -357
  348. data/lib/resources/packages.rb +112 -112
  349. data/lib/resources/parse_config.rb +116 -116
  350. data/lib/resources/passwd.rb +96 -96
  351. data/lib/resources/pip.rb +89 -89
  352. data/lib/resources/platform.rb +112 -112
  353. data/lib/resources/port.rb +771 -771
  354. data/lib/resources/postgres.rb +132 -132
  355. data/lib/resources/postgres_conf.rb +122 -122
  356. data/lib/resources/postgres_hba_conf.rb +101 -101
  357. data/lib/resources/postgres_ident_conf.rb +79 -79
  358. data/lib/resources/postgres_session.rb +72 -72
  359. data/lib/resources/powershell.rb +58 -58
  360. data/lib/resources/processes.rb +204 -204
  361. data/lib/resources/rabbitmq_conf.rb +53 -53
  362. data/lib/resources/registry_key.rb +296 -296
  363. data/lib/resources/security_policy.rb +181 -181
  364. data/lib/resources/service.rb +784 -784
  365. data/lib/resources/shadow.rb +141 -141
  366. data/lib/resources/ssh_conf.rb +102 -102
  367. data/lib/resources/ssl.rb +99 -99
  368. data/lib/resources/sys_info.rb +26 -26
  369. data/lib/resources/toml.rb +32 -32
  370. data/lib/resources/users.rb +652 -652
  371. data/lib/resources/vbscript.rb +70 -70
  372. data/lib/resources/virtualization.rb +251 -251
  373. data/lib/resources/windows_feature.rb +85 -85
  374. data/lib/resources/windows_hotfix.rb +35 -35
  375. data/lib/resources/windows_task.rb +106 -106
  376. data/lib/resources/wmi.rb +114 -114
  377. data/lib/resources/x509_certificate.rb +143 -143
  378. data/lib/resources/xinetd.rb +112 -112
  379. data/lib/resources/xml.rb +45 -45
  380. data/lib/resources/yaml.rb +45 -45
  381. data/lib/resources/yum.rb +181 -181
  382. data/lib/resources/zfs_dataset.rb +60 -60
  383. data/lib/resources/zfs_pool.rb +49 -49
  384. data/lib/source_readers/flat.rb +39 -39
  385. data/lib/source_readers/inspec.rb +75 -75
  386. data/lib/utils/command_wrapper.rb +27 -27
  387. data/lib/utils/convert.rb +12 -12
  388. data/lib/utils/database_helpers.rb +77 -77
  389. data/lib/utils/erlang_parser.rb +192 -192
  390. data/lib/utils/filter.rb +272 -272
  391. data/lib/utils/filter_array.rb +27 -27
  392. data/lib/utils/find_files.rb +44 -44
  393. data/lib/utils/hash.rb +41 -41
  394. data/lib/utils/json_log.rb +18 -18
  395. data/lib/utils/latest_version.rb +22 -22
  396. data/lib/utils/modulator.rb +12 -12
  397. data/lib/utils/nginx_parser.rb +85 -85
  398. data/lib/utils/object_traversal.rb +49 -49
  399. data/lib/utils/parser.rb +274 -274
  400. data/lib/utils/plugin_registry.rb +93 -93
  401. data/lib/utils/simpleconfig.rb +132 -132
  402. data/lib/utils/spdx.rb +13 -13
  403. data/lib/utils/spdx.txt +343 -343
  404. metadata +2 -2
@@ -1,102 +1,102 @@
1
- ---
2
- title: About the parse_config Resource
3
- ---
4
-
5
- # parse_config
6
-
7
- Use the `parse_config` InSpec audit resource to test arbitrary configuration files.
8
-
9
- <br>
10
-
11
- ## Syntax
12
-
13
- A `parse_config` resource block declares the location of the configuration setting to be tested, and then what value is to be tested. Because this resource relies on arbitrary configuration files, the test itself is often arbitrary and relies on custom Ruby code:
14
-
15
- output = command('some-command').stdout
16
-
17
- describe parse_config(output, { data_config_option: value } ) do
18
- its('setting') { should eq 1 }
19
- end
20
-
21
- or:
22
-
23
- audit = command('/sbin/auditctl -l').stdout
24
- options = {
25
- assignment_regex: /^\s*([^:]*?)\s*:\s*(.*?)\s*$/,
26
- multiple_values: true
27
- }
28
-
29
- describe parse_config(audit, options) do
30
- its('setting') { should eq 1 }
31
- end
32
-
33
- where each test
34
-
35
- * Must declare the location of the configuration file to be tested
36
- * Must declare one (or more) settings to be tested
37
- * May run a command to `stdout`, and then run the test against that output
38
- * May use options to define how configuration data is to be parsed
39
-
40
- <br>
41
-
42
- ## Matchers
43
-
44
- For a full list of available matchers please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
45
-
46
- ### assignment_regex
47
-
48
- Use `assignment_regex` to test a key value using a regular expression:
49
-
50
- 'key = value'
51
-
52
- may be tested using the following regular expression, which determines assignment from key to value:
53
-
54
- assignment_regex: /^\s*([^=]*?)\s*=\s*(.*?)\s*$/
55
-
56
- ### comment_char
57
-
58
- Use `comment_char` to test for comments in a configuration file:
59
-
60
- comment_char: '#'
61
-
62
- ### key_values
63
-
64
- Use `key_values` to test how many values a key contains:
65
-
66
- key = a b c
67
-
68
- contains three values. To test that value to ensure it only contains one, use:
69
-
70
- key_values: 1
71
-
72
- ### multiple_values
73
-
74
- Use `multiple_values` if the source file uses the same key multiple times. All values will be aggregated in an array:
75
-
76
- # # file structure:
77
- # key = a
78
- # key = b
79
- # key2 = c
80
- params['key'] = ['a', 'b']
81
- params['key2'] = ['c']
82
-
83
- To use plain key value mapping, use `multiple_values: false`:
84
-
85
- # # file structure:
86
- # key = a
87
- # key = b
88
- # key2 = c
89
- params['key'] = 'b'
90
- params['key2'] = 'c'
91
-
92
- ### standalone_comments
93
-
94
- Use `standalone_comments` to parse comments as a line, otherwise inline comments are allowed:
95
-
96
- 'key = value # comment'
97
- params['key'] = 'value # comment'
98
-
99
- Use `standalone_comments: false`, to parse the following:
100
-
101
- 'key = value # comment'
102
- params['key'] = 'value'
1
+ ---
2
+ title: About the parse_config Resource
3
+ ---
4
+
5
+ # parse_config
6
+
7
+ Use the `parse_config` InSpec audit resource to test arbitrary configuration files.
8
+
9
+ <br>
10
+
11
+ ## Syntax
12
+
13
+ A `parse_config` resource block declares the location of the configuration setting to be tested, and then what value is to be tested. Because this resource relies on arbitrary configuration files, the test itself is often arbitrary and relies on custom Ruby code:
14
+
15
+ output = command('some-command').stdout
16
+
17
+ describe parse_config(output, { data_config_option: value } ) do
18
+ its('setting') { should eq 1 }
19
+ end
20
+
21
+ or:
22
+
23
+ audit = command('/sbin/auditctl -l').stdout
24
+ options = {
25
+ assignment_regex: /^\s*([^:]*?)\s*:\s*(.*?)\s*$/,
26
+ multiple_values: true
27
+ }
28
+
29
+ describe parse_config(audit, options) do
30
+ its('setting') { should eq 1 }
31
+ end
32
+
33
+ where each test
34
+
35
+ * Must declare the location of the configuration file to be tested
36
+ * Must declare one (or more) settings to be tested
37
+ * May run a command to `stdout`, and then run the test against that output
38
+ * May use options to define how configuration data is to be parsed
39
+
40
+ <br>
41
+
42
+ ## Matchers
43
+
44
+ For a full list of available matchers please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
45
+
46
+ ### assignment_regex
47
+
48
+ Use `assignment_regex` to test a key value using a regular expression:
49
+
50
+ 'key = value'
51
+
52
+ may be tested using the following regular expression, which determines assignment from key to value:
53
+
54
+ assignment_regex: /^\s*([^=]*?)\s*=\s*(.*?)\s*$/
55
+
56
+ ### comment_char
57
+
58
+ Use `comment_char` to test for comments in a configuration file:
59
+
60
+ comment_char: '#'
61
+
62
+ ### key_values
63
+
64
+ Use `key_values` to test how many values a key contains:
65
+
66
+ key = a b c
67
+
68
+ contains three values. To test that value to ensure it only contains one, use:
69
+
70
+ key_values: 1
71
+
72
+ ### multiple_values
73
+
74
+ Use `multiple_values` if the source file uses the same key multiple times. All values will be aggregated in an array:
75
+
76
+ # # file structure:
77
+ # key = a
78
+ # key = b
79
+ # key2 = c
80
+ params['key'] = ['a', 'b']
81
+ params['key2'] = ['c']
82
+
83
+ To use plain key value mapping, use `multiple_values: false`:
84
+
85
+ # # file structure:
86
+ # key = a
87
+ # key = b
88
+ # key2 = c
89
+ params['key'] = 'b'
90
+ params['key2'] = 'c'
91
+
92
+ ### standalone_comments
93
+
94
+ Use `standalone_comments` to parse comments as a line, otherwise inline comments are allowed:
95
+
96
+ 'key = value # comment'
97
+ params['key'] = 'value # comment'
98
+
99
+ Use `standalone_comments: false`, to parse the following:
100
+
101
+ 'key = value # comment'
102
+ params['key'] = 'value'
@@ -1,137 +1,137 @@
1
- ---
2
- title: About the parse_config_file Resource
3
- ---
4
-
5
- # parse\_config\_file
6
-
7
- Use the `parse_config_file` InSpec audit resource to test arbitrary configuration files. It works in the same way as `parse_config`. Instead of using a command output, this resource works with files.
8
-
9
- <br>
10
-
11
- ## Syntax
12
-
13
- A `parse_config_file` InSpec audit resource block declares the location of the configuration file to be tested, and then which settings in that file are to be tested.
14
-
15
- describe parse_config_file('/path/to/file', { data_config_option: value } ) do
16
- its('setting') { should eq 1 }
17
- end
18
-
19
- or:
20
-
21
- options = {
22
- assignment_regex: /^\s*([^:]*?)\s*:\s*(.*?)\s*$/,
23
- multiple_values: true
24
- }
25
-
26
- describe parse_config_file('path/to/file', options) do
27
- its('setting') { should eq 1 }
28
- end
29
-
30
- where each test
31
-
32
- * Must declare the location of the configuration file to be tested
33
- * Must declare one (or more) settings to be tested
34
- * May run a command to `stdout`, and then run the test against that output
35
- * May use options to define how configuration data is to be parsed
36
-
37
- <br>
38
-
39
- ## Options
40
-
41
- This resource supports the following options for parsing configuration data. Use them in an `options` block stated outside of (and immediately before) the actual test:
42
-
43
- options = {
44
- assignment_regex: /^\s*([^:]*?)\s*:\s*(.*?)\s*$/,
45
- multiple_values: true
46
- }
47
- describe parse_config_file('path/to/file', options) do
48
- its('setting') { should eq 1 }
49
- end
50
-
51
- <br>
52
-
53
- ## Examples
54
-
55
- The following examples show how to use this InSpec audit resource.
56
-
57
- ### Test a configuration setting
58
-
59
- describe parse_config_file('/path/to/file.conf') do
60
- its('PARAM_X') { should eq 'Y' }
61
- end
62
-
63
- ### Use options, and then test a configuration setting
64
-
65
- describe parse_config_file('/path/to/file.conf', { multiple_values: true }) do
66
- its('PARAM_X') { should include 'Y' }
67
- end
68
-
69
- ## Test a file with an ini-like structure (such as a yum.conf)
70
-
71
- describe parse_config_file('/path/to/yum.conf') do
72
- its('main') { should include('gpgcheck' => '1') }
73
- end
74
-
75
- <br>
76
-
77
- ## Matchers
78
-
79
- For a full list of available matchers please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
80
-
81
- ### assignment_regex
82
-
83
- Use `assignment_regex` to test a key value using a regular expression:
84
-
85
- 'key = value'
86
-
87
- may be tested using the following regular expression, which determines assignment from key to value:
88
-
89
- assignment_regex: /^\s*([^=]*?)\s*=\s*(.*?)\s*$/
90
-
91
- ### comment_char
92
-
93
- Use `comment_char` to test for comments in a configuration file:
94
-
95
- comment_char: '#'
96
-
97
- ### key_values
98
-
99
- Use `key_values` to test how many values a key contains:
100
-
101
- key = a b c
102
-
103
- contains three values. To test that value to ensure it only contains one, use:
104
-
105
- key_values: 1
106
-
107
- ### multiple_values
108
-
109
- Use `multiple_values` if the source file uses the same key multiple times. All values will be aggregated in an array:
110
-
111
- # # file structure:
112
- # key = a
113
- # key = b
114
- # key2 = c
115
- params['key'] = ['a', 'b']
116
- params['key2'] = ['c']
117
-
118
- To use plain key value mapping, use `multiple_values: false`:
119
-
120
- # # file structure:
121
- # key = a
122
- # key = b
123
- # key2 = c
124
- params['key'] = 'b'
125
- params['key2'] = 'c'
126
-
127
- ### standalone_comments
128
-
129
- Use `standalone_comments` to parse comments as a line, otherwise inline comments are allowed:
130
-
131
- 'key = value # comment'
132
- params['key'] = 'value # comment'
133
-
134
- Use `standalone_comments: false`, to parse the following:
135
-
136
- 'key = value # comment'
137
- params['key'] = 'value'
1
+ ---
2
+ title: About the parse_config_file Resource
3
+ ---
4
+
5
+ # parse\_config\_file
6
+
7
+ Use the `parse_config_file` InSpec audit resource to test arbitrary configuration files. It works in the same way as `parse_config`. Instead of using a command output, this resource works with files.
8
+
9
+ <br>
10
+
11
+ ## Syntax
12
+
13
+ A `parse_config_file` InSpec audit resource block declares the location of the configuration file to be tested, and then which settings in that file are to be tested.
14
+
15
+ describe parse_config_file('/path/to/file', { data_config_option: value } ) do
16
+ its('setting') { should eq 1 }
17
+ end
18
+
19
+ or:
20
+
21
+ options = {
22
+ assignment_regex: /^\s*([^:]*?)\s*:\s*(.*?)\s*$/,
23
+ multiple_values: true
24
+ }
25
+
26
+ describe parse_config_file('path/to/file', options) do
27
+ its('setting') { should eq 1 }
28
+ end
29
+
30
+ where each test
31
+
32
+ * Must declare the location of the configuration file to be tested
33
+ * Must declare one (or more) settings to be tested
34
+ * May run a command to `stdout`, and then run the test against that output
35
+ * May use options to define how configuration data is to be parsed
36
+
37
+ <br>
38
+
39
+ ## Options
40
+
41
+ This resource supports the following options for parsing configuration data. Use them in an `options` block stated outside of (and immediately before) the actual test:
42
+
43
+ options = {
44
+ assignment_regex: /^\s*([^:]*?)\s*:\s*(.*?)\s*$/,
45
+ multiple_values: true
46
+ }
47
+ describe parse_config_file('path/to/file', options) do
48
+ its('setting') { should eq 1 }
49
+ end
50
+
51
+ <br>
52
+
53
+ ## Examples
54
+
55
+ The following examples show how to use this InSpec audit resource.
56
+
57
+ ### Test a configuration setting
58
+
59
+ describe parse_config_file('/path/to/file.conf') do
60
+ its('PARAM_X') { should eq 'Y' }
61
+ end
62
+
63
+ ### Use options, and then test a configuration setting
64
+
65
+ describe parse_config_file('/path/to/file.conf', { multiple_values: true }) do
66
+ its('PARAM_X') { should include 'Y' }
67
+ end
68
+
69
+ ## Test a file with an ini-like structure (such as a yum.conf)
70
+
71
+ describe parse_config_file('/path/to/yum.conf') do
72
+ its('main') { should include('gpgcheck' => '1') }
73
+ end
74
+
75
+ <br>
76
+
77
+ ## Matchers
78
+
79
+ For a full list of available matchers please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
80
+
81
+ ### assignment_regex
82
+
83
+ Use `assignment_regex` to test a key value using a regular expression:
84
+
85
+ 'key = value'
86
+
87
+ may be tested using the following regular expression, which determines assignment from key to value:
88
+
89
+ assignment_regex: /^\s*([^=]*?)\s*=\s*(.*?)\s*$/
90
+
91
+ ### comment_char
92
+
93
+ Use `comment_char` to test for comments in a configuration file:
94
+
95
+ comment_char: '#'
96
+
97
+ ### key_values
98
+
99
+ Use `key_values` to test how many values a key contains:
100
+
101
+ key = a b c
102
+
103
+ contains three values. To test that value to ensure it only contains one, use:
104
+
105
+ key_values: 1
106
+
107
+ ### multiple_values
108
+
109
+ Use `multiple_values` if the source file uses the same key multiple times. All values will be aggregated in an array:
110
+
111
+ # # file structure:
112
+ # key = a
113
+ # key = b
114
+ # key2 = c
115
+ params['key'] = ['a', 'b']
116
+ params['key2'] = ['c']
117
+
118
+ To use plain key value mapping, use `multiple_values: false`:
119
+
120
+ # # file structure:
121
+ # key = a
122
+ # key = b
123
+ # key2 = c
124
+ params['key'] = 'b'
125
+ params['key2'] = 'c'
126
+
127
+ ### standalone_comments
128
+
129
+ Use `standalone_comments` to parse comments as a line, otherwise inline comments are allowed:
130
+
131
+ 'key = value # comment'
132
+ params['key'] = 'value # comment'
133
+
134
+ Use `standalone_comments: false`, to parse the following:
135
+
136
+ 'key = value # comment'
137
+ params['key'] = 'value'