Skip to content

Watchers should include it's version in requests towards ChildChain block.get #1710

@InoMurko

Description

@InoMurko

So that we have some information about clients in the network and how our releases are used, we should include the release version (version-SHA) as a HTTP header sent to the childchain.

Specs

Childchain

Feature: Process `X-Watcher-Version` HTTP header
  The `X-Watcher-Version` enables the operator to understand what clients are making the requests
  and is used to develop maintenance strategy e.g. versioning and upgrade path.

Rule: A request is processed if it contains `X-Watcher-Version` HTTP header

Scenario: Alice sends a `X-Watcher-Version` header with a valid watcher version
Scenario: Alice sends a `X-Watcher-Version` header with an arbitrary value
Scenario: Alice sends a request without the `X-Watcher-Version` header

# We cannot enable this rule yet since most running watchers would not have implemented this yet.
@wip
Rule: A request is rejected if it does not contain `X-Watcher-Version` HTTP header

Scenario: Alice sends a `X-Watcher-Version` header with an arbitrary value
Scenario: Alice sends a request without the `X-Watcher-Version` header

Rule: Each `X-Watcher-Version` value is counted and submitted as a metric to Datadog

Scenario: Alice sends a `X-Watcher-Version` header with a valid watcher version
Scenario: Alice sends a `X-Watcher-Version` header with a different watcher version
Scenario: Alice sends a `X-Watcher-Version` header with an arbitrary value
Scenario: Alice sends a request without the `X-Watcher-Version` header

Watcher

Feature: Submit `X-Watcher-Version` HTTP header with all requests to the childchain
  The `X-Watcher-Version` enables the operator to understand what clients are making the requests
  and is used to develop maintenance strategy e.g. versioning and upgrade path.

Rule: Each childchain request sent must contain the `X-Watcher-Version` with the value being the watcher version

Scenario: Alice sends a request to the childchain
Scenario: Alice sends a request to a rootchain node

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions