Security and privacy
How sign-in works, how long it lasts, what is recorded, the limits, and what happens to your data when an app uses Docshark.
Sign-in
- Apps sign in with OAuth 2.1, the standard the MCP specification requires. You never give an app your Docshark password or an API key.
- Docshark runs its own sign-in for apps at
dashboard.doc-shark.com. It reuses your normal Docshark session, so you sign in the way you always do. - Every sign-in uses PKCE with S256. A sign-in code is useless without the secret the app kept, so an intercepted code cannot be used.
- Docshark only sends you back to an address the app registered. Web apps must use
https. Desktop apps may use a local address on your own computer (127.0.0.1orlocalhost) or their own app link, such ascursor://orvscode://. - The consent page says which app is asking. For apps Docshark knows (Claude, Claude Code, ChatGPT, Cursor, VS Code) it names them from where they send you back. For any other app it warns you that the app named itself, and shows the address you will return to.
How long a sign-in lasts
| Item | Lifetime |
|---|---|
| Sign-in code | 1 minute, used once |
| Access token | 1 hour |
| Refresh token | 30 days, replaced every time it is used |
| The whole connection | 90 days from when you pressed Allow, however often it is renewed |
After 90 days the app asks you to allow it again.
Refresh tokens are single use. If a used refresh token comes back more than 30 seconds after it was replaced, Docshark treats it as stolen and ends the whole sign-in. The app then has to ask you again.
Tokens are stored only as hashes. Docshark cannot read a token back, and a copy of the database would not contain usable tokens.
Ending a connection
- Disconnect under Settings → Connectors ends it at once. Every token stops working on its next use.
- Leaving the workspace, losing your Docshark role, or the owner turning Mako off ends or blocks it too.
- An app can end its own sign-in through the revocation endpoint.
What is recorded
For every call Docshark records: the tool, when it ran, how long it took, whether it worked, the app's name, whether it was a change, and the names of the fields the app sent. The person and workspace are stored as keyed hashes, not in the clear.
The record never holds the values the app sent or the content of your documents.
If Docshark cannot write this record, the action does not run. The app is told "docshark could not record this action, so it did not run", and nothing changes.
Docshark also emails you when a new app connects, naming the app, the workspace and the time, with a link to disconnect it.
Limits
| Limit | Value |
|---|---|
| Calls per connection | 120 per minute |
| Changes per connection | 20 per minute |
| Request size | 1 MB |
| Upload through an app | 20 MB per file |
| Result size | 60,000 characters, then cut short with a note |
Sign-in endpoints have their own limits per network address. They are sized for the apps' shared servers, so normal use never reaches them.
When a limit is reached, Docshark answers 429 with Retry-After: 60, or for changes, a plain message to wait a minute.
Your data
- When an app calls a tool, Docshark sends it the result: document names, envelope and recipient details, room contents and so on. Only what that call needs.
- From then on, the app's provider handles that information under its own terms and privacy notice. Review them before you connect.
- Docshark does not use what apps send or receive to train models.
- The Docshark Privacy Notice, section 9, covers connected AI apps.
Workspace controls
- Mako on or off. Apps can only use Docshark in workspaces where Mako is on. The workspace owner turns it off under Mako settings, and every app stops there at once.
- Roles. What an app can do follows each person's role. Narrow a role and every app that person connected is narrowed with it.
- Every connection in one place. People who manage the Docshark team see every connection in the workspace under Settings → Connectors and can disconnect any of them.