Releases: SirZeck/ping-gopher
Release list
PingGopher v1.1.0 — Multi-Channel Alerting & Advanced Synthetic Probes 🚀
🔔 PingGopher Technical Release Report (v1.1.0)
Target Repository: github.com/SirZeck/ping-gopher
Release Tag: v1.1.0 (Feature Release)
Date: August 23, 2026
Auditing & Architecture Reference: docs/branching_and_release_strategy.md
1. Executive Summary
This technical release report documents PingGopher Release v1.1.0, introducing multi-channel webhook alerting (Slack & Discord), advanced synthetic probe types (TCP socket connections and DNS resolution lookups), HTTP status/keyword assertions, and Web UI dashboard controls.
All code changes were developed under isolated Git Flow feature branches (feature/multi-channel-alerting, feature/tcp-dns-probes, feature/web-ui-enhancements), integrated on develop, and verified via v1.1.0-beta.1 pre-release testing.
2. Feature & Capabilities Breakdown (v1.1.0)
🔔 Multi-Channel Alerting Engine (internal/notifier)
- Slack Block-Kit Webhooks (
internal/notifier/slack.go): Formats outage and recovery notifications into Slack Block-Kit JSON with status header icons, target details, and outage block quotes. - Discord Embed Webhooks (
internal/notifier/discord.go): Formats notifications into color-coded Discord Embed cards (0xE74C3CRed for Outages,0x2ECC71Green for Recovery). - SSRF Endpoint Guard: Evaluates incoming Slack & Discord webhook endpoints against
validator.ValidateSafeURLbefore dispatch.
⚡ Advanced Synthetic Probe Engine (internal/worker)
- TCP Socket Probes (
ExecuteTCPProbe): Dials raw TCP ports (e.g. Postgres:5432, Redis:6379, SSH:22) with connect-time socket SSRF validation (SafeDialContext) and latency metrics. - DNS Resolution Probes (
ExecuteDNSProbe): Performs live DNS lookups forA,AAAA,MX, andTXTrecords vianet.DefaultResolver. - HTTP Keyword & Status Assertions (
ExecuteHTTPAssertionProbe): Asserts exact status code expectations (e.g.,200,201) and response body keyword matches.
🎨 Web UI Dashboard & Status Page Enhancements (web/)
- Target Creation Modal: Added
Probe Typeselector (HTTP,SSL,TCP,DNS),Expected HTTP Status,Keyword Assertion,Slack Webhook URL, andDiscord Webhook URLinput fields. - Target Component Badges: Renders interactive
HTTP,SSL,TCP,DNS,Slack, andDiscordbadges on dashboard target cards and public status pages.
3. Automated Test Suite Verification
Executed go test -count=1 ./... — 100% PASS:
ok github.com/SirZeck/ping-gopher/cmd/pinggopher-cli 1.950s
ok github.com/SirZeck/ping-gopher/internal/api 3.490s
ok github.com/SirZeck/ping-gopher/internal/auth 0.742s
ok github.com/SirZeck/ping-gopher/internal/db 1.661s
ok github.com/SirZeck/ping-gopher/internal/notifier 2.402s
ok github.com/SirZeck/ping-gopher/internal/scheduler 2.882s
ok github.com/SirZeck/ping-gopher/internal/worker 2.723s
PingGopher v1.0.0 — Production General Availability Release 🚀
🛡️ PingGopher Production General Availability Technical Release Report (v1.0.0)
Target Repository: github.com/SirZeck/ping-gopher
Release Tag: v1.0.0 (Official Production GA Release)
Date: August 23, 2026
Auditing References: docs/audit_report_final.md, docs/audit_report_v1.md, docs/audit_report_v2.md, docs/audit_report_v3.md, docs/audit_report_v4_adversarial.md
1. Executive Summary
This technical report marks the official General Availability (GA) Release v1.0.0 of PingGopher.
Following 4 rigorous auditing cycles (including Senior Staff verification and independent adversarial re-audits), PingGopher is officially APPROVED FOR PRODUCTION LAUNCH. All 28 security vulnerabilities, concurrency bottlenecks, multi-tenant isolation defects, and operational failure modes identified during pre-launch reviews have been 100% remediated and verified.
2. Complete Summary of Remediations (v1.0.0)
🔴 Security & SSRF Protection
- Double-Layered SSRF Defense Engine: Incoming probe targets and webhook URLs are pre-validated via
ValidateSafeURL()and socket connections are validated at TCP connect time viaSafeDialContext(timeout)for both HTTP and SSL probes. - TOCTOU DNS Rebinding Elimination: Resolves host DNS and evaluates CIDR blocklists (
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,127.0.0.0/8,169.254.169.254) at exact TCP socket dial time. - IPv4-Mapped IPv6 Normalization: Normalizes addresses like
::ffff:169.254.169.254viaip.To4()before CIDR evaluation. - Creation & Update Webhook SSRF Enforcer: Rejects prohibited internal webhook URLs on monitor creation and updates with HTTP 400 Bad Request.
🔐 Multi-Tenant Data Isolation & Privacy
- Tenant Status Isolation: Public status queries require explicit tenant scoping or authenticated session tokens (
?tenant_id=<uuid>). IsPublicPrivacy Toggle: AddedIsPublic boolfield toMonitorstruct. Status pages filter monitors (is_public = true) and active incidents (monitors.is_public = true), keeping private telemetry strictly isolated.
⚡ Concurrency & Database Resilience
- SQLite WAL Mode & Lock Management: Pragmas enable Write-Ahead Logging (
WALmode), 5000ms busy timeouts, andSetMaxOpenConns(1)connection pool boundaries to eliminate database lock panics. - Worker Pool Semaphore: Bounded 50-slot worker pool channel semaphore prevents goroutine explosion during check cycles.
- Automatic Telemetry Pruner: Daily background ticker executes
db.PruneOldLogs(s.DB, 30)to purge ping logs older than 30 days.
🛡️ Middleware, Rate Limiting & Operations
- Proxy-Aware Sliding-Window Rate Limiting: Enforces 5 req/sec ceiling per client IP on
/v1/auth/signupand/v1/auth/login, parsingX-Forwarded-ForandX-Real-IPheaders behind reverse proxies. - Memory Map Cleanup: Background ticker evicts stale rate-limiter IP map entries every 5 minutes.
- Production Secret Guard: Startup check exits process boot with
FATALerror if default JWT secret key is detected whenENVIRONMENT=production. - Docker Container Healthcheck: Updated
HEALTHCHECKto probehttp://localhost:8080/health.
3. Automated Test Suite Final Verification
Executed go test -count=1 ./... — 100% PASS:
ok github.com/SirZeck/ping-gopher/cmd/pinggopher-cli 2.632s
ok github.com/SirZeck/ping-gopher/internal/api 4.230s
ok github.com/SirZeck/ping-gopher/internal/auth 1.511s
ok github.com/SirZeck/ping-gopher/internal/db 2.222s
ok github.com/SirZeck/ping-gopher/internal/notifier 2.926s
ok github.com/SirZeck/ping-gopher/internal/scheduler 3.551s
ok github.com/SirZeck/ping-gopher/internal/worker 3.215s