Skip to main content
There are no test keys either. An assistant reads your real database, and every question is charged to your workspace. The assistant’s caps are your safety net.

Run it on localhost

In Doors → Allowed origins, add your local origin:
An origin is a scheme, a host and a port, with no path. http is accepted. http://localhost:3000 and http://127.0.0.1:3000 are two different origins: add the one in your address bar. Remove local origins before you go live.
A dataset has one assistant. To test on a staging site, add the staging origin next to your production origins.

Use a test customer

On the per-user door, open sessions for an account you own, such as a demo customer in your database. Its conversation is kept like any other, one per assistant and per partition. Erase it when you are done:
Erasing a partition with no conversation also succeeds, so this runs safely after every test.

Test your session route

Call your route the way your page does, with your login cookie:
Then break it on purpose, once each: Your route should turn each one into an error your page handles. See Errors.

Test renewal without waiting 15 minutes

Hand the assistant a token Concatflow will refuse, then open it:
The assistant gets the same answer as for an expired token. It calls your onSessionExpired, takes the new token, and the panel works. If onSessionExpired is missing or throws, the assistant stops answering: that is what your customers would see after 15 minutes. See Session renewal.

Test isolation with two customers

Log in as customer A and ask a question only A’s data can answer. Log in as customer B in another browser and ask the same question. B must see neither A’s rows nor A’s questions. It is the last step of the Go-live checklist.

Unit-test your route

@concatflow/node calls the global fetch. Stub it to test your code without a network or an API key. With Node’s own test runner:
session.test.ts

Limits you will meet while testing

These limits protect your credits. They apply to testers like anyone else: a whole team behind one office IP shares the per-IP limit. When a limit is reached, the assistant stays on the page and answers with a short message instead. That reply calls no model and costs nothing. Wait an hour, or raise Rate while you test.