Skip to content

Onboarding and routing to a service with invalid serviceId #3844

@pavel-jares-bcm

Description

@pavel-jares-bcm

Describe the bug

The invalid serviceId (against the conformance) has an unexpected behavior.

Steps to Reproduce

  1. register a service with serviceId service_test
  2. try to call an endpoint ie. /service_test/api/v1
  3. the response is 500

Expected behavior
It should route well or inform about wrong inputs

The root cause is that GW uses a load balancer. To identify the instance it uses a URI like lb://service_test. During the processing by the load balancer, it is necessary to parse the URI and it is a problem because the URI is not valid (for _ character - https://www.ietf.org/rfc/rfc0952.txt). It leads to internal server error 500.

Possible solution:

  1. reject onboarding with invalid serviceId (or potentially other values)
  • the DS could return 400 in this case
  • if the service logs the reason for error it could be displayed
  1. rename serviceId internally
  • use as service ID encoded string (ie by using -)
  • we need to provide the original serviceId in metadata to be possible to construct url for a routing rule
  1. update enabler to verify this value and at least log warn message or rather stop onboarding process

Details

  • Version and build number: 3.0.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    Priority: HighV3New functions slated for V3 major releasebugVerified defect in functionalitysize/M

    Type

    No type

    Projects

    Status

    Unplanned Bugs

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions