Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Document optimistic concurrency: _metadata.version, ETag, If-Match → 412 (bundle #561)

Abierto Apto para principiantes
#297 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
73/100
Tipo de issue
Documentación
Claridad
Bien especificado
Estado de actividad
Activo

Línea de trabajo

Lee la documentación existente de la API sobre los datos de componentes y páginas y, después, usa el comportamiento descrito en este issue para identificar dónde deben incluirse las indicaciones sobre concurrencia y actualizaciones. Documenta _metadata.version, el comportamiento de ETag e If-Match, los casos 412, el comando de migración y los requisitos de CORS; se considera terminado cuando la documentación de la API cubra estos detalles y remita la orientación sobre la UI y el orden a nivel de módulo a la documentación de módulos.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Bundle PR components-web-app/api-components-bundle#562 (issue #561) adds optimistic concurrency for components and page data. To document:

  • _metadata.version: an integer for each row, set by Doctrine's #[ORM\Version]. A draft has its own version, starting at 1. Signed-in responses also send ETag: "<version>"; anonymous responses are unchanged.
  • If-Match: "<version>" on PATCH, PUT and DELETE is compared with the row the URL addresses. A stale version gets 412 with the current resource in GET shape. A write to a published IRI that would be redirected to an existing draft also gets 412, with the draft as the body.
  • A save that loses a race at commit gets 412 too, with or without If-Match. A DELETE is checked only against If-Match.
  • The order PATCH and /move ignore If-Match.
  • Upgrade: a new resource_version column, so run doctrine:migrations:diff.
  • CORS for cross-origin apps: expose ETag and allow If-Match.

The module side (conflict UI, ordering updates by version) is the module's own docs.

Lenguaje dominante
TypeScript
Estrellas
0
Forks
0
Merge medio
1 h 20 min
PR fusionados (30 d)
1

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de components-web-app/docs

Todos los issues de components-web-app/docs

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.