Feature: read_only

Table of Contents

This page is one authored MASD feature in ORE Studio Variability Model § "Projection configuration: how an existing artefact family is shaped". Any profile that fixes this feature's value links here rather than restating its effect.

1. Identity

Field Value
Literal name :read_only:
Bundle structural (Keys and columns)
Type bool
Default false

2. Effect

The table is provisioned outside the application, so the generated code offers no way to write it. org_loader.py folds the value into wire_write_enabled, and the protocol derivation drops every message whose name starts with a write prefix and every write-only record. The result on the wire is list, get and get_many, and nothing else. There is no put_, no delete_, and no create or removal record.

The entity keeps its reads and its version reads where the table has them. A read-only bitemporal entity still answers list_*_versions and get_*_version, because those are reads.

The flag is authored at the entity root, in the * Flags drawer, alongside :has_tenant_id:. :client_read_only: is the junction-only relative: it leaves the repository writable for a server-side producer and suppresses only the verbs a client reaches. The loader rejects :client_read_only: on a domain_entity and directs the model to this feature instead.

3. Structural consequence

None. No column, member or class appears or disappears. The value suppresses messages in the protocol and the handler, which is behaviour rather than shape.

4. Used by

5. See also

Emacs 29.3 (Org mode 9.6.15)