Skip to content

Security

Damilola Ogunsakin edited this page Oct 17, 2026 · 3 revisions

Security

  • The studio and the recorder's sign-in links only exist where the studio is enabled: local, or wherever you turn it on. Outside local, only users your viewVideoDemoStudio gate allows can use it; without the gate it is closed.
  • Your code goes to your AI provider. The model can only read the folders in ai.code.paths, never files matching ai.code.deny, and paths outside them are refused. Anything that looks like a secret (API keys, tokens, private keys, long passwords in quotes) is replaced with [redacted: …] before it is sent, in code, in the pages the AI looks at while planning, and in the pages shown when a step fails. Add your own patterns with ai.code.redact_patterns.
  • A separate frontend's sign-in (a token, cookies or headers) comes from a signed link that lasts ten minutes, is never cached, and only exists while the studio is enabled. Sanctum tokens it makes expire after an hour; on sample data they are made in the video's own database. The link can be used again until it expires; it is only written to the recorder's work files on your machine. Tokens stay in the recorder's browser and never appear in logs, results or anything sent to the AI.
  • Sample data is reached only by the recorder's browser, through a cookie (or, from a separate frontend, a header) signed with your app key, and only while the studio is enabled. A request carrying it uses the video's copy of the database for every connection, so it can't reach your own data, and mail and broadcasts don't go out.
  • Prompt injection. Text in your code, data or pages could try to give the model instructions. The model can only read the allowed folders, add sample data, and write plans; plans run in a browser as the recorder's user. Record on sample data, never on a copy of production.
  • Personal data. Videos show whatever is on screen. Sample data keeps real people out of them.
  • Watch counts (VIDEO_DEMO_STATS, off by default) keep only daily totals per video, and the words of searches that found nothing. No cookies are set and no IP addresses or user ids are stored. Searches are what users typed, so they are checked for secrets before Ideas sends them to the AI.
  • The language cookie the recorder sends for a video in another language only sets the app's locale, and only where the studio is enabled.
  • Private videos on a public disk can be opened by anyone who has the address; use a private bucket.
  • Your API key stays in your local .env and is never needed in production.

Please report security problems privately. See SECURITY.md.

Clone this wiki locally