LYHNIDOS.GEO Workspace
Map Studio
DatabasesChoose a database to begin

Your databases

Create a database, then add tables, import data or query it. Workflows are available when you need to prepare data.

MICRO-DATABASES ACTIVE
—
STORAGE FOOTPRINT SQLITE
—
QUERY P95 LATENCY MEASURED
—
CONFIGURED PROTOCOLS UNIVERSAL
—
DATABASE:
100%

No table selected

0 RECORDS
Showing 0 of 0 records
Page 1

Data library

Your tables, original source files and import history in one place. Upload and browse data without creating a workflow.

Choose a database to begin.

Sharing

Everything shared from this database, who can see it and where to use it. Stop sharing any item here; use Share on a table to share more.

Choose a database to begin.

Workspace

Loading this workspace.

Members

Owners and admins can invite, change roles and remove people. Members have read access to this workspace's databases.

API keys for this workspace

Keys reach this workspace's databases and nothing else. A key is shown once, when it is created.

Apps

Sign-in for the apps you build on this workspace, and which rows their users may read and write.

Operations

Current installation health, workflow failures and recovery status. Check issues here; configure notifications when you need to be reached away from the dashboard.

Checking administrator access…

Platform Super Admin Console

Manage tenants, allocated database page limits and physical file usage. Tenant allocations are shared across assigned databases; unassigned databases use the per-database default in Settings.

ACTIVE TENANTS ORGS
0orgs
MICRO-DATABASES TOTAL
0dbs
PLATFORM TABLES SCHEMAS
0tables
STORAGE USAGE SQLITE + WAL
0KB
DATA THROUGHPUT LIVE QPS
0.0QPS
CUMULATIVE TRAFFIC TOTAL
0reqs
SERVER UPTIME: 0s
TOTAL INGRESS: 0 B
TOTAL EGRESS: 0 B
CACHED POOLS: 0
REAL-TIME ENGINE ACTIVE
Loading organizations...
ORGANIZATION / TENANT TIER ASSIGNED DATABASES TABLES RECORDS ALLOCATED PAGES / PHYSICAL FILES STATUS ACTIONS

YOUR WORKSPACE

Checking workspace access…

Your data and available tools will appear after the connection is verified.

WORKFLOWS /

Put data on a mapNot saved to file

Portable configuration · share the file to reuse it · cloud saving is not available yet
About this workflow

This guided map recipe is separate from your canvas workflow. Copy its steps explicitly to continue there; previewing here does not publish a complete result.

Opening a file uses the selected database and never runs it automatically. Files include names, field mappings, notes and canvas positions. Preview rows and connection credentials are not exported; review your notes before sharing.

Configure your sourceDrag to pan · Scroll to zoom
Select a step to configure · select an output to inspect
SUGGESTED NEXT STEP

Choose a source table to begin.

Inspect dataNo preview yet

◫
See your data as you build

Choose a source and its coordinate fields, then preview the connected steps.

Interactive SQL Console

Query tables, perform spatial aggregations, and manipulate data with direct 4D SQL execution.

4D SQL QUERY EDITOR Ready
Execute a query to inspect results.

Ready to execute

Metering starts above this; leave blank to keep

Use lowercase letters, numbers, hyphens or underscores.

The database belongs to your current workspace.

Each unassigned database uses this allocated-page limit. Assigned databases share their tenant's allocation. Existing databases above their allocation cannot grow new pages. Physical WAL, backups and temporary files need separate capacity.

Leave blank for no limit. New backups are published only when all files in the backup directory fit this budget, including temporary snapshots and orphan files. Snapshot writes can temporarily exceed it. Job metadata, database WAL and other temporary storage need separate capacity. Existing backups are preserved.

Backup storage has not been measured.

Limit database, WAL, journal and temporary SQLite file growth together. Reads can still run when existing files exceed the limit, but growth is refused. Separate from storage allocation and backup budgets. External writers and snapshot files are outside this limit. Leave blank to disable.

Leave this much filesystem space available while creating a backup, restoring, or forking a database. Snapshots also reserve space for their copies. Other writers can consume space, so an operation may be refused or stopped safely if headroom falls.

Used for embedding requests and language queries. The stored key is never shown; leave the field blank to keep it.

Gemini Live model that turns speech into a workflow description. Uses the Gemini API key above.

Choose a model available to your provider. Blank uses the existing model only for Gemini.

Ollama Cloud: https://ollama.com. Local Ollama: http://127.0.0.1:11434. OpenAI and Anthropic use their official API addresses.

Stored encrypted and never displayed. Leave blank to keep it. Local Ollama needs no key.

Stored encrypted and never displayed. Leave blank to keep it. Local Ollama needs no key.

Stored encrypted and never displayed. Leave blank to keep it. Local Ollama needs no key.

Nominatim-compatible endpoint operated by you or your provider; address lookups stay disabled until configured. The public OpenStreetMap Nominatim service is unavailable for this generic platform.

Identify your application as required by your endpoint operator. This is sent only to the configured provider.

Limits source data and the encoded response separately. Oversized exports return an error; choose a smaller page in Connectors.

ArcGIS and OGC requests exceeding this limit return an error. Clients can retrieve further pages.

Requests above this rate are refused with HTTP 429. Zero disables the limit.

Enable only behind a reverse proxy you control. Otherwise the socket peer address identifies anonymous clients, because the header can be forged.

With an address the test sends a real message, which is the only check that proves the key, the sender and the provider's domain verification agree. Without one it only verifies the key.

Operations alerts and unattended workflow health

Loading operations health.

Stored encrypted. Leave blank to keep the saved URL. HTTPS is required; credentials, query strings and fragments are refused. Clearing the saved URL restores any deployment fallback; choose Off to stop webhook delivery.

Uses the configured email provider. Empty sends no job failure email. Workflow schedule failures appear as operations notices and use the webhook.

Blank keeps the deployment interval, or 60 seconds by default.
Warnings use scheduled due times and last worker progress. Blank uses 300 seconds. An intentionally paused schedule with no failure is excluded.
Loading encryption key status.
Loading replica token status.
Administrator-local app accounts
# OpenMetadata / DataHub Ingestion Pipeline Recipe
# Catalog connection example:
source:
  type: custom-rest-catalog
  service_name: "lyhnidos-geo-service"
  service_connection:
    config:
      hostPort: "http://127.0.0.1:8080"
      catalogEndpoint: "/v1/openmetadata/catalog"
      auth:
        type: bearer
        token: "YOUR_SCOPED_BEARER_TOKEN"
sink:
  type: metadata-rest
  config:
    mode: "upsert"
Click "Test Catalog Probe" to query the live OpenMetadata standard endpoint...
TABLE:

Exports actual SQLite values as Arrow IPC. Mixed-type columns use Arrow unions; geometry remains its original binary encoding. Each page reads a database snapshot. Keep the table unchanged while retrieving successive pages.

Select an existing table and download its Arrow IPC data.
import ibis

# Option A: Direct embedded connection to the Lyhnidos micro-database file
con = ibis.sqlite.connect("lyhnidos_data/default.db")

# Option B: Lazy DataFrame query with deferred execution
parcels = con.table("cadastre_parcels")
query = (
    parcels
    .filter(parcels.zoning_code.isin(["C1Z", "MUZ"]))
    .select("id", "address", "lot_plan", "zoning_code")
    .limit(10)
)

# Execute into Pandas, Polars, or PyArrow
df = query.execute()
print(df)
CLI Quickstart: pip install ibis-framework[sqlite] duckdb pyarrow
import duckdb

con = duckdb.connect()

# Query local micro-database file directly using DuckDB's sqlite_scan:
df = con.execute("""
    SELECT id, address, lot_plan, zoning_code
    FROM sqlite_scan('lyhnidos_data/default.db', 'cadastre_parcels')
    WHERE zoning_code = 'C1Z'
""").df()

print(df)

# Export directly to Parquet or Iceberg Lakehouse:
con.execute("""
    COPY (SELECT * FROM sqlite_scan('lyhnidos_data/default.db', 'cadastre_parcels'))
    TO 'cadastre_export.parquet' (FORMAT PARQUET)
""")
Compatible with MotherDuck, Local DuckDB, dbt-duckdb, and Apache Iceberg pipelines.
STANDARD:
# Standard GIS Endpoints for QGIS, ArcGIS Pro, and Web Maps:

1. OGC API - Features Landing Page / Conformance:
   http://127.0.0.1:8080/ogc
   http://127.0.0.1:8080/ogc/conformance

2. OGC Collections / GeoJSON Items Stream / Single Item:
   http://127.0.0.1:8080/ogc/collections
   http://127.0.0.1:8080/ogc/collections/cadastre_parcels/items?limit=50
   http://127.0.0.1:8080/ogc/collections/cadastre_parcels/items/42

3. OGC Transactions (create/replace/patch/delete a Feature; a database
   administrator key or a signed-in session, never a read-only key or
   anonymous):
   POST   /ogc/collections/cadastre_parcels/items
   PUT    /ogc/collections/cadastre_parcels/items/42
   PATCH  /ogc/collections/cadastre_parcels/items/42
   DELETE /ogc/collections/cadastre_parcels/items/42

4. Esri ArcGIS FeatureServer Endpoint:
   http://127.0.0.1:8080/arcgis/rest/services/default/FeatureServer/0/query?where=1%3D1&outFields=*&f=geojson
Click "Test OGC Items" to query the live OGC API - Features collection...

Configured Automation Jobs
Job Name Flow Preset Interval Target DB Status Actions

Match records in this table against an existing spatial layer (e.g. cadastre parcels) on address, parcel ID, or lot/plan.

Core

Loading quota…

Base storage allowance configured by the administrator.

Pro

Loading quota…

Review the configured subscription in Stripe.

Enterprise

Loading quota…

Price and storage allowance are managed in Settings.

Plans and pricing
  1. Choose
  2. Review
  3. Add

or drop a spreadsheet, map file or drawing here

More options

Spreadsheet columns keep the types chosen in Review; addresses can be placed on the map later with Enrich geometry in Records. GeoJSON imports retain supplied elevation and time; these defaults apply only when absent. Each import commits all rows together or reports an error.

Review complete CSV or one selected worksheet: up to 5,000 rows / 24 fields / 256 KiB reviewed bytes. Text preserves leading zeros; integer and decimal source text stays exact. Empty text differs from an explicit null token. Formula caches, error cells and unsafe numbers are refused. Excel dates require explicit conversion below. Local worksheet parsing uses the browser library with ZIP expansion preflight.

Original files are stored with your database and can be downloaded from Data library.