Files
goclaw/docker-compose.otel.yml
Luan Vu 95885da14e feat(zalo): add file and image upload/send support (#62)
## Summary
- Implement UploadImage, SendImage, UploadFile, SendFile in Zalo Personal protocol
- Handle WebSocket control events (cmd=601) for async file upload callbacks
- Add media attachment routing in channel.Send() — auto-detects image vs file
- Add MEDIA: prefix support in message tool for agent file attachments
- Add group_id metadata routing for correct Zalo group API selection

## Review fixes (dc475bc)
- Fix CI: %s for json.Number (was %d)
- Fix path traversal: parseMediaPath restricted to os.TempDir()
- Add 25MB file size limit before upload reads
- Drain stale uploadCallbacks on Listener.reset()
- Split send.go (688 LOC) into send.go, send_image.go, send_file.go, send_helpers.go
- Add 12 unit tests for parseMediaPath
2026-03-06 23:20:50 +07:00

32 lines
859 B
YAML

# OTel overlay — rebuilds with OTel support + adds Jaeger for trace visualization.
#
# Usage:
# docker compose -f docker-compose.yml -f docker-compose.postgres.yml -f docker-compose.otel.yml up
#
# Jaeger UI: http://localhost:16686
services:
jaeger:
image: jaegertracing/all-in-one:1.68.0
ports:
- "16686:16686" # Jaeger UI
- "4317:4317" # OTLP gRPC
- "4318:4318" # OTLP HTTP
environment:
- COLLECTOR_OTLP_ENABLED=true
restart: unless-stopped
goclaw:
build:
args:
ENABLE_OTEL: "true"
environment:
- GOCLAW_TELEMETRY_ENABLED=true
- GOCLAW_TELEMETRY_ENDPOINT=jaeger:4317
- GOCLAW_TELEMETRY_PROTOCOL=grpc
- GOCLAW_TELEMETRY_INSECURE=true
- GOCLAW_TELEMETRY_SERVICE_NAME=goclaw-gateway
depends_on:
jaeger:
condition: service_started