soar_auditor_api 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9879b49a5a82d14cc2fe47b7ebddaf5c63d482c0
4
- data.tar.gz: 6b5131d74480cd7d7a4c5f15f11dfdcbe87b77e5
3
+ metadata.gz: 86bd2491171a982f60f65da6895a59d063339d35
4
+ data.tar.gz: b9c2e332fa486de9d2426d62c82c0f3cec123c2d
5
5
  SHA512:
6
- metadata.gz: a696ee6e0c1572c352e0990f3ee788a1d4929914287e5d59271863a66d82718c699168d411851af30b2be2232fda78822ee0ee76103f0ec4a52630ef2a579deb
7
- data.tar.gz: 242caa4d8d79f6e521ceae3156885383b9227f5878be3f2c5028de8131f500fce233b3a26557553ef34186c8cc401a506666cce07281d39fab4ce41af3de5a63
6
+ metadata.gz: 260db2993a63524491abf76e5819ab0e58fbcd16aea12835acf06a9e90c761072aad52256274fe6ec01330d8d12a28636fd56b7e2e3257882f43c1c3017aee2d
7
+ data.tar.gz: 01d1e3b6d87b79e1146066c159a5db24b8cd0082b5babe411eb59a222d8852620c4231c8a3dbd8bc7cd312c6ebcc39344fdd5cfaaf957d62c37d8d35ed06fdc5
data/README.md CHANGED
@@ -1,12 +1,10 @@
1
- #TODO fix this file
2
-
3
1
  # SoarAuditorApi
4
2
 
5
3
  This gem provides the auditor api for the SOAR architecture.
6
4
 
7
5
  ## State of the API
8
6
 
9
-
7
+ This API is still a work in progress but should be sufficient to most auditors
10
8
 
11
9
  ## Installation
12
10
 
@@ -32,14 +30,6 @@ Behavioural driven testing can be performed:
32
30
 
33
31
  ## Usage
34
32
 
35
-
36
-
37
- ### Auditing Providers that utilize the SoarAuditorAPI as clients
38
-
39
-
40
- Note that the APIs (debug/info/warn/error/fatal) accept any object as a parameter. The object will be serialized using the .to_s method and therefore the object must implement the .to_s method (or already be a string that has the .to_s method).
41
-
42
-
43
33
  ### Auditors that extend from the SoarAuditorAPI
44
34
 
45
35
  Extend from the SoarAuditorAPI as follow
@@ -49,7 +39,7 @@ class MyAuditor < SoarAuditorApi::SoarAuditorAPI
49
39
  end
50
40
  ```
51
41
 
52
- The auditors that extend from this API must implement two methods: "audit" and "configuration_is_valid"
42
+ It is required that the auditors that extend from this API implement two methods: "audit" and "configuration_is_valid". The API will call these methods using inversion of control as follow:
53
43
 
54
44
  The configuration_is_valid method provides the API with a way of ensuring that a configuration is valid for the auditor.
55
45
  ```ruby
@@ -65,68 +55,69 @@ def audit(data)
65
55
  end
66
56
  ```
67
57
 
68
- The configuration is made available to the auditor through the @configuration attribute in the API.
69
-
70
-
71
-
72
-
73
- #TODO complete this section
74
- #TODO Extend the SoarAuditorApi::AuditingProviderAPI to create an auditing provider:
75
-
76
-
77
-
78
- Provide the required inversion of control method to configure (an) injected auditor(s):
79
-
80
- ```
81
- def configure_auditor(configuration = nil)
82
- @auditor.configure(configuration)
58
+ The configuration is made available to the auditor through the @configuration attribute in the API class.
59
+ ```ruby
60
+ def audit(data)
61
+ puts @configuration["preprefix"] + data
83
62
  end
84
63
  ```
85
64
 
86
- Initialize the provider so:
87
65
 
88
- ```
89
- auditor = MyAuditor.new
90
- auditor_configuration = { 'some' => 'configuration' }
91
- @iut = MyAuditingProvider.new(auditor, auditor_configuration)
66
+ ### Auditing Providers that utilize the SoarAuditorAPI as clients
67
+
68
+ Instantiate an auditor that extends the SoarAuditorAPI:
69
+ ```ruby
70
+ @iut = SanityAuditor.new
92
71
  ```
93
72
 
94
- Audit using the API methods, e.g.:
73
+ Configure the auditor with required parameters:
74
+ ```ruby
75
+ configuration = { "preprefix" => "very important:" }
76
+ @iut.configure(configuration)
77
+ ```
95
78
 
79
+ Set the desired audit level. Allowed levels (in increasing level of priority) are :debug, :info, :warn, :error and :fatal. As an example only :warn, :error and :fatal audit events will be logged if you set the level to :warn.
80
+ ```ruby
81
+ @iut.set_audit_level(:warn)
96
82
  ```
83
+
84
+ Use the auditing interfaces as follow. The API also supports appending as below, enabling support, e.g. for Rack::CommonLogger, etc.:
85
+ ```ruby
97
86
  @iut.info("This is info")
98
- @iut.debug(some_debug_object)
99
87
  @iut.warn("Statistics show that dropped packets have increased to #{dropped}%")
100
88
  @iut.error("Could not resend some dropped packets. They have been lost. All is still OK, I could compensate")
101
89
  @iut.fatal("Unable to perform action, too many dropped packets. Functional degradation.")
102
90
  @iut << 'Rack::CommonLogger requires this'
103
91
  ```
104
92
 
105
- The API also supports appending as below, enabling support, e.g. for Rack::CommonLogger, etc.:
106
-
107
- ```
108
- <<
93
+ Note that the APIs (debug/info/warn/error/fatal) accept any object as a parameter. The object will be serialized using the .to_s method and therefore the object must implement the .to_s method (or already be of a basic object type that has the .to_s method).
94
+ ```ruby
95
+ some_debug_object = 123
96
+ @iut.debug(some_debug_object)
109
97
  ```
110
98
 
111
99
  ## Detailed example
112
100
 
113
- ```
114
- require 'log4r'
101
+ ```ruby
115
102
  require 'soar_auditor_api'
103
+ require 'byebug'
104
+
105
+ class SanityAuditor < SoarAuditorApi::SoarAuditorAPI
106
+ def configuration_is_valid(configuration)
107
+ return configuration.include?("preprefix")
108
+ end
116
109
 
117
- class Log4rAuditingProvider < SoarAuditorApi::AuditingProviderAPI
118
- def configure_auditor(configuration = nil)
119
- @auditor.outputters = configuration['outputter']
110
+ def audit(data)
111
+ puts @configuration["preprefix"] + data
120
112
  end
121
113
  end
122
114
 
123
115
  class Main
124
- include Log4r
125
-
126
116
  def test_sanity
127
- auditor = Logger.new 'sanity'
128
- auditor_configuration = { 'outputter' => Outputter.stdout }
129
- @iut = Log4rAuditingProvider.new(auditor, auditor_configuration)
117
+ @iut = SanityAuditor.new
118
+ configuration = { "preprefix" => "very important:" }
119
+ @iut.configure(configuration)
120
+ @iut.set_audit_level(:debug)
130
121
 
131
122
  some_debug_object = 123
132
123
  @iut.info("This is info")
@@ -135,6 +126,7 @@ class Main
135
126
  @iut.warn("Statistics show that dropped packets have increased to #{dropped}%")
136
127
  @iut.error("Could not resend some dropped packets. They have been lost. All is still OK, I could compensate")
137
128
  @iut.fatal("Unable to perform action, too many dropped packets. Functional degradation.")
129
+ @iut << 'Rack::CommonLogger requires this'
138
130
  end
139
131
  end
140
132
 
@@ -1,3 +1,3 @@
1
1
  module SoarAuditorApi
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/sanity/Gemfile CHANGED
@@ -1,5 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'log4r'
4
3
  gem 'byebug'
5
- gem 'soar_auditor_api', "~> 0.0.1"
4
+ gem 'soar_auditor_api', "~> 0.0.2"
data/sanity/sanity.rb CHANGED
@@ -1,20 +1,22 @@
1
1
  require 'soar_auditor_api'
2
2
  require 'byebug'
3
3
 
4
- class SanityAuditor < SoarAuditorAPI
4
+ class SanityAuditor < SoarAuditorApi::SoarAuditorAPI
5
5
  def configuration_is_valid(configuration)
6
- return true
6
+ return configuration.include?("preprefix")
7
7
  end
8
8
 
9
9
  def audit(data)
10
- puts data
10
+ puts @configuration["preprefix"] + data
11
11
  end
12
12
  end
13
13
 
14
14
  class Main
15
15
  def test_sanity
16
16
  @iut = SanityAuditor.new
17
- @iut.configure(nil)
17
+ configuration = { "preprefix" => "very important:" }
18
+ @iut.configure(configuration)
19
+ @iut.set_audit_level(:debug)
18
20
 
19
21
  some_debug_object = 123
20
22
  @iut.info("This is info")
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["barney.de.villiers@hetzner.co.za"]
11
11
 
12
12
  spec.summary = %q{SOAR auditor api}
13
- spec.description = %q{SOAR auditor api from which auditors will extend from}
13
+ spec.description = %q{SOAR auditor api from which auditor implementations will extend}
14
14
  spec.homepage = "https://github.hetzner.co.za/hetznerZA/soar_auditor_api"
15
15
  spec.license = "MIT"
16
16
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: soar_auditor_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Barney de Villiers
@@ -66,7 +66,7 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '9'
69
- description: SOAR auditor api from which auditors will extend from
69
+ description: SOAR auditor api from which auditor implementations will extend
70
70
  email:
71
71
  - barney.de.villiers@hetzner.co.za
72
72
  executables: []