fix(api): the feature-flag list has no defined order across pages

Abierto Apto para principiantes
#1,612 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@amarkanday ya está trabajando en esto.

Desde el 4/11/2026.

  • #1732 de @amarkanday — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
72/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
postgresql, python
Área
api, backend, database

Línea de trabajo

Empieza con get_multi en backend/app/crud/base.py, que construye la consulta paginada por offset sin ORDER BY, y sigue su recorrido desde el manejador de GET /api/v1/feature-flags/. Añade un orden determinista, por ejemplo created_at y luego id, y comprueba que la lista de feature flags siga devolviendo el mismo total. Está terminado cuando las páginas consecutivas de skip/limit dividen los flags sin solapamientos, verificado con una prueba de paginación. Si existe sdk/mcp/tools.json, actualiza la descripción de list_feature_flags para que coincida.

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

Descripción

bug

GET /api/v1/feature-flags/ pages with skip and limit, but the query behind it has no ORDER BY (backend/app/crud/base.py, get_multi: offset paging with no order). PostgreSQL then returns rows in whatever order the plan produces, which can change between two requests.

What goes wrong: a client that pages through the list (the dashboard, a script, an SDK helper, the planned MCP server's list_feature_flags) can see a flag on two pages, or on none, when the order shifts between page requests. total is still right; only the page contents are unstable.

Expected: a defined, stable order for the list (for example created_at then id), so that consecutive pages partition the flags.

When it is fixed: the fix also updates the description of list_feature_flags in sdk/mcp/tools.json (if sdk/mcp exists by then), which today says the list has no defined order, and restores the paging half of that tool's contract test.

Found while planning the MCP server (#1607). Priority is set in the pre-launch bug triage.

Lenguaje dominante
Python
Estrellas
0
Forks
4
Merge medio
5 h 19 min
PR fusionados (30 d)
503

Preparar el entorno

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 Controlvar/controlvar

Todos los issues de Controlvar/controlvar

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.