Skip to content

Enhance WebHook "Feature updates" event with human-readable data and change diff #1226

@dufasky

Description

@dufasky

Hello, Dear Colleagues!
Glad to write to you!

Currently, when the "Feature updates" WebHook event is triggered, the request contains the following limitations:

  1. The payload includes all feature flags instead of just the diff between previous and new versions
  2. Only portfolio/application/environment IDs are provided, making it difficult to identify them for different communication channels
  3. No "before/after" change representation is available

Suggested Improvement:

  1. It would be extremely helpful to receive WebHook events in a more informative format that includes:
  2. Human-readable names (portfolio, application, environment)
  3. Only changed features (with version diff)
  4. Clear "before/after" change structure
  5. Audit information about who made changes and when
  6. This proposal is very useful for informing in different communication channels.

Example of Desired Payload in WebHook:

{
  "portfolio": {
    "name": "portfolioName",
    "id": "uuid"
  },
  "application": {
    "name": "applicationName",
    "id": "uuid"
  },
  "environmentNames": ["dev"],
  "features": [
    {
      "id": "285f11f0-0666-4927-a46b-a5635ce5edf0",
      "key": "dddd",
      "valueType": "STRING",
      "versions": [
        {
          "version": 1,
          "value": {
            "id": "827080d4-c51d-44bc-be1a-07c94ba5ea9e",
            "locked": false,
            "value": "ANTON",
            "rolloutStrategies": [],
            "retired": false,
            "pId": "0c27eb38-2ebf-4954-8a57-f0d588257498"
          }
        },
        {
          "version": 2,
          "value": {
            "id": "827080d4-c51d-44bc-be1a-07c94ba5ea9e",
            "locked": false,
            "value": "NEW_VALUE_IN_V2",
            "rolloutStrategies": [],
            "retired": false,
            "pId": "0c27eb38-2ebf-4954-8a57-f0d588257498"
          },
          "actions": [
            {
              "timestamp": "2023-10-05T15:30:00Z",
              "user": {
                "name": "Maria Petrova",
                "email": "maria@example.com"
              },
              "type": "UPDATE",
              "changes": {
                "field": "value",
                "oldValue": "ANTON",
                "newValue": "NEW_VALUE_IN_V2"
              }
            }
          ]
        }
      ]
    }
  ]
}

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