Security
How orbslate keeps your credentials and your results where they belong.
Nothing is opened inbound. The agent runs inside your network and dials out to the service.
Your credentials stay on the agent. A kubeconfig stays in your own file; the agent writes down only the context's name and the file's path. The service holds names, versions, tiers and your policy, never a credential, and refuses a request that could carry one.
Results are never kept by the service. With the agent's MCP server, a tool's result goes from the agent to the AI client on the same machine and nowhere else; the service receives the licence check and the policy pull. Through the workspace's gateway (/mcp), the result is masked and fenced on the agent first, then passes through the service to your AI client, and is not stored: the workspace's audit keeps who asked, what, and how it was decided, with the arguments masked.
Secrets in a result (a Secret's values, a token in a log line) are masked on the agent before your AI client sees them.
Every call is your role's decision, made on the agent with a policy the service signs and the agent verifies, and a row in the agent's own audit. A call through the gateway is decided at the gateway first and again on the agent, with your role bounded by the role of the member who paired the agent.
The agent is open to inspection. It is a compiled program that unpacks; nothing in it pretends to be a secret. It checks its licence once a day and holds the last good answer for seven days offline; after that it runs no tools and says why.
What is kept, and for how long
- The service
- Your account: your address, a salted hash of your password (never the password), when you confirmed the address and last signed in, and wrong-password counts for the lockout
- until you delete your account
- The service
- Your sign-ins: a hash of each browser's session token and when it was last used
- 30 days from its last use, or until you sign out
- The service
- The links we mail or show you (to confirm an address, reset a password, join a workspace or sign up) and the codes that pair an agent: a hash of each, whom it is for and when it was used; for a pairing, the machine's name and platform
- as a record after use; each works only until it is used or expires (2 hours for a reset, 3 days to confirm, 7 days for an invitation, 10 minutes for a pairing code)
- The service
- Your workspaces: their names, members and roles, the environment rules and each published policy, a hash of each API token with its name, and each workspace's plan and, once it pays, the ids of its Stripe customer and subscription, the subscription's status and its seats. The card and the invoices are Stripe's: we never see a card number
- until the workspace is deleted, which cancels its subscription first
- The service
- The ids of the payment events Stripe sends us, so none is applied twice: the id, its type and when it came, never what it said
- 30 days
- The service
- Your agents and connections: each machine's name, version, platform, when it last checked in and which model its runs use (never the model's key); each connection's kind, name, environment, tier and what its agent reported (version, namespaces), never its credential
- until the workspace is deleted
- The service
- The apps you let into a workspace through sign-in (claude.ai, Claude Desktop): each app's name as it gave it, where its access goes, what it may do, and when it was let in and last used; the access itself is kept only as hashes and encrypted
- until you disconnect it or the workspace is deleted; its access ends when you disconnect it
- The service
- A database's map, where an agent reflected one: its tables' and columns' names and types, its keys, indexes and comments, and the database's own row estimates, never a row and never a credential
- until the connection is removed or the workspace is deleted
- The service
- What the map means: the tags and join hints people applied to its columns, the proposals waiting for a person (each tag and hint with its reason), a history of what each apply changed and who applied it, and the masking an Owner set for a tag of the vocabulary, with who set it and when
- until the workspace is deleted; a column's tags and hints go with its connection
- The service
- A write that waits for a second person's approval: the tool, where it acts, the reason, who asked and who decided, and what it answered once it ran; its arguments as they were asked only while it waits, and as the audit keeps them (secrets masked) after
- until the workspace is deleted; the arguments as asked go when it runs, is declined, or expires after 30 minutes
- The service
- The workspace's audit: a row per tool call through its gateway (and per call its agents upload, where the plan keeps the audit in the service): when, who asked (the member and the token, or the agent), the tool, the connection, the tier, the decision and the outcome, how long, how many bytes, whether personal values were shown, the arguments with secrets masked, never a result
- 7 days on Solo and 90 on Team; on Enterprise as its contract says, a year until it says otherwise. An hourly sweep deletes what is older, and everything goes with the workspace
- The service
- The address a sign-up or a password reset came from, counted to refuse a flood; and a count of the mail sent each day
- an address's count is dropped once it is an hour old, the next time that address is counted; the daily count holds no address
- The service
- The service's own settings, such as whether sign-ups are open
- until changed
- The service
- A copy of the service's database, taken daily, to recover from a disaster
- 30 days
- The host
- Request lines and errors in the host's logs (Cloudflare), never a request's body
- the host's rolling window
- The service
- Playbooks: each one's name, its text (the schedule, the connections it may use, its budget, whether it may act, and what it should do), who made it and who saved it last
- until it is deleted, or the workspace is
- The service
- Run records: when each run of a playbook began and ended, on which agent and with which model (never its key), how many tool calls and tokens, the model's final report with secrets masked on the agent, and each call's audit metadata (the tool, the connection, the tier, the decision and the outcome, how long, how many bytes, the arguments masked), never a result
- 90 days; an hourly sweep deletes what is older, and everything goes with the workspace
- Your machine
- The agent's own copy of each run's record, and the playbooks it was last given
- 30 days for the records; the playbooks until the next pull
- Your machine
- The model key Runs use, in this machine's keyring; the prompts and the tool results of a run go only to the model provider you chose, from this machine
- until `model remove`
- Your machine
- The agent's audit: a row per tool call (when, the tool, the connection, the tier, the decision and the outcome, how long, how many bytes, the arguments with secrets masked), never a result
- 30 days
- Your machine
- The agent's log of its own events, with no secrets and no results
- 7 days
- Your machine
- The map of each database the agent reflected, as it last read it: the same names, types, keys, comments and estimates, never a row
- until the connection is removed
- Your machine
- The tags and join hints applied on this machine, the proposals made here, and a history of what each apply changed
- until you delete the agent's folder
Reporting a vulnerability
If you find a way past any of this, write to support@orbslate.com. Tell us what you did and what you saw; we answer every report.