Osy#betaRun it on Osyrin: osyrin.com

Kits · Privacy

Privacy for notifications

Osysharp.Privacy's holder for Osysharp.Notifications — a person's notifications and their preferences, found by their account, in their copy of their data, kept restricted on request and erased when they ask.

Package
Osysharp.Privacy.Notifications
Install
use Osysharp.Privacy.Notifications@0;
Group
Privacy
Tests
3 in the kit’s own suite
Builds on
Identity, Notifications, Privacy

Osysharp.Privacy's holder for Osysharp.Notifications: what the app told a person in their bell, and how they asked to be mailed, under their privacy request — counted in every plan, in their copy of their data, kept restricted when they ask (Art. 18), erased when they ask.

Use case. A teammate leaves and asks to be erased. Their account is found by the request; their notifications and preferences go with it, and nobody else's. Notifications never COPY another person's words (a ticket's subject, a customer's name is read from the record when shown), so a customer's erasure needs nothing from here.

osy

use Osysharp.Privacy@0;
use Osysharp.Notifications@0;
// Osysharp.Privacy.Notifications is not written: it arrives by itself, because the app uses what it completes (`osy lock` says so)

// The privacy desk reads them to answer a request:
partial entity Notification { security { allow read when ManagesPrivacy; } }
partial entity NotificationPreferences { security { allow read when ManagesPrivacy; } }

Found only by the ACCOUNT a request proved — an address alone reaches none. Category notifications.told (Contract, portable).

Get it

Add the kit to your app’s manifest:

osy

app MyApp {
  use Osysharp.Privacy.Notifications@0;
}

Then run osy lock: it downloads the release, verifies it by its content address and pins that version in osyrin.lock. osy kits Osysharp.Privacy.Notifications shows what the kit is for, from inside your app.

Reference: osy docs security-privacy-kit.