github Endava/cats cats-15.1.0

4 hours ago
  • feat: Upgrade 'cats triage' with live fix verification (--verify), --refData mining from 2XX exchanges, OpenAPI contract patch export, and similarity clustering
  • refactor: Replace raw HTTP status code ranges and hardcoded fuzzer names with ResponseCodeFamily and ConsoleUtils
  • refactor: Replace untyped CommandContext map with typed fields, reset FilterArguments/CatsGlobalContext caches, and resolve TestReportsGenerator exporters dynamically
  • feat: Generate small positive counts/quantities and ISO timestamps for temporal query params, and add malformed Accept quality and control-char crash vectors
  • feat: Add 'cats triage' (diagnose/doctor) command for root-cause clustering, correlation rule synthesis, and minimal curl reproducer export
  • feat: Add UTF-7 charset Content-Type in DummyContentTypeHeadersFuzzer and raw percent query mutations in InvalidReferencesFieldsFuzzer
  • feat: Add XmlPayloadEncoder to serialize application/xml request bodies using OpenAPI Schema XML metadata
  • feat: Add enum-variant and required-header fallbacks in OnlyRequiredFieldsFuzzer and correlate single-value wrapper responses
  • feat: Support multipart/form-data fallback and templated POST producer ordering in OperationDependencyOrder
  • feat: Skip OpenAPI discriminator properties and single-value constant enums during resource pool enrichment
  • fix: Prevent collection POSTs from overwriting their own discriminator/type fields and expect FOURXX_TWOXX in BidirectionalOverrideFieldsFuzzer when sanitizeFirst is enabled
  • fix: Exclude per-request correlation/trace/idempotency keys from resource pool enrichment and expect 2XX/4XX on non-body DummyContentTypeHeadersFuzzer
  • fix: Prevent cyclic oneOf/allOf StackOverflowError in OpenAPIModelGeneratorV2 and run non-body fuzzers on XML-body operations
  • feat: Test boundaryless multipart/form-data Content-Type across all HTTP methods in DummyContentTypeHeadersFuzzer
  • feat: Run crash wave breadth-first, fix raw path resolution in InvalidReferencesFieldsFuzzer, and enable value-changing coercion fuzzers on GET/DELETE
  • feat: Cap generateRequestSamples combinations and add resource-qualified aliases for inferred collection keys and Location headers
  • feat: Support defaulted/minimal-optional fallbacks in OnlyRequiredFieldsFuzzer and query-only POST operations
  • fix: Preserve OpenAPI server basePath when CLI --server specifies only host and port
  • fix: Do not store DELETE payloads in SuccessfulBaselineStore and evict deleted IDs from baselines
  • fix: Align expected response codes with post-sanitization minLength, maxLength, pattern, enum, and format constraints
  • fix: Expect FOURXX_TWOXX for Abugidas/FullwidthBrackets and recognize fullwidth brackets in FuzzingStrategy
  • refactor: Consolidate shared path-param expectations, JSON field insertion, and response/refData helpers
  • feat: Log deprecation warning when running legacy FunctionalFuzzer YAML format
  • feat: Add standalone FunctionalFlowFuzzer with sequential steps, cross-field correlations, and automatic format recognition
  • feat: Support root scalar response body extraction via $, $body, or $response.body in CustomFuzzerUtil
  • fix: Enforce OpenAPI schema enum constraints in ResourceRequestEnricher instead of hardcoded field names
  • fix: Run non-DELETE fuzzers before DELETE fuzzers per path, support Hangul fillers in FuzzingStrategy, and scope query enrichment
  • fix: Prevent spaces in replacement payloads from triggering InsertFuzzingStrategy during baseline and resource merging
  • fix: Resolve #/components/responses references in CatsGlobalContext.getObjectFromPathsReference
  • fix: Accept 405 in CheckDeletedResourcesNotAvailableFuzzer and prevent prefix/suffix overlap in matchesWithInsertedMiddleQualifier
  • fix: Expect FOURXX_TWOXX for optional query parameters in EmptyStringsInFieldsFuzzer
  • fix: Check minLength>0 in StringFieldsLeftBoundaryFuzzer, enum/optional query format in BaseFieldsFuzzer, and single HappyPath DELETE seed
  • fix: Remove LongTypeSerializer from GSON_NO_PRETTY_PRINTING instead of wrapping numbers in Gson JsonPrimitive
  • fix: Generate values strictly outside int32/int64/float/double limits in NumberGenerator when schema min/max is omitted
  • fix: Preserve numeric and boolean types during FuzzingStrategy.mergeFuzzing on identifier fields
  • fix: Preserve unquoted 64-bit JSON numbers in NumericValuesInStringFieldsFuzzer and skip URL path/query parameters
  • fix: Enrich path parameters from RuntimeResourcePool when replaceUrlParams is true even if replaceRefData is false
  • fix: Rewrite discriminator mapping references in ResponseSchemaValidator to match rewritten component schema URIs
  • feat: Refine WFC fault classification for Allow headers, undocumented HTTP methods, 5XX retries, and exact-boundary fuzzers
  • feat: Enhance CatsResultFactory reason messages with explicit I/O error reasons, auth hints, and consolidated second-phase reasons
  • refactor: Replace magic HTTP status codes, methods, and headers with ResponseCodeFamily, HttpMethod, and HttpHeaders constants
  • refactor: Replace hardcoded fuzzer name strings with compile-time Class references via ConsoleUtils
  • feat: Add WFC_REPORT report format with Web Fuzzing Commons fault classification and multi-format report export
  • feat: Redesign HTML summary and test detail reports with compact 2-row dashboard, side-by-side request/response panes, syntax highlighting, and theme persistence
  • feat: Upgrade error clustering with JSON root-cause extraction, 2XX error inclusion, and interactive cluster report UI
  • feat: Copy cURL to OS clipboard on 'c' in TUI with visual status feedback and footer hints
  • fix: Reuse ReportingArguments '-j'/'--json' option in SmokeCommand
  • feat: Add 'cats analyze' fuzzability blueprint & Mermaid graph and TUI 'c' copy-curl / '?' help overlay
  • feat: Add 'cats init' subcommand to scaffold headers.yml, refData.yml, and functionalTests.yml
  • feat: Add apples-to-apples '--baseline' regression gating and 'cats compare' subcommand
  • feat: Add 'cats smoke' subcommand for fast live-server route, auth, and health checks
  • refactor: Reduce cognitive complexity and resolve SonarQube maintainability issues across pool, command, factory, and util classes
  • feat: Enhance TUI with wave progress, fuzzer drill-down, next/prev detail navigation, and curl/correlation details

Don't miss a new cats release

NewReleases is sending notifications on new releases.