metasploit-model 5.0.1 → 5.0.3
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/.github/workflows/verify.yml +4 -8
- data/Gemfile +3 -0
- data/app/models/metasploit/model/search/operation/jsonb.rb +52 -0
- data/app/models/metasploit/model/search/operator/attribute.rb +2 -1
- data/cortex.yaml +18 -0
- data/lib/metasploit/model/search/operation.rb +1 -0
- data/lib/metasploit/model/version.rb +1 -1
- data/spec/app/models/metasploit/model/search/operation/jsonb_spec.rb +106 -0
- data/spec/app/models/metasploit/model/search/operator/attribute_spec.rb +1 -0
- data/spec/dummy/db/schema.rb +1 -1
- metadata +12 -95
- checksums.yaml.gz.sig +0 -0
- data/spec/dummy/config/initializers/secret_token.rb +0 -7
- data.tar.gz.sig +0 -0
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e79cce31ad22f8e008ef8fe0afc8751cd7be142a13dff72d093bd6486daea497
|
4
|
+
data.tar.gz: a87c239c566824705043b928ba6495ce016f84345d439933ab5023c2d081cb46
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 666637e0578c7d76006ccd81887bd78a46f25f0ede8edeeab93333c36285cd1df7c539bb94851b98c0344bf5bfa1645d46d4e2fbe3d0f83eab6a332f9493d85b
|
7
|
+
data.tar.gz: d47909b7df7e758ac3c71fd55bfc508b749653372cdefee6f4f0d97a98f12d1598db7e01a118ecf721f16e0427542b6a9e4d5345c1d137b3fffb24a747f37aaf
|
@@ -46,16 +46,12 @@ jobs:
|
|
46
46
|
fail-fast: true
|
47
47
|
matrix:
|
48
48
|
ruby:
|
49
|
-
- '2.7'
|
50
|
-
- '3.0'
|
51
49
|
- '3.1'
|
52
50
|
- '3.2'
|
51
|
+
- '3.3'
|
53
52
|
os:
|
54
|
-
- ubuntu-18.04
|
55
53
|
- ubuntu-22.04
|
56
|
-
|
57
|
-
- { os: ubuntu-22.04, ruby: '2.7' }
|
58
|
-
- { os: ubuntu-22.04, ruby: '3.0' }
|
54
|
+
- ubuntu-24.04
|
59
55
|
|
60
56
|
env:
|
61
57
|
RAILS_ENV: test
|
@@ -84,9 +80,9 @@ jobs:
|
|
84
80
|
bundle exec rake yard
|
85
81
|
|
86
82
|
- name: Upload coverage report
|
87
|
-
uses: actions/upload-artifact@
|
83
|
+
uses: actions/upload-artifact@v4
|
88
84
|
with:
|
89
|
-
name: coverage-${{ matrix.ruby }}
|
85
|
+
name: coverage-${{ matrix.os }}-${{ matrix.ruby }}
|
90
86
|
path: |
|
91
87
|
coverage/
|
92
88
|
retention-days: 1
|
data/Gemfile
CHANGED
@@ -9,6 +9,9 @@ end
|
|
9
9
|
|
10
10
|
# used by dummy application
|
11
11
|
group :development, :test do
|
12
|
+
# Temporary, remove once the Rails 7.1 update is complete
|
13
|
+
# see: https://stackoverflow.com/questions/79360526/uninitialized-constant-activesupportloggerthreadsafelevellogger-nameerror
|
14
|
+
gem 'concurrent-ruby', '1.3.4'
|
12
15
|
# supplies factories for producing model instance for specs
|
13
16
|
# Version 4.1.0 or newer is needed to support generate calls without the 'FactoryGirl.' in factory definitions syntax.
|
14
17
|
gem 'factory_bot'
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# Search operation with {Metasploit::Model::Search::Operation::Base#operator} with `#type` ':jsonb'.
|
2
|
+
class Metasploit::Model::Search::Operation::Jsonb < Metasploit::Model::Search::Operation::Base
|
3
|
+
#
|
4
|
+
# Validations
|
5
|
+
#
|
6
|
+
|
7
|
+
validates :value,
|
8
|
+
:presence => true
|
9
|
+
|
10
|
+
#
|
11
|
+
# Methods
|
12
|
+
#
|
13
|
+
|
14
|
+
# Sets {Metasploit::Model::Search::Operation::Base#value} by parsing the `formatted_value`
|
15
|
+
# String and attempting to generate a valid JSON if it contains a colon.
|
16
|
+
# Otherwise, it keeps the same value as a String.
|
17
|
+
#
|
18
|
+
# @param formatted_value [#to_s]
|
19
|
+
# @return [String] representing a JSON if `formatted_value` contains a colon.
|
20
|
+
# Otherwise it is a the same as `formatted_value`
|
21
|
+
def value=(formatted_value)
|
22
|
+
@value = transform_value(formatted_value.to_s)
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
# Transform an input String to a JSON if it contains a colon. It returns the String if not.
|
29
|
+
# Also, the first colon is used as a delimiter between the key and the value.
|
30
|
+
# Any subsequent colon will be part of the value.
|
31
|
+
# Finally, it handles double/single quotes to escape any colon that are not
|
32
|
+
# suppose to be a delimiter between the key and the value.
|
33
|
+
#
|
34
|
+
# @param input [#to_s]
|
35
|
+
# @return [String] representing a JSON if `input` contains a colon. Otherwise it is a the same as `input`
|
36
|
+
def transform_value(input)
|
37
|
+
# Regex to find the first colon that is NOT inside quotes
|
38
|
+
match = input.match(/((?:[^'":]++|"(?:\\.|[^"])*"|'(?:\\.|[^'])*')*?):(.*)/)
|
39
|
+
|
40
|
+
# If no valid colon is found, return the original string
|
41
|
+
return input unless match
|
42
|
+
|
43
|
+
key = match[1].strip # Extract key (before first valid colon)
|
44
|
+
value = match[2].strip # Extract value (after first valid colon)
|
45
|
+
|
46
|
+
# Remove starting and ending quotes and ensure they are valid JSON strings
|
47
|
+
key = key.gsub(/^["'](.*)["']$/, '\1').to_json
|
48
|
+
value = value.gsub(/^["'](.*)["']$/, '\1').to_json
|
49
|
+
"{#{key}: #{value}}"
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
data/cortex.yaml
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
---
|
2
|
+
info:
|
3
|
+
title: Metasploit Model
|
4
|
+
description: Common code, such as validators and mixins, that are shared between
|
5
|
+
ActiveModels in metasploit-framework and ActiveRecords in metasploit_data_models
|
6
|
+
x-cortex-git:
|
7
|
+
github:
|
8
|
+
alias: r7org
|
9
|
+
repository: rapid7/metasploit-model
|
10
|
+
x-cortex-tag: metasploit-model
|
11
|
+
x-cortex-type: service
|
12
|
+
x-cortex-domain-parents:
|
13
|
+
- tag: metasploit
|
14
|
+
x-cortex-groups:
|
15
|
+
- exposure:external-ship
|
16
|
+
openapi: 3.0.1
|
17
|
+
servers:
|
18
|
+
- url: "/"
|
@@ -13,6 +13,7 @@ module Metasploit::Model::Search::Operation
|
|
13
13
|
autoload :Set
|
14
14
|
autoload :String
|
15
15
|
autoload :Value
|
16
|
+
autoload :Jsonb
|
16
17
|
|
17
18
|
# @param options [Hash{Symbol => Object}]
|
18
19
|
# @option options [Metasploit::Module::Search::Query] :query The query that the parsed operation is a part.
|
@@ -0,0 +1,106 @@
|
|
1
|
+
RSpec.describe Metasploit::Model::Search::Operation::Jsonb, type: :model do
|
2
|
+
context 'validation' do
|
3
|
+
context 'value' do
|
4
|
+
before(:example) do
|
5
|
+
operation.valid?
|
6
|
+
end
|
7
|
+
|
8
|
+
let(:errors) do
|
9
|
+
operation.errors[:value]
|
10
|
+
end
|
11
|
+
|
12
|
+
let(:operation) do
|
13
|
+
described_class.new(:value => value)
|
14
|
+
end
|
15
|
+
|
16
|
+
context 'with String' do
|
17
|
+
let(:value) do
|
18
|
+
'search_string'
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should not record error' do
|
22
|
+
expect(errors).to be_empty
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'with Integer' do
|
27
|
+
let(:value) do
|
28
|
+
3
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should not record error' do
|
32
|
+
expect(errors).to be_empty
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context 'with a Symbol' do
|
37
|
+
let(:value) do
|
38
|
+
:mysym
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'should not record error' do
|
42
|
+
expect(errors).to be_empty
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context '#value' do
|
49
|
+
subject(:value) do
|
50
|
+
operation.value
|
51
|
+
end
|
52
|
+
|
53
|
+
let(:operation) do
|
54
|
+
described_class.new(:value => formatted_value)
|
55
|
+
end
|
56
|
+
|
57
|
+
context 'with String' do
|
58
|
+
let(:formatted_value) do
|
59
|
+
'test value'
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'should be passed as a String' do
|
63
|
+
expect(value).to eq(formatted_value.to_s)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
context 'with Integer' do
|
68
|
+
let(:formatted_value) do
|
69
|
+
3
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'should be passed as a String' do
|
73
|
+
expect(value).to eq(formatted_value.to_s)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
context 'with String containing colon characters' do
|
78
|
+
{
|
79
|
+
'key:value' => '{"key": "value"}',
|
80
|
+
'key:value:extra' => '{"key": "value:extra"}',
|
81
|
+
'"quoted:part":value' => '{"quoted:part": "value"}',
|
82
|
+
'"quoted:part":value:extra' => '{"quoted:part": "value:extra"}',
|
83
|
+
'a:b:c:d' => '{"a": "b:c:d"}',
|
84
|
+
'"x:y:z":a:b' => '{"x:y:z": "a:b"}',
|
85
|
+
"'single:quote':value" => '{"single:quote": "value"}',
|
86
|
+
"'single:quote':value:extra" => '{"single:quote": "value:extra"}',
|
87
|
+
"'a:b':c:d" => '{"a:b": "c:d"}',
|
88
|
+
'"x:y"and"z:w":final' => '{"x:y\"and\"z:w": "final"}',
|
89
|
+
"'x:y'and'z:w':final" => '{"x:y\'and\'z:w": "final"}',
|
90
|
+
'"a:b":c:"d:e"' => '{"a:b": "c:\"d:e\""}',
|
91
|
+
"'a:b':c:'d:e'" => '{"a:b": "c:\'d:e\'"}',
|
92
|
+
}.each do |input, expected|
|
93
|
+
|
94
|
+
context "with the string #{input}" do
|
95
|
+
let(:formatted_value) { input }
|
96
|
+
|
97
|
+
it 'should be passed as a valid JSON string' do
|
98
|
+
expect(value).to eq(expected)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
#
|
11
11
|
# It's strongly recommended that you check this file into your version control system.
|
12
12
|
|
13
|
-
ActiveRecord::Schema[7.
|
13
|
+
ActiveRecord::Schema[7.2].define(version: 0) do
|
14
14
|
# These are extensions that must be enabled in order to support this database
|
15
15
|
enable_extension "plpgsql"
|
16
16
|
|
metadata
CHANGED
@@ -1,99 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metasploit-model
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0.
|
4
|
+
version: 5.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Metasploit Hackers
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
-
|
12
|
-
-----BEGIN CERTIFICATE-----
|
13
|
-
MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
|
14
|
-
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
15
|
-
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
|
16
|
-
b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
|
17
|
-
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
|
18
|
-
cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
|
19
|
-
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
|
20
|
-
JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
|
21
|
-
mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
|
22
|
-
wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
|
23
|
-
VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
|
24
|
-
AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
|
25
|
-
AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
|
26
|
-
BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
|
27
|
-
pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
|
28
|
-
dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
|
29
|
-
fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
|
30
|
-
NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
|
31
|
-
H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
|
32
|
-
+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
|
33
|
-
-----END CERTIFICATE-----
|
34
|
-
- |
|
35
|
-
-----BEGIN CERTIFICATE-----
|
36
|
-
MIIFMDCCBBigAwIBAgIQBAkYG1/Vu2Z1U0O1b5VQCDANBgkqhkiG9w0BAQsFADBl
|
37
|
-
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
38
|
-
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
|
39
|
-
b3QgQ0EwHhcNMTMxMDIyMTIwMDAwWhcNMjgxMDIyMTIwMDAwWjByMQswCQYDVQQG
|
40
|
-
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
|
41
|
-
cnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBT
|
42
|
-
aWduaW5nIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+NOzHH8O
|
43
|
-
Ea9ndwfTCzFJGc/Q+0WZsTrbRPV/5aid2zLXcep2nQUut4/6kkPApfmJ1DcZ17aq
|
44
|
-
8JyGpdglrA55KDp+6dFn08b7KSfH03sjlOSRI5aQd4L5oYQjZhJUM1B0sSgmuyRp
|
45
|
-
wsJS8hRniolF1C2ho+mILCCVrhxKhwjfDPXiTWAYvqrEsq5wMWYzcT6scKKrzn/p
|
46
|
-
fMuSoeU7MRzP6vIK5Fe7SrXpdOYr/mzLfnQ5Ng2Q7+S1TqSp6moKq4TzrGdOtcT3
|
47
|
-
jNEgJSPrCGQ+UpbB8g8S9MWOD8Gi6CxR93O8vYWxYoNzQYIH5DiLanMg0A9kczye
|
48
|
-
n6Yzqf0Z3yWT0QIDAQABo4IBzTCCAckwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNV
|
49
|
-
HQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwMweQYIKwYBBQUHAQEEbTBr
|
50
|
-
MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUH
|
51
|
-
MAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJ
|
52
|
-
RFJvb3RDQS5jcnQwgYEGA1UdHwR6MHgwOqA4oDaGNGh0dHA6Ly9jcmw0LmRpZ2lj
|
53
|
-
ZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwOqA4oDaGNGh0dHA6
|
54
|
-
Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmww
|
55
|
-
TwYDVR0gBEgwRjA4BgpghkgBhv1sAAIEMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
|
56
|
-
d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCgYIYIZIAYb9bAMwHQYDVR0OBBYEFFrEuXsq
|
57
|
-
CqOl6nEDwGD5LfZldQ5YMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgP
|
58
|
-
MA0GCSqGSIb3DQEBCwUAA4IBAQA+7A1aJLPzItEVyCx8JSl2qB1dHC06GsTvMGHX
|
59
|
-
fgtg/cM9D8Svi/3vKt8gVTew4fbRknUPUbRupY5a4l4kgU4QpO4/cY5jDhNLrddf
|
60
|
-
RHnzNhQGivecRk5c/5CxGwcOkRX7uq+1UcKNJK4kxscnKqEpKBo6cSgCPC6Ro8Al
|
61
|
-
EeKcFEehemhor5unXCBc2XGxDI+7qPjFEmifz0DLQESlE/DmZAwlCEIysjaKJAL+
|
62
|
-
L3J+HNdJRZboWR3p+nRka7LrZkPas7CM1ekN3fYBIM6ZMWM9CBoYs4GbT8aTEAb8
|
63
|
-
B4H6i9r5gkn3Ym6hU/oSlBiFLpKR6mhsRDKyZqHnGKSaZFHv
|
64
|
-
-----END CERTIFICATE-----
|
65
|
-
- |
|
66
|
-
-----BEGIN CERTIFICATE-----
|
67
|
-
MIIFIzCCBAugAwIBAgIQCMePMbkSxvnPeJhYXIfaxzANBgkqhkiG9w0BAQsFADBy
|
68
|
-
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
69
|
-
d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQg
|
70
|
-
SUQgQ29kZSBTaWduaW5nIENBMB4XDTIwMTAwNzAwMDAwMFoXDTIzMTEwNjEyMDAw
|
71
|
-
MFowYDELMAkGA1UEBhMCVVMxFjAUBgNVBAgTDU1hc3NhY2h1c2V0dHMxDzANBgNV
|
72
|
-
BAcTBkJvc3RvbjETMBEGA1UEChMKUmFwaWQ3IExMQzETMBEGA1UEAxMKUmFwaWQ3
|
73
|
-
IExMQzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNTz4zvAy7h/vQp
|
74
|
-
4dr1txXHlABAagkwYYwTMCtHs5PXsJITx/5SAjx5swuaLfze5kPBNF2YImvFlOXY
|
75
|
-
WaB+0PsOnXnaARsDZU683xFlj8izU6IN6VrAHzDLKFBzruJENrOJD/ikbEtbjO/q
|
76
|
-
gFbmS9J9v5ohG/pcRSS0t4ZPAwymf8eCp6QsvOKK/Aymp1RhlRaP8N6N5CIpkhz1
|
77
|
-
9p968iCE+DjOXVYxcWE+jE/7uB1dbgrXykNBujMSS3GULOvVEY28n6NCmrPlo23g
|
78
|
-
yRjYVJ2Vy14nBqnxDZ/yRIfWRVjWoT9TsAEbe9gY29oDpSCSs4wSmLQd5zGCpZ9h
|
79
|
-
r0HDFB8CAwEAAaOCAcUwggHBMB8GA1UdIwQYMBaAFFrEuXsqCqOl6nEDwGD5LfZl
|
80
|
-
dQ5YMB0GA1UdDgQWBBTLBL7DTwumVEKtdCdpHVYMXOFeDzAOBgNVHQ8BAf8EBAMC
|
81
|
-
B4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwdwYDVR0fBHAwbjA1oDOgMYYvaHR0cDov
|
82
|
-
L2NybDMuZGlnaWNlcnQuY29tL3NoYTItYXNzdXJlZC1jcy1nMS5jcmwwNaAzoDGG
|
83
|
-
L2h0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9zaGEyLWFzc3VyZWQtY3MtZzEuY3Js
|
84
|
-
MEwGA1UdIARFMEMwNwYJYIZIAYb9bAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
|
85
|
-
d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQQBMIGEBggrBgEFBQcBAQR4MHYw
|
86
|
-
JAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBOBggrBgEFBQcw
|
87
|
-
AoZCaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0U0hBMkFzc3Vy
|
88
|
-
ZWRJRENvZGVTaWduaW5nQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEL
|
89
|
-
BQADggEBAN+GL5/myPWg7oH4mVrG7/OhXF1MoYQF0ddaNiqaweEHMuKJBQCVZRbL
|
90
|
-
37HojoKXXv2yyRJBCeTB+ojrxX+5PdLVZa0ss7toWzJ2A1poPXZ1eZvm5xeFD32z
|
91
|
-
YQaTmmNWNI3PCDTyJ2PXUc+bDiNNwcZ7yc5o78UNRvp9Jxghya17Q76c9Ov9wvnv
|
92
|
-
dxxQKWGOQy0m4fBrkyjAyH9Djjn81RbQrqYgPuhd5nD0HjN3VUQLhQbIJrk9TVs0
|
93
|
-
EknWpNgVhohbot1lfVAMmIhdtOVaRVcQQixWPwprDj/ydB8ryDMDosIMcw+fkoXU
|
94
|
-
9GJsSaSRRYQ9UUkVL27b64okU8D48m8=
|
95
|
-
-----END CERTIFICATE-----
|
96
|
-
date: 2023-01-31 00:00:00.000000000 Z
|
10
|
+
cert_chain: []
|
11
|
+
date: 2025-04-01 00:00:00.000000000 Z
|
97
12
|
dependencies:
|
98
13
|
- !ruby/object:Gem::Dependency
|
99
14
|
name: metasploit-yard
|
@@ -254,6 +169,7 @@ files:
|
|
254
169
|
- app/models/metasploit/model/search/operation/group/intersection.rb
|
255
170
|
- app/models/metasploit/model/search/operation/group/union.rb
|
256
171
|
- app/models/metasploit/model/search/operation/integer.rb
|
172
|
+
- app/models/metasploit/model/search/operation/jsonb.rb
|
257
173
|
- app/models/metasploit/model/search/operation/null.rb
|
258
174
|
- app/models/metasploit/model/search/operation/set.rb
|
259
175
|
- app/models/metasploit/model/search/operation/set/integer.rb
|
@@ -282,6 +198,7 @@ files:
|
|
282
198
|
- app/validators/parameters_validator.rb
|
283
199
|
- app/validators/password_is_strong_validator.rb
|
284
200
|
- config/locales/en.yml
|
201
|
+
- cortex.yaml
|
285
202
|
- lib/metasploit/model.rb
|
286
203
|
- lib/metasploit/model/association.rb
|
287
204
|
- lib/metasploit/model/association/error.rb
|
@@ -334,6 +251,7 @@ files:
|
|
334
251
|
- spec/app/models/metasploit/model/search/operation/group/intersection_spec.rb
|
335
252
|
- spec/app/models/metasploit/model/search/operation/group/union_spec.rb
|
336
253
|
- spec/app/models/metasploit/model/search/operation/integer_spec.rb
|
254
|
+
- spec/app/models/metasploit/model/search/operation/jsonb_spec.rb
|
337
255
|
- spec/app/models/metasploit/model/search/operation/null_spec.rb
|
338
256
|
- spec/app/models/metasploit/model/search/operation/set/integer_spec.rb
|
339
257
|
- spec/app/models/metasploit/model/search/operation/set/string_spec.rb
|
@@ -380,7 +298,6 @@ files:
|
|
380
298
|
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
381
299
|
- spec/dummy/config/initializers/inflections.rb
|
382
300
|
- spec/dummy/config/initializers/mime_types.rb
|
383
|
-
- spec/dummy/config/initializers/secret_token.rb
|
384
301
|
- spec/dummy/config/initializers/session_store.rb
|
385
302
|
- spec/dummy/config/initializers/wrap_parameters.rb
|
386
303
|
- spec/dummy/config/locales/en.yml
|
@@ -436,10 +353,10 @@ files:
|
|
436
353
|
- spec/support/shared/examples/search_association.rb
|
437
354
|
- spec/support/shared/examples/search_attribute.rb
|
438
355
|
- spec/support/shared/examples/search_with.rb
|
439
|
-
homepage:
|
356
|
+
homepage:
|
440
357
|
licenses: []
|
441
358
|
metadata: {}
|
442
|
-
post_install_message:
|
359
|
+
post_install_message:
|
443
360
|
rdoc_options: []
|
444
361
|
require_paths:
|
445
362
|
- app/models
|
@@ -456,8 +373,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
456
373
|
- !ruby/object:Gem::Version
|
457
374
|
version: '0'
|
458
375
|
requirements: []
|
459
|
-
rubygems_version: 3.
|
460
|
-
signing_key:
|
376
|
+
rubygems_version: 3.4.19
|
377
|
+
signing_key:
|
461
378
|
specification_version: 4
|
462
379
|
summary: Metasploit Model Mixins and Validators
|
463
380
|
test_files:
|
@@ -473,6 +390,7 @@ test_files:
|
|
473
390
|
- spec/app/models/metasploit/model/search/operation/group/intersection_spec.rb
|
474
391
|
- spec/app/models/metasploit/model/search/operation/group/union_spec.rb
|
475
392
|
- spec/app/models/metasploit/model/search/operation/integer_spec.rb
|
393
|
+
- spec/app/models/metasploit/model/search/operation/jsonb_spec.rb
|
476
394
|
- spec/app/models/metasploit/model/search/operation/null_spec.rb
|
477
395
|
- spec/app/models/metasploit/model/search/operation/set/integer_spec.rb
|
478
396
|
- spec/app/models/metasploit/model/search/operation/set/string_spec.rb
|
@@ -519,7 +437,6 @@ test_files:
|
|
519
437
|
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
520
438
|
- spec/dummy/config/initializers/inflections.rb
|
521
439
|
- spec/dummy/config/initializers/mime_types.rb
|
522
|
-
- spec/dummy/config/initializers/secret_token.rb
|
523
440
|
- spec/dummy/config/initializers/session_store.rb
|
524
441
|
- spec/dummy/config/initializers/wrap_parameters.rb
|
525
442
|
- spec/dummy/config/locales/en.yml
|
checksums.yaml.gz.sig
DELETED
Binary file
|
@@ -1,7 +0,0 @@
|
|
1
|
-
# Be sure to restart your server when you modify this file.
|
2
|
-
|
3
|
-
# Your secret key for verifying the integrity of signed cookies.
|
4
|
-
# If you change this key, all old signed cookies will become invalid!
|
5
|
-
# Make sure the secret is at least 30 characters and all random,
|
6
|
-
# no regular words or you'll be exposed to dictionary attacks.
|
7
|
-
Dummy::Application.config.secret_token = 'f04f565f9a4db0f0af88f4bd8b79952d139b02434b889a7c7bb3fe83405e9032409bd16bca7b0d7d68a8b119b6ddfd31b17d19155cd699a27e19a48bd05eb200'
|
data.tar.gz.sig
DELETED
Binary file
|
metadata.gz.sig
DELETED
Binary file
|