FAQ
General
What databases does Minimal support?
PostgreSQL, MySQL, and ClickHouse. See Supported Databases.
Does Minimal support JOINs?
Yes — through Custom API. Write your JOIN in a SQL step inside a definition. Auto API operates on single tables only.
Can I call external APIs from a Lark step?
Not currently. Lark steps are sandboxed and deterministic — external HTTP calls are not supported. External data must be fetched before calling Minimal and passed in via input.
Can I use Minimal without a gateway?
Technically yes, but it is strongly discouraged. Without a gateway or app server injecting headers, clients can forge any identity. Always put Minimal behind your auth layer.
Does Minimal handle authentication itself?
No. Minimal operates on a trusted subsystem model — your gateway or app server authenticates the user and injects identity headers. See Authentication & Headers.
Auto API
What HTTP methods does Auto API support?
GET, POST, PUT, and DELETE.
Can I filter and paginate Auto API results?
Yes. Use query parameters pg, ps, and any column name as a filter. See Filtering & Pagination.
What happens if I request a page beyond the last page?
Minimal returns 200 OK with an empty data: [] array — it is not an error.
Can I return data in formats other than JSON?
Yes — JSON, XML, YAML, CSV, and BSON are all supported. Pass ?format=csv (or your preferred format) as a query parameter. See Response Formats.
Custom API
What is a feature_id?
A unique ULID that identifies a Custom API definition. Generate a new one for every definition you create. See Generating ULIDs.
Can I update a deployed definition?
Yes. POST the updated YAML with an incremented http.version to the same deploy endpoint. Minimal replaces the definition and retains the previous version for rollback.
What happens if a step fails mid-chain?
The entire request fails and an error is returned. Steps completed before the failure are not committed unless they were SQL writes — write steps that have already executed are not automatically rolled back.
Can I have multiple steps return data?
Yes. Any step with omit: false (or omit not set) will be included in the response. All non-omitted step results are returned together.
When should I use Expr instead of Lark?
Use Expr for simple object construction and aggregations (len, boolean checks). Use Lark when you need loops, custom functions, or complex transformations. See Logic Steps.
Does cache_result: true cache per user or globally?
Cache behaviour is global per endpoint version — the same cached response is returned to all users. Do not cache endpoints that return user-specific data.
Deployment
Can I run Minimal on-premise?
Yes. Minimal is self-hosted — deploy it on your own infrastructure. See Deployment Guide.
Does Minimal require a restart when I deploy a new Custom API definition?
No. Definitions are registered immediately after POSTing — no restart required.
Is there a UI for Minimal?
Yes, Minimal Studio is available.