Skip to content
NewYour data: charts, lists and meters that take your records
<GeoResidency />ReactAccess & securityFree

Data residency

Where data is stored and processed, measured against a jurisdiction.

View as Markdown
<GeoResidency />

Tryturn on Send analytics to us-east and watch where it crosses the border.

Installation

pnpm dlx shadcn@latest add @lumesec/geo-residency
First 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}.json

Or skip the setup and install by URL:

npx shadcn@latest add https://elements.lumesec.ai/r/geo-residency.json

Usage

geo-residency-example.tsx
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.

Was this page helpful?