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

Right now @kpeacock 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 is to MongoDB or what pgAdmin 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?

2 Likes

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

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
Library browser for an NFT: https://prptl.io/-/com.yumi.suzanne-walking/-/sw-1/-/library

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

1 Like

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.

Are you basically requesting a fancier version of this?

dfx canister call … | idl2json | json2table

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

Is idl2json an actual thing?

Yes, it’s in this repo: GitHub - dfinity/idl2json

1 Like