Skip to content

Conversation

@Valentin-Vi
Copy link

@Valentin-Vi Valentin-Vi commented Dec 15, 2025

Description

Implements an optional in-memory caching layer for the Core database module using the builder pattern. The cache wraps the base database interface with a cache layer (decorator pattern) to improve read performance and reduce database I/O. This is step 1 of the broader persistence initiative.

Type of Change

  • 🐛 Bug fix (fix/*)
  • ✨ New feature (feature/*)
  • 🔧 Enhancement (enhancement/*)
  • 🚑 Hotfix (hotfix/*)
  • 🚀 Release (release/*)

Related Issues

Closes #59

Changes Made

  • Added Cache interface with Get, Set, Delete, and Flush methods supporting TTL
  • Implemented GoCache using github.com/patrickmn/go-cache library (as specified in issue Core / Database / Cache Abstraction Layer #59)
  • Created RepositoryCache decorator that wraps base repository with transparent caching
  • Implemented DatabaseBuilder pattern with optional WithCache() method for flexible composition
  • Added cache configuration to config system (cache.enabled, cache.default_ttl, cache.cleanup_interval)
  • Added cache settings to default.yaml (disabled by default)
  • Created helper function to convert YAML config to CacheConfig
  • Maintained backwards compatibility: NewDatabase() function still works without changes
  • Comprehensive test suite with ~34 tests covering all components
  • Added github.com/patrickmn/go-cache dependency (v2.1.0+incompatible)

New Files

  • internal/core/database/cache/interface.go - Cache interface definition
  • internal/core/database/cache/config.go - Cache configuration struct and defaults
  • internal/core/database/cache/memory_cache.go - Alternative in-memory cache implementation (used in tests, not in production code)
  • internal/core/database/cache/gocache.go - go-cache implementation using github.com/patrickmn/go-cache
  • internal/core/database/cache/repository_cache.go - Repository decorator with caching
  • internal/core/database/cache/config_helper.go - YAML config to CacheConfig converter
  • internal/core/database/builder.go - DatabaseBuilder pattern implementation
  • internal/core/database/cache/cache_test.go - Cache interface tests
  • internal/core/database/cache/repository_cache_test.go - Repository cache tests
  • internal/core/database/builder_test.go - Builder pattern tests
  • internal/core/database/integration_test.go - Integration tests

Modified Files

  • internal/core/config/config.go - Added Cache struct and GetCache() function
  • internal/core/config/default.yaml - Added cache configuration section
  • go.mod - Added github.com/patrickmn/go-cache dependency

Breaking Changes

  • This PR introduces breaking changes
  • Migration guide provided (if yes)

Migration Guide

No breaking changes. The cache is optional and disabled by default. Existing code using NewDatabase() continues to work without modification. This is a purely additive feature.

To enable caching, use the new builder pattern:

// With cache enabled
db, err := database.NewDatabaseBuilder[MyEntity](ctx, "mydb").
    WithCache(cache.CacheConfig{
        Enabled:         true,
        DefaultTTL:      5 * time.Minute,
        CleanupInterval: 1 * time.Minute,
    }).
    Build()

// Without cache (backwards compatible)
db, err := database.NewDatabase[MyEntity](ctx, "mydb")

Or enable via configuration file:

config:
  cache:
    enabled: true
    default_ttl: "5m"
    cleanup_interval: "1m"

Checklist

  • Code follows Clean Architecture principles
  • Code follows project style guidelines
  • Self-review completed
  • Comments added for complex logic
  • All documentation updated in ./docs/ folder
  • Tests pass locally (make test)
  • Coverage requirements met (make test-coverage)
  • No linting errors (make lint)
  • Security scan passes (make security)
  • Branch name follows convention (enhancement/, feature/, fix/, hotfix/, release/*)

Screenshots/Logs (if applicable)

Test Coverage Summary

Component Tests Coverage
Cache Interface 11 Hit/miss, TTL, flush, concurrency
Repository Cache 13 Invalidation, decorator transparency
Builder Pattern 7 Build with/without cache
Integration 3 End-to-end CRUD with caching

Key Features

  • Optional: Cache is disabled by default, zero overhead when not used
  • Thread-safe: Uses go-cache library which is thread-safe by design
  • Automatic invalidation: Cache cleared on Create/Update/Delete
  • TTL support: Entries expire after configured duration
  • go-cache library: Uses github.com/patrickmn/go-cache as specified in issue Core / Database / Cache Abstraction Layer #59

@github-actions
Copy link

📊 Test Coverage Report

Total Coverage: 90.4%
Threshold: 90%
Status: PASSED

📋 View Detailed Report
github.com/rabbytesoftware/quiver/cmd/quiver/main.go:11:						main				0.0%
github.com/rabbytesoftware/quiver/internal/api/api.go:24:						NewAPI				90.9%
github.com/rabbytesoftware/quiver/internal/api/api.go:50:						Run				0.0%
github.com/rabbytesoftware/quiver/internal/api/api.go:67:						SetupMiddleware			100.0%
github.com/rabbytesoftware/quiver/internal/api/api.go:72:						SetupRoutes			100.0%
github.com/rabbytesoftware/quiver/internal/api/middleware/logger.go:12:					WatcherLogger			100.0%
github.com/rabbytesoftware/quiver/internal/api/middleware/logger.go:61:					WatcherRecovery			100.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/arrows/routes.go:8:			SetupRoutes			0.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/health/health.go:14:			NewHealthHandler		100.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/health/health.go:22:			SetupRoutes			100.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/health/health.go:26:			Handler				100.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/quivers/routes.go:8:			SetupRoutes			0.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/system/routes.go:8:			SetupRoutes			0.0%
github.com/rabbytesoftware/quiver/internal/api/v1/routes.go:12:						SetupRoutes			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:68:					Get				63.6%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:88:					GetNetbridge			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:92:					GetArrows			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:96:					GetAPI				100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:100:					GetDatabase			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:104:					GetWatcher			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:108:					GetCache			0.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:112:					GetConfigPath			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:116:					ConfigExists			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:122:					getDefaultConfig		80.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:165:					resetForTesting			100.0%
github.com/rabbytesoftware/quiver/internal/core/core.go:22:						Init				100.0%
github.com/rabbytesoftware/quiver/internal/core/core.go:30:						GetMetadata			100.0%
github.com/rabbytesoftware/quiver/internal/core/core.go:34:						GetConfig			100.0%
github.com/rabbytesoftware/quiver/internal/core/core.go:38:						GetWatcher			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/builder.go:19:					NewDatabaseBuilder		100.0%
github.com/rabbytesoftware/quiver/internal/core/database/builder.go:30:					WithCache			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/builder.go:36:					Build				77.8%
github.com/rabbytesoftware/quiver/internal/core/database/cache/config.go:20:				DefaultCacheConfig		100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/config.go:29:				IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/config_helper.go:11:			CacheConfigFromYAML		100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/gocache.go:18:				NewGoCache			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/gocache.go:29:				Get				71.4%
github.com/rabbytesoftware/quiver/internal/core/database/cache/gocache.go:60:				Set				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/gocache.go:77:				Delete				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/gocache.go:87:				Flush				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/memory_cache.go:24:			NewMemoryCache			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/memory_cache.go:40:			cleanup				33.3%
github.com/rabbytesoftware/quiver/internal/core/database/cache/memory_cache.go:57:			Get				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/memory_cache.go:90:			Set				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/memory_cache.go:113:			Delete				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/memory_cache.go:126:			Flush				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/repository_cache.go:23:			NewRepositoryCache		100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/repository_cache.go:40:			buildEntityKey			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/repository_cache.go:45:			buildListKey			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/repository_cache.go:50:			getEntityTypeName		100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/repository_cache.go:56:			Get				90.9%
github.com/rabbytesoftware/quiver/internal/core/database/cache/repository_cache.go:82:			GetByID				90.9%
github.com/rabbytesoftware/quiver/internal/core/database/cache/repository_cache.go:108:			Create				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/repository_cache.go:121:			extractID			66.7%
github.com/rabbytesoftware/quiver/internal/core/database/cache/repository_cache.go:151:			Update				60.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/repository_cache.go:173:			Delete				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/repository_cache.go:187:			Exists				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/repository_cache.go:192:			Count				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/repository_cache.go:197:			Close				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/database.go:10:				NewDatabase			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:23:			NewRepository			76.9%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:56:			Get				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:66:			GetByID				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:80:			Create				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:90:			Update				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:100:			Delete				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:110:			Exists				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:121:			Count				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:131:			Close				66.7%
github.com/rabbytesoftware/quiver/internal/core/errors/errors.go:11:					Throw				100.0%
github.com/rabbytesoftware/quiver/internal/core/errors/errors.go:23:					Error				100.0%
github.com/rabbytesoftware/quiver/internal/core/errors/errors.go:27:					ShouldRetry			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/config/config.go:20:				Default				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/config/config.go:37:				WithHTTPClient			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/config/config.go:45:				WithMaxMemorySize		100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/config/config.go:53:				WithBufferSize			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/errors/errors.go:11:				Error				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/errors/errors.go:18:				Unwrap				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/errors/errors.go:22:				Op				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/errors/errors.go:33:				NotFound			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/errors/errors.go:41:				Unsupported			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:14:					getStrategy			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:27:					GetInfo				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:35:					Exists				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:43:					IsDir				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:51:					IsFile				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:59:					Read				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:67:					ReadStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:75:					Write				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:84:					WriteStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:93:					Append				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:102:					List				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:110:					Mkdir				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:119:					MkdirAll			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:128:					Remove				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:136:					RemoveAll			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:144:					Copy				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:152:					Move				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:160:					Rename				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:168:					Chmod				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:177:					Chown				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:186:					Download			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:195:					DownloadStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:204:					Fetch				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:212:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:20:				NewLocal			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:26:				GetInfo				90.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:44:				Exists				85.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:56:				IsDir				85.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:69:				IsFile				85.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:82:				Read				83.3%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:104:				ReadStream			78.6%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:128:				Write				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:152:				WriteStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:185:				Append				90.9%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:205:				List				88.2%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:237:				Mkdir				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:251:				MkdirAll			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:265:				Remove				80.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:292:				RemoveAll			77.8%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:308:				Copy				93.3%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:333:				Move				83.3%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:374:				Rename				80.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:391:				Chmod				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:405:				Chown				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:420:				Download			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:424:				DownloadStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:428:				Fetch				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:432:				Validate			87.5%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:21:				NewRemote			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:28:				doRequest			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:42:				GetInfo				66.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:98:				Exists				80.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:108:				IsDir				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:112:				IsFile				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:116:				Read				0.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:120:				ReadStream			85.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:134:				Write				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:138:				WriteStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:142:				Append				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:146:				List				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:150:				Mkdir				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:154:				MkdirAll			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:158:				Remove				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:162:				RemoveAll			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:166:				Copy				85.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:191:				Move				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:195:				Rename				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:199:				Chmod				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:203:				Chown				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:207:				Download			78.4%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:269:				DownloadStream			85.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:283:				Fetch				83.3%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:308:				Validate			75.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:48:				Get				83.3%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:60:				GetVersion			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:64:				GetVersionCodename		100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:68:				GetName				100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:72:				GetDescription			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:76:				GetAuthor			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:80:				GetURL				100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:84:				GetLicense			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:88:				GetCopyright			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:92:				GetMaintainers			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:96:				GetVariables			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:100:				GetDefaultConfigPath		100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:104:				defaultMetadata			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:9:					Debug				100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:13:					Info				100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:17:					Warn				100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:21:					Errorf				100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:26:					Error				100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:31:					Unforeseen			0.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:35:					Unforeseenf			0.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:26:					NewWatcherService		100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:38:					GetWatcher			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:42:					SetLevel			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:46:					GetLevel			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:50:					WithFields			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:54:					WithField			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:58:					GetConfig			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:62:					IsEnabled			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:66:					initLogger			53.3%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:101:					isTestEnvironment		75.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/infrastructure.go:17:				NewInfrastructure		85.7%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:16:			NewNetbridge			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:20:			IsEnabled			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:24:			IsAvailable			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:28:			PublicIP			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:34:			LocalIP				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:40:			IsPortAvailable			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:47:			ArePortsAvailable		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:54:			ForwardPort			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:66:			ForwardPorts			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:73:			ReversePort			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:85:			ReversePorts			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:92:			GetPortForwardingStatus		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:99:			GetPortForwardingStatuses	100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:20:		NewRequirements			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:24:		Validate			84.6%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:55:		ValidateOS			91.7%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:82:		ValidateCPU			90.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:106:		ValidateMemory			91.7%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:133:		ValidateDisk			91.7%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:23:		NewBuilder			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:32:		WithWorkDir			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:37:		WithEnv				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:44:		WithEnvVar			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:49:		WithTimeout			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:54:		WithBufferSize			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:59:		WithKillTimeout			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:64:		WithStopTimeout			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder_linux.go:10:		Build				90.9%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:18:			NewManager			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:24:			Register			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:30:			Unregister			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:36:			Get				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:47:			ListAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:58:			Count				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:64:			ListByStatus			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:77:			StopAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:100:			KillAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:123:			CleanupFinished			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:145:			ShutdownAll			94.1%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:177:			Clear				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:15:			String				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:19:			IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:28:			IsFinished			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:32:			IsActive			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:46:			NewConfig			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:58:			Validate			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:22:			NewHandler			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:26:			NewHandlerWithBuffers		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:36:			WriteOutput			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:56:			WriteError			88.9%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:76:			GetOutput			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:82:			GetError			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:88:			OutChan				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:92:			ErrChan				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:96:			Reset				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:103:			IsClosed			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:109:			Close				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/linux.go:20:			NewLinuxProcess			80.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/linux.go:36:			Start				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/linux.go:40:			Stop				72.7%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/linux.go:81:			Kill				56.5%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:45:		NewBaseProcess			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:77:		ID				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:81:		Status				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:87:		ExitCode			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:93:		Output				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:97:		Error				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:101:		StreamOutput			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:105:		StreamError			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:109:		GetConfig			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:113:		GetCmd				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:117:		GetOutputHandler		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:121:		GetDoneChan			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:125:		SetStatus			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:131:		SetExitCode			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:137:		Wait				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:146:		Close				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:151:		StartCommon			82.6%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:239:		envMapToSlice			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:18:			New				75.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:31:			Get				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:35:			GetByID				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:39:			ListAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:43:			ListByStatus			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:47:			Count				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:51:			StopAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:55:			KillAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:59:			CleanupFinished			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:63:			Shutdown			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:67:			OS				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:71:			detectOS			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:75:			isSupportedOS			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/manifest.go:21:			parseManifestString		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/manifest.go:44:			extractManifestFromYAML		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/manifest.go:57:			extractSchemaField		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/reader.go:19:			NewTranslator			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/reader.go:25:			Arrow				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/reader.go:31:			Quiver				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/reader.go:37:			ReadSchemaInfo			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/reader.go:53:			readManifest			84.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/reader.go:111:			readFile			85.7%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:19:	NewMapper			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:23:	Map				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:72:	GetSchema			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:76:	mapRequirements			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:93:	mapNetbridge			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:115:	mapVariables			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:137:	mapWizards			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:177:	mapActions			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/quiver/v1/mapper.go:14:	NewMapper			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/quiver/v1/mapper.go:18:	Map				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/quiver/v1/mapper.go:34:	GetSchema			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/register.go:8:		register			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/registry.go:16:		NewRegistry			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/registry.go:25:		GetArrowMapper			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/registry.go:33:		GetQuiverMapper			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/registry.go:41:		GetSchema			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/registry.go:57:		IsSupported			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/validation.go:12:			validateYAML			94.1%
github.com/rabbytesoftware/quiver/internal/internal.go:26:						NewInternal			100.0%
github.com/rabbytesoftware/quiver/internal/internal.go:42:						Run				0.0%
github.com/rabbytesoftware/quiver/internal/internal.go:46:						GetCore				100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/arrow.go:41:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/method.go:28:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/method.go:58:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/requirement.go:24:				IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/requirement.go:28:				Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable.go:19:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable_type.go:11:				String				100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable_type.go:15:				IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable_type.go:19:				IsString			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable_type.go:23:				IsNumber			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable_type.go:27:				IsBoolean			100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/forwarding_status.go:11:			String				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/forwarding_status.go:15:			IsEnabled			100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/forwarding_status.go:19:			IsDisabled			100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/forwarding_status.go:23:			IsError				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/port.go:18:					IsStartPortValid		100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/port.go:22:					IsEndPortValid			100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/port.go:26:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/protocol.go:11:				String				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/protocol.go:15:				IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/protocol.go:19:				IsTCP				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/protocol.go:23:				IsUDP				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/protocol.go:27:				IsTCPUDP			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/namespace.go:14:				Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/namespace.go:37:				GetQUID				75.0%
github.com/rabbytesoftware/quiver/internal/models/shared/namespace.go:45:				GetAUID				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/namespace.go:53:				String				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:16:					String				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:20:					IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:29:					IsLinux				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:33:					IsWindows			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:37:					IsDarwin			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:41:					IsAMD64				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:45:					IsARM64				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/security.go:10:				String				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/security.go:14:				IsTrusted			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/security.go:18:				IsUntrusted			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/url.go:7:					String				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/url.go:11:					IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:12:				NewArrowsRepository		100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:20:				Get				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:24:				GetById				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:28:				Create				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:32:				Update				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:36:				DeleteById			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:12:				NewQuiversRepository		100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:20:				Get				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:24:				GetById				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:28:				Create				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:32:				Update				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:36:				DeleteById			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/repositories.go:16:				NewRepositories			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/repositories.go:26:				GetArrows			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/repositories.go:30:				GetSystem			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/repositories.go:34:				GetQuivers			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:12:				NewSystemRepository		100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:20:				GetMetadata			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:24:				UpdateQuiver			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:28:				UninstallQuiver			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:32:				GetLogs				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:36:				RestartQuiver			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:40:				Status				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:44:				StopQuiver			100.0%
github.com/rabbytesoftware/quiver/internal/usecases/arrows/usecase.go:9:				NewArrowsUsecase		100.0%
github.com/rabbytesoftware/quiver/internal/usecases/quivers/usecase.go:9:				NewQuiversUsecase		100.0%
github.com/rabbytesoftware/quiver/internal/usecases/system/usecase.go:9:				NewSystemUsecase		100.0%
github.com/rabbytesoftware/quiver/internal/usecases/usecases.go:16:					NewUsecases			100.0%
github.com/rabbytesoftware/quiver/internal/utils/slices.go:3:						GetSliceField			100.0%
github.com/rabbytesoftware/quiver/internal/utils/slices.go:10:						GetStringField			100.0%
github.com/rabbytesoftware/quiver/internal/utils/slices.go:17:						GetIntField			100.0%
github.com/rabbytesoftware/quiver/internal/utils/slices.go:27:						GetBoolField			100.0%
github.com/rabbytesoftware/quiver/internal/utils/slices.go:34:						ToStringSlice			100.0%
total:													(statements)			90.4%

@char2cs char2cs self-requested a review December 16, 2025 22:00
Copy link
Member

@char2cs char2cs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sacando los comentarios, buena implementación y usás bien los conceptos de Go. Trataría de reducir la cantidad de archivos y aplicar mejor algunos conceptos del lenguaje, pero le estás agarrando la mano.

@rabbytesoftware rabbytesoftware deleted a comment from github-actions bot Dec 17, 2025
@char2cs char2cs marked this pull request as draft December 20, 2025 18:15
@char2cs char2cs closed this Dec 21, 2025
@char2cs char2cs reopened this Dec 21, 2025
@Valentin-Vi Valentin-Vi marked this pull request as ready for review December 30, 2025 23:40
@Valentin-Vi Valentin-Vi marked this pull request as draft December 30, 2025 23:41
@Valentin-Vi Valentin-Vi force-pushed the feature/cache-abstraction-layer branch from 9bba170 to cf9df25 Compare December 31, 2025 00:01
…go up to 94.4%. Fixed missing error handling and implemented use of Watcher.Warn for configuration errors and cache write failure
@github-actions
Copy link

github-actions bot commented Jan 6, 2026

📊 Test Coverage Report

Total Coverage: 90.9%
Threshold: 90%
Status: PASSED

📋 View Detailed Report
github.com/rabbytesoftware/quiver/cmd/quiver/main.go:11:						main				0.0%
github.com/rabbytesoftware/quiver/internal/api/api.go:24:						NewAPI				90.9%
github.com/rabbytesoftware/quiver/internal/api/api.go:50:						Run				0.0%
github.com/rabbytesoftware/quiver/internal/api/api.go:67:						SetupMiddleware			100.0%
github.com/rabbytesoftware/quiver/internal/api/api.go:72:						SetupRoutes			100.0%
github.com/rabbytesoftware/quiver/internal/api/middleware/logger.go:12:					WatcherLogger			100.0%
github.com/rabbytesoftware/quiver/internal/api/middleware/logger.go:61:					WatcherRecovery			100.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/arrows/routes.go:8:			SetupRoutes			0.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/health/health.go:14:			NewHealthHandler		100.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/health/health.go:22:			SetupRoutes			100.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/health/health.go:26:			Handler				100.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/quivers/routes.go:8:			SetupRoutes			0.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/system/routes.go:8:			SetupRoutes			0.0%
github.com/rabbytesoftware/quiver/internal/api/v1/routes.go:12:						SetupRoutes			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/commands/add_request.go:30:			NewAddRequest			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/commands/add_request.go:43:			Validate			83.3%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/commands/add_request.go:58:			ToEvent				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_failed.go:37:			NewAddFailedEvent		100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_failed.go:41:			WithArrowNamespace		100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_failed.go:48:			WithErrorCode			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_failed.go:55:			WithErrorMessage		100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_failed.go:62:			WithStep			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_failed.go:69:			Build				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_requested.go:35:			NewAddRequestedEvent		100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_requested.go:39:			WithArrowNamespace		100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_requested.go:46:			WithPath			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_requested.go:53:			WithForceAdd			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_requested.go:60:			WithStep			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_requested.go:67:			Build				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_succeeded.go:32:			NewAddSucceededEvent		100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_succeeded.go:36:			WithArrowNamespace		100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_succeeded.go:43:			WithArrow			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_succeeded.go:50:			WithStep			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_succeeded.go:57:			Build				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/handlers/cqrs.go:35:				NewArrowView			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/handlers/cqrs.go:39:				Get				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/handlers/cqrs.go:46:				List				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/handlers/cqrs.go:52:				Add				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/handlers/cqrs.go:60:				Update				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/handlers/cqrs.go:67:				Remove				100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:70:					Get				63.6%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:89:					GetNetbridge			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:93:					GetArrows			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:97:					GetAPI				100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:101:					GetDatabase			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:105:					GetWatcher			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:109:					GetCache			0.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:113:					GetConfigPath			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:117:					ConfigExists			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:123:					getDefaultConfig		80.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:166:					resetForTesting			100.0%
github.com/rabbytesoftware/quiver/internal/core/core.go:22:						Init				100.0%
github.com/rabbytesoftware/quiver/internal/core/core.go:30:						GetMetadata			100.0%
github.com/rabbytesoftware/quiver/internal/core/core.go:34:						GetConfig			100.0%
github.com/rabbytesoftware/quiver/internal/core/core.go:38:						GetWatcher			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/builder.go:18:					NewDatabaseBuilder		100.0%
github.com/rabbytesoftware/quiver/internal/core/database/builder.go:27:					WithCache			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/builder.go:32:					Build				75.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:23:			NewCachedRepository		100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:43:			Create				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:47:			Get				94.7%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:80:			GetByID				94.1%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:112:		Update				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:129:		Delete				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:140:		Exists				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:148:		Count				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:156:		Where				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:164:		Close				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:168:		extractID			92.3%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:194:		buildEntityKey			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:198:		buildListKey			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:202:		getEntityTypeName		100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:207:		set				83.3%
github.com/rabbytesoftware/quiver/internal/core/database/cache/config.go:17:				DefaultCacheConfig		100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/config.go:24:				IsValid				0.0%
github.com/rabbytesoftware/quiver/internal/core/database/database.go:10:				NewDatabase			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:23:			NewRepository			76.9%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:56:			Get				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:66:			GetByID				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:80:			Create				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:90:			Update				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:100:			Delete				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:110:			Exists				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:121:			Count				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:131:			Where				0.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:143:			Close				66.7%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:11:					Throw				100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:23:					Error				100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:27:					Success				100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:31:					Created				100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:35:					Accepted			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:39:					NonAuthoritativeInformation	100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:43:					NoContent			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:47:					ResetContent			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:51:					PartialContent			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:55:					MultiStatus			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:59:					AlreadyReported			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:63:					IMUsed				100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:68:					InvalidRequest			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:72:					Unauthorized			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:76:					PaymentRequired			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:80:					Forbidden			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:84:					NotFound			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:88:					MethodNotAllowed		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:92:					NotAcceptable			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:96:					ProxyAuthenticationRequired	100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:100:					RequestTimeout			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:104:					Conflict			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:108:					Gone				100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:112:					LengthRequired			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:116:					PreconditionFailed		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:120:					PayloadTooLarge			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:124:					URITooLong			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:128:					UnsupportedMediaType		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:132:					RangeNotSatisfiable		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:136:					ExpectationFailed		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:140:					ImATeapot			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:144:					MisdirectedRequest		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:148:					UnprocessableEntity		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:152:					Locked				100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:156:					FailedDependency		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:160:					TooEarly			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:164:					UpgradeRequired			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:168:					PreconditionRequired		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:172:					TooManyRequests			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:176:					RequestHeaderFieldsTooLarge	100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:180:					UnavailableForLegalReasons	100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:185:					InternalServerError		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:189:					NotImplemented			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:193:					BadGateway			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:197:					ServiceUnavailable		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:201:					GatewayTimeout			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:205:					HTTPVersionError		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:209:					VariantAlsoNegotiates		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:213:					InsufficientStorage		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:217:					LoopDetected			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:221:					NotExtended			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:225:					NetworkAuthenticationRequired	100.0%
github.com/rabbytesoftware/quiver/internal/core/es/builder.go:16:					New				100.0%
github.com/rabbytesoftware/quiver/internal/core/es/builder.go:20:					WithSQLiteStore			80.0%
github.com/rabbytesoftware/quiver/internal/core/es/builder.go:32:					WithMemoryBus			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/builder.go:37:					Build				100.0%
github.com/rabbytesoftware/quiver/internal/core/es/bus/memory.go:23:					NewMemoryBus			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/bus/memory.go:29:					Publish				100.0%
github.com/rabbytesoftware/quiver/internal/core/es/bus/memory.go:53:					Subscribe			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:68:					NewEvent			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:76:					WithAggregateID			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:83:					WithAggregateType		100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:90:					WithAggregateVersion		100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:97:					WithEventType			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:104:					WithEventVersion		100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:111:					WithIdempotency			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:118:					WithParentID			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:125:					WithMetadata			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:132:					WithPayload			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:139:					Build				100.0%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:19:					Execute				72.7%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:46:					Publish				66.7%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:64:					AggregateExists			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:71:					HasEventType			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:79:					GetEvents			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:87:					GetEventStream			75.0%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:100:				Subscribe			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:107:				Close				100.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:31:					TableName			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:39:					NewSQLiteStore			75.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:53:					Append				71.4%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:70:					GetByAggregate			80.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:91:					AggregateExists			75.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:103:					HasEventType			75.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:116:					eventToRow			80.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:145:					rowToEvent			75.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:172:					Close				100.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/typed.go:11:					GetByAggregate			81.2%
github.com/rabbytesoftware/quiver/internal/core/es/stream/stream.go:11:					NewEventStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/stream/stream.go:19:					HasEventType			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/stream/stream.go:30:					GetEvents			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/stream/stream.go:34:					Len				100.0%
github.com/rabbytesoftware/quiver/internal/core/es/stream/stream.go:38:					GetLatestVersion		100.0%
github.com/rabbytesoftware/quiver/internal/core/es/utils.go:5:						toAnyEvent			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/config/config.go:20:				Default				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/config/config.go:37:				WithHTTPClient			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/config/config.go:45:				WithMaxMemorySize		100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/config/config.go:53:				WithBufferSize			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/errors/errors.go:11:				Error				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/errors/errors.go:18:				Unwrap				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/errors/errors.go:22:				Op				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/errors/errors.go:33:				NotFound			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/errors/errors.go:41:				Unsupported			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:14:					getStrategy			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:27:					GetInfo				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:35:					Exists				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:43:					IsDir				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:51:					IsFile				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:59:					Read				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:67:					ReadStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:75:					Write				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:84:					WriteStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:93:					Append				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:102:					List				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:110:					Mkdir				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:119:					MkdirAll			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:128:					Remove				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:136:					RemoveAll			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:144:					Copy				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:152:					Move				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:160:					Rename				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:168:					Chmod				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:177:					Chown				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:186:					Download			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:195:					DownloadStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:204:					Fetch				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:212:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:20:				NewLocal			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:26:				GetInfo				90.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:44:				Exists				85.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:56:				IsDir				85.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:69:				IsFile				85.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:82:				Read				83.3%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:104:				ReadStream			78.6%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:128:				Write				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:152:				WriteStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:185:				Append				90.9%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:205:				List				88.2%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:237:				Mkdir				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:251:				MkdirAll			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:265:				Remove				80.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:292:				RemoveAll			77.8%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:308:				Copy				93.3%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:333:				Move				83.3%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:374:				Rename				80.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:391:				Chmod				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:405:				Chown				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:420:				Download			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:424:				DownloadStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:428:				Fetch				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:432:				Validate			87.5%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:22:				NewRemote			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:29:				doRequest			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:43:				GetInfo				66.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:99:				Exists				80.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:109:				IsDir				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:113:				IsFile				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:117:				Read				0.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:121:				ReadStream			85.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:135:				Write				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:139:				WriteStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:143:				Append				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:147:				List				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:151:				Mkdir				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:155:				MkdirAll			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:159:				Remove				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:163:				RemoveAll			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:167:				Copy				81.2%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:196:				Move				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:200:				Rename				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:204:				Chmod				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:208:				Chown				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:212:				Download			76.9%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:279:				DownloadStream			85.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:293:				Fetch				83.3%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:318:				Validate			75.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:48:				Get				83.3%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:60:				GetVersion			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:64:				GetVersionCodename		100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:68:				GetName				100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:72:				GetDescription			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:76:				GetAuthor			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:80:				GetURL				100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:84:				GetLicense			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:88:				GetCopyright			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:92:				GetMaintainers			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:96:				GetVariables			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:100:				GetDefaultConfigPath		100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:104:				defaultMetadata			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:7:					Debug				100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:11:					Info				100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:15:					Warn				100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:19:					Error				100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:23:					Unforeseen			0.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:28:					NewWatcherService		100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:40:					GetWatcher			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:44:					SetLevel			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:48:					GetLevel			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:52:					WithFields			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:56:					WithField			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:60:					GetConfig			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:64:					IsEnabled			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:68:					initLogger			53.3%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:103:					isTestEnvironment		75.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/infrastructure.go:19:				NewInfrastructure		87.5%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:16:			NewNetbridge			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:20:			IsEnabled			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:24:			IsAvailable			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:28:			PublicIP			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:34:			LocalIP				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:40:			IsPortAvailable			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:47:			ArePortsAvailable		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:54:			ForwardPort			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:66:			ForwardPorts			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:73:			ReversePort			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:85:			ReversePorts			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:92:			GetPortForwardingStatus		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:99:			GetPortForwardingStatuses	100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:20:		NewRequirements			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:24:		Validate			84.6%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:55:		ValidateOS			91.7%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:82:		ValidateCPU			90.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:106:		ValidateMemory			91.7%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:133:		ValidateDisk			91.7%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:23:		NewBuilder			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:32:		WithWorkDir			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:37:		WithEnv				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:44:		WithEnvVar			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:49:		WithTimeout			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:54:		WithBufferSize			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:59:		WithKillTimeout			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:64:		WithStopTimeout			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder_linux.go:10:		Build				90.9%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:18:			NewManager			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:24:			Register			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:30:			Unregister			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:36:			Get				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:47:			ListAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:58:			Count				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:64:			ListByStatus			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:77:			StopAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:100:			KillAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:123:			CleanupFinished			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:145:			ShutdownAll			94.1%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:177:			Clear				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:15:			String				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:19:			IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:28:			IsFinished			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:32:			IsActive			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:46:			NewConfig			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:58:			Validate			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:22:			NewHandler			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:26:			NewHandlerWithBuffers		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:36:			WriteOutput			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:56:			WriteError			88.9%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:76:			GetOutput			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:82:			GetError			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:88:			OutChan				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:92:			ErrChan				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:96:			Reset				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:103:			IsClosed			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:109:			Close				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/linux.go:20:			NewLinuxProcess			80.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/linux.go:36:			Start				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/linux.go:40:			Stop				72.7%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/linux.go:81:			Kill				56.5%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:45:		NewBaseProcess			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:77:		ID				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:81:		Status				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:87:		ExitCode			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:93:		Output				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:97:		Error				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:101:		StreamOutput			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:105:		StreamError			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:109:		GetConfig			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:113:		GetCmd				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:117:		GetOutputHandler		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:121:		GetDoneChan			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:125:		SetStatus			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:131:		SetExitCode			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:137:		Wait				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:146:		Close				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:151:		StartCommon			82.6%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:239:		envMapToSlice			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:18:			New				75.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:31:			Get				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:35:			GetByID				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:39:			ListAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:43:			ListByStatus			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:47:			Count				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:51:			StopAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:55:			KillAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:59:			CleanupFinished			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:63:			Shutdown			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:67:			OS				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:71:			detectOS			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:75:			isSupportedOS			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/manifest.go:21:			parseManifestString		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/manifest.go:44:			extractManifestFromYAML		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/manifest.go:57:			extractSchemaField		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/reader.go:18:			NewTranslator			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/reader.go:24:			Arrow				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/reader.go:30:			Quiver				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/reader.go:36:			ReadSchemaInfo			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/reader.go:52:			readManifest			84.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:19:	NewMapper			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:23:	Map				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:72:	GetSchema			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:76:	mapRequirements			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:93:	mapNetbridge			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:115:	mapVariables			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:137:	mapWizards			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:177:	mapActions			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/quiver/v1/mapper.go:14:	NewMapper			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/quiver/v1/mapper.go:18:	Map				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/quiver/v1/mapper.go:34:	GetSchema			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/register.go:8:		register			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/registry.go:16:		NewRegistry			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/registry.go:25:		GetArrowMapper			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/registry.go:33:		GetQuiverMapper			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/registry.go:41:		GetSchema			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/registry.go:57:		IsSupported			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/validation.go:12:			validateYAML			94.1%
github.com/rabbytesoftware/quiver/internal/infrastructure/wizard/wizard.go:6:				NewWizard			100.0%
github.com/rabbytesoftware/quiver/internal/internal.go:26:						NewInternal			100.0%
github.com/rabbytesoftware/quiver/internal/internal.go:42:						Run				0.0%
github.com/rabbytesoftware/quiver/internal/internal.go:46:						GetCore				100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/arrow.go:41:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/method.go:28:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/method.go:58:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/requirement.go:24:				IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/requirement.go:28:				Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable.go:19:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable_type.go:11:				String				100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable_type.go:15:				IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable_type.go:19:				IsString			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable_type.go:23:				IsNumber			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable_type.go:27:				IsBoolean			100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/forwarding_status.go:11:			String				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/forwarding_status.go:15:			IsEnabled			100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/forwarding_status.go:19:			IsDisabled			100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/forwarding_status.go:23:			IsError				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/port.go:18:					IsStartPortValid		100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/port.go:22:					IsEndPortValid			100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/port.go:26:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/protocol.go:11:				String				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/protocol.go:15:				IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/protocol.go:19:				IsTCP				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/protocol.go:23:				IsUDP				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/protocol.go:27:				IsTCPUDP			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/namespace.go:14:				Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/namespace.go:37:				GetQUID				75.0%
github.com/rabbytesoftware/quiver/internal/models/shared/namespace.go:45:				GetAUID				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/namespace.go:53:				String				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:16:					String				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:20:					IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:29:					IsLinux				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:33:					IsWindows			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:37:					IsDarwin			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:41:					IsAMD64				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:45:					IsARM64				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/security.go:10:				String				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/security.go:14:				IsTrusted			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/security.go:18:				IsUntrusted			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/url.go:7:					String				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/url.go:11:					IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:52:				NewArrowsRepository		100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:58:				Get				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:65:				List				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:71:				Add				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:81:				Remove				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:90:				ExecuteMethod			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:100:				StopMethod			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:12:				NewQuiversRepository		100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:20:				Get				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:24:				GetById				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:28:				Create				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:32:				Update				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:36:				DeleteById			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/repositories.go:16:				NewRepositories			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/repositories.go:26:				GetArrows			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/repositories.go:30:				GetSystem			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/repositories.go:34:				GetQuivers			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:12:				NewSystemRepository		100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:20:				GetMetadata			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:24:				UpdateQuiver			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:28:				UninstallQuiver			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:32:				GetLogs				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:36:				RestartQuiver			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:40:				Status				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:44:				StopQuiver			100.0%
github.com/rabbytesoftware/quiver/internal/usecases/arrows/usecase.go:9:				NewArrowsUsecase		100.0%
github.com/rabbytesoftware/quiver/internal/usecases/quivers/usecase.go:9:				NewQuiversUsecase		100.0%
github.com/rabbytesoftware/quiver/internal/usecases/system/usecase.go:9:				NewSystemUsecase		100.0%
github.com/rabbytesoftware/quiver/internal/usecases/usecases.go:16:					NewUsecases			100.0%
github.com/rabbytesoftware/quiver/internal/utils/slices.go:3:						GetSliceField			100.0%
github.com/rabbytesoftware/quiver/internal/utils/slices.go:10:						GetStringField			100.0%
github.com/rabbytesoftware/quiver/internal/utils/slices.go:17:						GetIntField			100.0%
github.com/rabbytesoftware/quiver/internal/utils/slices.go:27:						GetBoolField			100.0%
github.com/rabbytesoftware/quiver/internal/utils/slices.go:34:						ToStringSlice			100.0%
total:													(statements)			90.9%

@github-actions
Copy link

github-actions bot commented Jan 6, 2026

📊 Test Coverage Report

Total Coverage: 90.9%
Threshold: 90%
Status: PASSED

📋 View Detailed Report
github.com/rabbytesoftware/quiver/cmd/quiver/main.go:11:						main				0.0%
github.com/rabbytesoftware/quiver/internal/api/api.go:24:						NewAPI				90.9%
github.com/rabbytesoftware/quiver/internal/api/api.go:50:						Run				0.0%
github.com/rabbytesoftware/quiver/internal/api/api.go:67:						SetupMiddleware			100.0%
github.com/rabbytesoftware/quiver/internal/api/api.go:72:						SetupRoutes			100.0%
github.com/rabbytesoftware/quiver/internal/api/middleware/logger.go:12:					WatcherLogger			100.0%
github.com/rabbytesoftware/quiver/internal/api/middleware/logger.go:61:					WatcherRecovery			100.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/arrows/routes.go:8:			SetupRoutes			0.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/health/health.go:14:			NewHealthHandler		100.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/health/health.go:22:			SetupRoutes			100.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/health/health.go:26:			Handler				100.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/quivers/routes.go:8:			SetupRoutes			0.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/system/routes.go:8:			SetupRoutes			0.0%
github.com/rabbytesoftware/quiver/internal/api/v1/routes.go:12:						SetupRoutes			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/commands/add_request.go:30:			NewAddRequest			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/commands/add_request.go:43:			Validate			83.3%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/commands/add_request.go:58:			ToEvent				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_failed.go:37:			NewAddFailedEvent		100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_failed.go:41:			WithArrowNamespace		100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_failed.go:48:			WithErrorCode			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_failed.go:55:			WithErrorMessage		100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_failed.go:62:			WithStep			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_failed.go:69:			Build				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_requested.go:35:			NewAddRequestedEvent		100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_requested.go:39:			WithArrowNamespace		100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_requested.go:46:			WithPath			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_requested.go:53:			WithForceAdd			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_requested.go:60:			WithStep			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_requested.go:67:			Build				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_succeeded.go:32:			NewAddSucceededEvent		100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_succeeded.go:36:			WithArrowNamespace		100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_succeeded.go:43:			WithArrow			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_succeeded.go:50:			WithStep			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_succeeded.go:57:			Build				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/handlers/cqrs.go:35:				NewArrowView			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/handlers/cqrs.go:39:				Get				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/handlers/cqrs.go:46:				List				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/handlers/cqrs.go:52:				Add				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/handlers/cqrs.go:60:				Update				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/handlers/cqrs.go:67:				Remove				100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:70:					Get				63.6%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:89:					GetNetbridge			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:93:					GetArrows			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:97:					GetAPI				100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:101:					GetDatabase			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:105:					GetWatcher			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:109:					GetCache			0.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:113:					GetConfigPath			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:117:					ConfigExists			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:123:					getDefaultConfig		80.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:166:					resetForTesting			100.0%
github.com/rabbytesoftware/quiver/internal/core/core.go:22:						Init				100.0%
github.com/rabbytesoftware/quiver/internal/core/core.go:30:						GetMetadata			100.0%
github.com/rabbytesoftware/quiver/internal/core/core.go:34:						GetConfig			100.0%
github.com/rabbytesoftware/quiver/internal/core/core.go:38:						GetWatcher			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/builder.go:18:					NewDatabaseBuilder		100.0%
github.com/rabbytesoftware/quiver/internal/core/database/builder.go:27:					WithCache			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/builder.go:32:					Build				75.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:23:			NewCachedRepository		100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:43:			Create				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:47:			Get				94.7%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:80:			GetByID				94.1%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:112:		Update				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:129:		Delete				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:140:		Exists				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:148:		Count				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:156:		Where				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:164:		Close				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:168:		extractID			92.3%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:194:		buildEntityKey			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:198:		buildListKey			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:202:		getEntityTypeName		100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:207:		set				83.3%
github.com/rabbytesoftware/quiver/internal/core/database/cache/config.go:17:				DefaultCacheConfig		100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/config.go:24:				IsValid				0.0%
github.com/rabbytesoftware/quiver/internal/core/database/database.go:10:				NewDatabase			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:23:			NewRepository			76.9%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:56:			Get				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:66:			GetByID				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:80:			Create				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:90:			Update				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:100:			Delete				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:110:			Exists				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:121:			Count				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:131:			Where				0.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:143:			Close				66.7%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:11:					Throw				100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:23:					Error				100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:27:					Success				100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:31:					Created				100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:35:					Accepted			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:39:					NonAuthoritativeInformation	100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:43:					NoContent			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:47:					ResetContent			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:51:					PartialContent			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:55:					MultiStatus			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:59:					AlreadyReported			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:63:					IMUsed				100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:68:					InvalidRequest			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:72:					Unauthorized			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:76:					PaymentRequired			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:80:					Forbidden			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:84:					NotFound			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:88:					MethodNotAllowed		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:92:					NotAcceptable			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:96:					ProxyAuthenticationRequired	100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:100:					RequestTimeout			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:104:					Conflict			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:108:					Gone				100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:112:					LengthRequired			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:116:					PreconditionFailed		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:120:					PayloadTooLarge			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:124:					URITooLong			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:128:					UnsupportedMediaType		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:132:					RangeNotSatisfiable		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:136:					ExpectationFailed		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:140:					ImATeapot			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:144:					MisdirectedRequest		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:148:					UnprocessableEntity		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:152:					Locked				100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:156:					FailedDependency		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:160:					TooEarly			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:164:					UpgradeRequired			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:168:					PreconditionRequired		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:172:					TooManyRequests			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:176:					RequestHeaderFieldsTooLarge	100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:180:					UnavailableForLegalReasons	100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:185:					InternalServerError		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:189:					NotImplemented			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:193:					BadGateway			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:197:					ServiceUnavailable		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:201:					GatewayTimeout			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:205:					HTTPVersionError		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:209:					VariantAlsoNegotiates		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:213:					InsufficientStorage		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:217:					LoopDetected			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:221:					NotExtended			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:225:					NetworkAuthenticationRequired	100.0%
github.com/rabbytesoftware/quiver/internal/core/es/builder.go:16:					New				100.0%
github.com/rabbytesoftware/quiver/internal/core/es/builder.go:20:					WithSQLiteStore			80.0%
github.com/rabbytesoftware/quiver/internal/core/es/builder.go:32:					WithMemoryBus			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/builder.go:37:					Build				100.0%
github.com/rabbytesoftware/quiver/internal/core/es/bus/memory.go:23:					NewMemoryBus			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/bus/memory.go:29:					Publish				100.0%
github.com/rabbytesoftware/quiver/internal/core/es/bus/memory.go:53:					Subscribe			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:68:					NewEvent			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:76:					WithAggregateID			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:83:					WithAggregateType		100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:90:					WithAggregateVersion		100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:97:					WithEventType			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:104:					WithEventVersion		100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:111:					WithIdempotency			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:118:					WithParentID			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:125:					WithMetadata			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:132:					WithPayload			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:139:					Build				100.0%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:19:					Execute				72.7%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:46:					Publish				66.7%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:64:					AggregateExists			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:71:					HasEventType			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:79:					GetEvents			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:87:					GetEventStream			75.0%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:100:				Subscribe			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:107:				Close				100.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:31:					TableName			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:39:					NewSQLiteStore			75.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:53:					Append				71.4%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:70:					GetByAggregate			80.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:91:					AggregateExists			75.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:103:					HasEventType			75.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:116:					eventToRow			80.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:145:					rowToEvent			75.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:172:					Close				100.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/typed.go:11:					GetByAggregate			81.2%
github.com/rabbytesoftware/quiver/internal/core/es/stream/stream.go:11:					NewEventStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/stream/stream.go:19:					HasEventType			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/stream/stream.go:30:					GetEvents			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/stream/stream.go:34:					Len				100.0%
github.com/rabbytesoftware/quiver/internal/core/es/stream/stream.go:38:					GetLatestVersion		100.0%
github.com/rabbytesoftware/quiver/internal/core/es/utils.go:5:						toAnyEvent			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/config/config.go:20:				Default				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/config/config.go:37:				WithHTTPClient			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/config/config.go:45:				WithMaxMemorySize		100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/config/config.go:53:				WithBufferSize			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/errors/errors.go:11:				Error				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/errors/errors.go:18:				Unwrap				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/errors/errors.go:22:				Op				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/errors/errors.go:33:				NotFound			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/errors/errors.go:41:				Unsupported			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:14:					getStrategy			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:27:					GetInfo				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:35:					Exists				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:43:					IsDir				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:51:					IsFile				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:59:					Read				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:67:					ReadStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:75:					Write				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:84:					WriteStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:93:					Append				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:102:					List				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:110:					Mkdir				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:119:					MkdirAll			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:128:					Remove				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:136:					RemoveAll			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:144:					Copy				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:152:					Move				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:160:					Rename				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:168:					Chmod				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:177:					Chown				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:186:					Download			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:195:					DownloadStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:204:					Fetch				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:212:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:20:				NewLocal			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:26:				GetInfo				90.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:44:				Exists				85.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:56:				IsDir				85.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:69:				IsFile				85.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:82:				Read				83.3%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:104:				ReadStream			78.6%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:128:				Write				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:152:				WriteStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:185:				Append				90.9%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:205:				List				88.2%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:237:				Mkdir				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:251:				MkdirAll			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:265:				Remove				80.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:292:				RemoveAll			77.8%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:308:				Copy				93.3%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:333:				Move				83.3%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:374:				Rename				80.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:391:				Chmod				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:405:				Chown				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:420:				Download			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:424:				DownloadStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:428:				Fetch				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:432:				Validate			87.5%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:22:				NewRemote			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:29:				doRequest			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:43:				GetInfo				66.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:99:				Exists				80.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:109:				IsDir				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:113:				IsFile				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:117:				Read				0.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:121:				ReadStream			85.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:135:				Write				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:139:				WriteStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:143:				Append				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:147:				List				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:151:				Mkdir				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:155:				MkdirAll			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:159:				Remove				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:163:				RemoveAll			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:167:				Copy				81.2%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:196:				Move				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:200:				Rename				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:204:				Chmod				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:208:				Chown				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:212:				Download			76.9%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:279:				DownloadStream			85.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:293:				Fetch				83.3%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:318:				Validate			75.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:48:				Get				83.3%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:60:				GetVersion			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:64:				GetVersionCodename		100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:68:				GetName				100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:72:				GetDescription			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:76:				GetAuthor			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:80:				GetURL				100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:84:				GetLicense			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:88:				GetCopyright			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:92:				GetMaintainers			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:96:				GetVariables			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:100:				GetDefaultConfigPath		100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:104:				defaultMetadata			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:7:					Debug				100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:11:					Info				100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:15:					Warn				100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:19:					Error				100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:23:					Unforeseen			0.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:28:					NewWatcherService		100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:40:					GetWatcher			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:44:					SetLevel			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:48:					GetLevel			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:52:					WithFields			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:56:					WithField			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:60:					GetConfig			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:64:					IsEnabled			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:68:					initLogger			53.3%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:103:					isTestEnvironment		75.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/infrastructure.go:19:				NewInfrastructure		87.5%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:16:			NewNetbridge			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:20:			IsEnabled			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:24:			IsAvailable			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:28:			PublicIP			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:34:			LocalIP				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:40:			IsPortAvailable			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:47:			ArePortsAvailable		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:54:			ForwardPort			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:66:			ForwardPorts			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:73:			ReversePort			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:85:			ReversePorts			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:92:			GetPortForwardingStatus		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:99:			GetPortForwardingStatuses	100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:20:		NewRequirements			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:24:		Validate			84.6%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:55:		ValidateOS			91.7%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:82:		ValidateCPU			90.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:106:		ValidateMemory			91.7%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:133:		ValidateDisk			91.7%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:23:		NewBuilder			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:32:		WithWorkDir			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:37:		WithEnv				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:44:		WithEnvVar			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:49:		WithTimeout			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:54:		WithBufferSize			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:59:		WithKillTimeout			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:64:		WithStopTimeout			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder_linux.go:10:		Build				90.9%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:18:			NewManager			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:24:			Register			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:30:			Unregister			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:36:			Get				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:47:			ListAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:58:			Count				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:64:			ListByStatus			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:77:			StopAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:100:			KillAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:123:			CleanupFinished			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:145:			ShutdownAll			94.1%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:177:			Clear				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:15:			String				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:19:			IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:28:			IsFinished			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:32:			IsActive			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:46:			NewConfig			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:58:			Validate			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:22:			NewHandler			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:26:			NewHandlerWithBuffers		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:36:			WriteOutput			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:56:			WriteError			88.9%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:76:			GetOutput			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:82:			GetError			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:88:			OutChan				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:92:			ErrChan				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:96:			Reset				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:103:			IsClosed			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:109:			Close				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/linux.go:20:			NewLinuxProcess			80.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/linux.go:36:			Start				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/linux.go:40:			Stop				72.7%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/linux.go:81:			Kill				56.5%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:45:		NewBaseProcess			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:77:		ID				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:81:		Status				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:87:		ExitCode			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:93:		Output				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:97:		Error				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:101:		StreamOutput			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:105:		StreamError			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:109:		GetConfig			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:113:		GetCmd				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:117:		GetOutputHandler		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:121:		GetDoneChan			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:125:		SetStatus			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:131:		SetExitCode			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:137:		Wait				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:146:		Close				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:151:		StartCommon			82.6%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:239:		envMapToSlice			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:18:			New				75.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:31:			Get				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:35:			GetByID				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:39:			ListAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:43:			ListByStatus			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:47:			Count				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:51:			StopAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:55:			KillAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:59:			CleanupFinished			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:63:			Shutdown			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:67:			OS				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:71:			detectOS			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:75:			isSupportedOS			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/manifest.go:21:			parseManifestString		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/manifest.go:44:			extractManifestFromYAML		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/manifest.go:57:			extractSchemaField		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/reader.go:18:			NewTranslator			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/reader.go:24:			Arrow				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/reader.go:30:			Quiver				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/reader.go:36:			ReadSchemaInfo			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/reader.go:52:			readManifest			84.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:19:	NewMapper			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:23:	Map				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:72:	GetSchema			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:76:	mapRequirements			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:93:	mapNetbridge			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:115:	mapVariables			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:137:	mapWizards			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:177:	mapActions			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/quiver/v1/mapper.go:14:	NewMapper			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/quiver/v1/mapper.go:18:	Map				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/quiver/v1/mapper.go:34:	GetSchema			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/register.go:8:		register			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/registry.go:16:		NewRegistry			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/registry.go:25:		GetArrowMapper			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/registry.go:33:		GetQuiverMapper			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/registry.go:41:		GetSchema			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/registry.go:57:		IsSupported			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/validation.go:12:			validateYAML			94.1%
github.com/rabbytesoftware/quiver/internal/infrastructure/wizard/wizard.go:6:				NewWizard			100.0%
github.com/rabbytesoftware/quiver/internal/internal.go:26:						NewInternal			100.0%
github.com/rabbytesoftware/quiver/internal/internal.go:42:						Run				0.0%
github.com/rabbytesoftware/quiver/internal/internal.go:46:						GetCore				100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/arrow.go:41:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/method.go:28:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/method.go:58:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/requirement.go:24:				IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/requirement.go:28:				Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable.go:19:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable_type.go:11:				String				100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable_type.go:15:				IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable_type.go:19:				IsString			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable_type.go:23:				IsNumber			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable_type.go:27:				IsBoolean			100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/forwarding_status.go:11:			String				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/forwarding_status.go:15:			IsEnabled			100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/forwarding_status.go:19:			IsDisabled			100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/forwarding_status.go:23:			IsError				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/port.go:18:					IsStartPortValid		100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/port.go:22:					IsEndPortValid			100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/port.go:26:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/protocol.go:11:				String				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/protocol.go:15:				IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/protocol.go:19:				IsTCP				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/protocol.go:23:				IsUDP				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/protocol.go:27:				IsTCPUDP			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/namespace.go:14:				Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/namespace.go:37:				GetQUID				75.0%
github.com/rabbytesoftware/quiver/internal/models/shared/namespace.go:45:				GetAUID				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/namespace.go:53:				String				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:16:					String				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:20:					IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:29:					IsLinux				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:33:					IsWindows			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:37:					IsDarwin			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:41:					IsAMD64				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:45:					IsARM64				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/security.go:10:				String				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/security.go:14:				IsTrusted			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/security.go:18:				IsUntrusted			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/url.go:7:					String				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/url.go:11:					IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:52:				NewArrowsRepository		100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:58:				Get				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:65:				List				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:71:				Add				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:81:				Remove				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:90:				ExecuteMethod			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:100:				StopMethod			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:12:				NewQuiversRepository		100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:20:				Get				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:24:				GetById				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:28:				Create				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:32:				Update				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:36:				DeleteById			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/repositories.go:16:				NewRepositories			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/repositories.go:26:				GetArrows			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/repositories.go:30:				GetSystem			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/repositories.go:34:				GetQuivers			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:12:				NewSystemRepository		100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:20:				GetMetadata			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:24:				UpdateQuiver			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:28:				UninstallQuiver			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:32:				GetLogs				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:36:				RestartQuiver			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:40:				Status				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:44:				StopQuiver			100.0%
github.com/rabbytesoftware/quiver/internal/usecases/arrows/usecase.go:9:				NewArrowsUsecase		100.0%
github.com/rabbytesoftware/quiver/internal/usecases/quivers/usecase.go:9:				NewQuiversUsecase		100.0%
github.com/rabbytesoftware/quiver/internal/usecases/system/usecase.go:9:				NewSystemUsecase		100.0%
github.com/rabbytesoftware/quiver/internal/usecases/usecases.go:16:					NewUsecases			100.0%
github.com/rabbytesoftware/quiver/internal/utils/slices.go:3:						GetSliceField			100.0%
github.com/rabbytesoftware/quiver/internal/utils/slices.go:10:						GetStringField			100.0%
github.com/rabbytesoftware/quiver/internal/utils/slices.go:17:						GetIntField			100.0%
github.com/rabbytesoftware/quiver/internal/utils/slices.go:27:						GetBoolField			100.0%
github.com/rabbytesoftware/quiver/internal/utils/slices.go:34:						ToStringSlice			100.0%
total:													(statements)			90.9%

@Valentin-Vi Valentin-Vi marked this pull request as ready for review January 6, 2026 16:50
return nil, err
}

for _, entity := range result {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aca valen guarda, estamos reimplementando la funcion del repositorio para guardar.

La capa de cache deberia ser un wrapper por sobre el repositorio original:

	v, found := cr.cache.GetById(key) // Primero buscamos en cache
	if found {
		data, ok := v.([]byte)
		if !ok {
			return nil, cacheerr.ErrInvalidCacheValue
		}
		var result []*T
		err := json.Unmarshal(data, &result)
		if err != nil {
			return nil, err
		}
		return result, nil  // Si esta devolvemos eso
	}

    entity, err := baseRepository.GetById() // Si no fallbackeamos al repositorio original
    if err != nil {
         return err
    }

    go cr.cache.AsyncSet(entity) // Asincronicamente hidratamos el cache

    return entity // Y devolvemos la respuesta

…r a method/function to retrieve keys from a (signature .
@github-actions
Copy link

github-actions bot commented Jan 8, 2026

📊 Test Coverage Report

Total Coverage: 90.8%
Threshold: 90%
Status: PASSED

📋 View Detailed Report
github.com/rabbytesoftware/quiver/cmd/quiver/main.go:11:						main				0.0%
github.com/rabbytesoftware/quiver/internal/api/api.go:24:						NewAPI				90.9%
github.com/rabbytesoftware/quiver/internal/api/api.go:50:						Run				0.0%
github.com/rabbytesoftware/quiver/internal/api/api.go:67:						SetupMiddleware			100.0%
github.com/rabbytesoftware/quiver/internal/api/api.go:72:						SetupRoutes			100.0%
github.com/rabbytesoftware/quiver/internal/api/middleware/logger.go:12:					WatcherLogger			100.0%
github.com/rabbytesoftware/quiver/internal/api/middleware/logger.go:61:					WatcherRecovery			100.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/arrows/routes.go:8:			SetupRoutes			0.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/health/health.go:14:			NewHealthHandler		100.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/health/health.go:22:			SetupRoutes			100.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/health/health.go:26:			Handler				100.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/quivers/routes.go:8:			SetupRoutes			0.0%
github.com/rabbytesoftware/quiver/internal/api/v1/controllers/system/routes.go:8:			SetupRoutes			0.0%
github.com/rabbytesoftware/quiver/internal/api/v1/routes.go:12:						SetupRoutes			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/commands/add_request.go:30:			NewAddRequest			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/commands/add_request.go:43:			Validate			83.3%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/commands/add_request.go:58:			ToEvent				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_failed.go:37:			NewAddFailedEvent		100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_failed.go:41:			WithArrowNamespace		100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_failed.go:48:			WithErrorCode			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_failed.go:55:			WithErrorMessage		100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_failed.go:62:			WithStep			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_failed.go:69:			Build				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_requested.go:35:			NewAddRequestedEvent		100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_requested.go:39:			WithArrowNamespace		100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_requested.go:46:			WithPath			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_requested.go:53:			WithForceAdd			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_requested.go:60:			WithStep			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_requested.go:67:			Build				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_succeeded.go:32:			NewAddSucceededEvent		100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_succeeded.go:36:			WithArrowNamespace		100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_succeeded.go:43:			WithArrow			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_succeeded.go:50:			WithStep			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/events/add_succeeded.go:57:			Build				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/handlers/cqrs.go:35:				NewArrowView			100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/handlers/cqrs.go:39:				Get				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/handlers/cqrs.go:46:				List				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/handlers/cqrs.go:52:				Add				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/handlers/cqrs.go:60:				Update				100.0%
github.com/rabbytesoftware/quiver/internal/async/v1/arrow/handlers/cqrs.go:67:				Remove				100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:70:					Get				63.6%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:89:					GetNetbridge			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:93:					GetArrows			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:97:					GetAPI				100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:101:					GetDatabase			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:105:					GetWatcher			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:109:					GetCache			0.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:113:					GetConfigPath			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:117:					ConfigExists			100.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:123:					getDefaultConfig		80.0%
github.com/rabbytesoftware/quiver/internal/core/config/config.go:166:					resetForTesting			100.0%
github.com/rabbytesoftware/quiver/internal/core/core.go:22:						Init				100.0%
github.com/rabbytesoftware/quiver/internal/core/core.go:30:						GetMetadata			100.0%
github.com/rabbytesoftware/quiver/internal/core/core.go:34:						GetConfig			100.0%
github.com/rabbytesoftware/quiver/internal/core/core.go:38:						GetWatcher			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/builder.go:19:					NewDatabaseBuilder		100.0%
github.com/rabbytesoftware/quiver/internal/core/database/builder.go:28:					WithCache			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/builder.go:34:					Build				75.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:23:			NewCachedRepository		100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:45:			Create				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:49:			Get				94.1%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:80:			GetByID				93.8%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:109:		Update				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:126:		Delete				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:137:		Exists				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:145:		Count				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:153:		Where				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:161:		Close				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:165:		buildEntityKey			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:169:		buildListKey			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:173:		getEntityTypeName		100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:178:		set				80.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/cached_repository.go:188:		setList				80.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/config.go:17:				DefaultCacheConfig		100.0%
github.com/rabbytesoftware/quiver/internal/core/database/cache/config.go:24:				IsValid				0.0%
github.com/rabbytesoftware/quiver/internal/core/database/database.go:10:				NewDatabase			100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:23:			NewRepository			76.9%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:56:			Get				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:66:			GetByID				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:80:			Create				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:90:			Update				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:100:			Delete				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:110:			Exists				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:121:			Count				100.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:131:			Where				0.0%
github.com/rabbytesoftware/quiver/internal/core/database/repository/repository.go:143:			Close				66.7%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:11:					Throw				100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:23:					Error				100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:27:					Success				100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:31:					Created				100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:35:					Accepted			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:39:					NonAuthoritativeInformation	100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:43:					NoContent			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:47:					ResetContent			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:51:					PartialContent			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:55:					MultiStatus			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:59:					AlreadyReported			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:63:					IMUsed				100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:68:					InvalidRequest			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:72:					Unauthorized			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:76:					PaymentRequired			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:80:					Forbidden			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:84:					NotFound			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:88:					MethodNotAllowed		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:92:					NotAcceptable			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:96:					ProxyAuthenticationRequired	100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:100:					RequestTimeout			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:104:					Conflict			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:108:					Gone				100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:112:					LengthRequired			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:116:					PreconditionFailed		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:120:					PayloadTooLarge			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:124:					URITooLong			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:128:					UnsupportedMediaType		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:132:					RangeNotSatisfiable		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:136:					ExpectationFailed		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:140:					ImATeapot			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:144:					MisdirectedRequest		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:148:					UnprocessableEntity		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:152:					Locked				100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:156:					FailedDependency		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:160:					TooEarly			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:164:					UpgradeRequired			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:168:					PreconditionRequired		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:172:					TooManyRequests			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:176:					RequestHeaderFieldsTooLarge	100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:180:					UnavailableForLegalReasons	100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:185:					InternalServerError		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:189:					NotImplemented			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:193:					BadGateway			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:197:					ServiceUnavailable		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:201:					GatewayTimeout			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:205:					HTTPVersionError		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:209:					VariantAlsoNegotiates		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:213:					InsufficientStorage		100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:217:					LoopDetected			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:221:					NotExtended			100.0%
github.com/rabbytesoftware/quiver/internal/core/errs/errs.go:225:					NetworkAuthenticationRequired	100.0%
github.com/rabbytesoftware/quiver/internal/core/es/builder.go:16:					New				100.0%
github.com/rabbytesoftware/quiver/internal/core/es/builder.go:20:					WithSQLiteStore			80.0%
github.com/rabbytesoftware/quiver/internal/core/es/builder.go:32:					WithMemoryBus			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/builder.go:37:					Build				100.0%
github.com/rabbytesoftware/quiver/internal/core/es/bus/memory.go:23:					NewMemoryBus			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/bus/memory.go:29:					Publish				100.0%
github.com/rabbytesoftware/quiver/internal/core/es/bus/memory.go:53:					Subscribe			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:68:					NewEvent			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:76:					WithAggregateID			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:83:					WithAggregateType		100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:90:					WithAggregateVersion		100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:97:					WithEventType			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:104:					WithEventVersion		100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:111:					WithIdempotency			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:118:					WithParentID			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:125:					WithMetadata			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:132:					WithPayload			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/event/event.go:139:					Build				100.0%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:19:					Execute				72.7%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:46:					Publish				66.7%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:64:					AggregateExists			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:71:					HasEventType			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:79:					GetEvents			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:87:					GetEventStream			75.0%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:100:				Subscribe			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/eventsourcing.go:107:				Close				100.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:31:					TableName			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:39:					NewSQLiteStore			75.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:53:					Append				71.4%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:70:					GetByAggregate			80.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:91:					AggregateExists			75.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:103:					HasEventType			75.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:116:					eventToRow			80.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:145:					rowToEvent			75.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/sqlite.go:172:					Close				100.0%
github.com/rabbytesoftware/quiver/internal/core/es/store/typed.go:11:					GetByAggregate			81.2%
github.com/rabbytesoftware/quiver/internal/core/es/stream/stream.go:11:					NewEventStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/stream/stream.go:19:					HasEventType			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/stream/stream.go:30:					GetEvents			100.0%
github.com/rabbytesoftware/quiver/internal/core/es/stream/stream.go:34:					Len				100.0%
github.com/rabbytesoftware/quiver/internal/core/es/stream/stream.go:38:					GetLatestVersion		100.0%
github.com/rabbytesoftware/quiver/internal/core/es/utils.go:5:						toAnyEvent			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/config/config.go:20:				Default				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/config/config.go:37:				WithHTTPClient			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/config/config.go:45:				WithMaxMemorySize		100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/config/config.go:53:				WithBufferSize			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/errors/errors.go:11:				Error				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/errors/errors.go:18:				Unwrap				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/errors/errors.go:22:				Op				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/errors/errors.go:33:				NotFound			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/errors/errors.go:41:				Unsupported			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:14:					getStrategy			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:27:					GetInfo				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:35:					Exists				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:43:					IsDir				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:51:					IsFile				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:59:					Read				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:67:					ReadStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:75:					Write				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:84:					WriteStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:93:					Append				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:102:					List				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:110:					Mkdir				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:119:					MkdirAll			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:128:					Remove				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:136:					RemoveAll			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:144:					Copy				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:152:					Move				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:160:					Rename				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:168:					Chmod				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:177:					Chown				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:186:					Download			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:195:					DownloadStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:204:					Fetch				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/global.go:212:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:20:				NewLocal			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:26:				GetInfo				90.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:44:				Exists				85.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:56:				IsDir				85.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:69:				IsFile				85.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:82:				Read				83.3%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:104:				ReadStream			78.6%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:128:				Write				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:152:				WriteStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:185:				Append				90.9%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:205:				List				88.2%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:237:				Mkdir				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:251:				MkdirAll			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:265:				Remove				80.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:292:				RemoveAll			77.8%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:308:				Copy				93.3%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:333:				Move				83.3%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:374:				Rename				80.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:391:				Chmod				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:405:				Chown				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:420:				Download			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:424:				DownloadStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:428:				Fetch				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/local.go:432:				Validate			87.5%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:22:				NewRemote			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:29:				doRequest			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:43:				GetInfo				66.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:99:				Exists				80.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:109:				IsDir				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:113:				IsFile				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:117:				Read				0.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:121:				ReadStream			85.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:135:				Write				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:139:				WriteStream			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:143:				Append				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:147:				List				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:151:				Mkdir				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:155:				MkdirAll			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:159:				Remove				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:163:				RemoveAll			100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:167:				Copy				81.2%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:196:				Move				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:200:				Rename				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:204:				Chmod				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:208:				Chown				100.0%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:212:				Download			76.9%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:279:				DownloadStream			85.7%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:293:				Fetch				83.3%
github.com/rabbytesoftware/quiver/internal/core/fns/strategies/remote.go:318:				Validate			75.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:48:				Get				83.3%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:60:				GetVersion			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:64:				GetVersionCodename		100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:68:				GetName				100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:72:				GetDescription			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:76:				GetAuthor			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:80:				GetURL				100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:84:				GetLicense			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:88:				GetCopyright			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:92:				GetMaintainers			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:96:				GetVariables			100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:100:				GetDefaultConfigPath		100.0%
github.com/rabbytesoftware/quiver/internal/core/metadata/metadata.go:104:				defaultMetadata			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:7:					Debug				100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:11:					Info				100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:15:					Warn				100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:19:					Error				100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/messages.go:23:					Unforeseen			0.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:28:					NewWatcherService		100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:40:					GetWatcher			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:44:					SetLevel			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:48:					GetLevel			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:52:					WithFields			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:56:					WithField			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:60:					GetConfig			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:64:					IsEnabled			100.0%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:68:					initLogger			53.3%
github.com/rabbytesoftware/quiver/internal/core/watcher/service.go:103:					isTestEnvironment		75.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/infrastructure.go:19:				NewInfrastructure		87.5%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:16:			NewNetbridge			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:20:			IsEnabled			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:24:			IsAvailable			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:28:			PublicIP			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:34:			LocalIP				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:40:			IsPortAvailable			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:47:			ArePortsAvailable		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:54:			ForwardPort			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:66:			ForwardPorts			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:73:			ReversePort			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:85:			ReversePorts			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:92:			GetPortForwardingStatus		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/netbridge/netbridge.go:99:			GetPortForwardingStatuses	100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:20:		NewRequirements			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:24:		Validate			84.6%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:55:		ValidateOS			91.7%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:82:		ValidateCPU			90.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:106:		ValidateMemory			91.7%
github.com/rabbytesoftware/quiver/internal/infrastructure/requirements/requirements.go:133:		ValidateDisk			91.7%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:23:		NewBuilder			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:32:		WithWorkDir			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:37:		WithEnv				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:44:		WithEnvVar			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:49:		WithTimeout			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:54:		WithBufferSize			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:59:		WithKillTimeout			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder.go:64:		WithStopTimeout			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/builder/builder_linux.go:10:		Build				90.9%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:18:			NewManager			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:24:			Register			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:30:			Unregister			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:36:			Get				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:47:			ListAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:58:			Count				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:64:			ListByStatus			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:77:			StopAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:100:			KillAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:123:			CleanupFinished			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:145:			ShutdownAll			94.1%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/manager.go:177:			Clear				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:15:			String				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:19:			IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:28:			IsFinished			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:32:			IsActive			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:46:			NewConfig			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/models/models.go:58:			Validate			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:22:			NewHandler			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:26:			NewHandlerWithBuffers		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:36:			WriteOutput			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:56:			WriteError			88.9%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:76:			GetOutput			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:82:			GetError			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:88:			OutChan				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:92:			ErrChan				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:96:			Reset				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:103:			IsClosed			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/output/output.go:109:			Close				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/linux.go:20:			NewLinuxProcess			80.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/linux.go:36:			Start				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/linux.go:40:			Stop				72.7%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/linux.go:81:			Kill				56.5%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:45:		NewBaseProcess			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:77:		ID				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:81:		Status				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:87:		ExitCode			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:93:		Output				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:97:		Error				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:101:		StreamOutput			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:105:		StreamError			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:109:		GetConfig			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:113:		GetCmd				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:117:		GetOutputHandler		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:121:		GetDoneChan			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:125:		SetStatus			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:131:		SetExitCode			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:137:		Wait				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:146:		Close				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:151:		StartCommon			82.6%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/process/process.go:239:		envMapToSlice			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:18:			New				75.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:31:			Get				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:35:			GetByID				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:39:			ListAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:43:			ListByStatus			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:47:			Count				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:51:			StopAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:55:			KillAll				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:59:			CleanupFinished			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:63:			Shutdown			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:67:			OS				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:71:			detectOS			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/runtime/runtime.go:75:			isSupportedOS			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/manifest.go:21:			parseManifestString		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/manifest.go:44:			extractManifestFromYAML		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/manifest.go:57:			extractSchemaField		100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/reader.go:18:			NewTranslator			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/reader.go:24:			Arrow				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/reader.go:30:			Quiver				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/reader.go:36:			ReadSchemaInfo			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/reader.go:52:			readManifest			84.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:19:	NewMapper			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:23:	Map				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:72:	GetSchema			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:76:	mapRequirements			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:93:	mapNetbridge			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:115:	mapVariables			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:137:	mapWizards			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/arrow/v1/mapper.go:177:	mapActions			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/quiver/v1/mapper.go:14:	NewMapper			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/quiver/v1/mapper.go:18:	Map				100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/quiver/v1/mapper.go:34:	GetSchema			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/register.go:8:		register			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/registry.go:16:		NewRegistry			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/registry.go:25:		GetArrowMapper			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/registry.go:33:		GetQuiverMapper			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/registry.go:41:		GetSchema			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/schemas/registry.go:57:		IsSupported			100.0%
github.com/rabbytesoftware/quiver/internal/infrastructure/translator/validation.go:12:			validateYAML			94.1%
github.com/rabbytesoftware/quiver/internal/infrastructure/wizard/wizard.go:6:				NewWizard			100.0%
github.com/rabbytesoftware/quiver/internal/internal.go:26:						NewInternal			100.0%
github.com/rabbytesoftware/quiver/internal/internal.go:42:						Run				0.0%
github.com/rabbytesoftware/quiver/internal/internal.go:46:						GetCore				100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/arrow.go:41:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/method.go:28:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/method.go:58:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/requirement.go:24:				IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/requirement.go:28:				Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable.go:19:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable_type.go:11:				String				100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable_type.go:15:				IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable_type.go:19:				IsString			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable_type.go:23:				IsNumber			100.0%
github.com/rabbytesoftware/quiver/internal/models/arrow/variable_type.go:27:				IsBoolean			100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/forwarding_status.go:11:			String				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/forwarding_status.go:15:			IsEnabled			100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/forwarding_status.go:19:			IsDisabled			100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/forwarding_status.go:23:			IsError				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/port.go:18:					IsStartPortValid		100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/port.go:22:					IsEndPortValid			100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/port.go:26:					Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/protocol.go:11:				String				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/protocol.go:15:				IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/protocol.go:19:				IsTCP				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/protocol.go:23:				IsUDP				100.0%
github.com/rabbytesoftware/quiver/internal/models/netbridge/protocol.go:27:				IsTCPUDP			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/namespace.go:14:				Validate			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/namespace.go:37:				GetQUID				75.0%
github.com/rabbytesoftware/quiver/internal/models/shared/namespace.go:45:				GetAUID				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/namespace.go:53:				String				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:16:					String				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:20:					IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:29:					IsLinux				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:33:					IsWindows			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:37:					IsDarwin			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:41:					IsAMD64				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/os.go:45:					IsARM64				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/security.go:10:				String				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/security.go:14:				IsTrusted			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/security.go:18:				IsUntrusted			100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/url.go:7:					String				100.0%
github.com/rabbytesoftware/quiver/internal/models/shared/url.go:11:					IsValid				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:52:				NewArrowsRepository		100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:58:				Get				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:65:				List				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:71:				Add				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:81:				Remove				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:90:				ExecuteMethod			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/arrows/arrows.go:100:				StopMethod			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:12:				NewQuiversRepository		100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:20:				Get				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:24:				GetById				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:28:				Create				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:32:				Update				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/quivers/quivers.go:36:				DeleteById			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/repositories.go:16:				NewRepositories			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/repositories.go:26:				GetArrows			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/repositories.go:30:				GetSystem			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/repositories.go:34:				GetQuivers			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:12:				NewSystemRepository		100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:20:				GetMetadata			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:24:				UpdateQuiver			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:28:				UninstallQuiver			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:32:				GetLogs				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:36:				RestartQuiver			100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:40:				Status				100.0%
github.com/rabbytesoftware/quiver/internal/repositories/system/system.go:44:				StopQuiver			100.0%
github.com/rabbytesoftware/quiver/internal/usecases/arrows/usecase.go:9:				NewArrowsUsecase		100.0%
github.com/rabbytesoftware/quiver/internal/usecases/quivers/usecase.go:9:				NewQuiversUsecase		100.0%
github.com/rabbytesoftware/quiver/internal/usecases/system/usecase.go:9:				NewSystemUsecase		100.0%
github.com/rabbytesoftware/quiver/internal/usecases/usecases.go:16:					NewUsecases			100.0%
github.com/rabbytesoftware/quiver/internal/utils/slices.go:3:						GetSliceField			100.0%
github.com/rabbytesoftware/quiver/internal/utils/slices.go:10:						GetStringField			100.0%
github.com/rabbytesoftware/quiver/internal/utils/slices.go:17:						GetIntField			100.0%
github.com/rabbytesoftware/quiver/internal/utils/slices.go:27:						GetBoolField			100.0%
github.com/rabbytesoftware/quiver/internal/utils/slices.go:34:						ToStringSlice			100.0%
total:													(statements)			90.8%

@Valentin-Vi Valentin-Vi marked this pull request as draft January 9, 2026 22:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Core / Database / Cache Abstraction Layer

3 participants