   (let [full-path (path->full-path path)]
   (map
    #(hash-map :name (subs (get % :name) (inc (count base-path)))
-              :description (get (json/read-str (get % :value)) "description"))
+              :description (get (read-json-str (get % :value)) "description"))
    (filter
     app?
     (.subtree storage full-path)))))

        item (.get-item storage (path->full-path app))
        old-json (if (empty? item)
                   {}
                   (walk/keywordize-keys (json/read-str (:value item))))
        json (json/write-str
              {:type "application"
               :description description})]

  (log/info (str "Trying to delete " pathname " " envt))
  (let [full-path (path->full-path pathname)
        json (:value (.get-item storage full-path))
        token (read-json-str json)
        values (get token "values")
        new-values (into {} (remove #(= envt (first %)) values))
        new-token {:description (get token "description")
