Repository navigation
v0.8.0 — Merged CDS entity translation surface
Added — Merged CDS entity translation surface (cds_entity)
A new virtual, LISA-only target_type (not a backend type) that treats a CDS view and its metadata extension (DDLX) as one translation surface, fanned out to the two real backend targets.
Read — TranslateGetTexts(target_type: "cds_entity") issues both backend reads (data_definition and metadata_extension), concatenates them (view first), and returns each row carrying the owner the ABAP backend stamps ("data_definition" / "metadata_extension") — read from the row, never derived. DDLX labels are included automatically (no second call). Rows are not deduplicated across owners. Positional UI labels stay as the bare attribute plus a separate position (1-based). If one sub-read fails, the successful rows are still returned with the failure attached under errors (partial success).
Write — TranslateSetTexts(target_type: "cds_entity") groups rows by owner and writes each group to its physical object in one backend call (each locked/transported once). Every row must carry owner — a write with any row missing it is rejected (LISA never guesses). Entity-level texts go out with an empty field_name (fixes the ENDUSERTEXT.LABEL error from an inherited field_name). Writes are not atomic across the two objects: the result reports per-owner { written, success, error? }, and a partial write returns success: false.
The single-object data_definition / metadata_extension (and all non-CDS) targets are unchanged — one 1:1 backend call. Logic is shared in @lisa/core, so the standalone MCP server and the ARC-1 extension behave identically. Includes the coupled ABAP backend change (classic + cloud) that stamps owner on every CDS list_texts row.
Full changelog: https://github.com/ClementRingot/LISA/blob/v0.8.0/CHANGELOG.md