Skip to content
Browse the docs

Concepts

Share links

Share selected files of an environment with someone who has no account. The key stays in the link after #, contents are signed, and links expire or are revoked.

Last updated

On this page

A share link gives someone without a Crunu account access to selected files of an environment. The person opens the link in a browser, the files are decrypted there, and nothing about them reaches the server in readable form.

Example. Kiteline is a fictional company. Luis Ortega, a contractor without an account, needs the Stripe test keys for one afternoon. Priya creates an expiring link to one file, valid for one day and one view, protected with a password.

How it protects the files

  • The key is in the link, after #. Browsers never send that part of an address to the server. The server stores only the encrypted files and an HMAC of the link's read key.
  • The contents are signed with the link's own key, so they can't be swapped. The recipient's page shows owner's signature verified.
  • A password is optional. With a password, the read key is derived from both the link and the password. Without the password, the encrypted files can't even be downloaded, so guessing is possible only online, against the server's rate limits.
  • Only an explicit click opens it. A link is used only when the recipient clicks Open. A messenger generating a link preview doesn't use up the views.
  • Decrypted files live only in the page's memory. Close and wipe from memory clears them.
KindWhat the recipient getsWhen it stops working
Expiringthe files as they are nowafter its time or view limit: up to 365 days and up to 1,000 views, including once
Livethe latest version of the fileswhen you revoke it. It has no expiration

"Expiring" is about limits, not a single view: an expiring link can allow up to 1,000 views.

Open the environment and choose Share links, then New link. Choose the files, the kind of link, its expiration and How many times it can be opened, whether it's With password, and a name you'll recognize later. Link created shows the address, with the key after #. Copy it.

Send the link and the password through different channels. Anyone who has both can open the files.

Who can create links: anyone who can save versions of the environment, so Editors, owners and admins, and the owner of a personal environment. Each account can create up to 100 new links a day.

What the recipient sees

The page says Files have been shared with you and offers Open. After opening, the recipient can show, copy and download each file, or install the files on a computer or server with a downloaded script. If that was the last allowed view, the page says so and asks them to save the files now, because the link can't be opened again. A link that no longer works says it was revoked, already opened or expired.

The environment's Share links list shows each link's kind, state (Active, Expired, Used or Revoked), views as used of allowed, and expiration. You can copy a link again or revoke it. Opening, creating and revoking links is recorded in the audit log.

Revoking stops future opens. It can't take back files already opened. If the files contain secrets, reissue them at their providers after the work is done.

An environment's network rule decides whether links are allowed:

  • Blocked while the restriction is active. Links of that environment can't be created, updated or opened from any address. If the restriction is removed later, existing links work again, so revoke them if they should stay closed.
  • Allowed. Links work and open from anywhere, because a link has no recipient whose address rule could be checked. Creating or updating a link counts as writing the environment's contents, so it follows the creator's network rule.

See Network rules.

On a self-hosted server, rotating SERVER_KEY keeps links working through the transition. A link nobody opens until the previous key is removed stops opening. See Rotate the server key.

When to use something else

  • For a teammate, invite them instead. They get their own keys, a role, and can be offboarded cleanly.
  • For a server, enroll it as a machine. It gets a lease, can be revoked, and its access is recorded.
  • For CI, use a service token.

Step by step: Share a file with a contractor.