Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

checks: a relation kept from the stored row (calculatedActionOnUpdate keep) is read from the payload - leaving it out bypasses agree/forbidWhen

Aperta
#7,831 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
22/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
java
Ambito
backend

Direzione di ricerca

Start from the generated controller's row-level check path, where agree, forbidWhen and compare read the payload, and from SalesInvoiceProformaKeepAction, which restores Proforma after the check runs. Look at how #7673 made checks read stored system-owned fields, and extend that to kept, readOnly columns. Done when a PUT that omits a kept relation is refused by the same agree: [Proforma, Customer] check as one that echoes it.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

A row-level check (agree, forbidWhen, compare) is evaluated by the generated controller on the PAYLOAD. A relation that the record keeps from its stored row on update (calculatedActionOnUpdate: <Keep>Action, the "system-written, never picked" pattern) can be left out of the payload. The check then sees it unset and skips, and the keep action restores it right after. So the check never sees the value the row is saved with.

Found while fixing BusinessIntents/base-sales-invoices#205 on 14.81.0 (hunt run 37984537906). SalesInvoice.Proforma is kept by SalesInvoiceProformaKeepAction, and the new check is agree: [Proforma, Customer] onProperty Customer (#7677):

PUT SalesInvoice/27 {...row, Customer: <other>}                  -> 400 "bills the proforma's customer"   (Proforma echoed)
PUT SalesInvoice/27 {...row, Proforma: null, Customer: <other>}  -> 200, stored Proforma 2 + the other customer

Expected: the checks read the value the row is SAVED with. For a kept, readOnly or system-owned column that is the stored value, not the payload's absence, in the same way #7673 made checks read stored system-owned fields. Then the second PUT is refused like the first.

Lingua principale
Java
Stelle
278
Fork
97
Merge medio
15h 42m
PR unite (30g)
299

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di eclipse-dirigible/dirigible

Tutte le issue di eclipse-dirigible/dirigible

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.