legion-data 1.4.19 → 1.5.2
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 +17 -1
- data/lib/legion/data/connection.rb +35 -2
- data/lib/legion/data/migrations/039_add_audit_archive_manifest.rb +28 -0
- data/lib/legion/data/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f2a768704483d4ece2b9b627f9fda041f3e6370ca1da5dccfce4fd8826ff77f4
|
|
4
|
+
data.tar.gz: f5dc70154a82e28c2776b89e1a5a57a32ba62867f0306c19dcdec108748b4787
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2bfb162a4dc33c7709b8e266d9d58e649ef854b032a6879aedc7a72218c72b89c52f0652cd223d48076e4838b896aebff39c7e04d8c3db062780b0a251e26f8d
|
|
7
|
+
data.tar.gz: 047ad93f9a9f7e090687cce66860b5bb3cc8e1d6f6be73adf3bb3366913113260b86f2c49b16ed5fb6f31777835495cb7392d39df672dc247fb5761fd0541a70
|
data/CHANGELOG.md
CHANGED
|
@@ -1,8 +1,24 @@
|
|
|
1
1
|
# Legion::Data Changelog
|
|
2
2
|
|
|
3
|
-
## [1.
|
|
3
|
+
## [1.5.2] - 2026-03-24
|
|
4
4
|
|
|
5
5
|
### Fixed
|
|
6
|
+
- TLS spec mock `resolve` methods used `_port:` keyword which mismatched production `port:` call, causing `ArgumentError: unknown keyword: :port` on CI
|
|
7
|
+
|
|
8
|
+
## [1.5.1] - 2026-03-24
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- `Legion::Data::Connection#merge_tls_creds` — now respects explicit `data.tls.enabled` flag; TLS opt-in only (no behavior change when flag is absent or false)
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
- Migration 039: `audit_archive_manifests` table for tracking cold storage uploads (tier, storage_url, date range, entry count, SHA-256 checksum, hash chain anchors)
|
|
15
|
+
- `spec/legion/data/tls_spec.rb` — full coverage for merge_tls_creds feature flag behavior
|
|
16
|
+
|
|
17
|
+
## [1.5.0] - 2026-03-24
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
- Slow query warnings now tagged with `[data][slow-query]` instead of bare timestamps
|
|
21
|
+
- SQL log output uses tagged Legion::Logging::Logger for consistent `[data]` prefix
|
|
6
22
|
- Fix Style/SymbolArray in conversations migration
|
|
7
23
|
|
|
8
24
|
## [1.4.18] - 2026-03-23
|
|
@@ -7,6 +7,31 @@ module Legion
|
|
|
7
7
|
module Connection
|
|
8
8
|
ADAPTERS = %i[sqlite mysql2 postgres].freeze
|
|
9
9
|
|
|
10
|
+
# Wraps a tagged Legion::Logging::Logger for Sequel's logger interface.
|
|
11
|
+
# Prefixes warn-level messages with [slow-query] since Sequel uses warn
|
|
12
|
+
# for queries exceeding log_warn_duration.
|
|
13
|
+
class SlowQueryLogger
|
|
14
|
+
def initialize(tagged_logger)
|
|
15
|
+
@tagged = tagged_logger
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def warn(message)
|
|
19
|
+
@tagged.warn("[slow-query] #{message}")
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def info(message)
|
|
23
|
+
@tagged.info(message)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def debug(message)
|
|
27
|
+
@tagged.debug(message)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def error(message)
|
|
31
|
+
@tagged.error(message)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
10
35
|
class << self
|
|
11
36
|
attr_accessor :sequel
|
|
12
37
|
|
|
@@ -91,7 +116,10 @@ module Legion
|
|
|
91
116
|
return creds if adapter == :sqlite
|
|
92
117
|
return creds unless defined?(Legion::Crypt::TLS)
|
|
93
118
|
|
|
94
|
-
|
|
119
|
+
tls_settings = data_tls_settings
|
|
120
|
+
return creds unless tls_settings[:enabled] == true
|
|
121
|
+
|
|
122
|
+
tls = Legion::Crypt::TLS.resolve(tls_settings, port: port)
|
|
95
123
|
return creds unless tls[:enabled]
|
|
96
124
|
|
|
97
125
|
case adapter
|
|
@@ -151,10 +179,15 @@ module Legion
|
|
|
151
179
|
def configure_logging
|
|
152
180
|
return if Legion::Settings[:data][:connection].nil? || Legion::Settings[:data][:connection][:log].nil?
|
|
153
181
|
|
|
154
|
-
@sequel.logger =
|
|
182
|
+
@sequel.logger = build_data_logger
|
|
155
183
|
@sequel.sql_log_level = Legion::Settings[:data][:connection][:sql_log_level]
|
|
156
184
|
@sequel.log_warn_duration = Legion::Settings[:data][:connection][:log_warn_duration]
|
|
157
185
|
end
|
|
186
|
+
|
|
187
|
+
def build_data_logger
|
|
188
|
+
tagged = Legion::Logging::Logger.new(lex: 'data')
|
|
189
|
+
SlowQueryLogger.new(tagged)
|
|
190
|
+
end
|
|
158
191
|
end
|
|
159
192
|
end
|
|
160
193
|
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
Sequel.migration do
|
|
4
|
+
up do
|
|
5
|
+
unless table_exists?(:audit_archive_manifests)
|
|
6
|
+
create_table(:audit_archive_manifests) do
|
|
7
|
+
primary_key :id
|
|
8
|
+
String :tier, null: false, size: 10 # hot, warm, cold
|
|
9
|
+
String :storage_url, null: false, size: 2000
|
|
10
|
+
DateTime :start_date, null: false
|
|
11
|
+
DateTime :end_date, null: false
|
|
12
|
+
Integer :entry_count, null: false
|
|
13
|
+
String :checksum, null: false, size: 64 # SHA-256 hex
|
|
14
|
+
String :first_hash, null: false, size: 64 # record_hash of first entry
|
|
15
|
+
String :last_hash, null: false, size: 64 # record_hash of last entry
|
|
16
|
+
DateTime :archived_at, null: false, default: Sequel::CURRENT_TIMESTAMP
|
|
17
|
+
|
|
18
|
+
index :tier
|
|
19
|
+
index :archived_at
|
|
20
|
+
index %i[start_date end_date]
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
down do
|
|
26
|
+
drop_table(:audit_archive_manifests) if table_exists?(:audit_archive_manifests)
|
|
27
|
+
end
|
|
28
|
+
end
|
data/lib/legion/data/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: legion-data
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.5.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Esity
|
|
@@ -137,6 +137,7 @@ files:
|
|
|
137
137
|
- lib/legion/data/migrations/036_add_audit_context_snapshot.rb
|
|
138
138
|
- lib/legion/data/migrations/037_add_apollo_knowledge_domain.rb
|
|
139
139
|
- lib/legion/data/migrations/038_add_conversations.rb
|
|
140
|
+
- lib/legion/data/migrations/039_add_audit_archive_manifest.rb
|
|
140
141
|
- lib/legion/data/model.rb
|
|
141
142
|
- lib/legion/data/models/apollo_access_log.rb
|
|
142
143
|
- lib/legion/data/models/apollo_entry.rb
|