 131868bdca
			
		
	
	131868bdca
	
	
	
		
			
			Major security, observability, and configuration improvements:
## Security Hardening
- Implemented configurable CORS (no more wildcards)
- Added comprehensive auth middleware for admin endpoints
- Enhanced webhook HMAC validation
- Added input validation and rate limiting
- Security headers and CSP policies
## Configuration Management
- Made N8N webhook URL configurable (WHOOSH_N8N_BASE_URL)
- Replaced all hardcoded endpoints with environment variables
- Added feature flags for LLM vs heuristic composition
- Gitea fetch hardening with EAGER_FILTER and FULL_RESCAN options
## API Completeness
- Implemented GetCouncilComposition function
- Added GET /api/v1/councils/{id} endpoint
- Council artifacts API (POST/GET /api/v1/councils/{id}/artifacts)
- /admin/health/details endpoint with component status
- Database lookup for repository URLs (no hardcoded fallbacks)
## Observability & Performance
- Added OpenTelemetry distributed tracing with goal/pulse correlation
- Performance optimization database indexes
- Comprehensive health monitoring
- Enhanced logging and error handling
## Infrastructure
- Production-ready P2P discovery (replaces mock implementation)
- Removed unused Redis configuration
- Enhanced Docker Swarm integration
- Added migration files for performance indexes
## Code Quality
- Comprehensive input validation
- Graceful error handling and failsafe fallbacks
- Backwards compatibility maintained
- Following security best practices
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
		
	
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| [](https://godoc.org/github.com/jackc/puddle)
 | |
| 
 | |
| 
 | |
| # Puddle
 | |
| 
 | |
| Puddle is a tiny generic resource pool library for Go that uses the standard
 | |
| context library to signal cancellation of acquires. It is designed to contain
 | |
| the minimum functionality required for a resource pool. It can be used directly
 | |
| or it can be used as the base for a domain specific resource pool. For example,
 | |
| a database connection pool may use puddle internally and implement health checks
 | |
| and keep-alive behavior without needing to implement any concurrent code of its
 | |
| own.
 | |
| 
 | |
| ## Features
 | |
| 
 | |
| * Acquire cancellation via context standard library
 | |
| * Statistics API for monitoring pool pressure
 | |
| * No dependencies outside of standard library and golang.org/x/sync
 | |
| * High performance
 | |
| * 100% test coverage of reachable code
 | |
| 
 | |
| ## Example Usage
 | |
| 
 | |
| ```go
 | |
| package main
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"log"
 | |
| 	"net"
 | |
| 
 | |
| 	"github.com/jackc/puddle/v2"
 | |
| )
 | |
| 
 | |
| func main() {
 | |
| 	constructor := func(context.Context) (net.Conn, error) {
 | |
| 		return net.Dial("tcp", "127.0.0.1:8080")
 | |
| 	}
 | |
| 	destructor := func(value net.Conn) {
 | |
| 		value.Close()
 | |
| 	}
 | |
| 	maxPoolSize := int32(10)
 | |
| 
 | |
| 	pool, err := puddle.NewPool(&puddle.Config[net.Conn]{Constructor: constructor, Destructor: destructor, MaxSize: maxPoolSize})
 | |
| 	if err != nil {
 | |
| 		log.Fatal(err)
 | |
| 	}
 | |
| 
 | |
| 	// Acquire resource from the pool.
 | |
| 	res, err := pool.Acquire(context.Background())
 | |
| 	if err != nil {
 | |
| 		log.Fatal(err)
 | |
| 	}
 | |
| 
 | |
| 	// Use resource.
 | |
| 	_, err = res.Value().Write([]byte{1})
 | |
| 	if err != nil {
 | |
| 		log.Fatal(err)
 | |
| 	}
 | |
| 
 | |
| 	// Release when done.
 | |
| 	res.Release()
 | |
| }
 | |
| ```
 | |
| 
 | |
| ## Status
 | |
| 
 | |
| Puddle is stable and feature complete.
 | |
| 
 | |
| * Bug reports and fixes are welcome.
 | |
| * New features will usually not be accepted if they can be feasibly implemented in a wrapper.
 | |
| * Performance optimizations will usually not be accepted unless the performance issue rises to the level of a bug.
 | |
| 
 | |
| ## Supported Go Versions
 | |
| 
 | |
| puddle supports the same versions of Go that are supported by the Go project. For [Go](https://golang.org/doc/devel/release.html#policy) that is the two most recent major releases. This means puddle supports Go 1.19 and higher.
 | |
| 
 | |
| ## License
 | |
| 
 | |
| MIT
 |