whodunit-chronicles 0.1.0.pre → 0.2.0
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/.codeclimate.yml +50 -0
- data/.rubocop.yml +2 -1
- data/.yardopts +7 -5
- data/CHANGELOG.md +76 -1
- data/README.md +408 -22
- data/examples/images/campaign-performance-analytics.png +0 -0
- data/examples/images/candidate-journey-analytics.png +0 -0
- data/examples/images/recruitment-funnel-analytics.png +0 -0
- data/lib/whodunit/chronicles/adapters/mysql.rb +261 -0
- data/lib/whodunit/chronicles/configuration.rb +23 -12
- data/lib/whodunit/chronicles/connection.rb +88 -0
- data/lib/whodunit/chronicles/persistence.rb +129 -0
- data/lib/whodunit/chronicles/processor.rb +127 -0
- data/lib/whodunit/chronicles/service.rb +23 -21
- data/lib/whodunit/chronicles/table.rb +120 -0
- data/lib/whodunit/chronicles/version.rb +1 -1
- data/lib/whodunit/chronicles.rb +11 -1
- data/whodunit-chronicles.gemspec +6 -2
- metadata +68 -4
- data/lib/whodunit/chronicles/audit_processor.rb +0 -270
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9b961b73fe4f8a8b195a51a4c37078b87ebd55effbb47bef6c1128896fc567b2
|
4
|
+
data.tar.gz: ec689969f3bc3acea94f92eeca518d756b06313f8833e8af0f29066e0574199c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f32308b39334f4fc2b40fc178ce06d49cc98cd20eb284a6c45affc3561397b738781d20395284ff81b79d93c35daa2eceda598a6f057df1c655b1cea0e6dc59
|
7
|
+
data.tar.gz: 85719789afd7e4de120ec6534473d39238d9b4d58e0355cdf00e983bd51af9292e9b23cb89a7d7acce086f610527dc41fb01bd699169520c77881ffee32d185c
|
data/.codeclimate.yml
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
version: "2"
|
2
|
+
checks:
|
3
|
+
argument-count:
|
4
|
+
config:
|
5
|
+
threshold: 4
|
6
|
+
complex-logic:
|
7
|
+
config:
|
8
|
+
threshold: 4
|
9
|
+
file-lines:
|
10
|
+
config:
|
11
|
+
threshold: 250
|
12
|
+
method-complexity:
|
13
|
+
config:
|
14
|
+
threshold: 5
|
15
|
+
method-count:
|
16
|
+
config:
|
17
|
+
threshold: 20
|
18
|
+
method-lines:
|
19
|
+
config:
|
20
|
+
threshold: 25
|
21
|
+
nested-control-flow:
|
22
|
+
config:
|
23
|
+
threshold: 4
|
24
|
+
return-statements:
|
25
|
+
config:
|
26
|
+
threshold: 4
|
27
|
+
similar-code:
|
28
|
+
config:
|
29
|
+
threshold: # language-specific defaults. an integer indicates the minimum number of lines within a block of similar code.
|
30
|
+
identical-code:
|
31
|
+
config:
|
32
|
+
threshold: # language-specific defaults. an integer indicates the minimum number of lines within a block of identical code.
|
33
|
+
plugins:
|
34
|
+
rubocop:
|
35
|
+
enabled: true
|
36
|
+
config:
|
37
|
+
file: .rubocop.yml
|
38
|
+
exclude_patterns:
|
39
|
+
- "config/"
|
40
|
+
- "db/"
|
41
|
+
- "dist/"
|
42
|
+
- "features/"
|
43
|
+
- "**/node_modules/"
|
44
|
+
- "script/"
|
45
|
+
- "**/spec/"
|
46
|
+
- "**/test/"
|
47
|
+
- "**/tests/"
|
48
|
+
- "**/vendor/"
|
49
|
+
- "**/*_test.rb"
|
50
|
+
- "**/*_spec.rb"
|
data/.rubocop.yml
CHANGED
@@ -7,6 +7,7 @@ AllCops:
|
|
7
7
|
- 'tmp/**/*'
|
8
8
|
- 'bin/**/*'
|
9
9
|
- 'node_modules/**/*'
|
10
|
+
- 'examples/**/*'
|
10
11
|
|
11
12
|
# Use plugins for extensions
|
12
13
|
plugins:
|
@@ -89,4 +90,4 @@ Performance/Casecmp:
|
|
89
90
|
Enabled: true
|
90
91
|
|
91
92
|
Performance/StringReplacement:
|
92
|
-
Enabled: true
|
93
|
+
Enabled: true
|
data/.yardopts
CHANGED
@@ -1,12 +1,14 @@
|
|
1
1
|
--markup markdown
|
2
2
|
--markup-provider kramdown
|
3
|
-
--output-dir docs
|
4
|
-
--exclude spec/
|
5
|
-
--exclude vendor/
|
6
3
|
--main README.md
|
7
|
-
--
|
8
|
-
--
|
4
|
+
--output-dir docs
|
5
|
+
--protected
|
6
|
+
--private
|
7
|
+
--title "Whodunit Chronicles API Documentation"
|
8
|
+
--readme README.md
|
9
|
+
--files CHANGELOG.md,LICENSE
|
9
10
|
lib/**/*.rb
|
10
11
|
-
|
11
12
|
README.md
|
12
13
|
CHANGELOG.md
|
14
|
+
LICENSE
|
data/CHANGELOG.md
CHANGED
@@ -7,6 +7,81 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
7
7
|
|
8
8
|
## [Unreleased]
|
9
9
|
|
10
|
+
## [0.2.0] - 2025-01-28
|
11
|
+
|
12
|
+
### Added
|
13
|
+
|
14
|
+
- **MySQL/MariaDB Support**: Complete multi-database adapter architecture
|
15
|
+
- MySQL adapter using trilogy gem for high-performance connections
|
16
|
+
- Binary log streaming support for MySQL change capture
|
17
|
+
- Cross-database compatibility testing
|
18
|
+
- **Enhanced Testing Suite**: Comprehensive test coverage improvements
|
19
|
+
- New test files: `table_test.rb`, `connection_test.rb`, `persistence_test.rb`
|
20
|
+
- Enhanced PostgreSQL adapter tests with connection and replication scenarios
|
21
|
+
- Increased line coverage from 91.28% to 97.29% (+6.01 percentage points)
|
22
|
+
- 227 tests with 552 assertions providing robust validation
|
23
|
+
- **Ruby 3.4+ Compatibility**: Forward compatibility improvements
|
24
|
+
- Added `bigdecimal` dependency for Ruby 3.4+ support
|
25
|
+
- Explicit dependency management for removed stdlib components
|
26
|
+
- **CI/CD Enhancements**: Improved automation and quality gates
|
27
|
+
- Matrix testing across PostgreSQL and MySQL databases
|
28
|
+
- Enhanced MySQL integration testing with proper connection handling
|
29
|
+
- Security scanning integration and automated dependency updates
|
30
|
+
|
31
|
+
### Changed
|
32
|
+
|
33
|
+
- **Architecture Refactoring**: Modular component extraction
|
34
|
+
- Extracted AuditProcessor into separate, focused components
|
35
|
+
- Improved service layer with multi-adapter support patterns
|
36
|
+
- Enhanced configuration system supporting both PostgreSQL and MySQL
|
37
|
+
- **Database Adapter Pattern**: Extensible multi-database support
|
38
|
+
- Abstract adapter base class for consistent interface
|
39
|
+
- Database-specific implementations with optimized performance
|
40
|
+
- Unified change event system across different database types
|
41
|
+
- **Test Infrastructure**: Comprehensive testing improvements
|
42
|
+
- Enhanced mock-based testing for complex database operations
|
43
|
+
- Improved test organization with better separation of concerns
|
44
|
+
- Integration test scenarios for real-world usage patterns
|
45
|
+
|
46
|
+
### Fixed
|
47
|
+
|
48
|
+
- **MySQL CI Integration**: Resolved connection and setup issues
|
49
|
+
- Fixed MySQL container configuration and health checks
|
50
|
+
- Improved database readiness detection and timeout handling
|
51
|
+
- Enhanced error reporting and debugging for CI environments
|
52
|
+
- **Dependency Management**: Ruby version compatibility
|
53
|
+
- Added explicit `bigdecimal ~> 3.1` dependency for Ruby 3.4+
|
54
|
+
- Resolved trilogy gem loading issues in newer Ruby versions
|
55
|
+
- Improved gem specification with proper version constraints
|
56
|
+
|
57
|
+
### Technical Improvements
|
58
|
+
|
59
|
+
- **Code Coverage**: Significant testing improvements
|
60
|
+
- Line coverage: 97.29% (647/665 lines covered)
|
61
|
+
- Branch coverage: 83.6% (158/189 branches covered)
|
62
|
+
- Comprehensive unit tests for all core modules
|
63
|
+
- **Performance Optimizations**: Multi-adapter efficiency
|
64
|
+
- Database-specific SQL generation and parameter binding
|
65
|
+
- Optimized connection management across different adapters
|
66
|
+
- Efficient batch processing for both PostgreSQL and MySQL
|
67
|
+
- **Error Handling**: Enhanced resilience and debugging
|
68
|
+
- Improved error messages and stack trace reporting
|
69
|
+
- Better handling of database-specific error conditions
|
70
|
+
- Enhanced logging for troubleshooting and monitoring
|
71
|
+
|
72
|
+
### Development Experience
|
73
|
+
|
74
|
+
- **Documentation**: Enhanced developer resources
|
75
|
+
- Updated README with MySQL/MariaDB configuration examples
|
76
|
+
- Improved inline documentation for multi-adapter usage
|
77
|
+
- Better error messages and troubleshooting guides
|
78
|
+
- **Testing Framework**: Improved development workflow
|
79
|
+
- Faster test execution with better mock strategies
|
80
|
+
- More reliable CI/CD pipeline with matrix testing
|
81
|
+
- Enhanced debugging capabilities for test failures
|
82
|
+
|
83
|
+
## [0.1.0] - 2025-01-21
|
84
|
+
|
10
85
|
### Added
|
11
86
|
|
12
87
|
- Comprehensive GitHub Actions CI/CD pipeline with multi-Ruby testing
|
@@ -32,7 +107,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
32
107
|
- **Core Architecture**: Complete zero-latency audit streaming implementation
|
33
108
|
- **PostgreSQL Adapter**: Logical replication streaming with WAL decoding
|
34
109
|
- **ChangeEvent System**: Unified change representation across database adapters
|
35
|
-
- **
|
110
|
+
- **Processor**: Intelligent transformation of changes into audit records
|
36
111
|
- **Configuration Management**: Comprehensive settings with validation using dry-configurable
|
37
112
|
- **Service Orchestration**: Thread-safe service with error handling and retry logic
|
38
113
|
- **Abstract Adapter Pattern**: Extensible design supporting multiple database systems
|