5 min read

Rolling Your Own Config as Code for Anonymous Configs

< back

Common challenges

Specific problem

Overview

Fetch and normalize configurations

Generate Signatures or Hashes

Compare and detect changes

Report or act




name: dummy
kind: mobile
platforms:
  - name: android
    features:
      - name: feature1
        value: 100
      - name: feature2
        value: 0
      - name: feature3
        value: 0
      - name: feature4
        value: 50
    environment:
      - name: production
        enabled: true
    rollout:
      - weight: 33000
        enabled: true
        feature: feature1
      - weight: 33000
        enabled: true
        feature: feature2
      - weight: 34000
        enabled: true
        feature: feature3
      - weight: 0
        enabled: false
        feature: feature4
  - name: ios
    features:
      - name: feature1
        value: 0
      - name: feature2
        value: 10
      - name: feature3
        value: 0
      - name: feature4
        value: 40
    environment:
      - name: production
        enabled: true
    rollout:
      - weight: 33000
        enabled: true
        feature: feature1
      - weight: 33000
        enabled: true
        feature: feature2
      - weight: 34000
        enabled: true
        feature: feature3
      - weight: 0
        enabled: false
        feature: feature4
{
  "id": "1",
  "name": "dummy_android",
  "kind": "mobile",
  "created_at": "2025-07-09T12:42:00.953753Z",
  "updated_at": "2025-07-09T12:42:00.953769Z",
  "platforms": [
    {
        "id": "1",
        "name": "android",
        "created_at": "2025-07-09T12:42:00.953681Z",
        "updated_at": "2025-07-09T12:42:00.953698Z",
        "environment": {
            "name": "production",
            "enabled": true
        },
        "features": [
        {
          "id": "1",
          "created_at": "2025-07-09T12:42:00.953547Z",
          "updated_at": "2025-07-09T12:42:00.953627Z",
          "rollout": [
            {
                "id": "1",
                "featureId": "1",
                "created_at": "2025-07-09T12:42:00.953638Z",
                "updated_at": "2025-07-09T12:42:00.953642Z",
                "weight": 33000,
                "enabled": true
            }
            },
            {
                "id": "2",
                "featureId": "2",
                "created_at": "2025-07-09T12:42:00.953638Z",
                "updated_at": "2025-07-09T12:42:00.953642Z",
                "weight": 33000,
                "enabled": true
            },
            {
                "id": "3",
                "featureId": "3",
                "created_at": "2025-07-09T12:42:00.953646Z",
                "updated_at": "2025-07-09T12:42:00.953649Z",
                "weight": 34000,

            },
            {
                "id": "4",
                "featureId": "4",
                "created_at": "2025-07-09T12:42:00.953653Z",
                "updated_at": "2025-07-09T12:42:00.953655Z",
                "weight": 0,
                "enabled": false
            }
        ]
    },
    {
      "id": "platform_ios",
      "name": "ios",
      "created_at": "2025-07-09T12:42:00.953730Z",
      "updated_at": "2025-07-09T12:42:00.953733Z",
      "environment": {
        "name": "production",
        "enabled": true
      },
      "features": [
        {
          "id": "feature_feature1",
          "name": "feature1",
          "value": 0,
          "created_at": "2025-07-09T12:42:00.953703Z",
          "updated_at": "2025-07-09T12:42:00.953706Z",
          "rollout": {
            "weight": 33000,
            "enabled": true
          }
        },
        {
          "id": "feature_feature2",
          "name": "feature2",
          "value": 10,
          "created_at": "2025-07-09T12:42:00.953710Z",
          "updated_at": "2025-07-09T12:42:00.953713Z",
          "rollout": {
            "weight": 33000,
            "enabled": true
          }
        },
        {
          "id": "feature_feature3",
          "name": "feature3",
          "value": 0,
          "created_at": "2025-07-09T12:42:00.953717Z",
          "updated_at": "2025-07-09T12:42:00.953720Z",
          "rollout": {
            "weight": 34000,
            "enabled": true
          }
        },
        {
          "id": "feature_feature4",
          "name": "feature4",
          "value": 40,
          "created_at": "2025-07-09T12:42:00.953723Z",
          "updated_at": "2025-07-09T12:42:00.953726Z",
          "rollout": {
            "weight": 0,
            "enabled": false
          }
        }
      ]
    }
  ]
}

~ stay curious ~