Documentation

Complete Feature List

Every feature in Lunexa, grouped by category. 62+ features across 13 categories — from authentication to AI-powered search.

StableBetaPartial

Authentication & Users

User accounts, session management, email verification, and Single Sign-On.

Email & Password Authentication

Stable

Standard email/password registration and login with password strength validation and hashed credentials.

Email Verification

Stable

6-digit OTP code sent to users' email with 120-second countdown, auto-focus inputs, and resend support.

Session Management

Stable

Secure session cookies with SHA-256 hashed tokens stored in PostgreSQL. Logout invalidates the token server-side.

Google OAuth (SSO)

Stable

Sign in with Google or link an existing account to Google. CSRF-protected with state cookies.

Organizations & Teams

Multi-tenant workspaces with role-based access control for your team.

Organization Management

Stable

Create, rename, and delete organizations. Each organization is a fully isolated workspace.

Team Member Management

Stable

Invite team members, assign roles (Owner, Admin, Editor, Viewer), and manage permissions. Plan limits enforced at creation.

Role-Based Access Control

Stable

Four roles with granular permission matrices. Owners have full control; Viewers have read-only access to search and analytics.

Dashboard: Settings → Team

Email invitations for non-users

Stable

Invite teammates who haven't registered yet. Lunexa stores a pending invite, sends a branded email with a single-use link (7-day expiry), and auto-joins the invitee to the org when they finish registering.

Dashboard: Settings → Team → Add Member

Projects

Isolated search environments within an organization. Each project maps to its own collection namespace.

Project CRUD

Stable

Create, list, rename, and delete projects. Plan limits enforced at creation (e.g., 1 project on Free, 3 on Starter, 50 on Pro, 200 on Enterprise).

Collection Namespace

Stable

Every project gets a unique collection prefix, ensuring complete data isolation between projects.

Collections & Schema

Define your data structure with typed fields, facets, and sorting rules.

Collection Management

Stable

Create collections with custom schemas supporting string, int32, int64, float, bool, string[], int32[], int64[], float[], bool[], auto, and geopoint field types.

Schema Import

Stable

Paste a collection schema JSON to auto-populate field definitions when creating a new collection.

Dashboard: Indexes → New Collection → Import Schema

Collection Statistics

Stable

View document count, index size, and basic health metrics for each collection.

Nested Object Fields

Stable

Opt-in support for hierarchical documents with object and object[] field types. Query sub-fields with dot notation (e.g. author.name) and facet on nested attributes. Enabled per-collection at creation time; immutable afterwards. Useful for product variants, author bios, location blocks, and other structured sub-records.

Dashboard: Indexes → New Collection → Enable nested object fields

Documents

Full CRUD operations for documents inside collections, plus bulk import and export.

Document CRUD

Stable

Create, read, update, patch, and delete individual documents. Every create and delete increments/decrements the records usage counter for billing.

Bulk Import (JSONL)

Stable

Import thousands of documents at once via JSONL upload. Supports create, upsert, update, and emplace actions. Line count tracked for billing.

Bulk Export (JSONL)

Stable

Export an entire collection as JSONL for backup, migration, or downstream processing.

AI Sample Data Generation

Beta

Generate realistic sample documents for your collection using AI. Useful for testing and demos.

Dashboard: Documents → Generate Sample Data

Relevance Tuning

Fine-tune search results with synonyms, curations, stopwords, and presets.

Synonyms

Stable

Define bidirectional synonyms (car ↔ automobile) or one-way root mappings. Improves recall for user queries that use different terms than your data.

Curations (Overrides)

Stable

Pin specific documents at fixed positions for certain queries, exclude documents, or apply custom filters. Rule types: exact, contains, starts_with, ends_with.

Stopwords (Dictionaries)

Stable

Define words to ignore during search. Multi-language support: English, Spanish, French, German, Italian, Portuguese, Japanese, Chinese.

Search Presets

Stable

Save reusable search parameter sets (query_by, filter_by, sort_by, facet_by) under a named preset. Clients can reference presets by name.

Collection Aliases

Stable

Create virtual names that point to collections (e.g., products_latest → products_v2). Enables zero-downtime reindexing.

Smart Crawler (AI)

Point Lunexa at a URL and it will crawl, discover a schema with AI, and build your search index automatically. Enterprise plan.

Crawl Configuration

Stable

Define seed URLs, crawl depth, max pages, extraction mode, and cron schedule for recurring crawls.

AI Schema Discovery

Stable

Lunexa crawls a few sample pages and uses AI to propose the best collection schema — field names, types, facets, sample values — all automatically.

Visual Confirmation Screen

Stable

Before indexing, review detected page patterns, the proposed schema, sample extracted documents, and estimated storage/monthly cost.

Dashboard: Smart Crawler → New → Step 3

Incremental Crawling

Stable

Content hashes track which pages have changed since the last crawl. Unchanged pages are skipped, reducing cost and load on your site.

Scheduled Re-crawls

Stable

Use cron expressions to schedule recurring crawls (every hour, every 6 hours, daily, weekly, custom). A background worker checks every minute.

Live Progress & Cancel

Stable

Every run shows live status messages, page counts, and a Stop button. Expandable run history with per-run details and error lists.

Dashboard: Smart Crawler → [crawl] → Run History

Storage Cost Estimator

Stable

Preview the monthly cost before starting a crawl based on your plan's included pages and overage rate.

NL Search Models

Configure the AI models that power Natural Language Search for each project.

NL Model Management

Stable

Create, list, update, and delete NL search models per project. Supported: Google Gemini 2.5 Flash, Gemini 2.5 Pro, Gemma 4 31B.

Server-Side API Key Injection

Stable

The LLM provider API key is stored centrally in Lunexa and injected into the model config server-side. Users never provide raw keys.

Custom System Prompts

Stable

Add a custom system prompt to any NL model to steer the AI toward your domain's terminology and preferred response style.

Cost Estimator

Stable

Interactive calculator showing monthly NL search cost across all plan tiers based on expected query volume.

Dashboard: NL Search → Cost Estimator

API Keys & Permissions

Scoped API keys with granular action-based permissions, collection filters, and referer restrictions.

Action-Based Permissions

Stable

22 distinct action scopes across 6 categories: documents, collections, synonyms, curations, stopwords, aliases, presets, analytics, NL search, and more.

Key Templates

Stable

Pre-built templates for common use cases: Search-Only (frontend safe), Admin (full access), Write (indexing/sync), Analytics (read-only monitoring), Custom.

Collection Scoping

Stable

Restrict an API key to specific collections. Wildcard patterns are supported for easy scoping.

Referer Restrictions

Stable

Limit a key's usage to specific HTTP Referer headers. Combined with CORS, this protects frontend keys from abuse.

Expiration & Rotation

Stable

Set an expiration time (minutes, hours, days) and revoke any key instantly. Full keys are returned only once at creation and stored as hashes.

Rate Limits

Stable

Per-key rate limits (queries per hour) prevent runaway clients from exhausting your plan quota.

Analytics & Monitoring

Observability for your search: request logs, performance metrics, usage, and custom analytics rules.

Usage Analytics

Stable

Time-series chart of search requests over custom date ranges. Total record count and month-to-date usage per project.

Search Request Logs

Stable

Paginated log of every search request: query text, query_by fields, filters, sort, result count, latency, HTTP status, user-agent.

Performance Metrics

Stable

Average, P90, and P99 response times plotted over time. Identify latency regressions before your users do.

No-Results Queries

Stable

Surface queries that returned zero hits. Use this to improve synonyms, expand your dataset, or refine curations.

Operations Breakdown

Stable

Breakdown of search operations by type and endpoint over a selected date range.

System Status

Stable

Health check showing search engine connectivity and collection availability for the project.

Analytics Rules

Stable

Define aggregation rules that compute popular queries, no-hits queries, or custom counters across source collections and write them to a destination collection.

Billing & Usage

Subscription management, usage metering, invoices, and payment method storage via Stripe.

Plan Management

Stable

View current subscription, upgrade/downgrade plans, and see available packages with pricing and feature limits.

Usage Metering

Stable

Tracks four metered counters: search requests, records stored, crawler pages, and NL searches. All counters are surfaced in the dashboard and reported to Stripe.

Stripe Embedded Checkout

Stable

Upgrade plans in-app with Stripe's embedded checkout component. No redirect required.

Stripe Customer Portal

Stable

Redirect users to Stripe's hosted portal to manage payment methods, download invoices, and update billing details.

Invoices

Stable

List all past invoices with amount, date, status, and PDF download links.

Payment Methods

Stable

Add and remove payment methods directly from the dashboard. Uses Stripe SetupIntent for secure card collection.

Usage-Based Metered Billing

Stable

A background worker reports search, crawler, and NL search usage to Stripe every 5 minutes as meter events. Overages billed automatically.

Integrations

Optional integrations with third-party services. Each is enabled via environment variables and degrades gracefully when not configured.

Google OAuth

Stable

Sign in with Google and link/unlink Google accounts. Optional — requires GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET.

Stripe Billing

Stable

Full subscription and metered-billing integration. Optional — requires STRIPE_SECRET_KEY. Gracefully disabled when not configured.

Google AI Studio (Gemini)

Stable

Powers Smart Crawler and Natural Language Search. Optional — requires GEMINI_API_KEY. Features gracefully disabled when not configured.

Ready to try Lunexa?

Every feature on this page is available on a free account. Sign up in 30 seconds and start indexing.