Database
If your app registers the v4 InMemoryDBProvider, the Database view becomes a read-only data browser.

- List every entity table with live record counts.
- Inspect field schemas (keys, unique constraints, indexes, auto-generate hints) and relations (
hasOne,hasMany,belongsTo,manyToMany). - Page through rows (50 per page) without writing ad-hoc scripts.
The left rail lists tables; selecting one opens Fields (schema metadata) and Rows (paginated data) on the right. Summary cards at the top show table count, total records, and when the snapshot was captured.
Empty state
When no in-memory provider is registered, Studio shows a friendly empty state with the exact wiring you need:

See In-Memory DB for the full provider API. Register it in your module bindings:
import { CreateModule, InMemoryDBProvider } from "@expressots/core";
CreateModule([AppController, UsersController, UsersRepository], (bind) => {
bind(InMemoryDBProvider)
.toDynamicValue(() => new InMemoryDBProvider())
.inSingletonScope();
});
The agent introspects the provider at runtime, so counts and rows update as your app creates data during development.