ats 0.1.9 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ats-cli.gemspec +1 -0
- data/lib/ats.rb +2 -0
- data/lib/ats/cli.rb +6 -0
- data/lib/ats/cli/setup.rb +11 -2
- data/lib/ats/cli/shiro/application.rb +13 -0
- data/lib/ats/cli/shiro/tokens.rb +12 -0
- data/lib/ats/cli/shiro/versions.rb +14 -0
- data/lib/ats/http_api.rb +10 -1
- data/lib/ats/shiro/api.rb +52 -0
- data/lib/ats/shiro/tokens.rb +15 -0
- data/lib/ats/version.rb +1 -1
- metadata +8 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7eb27ec01faf12a9d4ccf0ca36588f91b72305ce29c6dc6034fe9089f546bc53
|
4
|
+
data.tar.gz: 941b422bf5a5e71ca0004dc6ad9b2d516a54b83db255fcb24e292844fe130322
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 165b94fb99a63af982466640a85abddcef4e32a2a23369e88371e09f19f8be124249b7891e542228f408ed292b09bf3acd11f3614f72aa3bf5695228a9e958da
|
7
|
+
data.tar.gz: 78d3cfecdebf5b0e0ec64aac27319c2670e3fb98d46f6b6e4ed770d64b6e67d0dfa957e22988c0a1e918e670ac918af42fe288b81d981bf0a00b7ddbdbd1c416
|
data/ats-cli.gemspec
CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.bindir = "exe"
|
23
23
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
24
24
|
spec.require_paths = ["lib"]
|
25
|
+
spec.required_ruby_version = '>= 2.5.0'
|
25
26
|
|
26
27
|
spec.add_dependency 'thor', '~> 0.20'
|
27
28
|
spec.add_development_dependency "bundler", "~> 1.16"
|
data/lib/ats.rb
CHANGED
data/lib/ats/cli.rb
CHANGED
@@ -13,6 +13,9 @@ require 'ats/cli/amp4e/events'
|
|
13
13
|
require 'ats/cli/amp4e/groups'
|
14
14
|
require 'ats/cli/amp4e/policies'
|
15
15
|
require 'ats/cli/amp4e/application'
|
16
|
+
require 'ats/cli/shiro/tokens'
|
17
|
+
require 'ats/cli/shiro/versions'
|
18
|
+
require 'ats/cli/shiro/application'
|
16
19
|
|
17
20
|
module ATS
|
18
21
|
module CLI
|
@@ -25,6 +28,9 @@ module ATS
|
|
25
28
|
desc 'amp4e SUBCOMMAND ...ARGS', 'interact with the AMP for Endpoints API'
|
26
29
|
subcommand 'amp4e', AMP4E::Application
|
27
30
|
|
31
|
+
desc 'shiro SUBCOMMAND ...ARGS', 'interact with the AMP for Endpoints API'
|
32
|
+
subcommand 'shiro', Shiro::Application
|
33
|
+
|
28
34
|
desc 'setup', 'setup'
|
29
35
|
subcommand :setup, ATS::CLI::Setup
|
30
36
|
|
data/lib/ats/cli/setup.rb
CHANGED
@@ -5,6 +5,10 @@ module ATS
|
|
5
5
|
|
6
6
|
desc 'setup', 'Initialize the .atsrc file.'
|
7
7
|
def setup
|
8
|
+
say "Default Configuration:", :green
|
9
|
+
yaml = YAML.dump(default_settings)
|
10
|
+
say yaml, :yellow
|
11
|
+
|
8
12
|
say "Current Configuration:", :green
|
9
13
|
say JSON.pretty_generate(configuration.to_h), :green
|
10
14
|
|
@@ -18,9 +22,8 @@ module ATS
|
|
18
22
|
say "Configuration file not found."
|
19
23
|
new_file = configuration.config_files.first
|
20
24
|
say "New file created at #{new_file}."
|
21
|
-
yaml = YAML.dump(default_settings)
|
22
|
-
say yaml, :yellow
|
23
25
|
IO.write(new_file, yaml)
|
26
|
+
File.chmod(0600, new_file)
|
24
27
|
end
|
25
28
|
|
26
29
|
private
|
@@ -41,6 +44,12 @@ module ATS
|
|
41
44
|
port: 443,
|
42
45
|
scheme: 'https',
|
43
46
|
},
|
47
|
+
shiro: {
|
48
|
+
bearer_token: '',
|
49
|
+
host: 'auth.amp.cisco.com',
|
50
|
+
port: 443,
|
51
|
+
scheme: 'https',
|
52
|
+
},
|
44
53
|
}
|
45
54
|
}
|
46
55
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module ATS
|
2
|
+
module CLI
|
3
|
+
module Shiro
|
4
|
+
class Application < Thor
|
5
|
+
desc 'tokens SUBCOMMAND ...ARGS', 'interact with the Auth API'
|
6
|
+
subcommand :tokens, ATS::CLI::Shiro::Tokens
|
7
|
+
|
8
|
+
desc 'version SUBCOMMAND ...ARGS', 'interact with the Auth API'
|
9
|
+
subcommand :version, ATS::CLI::Shiro::Versions
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/ats/http_api.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'openssl'
|
2
|
+
|
1
3
|
module ATS
|
2
4
|
class HttpAPI
|
3
5
|
def initialize(headers: {}, debug: false)
|
@@ -45,7 +47,10 @@ module ATS
|
|
45
47
|
http = Net::HTTP.new(uri.host, uri.port)
|
46
48
|
http.read_timeout = 30
|
47
49
|
http.use_ssl = uri.scheme == "https"
|
48
|
-
|
50
|
+
if debug?
|
51
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
52
|
+
http.set_debug_output(ATS.logger)
|
53
|
+
end
|
49
54
|
http
|
50
55
|
end
|
51
56
|
|
@@ -66,5 +71,9 @@ module ATS
|
|
66
71
|
x.body = JSON.generate(body)
|
67
72
|
end
|
68
73
|
end
|
74
|
+
|
75
|
+
def debug?
|
76
|
+
@debug
|
77
|
+
end
|
69
78
|
end
|
70
79
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module ATS
|
2
|
+
module Shiro
|
3
|
+
class API
|
4
|
+
HEADERS = {
|
5
|
+
'Content-Type' => 'application/json',
|
6
|
+
'Accept' => 'application/json',
|
7
|
+
'User-Agent' => "RubyGems/ATS #{ATS::VERSION}",
|
8
|
+
}.freeze
|
9
|
+
|
10
|
+
attr_reader :http, :port, :host, :scheme, :bearer_token
|
11
|
+
|
12
|
+
def initialize(configuration:, debug: false)
|
13
|
+
@http = HttpAPI.new(headers: HEADERS, debug: debug)
|
14
|
+
@configuration = configuration
|
15
|
+
@port = configuration[:port]
|
16
|
+
@scheme = configuration[:scheme]
|
17
|
+
@host = configuration[:host]
|
18
|
+
@bearer_token = configuration[:bearer_token]
|
19
|
+
end
|
20
|
+
|
21
|
+
def tokens
|
22
|
+
ATS::Shiro::Tokens.new(self)
|
23
|
+
end
|
24
|
+
|
25
|
+
def version
|
26
|
+
get("version")
|
27
|
+
end
|
28
|
+
|
29
|
+
def get(url, params: {}, version: 1)
|
30
|
+
http.get(build_uri(url, version: version), headers: headers, body: params) do |request, response|
|
31
|
+
JSON.parse(response.body, symbolize_names: true)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def post(url, params: {}, version: 1)
|
36
|
+
http.post(build_uri(url, version: version), headers: headers, body: params) do |request, response|
|
37
|
+
JSON.parse(response.body, symbolize_names: true)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def build_uri(relative_url, version:)
|
44
|
+
URI::Generic.build(host: host, port: port, scheme: scheme, path: "/api/v#{version}/#{relative_url}")
|
45
|
+
end
|
46
|
+
|
47
|
+
def headers
|
48
|
+
{ AUTHORIZATION: "Bearer #{bearer_token}" }
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
data/lib/ats/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ats
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mokha
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03-
|
11
|
+
date: 2018-03-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -94,6 +94,9 @@ files:
|
|
94
94
|
- lib/ats/cli/amp4e/policies.rb
|
95
95
|
- lib/ats/cli/command.rb
|
96
96
|
- lib/ats/cli/setup.rb
|
97
|
+
- lib/ats/cli/shiro/application.rb
|
98
|
+
- lib/ats/cli/shiro/tokens.rb
|
99
|
+
- lib/ats/cli/shiro/versions.rb
|
97
100
|
- lib/ats/cli/threat_grid/application.rb
|
98
101
|
- lib/ats/cli/threat_grid/organizations.rb
|
99
102
|
- lib/ats/cli/threat_grid/samples.rb
|
@@ -102,6 +105,8 @@ files:
|
|
102
105
|
- lib/ats/cli/threat_grid/whoami.rb
|
103
106
|
- lib/ats/configuration.rb
|
104
107
|
- lib/ats/http_api.rb
|
108
|
+
- lib/ats/shiro/api.rb
|
109
|
+
- lib/ats/shiro/tokens.rb
|
105
110
|
- lib/ats/threat_grid/api.rb
|
106
111
|
- lib/ats/threat_grid/organizations.rb
|
107
112
|
- lib/ats/threat_grid/samples.rb
|
@@ -120,7 +125,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
120
125
|
requirements:
|
121
126
|
- - ">="
|
122
127
|
- !ruby/object:Gem::Version
|
123
|
-
version:
|
128
|
+
version: 2.5.0
|
124
129
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
130
|
requirements:
|
126
131
|
- - ">="
|