Skip to content

Release v1.0.5

Latest

Choose a tag to compare

@github-actions github-actions released this 23 Oct 12:47
· 92 commits to master since this release

Changes in this Release

  • Fix flaky concurrent compression test with proper synchronization.
  • fix(ci): robustify changelog generation in GitHub Actions release workflow.
  • docs: fix broken documentation links in main README.
  • chore: rename logging configs with component prefixes (log4j2-core).
  • fix(test): remove timing-based assertion from validation test.
  • docs: clarify database migration strategy and schema management approach - Add comprehensive DATABASE_MIGRATION_STRATEGY.md guide explaining when to use hbm2ddl.auto vs DatabaseMigrator. - Document hbm2ddl.auto options and production recommendations in persistence.xml. - Add decision tree for development/testing/staging/production environments. - Include migration best practices for SQLite, PostgreSQL, MySQL backends. - Create missing deployment and maintenance subdirectory README files. - Update database documentation index with migration strategy reference.
  • refactor(config): enhance database configuration utilities suite for production use - Improve 9 configuration utilities in config.util package. - Enhance SensitiveDataMasker (comprehensive credential detection). - Update ConfigurationExporter (format validation, auto-detection). - Enhance ConfigurationSecurityAnalyzer (detailed recommendations). - Improve DatabaseMigrator, ConnectionTester, PropertiesParser. - Update 4 documentation guides (API, CONFIG, MAINTENANCE, PAGINATION). - Security-first: masking by default, comprehensive warnings. - Production-ready: thread-safe, validated, well-documented.
  • feat(config): add database configuration utilities with multi-database support - Add 9 new utility classes in config.util package for production-ready database management. - DatabasePropertiesParser: parse .properties files to DatabaseConfig with validation. - ConfigurationPriorityResolver: resolve config from multiple sources (CLI > ENV > FILE > DEFAULT). - ConfigurationExporter: export config to Properties/JSON/ENV with automatic password masking. - SensitiveDataMasker: mask credentials in logs and output for security. - ConfigurationSecurityAnalyzer: detect security risks with remediation recommendations. - SecurityWarning: structured security warning with severity levels. - FilePermissionsUtil: manage POSIX permissions (600 for config files). - DatabaseConnectionTester: test connectivity with detailed diagnostics. - DatabaseMigrator: schema migration with version tracking and history. - Change ValidationSummary and ChainValidationResult from int to long for block counts. - Add DatabaseConfigurationDemo showcasing new utilities. - Add comprehensive test coverage (9 test classes, 100% coverage). - Update documentation: API_GUIDE.md, TECHNICAL_DETAILS.md, PRODUCTION_GUIDE.md. - Move PRODUCTION_GUIDE.md to docs/deployment/ for better organization. - Security-first design: masking by default, permission checks, comprehensive warnings. - Thread-safe and reusable: suitable for CLI, web apps, REST APIs.
  • fix(maintenance): Fix OffChainCleanupService file timestamp and database config issues.
  • chore: update database deps (PostgreSQL, MySQL, H2) and adjust coverage limits.
  • refactor: rename searchSimple() to searchAll() and reorganize project structure.
  • feat(maintenance): Add database maintenance system with SQLite WAL VACUUM support - Add DatabaseMaintenanceScheduler for automated maintenance coordination. - Add DatabaseVacuumService with forceVacuum() for interval bypass. - Add DatabaseSizeMonitor for proactive size tracking and alerts. - Add OffChainCleanupService for orphaned file cleanup and compression. - Add JPAUtil.closeAllConnections() for SQLite WAL exclusive lock acquisition. - Implement Hibernate session.doWork() pattern for SQLite VACUUM outside JPA transactions. - Add 779-line DATABASE_MAINTENANCE_GUIDE.md with SQLite WAL solution. - Update API_GUIDE.md and TESTING.md with new maintenance capabilities. - All 828+ tests passing with database-agnostic implementation.
  • feat(config): Add environment-based database configuration with robust validation.
  • refactor(encryption): Fix critical hash integrity issue in retroactive encryption - CRITICAL FIX: Keep 'data' field unchanged during retroactive encryption to maintain hash integrity. - Store encrypted content in 'encryptionMetadata' instead of overwriting 'data' field. - Rename BlockDAO → BlockRepository (97% similarity, repository pattern alignment). - Add comprehensive retroactive encryption documentation. - Update BlockEncryptionIntegrationTest with correct validation logic. - Add check-script-references.zsh utility for documentation consistency. - Fix all tests to validate data field preservation instead of "[ENCRYPTED]" placeholder.
  • refactor(concurrency): Migrate to StampedLock and reorganize documentation structure - Replace ReentrantReadWriteLock with StampedLock for ~50% read performance improvement. - Fix 13 deadlocks using optimistic reads and dual-mode pattern. - Add LockTracer debugging utility for lock lifecycle monitoring. - Fix AtomicReference multi-field atomicity in UserFriendlyEncryptionAPI credentials. - Reorganize 64 docs into 10 thematic subdirectories (96.9% organized). - Add comprehensive lock migration audits (STAMPEDLOCK_AUDIT_REPORT.md). - Update all cross-references in README.md and documentation files.
  • fix(overflow): Add numeric overflow validation to prevent arithmetic exceptions - Add overflow check in StorageTieringManager.getStatistics() before dataSize multiplication. - Add search term length validation in SearchCacheManager.warmCache() before size calculation. - Prevent Long overflow when dataSize > Long.MAX_VALUE/2 (2.3 exabytes). - Prevent Integer overflow when term.length() > 1,000,000 characters. - Throw IllegalStateException/IllegalArgumentException with clear error messages.
  • refactor(overflow): Add VARCHAR validation and fix pagination integer overflow - Replace VARCHAR truncation with validation (11 fields across 5 entities). - Fix critical pagination overflow: int→long offset (11 loops, 8 methods). - Add safe cast validation for JPA setFirstResult() compatibility. - Add DATABASE_FIELD_LIMITS.md + update all docs with long offset examples. - Add 17 comprehensive overflow protection tests.
  • refactor(memory): Add comprehensive memory safety and remove obsolete validation methods - Add MemorySafetyConstants class to centralize all memory limits. - Remove obsolete validateBlockSize() method (conflicted with off-chain logic). - Replace validateBlockSize() with validateAndDetermineStorage() in all tests. - Add validateChainStreaming() for unlimited blockchain size validation. - Add automatic truncation to Block.setAutoKeywords() (1024 char limit). - Update BlockchainAdditionalAdvancedFunctionsTest with proper cleanup. - Add memory safety limits to all search and batch operations. - Update documentation with new memory-safe methods and limits.
  • feat(memory): Add comprehensive memory protection to all search and batch methods - Add result limits to searchByCustomMetadata() and searchBlocksByContentWithLevel(). - Add batch size validation to batchRetrieveBlocks() and batchRetrieveBlocksByHash(). - All methods default to 10K limit with configurable overrides. - Throw IllegalArgumentException when batch size exceeds 10K. - Update API_GUIDE.md with memory safety documentation. - Blockchain now fully protected against OutOfMemoryError on large datasets.
  • feat(api): Add configurable result limits to searchByCategory() and getBlocksBySignerPublicKey() - Add searchByCategory(category, maxResults) overload with custom limits. - Add getBlocksBySignerPublicKey(publicKey, maxResults) overload. - Default 10K limit for memory safety, customizable per use case. - Document WARNING: maxResults=0 is unlimited and memory-unsafe. - Update API_GUIDE.md, TECHNICAL_DETAILS.md, and CLAUDE.md. - All methods thread-safe with GLOBAL_BLOCKCHAIN_LOCK.

Download

  • private-blockchain-v1.0.5.jar: Standard JAR (requires dependencies)
  • private-blockchain-v1.0.5-jar-with-dependencies.jar: Executable JAR with all dependencies included

Usage

#!/usr/bin/env zsh

java -jar private-blockchain-v1.0.5-jar-with-dependencies.jar