# Parse REST VOC schema The Parse REST storage driver uses isolated `Voc*` classes so it can coexist with unrelated applications in a shared Parse development environment. Every class is configured for master-key-only find, get, count, create, update, delete, and field changes. Browser clients never receive the master key and access data through `saas-voc-server`. | Class | Purpose | Stable identity | | --- | --- | --- | | `VocWorkspace` | Tenant/case workspace | `publicId` | | `VocWorkspaceMember` | Workspace role and status | `workspaceId + userId` in `naturalKey` | | `VocSourceConnection` | Company relay configuration metadata | workspace/platform/kind in `naturalKey` | | `VocImportBatch` | Import provenance, totals, daily aggregates, and quality report | `publicId` | | `VocProduct` | Domestic product catalog plus derived summary/trend | workspace/platform/product in `naturalKey` | | `VocDailyMetric` | Canonical daily operating metrics | workspace/platform/product/date/source in `naturalKey` | | `VocProductRelation` | Denormalized own-product to competitor mapping | workspace/platform/relation in `naturalKey` | | `VocReview` | Review evidence and source payload | workspace/platform/review in `naturalKey` | | `VocSyncJob` | Idempotent collection queue record | `publicId` and `idempotencyKey` | | `VocSyncJobEvent` | Sync progress and failure events | `publicId` | | `VocAnalysisRun` | Truthful pending/completed analysis lifecycle | `publicId` | | `VocActionItem` | Operational action workflow | `publicId` | | `VocAlert` | Risk/data-quality alert workflow | `publicId` | | `VocAuditLog` | Workspace-scoped write audit trail | `publicId` | Parse does not provide the same relational constraints as the PostgreSQL `voc` schema. The application therefore validates enums and permissions with Zod/RBAC, uses deterministic natural keys for idempotency, denormalizes relation identities, and restricts the current Parse worker to a single process because claim-by-update is not a SQL row lock. The current Demashi acceptance totals are: ```text VocProduct 2817 VocDailyMetric 9717 VocProductRelation 40 VocReview 0 ``` Run `npm run verify:parse-rest -- demashi jd` after schema changes or imports. A zero review count is intentional until the company relay returns verified review evidence.