feat: Production readiness improvements for WHOOSH council formation
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>
			
			
This commit is contained in:
		
							
								
								
									
										116
									
								
								vendor/go.opentelemetry.io/otel/codes/codes.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								vendor/go.opentelemetry.io/otel/codes/codes.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,116 @@ | ||||
| // Copyright The OpenTelemetry Authors | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
|  | ||||
| package codes // import "go.opentelemetry.io/otel/codes" | ||||
|  | ||||
| import ( | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 	"strconv" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| 	// Unset is the default status code. | ||||
| 	Unset Code = 0 | ||||
|  | ||||
| 	// Error indicates the operation contains an error. | ||||
| 	// | ||||
| 	// NOTE: The error code in OTLP is 2. | ||||
| 	// The value of this enum is only relevant to the internals | ||||
| 	// of the Go SDK. | ||||
| 	Error Code = 1 | ||||
|  | ||||
| 	// Ok indicates operation has been validated by an Application developers | ||||
| 	// or Operator to have completed successfully, or contain no error. | ||||
| 	// | ||||
| 	// NOTE: The Ok code in OTLP is 1. | ||||
| 	// The value of this enum is only relevant to the internals | ||||
| 	// of the Go SDK. | ||||
| 	Ok Code = 2 | ||||
|  | ||||
| 	maxCode = 3 | ||||
| ) | ||||
|  | ||||
| // Code is an 32-bit representation of a status state. | ||||
| type Code uint32 | ||||
|  | ||||
| var codeToStr = map[Code]string{ | ||||
| 	Unset: "Unset", | ||||
| 	Error: "Error", | ||||
| 	Ok:    "Ok", | ||||
| } | ||||
|  | ||||
| var strToCode = map[string]Code{ | ||||
| 	`"Unset"`: Unset, | ||||
| 	`"Error"`: Error, | ||||
| 	`"Ok"`:    Ok, | ||||
| } | ||||
|  | ||||
| // String returns the Code as a string. | ||||
| func (c Code) String() string { | ||||
| 	return codeToStr[c] | ||||
| } | ||||
|  | ||||
| // UnmarshalJSON unmarshals b into the Code. | ||||
| // | ||||
| // This is based on the functionality in the gRPC codes package: | ||||
| // https://github.com/grpc/grpc-go/blob/bb64fee312b46ebee26be43364a7a966033521b1/codes/codes.go#L218-L244 | ||||
| func (c *Code) UnmarshalJSON(b []byte) error { | ||||
| 	// From json.Unmarshaler: By convention, to approximate the behavior of | ||||
| 	// Unmarshal itself, Unmarshalers implement UnmarshalJSON([]byte("null")) as | ||||
| 	// a no-op. | ||||
| 	if string(b) == "null" { | ||||
| 		return nil | ||||
| 	} | ||||
| 	if c == nil { | ||||
| 		return fmt.Errorf("nil receiver passed to UnmarshalJSON") | ||||
| 	} | ||||
|  | ||||
| 	var x interface{} | ||||
| 	if err := json.Unmarshal(b, &x); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	switch x.(type) { | ||||
| 	case string: | ||||
| 		if jc, ok := strToCode[string(b)]; ok { | ||||
| 			*c = jc | ||||
| 			return nil | ||||
| 		} | ||||
| 		return fmt.Errorf("invalid code: %q", string(b)) | ||||
| 	case float64: | ||||
| 		if ci, err := strconv.ParseUint(string(b), 10, 32); err == nil { | ||||
| 			if ci >= maxCode { | ||||
| 				return fmt.Errorf("invalid code: %q", ci) | ||||
| 			} | ||||
|  | ||||
| 			*c = Code(ci) | ||||
| 			return nil | ||||
| 		} | ||||
| 		return fmt.Errorf("invalid code: %q", string(b)) | ||||
| 	default: | ||||
| 		return fmt.Errorf("invalid code: %q", string(b)) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // MarshalJSON returns c as the JSON encoding of c. | ||||
| func (c *Code) MarshalJSON() ([]byte, error) { | ||||
| 	if c == nil { | ||||
| 		return []byte("null"), nil | ||||
| 	} | ||||
| 	str, ok := codeToStr[*c] | ||||
| 	if !ok { | ||||
| 		return nil, fmt.Errorf("invalid code: %d", *c) | ||||
| 	} | ||||
| 	return []byte(fmt.Sprintf("%q", str)), nil | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Claude Code
					Claude Code