json_schema_evolution
json_schema_evolution
Algoritmo y conjunto de reglas para evolucionar schemas JSON/Pydantic entre versiones sin romper la compatibilidad con consumidores existentes. Define qué cambios son seguros, cuáles requieren migración y cómo gestionar la transición entre versiones.
When to use
Usar cada vez que se necesite modificar un schema existente del sistema de verificación, ya sea para agregar nuevos campos al resultado de liveness, cambiar el formato de respuesta del OCR, o actualizar la estructura del motor de decisión. Aplicar antes de hacer merge de cualquier PR que modifique modelos Pydantic compartidos.
Instructions
- Clasificar los cambios según su impacto: aditivos (nuevo campo opcional) son seguros, destructivos (eliminar campo, cambiar tipo, renombrar) son breaking changes.
- Para cambios aditivos, agregar el nuevo campo con valor por defecto:
new_field: Optional[str] = Nonepara mantener compatibilidad. - Para breaking changes, crear una nueva versión del schema (e.g.,
V1aV2) y mantener ambas versiones activas durante un periodo de transición. - Implementar adaptadores de conversión entre versiones:
def v1_to_v2(data: SchemaV1) -> SchemaV2para migración automática. - Documentar cada cambio de schema en un changelog dedicado
backend/schemas/CHANGELOG.mdcon fecha, versión, tipo de cambio y razón. - Configurar tests automatizados que validen que datos generados con la versión anterior se deserializan correctamente con la nueva versión.
- Implementar un periodo de deprecación mínimo de 2 releases antes de eliminar una versión antigua de un schema.
Notes
More from davidcastagnetoa/skills
traefik
Reverse proxy moderno con autodiscovery nativo en Kubernetes y Let's Encrypt
67easyocr
OCR alternativo a PaddleOCR, excelente en caracteres especiales y múltiples scripts
36prisma-nestjs-patterns
>
26c4_model_structurizr
Diagramas de arquitectura C4 como código con Structurizr DSL, versionados en Git
24exif_metadata_analyzer
Analizar metadatos EXIF para detectar edición previa con Photoshop, GIMP u otros editores
19insightface_arcface
Reconocimiento facial de estado del arte con ArcFace R100 para comparar selfie con foto del documento
15