feat: add governed Files DSAR coverage
This commit is contained in:
+38
-1
@@ -208,6 +208,39 @@ Hard purge is deliberately separate from ordinary delete:
|
||||
Automatic time-based purge scheduling is not implemented. Operators initiate
|
||||
preview, execute, and garbage collection under their local retention process.
|
||||
|
||||
### Data-subject request coverage
|
||||
|
||||
Files registers `privacy.dsar.files` when the module is active. The provider
|
||||
requires a corroborated tenant membership identifier (or a namespaced Files
|
||||
user reference), searches only that tenant, and fails explicitly if its bounded
|
||||
result limit would be exceeded. It reports managed assets, exact versions,
|
||||
folders, user-targeted shares, Form and Campaign evidence, connector
|
||||
configuration actor references, and integrity-operation evidence.
|
||||
|
||||
The export includes only governed metadata. It never embeds file bytes, blob
|
||||
storage keys, passwords, tokens, environment-variable names, secret-provider
|
||||
references, or encrypted connector values. A reviewer follows the authorized
|
||||
version download route when the file itself must be inspected.
|
||||
|
||||
The erasure plan deliberately separates four outcomes:
|
||||
|
||||
- an active share aimed at the subject can be revoked idempotently;
|
||||
- mutable creator/updater references can be detached after tenant, subject, and
|
||||
current-value revalidation;
|
||||
- legal hold, active retention, submitted Form evidence, Campaign delivery
|
||||
evidence, connector configuration history, and integrity evidence are
|
||||
retained with a reason; and
|
||||
- unstructured file content, ownership, filenames, and paths require manual
|
||||
review.
|
||||
|
||||
DSAR execution never invokes physical byte deletion. If the privacy decision
|
||||
authorizes erasure, the operator must use the separate Files soft-delete, purge
|
||||
preview, approval, execution, and blob-GC sequence. This preserves its distinct
|
||||
authority, evidence blockers, audit trail, distributed fencing, and recovery
|
||||
ledger semantics. Email, account, or identity selectors alone are insufficient
|
||||
because Files does not import the Access directory; the Access search supplies
|
||||
the corroborated membership reference for Files coverage.
|
||||
|
||||
### Find and download files
|
||||
|
||||
Files can list by owner and path, use cursor pagination, and consume incremental
|
||||
@@ -1018,6 +1051,7 @@ returning different content or credentials.
|
||||
| Organization | Folders, bulk rename preview/apply, move/copy, drag-and-drop, ZIP download, pattern resolution, and API restoration preserving versions/provenance | General file-history UI and user-driven append-version UI |
|
||||
| Sharing | User/group/tenant/campaign grants, expiry, idempotent revocation, searchable share-management UI, and campaign linkage display | Richer policy-driven share lifecycles |
|
||||
| Deletion/retention | Soft-delete and restore assets/folders/spaces; optimistic retention and legal-hold controls; preview-bound, approval-referenced hard purge; reference-checked blob GC; immediate audited connector-secret scrubbing | Automatic time-based purge scheduling and richer lifecycle administration UI |
|
||||
| Privacy requests | Tenant-scoped bounded DSAR metadata search; retained/manual/revoke/detach planning; idempotent share revocation and mutable actor-reference detachment; explicit separation from byte purge | Content-specific automated redaction and policy-specific approval remain manual or belong to the owning process |
|
||||
| Connector governance | Scoped profiles/credentials/policies, effective source explanation, separate credentials, linked user/group spaces | Provider-owned external secret lifecycle; API `secret_ref` remains rejected |
|
||||
| HTTP connectors | Pinned, bounded, no-redirect Seafile and WebDAV/Nextcloud browse/import/manual sync | Background/folder sync, remote mutation, long-running transfer workers |
|
||||
| SMB and S3 connectors | Provider descriptors, browse/import/manual sync, pinned SDK transports, redirect/retry/referral transport-contract tests, and explicit conditional S3 write-back with Core-ledger recovery | Live topology smoke evidence, provider-specific OAuth, additional provider writes, and background indexing remain separate deployment or connector-module concerns |
|
||||
@@ -1053,7 +1087,10 @@ Before releasing Files:
|
||||
and applied orphan cleanup; inspect their `files` operations in Ops.
|
||||
11. Exercise a Form evidence grant, token replay, wrong-submission reference,
|
||||
expired token, unsupported media type, and quarantined-file rejection.
|
||||
12. Update the implemented/planned table whenever a boundary changes.
|
||||
12. Exercise a Files DSAR search/plan, repeat an approved reversible action, and
|
||||
confirm retained file content can only be erased through the separate purge
|
||||
authority and recovery path.
|
||||
13. Update the implemented/planned table whenever a boundary changes.
|
||||
|
||||
## Related documents
|
||||
|
||||
|
||||
Reference in New Issue
Block a user