Skip to content

Latest commit

 

History

History
11 lines (8 loc) · 1.14 KB

File metadata and controls

11 lines (8 loc) · 1.14 KB
@objectstack/objectql minor
@objectstack/rest minor

feat: record clone — wire the object.enable.clone capability to a real runtime (previously a parsed-but-dead flag).

  • objectql: new protocol.cloneData({ object, id, overrides?, context? }) — reads the source record, drops engine-owned columns (id + audit created_at/created_by/updated_at/updated_by, plus system-flagged, autonumber, formula and summary fields) so the insert path re-derives them, applies caller overrides last, and inserts the copy. Shallow by design (duplicates the record's own fields, not its child records). Gated by schema.enable.clone: default-on, an explicit enable.clone === false throws 403 CLONE_DISABLED.
  • rest: new POST /api/v1/data/:object/:id/clone (201 → { object, id, sourceId, record }). Optional body { overrides } (or a bare field map) overrides copied values, e.g. a new name or a cleared unique field. Honors the same auth + enable.apiEnabled/apiMethods gates as the rest of the data surface; enable.clone === false → 403.

Reclassifies object.enable.clone dead → live in the spec liveness ledger.