SharetoBoard
Local threat model · 0.3.0rc13 release candidate

TentaClaw local security and incident manual.

Protect the account-wide Poppy credential on the user’s computer, approve exact destinations, minimize content, treat returned material as untrusted, and keep the MCP boundary local.

Local-only invariant: TentaClaw has no MCP HTTP listener, public URL, OAuth layer, tunnel, proxy, container deployment, VPS, or cloud-service path.

Assets and local trust boundaries

Protected assets

  • Account-wide Poppy API key
  • Private board/chat/conversation content and identifiers
  • Poppy credits and conversation integrity
  • Local board/chat allowlist
  • Local configuration and audit metadata

Boundaries

  • Human ↔ local MCP client
  • Local MCP client ↔ TentaClaw child process over stdio
  • TentaClaw ↔ current user’s protected files
  • TentaClaw ↔ Poppy over fixed-host HTTPS
  • Poppy output ↔ model/user as untrusted data

No inbound network trust boundary exists because TentaClaw opens no listener.

Primary threats and controls

ThreatPrimary controlResidual risk
Credential enters model or transcriptHidden init input, separate owner-protected key file, no key or key path in client configurationA compromised local user/client can access local process or files
Unsafe key/config filePOSIX symlink, type, owner, mode, and size checks; Windows setup applies an owner-only ACLAdministrator/root or later ACL changes
Wrong board or chatGuided explicit selection, fail-closed allowlists, filtered discoveryUser can deliberately approve broad access
Redirect or destination substitutionHTTPS origin validation, exact host allowlist, redirect denial, fixed API pathsTrusted upstream compromise
Credit/state duplicationPoppy POST operations are never retried automatically; tools are marked non-read-onlyUser/client can intentionally repeat a call
Prompt injection in Poppy contentSkills treat output as data and forbid operational obedienceModel may still mishandle persuasive content
Oversized/slow responseRequest/response limits, streaming response cap, timeout, GET-only bounded retriesUpstream work can occur before the cap is observed
Sensitive loggingMetadata-only audit events, generic errors, recursive credential redactionThe local MCP client controls its own transcript/log behavior

Local credential and policy files

poppy_api_key

Contains only the Poppy key. tentaclaw-mcp init writes it after live validation and protects it for the current user.

config.json

Contains non-secret settings and explicit approved destination IDs. New destinations remain denied until setup is rerun.

Never: paste the key into chat; put it in a skill, source file, command argument, client JSON/TOML/YAML, URL, screenshot, support ticket, or ordinary log; ask the agent to read the key file.

Data handling

Suspected exposure response

  1. Stop the local client. This stops its TentaClaw child process.
  2. Rotate at Poppy. Revoke/reissue the Poppy key; moving the same exposed value is not remediation.
  3. Remove exposed copies. Sanitize chat exports, workspace files, shell history, logs, screenshots, and source-control entries using each platform’s procedure.
  4. Review scope. Determine which approved/account-visible destinations, credits, and conversations may have been affected.
  5. Reconfigure locally. Run tentaclaw-mcp init with the replacement key and explicit policy.
  6. Retest. Run status, doctor, and a disposable six-tool canary before returning to production data.
  7. Report product defects safely. Email security@sharetoboard.com without the key or private content.

Security non-claims