Launch / How to

Security and access

Four controls decide who can reach your agent: the domains it may run on, who may open a conversation, the disclaimer it shows, and where its credentials live.

Allowed domains

The Security tab lists the domains permitted to open a conversation with this agent. Duvi refuses requests from anywhere else.

Add your domains before you go live. The agent id sits in the page source of every site you embed on, so anyone who reads that source can paste the same two lines onto their own site and spend your credits. An empty list stops nothing, and Studio warns you while it is empty.

Domain matching rules

  • Enter the domain only. Type example.com. You do not need a scheme, a port or a path, and the list shows plain hostnames back to you.
  • Subdomains are separate entries. www.example.com and example.com are two different hosts. Add both if you use both. This is the most common reason a widget does not appear.
  • Duvi compares the hostname only. Scheme and port are ignored, so http and https are the same entry, and so is a port used in development.
  • localhost is accepted, so you can try the widget before the site is live.
  • Anything that cannot be read as a domain is rejected when you add it rather than saved dead.

Access control

Also on the Security tab, under Access, and independent of the domain list.

SettingWhat it means
AnyoneVisitors do not have to sign in. If your identity endpoint identifies them, the agent uses that. This is the default.
Only signed-in visitorsDuvi refuses anyone your identity endpoint cannot identify, before the conversation starts.

The second option stays locked until customer identity is working, which means an identity endpoint and one signing key. Studio states that requirement next to the option while it is unavailable.

If an agent requires a signed-in visitor while identity is broken, every visitor is refused. Studio says so in red at the top of the tab, because from the outside that looks like an outage rather than a setting.

AI disclaimer

On the Configure tab: a Show a disclaimer switch and one Message, shown before the agent’s first message. It is off by default. Turning it on and leaving the message empty stores nothing, so write the sentence you want people to read.

Keep it short and specific. Something in the shape of replies are generated, check anything important with our team says what the thing is and what to do about it.

The disclaimer is separate from the first message, which is also on Configure. The disclaimer is a standing statement about what the agent is. The first message is what the agent says to open. Writing the disclaimer into the opening line means editing your opening line every time your legal position changes.

Stored keys

Duvi stores the credentials an agent needs per agent, encrypted, and never shows them again once saved. Give a key a name, paste the value once, and afterwards select it by name wherever a tool needs it.

Nothing secret belongs anywhere else, and in particular not in the prompt. A system prompt is not a secure store, and a determined visitor can often get its contents repeated back. See What never belongs in a prompt and Stored keys.

The agent id is public

The agent id appears in the page source of every site you embed on. It opens a conversation with this agent and nothing else: no account access, no files, no billing, no other agent.

The allowed domains list is what limits its use, and that list only applies when it is not empty and the request comes from a browser that sent an origin. Treat the id as public and the domain list as the control.