chore(security,refactor): extract sanitization and improve code quality (#41)

* chore(security,refactor): extract sanitization and improve code quality

- [x] Extract sanitization functions to dedicated sanitization.go module
- [x] Add comprehensive golangci-lint v2 configuration with security rules
- [x] Replace interface{} with any type throughout codebase
- [x] Add admin API authentication security warning
- [x] Extract WebSocket and stats streaming constants
- [x] Add best-effort error handling comments for resource cleanup
- [x] Expand sensitive field patterns for improved PII redaction
- [x] Simplify safety checks and remove redundant nil validations
- [x] Improve test coverage for password field redaction patterns

* refactor: replace interface{} with any type alias

- [x] Replace all `map[string]interface{}` with `map[string]any`
- [x] Replace all `interface{}` with `any` in function signatures and type definitions
- [x] Update sync.Pool New function returns from `interface{}` to `any`
- [x] Add package documentation comments to 8 package files
- [x] Update type assertions and casts to work with `any` type
This commit is contained in:
2026-01-17 00:04:12 +00:00
committed by GitHub
parent caeae62236
commit 3aa83d4480
42 changed files with 815 additions and 618 deletions
+4 -1
View File
@@ -1,3 +1,6 @@
// Package libpack_cache_redis provides a Redis-backed cache implementation
// for distributed caching across multiple proxy instances. Supports key
// prefixing for multi-tenant isolation.
package libpack_cache_redis
import (
@@ -42,7 +45,7 @@ func New(redisClientConfig *RedisClientConfig) (*RedisConfig, error) {
ctx: context.Background(),
prefix: redisClientConfig.Prefix,
builderPool: &sync.Pool{
New: func() interface{} {
New: func() any {
return &strings.Builder{}
},
},
+5 -5
View File
@@ -29,7 +29,7 @@ func (w *CacheWrapper) Set(key string, value []byte, ttl time.Duration) {
if err := w.redis.Set(key, value, ttl); err != nil {
w.logger.Error(&libpack_logger.LogMessage{
Message: "Redis set error",
Pairs: map[string]interface{}{
Pairs: map[string]any{
"error": err.Error(),
"key": key,
},
@@ -43,7 +43,7 @@ func (w *CacheWrapper) Get(key string) ([]byte, bool) {
if err != nil {
w.logger.Error(&libpack_logger.LogMessage{
Message: "Redis get error",
Pairs: map[string]interface{}{
Pairs: map[string]any{
"error": err.Error(),
"key": key,
},
@@ -58,7 +58,7 @@ func (w *CacheWrapper) Delete(key string) {
if err := w.redis.Delete(key); err != nil {
w.logger.Error(&libpack_logger.LogMessage{
Message: "Redis delete error",
Pairs: map[string]interface{}{
Pairs: map[string]any{
"error": err.Error(),
"key": key,
},
@@ -71,7 +71,7 @@ func (w *CacheWrapper) Clear() {
if err := w.redis.Clear(); err != nil {
w.logger.Error(&libpack_logger.LogMessage{
Message: "Redis clear error",
Pairs: map[string]interface{}{
Pairs: map[string]any{
"error": err.Error(),
},
})
@@ -84,7 +84,7 @@ func (w *CacheWrapper) CountQueries() int64 {
if err != nil {
w.logger.Error(&libpack_logger.LogMessage{
Message: "Redis count queries error",
Pairs: map[string]interface{}{
Pairs: map[string]any{
"error": err.Error(),
},
})