site_access_clear
Tier: write · Tags: site_access, write
Clear configured site-access credentials for a workspace. Deletes the
matching reserved-key secrets via the batch-delete endpoint (paired keys go
in one transaction, since the per-item delete rejects partial pair states).
workspace_id: UUID or short alias (e.g. w-6ec).
method: one of "basic_auth" / "cookie" / "login" / "all".
"all" also clears the public-affirmed flag.
Returns {"method": <method>, "deleted": <int>} (0 when nothing
was configured for that method).
Parameters
string
required
UUID or short alias (e.g. ‘w-6ec’, ‘p-abc’, ‘pt-072’)
"basic_auth" | "cookie" | "login" | "all"
required
site_access_get
Tier: read-only · Tags: read, site_access
Show which site-access methods are configured on a workspace.
Site-access lets ish’s cloud browser reach a login-gated URL (a Vercel /
Lovable preview, a staging site behind a token) without publishing it.
Configure it with site_access_set. This read mirrors
ish workspace site-access status.
workspace_id: UUID or short alias (e.g. w-6ec) of the workspace.
configured is True only when BOTH keys of a pair are present.
origin (the bound https://host for basic-auth / cookie, or the
affirmed-public origin) is revealed best-effort; a transient reveal failure
surfaces as None rather than erroring. login has no bound origin and
is best effort (the participant types it if it meets a sign-in form).
Credential values are never returned.
session_cookie also carries expires_at (ISO-8601) and expired:
the worker refuses an interactive run once the stored cookie’s expiry has
passed (session_cookie_expired), so check expired before dispatching
and re-register the cookie with site_access_set when it is True.
Returns {"basic_auth", "session_cookie", "login", "public_affirmed"}, each carrying configured (affirmed on
public_affirmed) and, where one is bound, origin; session_cookie
adds expires_at and expired.
Parameters
string
required
UUID or short alias (e.g. ‘w-6ec’, ‘p-abc’, ‘pt-072’)
site_access_set
Tier: write · Tags: site_access, write
Attach site-access credentials to a workspace so ish’s cloud browser can
reach a login-gated URL without publishing it. Polymorphic on method.
method="basic_auth"- HTTP basic auth. Requiresusername+password. Binds toorigin(or the workspacebase_url).method="cookie"- a session cookie for sites that gate on a token (Vercel preview, Lovable, etc.). Requiresname+value. Binds toorigin(or the workspacebase_url). Every cookie carries an expiry: passexpires_atwhen you know it; otherwise the backend derives one from the value (a JWTexpor a Supabase token blob), else a per-host hint (Lovable and Bolt about 1 h, v0 about 30 min), else ONE HOUR. The worker refuses a run once it has passed (session_cookie_expired), so an opaque cookie withoutexpires_atstops working after an hour; re-register it to extend.method="login"- credentials for the site’s OWN login form. Requiresusername+password. NOT bound to an origin. Best effort, not a gate: the simulated participant sees them as values it may use and types them if it meets a sign-in form during the task; nothing signs it in beforehand and nothing checks that the login worked. For a wall that must be passed before the page loads usebasic_authorcookie.method="public"- affirm the site needs no credentials. Binds toorigin(or the workspacebase_url); writes no credential.
workspace_id: UUID or short alias (e.g. w-6ec).
method: one of "basic_auth" / "cookie" / "login" / "public".
username: required for basic_auth and login.
password: required for basic_auth and login. Never logged/returned.
name: cookie name; required for cookie.
value: cookie value; required for cookie. Never logged/returned.
origin: URL to bind to (e.g. https://preview.example.com). Optional
for basic_auth / cookie / public - falls back to the
workspace base_url. Ignored for login.
expires_at: cookie only - ISO-8601 timestamp (UTC when no offset is
given) after which the cookie is refused; must be in the future. Omit
to let the backend derive it. Rejected on any other method.
origin comes back None for login, and
cleared_public_affirmation is always False for public. For
cookie the result also carries the stored expires_at (yours, or the
derived one) and expired.
Returns {"method": <method>, "configured": True, "origin": str | None, "cleared_public_affirmation": bool}, plus expires_at / expired
for cookie.
Parameters
string
required
UUID or short alias (e.g. ‘w-6ec’, ‘p-abc’, ‘pt-072’)
"basic_auth" | "cookie" | "login" | "public"
required
string
string
string
string
string
string