# Selected capability notes

Updated: 2026-10-18

These selected records explain the examples on [Why VirtualOrg](/why). They come from the synchronized catalog and its generated test report. This is a dated snapshot, not a fresh acceptance run or a statement that a whole feature family is supported.

A local pass establishes the listed tests on the reported source. A partial reference match applies to the recorded profile. Fully supported applies only when no limitation remains within a row's declared contract. Importing a permission definition does not establish enforcement for every user or execution path.

Runtime 0.7.25; report 2026-10-18T23:25:46.976Z; source 451d23463d9281665d0e752eed47e648a93636a9; digest sha256:1dc0fc3a28554de5a5c1497aa63941d9e95c7652fc2f735c8a9ae7917f1fe554.

## Object CRUD permissions

ID: permissions.object-crud-permissions

Reference status: Partial (partial). Local status: Local tests passed; tested runtime 0.7.25.

### Declared requirements

- A positive example within the declared scope.
- Boundary and invalid-input examples with expected errors.
- Authorization and transaction behavior where applicable.
- A reproducible reference observation or exact official specification.
- A Virtual Org result bound to code revision, runtime configuration, and fixture digest.

### Limits

- Profile-owned and assigned permission sets; Modify/View All Data; no permission set groups or muting
- Create/edit without delete: DELETE fails INSUFFICIENT_ACCESS_OR_READONLY; updates without edit fail CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY
- Differential match is profile-bound; broader parity unverified

Tests: VO-DIFF-007 (integration/reference.test.ts:43); VO-E2E-007 (integration/org.test.ts:96); VO-DIFF-051 (integration/reference-perms.test.ts:25); VO-DIFF-052 (integration/reference-perms.test.ts:26)

## Profile object permissions

ID: profiles.profile-object-permissions

Reference status: Partial (partial). Local status: Local tests passed; tested runtime 0.7.25.

### Declared requirements

- A positive example within the declared scope.
- Boundary and invalid-input examples with expected errors.
- Authorization and transaction behavior where applicable.
- A reproducible reference observation or exact official specification.
- A Virtual Org result bound to code revision, runtime configuration, and fixture digest.

### Limits

- Standard profiles' object permissions and 429 permission flags as recorded for System Administrator, Standard User, Standard Platform User and Minimum Access - Salesforce
- Custom profiles are compared only through metadata deployment
- Differential match is profile-bound; broader parity unverified

Tests: VO-E2E-007 (integration/org.test.ts:96); VO-E2E-001 (integration/org.test.ts:11); VO-DIFF-1155 (integration/reference-perms2.test.ts:33)

## Profile field permissions

ID: profiles.profile-field-permissions

Reference status: Experimental (experimental). Local status: Local tests passed; tested runtime 0.7.25.

### Declared requirements

- A positive example within the declared scope.
- Boundary and invalid-input examples with expected errors.
- Authorization and transaction behavior where applicable.
- A reproducible reference observation or exact official specification.
- A Virtual Org result bound to code revision, runtime configuration, and fixture digest.

### Limits

- Compound fields govern component field access
- Salesforce differential parity not yet verified
- Development0.7.25 admits an existing declared FieldPermissions.Field metadata reference beyond its nominal picklist describe length; ordinary strings remain bounded. The selected source capture and native demo are separate from complete field-permission parity.

Tests: VO-E2E-007 (integration/org.test.ts:96); VO-DEMO-002 (tests/demo-field-permissions.test.ts:4)

## Field read access

ID: permissions.field-read-access

Reference status: Partial (partial). Local status: Local tests passed; tested runtime 0.7.25.

### Declared requirements

- A positive example within the declared scope.
- Boundary and invalid-input examples with expected errors.
- Authorization and transaction behavior where applicable.
- A reproducible reference observation or exact official specification.
- A Virtual Org result bound to code revision, runtime configuration, and fixture digest.

### Limits

- Unreadable fields behave as nonexistent (INVALID_FIELD), including for administrators, as observed
- Differential match is profile-bound; broader parity unverified

Tests: VO-DIFF-007 (integration/reference.test.ts:43); VO-E2E-007 (integration/org.test.ts:96); VO-DIFF-001 (integration/reference.test.ts:37)

## Field edit access

ID: permissions.field-edit-access

Reference status: Partial (partial). Local status: Local tests passed; tested runtime 0.7.25.

### Declared requirements

- A positive example within the declared scope.
- Boundary and invalid-input examples with expected errors.
- Authorization and transaction behavior where applicable.
- A reproducible reference observation or exact official specification.
- A Virtual Org result bound to code revision, runtime configuration, and fixture digest.

### Limits

- INVALID_FIELD_FOR_INSERT_UPDATE for read-only fields
- Writes to read-only fields fail INVALID_FIELD_FOR_INSERT_UPDATE; describe reports createable/updateable per field security
- Administrators can write standard fields whose profile field permission is read-only (Case.AccountId); custom fields follow field security
- Differential match is profile-bound; broader parity unverified

Tests: VO-DIFF-007 (integration/reference.test.ts:43); VO-E2E-007 (integration/org.test.ts:96); VO-DIFF-052 (integration/reference-perms.test.ts:26); VO-DIFF-066 (integration/reference-activity.test.ts:23)

## Role hierarchy

ID: sharing.role-hierarchy

Reference status: Partial (partial). Local status: Local tests passed; tested runtime 0.7.25.

### Declared requirements

- A positive example within the declared scope.
- Boundary and invalid-input examples with expected errors.
- Authorization and transaction behavior where applicable.
- A reproducible reference observation or exact official specification.
- A Virtual Org result bound to code revision, runtime configuration, and fixture digest.

### Limits

- Grant access using hierarchies always on
- Users above a record owner's role read, edit and delete private standard records; access follows role changes; Grant Access Using Hierarchies off for custom objects not tested
- Differential match is profile-bound; broader parity unverified

Tests: VO-E2E-007 (integration/org.test.ts:96); VO-DIFF-101 (integration/reference-stdroles.test.ts:23)

## Owner-based sharing rules

ID: sharing.owner-based-sharing-rules

Reference status: Partial (partial). Local status: Local tests passed; tested runtime 0.7.25.

### Declared requirements

- A positive example within the declared scope.
- Boundary and invalid-input examples with expected errors.
- Authorization and transaction behavior where applicable.
- A reproducible reference observation or exact official specification.
- A Virtual Org result bound to code revision, runtime configuration, and fixture digest.

### Limits

- Source groups resolve direct, nested, role and role-and-subordinates members
- Recalculated synchronously when group membership or user roles change
- Differential match is profile-bound; broader parity unverified

Tests: VO-META-005 (tests/metadata.test.ts:51); VO-DIFF-037 (integration/reference-rules.test.ts:24)

## Backup export

ID: operations.backup-export

Reference status: Experimental (experimental). Local status: Local tests passed; tested runtime 0.7.25.

### Declared requirements

- A positive example within the declared scope.
- Boundary and invalid-input examples with expected errors.
- Authorization and transaction behavior where applicable.
- A reproducible reference observation or exact official specification.
- A Virtual Org result bound to code revision, runtime configuration, and fixture digest.

### Limits

- virtualorg-export-3: metadata, live records, deployed source, ID sequence and optional R2 file contents; no tokens; recycle bin contents are not exported
- Verified locally only; not run against a deployed Worker
- Salesforce differential parity not yet verified

Tests: VO-E2E-010 (integration/org.test.ts:152); VO-E2E-012 (integration/org.test.ts:160)

## Backup restore

ID: operations.backup-restore

Reference status: Experimental (experimental). Local status: Local tests passed; tested runtime 0.7.25.

### Declared requirements

- A positive example within the declared scope.
- Boundary and invalid-input examples with expected errors.
- Authorization and transaction behavior where applicable.
- A reproducible reference observation or exact official specification.
- A Virtual Org result bound to code revision, runtime configuration, and fixture digest.

### Limits

- Operator-authorized restore into a new org ID, keeping record IDs and re-keying R2 files; issues a session for the restored administrator
- Verified locally only
- Salesforce differential parity not yet verified

Tests: VO-E2E-012 (integration/org.test.ts:160)
