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

Đang mở Phù hợp với người mới
#1,612 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@amarkanday đang làm issue này rồi.

Từ ngày 4/11/2026.

  • #1732 của @amarkanday — đang mở

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
72/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
postgresql, python
Lĩnh vực
api, backend, database

Hướng nghiên cứu

Bắt đầu với get_multi trong backend/app/crud/base.py, hàm này tạo truy vấn phân trang theo offset mà không có ORDER BY, rồi theo dõi luồng xử lý từ handler GET /api/v1/feature-flags/. Thêm một thứ tự sắp xếp xác định, ví dụ created_at rồi đến id, và kiểm tra danh sách feature flag vẫn trả về cùng tổng số. Hoàn thành khi các trang skip/limit liên tiếp chia các flag thành các phần không chồng lấn, được xác minh bằng một bài kiểm thử phân trang. Nếu tồn tại sdk/mcp/tools.json, hãy cập nhật mô tả của list_feature_flags cho khớp.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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.

Ngôn ngữ chính
Python
Star
0
Fork
4
Merge trung bình
5 giờ 19 phút
Pull request đã merge (30 ngày)
503

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của Controlvar/controlvar

Tất cả issue của Controlvar/controlvar

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.