The accepted array.
[
{"id":"row-a","providerId":"company","accountId":"subject-42",
"userId":"person-a","issuer":"issuer-north"},
{"id":"row-b","providerId":"company","accountId":"subject-42",
"userId":"person-b","issuer":"issuer-south"}
]Each row requires string fields id, providerId, accountId and userId. The optional issuer may be a string, null or absent. Field names are case-sensitive. The tool accepts a JSON array only, not a report wrapper, JSONL or a database backup.
Project before importing.
Use your database's read-only export mechanism to select those fields, adapting configured table and column names. Do not include password hashes, access tokens, refresh tokens, ID tokens, sessions or email addresses. Extra fields cause the import to fail; they are not silently ignored. Identifier values themselves can still be sensitive, so prefer consistent synthetic replacements before opening the file.
Replace each distinct value consistently within a field. If two rows originally share a provider ID, they must still share its replacement. Replacing every provider with the same label would create false collisions. Replacing equal subjects with different labels would hide real ones.
Limits are explicit.
- Maximum file or pasted JSON size: 2 MiB in UTF-8. Maximum rows: 10,000.
- Required strings must be nonempty and at most 1,024 UTF-16 code units. Issuer strings are limited to 2,048.
- Every row ID must be unique. NUL and unpaired Unicode surrogate code units are rejected.
- No trimming, case folding, URL canonicalization or Unicode normalization occurs. These are tool limits, not a claim about every valid upstream value.
Say what the export covers.
The default coverage is sample or unknown. Choose the complete-scope declaration only if your export process supports it. KeyFold cannot verify that assertion. Row counts, a missing conflict and a screenshot do not prove that the production database has no other matching record.
Default aliases are for review.
On screen and in default downloads, consistent per-field aliases retain key groups and user groups. They do not retain cross-field equality: a credential row whose accountId equals userId can be displayed as subject-1 and user-1. The download is a review packet, not a database fixture to import or replay. It still reveals group sizes and source positions.
The original-identifier checkbox affects downloads independently of the on-screen reveal checkbox. The JSON review contains all rows and groups. Markdown is a readable summary, limited to the first 100 duplicate groups; use the JSON for a complete review.
Open the local importer ↗