Platform ModulesPrivacy Rights (DSAR)
Platform Modules

Privacy Rights Manager (DSAR)

Manage data subject access requests end-to-end with configurable intake forms, identity verification, automated workflows, and audit logging.

Privacy Rights Manager (DSAR)

The Privacy Rights Manager provides a complete solution for handling Data Subject Access Requests (DSARs) under GDPR, CCPA, and other privacy regulations. It covers the full lifecycle from request intake through fulfillment, with configurable workflows, automated task assignment, and tamper-evident audit logging.

The DSAR module is part of neostra-core and exposes both public-facing endpoints (for data subjects) and internal endpoints (for your privacy team).


Request Lifecycle

The following diagram illustrates how a data subject request moves through the system from submission to completion.


Core Components


Getting Started

Configure Request Types

Define the types of requests your organization accepts. Common types include data access, data deletion, data correction, and opt-out requests.

Navigate to Settings > Privacy Rights > Request Types and create entries for each type you need to support. Each type can have its own SLA deadlines and default workflow.

Build an Intake Form

Use the no-code form builder to create your intake form. Add fields, configure conditional visibility rules, and set validation requirements.

{
  "name": "General DSAR Form",
  "fields": [
    {
      "type": "select",
      "label": "Request Type",
      "key": "requestType",
      "required": true,
      "options": ["Data Access", "Data Deletion", "Correction", "Opt-Out"]
    },
    {
      "type": "text",
      "label": "Additional Details",
      "key": "details",
      "visibleWhen": {
        "field": "requestType",
        "operator": "equals",
        "value": "Data Access"
      }
    }
  ]
}

Use Publish to make the form live or Discard to revert draft changes. Each publish creates a new version.

Set Up a Workflow

Create a workflow that defines the stages a request passes through after verification.

Workflows follow a draft/publish cycle. Changes to a workflow do not take effect until you publish. Existing in-flight requests continue using the workflow version they started with.

Define stages such as "Triage", "Data Collection", "Legal Review", and "Fulfillment". For each stage, configure:

  • Assignment rules (auto-assign to a team or individual)
  • Due date offsets (e.g., 5 days from stage entry)
  • Transition rules (conditions that trigger movement to the next stage)

Configure Identity Verification

Enable email verification and digital affidavit signing. When a data subject submits a request, they receive a verification email. After confirming their email, they are presented with a digital signature pad (powered by Vue Signature Pad) to sign an affidavit.

Deploy the Subject Portal

The subject portal gives data subjects a self-service interface to track their requests, exchange messages with your team, and download any files you provide.

Embed the portal link in your verification emails and response communications.


API Reference

These endpoints are accessible without authentication and are intended for data subjects.

Submit a Subject Request

curl -X POST https://api.neostra.io/v1/public/subject-request/create \
  -H "Content-Type: application/json" \
  -d '{
    "intakeFormId": "form_abc123",
    "formData": {
      "requestType": "Data Access",
      "firstName": "Jane",
      "lastName": "Doe",
      "email": "jane.doe@example.com",
      "details": "Please provide all data associated with my account."
    }
  }'

Response (201 Created):

{
  "requestId": "sr_7f3a9b2e",
  "status": "SUBMITTED",
  "verificationEmailSent": true
}

Complete Identity Verification

curl -X POST https://api.neostra.io/v1/public/subject-request/verification \
  -H "Content-Type: application/json" \
  -d '{
    "requestId": "sr_7f3a9b2e",
    "verificationToken": "tok_abc123",
    "affidavitSignature": "<base64-encoded-signature>"
  }'

Workflow Configuration


Conversations and Subject Portal

The Conversations system (via ConversationController) enables secure messaging between your privacy team and data subjects.

  • View and respond to messages from the internal dashboard
  • Attach files for the data subject to download
  • Internal notes (visible only to your team) can be added to any request

Dashboard and Analytics

The DSAR dashboard provides real-time visibility into request volumes, SLA compliance, and team workload.

Dashboard data is powered by materialized views that are refreshed nightly for historical metrics. Incremental updates for current-day activity are applied in real time via AOP interceptors, so the dashboard always reflects the latest state.

Key metrics include:

MetricDescription
Open RequestsTotal requests currently in progress
Average Resolution TimeMean days from submission to closure
SLA Compliance RatePercentage of requests resolved within deadline
Requests by TypeBreakdown by request type (access, deletion, etc.)
Overdue RequestsRequests past their SLA deadline
Tasks by AssigneeWorkload distribution across team members

Audit Logging

All actions within the DSAR module are captured by the AOP-based audit system using the @LogAudit annotation.

@LogAudit(action = "SUBJECT_REQUEST_UPDATED", resource = "SubjectRequest")
public SubjectRequest updateRequest(String requestId, UpdateRequestDTO dto) {
    // Business logic here
}

Every audit entry captures the actor, the action performed, the affected resource, and contextual metadata. Audit logs are immutable and retained according to your organization's data retention policy.


Permissions Reference

PermissionDescription
subject-requests:createCreate and update subject requests
subject-requests:viewView individual subject request details
subject-requests:listList and search subject requests
workflows:createCreate new workflows
workflows:editEdit and publish/discard workflow drafts
tasks:viewView task details and task queue
tasks:editUpdate task status, assignment, and notes

Public endpoints (/api/v1/public/*) do not require authentication. Ensure your network policies and rate limiting are configured appropriately to prevent abuse.