# HTTP Client Claims - Bulk Import Example # # This file demonstrates converting a 340-line shell script (create-claims.sh) # into a compact TOML format for bulk import. # # Original: 22 claims × ~15 lines of bash = 340 lines + 15 minutes execution # New: 22 claims in ~200 lines TOML + <1 second import # # Import: aphoria claims import import-httpclient.toml # # Note: This is a representative sample showing 5 of the 22 claims. # See dogfood/httpclient/create-claims.sh for the full script being replaced. # ============================================================================ # TIMEOUT CLAIMS # ============================================================================ [[claim]] id = "httpclient-connect-timeout-001" concept_path = "httpclient/connect_timeout" predicate = "max_value" value = 10 comparison = "equals" provenance = "Mozilla HTTP docs + Requests library (10s connect timeout)" invariant = "TCP connection timeout MUST NOT exceed 10 seconds" consequence = "Unresponsive endpoints block connection establishment" authority_tier = "expert" evidence = ["Mozilla HTTP guidelines", "Requests library default"] category = "safety" status = "active" created_by = "aphoria-suggest" created_at = "2024-12-15T10:00:00Z" [[claim]] id = "httpclient-request-timeout-001" concept_path = "httpclient/request_timeout" predicate = "max_value" value = 30 comparison = "equals" provenance = "Mozilla HTTP docs (30s recommended), aligned with dbpool timeout pattern" invariant = "HTTP request timeout MUST NOT exceed 30 seconds" consequence = "Slow external services block thread pool, cascade failures" authority_tier = "expert" evidence = ["Mozilla HTTP guidelines", "RFC 7230"] category = "safety" status = "active" created_by = "aphoria-suggest" created_at = "2024-12-15T10:00:00Z" [[claim]] id = "httpclient-read-timeout-001" concept_path = "httpclient/read_timeout" predicate = "max_value" value = 30 comparison = "equals" provenance = "Mozilla HTTP docs (15-30s for response body reading)" invariant = "Response body read timeout MUST NOT exceed 30 seconds" consequence = "Slow streaming responses block thread pool" authority_tier = "expert" evidence = ["Mozilla HTTP guidelines"] category = "safety" status = "active" created_by = "aphoria-suggest" created_at = "2024-12-15T10:00:00Z" # ============================================================================ # TLS CLAIMS # ============================================================================ [[claim]] id = "httpclient-tls-cert-validation-001" concept_path = "httpclient/tls/certificate_validation" predicate = "required" value = true comparison = "equals" provenance = "OWASP A07:2021 + Mozilla Security Guidelines, reused from dbpool pattern" invariant = "HTTPS connections MUST validate server certificates" consequence = "Man-in-the-middle attacks, credential exposure" authority_tier = "expert" evidence = ["OWASP A07:2021", "Mozilla HTTPS guidelines", "Requests library default"] category = "security" status = "active" created_by = "aphoria-suggest" created_at = "2024-12-15T10:00:00Z" [[claim]] id = "httpclient-tls-min-version-001" concept_path = "httpclient/tls/min_version" predicate = "min_value" value = 1.2 comparison = "equals" provenance = "OWASP + Mozilla Security Guidelines (TLS 1.2 minimum as of 2023)" invariant = "TLS version MUST be >= 1.2 (TLS 1.0/1.1 deprecated)" consequence = "Vulnerable to protocol downgrade attacks (BEAST, POODLE)" authority_tier = "expert" evidence = ["OWASP TLS cheat sheet", "Mozilla guidelines"] category = "security" status = "active" created_by = "aphoria-suggest" created_at = "2024-12-15T10:00:00Z" # ============================================================================ # Full Script Comparison # ============================================================================ # # BEFORE (create-claims.sh - 340 lines): # # #!/bin/bash # set -e # APHORIA="/path/to/aphoria" # # echo "1/22: connect_timeout..." # $APHORIA claims create \ # --id "httpclient-connect-timeout-001" \ # --concept-path "httpclient/connect_timeout" \ # --predicate "max_value" \ # --value "10" \ # --provenance "Mozilla HTTP docs..." \ # --invariant "TCP connection timeout..." \ # --consequence "Unresponsive endpoints..." \ # --tier expert \ # --evidence "Mozilla HTTP guidelines" \ # --category safety \ # --by "aphoria-suggest" # # # Repeat 21 more times... # # Each claim: ~15 lines of bash # # Total: 340 lines, ~15 minutes to run # # AFTER (import-httpclient.toml - 200 lines): # # [[claim]] # id = "httpclient-connect-timeout-001" # concept_path = "httpclient/connect_timeout" # predicate = "max_value" # value = 10 # comparison = "equals" # provenance = "Mozilla HTTP docs..." # invariant = "TCP connection timeout..." # consequence = "Unresponsive endpoints..." # authority_tier = "expert" # evidence = ["Mozilla HTTP guidelines"] # category = "safety" # status = "active" # created_by = "aphoria-suggest" # created_at = "2024-12-15T10:00:00Z" # # # 21 more claims... # # Total: ~200 lines, <1 second to import # # TIME SAVINGS: 15 minutes → <1 second # CODE REDUCTION: 340 lines → 200 lines # ERROR DETECTION: 0% → 100% (pre-import validation)