Skip to content

Latest commit

 

History

History
100 lines (75 loc) · 5.08 KB

File metadata and controls

100 lines (75 loc) · 5.08 KB
Logo

Flowers - Real-time Data Viewer

Version


About

A real-time data viewer for any JSON API, available at flowers.sylvain.sh.

Connect any JSON endpoint and watch your data stream in. Auto-detection, advanced filters, adapts to your schema.

Features

  • Real-time — Automatic polling with configurable interval. Your data updates continuously.
  • Authenticated APIs — Add custom headers per endpoint to reach an API behind a token or an API key.
  • Auto-detection — Automatic recognition of field types: status, method, URL, timestamp, duration...
  • Field mapping — When a field is not recognized, assign each type to the key of your choice.
  • Advanced filters — Filter by status codes, HTTP methods, or free text. Combine filters as you wish.
  • Presets — Save your favorite configurations and switch between them in one click.
  • Comparison — Select two entries and visualize differences side by side.
  • Long sessions — Cap how many entries stay in memory, and let failing endpoints be retried with an increasing delay instead of every interval.
  • Import / Export — Export your data and settings, or import them on another browser.

Usage

  1. Connect — Enter the URL of any JSON API endpoint.
  2. Observe — Flowers polls the endpoint and streams data in real time.
  3. Customize — Filter, sort, and adjust the layout to suit your needs.

JSON format

Flowers works with any JSON response. It auto-detects field types based on common naming conventions. Your API can return an array of objects or a single object.

[
    {
        "status": 200,
        "method": "GET",
        "url": "/api/users",
        "timestamp": 1710000000000,
        "duration": "45ms",
        "source": "nginx"
    }
]

Recognized field types by keyword:

Field Keywords
Timestamp timestamp, time, date, created, createdAt, created_at, updated, updatedAt, updated_at
Status status, statusCode, status_code, code, httpStatus, http_status
Method method, httpMethod, http_method, verb, action
URL url, path, endpoint, route, uri, request, href
Category type, category, kind, level, severity, tag, label
Source source, origin, platform, agent, client, user_agent, userAgent, from, ip
Duration duration, elapsed, latency, responseTime, response_time, ms, took
Message message, msg, text, description, body, content, error, reason, title, name

Local storage

Flowers stores all your data locally in your browser. Nothing is sent to any server.

  • Endpoints — Your saved API endpoints with their name, URL, headers, and optional remembered state.
  • Presets — Custom filter and layout presets you create to quickly switch views.
  • Filters — Your active status codes, HTTP methods, and search query.
  • Settings — Polling interval, entry cap, auto-scroll, notifications, and sound alerts preferences.
  • Pinned entries — Entries you pinned per endpoint, so they stay visible at the top.
  • Field mapping — Per-endpoint overrides for the fields the auto-detection did not get right.

You can export and import all of this data via the transfer feature, with one exception: endpoint headers may hold secrets, so they stay on this browser and are never included in a transfer key.

Configuration

By default, Flowers runs as a web app with a landing page. To use it in standalone mode (skip the landing page and load a view directly), create an endpoints.json file at the root of the project:

{
    "title": "Dashboard",
    "endpoints": [
        { "name": "API Logs", "url": "https://api.example.com/logs" },
        { "name": "Changelog", "url": "https://example.com/changelog.json" }
    ],
    "interval": 5000
}
Field Type Default Description
title string "Dashboard" Title displayed in the header
endpoints array [] List of { name, url } objects for the endpoint selector
interval number Polling interval in milliseconds

Copy the template above into endpoints.json at the root of the project and edit it to match your setup.