POST /api/collections returns 500 instead of 400 for ADM validation failures
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đá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
- 86/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ệ
- javascript
Hướng nghiên cứu
Bắt đầu tại collections-controller.js:create() và kiểm tra cách các lỗi validation của BaseService.create() được xử lý, sử dụng bước tái hiện với POST /api/collections làm điểm vào. Giữ nguyên chi tiết validation có cấu trúc của 400 và xác minh rằng x_mitre_domains không được hỗ trợ và x_mitre_contents rỗng trả về 400 mà không persistence.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Description
Invalid collection payloads return a generic HTTP 500 instead of a validation response identifying the rejected fields.
Observed on REST API 4.24.0, commit 69b37fe769e6abe7675d413451a8361aecc36bea.
Reproduction
- Prepare a valid
x-mitre-collectionpayload containing at least one existing object revision inx_mitre_contents. - Add
"x_mitre_domains": ["enterprise-attack"]to itsstixobject. - POST the payload to
/api/collections.
Actual: HTTP 500:
Unable to create collection. Server error.
Expected: HTTP 400 with structured ADM validation details indicating that x_mitre_domains is an unrecognized collection field.
Removing x_mitre_domains allows the nonempty collection to return 201 and persist successfully. Explicitly empty x_mitre_contents also produces the same misleading 500.
Cause and suggested fix
BaseService.create() throws ValidationError, but collections-controller.js:create() maps every exception except DuplicateIdError to a generic 500. The log contains:
Failed with error: ValidationError: ADM validation failed
Preserve the normal validation-error handling and field-level details. Add regressions asserting 400 and no persistence for unsupported fields and empty contents.
These requests did not crash the REST process; REST and MongoDB remained healthy during verification.
- Ngôn ngữ chính
- JavaScript
- Star
- 56
- Fork
- 18
- Merge trung bình
- 21 giờ 14 phút
- Pull request đã merge (30 ngày)
- 10
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của mitre-attack/attack-workbench-rest-api
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
mitre-attack/attack-workbench-rest-api#513 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
mitre-attack/attack-workbench-rest-api#499 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Add ADM validation bypass for server-controlled fields on non-compliant objectsCó thể đã có người làm @seansica đã nhận 14 ngày trước. Đang mở
mitre-attack/attack-workbench-rest-api#517 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 74/100
mitre-attack/attack-workbench-rest-api#512 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
mitre-attack/attack-workbench-rest-api#511 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của mitre-attack/attack-workbench-rest-api
Issue tương tự
-
Website: add a Thai localeĐang mởgood first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
TanbirRamim/open-source-radar#353 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
Maintainer thường phản hồi trong vòng 2 ngày
-
design-review mac P3 ui
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
tosunlab/hisarapp-core#502 ·
-
enhancement status: needs triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
mastra-ai/mastra#28651 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement frontend help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
nikhilb2/simple_invoicing#470 ·
Maintainer thường phản hồi trong vòng 1 ngày