QFQueryForge Start with the entity name

QueryForge — Config Builder

Fill in the form, watch the JSON build itself, download the file. Each field starts with the four settings that matter and folds the rest behind Advanced; hover any ithis is an ⓘEvery setting has one. It says what the key does and shows a worked example of the behaviour it produces, so you can stay on this page.Try the one next to elemMatch on a nested Mongo field: it shows both filters side by side. for what a setting does and an example. Every option here is a real key in the loader (ParseConfig), documented in the configuration reference. Nothing leaves your browser — there is no server, no upload, and no analytics on this page.

Your API key never belongs in a config file. The apiKeyEnv box takes the name of an environment variable (e.g. QF_API_KEY); the key itself stays in your environment. This builder rejects a pasted key exactly as the loader does.
STEP 1

Entity

The logical name of the thing being queried. An AST is only accepted if its entity matches this exactly, so pick the name you will use in code.

STEP 2

Model

needed only for natural language

Which AI planner turns English into an AST. Leave it empty if you only ever hand QueryForge a ready-made AST (GenerateFrom / POST /api/generate) — that path is deterministic and calls no model at all.

Presets only fill the boxes below; edit anything afterwards.

Fallback chain · models[]

Optional. QueryForge tries model first, then each entry here in order, and uses the first that answers — so a rate limit, quota block, or outage on one provider falls through to the next. Chains can mix providers freely.

STEP 3

Backends

Maps the entity to a physical table / collection, one entry per database you target. Omit it entirely and the entity name is used as the source. Each backend you add here also gets a per-field physical name box in step 4. Three generators ship today — the backend id in code is the string you pass to Translate, and sql means PostgreSQL specifically, not SQL in general.

STEP 4

Fields

0 fields

The whole vocabulary. A field listed here can be asked about; anything not listed cannot be invented — the model is told to decline instead of guessing at a lookalike. At least one field is required.

A tenancy / scope field is one your application forces on every query (subscriptionId, userId, enterpriseId). It is added as queryable: false so the model never sees it; you pass the value per call as a scope.

STEP 5

Defaults & policy

optional · result window and guardrails

The result window and the deterministic guardrails. All optional, all cheap insurance.

limit applies when the query names none; maxLimit is a hard ceiling (a query asking for more is rejected); maxNestingDepth bounds the filter tree — 0 means unlimited.

policy.denyRegexOn

Fields on which the regex operator is forbidden, for ReDoS and PII safety. Worth setting on any free-text column a user can steer.

STEP 6

Start from something existing

Load a config to edit it, or start from the shipped Order example. Importing replaces everything currently in the form.

…or paste one

QueryForge · config builder · home · configuration reference · this page is part of the library and lives at docs/config-builder.html.