# How sharing works

## How does sharing work?

Sharing decides who can open a dashboard, chat, skill or notebook. All four share the same way,
from the object's **Settings → Sharing**. The people you share with need no plan of their own to
read what you share. A dashboard with public access opens read-only for anyone who has its address,
with no account.

Any dashboard, chat, skill or notebook can also sit inside a frame on another site, on every plan.
You set it up in the object's **Settings → Embed** ([Embeds](/docs/sharing/embeds)).

## What does the Sharing pane show?

The pane lists everyone who can open the object, one row each.

| Row | Who it covers | Choices |
|---|---|---|
| **Anyone in** your workspace's name | Every member of the workspace, never guests | **None**, **Viewer** or **Editor**. A chat stops at **Viewer** |
| **Anyone with the link** | Anyone who has the address, with no sign-in | **None** or **Viewer** |
| The owner | The person who owns the object | **Owner**, which you can't change from this row |
| Each person you add | That one person | **Viewer** or **Editor**. A chat or a guest gets **Viewer** only |

A personal workspace has no workspace row, since nobody else is in it. When someone has asked for
access, their request sits at the top of the pane.

## What opens at an object's address?

Every dashboard, chat, skill and notebook has exactly one address, such as `/dashboards/{id}`. There
is no separate share link. The **Copy link** button at the foot of the Sharing pane copies that
address.

What opens at the address depends on who you are.

| Who opens it | What they see |
|---|---|
| Someone with access | The object, in the app |
| A member of the workspace without access | The public view if public access is on. Otherwise a page saying they lack access, with a button to [ask for it](#how-does-a-member-request-access) |
| Anyone else, signed in or not | The public view if public access is on. Otherwise **Page not found** |

**Page not found** reads the same whether the object is private, its public access is off, or the
address never existed. Nobody can use it to learn that something is there.

## How does public access work?

Set **Anyone with the link** to **Viewer** to turn public access on, and to **None** to turn it off.
Turning it on takes edit access, or on a chat, being its author. Guests can't change it.

While public access is on, anyone with the address can read the object. That includes members and
guests who were never given access. Turning it off and on again brings back the same address,
because an object's address never changes. To keep someone out who already has the address, leave
public access off.

> [!NOTE]
> Turning public access off takes up to two minutes to reach everyone. Vistazo's servers hold the
> public view for a minute, and a reader's browser may hold it a minute more. Someone with the page
> already open keeps what loaded until they reload.

An archived object has no public view, and public access can't be turned on until it is restored.
Your agent can still turn it off with the `set_sharing` tool, passing `publicLink: false`.

## How does an admin close every public link?

A workspace admin can close every public link at once. The **Public links** switch sits in the
**Sharing** card under **Settings → General → Details**. While it is off, no public view opens
anywhere in the workspace and nobody can turn public access on. Each object's **Anyone with the
link** row shows **None** with **Disabled for this workspace**.

Every object keeps its own setting while the switch is off. Turn it back on and each object that
was public is public again, at the same address.

## What does the public view show?

The public view is read-only for every reader, signed in or not. It has no filters, no refresh and
no built-in assistant, and those controls are hidden rather than greyed out.

| Object | The public view shows |
|---|---|
| Dashboard | The published data at each filter's default, stamped with when it last refreshed |
| Chat | The conversation, with each attachment's name and kind |
| Skill | The document |
| Notebook | The text, the cells and the outputs of the last run, figures and large tables included |

A public chat never hands over its files. Readers see each attachment's name and kind, and never its
contents or the text pulled from it. Inside the app, anyone who can read the thread can open its
files ([Attachments](/docs/chat/attachments)).

Visits to a dashboard's public view or its embed keep a running refresh schedule running. They don't
restart a schedule that has paused. A member opening the dashboard does that
([Refresh](/docs/dashboards/refresh)).

Signing in from the public view takes you to the object if you have access. Otherwise you land on
your own home, with the object in your Recents.

## How do you share with a colleague?

Search for a colleague in the Sharing pane and press **Add**. They get one step above the workspace
row, so **Viewer** where the workspace has **None**, and **Editor** where it has **Viewer**. Where
the workspace row is already **Editor**, every member can edit, so search offers no one to add. On a
chat, **Add** always grants **Viewer**. Change a person's role later from the select on their row.

Everything you can do to a person lives in that select. Above the divider are the roles. Below it
are **Remove** and, for an invitation, **Resend invitation** and **Revoke invitation**.

The select also offers **Owner** when you can hand the object over to that person. Picking it asks
you to confirm with **Transfer**, and the current owner becomes an editor. A chat can't change
hands, and a guest can't become an owner. [Dashboards](/docs/dashboards/overview#who-owns-a-dashboard) explains
what the owner is responsible for.

## How do you invite someone from outside?

Type the email address of someone outside your workspace in the Sharing pane. Press **Enter** or
**Invite** to send them an invitation. Anyone who can share the object can invite, unless an admin
has turned off **Invite people outside the workspace**.

The email's button opens an invitation page. It names you, your workspace and what you shared, with
**Accept invitation** and **No thanks**. The invited person must sign in with the address the email
went to. Signed in as anyone else, they can't accept and the page offers **Switch account**. Once
they accept, they land on what you shared. The email is the only way in, because Vistazo shows them
no list of pending invitations.

Accepting makes them a guest of your workspace. A guest holds only what was shared with them, and
always as **Viewer**. Someone outside the workspace can never edit your objects. To give them edit
access, an admin makes them a member under **Settings → Members → Make member**
([Guests](/docs/sharing/permissions#what-can-a-guest-do)).

This invitation is different from an invitation to join the workspace, though both pages show
**Accept invitation**. An object invitation names the dashboard, chat, skill or notebook you shared,
and accepting opens just that object as a guest. A workspace invitation comes from an admin under
**Settings → Members**, and accepting makes the person a member of the whole workspace
([Members](/docs/workspace/members)).

Until they accept, their row reads **PENDING**. Sharing something else with them in that time adds
it to the same invitation and emails them again. An invitation expires after 7 days.

Someone who accepts before they belong to any workspace has to wait. Their row reads **Accepted,
waiting for workspace access**, and you can still revoke it. Reopening the email shows them
**Waiting for access** until they have a workspace of their own, and the object opens for them from
then on.

An account that signs in through single sign-on may have an unverified email address. An invitation
to that address reads **Verify your email first**, and a 6-digit code sent to the address lets them
accept ([Security](/docs/account/security#how-do-you-change-or-verify-your-email)).

## Where do things shared with you appear?

When someone in another workspace shares with you, the object opens inside your own workspace. You
stay where you are, and their workspace never joins your list. The object appears in your Recents,
on the Dashboards, Chats, Skills and Notebooks pages and in search, marked **From** and the sharing
workspace's name. A shared dashboard keeps the sharing workspace's theme.

If the sharing workspace requires two-step sign-in or its own sign-in, the object says so where it
would open.

To take it off your lists, choose **Remove** from its menu. You can't open it after that, and the
person who shared it can share it with you again.

## How does a member request access?

A member who opens an object they can't read gets a **Request access** button. Pressing it notifies
the people who can grant access. On a chat that is its author, and on anything else its owner and
the workspace admins. The button then reads **Requested**, so nobody can ask twice.

If the object's public access is on, the member gets the public view instead of the button. Guests
never get one, because a guest holds exactly what was shared with them.
