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

If-Overwritten-Version header not enforced when accessed via TinyNode

Aperta
#230 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
javascript
Ambito
api, backend

Direzione di ricerca

Inizia da controllers/overwrite.js e segui il percorso della richiesta /overwrite, quindi confrontalo con la gestione di /overwrite di TinyNode e con la issue 106 correlata di TinyNode. Verifica se If-Overwritten-Version raggiunge il server RERUM e se valori non corrispondenti producono 409 Conflict invece di 200 OK. Il lavoro è completato quando il comportamento documentato di optimistic locking viene applicato oppure viene identificata chiaramente la lacuna di integrazione/configurazione.

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

Descrizione

Summary

The If-Overwritten-Version header for optimistic locking is documented in the RERUM API but does not appear to be enforced when /overwrite requests come through TinyNode (tiny.rerum.io).

Background

According to the RERUM API documentation and the server code in controllers/overwrite.js, the If-Overwritten-Version header should be checked against __rerum.isOverwritten to detect concurrent edit conflicts.

The server code shows this logic:

const expectedVersion = req.get('If-Overwritten-Version') ?? req.body.__rerum?.isOverwritten
const currentVersionTS = originalObject.__rerum?.isOverwritten ?? ""
if (expectedVersion !== undefined && expectedVersion !== currentVersionTS) {
    // Should return 409 Conflict
}

The Problem

When accessing RERUM through TinyNode (tiny.rerum.io/overwrite), the If-Overwritten-Version header is sent correctly but the version check is not enforced - requests succeed even with version mismatches.

Steps to Reproduce

  1. Load an object via store.rerum.io/v1/id/{id} - note __rerum.isOverwritten (e.g., 2025-11-30T20:31:57.853)
  2. Send /overwrite to tiny.rerum.io - this updates isOverwritten to new value
  3. Send another /overwrite to tiny.rerum.io with header If-Overwritten-Version: 2025-11-30T20:31:57.853 (old value)
  4. Expected: 409 Conflict
  5. Actual: 200 OK, silent overwrite

Questions

  1. Does TinyNode pass through the If-Overwritten-Version header to RERUM?
  2. Is the optimistic locking check implemented in TinyNode or expected to be handled by RERUM?
  3. Is there a configuration needed to enable this feature?

Related

Lingua principale
JavaScript
Stelle
3
Fork
6
Merge medio
4g 9h
PR unite (30g)
5

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 CenterForDigitalHumanities/rerum_server_nodejs

Tutte le issue di CenterForDigitalHumanities/rerum_server_nodejs

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.