Public links

A public link is a secret-token URL for a dashboard that bypasses the dashboard’s own sharing rules - anyone in your organization holding the URL can open it, without being granted access to that dashboard individually or through a group. See The permissions model for how this differs from granting specific users or groups access.

[!IMPORTANT] A share link requires the viewer to be a signed-in member of your organization, unless its creator holds the share_public_anonymous permission (admins do) and leaves Allow anyone with the link (no sign-in) checked, which is the default. Such an anonymous link opens for anyone who has the URL, signed in or not, until it expires or you revoke it. Uncheck the box to keep the link inside your organization.

[!WARNING] Treat the link itself as the credential: anyone who has it can view that dashboard, including people you never granted access to it. An anonymous link is reachable by anyone outside your organization too. Only generate one for a dashboard you’re fine with that audience seeing.

Generating a public link requires the create_embed permission, being the dashboard’s owner (its creator, or an admin), and the dashboard must already be published - an unpublished dashboard has nothing for a viewer to see.

Tick the required confirmation checkbox in the Share dialog to enable the Create public link button. Users with share_public_anonymous (admins) also see Allow anyone with the link (no sign-in), checked by default. Leave it checked for an anonymous link, or uncheck it to require sign-in to your organization. Without that permission, links always require sign-in.

Each time you create a link you get a new token - creating one doesn’t return a link you made earlier. Links you’ve already handed out keep working until they expire or you revoke them.

Share and Embed dialog with the public-link creation flow

A public link always renders the dashboard’s published snapshot - never a live draft - and always shows each widget’s last cached query result, exactly as it looked the last time that query ran. It never re-executes anything on your behalf: the response is deliberately stripped down to just what’s needed to render (widget layout, visualization type/options, and the cached result data), with no SQL text, no connector configuration, and no other objects’ data leaked alongside it.

Because a public link always serves the frozen cached result, dashboard-level parameters have no effect there - there’s no input to change a value and no live re-query to change it against. What a public viewer sees is whatever values were in effect the last time each underlying query actually ran. A query built on a Text or Query-based Dropdown parameter shows up on a public link the same as any other - the restriction on those parameter types is about who can run the query in the first place (manage access to its connector), which is a separate question from what a public link, which never runs anything, can show. See Parameters for the full rule.

Expiry

A public link defaults to expiring 90 days after it’s created - the Share dialog has no expiry field, so every link made there gets this default. Past its expiry, the link stops resolving, the same not-found response as a revoked one. Create a new link if you still need it live past that point.

Revoking

Revoking immediately invalidates the link - anyone still holding the old URL gets a not-found response, indistinguishable from a link that never existed. You can still create a new link afterward.

To cut off whoever holds the current URL while keeping the dashboard shared, revoke the existing link and create a new one.

Where to go next

  • Embedding - the iframe-embed sibling of a public link, sharing the same 90-day default expiry, but able to target a single visualization instead of a whole dashboard.
  • The permissions model - how a public link bypasses the per-object access layer on purpose, and what it still enforces.