Skip to content

ts share ​

Show or revoke a share link — the URL that lets someone launch one workspace app without going through the Portal themselves.

Usage ​

text
ts shares <workspace> [--csv] [--no-trunc]
ts share <id>
ts share delete <id> [--force]

Description ​

A share link points at a single app in a single workspace. Depending on how it was made it either still requires a sign-in or allows anonymous visitors, which is the column to look at first when you are auditing what a workspace has handed out. A link may also carry an expiry, after which it admits no one. Share links are created and edited elsewhere; ts only reads them and revokes them, so there is no new or set action here.

ts shares takes a workspace — GUID or friendly id — and it is required, because the server has no list-all-share-links endpoint. There is no way to sweep an entire deployment in one call; loop over the output of ts workspaces if that is what you need. The listing gives the share id, the link's name, the app it launches (by the app's ID in the workspace), whether anonymous access is allowed, and when it was created. Expired links, and links whose app has been removed from the workspace, are listed too.

ts share <id> prints those same fields for one link as labeled lines, plus when it expires, so it is meant for reading, not for piping into another command. Use --format=json if you need it structured.

Both commands take a Server Administrator. Any other account is refused.

ts share delete revokes the link. The link is marked revoked rather than erased, and every lookup filters revoked links out, so from that moment the URL no longer resolves for anyone holding it — including anonymous visitors who never signed in and have no other way back to the app. There is no un-revoke: re-sharing the app produces a new link with a new id, and the old URL stays dead. The command prompts unless you pass --force. The revocation is recorded in the audit trail with the acting administrator.

Revoking does not touch sessions that were already launched through the link. Each belongs to whoever launched it, and ts session acts only on your own sessions, so it cannot end a visitor's.

Options ​

FlagDescriptionDefault/ValuesNotes
--force, -fRevoke without confirming.delete only. Also required when running non-interactively.
--csvTab-separated output, nothing truncated.ts shares only.
--no-truncDo not truncate columns.ts shares only.

Examples ​

bash
# What has this workspace handed out?
ts shares engineering

# Anything anonymous in there? Full ids and names, untruncated
ts shares engineering --no-trunc

# One link in detail, including when it expires
ts share 7Kq2vN4pXb

# The same fields, structured
ts share 7Kq2vN4pXb --format=json

# Revoke a link that should not have been created
ts share delete 7Kq2vN4pXb --force

# Gotcha: revoking is one-way. The URL stops working for everyone
# immediately, and re-sharing mints a different id.

Output ​

text
Share:     7Kq2vN4pXb
Name:      Design review
App:       3f6a1c92-77b1-4a05-9a24-9b0c5f2e18d4
Anonymous: yes
Created:   2026-09-14T15:02:11Z
Expires:   2026-10-14T15:02:11Z (expired)

Expires reads never for a link with no expiry, and (expired) follows the date once it has passed.

Exit Codes ​

0 on success. -1 when no share id is given, and when a revoke is declined at the prompt or run non-interactively without --force. -2 when ts shares is run without a workspace, which is a parse error rather than a server response. -4 when no account is signed in. -5 when the account is not a Server Administrator. -6 when no share link has that id, when it has already been revoked, and when the named workspace does not exist.

  • ts workspace — The workspace whose links you are listing, and the source of the workspace argument.
  • ts app — The app a share link launches.
  • ts session — Your own sessions; revoking a link ends none of the sessions started through it.
  • ts audit — The audit trail, which records each revocation.