logstruct 0.1.2 → 0.1.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/CHANGELOG.md +12 -1
- data/README.md +4 -6
- data/lib/log_struct/concerns/configuration.rb +2 -2
- data/lib/log_struct/config_struct/integrations.rb +5 -0
- data/lib/log_struct/enums/log_field.rb +12 -1
- data/lib/log_struct/integrations/action_mailer/error_handling.rb +121 -27
- data/lib/log_struct/integrations/action_mailer/event_logging.rb +30 -14
- data/lib/log_struct/integrations/action_mailer/metadata_collection.rb +18 -24
- data/lib/log_struct/integrations/action_mailer.rb +13 -6
- data/lib/log_struct/integrations/active_job/log_subscriber.rb +2 -2
- data/lib/log_struct/integrations/active_storage.rb +8 -8
- data/lib/log_struct/integrations/ahoy.rb +2 -3
- data/lib/log_struct/integrations/carrierwave.rb +8 -10
- data/lib/log_struct/integrations/good_job/log_subscriber.rb +5 -5
- data/lib/log_struct/integrations/good_job/logger.rb +2 -6
- data/lib/log_struct/integrations/good_job.rb +1 -1
- data/lib/log_struct/integrations/host_authorization.rb +27 -36
- data/lib/log_struct/integrations/lograge.rb +1 -1
- data/lib/log_struct/integrations/shrine.rb +21 -24
- data/lib/log_struct/integrations/sidekiq/logger.rb +8 -1
- data/lib/log_struct/log/action_mailer/delivered.rb +14 -49
- data/lib/log_struct/log/action_mailer/delivery.rb +14 -49
- data/lib/log_struct/log/action_mailer/error.rb +72 -0
- data/lib/log_struct/log/action_mailer.rb +15 -2
- data/lib/log_struct/log/active_job/enqueue.rb +9 -73
- data/lib/log_struct/log/active_job/finish.rb +9 -76
- data/lib/log_struct/log/active_job/schedule.rb +9 -73
- data/lib/log_struct/log/active_job/start.rb +9 -76
- data/lib/log_struct/log/active_job.rb +2 -2
- data/lib/log_struct/log/active_model_serializers.rb +5 -45
- data/lib/log_struct/log/active_storage/delete.rb +8 -46
- data/lib/log_struct/log/active_storage/download.rb +9 -55
- data/lib/log_struct/log/active_storage/exist.rb +9 -49
- data/lib/log_struct/log/active_storage/metadata.rb +9 -49
- data/lib/log_struct/log/active_storage/stream.rb +9 -49
- data/lib/log_struct/log/active_storage/upload.rb +9 -64
- data/lib/log_struct/log/active_storage/url.rb +9 -49
- data/lib/log_struct/log/active_storage.rb +2 -2
- data/lib/log_struct/log/ahoy.rb +5 -43
- data/lib/log_struct/log/carrierwave/delete.rb +15 -69
- data/lib/log_struct/log/carrierwave/download.rb +15 -77
- data/lib/log_struct/log/carrierwave/upload.rb +15 -83
- data/lib/log_struct/log/carrierwave.rb +13 -4
- data/lib/log_struct/log/dotenv/load.rb +5 -33
- data/lib/log_struct/log/dotenv/restore.rb +5 -33
- data/lib/log_struct/log/dotenv/save.rb +5 -33
- data/lib/log_struct/log/dotenv/update.rb +5 -33
- data/lib/log_struct/log/error.rb +7 -40
- data/lib/log_struct/log/good_job/enqueue.rb +9 -72
- data/lib/log_struct/log/good_job/error.rb +9 -89
- data/lib/log_struct/log/good_job/finish.rb +9 -78
- data/lib/log_struct/log/good_job/log.rb +11 -75
- data/lib/log_struct/log/good_job/schedule.rb +7 -78
- data/lib/log_struct/log/good_job/start.rb +7 -78
- data/lib/log_struct/log/good_job.rb +2 -2
- data/lib/log_struct/log/plain.rb +5 -32
- data/lib/log_struct/log/puma/shutdown.rb +5 -32
- data/lib/log_struct/log/puma/start.rb +5 -56
- data/lib/log_struct/log/request.rb +7 -90
- data/lib/log_struct/log/security/blocked_host.rb +12 -73
- data/lib/log_struct/log/security/csrf_violation.rb +6 -67
- data/lib/log_struct/log/security/ip_spoof.rb +6 -73
- data/lib/log_struct/log/shrine/delete.rb +6 -41
- data/lib/log_struct/log/shrine/download.rb +6 -44
- data/lib/log_struct/log/shrine/exist.rb +6 -44
- data/lib/log_struct/log/shrine/metadata.rb +8 -46
- data/lib/log_struct/log/shrine/upload.rb +6 -53
- data/lib/log_struct/log/sidekiq.rb +5 -42
- data/lib/log_struct/log/sql.rb +5 -65
- data/lib/log_struct/log.rb +2 -2
- data/lib/log_struct/monkey_patches/active_support/tagged_logging/formatter.rb +12 -1
- data/lib/log_struct/railtie.rb +0 -22
- data/lib/log_struct/semantic_logger/concerns/log_methods.rb +100 -0
- data/lib/log_struct/semantic_logger/logger.rb +46 -15
- data/lib/log_struct/semantic_logger/setup.rb +11 -7
- data/lib/log_struct/shared/{shared/add_request_fields.rb → add_request_fields.rb} +2 -2
- data/lib/log_struct/shared/{shared/merge_additional_data_fields.rb → merge_additional_data_fields.rb} +1 -1
- data/lib/log_struct/shared/{shared/serialize_common.rb → serialize_common.rb} +9 -3
- data/lib/log_struct/{log/shared → shared}/serialize_common_public.rb +2 -2
- data/lib/log_struct/version.rb +1 -1
- data/lib/log_struct.rb +4 -1
- data/logstruct.gemspec +1 -1
- metadata +9 -11
- data/lib/log_struct/integrations/action_mailer/callbacks.rb +0 -100
- data/lib/log_struct/log/shared/add_request_fields.rb +0 -4
- data/lib/log_struct/log/shared/merge_additional_data_fields.rb +0 -4
- data/lib/log_struct/log/shared/serialize_common.rb +0 -4
@@ -9,9 +9,9 @@
|
|
9
9
|
require "log_struct/shared/interfaces/common_fields"
|
10
10
|
require "log_struct/shared/interfaces/additional_data_field"
|
11
11
|
require "log_struct/shared/interfaces/request_fields"
|
12
|
-
require "log_struct/shared/
|
13
|
-
require "log_struct/shared/
|
14
|
-
require "log_struct/shared/
|
12
|
+
require "log_struct/shared/serialize_common"
|
13
|
+
require "log_struct/shared/merge_additional_data_fields"
|
14
|
+
require "log_struct/shared/add_request_fields"
|
15
15
|
require_relative "../../enums/source"
|
16
16
|
require_relative "../../enums/event"
|
17
17
|
require_relative "../../enums/level"
|
@@ -21,11 +21,6 @@ module LogStruct
|
|
21
21
|
module Log
|
22
22
|
class Security
|
23
23
|
class BlockedHost < T::Struct
|
24
|
-
# typed: strict
|
25
|
-
# frozen_string_literal: true
|
26
|
-
|
27
|
-
extend T::Sig
|
28
|
-
|
29
24
|
extend T::Sig
|
30
25
|
|
31
26
|
# Shared/common fields
|
@@ -45,6 +40,9 @@ module LogStruct
|
|
45
40
|
const :message, T.nilable(String), default: nil
|
46
41
|
const :blocked_host, T.nilable(String), default: nil
|
47
42
|
const :blocked_hosts, T.nilable(T::Array[String]), default: nil
|
43
|
+
const :x_forwarded_for, T.nilable(String), default: nil
|
44
|
+
const :allowed_hosts, T.nilable(T::Array[String]), default: nil
|
45
|
+
const :allow_ip_hosts, T.nilable(T::Boolean), default: nil
|
48
46
|
|
49
47
|
# Additional data
|
50
48
|
include LogStruct::Log::Interfaces::AdditionalDataField
|
@@ -59,82 +57,23 @@ module LogStruct
|
|
59
57
|
include LogStruct::Log::Shared::SerializeCommon
|
60
58
|
include LogStruct::Log::Shared::AddRequestFields
|
61
59
|
|
62
|
-
sig {
|
63
|
-
|
64
|
-
|
65
|
-
source_ip: T.untyped,
|
66
|
-
user_agent: T.untyped,
|
67
|
-
referer: T.untyped,
|
68
|
-
request_id: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
69
|
-
}
|
70
|
-
def self.base_hash(path: nil,
|
71
|
-
http_method: nil,
|
72
|
-
source_ip: nil,
|
73
|
-
user_agent: nil,
|
74
|
-
referer: nil,
|
75
|
-
request_id: nil)
|
76
|
-
h = {}
|
60
|
+
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
61
|
+
def to_h
|
62
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
77
63
|
h[LogField::Path] = path unless path.nil?
|
78
64
|
h[LogField::HttpMethod] = http_method unless http_method.nil?
|
79
65
|
h[LogField::SourceIp] = source_ip unless source_ip.nil?
|
80
66
|
h[LogField::UserAgent] = user_agent unless user_agent.nil?
|
81
67
|
h[LogField::Referer] = referer unless referer.nil?
|
82
68
|
h[LogField::RequestId] = request_id unless request_id.nil?
|
83
|
-
h
|
84
|
-
end
|
85
|
-
|
86
|
-
sig {
|
87
|
-
params(path: T.untyped,
|
88
|
-
http_method: T.untyped,
|
89
|
-
source_ip: T.untyped,
|
90
|
-
user_agent: T.untyped,
|
91
|
-
referer: T.untyped,
|
92
|
-
request_id: T.untyped,
|
93
|
-
message: T.untyped,
|
94
|
-
blocked_host: T.untyped,
|
95
|
-
blocked_hosts: T.untyped,
|
96
|
-
additional_data: T.untyped,
|
97
|
-
timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
98
|
-
}
|
99
|
-
def self.build(path: nil,
|
100
|
-
http_method: nil,
|
101
|
-
source_ip: nil,
|
102
|
-
user_agent: nil,
|
103
|
-
referer: nil,
|
104
|
-
request_id: nil,
|
105
|
-
message: nil,
|
106
|
-
blocked_host: nil,
|
107
|
-
blocked_hosts: nil,
|
108
|
-
additional_data: nil,
|
109
|
-
timestamp: Time.now)
|
110
|
-
h = base_hash(path: path,
|
111
|
-
http_method: http_method,
|
112
|
-
source_ip: source_ip,
|
113
|
-
user_agent: user_agent,
|
114
|
-
referer: referer,
|
115
|
-
request_id: request_id)
|
116
69
|
h[LogField::Message] = message unless message.nil?
|
117
70
|
h[LogField::BlockedHost] = blocked_host unless blocked_host.nil?
|
118
71
|
h[LogField::BlockedHosts] = blocked_hosts unless blocked_hosts.nil?
|
72
|
+
h[LogField::XForwardedFor] = x_forwarded_for unless x_forwarded_for.nil?
|
73
|
+
h[LogField::AllowedHosts] = allowed_hosts unless allowed_hosts.nil?
|
74
|
+
h[LogField::AllowIpHosts] = allow_ip_hosts unless allow_ip_hosts.nil?
|
119
75
|
h
|
120
76
|
end
|
121
|
-
|
122
|
-
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
123
|
-
def to_h
|
124
|
-
self.class.build(
|
125
|
-
path: path,
|
126
|
-
http_method: http_method,
|
127
|
-
source_ip: source_ip,
|
128
|
-
user_agent: user_agent,
|
129
|
-
referer: referer,
|
130
|
-
request_id: request_id,
|
131
|
-
message: message,
|
132
|
-
blocked_host: blocked_host,
|
133
|
-
blocked_hosts: blocked_hosts,
|
134
|
-
additional_data: additional_data,
|
135
|
-
timestamp: timestamp
|
136
|
-
)
|
137
|
-
end
|
138
77
|
end
|
139
78
|
end
|
140
79
|
end
|
@@ -9,9 +9,9 @@
|
|
9
9
|
require "log_struct/shared/interfaces/common_fields"
|
10
10
|
require "log_struct/shared/interfaces/additional_data_field"
|
11
11
|
require "log_struct/shared/interfaces/request_fields"
|
12
|
-
require "log_struct/shared/
|
13
|
-
require "log_struct/shared/
|
14
|
-
require "log_struct/shared/
|
12
|
+
require "log_struct/shared/serialize_common"
|
13
|
+
require "log_struct/shared/merge_additional_data_fields"
|
14
|
+
require "log_struct/shared/add_request_fields"
|
15
15
|
require_relative "../../enums/source"
|
16
16
|
require_relative "../../enums/event"
|
17
17
|
require_relative "../../enums/level"
|
@@ -21,11 +21,6 @@ module LogStruct
|
|
21
21
|
module Log
|
22
22
|
class Security
|
23
23
|
class CSRFViolation < T::Struct
|
24
|
-
# typed: strict
|
25
|
-
# frozen_string_literal: true
|
26
|
-
|
27
|
-
extend T::Sig
|
28
|
-
|
29
24
|
extend T::Sig
|
30
25
|
|
31
26
|
# Shared/common fields
|
@@ -57,74 +52,18 @@ module LogStruct
|
|
57
52
|
include LogStruct::Log::Shared::SerializeCommon
|
58
53
|
include LogStruct::Log::Shared::AddRequestFields
|
59
54
|
|
60
|
-
sig {
|
61
|
-
|
62
|
-
|
63
|
-
source_ip: T.untyped,
|
64
|
-
user_agent: T.untyped,
|
65
|
-
referer: T.untyped,
|
66
|
-
request_id: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
67
|
-
}
|
68
|
-
def self.base_hash(path: nil,
|
69
|
-
http_method: nil,
|
70
|
-
source_ip: nil,
|
71
|
-
user_agent: nil,
|
72
|
-
referer: nil,
|
73
|
-
request_id: nil)
|
74
|
-
h = {}
|
55
|
+
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
56
|
+
def to_h
|
57
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
75
58
|
h[LogField::Path] = path unless path.nil?
|
76
59
|
h[LogField::HttpMethod] = http_method unless http_method.nil?
|
77
60
|
h[LogField::SourceIp] = source_ip unless source_ip.nil?
|
78
61
|
h[LogField::UserAgent] = user_agent unless user_agent.nil?
|
79
62
|
h[LogField::Referer] = referer unless referer.nil?
|
80
63
|
h[LogField::RequestId] = request_id unless request_id.nil?
|
81
|
-
h
|
82
|
-
end
|
83
|
-
|
84
|
-
sig {
|
85
|
-
params(path: T.untyped,
|
86
|
-
http_method: T.untyped,
|
87
|
-
source_ip: T.untyped,
|
88
|
-
user_agent: T.untyped,
|
89
|
-
referer: T.untyped,
|
90
|
-
request_id: T.untyped,
|
91
|
-
message: T.untyped,
|
92
|
-
additional_data: T.untyped,
|
93
|
-
timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
94
|
-
}
|
95
|
-
def self.build(path: nil,
|
96
|
-
http_method: nil,
|
97
|
-
source_ip: nil,
|
98
|
-
user_agent: nil,
|
99
|
-
referer: nil,
|
100
|
-
request_id: nil,
|
101
|
-
message: nil,
|
102
|
-
additional_data: nil,
|
103
|
-
timestamp: Time.now)
|
104
|
-
h = base_hash(path: path,
|
105
|
-
http_method: http_method,
|
106
|
-
source_ip: source_ip,
|
107
|
-
user_agent: user_agent,
|
108
|
-
referer: referer,
|
109
|
-
request_id: request_id)
|
110
64
|
h[LogField::Message] = message unless message.nil?
|
111
65
|
h
|
112
66
|
end
|
113
|
-
|
114
|
-
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
115
|
-
def to_h
|
116
|
-
self.class.build(
|
117
|
-
path: path,
|
118
|
-
http_method: http_method,
|
119
|
-
source_ip: source_ip,
|
120
|
-
user_agent: user_agent,
|
121
|
-
referer: referer,
|
122
|
-
request_id: request_id,
|
123
|
-
message: message,
|
124
|
-
additional_data: additional_data,
|
125
|
-
timestamp: timestamp
|
126
|
-
)
|
127
|
-
end
|
128
67
|
end
|
129
68
|
end
|
130
69
|
end
|
@@ -9,9 +9,9 @@
|
|
9
9
|
require "log_struct/shared/interfaces/common_fields"
|
10
10
|
require "log_struct/shared/interfaces/additional_data_field"
|
11
11
|
require "log_struct/shared/interfaces/request_fields"
|
12
|
-
require "log_struct/shared/
|
13
|
-
require "log_struct/shared/
|
14
|
-
require "log_struct/shared/
|
12
|
+
require "log_struct/shared/serialize_common"
|
13
|
+
require "log_struct/shared/merge_additional_data_fields"
|
14
|
+
require "log_struct/shared/add_request_fields"
|
15
15
|
require_relative "../../enums/source"
|
16
16
|
require_relative "../../enums/event"
|
17
17
|
require_relative "../../enums/level"
|
@@ -21,11 +21,6 @@ module LogStruct
|
|
21
21
|
module Log
|
22
22
|
class Security
|
23
23
|
class IPSpoof < T::Struct
|
24
|
-
# typed: strict
|
25
|
-
# frozen_string_literal: true
|
26
|
-
|
27
|
-
extend T::Sig
|
28
|
-
|
29
24
|
extend T::Sig
|
30
25
|
|
31
26
|
# Shared/common fields
|
@@ -59,82 +54,20 @@ module LogStruct
|
|
59
54
|
include LogStruct::Log::Shared::SerializeCommon
|
60
55
|
include LogStruct::Log::Shared::AddRequestFields
|
61
56
|
|
62
|
-
sig {
|
63
|
-
|
64
|
-
|
65
|
-
source_ip: T.untyped,
|
66
|
-
user_agent: T.untyped,
|
67
|
-
referer: T.untyped,
|
68
|
-
request_id: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
69
|
-
}
|
70
|
-
def self.base_hash(path: nil,
|
71
|
-
http_method: nil,
|
72
|
-
source_ip: nil,
|
73
|
-
user_agent: nil,
|
74
|
-
referer: nil,
|
75
|
-
request_id: nil)
|
76
|
-
h = {}
|
57
|
+
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
58
|
+
def to_h
|
59
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
77
60
|
h[LogField::Path] = path unless path.nil?
|
78
61
|
h[LogField::HttpMethod] = http_method unless http_method.nil?
|
79
62
|
h[LogField::SourceIp] = source_ip unless source_ip.nil?
|
80
63
|
h[LogField::UserAgent] = user_agent unless user_agent.nil?
|
81
64
|
h[LogField::Referer] = referer unless referer.nil?
|
82
65
|
h[LogField::RequestId] = request_id unless request_id.nil?
|
83
|
-
h
|
84
|
-
end
|
85
|
-
|
86
|
-
sig {
|
87
|
-
params(path: T.untyped,
|
88
|
-
http_method: T.untyped,
|
89
|
-
source_ip: T.untyped,
|
90
|
-
user_agent: T.untyped,
|
91
|
-
referer: T.untyped,
|
92
|
-
request_id: T.untyped,
|
93
|
-
message: T.untyped,
|
94
|
-
client_ip: T.untyped,
|
95
|
-
x_forwarded_for: T.untyped,
|
96
|
-
additional_data: T.untyped,
|
97
|
-
timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
98
|
-
}
|
99
|
-
def self.build(path: nil,
|
100
|
-
http_method: nil,
|
101
|
-
source_ip: nil,
|
102
|
-
user_agent: nil,
|
103
|
-
referer: nil,
|
104
|
-
request_id: nil,
|
105
|
-
message: nil,
|
106
|
-
client_ip: nil,
|
107
|
-
x_forwarded_for: nil,
|
108
|
-
additional_data: nil,
|
109
|
-
timestamp: Time.now)
|
110
|
-
h = base_hash(path: path,
|
111
|
-
http_method: http_method,
|
112
|
-
source_ip: source_ip,
|
113
|
-
user_agent: user_agent,
|
114
|
-
referer: referer,
|
115
|
-
request_id: request_id)
|
116
66
|
h[LogField::Message] = message unless message.nil?
|
117
67
|
h[LogField::ClientIp] = client_ip unless client_ip.nil?
|
118
68
|
h[LogField::XForwardedFor] = x_forwarded_for unless x_forwarded_for.nil?
|
119
69
|
h
|
120
70
|
end
|
121
|
-
|
122
|
-
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
123
|
-
def to_h
|
124
|
-
self.class.build(
|
125
|
-
path: path,
|
126
|
-
http_method: http_method,
|
127
|
-
source_ip: source_ip,
|
128
|
-
user_agent: user_agent,
|
129
|
-
referer: referer,
|
130
|
-
request_id: request_id,
|
131
|
-
message: message,
|
132
|
-
client_ip: client_ip,
|
133
|
-
x_forwarded_for: x_forwarded_for,
|
134
|
-
additional_data: additional_data,
|
135
|
-
timestamp: timestamp
|
136
|
-
)
|
137
|
-
end
|
138
71
|
end
|
139
72
|
end
|
140
73
|
end
|
@@ -9,9 +9,9 @@
|
|
9
9
|
require "log_struct/shared/interfaces/common_fields"
|
10
10
|
require "log_struct/shared/interfaces/additional_data_field"
|
11
11
|
require "log_struct/shared/interfaces/request_fields"
|
12
|
-
require "log_struct/shared/
|
13
|
-
require "log_struct/shared/
|
14
|
-
require "log_struct/shared/
|
12
|
+
require "log_struct/shared/serialize_common"
|
13
|
+
require "log_struct/shared/merge_additional_data_fields"
|
14
|
+
require "log_struct/shared/add_request_fields"
|
15
15
|
require_relative "../../enums/source"
|
16
16
|
require_relative "../../enums/event"
|
17
17
|
require_relative "../../enums/level"
|
@@ -21,11 +21,6 @@ module LogStruct
|
|
21
21
|
module Log
|
22
22
|
class Shrine
|
23
23
|
class Delete < T::Struct
|
24
|
-
# typed: strict
|
25
|
-
# frozen_string_literal: true
|
26
|
-
|
27
|
-
extend T::Sig
|
28
|
-
|
29
24
|
extend T::Sig
|
30
25
|
|
31
26
|
# Shared/common fields
|
@@ -35,50 +30,20 @@ module LogStruct
|
|
35
30
|
const :level, Level, default: Level::Info
|
36
31
|
|
37
32
|
# Event-specific fields
|
38
|
-
const :storage,
|
33
|
+
const :storage, Symbol
|
39
34
|
const :location, String
|
40
35
|
|
41
|
-
# Additional data
|
42
|
-
include LogStruct::Log::Interfaces::AdditionalDataField
|
43
|
-
const :additional_data, T.nilable(T::Hash[T.any(String, Symbol), T.untyped]), default: nil
|
44
|
-
include LogStruct::Log::Shared::MergeAdditionalDataFields
|
45
|
-
|
46
|
-
# Request fields (optional)
|
47
|
-
|
48
36
|
# Serialize shared fields
|
49
37
|
include LogStruct::Log::Interfaces::CommonFields
|
50
38
|
include LogStruct::Log::Shared::SerializeCommon
|
51
39
|
|
52
40
|
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
53
|
-
def
|
54
|
-
{}
|
55
|
-
end
|
56
|
-
|
57
|
-
sig {
|
58
|
-
params(storage: T.untyped,
|
59
|
-
location: T.untyped,
|
60
|
-
additional_data: T.untyped,
|
61
|
-
timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
62
|
-
}
|
63
|
-
def self.build(storage:,
|
64
|
-
location:,
|
65
|
-
additional_data: nil,
|
66
|
-
timestamp: Time.now)
|
67
|
-
h = base_hash
|
41
|
+
def to_h
|
42
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
68
43
|
h[LogField::Storage] = storage
|
69
44
|
h[LogField::Location] = location
|
70
45
|
h
|
71
46
|
end
|
72
|
-
|
73
|
-
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
74
|
-
def to_h
|
75
|
-
self.class.build(
|
76
|
-
storage: storage,
|
77
|
-
location: location,
|
78
|
-
additional_data: additional_data,
|
79
|
-
timestamp: timestamp
|
80
|
-
)
|
81
|
-
end
|
82
47
|
end
|
83
48
|
end
|
84
49
|
end
|
@@ -9,9 +9,9 @@
|
|
9
9
|
require "log_struct/shared/interfaces/common_fields"
|
10
10
|
require "log_struct/shared/interfaces/additional_data_field"
|
11
11
|
require "log_struct/shared/interfaces/request_fields"
|
12
|
-
require "log_struct/shared/
|
13
|
-
require "log_struct/shared/
|
14
|
-
require "log_struct/shared/
|
12
|
+
require "log_struct/shared/serialize_common"
|
13
|
+
require "log_struct/shared/merge_additional_data_fields"
|
14
|
+
require "log_struct/shared/add_request_fields"
|
15
15
|
require_relative "../../enums/source"
|
16
16
|
require_relative "../../enums/event"
|
17
17
|
require_relative "../../enums/level"
|
@@ -21,11 +21,6 @@ module LogStruct
|
|
21
21
|
module Log
|
22
22
|
class Shrine
|
23
23
|
class Download < T::Struct
|
24
|
-
# typed: strict
|
25
|
-
# frozen_string_literal: true
|
26
|
-
|
27
|
-
extend T::Sig
|
28
|
-
|
29
24
|
extend T::Sig
|
30
25
|
|
31
26
|
# Shared/common fields
|
@@ -35,55 +30,22 @@ module LogStruct
|
|
35
30
|
const :level, Level, default: Level::Info
|
36
31
|
|
37
32
|
# Event-specific fields
|
38
|
-
const :storage,
|
33
|
+
const :storage, Symbol
|
39
34
|
const :location, String
|
40
35
|
const :download_options, T.nilable(T::Hash[Symbol, T.untyped]), default: nil
|
41
36
|
|
42
|
-
# Additional data
|
43
|
-
include LogStruct::Log::Interfaces::AdditionalDataField
|
44
|
-
const :additional_data, T.nilable(T::Hash[T.any(String, Symbol), T.untyped]), default: nil
|
45
|
-
include LogStruct::Log::Shared::MergeAdditionalDataFields
|
46
|
-
|
47
|
-
# Request fields (optional)
|
48
|
-
|
49
37
|
# Serialize shared fields
|
50
38
|
include LogStruct::Log::Interfaces::CommonFields
|
51
39
|
include LogStruct::Log::Shared::SerializeCommon
|
52
40
|
|
53
41
|
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
54
|
-
def
|
55
|
-
{}
|
56
|
-
end
|
57
|
-
|
58
|
-
sig {
|
59
|
-
params(storage: T.untyped,
|
60
|
-
location: T.untyped,
|
61
|
-
download_options: T.untyped,
|
62
|
-
additional_data: T.untyped,
|
63
|
-
timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
64
|
-
}
|
65
|
-
def self.build(storage:,
|
66
|
-
location:,
|
67
|
-
download_options: nil,
|
68
|
-
additional_data: nil,
|
69
|
-
timestamp: Time.now)
|
70
|
-
h = base_hash
|
42
|
+
def to_h
|
43
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
71
44
|
h[LogField::Storage] = storage
|
72
45
|
h[LogField::Location] = location
|
73
46
|
h[LogField::DownloadOptions] = download_options unless download_options.nil?
|
74
47
|
h
|
75
48
|
end
|
76
|
-
|
77
|
-
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
78
|
-
def to_h
|
79
|
-
self.class.build(
|
80
|
-
storage: storage,
|
81
|
-
location: location,
|
82
|
-
download_options: download_options,
|
83
|
-
additional_data: additional_data,
|
84
|
-
timestamp: timestamp
|
85
|
-
)
|
86
|
-
end
|
87
49
|
end
|
88
50
|
end
|
89
51
|
end
|
@@ -9,9 +9,9 @@
|
|
9
9
|
require "log_struct/shared/interfaces/common_fields"
|
10
10
|
require "log_struct/shared/interfaces/additional_data_field"
|
11
11
|
require "log_struct/shared/interfaces/request_fields"
|
12
|
-
require "log_struct/shared/
|
13
|
-
require "log_struct/shared/
|
14
|
-
require "log_struct/shared/
|
12
|
+
require "log_struct/shared/serialize_common"
|
13
|
+
require "log_struct/shared/merge_additional_data_fields"
|
14
|
+
require "log_struct/shared/add_request_fields"
|
15
15
|
require_relative "../../enums/source"
|
16
16
|
require_relative "../../enums/event"
|
17
17
|
require_relative "../../enums/level"
|
@@ -21,11 +21,6 @@ module LogStruct
|
|
21
21
|
module Log
|
22
22
|
class Shrine
|
23
23
|
class Exist < T::Struct
|
24
|
-
# typed: strict
|
25
|
-
# frozen_string_literal: true
|
26
|
-
|
27
|
-
extend T::Sig
|
28
|
-
|
29
24
|
extend T::Sig
|
30
25
|
|
31
26
|
# Shared/common fields
|
@@ -35,55 +30,22 @@ module LogStruct
|
|
35
30
|
const :level, Level, default: Level::Info
|
36
31
|
|
37
32
|
# Event-specific fields
|
38
|
-
const :storage,
|
33
|
+
const :storage, Symbol
|
39
34
|
const :location, String
|
40
35
|
const :exist, T.nilable(T::Boolean), default: nil
|
41
36
|
|
42
|
-
# Additional data
|
43
|
-
include LogStruct::Log::Interfaces::AdditionalDataField
|
44
|
-
const :additional_data, T.nilable(T::Hash[T.any(String, Symbol), T.untyped]), default: nil
|
45
|
-
include LogStruct::Log::Shared::MergeAdditionalDataFields
|
46
|
-
|
47
|
-
# Request fields (optional)
|
48
|
-
|
49
37
|
# Serialize shared fields
|
50
38
|
include LogStruct::Log::Interfaces::CommonFields
|
51
39
|
include LogStruct::Log::Shared::SerializeCommon
|
52
40
|
|
53
41
|
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
54
|
-
def
|
55
|
-
{}
|
56
|
-
end
|
57
|
-
|
58
|
-
sig {
|
59
|
-
params(storage: T.untyped,
|
60
|
-
location: T.untyped,
|
61
|
-
exist: T.untyped,
|
62
|
-
additional_data: T.untyped,
|
63
|
-
timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
64
|
-
}
|
65
|
-
def self.build(storage:,
|
66
|
-
location:,
|
67
|
-
exist: nil,
|
68
|
-
additional_data: nil,
|
69
|
-
timestamp: Time.now)
|
70
|
-
h = base_hash
|
42
|
+
def to_h
|
43
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
71
44
|
h[LogField::Storage] = storage
|
72
45
|
h[LogField::Location] = location
|
73
46
|
h[LogField::Exist] = exist unless exist.nil?
|
74
47
|
h
|
75
48
|
end
|
76
|
-
|
77
|
-
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
78
|
-
def to_h
|
79
|
-
self.class.build(
|
80
|
-
storage: storage,
|
81
|
-
location: location,
|
82
|
-
exist: exist,
|
83
|
-
additional_data: additional_data,
|
84
|
-
timestamp: timestamp
|
85
|
-
)
|
86
|
-
end
|
87
49
|
end
|
88
50
|
end
|
89
51
|
end
|
@@ -9,9 +9,9 @@
|
|
9
9
|
require "log_struct/shared/interfaces/common_fields"
|
10
10
|
require "log_struct/shared/interfaces/additional_data_field"
|
11
11
|
require "log_struct/shared/interfaces/request_fields"
|
12
|
-
require "log_struct/shared/
|
13
|
-
require "log_struct/shared/
|
14
|
-
require "log_struct/shared/
|
12
|
+
require "log_struct/shared/serialize_common"
|
13
|
+
require "log_struct/shared/merge_additional_data_fields"
|
14
|
+
require "log_struct/shared/add_request_fields"
|
15
15
|
require_relative "../../enums/source"
|
16
16
|
require_relative "../../enums/event"
|
17
17
|
require_relative "../../enums/level"
|
@@ -21,11 +21,6 @@ module LogStruct
|
|
21
21
|
module Log
|
22
22
|
class Shrine
|
23
23
|
class Metadata < T::Struct
|
24
|
-
# typed: strict
|
25
|
-
# frozen_string_literal: true
|
26
|
-
|
27
|
-
extend T::Sig
|
28
|
-
|
29
24
|
extend T::Sig
|
30
25
|
|
31
26
|
# Shared/common fields
|
@@ -35,55 +30,22 @@ module LogStruct
|
|
35
30
|
const :level, Level, default: Level::Info
|
36
31
|
|
37
32
|
# Event-specific fields
|
38
|
-
const :storage,
|
39
|
-
const :location, String
|
33
|
+
const :storage, Symbol
|
34
|
+
const :location, T.nilable(String), default: nil
|
40
35
|
const :metadata, T.nilable(T::Hash[String, T.untyped]), default: nil
|
41
36
|
|
42
|
-
# Additional data
|
43
|
-
include LogStruct::Log::Interfaces::AdditionalDataField
|
44
|
-
const :additional_data, T.nilable(T::Hash[T.any(String, Symbol), T.untyped]), default: nil
|
45
|
-
include LogStruct::Log::Shared::MergeAdditionalDataFields
|
46
|
-
|
47
|
-
# Request fields (optional)
|
48
|
-
|
49
37
|
# Serialize shared fields
|
50
38
|
include LogStruct::Log::Interfaces::CommonFields
|
51
39
|
include LogStruct::Log::Shared::SerializeCommon
|
52
40
|
|
53
41
|
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
54
|
-
def
|
55
|
-
{}
|
56
|
-
end
|
57
|
-
|
58
|
-
sig {
|
59
|
-
params(storage: T.untyped,
|
60
|
-
location: T.untyped,
|
61
|
-
metadata: T.untyped,
|
62
|
-
additional_data: T.untyped,
|
63
|
-
timestamp: T.untyped).returns(T::Hash[LogStruct::LogField, T.untyped])
|
64
|
-
}
|
65
|
-
def self.build(storage:,
|
66
|
-
location:,
|
67
|
-
metadata: nil,
|
68
|
-
additional_data: nil,
|
69
|
-
timestamp: Time.now)
|
70
|
-
h = base_hash
|
42
|
+
def to_h
|
43
|
+
h = T.let({}, T::Hash[LogStruct::LogField, T.untyped])
|
71
44
|
h[LogField::Storage] = storage
|
72
|
-
h[LogField::Location] = location
|
45
|
+
h[LogField::Location] = location unless location.nil?
|
73
46
|
h[LogField::Metadata] = metadata unless metadata.nil?
|
74
47
|
h
|
75
48
|
end
|
76
|
-
|
77
|
-
sig { returns(T::Hash[LogStruct::LogField, T.untyped]) }
|
78
|
-
def to_h
|
79
|
-
self.class.build(
|
80
|
-
storage: storage,
|
81
|
-
location: location,
|
82
|
-
metadata: metadata,
|
83
|
-
additional_data: additional_data,
|
84
|
-
timestamp: timestamp
|
85
|
-
)
|
86
|
-
end
|
87
49
|
end
|
88
50
|
end
|
89
51
|
end
|