{
  "started": 1789437836.9503644,
  "budget_seconds": 1200,
  "extension_max_seconds": 2100,
  "limits": {
    "helper_seconds": 120,
    "key_count": 100,
    "data_bytes": 16777216,
    "gpu": 0,
    "ai_start": 0,
    "redis_recreate": 1,
    "extra_restart": 0
  },
  "redis": {
    "Id": "3e727781588e83ef9ece337199da576ce72739156bd621c70e44eaf378eec0ee",
    "Created": "2026-09-11T11:58:42.971484629Z",
    "Path": "docker-entrypoint.sh",
    "Args": [
      "redis-server",
      "/usr/local/etc/redis/redis.conf",
      "--maxmemory",
      "2gb",
      "--maxmemory-policy",
      "allkeys-lru",
      "--save",
      ""
    ],
    "State": {
      "Status": "running",
      "Running": true,
      "Paused": false,
      "Restarting": false,
      "OOMKilled": false,
      "Dead": false,
      "Pid": 899762,
      "ExitCode": 0,
      "Error": "",
      "StartedAt": "2026-09-11T11:58:43.36701828Z",
      "FinishedAt": "0001-01-01T00:00:00Z",
      "Health": {
        "Status": "healthy",
        "FailingStreak": 0,
        "Log": [
          {
            "Start": "2026-09-15T11:03:12.529642441+09:00",
            "End": "2026-09-15T11:03:12.615129225+09:00",
            "ExitCode": 0,
            "Output": "PONG\n"
          },
          {
            "Start": "2026-09-15T11:03:22.617052041+09:00",
            "End": "2026-09-15T11:03:22.71059329+09:00",
            "ExitCode": 0,
            "Output": "PONG\n"
          },
          {
            "Start": "2026-09-15T11:03:32.712549193+09:00",
            "End": "2026-09-15T11:03:32.785037834+09:00",
            "ExitCode": 0,
            "Output": "PONG\n"
          },
          {
            "Start": "2026-09-15T11:03:42.786051887+09:00",
            "End": "2026-09-15T11:03:42.872262316+09:00",
            "ExitCode": 0,
            "Output": "PONG\n"
          },
          {
            "Start": "2026-09-15T11:03:52.873413346+09:00",
            "End": "2026-09-15T11:03:52.952098898+09:00",
            "ExitCode": 0,
            "Output": "PONG\n"
          }
        ]
      }
    },
    "Image": "sha256:5509c0097c6064aa8a3b1df58f1d950e67090fffa6678ae8f3f1dc2385f12deb",
    "ResolvConfPath": "/var/lib/docker/containers/3e727781588e83ef9ece337199da576ce72739156bd621c70e44eaf378eec0ee/resolv.conf",
    "HostnamePath": "/var/lib/docker/containers/3e727781588e83ef9ece337199da576ce72739156bd621c70e44eaf378eec0ee/hostname",
    "HostsPath": "/var/lib/docker/containers/3e727781588e83ef9ece337199da576ce72739156bd621c70e44eaf378eec0ee/hosts",
    "LogPath": "/var/lib/docker/containers/3e727781588e83ef9ece337199da576ce72739156bd621c70e44eaf378eec0ee/3e727781588e83ef9ece337199da576ce72739156bd621c70e44eaf378eec0ee-json.log",
    "Name": "/contextra-redis-1",
    "RestartCount": 0,
    "Driver": "overlay2",
    "Platform": "linux",
    "MountLabel": "",
    "ProcessLabel": "",
    "AppArmorProfile": "docker-default",
    "ExecIDs": null,
    "HostConfig": {
      "Binds": [
        "/workspace/contextra-runtime-config/metadata-active/redis.conf:/usr/local/etc/redis/redis.conf:ro",
        "/workspace/contextra-runtime-config/metadata-active/users.acl:/usr/local/etc/redis/users.acl:ro"
      ],
      "ContainerIDFile": "",
      "LogConfig": {
        "Type": "json-file",
        "Config": {}
      },
      "NetworkMode": "contextra_default",
      "PortBindings": {
        "6379/tcp": [
          {
            "HostIp": "192.168.50.221",
            "HostPort": "16379"
          }
        ]
      },
      "RestartPolicy": {
        "Name": "unless-stopped",
        "MaximumRetryCount": 0
      },
      "AutoRemove": false,
      "VolumeDriver": "",
      "VolumesFrom": null,
      "ConsoleSize": [
        0,
        0
      ],
      "CapAdd": null,
      "CapDrop": null,
      "CgroupnsMode": "private",
      "Dns": null,
      "DnsOptions": null,
      "DnsSearch": null,
      "ExtraHosts": [],
      "GroupAdd": null,
      "IpcMode": "private",
      "Cgroup": "",
      "Links": null,
      "OomScoreAdj": 0,
      "PidMode": "",
      "Privileged": false,
      "PublishAllPorts": false,
      "ReadonlyRootfs": false,
      "SecurityOpt": null,
      "UTSMode": "",
      "UsernsMode": "",
      "ShmSize": 67108864,
      "Runtime": "nvidia",
      "Isolation": "",
      "CpuShares": 0,
      "Memory": 0,
      "NanoCpus": 0,
      "CgroupParent": "",
      "BlkioWeight": 0,
      "BlkioWeightDevice": null,
      "BlkioDeviceReadBps": null,
      "BlkioDeviceWriteBps": null,
      "BlkioDeviceReadIOps": null,
      "BlkioDeviceWriteIOps": null,
      "CpuPeriod": 0,
      "CpuQuota": 0,
      "CpuRealtimePeriod": 0,
      "CpuRealtimeRuntime": 0,
      "CpusetCpus": "",
      "CpusetMems": "",
      "Devices": null,
      "DeviceCgroupRules": null,
      "DeviceRequests": null,
      "MemoryReservation": 0,
      "MemorySwap": 0,
      "MemorySwappiness": null,
      "OomKillDisable": null,
      "PidsLimit": null,
      "Ulimits": null,
      "CpuCount": 0,
      "CpuPercent": 0,
      "IOMaximumIOps": 0,
      "IOMaximumBandwidth": 0,
      "Mounts": [
        {
          "Type": "volume",
          "Source": "fa84c8b6a88bb5062317f3a5447dd979744c5f7b4f7d2a644130b6123fad6973",
          "Target": "/data"
        }
      ],
      "MaskedPaths": [
        "/proc/acpi",
        "/proc/asound",
        "/proc/interrupts",
        "/proc/kcore",
        "/proc/keys",
        "/proc/latency_stats",
        "/proc/sched_debug",
        "/proc/scsi",
        "/proc/timer_list",
        "/proc/timer_stats",
        "/sys/devices/virtual/powercap",
        "/sys/firmware"
      ],
      "ReadonlyPaths": [
        "/proc/bus",
        "/proc/fs",
        "/proc/irq",
        "/proc/sys",
        "/proc/sysrq-trigger"
      ]
    },
    "GraphDriver": {
      "Data": {
        "ID": "3e727781588e83ef9ece337199da576ce72739156bd621c70e44eaf378eec0ee",
        "LowerDir": "/var/lib/docker/overlay2/ae1847359660e21f664ea2d03f4be6ab45a9acad293301dac211d70f198698a2-init/diff:/var/lib/docker/overlay2/7cbb2826c1c497612a8a4f135feb4fd8ff9b1be97490ce83fd893d305aed13c5/diff:/var/lib/docker/overlay2/d915aed6785ef0690612070a3379cdba738da3d29f6bfb3ba996cb5fc46ad814/diff:/var/lib/docker/overlay2/6aa5c26563064a6318c920c4851307dbb0dc600cbcf9da163c482db16571e8be/diff:/var/lib/docker/overlay2/e79721c3fb3b5e756a93ceeb65fd0bd2e2ebbc4390cae8a9d6c588aced467bcc/diff:/var/lib/docker/overlay2/2692b93eb54f386dde5600a26b3812821bf347aabb0b1126958a30436e548159/diff:/var/lib/docker/overlay2/aa5916bf5dcbc10130c1b8cd1b2048a5c6ef21a7b5239999a59e5b819e29d97d/diff:/var/lib/docker/overlay2/03278716f67d105a85c3a17ce43126f3db878af3e84680168da8148b92a223b6/diff",
        "MergedDir": "/var/lib/docker/overlay2/ae1847359660e21f664ea2d03f4be6ab45a9acad293301dac211d70f198698a2/merged",
        "UpperDir": "/var/lib/docker/overlay2/ae1847359660e21f664ea2d03f4be6ab45a9acad293301dac211d70f198698a2/diff",
        "WorkDir": "/var/lib/docker/overlay2/ae1847359660e21f664ea2d03f4be6ab45a9acad293301dac211d70f198698a2/work"
      },
      "Name": "overlay2"
    },
    "Mounts": [
      {
        "Type": "bind",
        "Source": "/workspace/contextra-runtime-config/metadata-active/redis.conf",
        "Destination": "/usr/local/etc/redis/redis.conf",
        "Mode": "ro",
        "RW": false,
        "Propagation": "rprivate"
      },
      {
        "Type": "bind",
        "Source": "/workspace/contextra-runtime-config/metadata-active/users.acl",
        "Destination": "/usr/local/etc/redis/users.acl",
        "Mode": "ro",
        "RW": false,
        "Propagation": "rprivate"
      },
      {
        "Type": "volume",
        "Name": "fa84c8b6a88bb5062317f3a5447dd979744c5f7b4f7d2a644130b6123fad6973",
        "Source": "/var/lib/docker/volumes/fa84c8b6a88bb5062317f3a5447dd979744c5f7b4f7d2a644130b6123fad6973/_data",
        "Destination": "/data",
        "Driver": "local",
        "Mode": "z",
        "RW": true,
        "Propagation": ""
      }
    ],
    "Config": {
      "Hostname": "3e727781588e",
      "Domainname": "",
      "User": "",
      "AttachStdin": false,
      "AttachStdout": true,
      "AttachStderr": true,
      "ExposedPorts": {
        "6379/tcp": {}
      },
      "Tty": false,
      "OpenStdin": false,
      "StdinOnce": false,
      "Env": [
        "REDIS_HEALTH_PASSWORD=e3cc8e2fa7a8457c326181c720511695975c45f8ed4bfcc7",
        "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
        "REDIS_VERSION=7.4.11"
      ],
      "Cmd": [
        "redis-server",
        "/usr/local/etc/redis/redis.conf",
        "--maxmemory",
        "2gb",
        "--maxmemory-policy",
        "allkeys-lru",
        "--save",
        ""
      ],
      "Healthcheck": {
        "Test": [
          "CMD-SHELL",
          "REDISCLI_AUTH=\"$REDIS_HEALTH_PASSWORD\" redis-cli --user contextra_health ping"
        ],
        "Interval": 10000000000,
        "Timeout": 5000000000,
        "StartPeriod": 10000000000,
        "Retries": 5
      },
      "Image": "sha256:5509c0097c6064aa8a3b1df58f1d950e67090fffa6678ae8f3f1dc2385f12deb",
      "Volumes": {
        "/data": {}
      },
      "WorkingDir": "/data",
      "Entrypoint": [
        "docker-entrypoint.sh"
      ],
      "Labels": {
        "com.docker.compose.config-hash": "09126caa01f947e303ad9f9842e7e70e1478621504443c087be02d7fc7827b53",
        "com.docker.compose.container-number": "1",
        "com.docker.compose.depends_on": "",
        "com.docker.compose.image": "sha256:5509c0097c6064aa8a3b1df58f1d950e67090fffa6678ae8f3f1dc2385f12deb",
        "com.docker.compose.oneoff": "False",
        "com.docker.compose.project": "contextra",
        "com.docker.compose.project.config_files": "/workspace/contextra-analytics-runtime-lifecycle-refactor/docker-compose.yml,/workspace/contextra-runtime-config/metadata-active/compose.yaml,/tmp/codex/ltb1021/2026-09-11_contextra-metadata-active_r01/diagnostic-compose.yaml",
        "com.docker.compose.project.environment_file": "/workspace/contextra-runtime-config/runtime.env",
        "com.docker.compose.project.working_dir": "/workspace/contextra-analytics-runtime-lifecycle-refactor",
        "com.docker.compose.replace": "redis-1",
        "com.docker.compose.service": "redis",
        "com.docker.compose.version": "5.0.0"
      }
    },
    "NetworkSettings": {
      "SandboxID": "703380e865f057267ad7db5fe3b4bdcd4fdf01aa6b1fc7670a3704cbe7cedaf8",
      "SandboxKey": "/var/run/docker/netns/703380e865f0",
      "Ports": {
        "6379/tcp": [
          {
            "HostIp": "192.168.50.221",
            "HostPort": "16379"
          }
        ]
      },
      "Networks": {
        "contextra_default": {
          "IPAMConfig": null,
          "Links": null,
          "Aliases": [
            "contextra-redis-1",
            "redis"
          ],
          "DriverOpts": null,
          "GwPriority": 0,
          "NetworkID": "730306af5b846c2fd4c359d4db39052150af2e3871de7051be5b6ba5d85e634d",
          "EndpointID": "ea1cf2867fb711f6b4ebbec18a2d58d7aec79acaf3f641a9a416003caf3aa198",
          "Gateway": "172.20.0.1",
          "IPAddress": "172.20.0.3",
          "MacAddress": "82:55:28:7f:ea:51",
          "IPPrefixLen": 16,
          "IPv6Gateway": "",
          "GlobalIPv6Address": "",
          "GlobalIPv6PrefixLen": 0,
          "DNSNames": [
            "contextra-redis-1",
            "redis",
            "3e727781588e"
          ]
        }
      }
    }
  },
  "others": {
    "/contextra-analytics-1": {
      "id": "fe7ce4dd9d4f9c1cf849b82737609540e6b48489f050a2ff21488aeb3c659aae",
      "started": "2026-09-15T00:45:28.817700954Z",
      "running": true
    },
    "/contextra-rtsp-00a79300-b7f0e5d10b2d": {
      "id": "868cb06e7d9bdefb68aa4fdaad3b041534a09a44f82de78cbeed41d40a92a46c",
      "started": "2026-09-15T00:43:07.954809182Z",
      "running": true
    },
    "/ai-worker": {
      "id": "9719ad2863f846147529501e25cd20e589f35a62276ef718c051a1a4df51933b",
      "started": "2026-09-14T01:58:38.776654784Z",
      "running": true
    },
    "/contextra-postgresql-1": {
      "id": "b831744d444ddc55a93f62193fe64d288c53a9f52ce2d9ad7bc768e065902ab1",
      "started": "2026-09-01T03:58:00.166283071Z",
      "running": true
    },
    "/steam-glotech-relay": {
      "id": "aa9a652522cdbee4b4cfa2c1440f9133112f4f55762b943a1d3e74fc376cd99b",
      "started": "2026-08-31T03:39:48.48855622Z",
      "running": true
    },
    "/api-endpoint": {
      "id": "8d03f4999a81524e54b9798b091cc9404923436c8c4184369a47792850b273c5",
      "started": "2026-09-14T01:58:33.95239889Z",
      "running": true
    },
    "/2a2658c07645_backend": {
      "id": "55450fe1244ee750f3fb1e63f39e02a44f65c7aae17814fe0a47f27eda33f4c6",
      "started": "2026-08-31T03:34:54.754347417Z",
      "running": true
    },
    "/7baf123823e7_daphne": {
      "id": "ca6b69300bfb6f9891ac751fc8b787f757d69813c41fd268d742483800f2db06",
      "started": "2026-08-31T03:34:54.753248556Z",
      "running": true
    },
    "/nginx": {
      "id": "e46d7c9f028215426340941a75ce137181bac7f2e86ddb570b1b6991ce773ab4",
      "started": "2026-08-31T03:34:54.747804652Z",
      "running": true
    },
    "/mysql": {
      "id": "784ffb94e5ea1d2afce34be016b533ebc63015b2726929c93a82fb274a18eab5",
      "started": "2026-08-31T03:34:54.746942273Z",
      "running": true
    },
    "/redis": {
      "id": "ff96587e960ce9ee819ba6316ad1e9374053696b748873a77c3fc8f771365a79",
      "started": "2026-08-31T03:34:54.749618302Z",
      "running": true
    },
    "/fileserver": {
      "id": "4a82a47e2840ab498df5e69cfeaea2bd99753610e19329922c7bbc9c981d9510",
      "started": "2026-09-14T01:58:30.651093162Z",
      "running": true
    },
    "/rtsp-repeter": {
      "id": "75acd4cbd5dbf9c7387cd9dfc456c0f5ca42fc125a2cbe41aea66c5948005f47",
      "started": "2026-09-14T01:58:40.443417477Z",
      "running": true
    },
    "/triton-server": {
      "id": "c39692e53c5d64cfcacfc431086f72c69fc066af5c113cf9d417723d7960953e",
      "started": "2026-09-14T01:58:38.649029437Z",
      "running": true
    },
    "/ssims-flower": {
      "id": "4195f96eea14d13c85f3ba442099a89ce4426cc5ce151dd64cf6659b12516369",
      "started": "2026-09-14T01:58:30.880285148Z",
      "running": true
    },
    "/itone-redis": {
      "id": "b4971b84ddef360159e77749a77d16146d344ad87dc63aab9df03847dd93d56a",
      "started": "2026-09-14T01:58:30.672562761Z",
      "running": true
    }
  },
  "streams": [
    {
      "stream_id": "CCV-01577",
      "site_id": "새만금",
      "source_type": "rtsp",
      "state": "stopped",
      "desired_state": "stopped",
      "observed_state": "stopped",
      "run_generation": 0,
      "run_id": null,
      "roles": {},
      "last_error": null,
      "cleanup_error": null,
      "cleanup_pending": false,
      "restart_pending": false,
      "last_cleanup": null,
      "started_at": null,
      "uptime_s": null,
      "inference_profile": null,
      "metadata_path": {
        "state": "NOT_CONNECTED"
      },
      "scenarios": {
        "active": [],
        "disabled": []
      }
    },
    {
      "stream_id": "rtsp-test-01",
      "site_id": null,
      "source_type": "rtsp",
      "state": "stopped",
      "desired_state": "stopped",
      "observed_state": "stopped",
      "run_generation": 1,
      "run_id": "70dfe7e2-5a7b-4e8b-bcdd-a267a8b1c5d7",
      "roles": {
        "det": {
          "state": "stopped",
          "required": true,
          "initialized": true,
          "last_frame_at": 1789433210.5013633,
          "source_stage": "native_completed",
          "source_stage_at": 1789433210.5620604,
          "source_stages": {
            "pipeline_state_changed": 1789433192.0631695,
            "decoded_frame_received": 1789433210.529471,
            "preprocess_output": 1789433210.530236,
            "infer_output": 1789433210.545615,
            "consume_entered": 1789433210.5473106,
            "native_completed": 1789433210.5620604,
            "inference_frame_completed": 1789433210.5013127
          },
          "stage_counts": {
            "pipeline_state_changed": 88,
            "decoded_frame_received": 193,
            "preprocess_output": 193,
            "infer_output": 193,
            "consume_entered": 193,
            "native_completed": 193,
            "inference_frame_completed": 192
          },
          "last_error": null,
          "stage_first_at": {
            "pipeline_state_changed": 1789433190.4106016,
            "decoded_frame_received": 1789433191.9568613,
            "preprocess_output": 1789433191.9999459,
            "infer_output": 1789433192.043406,
            "consume_entered": 1789433192.0486093,
            "native_completed": 1789433192.0628612,
            "inference_frame_completed": 1789433192.1732738
          }
        }
      },
      "last_error": null,
      "cleanup_error": null,
      "cleanup_pending": false,
      "restart_pending": false,
      "last_cleanup": {
        "generation": 1,
        "completed": true,
        "finished_monotonic_ns": 1285931358266139,
        "elapsed_s": 0.04642148804850876
      },
      "started_at": null,
      "uptime_s": null,
      "inference_profile": {
        "roles": [
          "det"
        ],
        "requested_models": {
          "det": "RFDETRMedium"
        },
        "active_models": {
          "det": "RFDETRMedium"
        },
        "degraded_roles": [],
        "score_threshold": 0.5,
        "class_min_confidence": {}
      },
      "metadata_path": {
        "state": "NOT_CONNECTED"
      },
      "scenarios": {
        "active": [],
        "disabled": []
      }
    }
  ],
  "keys": [
    {
      "key": "contextra:metadata:v1:camera:d57cc517767b64098669a8ffc9845f2bae132fb3b0f3a0a1298371fd11f01cc0:status",
      "type": "string",
      "ttl_ms": 9497,
      "sampled_at_ms": 1789437837136,
      "value": "{\"cameraId\": \"f2068aa8-f89f-4670-8679-d86468bd081d\", \"runId\": null, \"runGeneration\": 0, \"state\": \"STOPPED\", \"lastSeq\": -1, \"publisher\": {\"sent\": 3009, \"sent_status\": 2817, \"sent_frames\": 192}, \"streamKey\": \"contextra:metadata:v1:camera:d57cc517767b64098669a8ffc9845f2bae132fb3b0f3a0a1298371fd11f01cc0:frames\"}"
    },
    {
      "key": "contextra:metadata:v1:camera:d98f4e86d523f201a60f5f03c7a93f284a355b57e3a57ecd305727b2df38a5d2:status",
      "type": "string",
      "ttl_ms": 9466,
      "sampled_at_ms": 1789437837159,
      "value": "{\"cameraId\": \"rtsp-test-source-01\", \"runId\": \"70dfe7e2-5a7b-4e8b-bcdd-a267a8b1c5d7\", \"runGeneration\": 1, \"state\": \"STOPPED\", \"lastSeq\": 191, \"publisher\": {\"sent\": 3010, \"sent_status\": 2818, \"sent_frames\": 192}, \"streamKey\": \"contextra:metadata:v1:camera:d98f4e86d523f201a60f5f03c7a93f284a355b57e3a57ecd305727b2df38a5d2:frames\"}"
    },
    {
      "key": "contextra:metadata:v1:channels",
      "type": "hash",
      "ttl_ms": 9443,
      "sampled_at_ms": 1789437837182,
      "value": {
        "d98f4e86d523f201a60f5f03c7a93f284a355b57e3a57ecd305727b2df38a5d2": "contextra:metadata:v1:camera:d98f4e86d523f201a60f5f03c7a93f284a355b57e3a57ecd305727b2df38a5d2:frames",
        "d57cc517767b64098669a8ffc9845f2bae132fb3b0f3a0a1298371fd11f01cc0": "contextra:metadata:v1:camera:d57cc517767b64098669a8ffc9845f2bae132fb3b0f3a0a1298371fd11f01cc0:frames"
      }
    }
  ],
  "reader": {
    "flags": [
      "on",
      "sanitize-payload"
    ],
    "passwords": [
      "87a17677e81505e2c369aa50d9ad86bd5dfd694b7d1487998498b1108904d3e2"
    ],
    "commands": "-@all +ping +get +hgetall +hget +xread +xrange +xrevrange +xlen +exists +ttl +type +client|setinfo +scan +hscan +xinfo|stream",
    "keys": "~contextra:metadata:v1:*",
    "channels": "",
    "selectors": []
  },
  "config": {
    "appendonly": "no",
    "maxmemory-policy": "allkeys-lru",
    "dbfilename": "dump.rdb",
    "save": "",
    "dir": "/data",
    "maxmemory": "8589934592"
  },
  "hashes": {
    "acl": "fb15ebd8e4f9a002624d8fed7d6bf21c7026da3026cc5423b766ee726463cb11",
    "config": "e5a2fecb728c552b6fa8ea03f95dda741ec559847cc244871f9b489f15970be5",
    "compose": "75709847c3df6ee3e4363c0965b2531ca9a7c99e589bd189aa008a9319b810ea",
    "env": "47468ca21d1423e91a231c5a99c8ff068f3c9cfb0a739f67fa56933489f916e8",
    "access": "abd9ad157df4f6189dc8b85ce030455ad96163e4352ffd2850227928f82a32a3",
    "firewall": "8bce253da8552d5a3e6ead25c058aaab8da04e333fc3570585407d0a95966c66"
  },
  "compose_redis": {
    "command": [
      "redis-server",
      "/usr/local/etc/redis/redis.conf",
      "--maxmemory",
      "8gb",
      "--maxmemory-policy",
      "allkeys-lru",
      "--save",
      ""
    ],
    "entrypoint": null,
    "environment": {
      "REDIS_HEALTH_PASSWORD": "e3cc8e2fa7a8457c326181c720511695975c45f8ed4bfcc7"
    },
    "healthcheck": {
      "test": [
        "CMD-SHELL",
        "REDISCLI_AUTH=\"$$REDIS_HEALTH_PASSWORD\" redis-cli --user contextra_health ping"
      ],
      "timeout": "5s",
      "interval": "10s",
      "retries": 5,
      "start_period": "10s"
    },
    "image": "sha256:5509c0097c6064aa8a3b1df58f1d950e67090fffa6678ae8f3f1dc2385f12deb",
    "networks": {
      "default": null
    },
    "ports": [
      {
        "mode": "ingress",
        "host_ip": "192.168.50.221",
        "target": 6379,
        "published": "16379",
        "protocol": "tcp"
      }
    ],
    "restart": "unless-stopped",
    "volumes": [
      {
        "type": "bind",
        "source": "/workspace/contextra-runtime-config/metadata-active/redis.conf",
        "target": "/usr/local/etc/redis/redis.conf",
        "read_only": true
      },
      {
        "type": "bind",
        "source": "/workspace/contextra-runtime-config/metadata-active/users.acl",
        "target": "/usr/local/etc/redis/users.acl",
        "read_only": true
      }
    ]
  },
  "rollback": "Restore exact ACL/config backups on CAS; same image/data volume; restore prior restart policy; no FLUSH. Shutdown SAVE failure leaves old service running. Recreate failure: inspect once, restart old if present or recreate from fixed active config using retained RDB; do not replay mutation blindly."
}