Docs

Guide · 4 min read

Connecting your data

Hanomina dashboards are built from your data, not ours. The first thing to do is connect a data source — anything from a CSV upload to a production Snowflake warehouse.

What you can connect

Twenty-one connector types, organized into four families. None of them are gated by tier — every connector is on the free plan.

Files & spreadsheets

  • CSV upload
  • Excel (.xlsx) upload
  • Google Sheets

SQL databases

  • Postgres
  • MySQL
  • SQL Server / Azure SQL
  • Oracle
  • SQLite

Data warehouses

  • Snowflake
  • BigQuery
  • Redshift
  • Databricks
  • MotherDuck
  • ClickHouse
  • Athena
  • DuckDB file (hosted .duckdb)

NoSQL & APIs

  • MongoDB
  • Cosmos DB
  • DynamoDB
  • S3 / Parquet
  • REST API

The five-minute Postgres example

For a SQL database the process is the same regardless of backend. Using Postgres as the canonical case:

  1. In your DB, create a read-only role:
    CREATE USER hanomina_ro WITH PASSWORD '...';
    GRANT CONNECT ON DATABASE mydb TO hanomina_ro;
    GRANT USAGE ON SCHEMA public TO hanomina_ro;
    GRANT SELECT ON ALL TABLES IN SCHEMA public TO hanomina_ro;
  2. In Hanomina, Data Sources → New → Postgres. Fill in host, port (default 5432), database, user, password, and toggle SSL on (required for any cloud- hosted Postgres).
  3. Click Connect. Hanomina runs a connection test, introspects the schema, and saves the source.
  4. Optionally fill the Notes for the AI field with anything the model should know — unit conventions, business definitions, data caveats. See below.
  5. Hit the Create dashboard button on the source page to scope a new dashboard to it.

Notes for the AI

Every data source has an optional free-text description. Whatever you write there gets included verbatim in the AI's prompt every time it builds or edits a dashboard on this source. Use it for context the model can't infer from column types alone:

  • amount is stored in cents, not dollars
  • An "active customer" has placed an order in the last 90 days
  • Orders prior to 2024 used a different customer_segment scheme — ignore segment for historical analysis

The AI will not follow URLs in this field. Paste the relevant text directly rather than linking to an external doc.

When something breaks

Two buttons on every data source detail page handle most issues:

  • Test connection runs a lightweight auth probe (SELECT 1 or equivalent) and updates the status pill — useful after you've rotated credentials or fixed a firewall rule on the other end.
  • Re-introspect re-reads the schema. Run this after a migration on your end, or if the AI starts referencing tables that no longer exist.

If the source status pill turns amber (missing tables), the role can connect but isn't able to read any tables — usually a missing GRANT SELECT. Red (errored) means the connection itself failed; check the test-connection error message.

Firewalls

Hanomina connects to your database from a Vercel serverless function, not from your browser. If your database has a closed firewall (RDS in a private VPC, Azure SQL with default rules, on-prem behind a VPN), you'll need to either allow Hanomina's egress IPs or open the firewall for the duration of beta. For cloud-managed Postgres (Neon, Supabase, Heroku) and cloud-native warehouses (BigQuery, Snowflake, MotherDuck) this isn't an issue — they accept connections from anywhere and rely on credentials as the security boundary.