ShareSafe Local only

Redact log files before you share them

Drop .log or .txt files from a bug report or support ticket. User IDs, emails, IP addresses, tokens and passwords are replaced, and each value gets the same placeholder in every file — so one request still lines up across the gateway and the worker log.

Drop files here

Files are read in this tab and never uploaded.

  • .json
  • .csv
  • .tsv
  • .log
  • .txt

Up to 10 files, 10.0 MB each, 30.0 MB in total. UTF-8 only.

One user, two log files

− before+ after
api-gateway.log
Before: client_ip=203.0.113.24 user=U5523 email=dana@example.com
After: client_ip=ip_001 user=user_001 email=person_001@example.invalid
billing-worker.log
Before: charge failed user=U5523 order=ORD-88310
After: charge failed user=user_001 order=order_001
billing-worker.log
Before: receipt queued for dana@example.com, order ORD-88310
After: receipt queued for person_001@example.invalid, order order_001

The last line has no key=: values already selected elsewhere are replaced in free text too.

How it works

  1. Add files

    Drop JSON, CSV or log files, or paste text. They are read in this tab; nothing is uploaded.

  2. Choose what to hide

    Suggestions find IDs, emails, names, order numbers and keys. Fields that hold the same values share one numbering.

  3. Review & download

    Compare before and after, check what may remain, then download the files with a short report.

What gets replaced in a log

ShareSafe reads each line as text and suggests rules from the key names it finds in key=value, key: value and "key": "value" form. Nothing is replaced until you enable a suggestion — Enable recommended & process does that in one click.

Suggested for keys likeBeforeAfter
user, user_id, customer_id, accountuser=U5523user=user_001
email, plus any email addressdana@example.comperson_001@example.invalid
client_ip, remote_addr, ip203.0.113.24ip_001
order, invoice_id, txnorder=ORD-88310order=order_001
password, token, authorization, api_key, cookiepassword=hunter2-demopassword=[REDACTED_PASSWORD]
request_id, trace_id (optional, off by default)request_id=req-7f3a2crequest_id=request_001

Everything else stays as it was: timestamps, log levels, paths, the number of lines and the line endings (LF, CRLF or CR). IDs become numbered placeholders, so you can still tell two users apart; credentials become a fixed marker.

What it does not do

  • Names, street addresses and phone numbers written in free text (“called Dana on 555…”) are not detected. Add them as literal values.
  • A secret without a key name in front of it, such as a bare sk_live_… string, is only caught if the same value is selected somewhere else. JWTs and Bearer tokens are detected by pattern.
  • IPv6 addresses are not detected.
  • Values with unusual quoting may not be picked up from their key; add a literal rule for them.
  • UTF-8 only; up to 10 files, 10 MB each and 30 MB in total.

Questions

Does it handle JSON-lines (NDJSON) logs?

Yes, as text: save or rename the file as .log and "key": "value" pairs are matched on every line. There is no NDJSON-specific parsing yet. For a single JSON document, use the JSON redactor.

How can I check that nothing was missed?

After processing, the Checks tab lists values that still look like emails, IP addresses or tokens, and values that were replaced in one place but still appear in another. Downloads ask you to review them first. It is a second look, not a guarantee — read the output before you share it.

Can I get the original values back later?

No. The mapping lives in memory in this tab and is dropped when you refresh or clear the task; it cannot be exported.

Replacing selected values does not guarantee anonymity. Suggestions are hints, not a complete scan; review the output before sharing it.

Last reviewed .