Data residency
Where data is stored and processed, measured against a jurisdiction.
Installation
pnpm dlx shadcn@latest add @lumesec/geo-residencyFirst timeRegister the @lumesec registry once, or install by URL+
Adds @lumesec to your components.json:
pnpm dlx shadcn@latest registry add @lumesec=https://elements.lumesec.ai/r/{name}.jsonOr skip the setup and install by URL:
npx shadcn@latest add https://elements.lumesec.ai/r/geo-residency.jsonUsage
import { GeoResidency, type ResidencySite, type ResidencyTransfer } from "@/components/lumesec/geo-residency";
const sites: ResidencySite[] = [
{ id: "fra", label: "Frankfurt", lat: 50.11, lon: 8.68, role: "storage" },
{ id: "dub", label: "Dublin", lat: 53.35, lon: -6.26, role: "processing" },
];
const transfers: ResidencyTransfer[] = [{ id: "fra-dub", from: "fra", to: "dub", volume: 0.6 }];
export function Example() {
return (
<GeoResidency
zone={{ label: "Germany", countries: ["DE"] }}
sites={sites}
transfers={transfers}
onViolation={(leaving) => console.log(leaving.map((transfer) => transfer.id))}
/>
);
}Behaviour
Where data is stored and processed, measured against a jurisdiction. The zone's land is lit, sites are marked inside or outside it, and transfers between sites are drawn as lines with data moving along them.
Transfers that stay inside the zone run quietly. When data on a transfer crosses the zone's border, the crossing point flares and the part outside turns into a dashed warning line; a chip counts the transfers that leave the zone.
API reference
Ref
ref points at the root HTMLDivElement.
Theming
Styled with Tailwind classes on your shadcn theme tokens, so light and dark follow your theme. The accent comes from --lumesec. See Theming.
Related
Was this page helpful?