Skip to content

[BUG] Publisher misses logger dependency in policy XML #878

Description

Release version

v7.0.1

Describe the bug

Summary

When an API policy references a logger via log-to-eventhub logger-id="...", the publisher can attempt to PUT the policy before the logger resource exists in APIM. This results in a 400 validation error such as:

Logger not found

Root cause

The publisher builds dependency edges from parsed policy XML for things like:

  • named values
  • policy fragments
  • backend IDs

but it does not currently parse logger references used in:

  • log-to-eventhub logger-id="..."

As a result, the policy has no predecessor relationship to the logger, so parallel resource processing can PUT the policy before the logger resource has been created.

Expected behavior

When an API policy references an APIM logger in the XML policy, the publisher should create a dependency edge from that logger resource to the policy resource and publish the logger before the policy

Actual behavior

The publisher does not detect logger references in policy XML. As a result, the policy can be published in parallel with the logger, and APIM rejects the request with a validation error like:

Reproduction Steps

  • Create or include an APIM logger resource, for example azureeventhublogger.
  • Update an API policy that references that logger in XML, such as:
<policies>
  <inbound>
    <log-to-eventhub logger-id="azureeventhublogger" />
    <base />
  </inbound>
</policies>
  • Run the publisher against the target APIM environment with that logger and policy in the artifacts (last commit)
  • Observe that the publisher may PUT the policy before the logger is created.
  • APIM returns 400 Bad Request with Logger not found for the policy.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions