octool 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/octool.rb +1 -0
- data/lib/octool/constants.rb +1 -1
- data/lib/octool/ssp.rb +10 -0
- data/lib/octool/system.rb +4 -0
- data/lib/octool/version.rb +1 -1
- data/octool.rdoc +1 -1
- data/schemas/v1.0.2/certification.yaml +27 -0
- data/schemas/v1.0.2/component.yaml +60 -0
- data/schemas/v1.0.2/config.yaml +111 -0
- data/schemas/v1.0.2/standard.yaml +50 -0
- metadata +19 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5f2733d9e7a9f5a736a283139540cdae45cf887c2bd54e0de2461a30bc4602da
|
4
|
+
data.tar.gz: 87854e857038bafc19bdcbb34e23fe8a58f9c0d9e7836d3297d50b3cbe032367
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: adce4065a12f2de271ce3c5c3faf2ffb28b6bf5c652b95e6c62826fa327b8a08ef2b8b7ee85bf7674a116ff2ea85cc604e124f83107adff5bac53374992c18fa
|
7
|
+
data.tar.gz: ed4f5e6de7c5463ae7a287bd3cf3189a393e6d458bd13813dfce82eab3c120031bbab94608b185bf2f5731664f9c32aeca767da8e0bcf01048b1f5beb75904a3
|
data/lib/octool.rb
CHANGED
data/lib/octool/constants.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module OCTool
|
4
|
-
LATEST_SCHEMA_VERSION = 'v1.0.
|
4
|
+
LATEST_SCHEMA_VERSION = 'v1.0.2'
|
5
5
|
BASE_SCHEMA_DIR = File.join(File.dirname(__FILE__), '..', '..', 'schemas').freeze
|
6
6
|
ERB_DIR = File.join(File.dirname(__FILE__), '..', '..', 'templates').freeze
|
7
7
|
DEFAULT_CONFIG_FILENAME = 'config.yaml'
|
data/lib/octool/ssp.rb
CHANGED
@@ -28,6 +28,7 @@ module OCTool
|
|
28
28
|
exit(1)
|
29
29
|
end
|
30
30
|
render_template
|
31
|
+
write_acronyms
|
31
32
|
write 'pdf'
|
32
33
|
write 'docx'
|
33
34
|
end
|
@@ -41,6 +42,14 @@ module OCTool
|
|
41
42
|
puts 'done'
|
42
43
|
end
|
43
44
|
|
45
|
+
def write_acronyms
|
46
|
+
return unless @system.acronyms
|
47
|
+
|
48
|
+
out_path = File.join(@output_dir, 'acronyms.json')
|
49
|
+
File.open(out_path, 'w') { |f| f.write JSON.pretty_generate(@system.acronyms) }
|
50
|
+
ENV['PANDOC_ACRONYMS_ACRONYMS'] = out_path
|
51
|
+
end
|
52
|
+
|
44
53
|
# rubocop:disable Metrics/AbcSize,Metrics/MethodLength
|
45
54
|
def write(type = 'pdf')
|
46
55
|
out_path = File.join(@output_dir, "ssp.#{type}")
|
@@ -53,6 +62,7 @@ module OCTool
|
|
53
62
|
toc_depth 3
|
54
63
|
number_sections
|
55
64
|
highlight_style 'pygments'
|
65
|
+
filter 'pandoc-acronyms' if ENV['PANDOC_ACRONYMS_ACRONYMS']
|
56
66
|
# https://en.wikibooks.org/wiki/LaTeX/Source_Code_Listings#Encoding_issue
|
57
67
|
# Uncomment the following line after the "listings" package is compatible with utf8
|
58
68
|
# listings
|
data/lib/octool/system.rb
CHANGED
data/lib/octool/version.rb
CHANGED
data/octool.rdoc
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
---
|
2
|
+
type: map
|
3
|
+
class: Certification
|
4
|
+
mapping:
|
5
|
+
certification_key:
|
6
|
+
desc: A short, unique identifier for this certification.
|
7
|
+
required: true
|
8
|
+
type: str
|
9
|
+
unique: true
|
10
|
+
name:
|
11
|
+
desc: A human-friendly name for the certification.
|
12
|
+
required: true
|
13
|
+
type: str
|
14
|
+
requires:
|
15
|
+
desc: List of control IDs required by the certification.
|
16
|
+
required: true
|
17
|
+
type: seq
|
18
|
+
sequence:
|
19
|
+
- type: map
|
20
|
+
class: ControlID
|
21
|
+
mapping:
|
22
|
+
standard_key:
|
23
|
+
required: true
|
24
|
+
type: str
|
25
|
+
control_key:
|
26
|
+
required: true
|
27
|
+
type: str
|
@@ -0,0 +1,60 @@
|
|
1
|
+
---
|
2
|
+
type: map
|
3
|
+
class: Component
|
4
|
+
mapping:
|
5
|
+
name:
|
6
|
+
desc: Human-friendly name to appear in the SSP.
|
7
|
+
type: str
|
8
|
+
required: true
|
9
|
+
component_key:
|
10
|
+
desc: Unique identifier for referential integrity.
|
11
|
+
type: str
|
12
|
+
required: true
|
13
|
+
description:
|
14
|
+
desc: A paragraph or two that describes the component.
|
15
|
+
type: str
|
16
|
+
required: true
|
17
|
+
attestations:
|
18
|
+
desc: List of attestations.
|
19
|
+
type: seq
|
20
|
+
sequence:
|
21
|
+
- type: map
|
22
|
+
class: Attestation
|
23
|
+
mapping:
|
24
|
+
summary:
|
25
|
+
desc: Arbitrary verbiage to appear in SSP as a TLDR.
|
26
|
+
type: str
|
27
|
+
required: true
|
28
|
+
status:
|
29
|
+
desc: To what extent is this attestation "done"?
|
30
|
+
type: str
|
31
|
+
required: true
|
32
|
+
enum:
|
33
|
+
- partial
|
34
|
+
- complete
|
35
|
+
- planned
|
36
|
+
- none
|
37
|
+
date_verified:
|
38
|
+
desc: When was this last verified?
|
39
|
+
type: date
|
40
|
+
required: false
|
41
|
+
satisfies:
|
42
|
+
desc: List of control IDs covered by this attestation.
|
43
|
+
type: seq
|
44
|
+
required: false
|
45
|
+
sequence:
|
46
|
+
- type: map
|
47
|
+
class: ControlID
|
48
|
+
mapping:
|
49
|
+
standard_key:
|
50
|
+
type: text
|
51
|
+
required: true
|
52
|
+
control_key:
|
53
|
+
type: text
|
54
|
+
required: true
|
55
|
+
narrative:
|
56
|
+
desc: |
|
57
|
+
Explain how attestation satisfies the indicated controls.
|
58
|
+
The content should be in markdown format.
|
59
|
+
type: str
|
60
|
+
required: true
|
@@ -0,0 +1,111 @@
|
|
1
|
+
---
|
2
|
+
type: map
|
3
|
+
class: Config
|
4
|
+
mapping:
|
5
|
+
schema_version:
|
6
|
+
desc: |
|
7
|
+
Must match one of the schema directories in the octool source.
|
8
|
+
required: true
|
9
|
+
type: str
|
10
|
+
|
11
|
+
logo:
|
12
|
+
desc: Image for title page.
|
13
|
+
required: false
|
14
|
+
type: map
|
15
|
+
class: Logo
|
16
|
+
mapping:
|
17
|
+
path:
|
18
|
+
desc: Path to image.
|
19
|
+
type: str
|
20
|
+
required: true
|
21
|
+
width:
|
22
|
+
desc: Width of image, such as "1in" or "254mm"
|
23
|
+
type: str
|
24
|
+
required: true
|
25
|
+
|
26
|
+
name:
|
27
|
+
desc: Human-friendly to appear in the SSP.
|
28
|
+
required: true
|
29
|
+
type: str
|
30
|
+
|
31
|
+
overview:
|
32
|
+
desc: Human-friendly description to appear in the SSP.
|
33
|
+
required: true
|
34
|
+
type: str
|
35
|
+
|
36
|
+
maintainers:
|
37
|
+
desc: Who should somebody contact for questions about this SSP?
|
38
|
+
required: true
|
39
|
+
type: seq
|
40
|
+
sequence:
|
41
|
+
- type: str
|
42
|
+
|
43
|
+
metadata:
|
44
|
+
desc: Optional metadata.
|
45
|
+
required: false
|
46
|
+
type: map
|
47
|
+
class: Metadata
|
48
|
+
mapping:
|
49
|
+
abstract:
|
50
|
+
desc: Abstract appears in document metadata.
|
51
|
+
required: false
|
52
|
+
type: str
|
53
|
+
description:
|
54
|
+
desc: Description appears in document metadata.
|
55
|
+
required: false
|
56
|
+
type: str
|
57
|
+
'=':
|
58
|
+
desc: Arbitrary key:value pair of strings.
|
59
|
+
type: str
|
60
|
+
|
61
|
+
includes:
|
62
|
+
desc: Additional files to include from the system repo.
|
63
|
+
required: true
|
64
|
+
type: seq
|
65
|
+
sequence:
|
66
|
+
- type: map
|
67
|
+
class: Include
|
68
|
+
mapping:
|
69
|
+
type:
|
70
|
+
required: true
|
71
|
+
type: str
|
72
|
+
enum:
|
73
|
+
- certification
|
74
|
+
- component
|
75
|
+
- standard
|
76
|
+
path:
|
77
|
+
desc: Path must be relative within the repo.
|
78
|
+
required: true
|
79
|
+
type: str
|
80
|
+
|
81
|
+
acronyms:
|
82
|
+
desc: |
|
83
|
+
List of acronyms to be referenced in the doc.
|
84
|
+
|
85
|
+
The acronyms follow the forms and usage described by the pandoc filter
|
86
|
+
https://gitlab.com/mirkoboehm/pandoc-acronyms
|
87
|
+
|
88
|
+
If your config.yaml includes acronyms, the filter is automatically invoked.
|
89
|
+
required: false
|
90
|
+
type: map
|
91
|
+
mapping:
|
92
|
+
'=':
|
93
|
+
desc: |
|
94
|
+
Acronym as used in the doc source, such as "bba".
|
95
|
+
The source usually refers to the acronym with syntax "[!bba]",
|
96
|
+
but other syntax forms are possible (see upstream doc).
|
97
|
+
type: map
|
98
|
+
class: Acronym
|
99
|
+
mapping:
|
100
|
+
shortform:
|
101
|
+
desc: The short form of the expanded acronym, such as "BBA".
|
102
|
+
required: true
|
103
|
+
type: str
|
104
|
+
longform:
|
105
|
+
desc: |
|
106
|
+
The expanded form of the abbreviation, such as "Beer Brewing Attitude".
|
107
|
+
The first instance of "[!bba]" in the doc is automatically expanded to
|
108
|
+
"<longform> (<shortform>)".
|
109
|
+
Example: "[!bba]" expands to "Beer Brewing Attitude (BBA)".
|
110
|
+
required: true
|
111
|
+
type: str
|
@@ -0,0 +1,50 @@
|
|
1
|
+
---
|
2
|
+
type: map
|
3
|
+
class: Standard
|
4
|
+
mapping:
|
5
|
+
name:
|
6
|
+
desc: Human-friendly name to appear in SSP.
|
7
|
+
type: str
|
8
|
+
required: true
|
9
|
+
|
10
|
+
standard_key:
|
11
|
+
desc: Unique ID to use within YAML files.
|
12
|
+
type: str
|
13
|
+
required: true
|
14
|
+
|
15
|
+
families:
|
16
|
+
desc: Optional list of control families.
|
17
|
+
type: seq
|
18
|
+
required: false
|
19
|
+
sequence:
|
20
|
+
- type: map
|
21
|
+
class: ControlFamily
|
22
|
+
mapping:
|
23
|
+
family_key:
|
24
|
+
desc: Unique ID of the family
|
25
|
+
type: str
|
26
|
+
unique: true
|
27
|
+
name:
|
28
|
+
desc: Human-friendly name of the family
|
29
|
+
type: str
|
30
|
+
controls:
|
31
|
+
desc: Mandatory list of controls defined by the standard.
|
32
|
+
required: true
|
33
|
+
type: seq
|
34
|
+
sequence:
|
35
|
+
- type: map
|
36
|
+
class: Control
|
37
|
+
mapping:
|
38
|
+
control_key:
|
39
|
+
type: str
|
40
|
+
unique: true
|
41
|
+
required: true
|
42
|
+
family_key:
|
43
|
+
type: str
|
44
|
+
required: false
|
45
|
+
name:
|
46
|
+
type: str
|
47
|
+
required: true
|
48
|
+
description:
|
49
|
+
type: str
|
50
|
+
required: true
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: octool
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Morgan
|
@@ -92,6 +92,20 @@ dependencies:
|
|
92
92
|
- - '='
|
93
93
|
- !ruby/object:Gem::Version
|
94
94
|
version: 2.19.0
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: json_pure
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - '='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 2.3.0
|
102
|
+
type: :runtime
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - '='
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: 2.3.0
|
95
109
|
- !ruby/object:Gem::Dependency
|
96
110
|
name: kwalify
|
97
111
|
requirement: !ruby/object:Gem::Requirement
|
@@ -160,6 +174,10 @@ files:
|
|
160
174
|
- schemas/v1.0.1/component.yaml
|
161
175
|
- schemas/v1.0.1/config.yaml
|
162
176
|
- schemas/v1.0.1/standard.yaml
|
177
|
+
- schemas/v1.0.2/certification.yaml
|
178
|
+
- schemas/v1.0.2/component.yaml
|
179
|
+
- schemas/v1.0.2/config.yaml
|
180
|
+
- schemas/v1.0.2/standard.yaml
|
163
181
|
- templates/ssp.erb
|
164
182
|
homepage: https://github.com/jumanjiman/octool
|
165
183
|
licenses:
|