# FEATURE REQUEST: Data browser/inspector for querying, filtering, visualizing data in canisters

**URL:** <https://forum.dfinity.org/t/feature-request-data-browser-inspector-for-querying-filtering-visualizing-data-in-canisters/17837>\
**Category:** Developers\
**Created:** [January 7, 2023, 7:21am UTC](https://forum.dfinity.org/t/feature-request-data-browser-inspector-for-querying-filtering-visualizing-data-in-canisters/17837 "2023-01-07T07:21:05Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![saikatdas0790](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/saikatdas0790/32/17147_2.png) [@saikatdas0790](https://forum.dfinity.org/u/saikatdas0790)\
**Post date:** [January 7, 2023, 7:21am UTC](https://forum.dfinity.org/t/feature-request-data-browser-inspector-for-querying-filtering-visualizing-data-in-canisters/17837/1 "2023-01-07T07:21:05Z")

</div>

Right now @anon74414410 is exploring GUI utilities that can complement the dfx CLI and exploring possible use cases.

This request is in line with that endeavor.

The ask here is some sort of visual data browser/inspector that lets the controller of a canister look at, in detail, the current state of a canister. The visual browser would be something along the lines of what [MongoDB Compass](https://www.mongodb.com/products/compass) is to MongoDB or what [pgAdmin](https://www.pgadmin.org/) is to PostgreSQL.

Once the basic mechanism of accessing and editing WASM/stable memory is laid out, the tool could eventually become a full fledged CRUD GUI for canisters on the IC

Thoughts?

---

<div class="post-metadata">

**Author:** ![anon74414410](https://avatars.discourse-cdn.com/v4/letter/a/85f322/32.png) [@anon74414410](https://forum.dfinity.org/u/anon74414410)\
**Post date:** [January 9, 2023, 6:02pm UTC](https://forum.dfinity.org/t/feature-request-data-browser-inspector-for-querying-filtering-visualizing-data-in-canisters/17837/2 "2023-01-09T18:02:52Z")

</div>

There are basically two sides to this issue - how the data is structured and how it is represented. Some types of queries can be visualized nicely, but as long as literally anything can be returned from a response, it’s hard to build anything more than a slightly more polished Candid UI

---

<div class="post-metadata">

**Author:** ![skilesare](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/skilesare/32/5609_2.png) [@skilesare](https://forum.dfinity.org/u/skilesare)\
**Post date:** [January 9, 2023, 6:25pm UTC](https://forum.dfinity.org/t/feature-request-data-browser-inspector-for-querying-filtering-visualizing-data-in-canisters/17837/3 "2023-01-09T18:25:01Z")

</div>

We have a couple bespoke approaches to this for prptl.os that is fairly specific to the Origyn NFT:

Data browser for an NFT: [http://prptl.io/-/com.yumi.suzanne-walking/-/sw-1/-/data](http://prptl.io/-/com.yumi.suzanne-walking/-/sw-1/-/data)  
Library browser for an NFT: [https://prptl.io/-/com.yumi.suzanne-walking/-/sw-1/-/library](https://prptl.io/-/com.yumi.suzanne-walking/-/sw-1/-/library)

These are works in progress, but maybe they point toward something that more generic.

---

<div class="post-metadata">

**Author:** ![saikatdas0790](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/saikatdas0790/32/17147_2.png) [@saikatdas0790](https://forum.dfinity.org/u/saikatdas0790)\
**Post date:** [January 10, 2023, 5:17am UTC](https://forum.dfinity.org/t/feature-request-data-browser-inspector-for-querying-filtering-visualizing-data-in-canisters/17837/4 "2023-01-10T05:17:10Z")

</div>

Maybe the runtime team can help build additional harnesses/API that help expose internal structures to canister controllers?

My point is it’s a problem solving which would open up a lot of additional use cases that are blocked. Things like:

- a CRUD GUI for canisters
- local exports/backups
- cloning/migrations
- realtime analytics
- etc., etc.

---

<div class="post-metadata">

**Author:** ![paulyoung](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/paulyoung/32/5251_2.png) [@paulyoung](https://forum.dfinity.org/u/paulyoung)\
**Post date:** [January 11, 2023, 6:05am UTC](https://forum.dfinity.org/t/feature-request-data-browser-inspector-for-querying-filtering-visualizing-data-in-canisters/17837/5 "2023-01-11T06:05:02Z")

</div>

Are you basically requesting a fancier version of this?

`dfx canister call … | idl2json | json2table`

---

<div class="post-metadata">

**Author:** ![saikatdas0790](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/saikatdas0790/32/17147_2.png) [@saikatdas0790](https://forum.dfinity.org/u/saikatdas0790)\
**Post date:** [January 11, 2023, 6:07am UTC](https://forum.dfinity.org/t/feature-request-data-browser-inspector-for-querying-filtering-visualizing-data-in-canisters/17837/6 "2023-01-11T06:07:49Z")

</div>

This would be a start. But this would just let you get results for API’s that are only exposed via Candid.

What I’m asking for is unlimited access to the entire memory queryable, editable and exportable to the controller of a canister via a friendly GUI

---

<div class="post-metadata">

**Author:** ![skilesare](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/skilesare/32/5609_2.png) [@skilesare](https://forum.dfinity.org/u/skilesare)\
**Post date:** [January 11, 2023, 1:34pm UTC](https://forum.dfinity.org/t/feature-request-data-browser-inspector-for-querying-filtering-visualizing-data-in-canisters/17837/7 "2023-01-11T13:34:50Z")

</div>

Is idl2json an actual thing?

---

<div class="post-metadata">

**Author:** ![Vivienne](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/vivienne/32/29170_2.png) [@Vivienne](https://forum.dfinity.org/u/Vivienne)\
**Post date:** [January 11, 2023, 4:14pm UTC](https://forum.dfinity.org/t/feature-request-data-browser-inspector-for-querying-filtering-visualizing-data-in-canisters/17837/8 "2023-01-11T16:14:37Z")

</div>

Yes, it’s in this repo: [GitHub - dfinity/idl2json](https://github.com/dfinity/idl2json)
