Data Management

Browse, create, edit, and delete records with pagination, sorting, and filtering.

GORM Studio provides a full-featured data management interface for browsing, creating, editing, and deleting records across all your tables. Everything is available through both the web UI and the REST API.

Browsing Records

The data grid displays paginated rows for any table. The default page size is 50 rows, with a maximum of 500 rows per page.

GET /studio/api/tables/users/rows?page=1&page_size=25

Sorting

Click column headers in the web UI to sort, or use query parameters:

GET /studio/api/tables/users/rows?sort_by=name&sort_order=asc

The sort_order parameter accepts asc or desc.

Searching

Full-text search across all text and varchar columns:

GET /studio/api/tables/users/rows?search=john

This searches every text-compatible column in the table for the given term.

Filtering

Per-column filtering with support for LIKE matching using %:

GET /studio/api/tables/users/rows?filter_email=%gmail%

You can combine multiple filters:

GET /studio/api/tables/users/rows?filter_name=John&filter_email=%gmail%

Creating Records

Send a POST request with a JSON body containing the field values:

# Create a new record
curl -X POST http://localhost:8080/studio/api/tables/users/rows \
  -H "Content-Type: application/json" \
  -d '{"name": "John", "email": "john@example.com"}'

Editing Records

Send a PUT request with the record ID and the fields to update:

# Update an existing record
curl -X PUT http://localhost:8080/studio/api/tables/users/rows/1 \
  -H "Content-Type: application/json" \
  -d '{"name": "John Doe"}'

Deleting Records

When deleting records through the web UI, GORM Studio shows a confirmation modal instead of the browser's native confirm() popup. The modal:

  • Displays a clear warning with the number of records to be deleted
  • States that the action cannot be undone
  • Provides Cancel and Delete buttons styled with the studio theme
  • Supports keyboard interaction (Escape to cancel)

Delete a single record by ID via the API:

# Delete a record
curl -X DELETE http://localhost:8080/studio/api/tables/users/rows/1

Bulk Delete

Select multiple rows using the checkboxes in the data grid, then click the Delete button. The confirmation modal will show the count of selected records.

Via the API, delete multiple records at once by posting an array of IDs:

# Bulk delete
curl -X POST http://localhost:8080/studio/api/tables/users/rows/bulk-delete \
  -H "Content-Type: application/json" \
  -d '{"ids": [1, 2, 3]}'

Composite Primary Keys

Tables with composite primary keys are fully supported. When referencing a record with a composite key, use comma-separated IDs in the URL:

PUT /studio/api/tables/order_items/rows/42,7
DELETE /studio/api/tables/order_items/rows/42,7

Query Parameter Summary

ParameterDescriptionExample
pagePage number (1-based)page=2
page_sizeRows per page (max 500)page_size=25
sort_byColumn to sort bysort_by=name
sort_orderSort directionsort_order=asc
searchFull-text search termsearch=john
filter_<column>Per-column filterfilter_email=%gmail%