import type { PseudonymMapping } from '../lib/api' // The entity -> pseudonym table returned by de-identification. Shown so demo // users understand the mapping is real and theirs to store; the server never // keeps it. export default function MappingTable({ mapping }: { mapping: PseudonymMapping }) { const rows = Object.entries(mapping.entries).flatMap(([label, byPseudonym]) => Object.entries(byPseudonym).map(([pseudonym, original]) => ({ label, pseudonym, original })), ) if (rows.length === 0) return null return (

Pseudonym mapping

Returned to the caller for secure storage — this is what makes de-identification reversible by an authorized party. The server does not keep it.

{rows.map((r) => ( ))}
group pseudonym original
{r.label} {r.pseudonym} {r.original}
) }