Impact GateDocs

Reference

Supported contracts and coverage

Prepare contracts for analysis and understand which evidence the current release can establish.

On this page

Supported inputs#

InputCurrent connected supportImportant boundary
Provider API contractsOpenAPI 3 documents in YAML or JSONDocuments need valid paths and resolvable local references; unsupported constructs leave gaps.
JavaScript / TypeScript consumersSupported HTTP client patterns such as fetch and axiosHighly dynamic URLs, indirect runtime configuration, or unresolved wrappers may not be mapped.
Static API flowsSupported JS/TS and Java route handlers, function calls, consumer API reachability and downstream HTTP dependenciesRuntime traffic is optional. Unsupported languages, unresolved dispatch and incomplete source coverage remain explicit gaps.
Java consumersSupported HTTP client patterns, including supported Spring clientsFramework support depends on recognizable source patterns; arbitrary reflection is not established.
Service identityRepository roots and supported package / Spring / deployment manifestsDiscovery may need review in monorepos or unusual layouts.
Runtime observationsPrometheus request counters and Datadog indexed APM spansRequires an existing instrumented source, explicit service mapping, and fresh successful imports; missing data leaves usage unknown.
Optional model assistancePlanned*; not enabledThe connected worker currently performs deterministic analysis. No external model provider is connected, and model assistance is not required for the core analysis.

Source-language support describes extraction capabilities, not complete support for every library or code pattern. Check repository Coverage and individual report notes for the actual result in your codebase.

Prepare a contract#

  1. Commit the document

    Keep the OpenAPI document in the selected provider repository on its default branch. openapi.yaml, openapi.yml, or a JSON document containing the openapi field are recognized examples.

  2. Use OpenAPI 3 and valid paths

    Include an OpenAPI 3 version and a valid paths object. Swagger 2 documents are not supported by the connected indexer.

  3. Bundle schema references

    Use resolvable local references such as #/components/schemas/Product. External references and unresolved references prevent a complete contract comparison.

  4. Describe the interface faithfully

    Include request parameters, required fields, responses, media types, and relevant security requirements. Update this contract when the implementation changes.

  5. Index and inspect

    Save repository selection or choose Re-index. Open Coverage, then inspect the API and its schemas in APIs.

openapi.yaml
# Minimal illustrative provider contract.
openapi: 3.0.3
info:
  title: Product API
  version: 1.0.0
paths:
  /v1/products/{id}:
    get:
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Product details
          content:
            application/json:
              schema:
                type: object
                required: [id, priceCents]
                properties:
                  id:
                    type: string
                  priceCents:
                    type: integer

This example illustrates document shape. Adapt it to your actual interface and normal contract validation process. Renaming the response field would change the contract, while a source-only rename without a matching contract update can leave drift unverified.

Examples of contract changes#

ChangeWhy it needs review
Remove an endpoint or response fieldA consumer may still request the endpoint or read the field.
Add a required request parameter or tighten a constraintPreviously accepted requests can become invalid.
Change a response type, media type, or success codeParsing and status handling assumptions can change.
Remove an accepted request enum valueExisting clients may still send that value.
Add a response enum valueConsumers with exhaustive handling may not understand it.
Change descriptions or operation metadataThese usually do not alter the HTTP interface; review actual document differences.

The report describes the detected change kind and its before/after values. The actual impact depends on consumer evidence and coverage; a breaking contract difference can be recorded even when no static caller was located.

Why coverage can be partial#

  • No supported provider document was found, or a document was invalid.
  • External or unresolved references prevented a complete contract comparison.
  • A repository contains source languages or client patterns outside supported extraction.
  • GitHub returned a truncated tree or an expected blob was unavailable.
  • A file exceeded the per-file budget, contained binary data, or was a symlink.
  • The repository or consumer analysis exceeded a processing budget.

Repository collection is size-bounded and focuses on API contracts and the code that uses them. Dependencies, build output, test directories, and lockfiles are left out. Very large repositories or files may be only partly covered, so the report lists what was and was not analyzed instead of promising exhaustive parsing.

Supported files, Skipped files, OpenAPI documents, and the notes under Coverage describe the saved result. Re-indexing can resolve a missing document or restored access, but it does not add support for an unsupported language.

What remains unknown#

  • Implementation behavior or removed routes that are not reflected in the supported contract.
  • Consumers outside selected, indexed repositories and clients maintained outside GitHub.
  • Production traffic volume and caller inactivity without runtime observations.
  • Deployment host associations for relationships inferred from endpoint paths.
  • Highly dynamic or reflective calls that static extraction cannot resolve.
  • Non-HTTP interfaces such as message queues, gRPC, and application-level WebSocket protocols.
  • Downstream effects beyond the code and relationship evidence actually inspected.

Explore the documentation

↑↓ NavigateEnter Open guideSearch stays in your browser