Jadpo is experimental and not ready for production. These docs follow the compiler's main branch as of 5 Nov 2026. What's built · Install 0.3.0
jadpo
ReferencePersonal data

DataPersonal data

The person

An entity that represents a person says person: true. The law calls this person the data subject: the one the data is about. Most apps have one such entity, User. You can have several, so a clinic might also have Patient, and a shop a guest Customer.

example
entity User {    ...    person: true}

You don't list which records belong to the person. A record belongs to a person when it refers to them directly: a todo through its owner_id. The compiler reads every reference to find them, and the report shows them for you to review.

A record that refers to two people, such as a message from one user to another, belongs to both. A record that refers only to another record belongs to no one: a reply someone writes on another user's todo refers to its author and to the todo, not to the todo's owner, so it belongs to its author alone.

Erasure still reaches further than a person's own records, through what it deletes (Erasure). Here a user is a person, a todo belongs to its owner, and an attachment goes with its todo. The attachment's caption is personal data, and erasing the user deletes it:

example
type Caption = Text {    max_length: 200}entity User {    id: Uuid    email: Email {        unique: true        personal: PersonalData.contact    }    person: true}entity Todo {    id: Uuid    owner_id: User.id {        on_delete: OnDelete.restricted        erase: Erasure.deleted    }    title: Caption}entity Attachment {    id: Uuid    todo_id: Todo.id {        on_delete: OnDelete.cascade    }    caption: Caption {        personal: PersonalData.identifying    }}

person: takes only true; an entity that isn't a person leaves the line out. A field may still be called person.

Markdown for agents: /docs/person-entities.md.Built from Jadpo main at aee2e8f.