elixir-cloud-aai / proTES

Proxy service for injecting middleware into GA4GH TES requests
Apache License 2.0
5 stars 6 forks source link

Return execution trace in task log #123

Closed uniqueg closed 1 year ago

uniqueg commented 1 year ago

Currently, there is no way for clients to trace the route the task took from proTES, and so they have no chance of knowing where a given task was actually executed. This may or may not be desirable.

Implement a config param that when set to True adds information to the log on the trace that a given task request took. The information should extend the tesTaskLog model and account for the possibility that multiple gateways may be included in a call chain.

One solution might be the following recursive extension of tesTaskLog:

    tesTaskLog:
      ...
      properties:
        ...
        forwarded_to:
          $ref: '#/components/schemas/tesNextTes'
      description: TaskLog describes logging information related to a Task.

with:

    tesNextTes:
      required:
      - url
      - id
      type: object
      properties:
        url:
          type: string
          description: TES server to which the task was forwarded.
          example: https://my.tes.instance/
        id:
          type: string
          description: Task identifier assigned by the TES server to which the task was forwarded.
          example: job-0012345
        forwarded_to:
          $ref: '#/components/schemas/tesNextTes'
      description: Describes the TES server to which the task was forwarded, if applicable.