pub struct PrivacyManifest {
pub level: String,
pub summary: String,
pub stored: Vec<StoredKind>,
pub never_collected: Vec<String>,
pub visible_to: Vec<String>,
pub retention: String,
pub on_change: String,
pub updated_at: Option<DateTime<Utc>>,
}Expand description
The privacy manifest, as GET /api/v1/privacy/agent reports it.
Generated on the server from the level it actually enforces at ingest (ADR 0011 in kasl-server), which is the whole point of reading it rather than describing the server from this side: a manifest written into kasl would describe the server kasl was built against, not the one this machine reports to.
Every field is owned by the server. Nothing here is defaulted or filled in locally - a manifest this agent could complete on its own would be one it could also get wrong.
Fields§
§level: StringThe installation’s level: full, moderate or coarse.
summary: StringOne sentence an employee can read without knowing the levels exist.
stored: Vec<StoredKind>What is kept, field by field.
never_collected: Vec<String>Named explicitly, because a reader cannot tell “we do not collect this” from “this was left off the list”.
visible_to: Vec<String>Who can see a given person’s data.
retention: StringHow long it is kept.
on_change: StringWhat changing the level does - and does not do - to what is stored.
updated_at: Option<DateTime<Utc>>When the level was last set, if the server says.