metasploit-model 5.0.2 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8ce4e3a3da4e03b08991c6687800d1236b4b7f92931f277f66dee364ee3344f2
4
- data.tar.gz: b90d44092cf9d3a9ca2117f8b9d6b62b0064d79c3e22a0a6308f70facf7ea04f
3
+ metadata.gz: e79cce31ad22f8e008ef8fe0afc8751cd7be142a13dff72d093bd6486daea497
4
+ data.tar.gz: a87c239c566824705043b928ba6495ce016f84345d439933ab5023c2d081cb46
5
5
  SHA512:
6
- metadata.gz: 91e34a3d2fc310afbb5e82a60529728351f3ceaf74abd746a366310655edf65b5f7fafdd251302dfd64d5bdcf28ca2bd2bc408ae84a34b9722543e6dd7039cac
7
- data.tar.gz: 19f802208347fa112522ac396118fb984c3e562c86c271c1d0491783488e98be5c464d992aeb40e677aa1f6fdca4edbef4a8e18a406df4c4503bb80af28b0a1e
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
- exclude:
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@v2
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
@@ -16,7 +16,8 @@ class Metasploit::Model::Search::Operator::Attribute < Metasploit::Model::Search
16
16
  {
17
17
  set: :string
18
18
  },
19
- :string
19
+ :string,
20
+ :jsonb
20
21
  ]
21
22
 
22
23
  #
data/cortex.yaml CHANGED
@@ -11,6 +11,8 @@ info:
11
11
  x-cortex-type: service
12
12
  x-cortex-domain-parents:
13
13
  - tag: metasploit
14
+ x-cortex-groups:
15
+ - exposure:external-ship
14
16
  openapi: 3.0.1
15
17
  servers:
16
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.
@@ -1,7 +1,7 @@
1
1
  module Metasploit
2
2
  module Model
3
3
  # VERSION is managed by GemRelease
4
- VERSION = '5.0.2'
4
+ VERSION = '5.0.3'
5
5
 
6
6
  # @return [String]
7
7
  #
@@ -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
@@ -25,6 +25,7 @@ RSpec.describe Metasploit::Model::Search::Operator::Attribute, type: :model do
25
25
  }
26
26
  it { is_expected.to include(:integer) }
27
27
  it { is_expected.to include(:string) }
28
+ it { is_expected.to include(:jsonb) }
28
29
  end
29
30
  end
30
31
 
@@ -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.0].define(version: 0) do
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.2
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-10-04 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
@@ -335,6 +251,7 @@ files:
335
251
  - spec/app/models/metasploit/model/search/operation/group/intersection_spec.rb
336
252
  - spec/app/models/metasploit/model/search/operation/group/union_spec.rb
337
253
  - spec/app/models/metasploit/model/search/operation/integer_spec.rb
254
+ - spec/app/models/metasploit/model/search/operation/jsonb_spec.rb
338
255
  - spec/app/models/metasploit/model/search/operation/null_spec.rb
339
256
  - spec/app/models/metasploit/model/search/operation/set/integer_spec.rb
340
257
  - spec/app/models/metasploit/model/search/operation/set/string_spec.rb
@@ -381,7 +298,6 @@ files:
381
298
  - spec/dummy/config/initializers/filter_parameter_logging.rb
382
299
  - spec/dummy/config/initializers/inflections.rb
383
300
  - spec/dummy/config/initializers/mime_types.rb
384
- - spec/dummy/config/initializers/secret_token.rb
385
301
  - spec/dummy/config/initializers/session_store.rb
386
302
  - spec/dummy/config/initializers/wrap_parameters.rb
387
303
  - spec/dummy/config/locales/en.yml
@@ -437,10 +353,10 @@ files:
437
353
  - spec/support/shared/examples/search_association.rb
438
354
  - spec/support/shared/examples/search_attribute.rb
439
355
  - spec/support/shared/examples/search_with.rb
440
- homepage:
356
+ homepage:
441
357
  licenses: []
442
358
  metadata: {}
443
- post_install_message:
359
+ post_install_message:
444
360
  rdoc_options: []
445
361
  require_paths:
446
362
  - app/models
@@ -457,8 +373,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
457
373
  - !ruby/object:Gem::Version
458
374
  version: '0'
459
375
  requirements: []
460
- rubygems_version: 3.1.4
461
- signing_key:
376
+ rubygems_version: 3.4.19
377
+ signing_key:
462
378
  specification_version: 4
463
379
  summary: Metasploit Model Mixins and Validators
464
380
  test_files:
@@ -474,6 +390,7 @@ test_files:
474
390
  - spec/app/models/metasploit/model/search/operation/group/intersection_spec.rb
475
391
  - spec/app/models/metasploit/model/search/operation/group/union_spec.rb
476
392
  - spec/app/models/metasploit/model/search/operation/integer_spec.rb
393
+ - spec/app/models/metasploit/model/search/operation/jsonb_spec.rb
477
394
  - spec/app/models/metasploit/model/search/operation/null_spec.rb
478
395
  - spec/app/models/metasploit/model/search/operation/set/integer_spec.rb
479
396
  - spec/app/models/metasploit/model/search/operation/set/string_spec.rb
@@ -520,7 +437,6 @@ test_files:
520
437
  - spec/dummy/config/initializers/filter_parameter_logging.rb
521
438
  - spec/dummy/config/initializers/inflections.rb
522
439
  - spec/dummy/config/initializers/mime_types.rb
523
- - spec/dummy/config/initializers/secret_token.rb
524
440
  - spec/dummy/config/initializers/session_store.rb
525
441
  - spec/dummy/config/initializers/wrap_parameters.rb
526
442
  - spec/dummy/config/locales/en.yml
checksums.yaml.gz.sig DELETED
@@ -1,2 +0,0 @@
1
- d�Y6�Zb�剺�e��,�M0�����XY꺌W�����͸\��k]�]g�K�w�ZG�9�҇W�nT���oH��0o��J ;,ς��O�KO:�}oc/�K��n`�|kHI���m~���ߏ�n����&̜�y��Pa�/Ș��9+�Of�ZD+�i�ރ�����ٹu�<��� ��I�4�j6o=��<��(@i�8J ]��,��߰�n�����x�*+����,��� ���2�����b�v
2
- ��
@@ -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
@@ -1 +0,0 @@
1
- r�bqr:s�D`aT�I�ܭ$Z̖�E�/��*� !��½�}||j�Ib�$x�%}T �MkTy�A�$Ò^6���]���=�F5ԝ+ P�vO�rs�����C��S5t�
metadata.gz.sig DELETED
Binary file