// IPSonic MONITORING TOOLKIT / DOCUMENTATION
ipsonic-probe rainbow unicorn

ipsonic-probe ✦

YAML-driven infrastructure validation. Platform-agnostic checks. Zero cloud dependencies.

DNSTCPHTTP / TLSYAML CONFIGCLI FIRSTKISSOFFLINE READY

Part of the ipsonic project ↗ Visit the main website

Customer acceptance - staging

100-customer-acceptance-staging.yaml

HTTP(S)

What this example does

Technical project acceptance: Customer acceptance - staging. Use the YAML as a reviewable checklist and retain the test output as supporting evidence.

Checks and behavior

  • Sends an GET request to https://staging.example.com/.
  • Checks allowed/denied HTTP status codes.
  • Validates required, forbidden or matching HTTP headers.
  • Looks for expected response content and/or rejects known error markers.
  • Validates redirect behavior and destination constraints.
  • TLS settings cover certificate trust, certificate expiry.
  • Applies response-time thresholds for operational alerting.
  • Formats results for text output.

Adapt example domains, addresses, credentials and thresholds to your environment before use.

YAML configuration

Download original YAML

# Copyright (c) 2026 mati peterson. Maintainer: mati peterson <ipsonic@mailbox.org>. Project: https://ipsonic.com/probe/. Disclaimer: Provided AS IS, without warranty of any kind. Use at your own risk; validate checks and configurations before production use.
# Executable staging acceptance criterion: agree exact markers with the customer.
name: "Customer acceptance - staging"
url: "https://staging.example.com/"
request: {method: GET, follow_redirects: true}
timeouts: {connect: 3, response: 10}
tls: {verify: true, min_valid_days: 14}
tests:
  status: {allow: [200]}
  redirects:
    max_count: 2
    require_https: true
    allowed_hosts: [staging.example.com]
  headers:
    contains:
      Content-Type: [text/html]
  body:
    contains: ["<html"]
    not_contains: ["Internal Server Error", "Traceback"]
monitoring:
  service_name: "Staging Acceptance - Customer Portal"
  output: text
  on_failure: critical
  thresholds:
    response_time: {warning: 2, critical: 5}