Documentation / VFX-D-1202

VFX-D-1202

Title

DanglingTargetReference

Explanation

A step's target names a service or dependency that the suite's environment block never declares. target is a logical name: it must match a key under environment.services or under environment.dependencies — the composed schema's own field description allows either, because a broker or store can legitimately be supplied as a customer-owned service rather than as a managed dependency.

Reported as a warning in the semanticDiagnostics channel, never in the schema errors channel: JSON Schema can constrain the shape of target (a non-empty string) but has no way to express "this string must match a key declared elsewhere in the document".

Common causes

  • A typo in the target name, or in the corresponding environment key (ordres-api vs orders-api).
  • A step copied from another suite whose environment declared a service this one does not.
  • An environment block that was never written at all — every target in the suite then dangles.
  • Renaming a service under environment.services without updating the steps that point at it.

Fixes

  • Declare the name under environment.services (for an HTTP or gRPC service) or under environment.dependencies (for a database, broker, cache, or object store).
  • Or change the step's target to a name the environment already declares — summary.services and summary.dependencies on the same validate_suite result list them.
  • Check validate_suite's summary before assuming a name is absent: names containing a ${...} reference are omitted from the summary for secret hygiene, but the rule itself tests against the complete, unfiltered set.