@maple-dev/alchemy: typed dashboard props, a managed refresh interval, and adopting a dashboard built in the UI
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 18/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- typescript
- Lĩnh vực
- backend-api-design, observability
Hướng nghiên cứu
Start with the @maple-dev/alchemy provider and its Dashboard, DashboardWidget, and DashboardData types; compare them with the v2 API schema for visualizations, raw_sql sources, layout, and refresh_interval_seconds. The linked open pull request #1872 is the implementation path, so read its diff and related tests rather than starting independently. Done means the typed props, managed refresh interval, and dashboardId adoption behavior are covered by tests and the provider no longer creates a duplicate dashboard when Alchemy state is absent.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Written by an AI agent (Claude) on behalf of @jasonkuhrt.
A team managing its Maple dashboards with @maple-dev/alchemy can't type-check a dashboard, can't manage its refresh interval, and can't take over a dashboard someone already built in the UI.
yield* Maple.Dashboard("service-health", {
name: "Service health",
// Type error: not a prop, though the v2 API has it.
refresh_interval_seconds: 60,
widgets: [
// Type-checks, then the API answers 400 at deploy: "timeseries" is not a
// visualization, and a raw_sql source needs its `sql`.
{ id: "requests", visualization: "timeseries", data_source: { kind: "raw_sql" } },
],
})
And declaring a dashboard that was first built in the UI creates a second one beside it, because the provider creates whenever it has no Alchemy state.
What we'd like to write instead:
// Panels as values, checked where they're written, shared across dashboards.
const requests = Maple.DashboardWidget.make({
id: "requests",
visualization: "stat",
data_source: { kind: "raw_sql", sql: "SELECT count() AS value FROM traces WHERE $__orgFilter" },
display: { title: "Requests" },
layout: { x: 0, y: 0, w: 3, h: 4 },
})
yield* Maple.Dashboard("service-health", {
...Maple.DashboardData.make({ name: "Service health", refresh_interval_seconds: 60, widgets: [requests] }),
// Take over the dashboard built in the UI.
dashboardId: "dash_…",
})
Heartbeat runs this today through a patch of @maple-dev/alchemy 0.2.4, for two dashboards. #1872 implements it.
- Ngôn ngữ chính
- TypeScript
- Star
- 1.8k
- Fork
- 120
- Merge trung bình
- 8 giờ 11 phút
- Pull request đã merge (30 ngày)
- 667
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
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 MapleTechLabs/maple
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
MapleTechLabs/maple#1921 ·
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 74/100
MapleTechLabs/maple#1888 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Alerting: Linear as a destination type, opening one issue per incidentCó thể đã có người làm @Makisuo đã nhận hôm nay. Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 20/100
MapleTechLabs/maple#1896 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 42/100
MapleTechLabs/maple#1874 ·
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
MapleTechLabs/maple#1873 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của MapleTechLabs/maple
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
marmelab/react-admin#11431 ·
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 88/100
db-ux-design-system/core-web#8655 ·
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 74/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
stripe/react-stripe-js#728 ·
-
[Upload Grade C dataset] the pop-up changes it's size while uploading the document => Jumping effectĐang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
epam/statgpt-admin-frontend#305 ·
Maintainer thường phản hồi trong vòng 1 ngày