Query Editor

Execute FLIN queries with persistent history. Chain .where(), .order_by(), .limit() — see results instantly.

Syntax Editor

Write FLIN queries in a dedicated editor with syntax highlighting and instant execution.

Persistent History

Every query you run is saved to IndexedDB. Browse, re-run, or delete past queries across sessions.

Query Chaining

Chain .where(), .order_by(), .limit(), and .offset() in a single expression.

Aggregations

Run sum, avg, min, max, and count directly on your entities.

Example Queries

The query editor speaks the same language as your app code. No SQL, no ORM config — just FLIN.

Query Editor
// Basic queries
Entity.all
Entity.count
Entity.first
Entity.last
Entity.find(42)

// Filtering with conditions
User.where(active == true)
User.where(role == "admin" && active == true)

// Chaining: filter → sort → paginate
Product.where(price > 50).order_by("price").limit(10)

// Aggregations
Order.sum(total)
Order.avg(total)
Product.min(price)
Product.max(price)

Capabilities

  • Query chains: .where(), .order_by(), .limit(), .offset()
  • Aggregation functions: sum, avg, min, max, count
  • Direct lookups with Entity.find(id) and Entity.get(id)
  • Soft-delete awareness — deleted records are excluded by default
  • Compound conditions with && and || operators
  • Persistent query history stored in IndexedDB across browser sessions

API Endpoint

MethodEndpointDescription
POST/_flin/api/queryExecute a FLIN query and return results as JSON

Why This Matters

Other Admin Panels

  • Write raw SQL or use a separate query tool
  • ORM syntax differs from your app code
  • No built-in query history
  • Separate setup and configuration required

FLIN Query Editor

  • Same query syntax as your app code
  • Chaining, aggregations, and filters built in
  • Persistent history saved to IndexedDB
  • Zero configuration — available at /_flin