site_access_clear
Tier: destructive · Tags: delete, site_access
Remove access from one site in a workspace. Other sites keep theirs.
The target is ONE of origin (a URL), site (a site’s name) or
app_artifact, and is required. A target no site answers on is
[not_found], naming the sites that hold access. The site itself and
its hosts stay.
workspace_id: UUID or short alias (e.g. w-6ec).
method: "basic_auth" / "cookie" / "login" / "public" /
"all" (every method the site holds).
origin / site / app_artifact: the site, as for site_access_set.
Returns {"method", "site": <name>, "cleared": [<method>, ...]}
([] when the site held none of them).
Parameters
string
required
UUID or short alias (e.g. ‘w-6ec’, ‘p-abc’, ‘pt-072’)
"basic_auth" | "cookie" | "login" | "public" | "all"
required
string
string
string
site_access_get
Tier: read-only · Tags: read, site_access
Show every site in a workspace and the access each one holds.
A site is one web site (its hosts, e.g. shop.com and shop.se or
localhost:3000; www and bare are one host) or one app, and it owns its
own basic auth, session cookie, login, or the statement that it is public.
A run uses the access of the site its URL belongs to and nothing else; a
URL no site covers runs with no access. Hosts only pick the site: basic
auth and the cookie go to one origin, the one the run opens (the study
URL’s, or its tunnel’s), never to all of a site’s hosts. Configure with
site_access_set. Mirrors ish workspace site-access status.
workspace_id: UUID or short alias (e.g. w-6ec) of the workspace.
cookie_expires_at / cookie_expired ride on a site with a cookie:
the worker refuses an interactive run once the cookie has expired
(session_cookie_expired), so re-register it when cookie_expired.
unassigned_hosts lists hosts this workspace’s browser studies target
that no site covers, with how many studies target each. Credential values are
never returned.
Returns {"sites": [{"name", "hosts", "app_artifact", "methods": {"basic_auth", "session_cookie", "login", "public"}}], "unassigned_hosts": [{"host", "study_count"}]}.
Parameters
string
required
UUID or short alias (e.g. ‘w-6ec’, ‘p-abc’, ‘pt-072’)
site_access_set
Tier: write · Tags: site_access, write
Give one site in a workspace its access so ish’s cloud browser can reach
a login-gated URL without publishing it. Polymorphic on method.
workspace_id: UUID or short alias (e.g. w-6ec). The target is ONE
of origin (a URL; its site is created on first use), site (an
existing site’s name, from site_access_get) or app_artifact (an
app). With none, the workspace base_url is the origin (not for
hosts, which must name the site). An origin on
another host is another site: it never overwrites the first site’s access.
created says a new site was made (check it against
other_sites_with_access for a typo). To make one site answer on several
hosts, use method="hosts".
Basic auth and the cookie go to one origin, the one the run opens (the
study URL’s, or its tunnel’s), never to all of a site’s hosts.
basic_auth- HTTP basic auth. Requiresusername+password.cookie- a session cookie (Vercel preview, Lovable, etc.). Requiresname+value. Passexpires_atwhen you know it; else the backend derives one (a JWTexp, a per-host hint, else ONE HOUR). Past it, runs fail (session_cookie_expired); re-register to extend.login- credentials for the site’s OWN login form. Requiresusername+password. Best effort, not a gate: the participant types them only if it meets a sign-in form. The only credential an app takes.public- state the site needs no access. Refused ([conflict]) while the site holds a credential; saving a credential withdraws it.hosts- replaces the extra hosts (e.g.shop.se,auth.shop.com,localhost:3000;[]removes them); to add one, pass the site’s current hosts fromsite_access_getplus the new one (the first host is the address and is ignored). www and bare are one host. Hosts only pick the site a study URL belongs to. A host another site holds is[conflict]. Web sites only.
method: "basic_auth" / "cookie" / "login" / "public" / "hosts".
origin: URL of the site, e.g. https://preview.example.com.
site: name of an existing site. app_artifact: an app’s artifact.
username / password: basic_auth and login. Never returned.
name / value: the cookie’s; cookie only. Never returned.
expires_at: cookie only; ISO-8601 (UTC without an offset), future.
hosts: hosts only.
Returns {"method", "site": <site_access_get's site>, "created", "cleared_public_affirmation"}, plus other_sites_with_access when
created.
Parameters
string
required
UUID or short alias (e.g. ‘w-6ec’, ‘p-abc’, ‘pt-072’)
"basic_auth" | "cookie" | "login" | "public" | "hosts"
required
string
string
string
string
string
string
string
string
string[]