dashboard-builder
Skill13 starsChanged 33 days agoMITView on GitHub
Quản lý dashboard Cogover qua Web App API `/api/v{N}/dashboard-server` (phiên Web App từ $cogover-api-auth, không nhận API Key trực tiếp): tạo, đọc, cập nhật, nhân bản, xoá; component/biểu đồ từ saved report của $report-builder, layout, dashboard filter; chẩn đoán dashboard không hiển thị đúng. Dùng khi cấu hình dashboard bằng API.
14 other projects use a version of this.
Adopted by
Most recently taken up by
- Rojios/everything-claude-codetheir own version, first seen Nov 8, 2026
- AxlZero21/Skillstheir own version, first seen Nov 8, 2026
- pankaj-mahaur/Agent-Daemontheir own version, first seen Nov 6, 2026
- eosphoros-ai/DB-GPTtheir own version, first seen Nov 1, 2026
- reatlat/fullstory-claude-plugintheir own version, first seen Oct 30, 2026
- renepf/claude-skillstheir own version, first seen Oct 25, 2026
Other versions14 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 14
- eosphoros-ai/DB-GPT★ 20ksame name
- QwenLM/qwen-code-examples★ 143same name
- Fmarzochi/EGC★ 61same name
- reatlat/fullstory-claude-plugin★ 36same name
- gongyijie85/dsh-ecc★ 8same name
- hacker943410-debug/ai-harness★ 2same name
- AxlZero21/Skills★ 1same name
- Rojios/everything-claude-code★ 1same name
- SamuelNDCE/claude-super-skill-library★ 1same name
- ckt520728/claude-skills★ 0same name
4 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository23 other files it gives its agents.
- agent-builderSkill
- app-menu-managerSkill
- build-cogover-appSkill
- cogover-api-authSkill
- cogover-custom-moduleSkill
- cogover-iconSkill
- cogover-overviewSkill
- create-cogover-objectsSkill
- document-templateSkill
- layout-scriptingSkill
- object-buttonSkill
- object-filterSkill
- object-formSkill
- object-history-trackingSkill
- object-infoSkill
- object-layoutSkill
- object-path-componentSkill
- object-recordSkill
- object-transition-ruleSkill
- process-creatorSkill
- record-emailSkill
- report-builderSkill
- user-permissionSkill
The file
Files
Dashboard Builder
- Phiên bản:
1.2.0 - Ngày phát hành:
2026-10-06
Cấu hình dashboard bằng API, không cấu hình qua UI, theo chuỗi: xác nhận workspace → tạo phiên Web App → đọc state → lập payload đầy đủ → mutation → đọc lại và kiểm chứng. Saved report và report field cho chart do $report-builder tạo và preview trước; skill này không tạo report.
Chuẩn bị
- Credential, header và quy ước response/lỗi chung: theo $cogover-api-auth. Mọi thao tác gọi
POST /api/v1/dashboard-serverbằng phiên Web App đổi từ API Key; không gửi API Key trực tiếp tới endpoint này. Ngoại lệ riêng: gửix-req-type: 9, response là nguyên kết quả service (r,msg,data,meta) ở root, không bọcbody; kiểm tra HTTP status vàrở root (Response và kiểm chứng); lỗi đặc thù ở Xử lý lỗi. - Đọc references/api-contract.md (service, payload, ràng buộc field) trước khi gọi API; đọc references/dashboard-model.md trước khi thêm hoặc sửa component, chart, layout, dashboard filter.
- Contract chỉ lấy từ tài liệu trong skill, tài liệu API chính thức do người dùng cung cấp và response API thực tế; không đọc source code, repository, bundle JavaScript hay source map; không dùng browser/UI để suy ra request. Giao diện chỉ dùng để nghiệm thu hiển thị theo Trả kết quả;
/settings/dashboards/...là deep-link quản trị trả cho người dùng. - Sau khi tạo phiên, probe chỉ đọc bằng service
6; dừng khi401/403,r != 0, workspace lệch hoặc response khác contract. Helper script scripts/dashboard_api.py: base URL và API Key qua biến môi trường hoặc secret manager; mặc định dry-run, thêm
--executeđể gửi, mutation (service3,4,5,20) thêm--apply.python3 scripts/dashboard_api.py --service 6 --payload '{"size":20,"page":1,"filters":[]}' --execute
Quy trình
1. Chuẩn hoá yêu cầu
Xác định workspace; thao tác (tạo, sửa, nhân bản, xoá); name, slug, description, layoutSize (9 hoặc 12), colorPalette; component cần có, saved report nguồn và field dùng cho group/measure/filter; bố cục và tiêu chí nghiệm thu. Dashboard đích, report nguồn, metric, filter hoặc phạm vi xoá còn mơ hồ: hỏi trước mutation.
2. Đọc state và resolve ID
Service 6: list với pagination, sort, filters; detail với getDetail: true và filter slug = ... hoặc id = ... (List và detail). Chỉ thao tác khi resolve đúng một dashboard; tên khớp nhiều resource thì dừng và yêu cầu chọn bằng ID/slug.
3. Chuẩn bị saved report và chart
Với chart dựa trên báo cáo:
- Dùng
$report-buildertìm hoặc tạo saved report và preview đúng trước khi tạo chart; đọc saved report detail lấy ID/slug và report field ID thật. Không gán object field ID vào nơi yêu cầu report field ID. - Chọn
typevà lậpconfigtheo references/dashboard-model.md. Không tự dựng config phức tạp từ phỏng đoán: deep-copy một component cùngtypeđang chạy đúng từ API response làm base, chỉ thayreportId, field ID, tiêu đề, filter, palette; giữ key chưa biết. - Tạo UUID mới cho
chartId;location.ivàconfig.chartIdbằng đúngchartId. - Rà Lỗi hiển thị đã gặp với từng chart: số cấp group hàng của saved report nguồn, kích thước metric, slug của các aggregate trong cùng chart.
4. Tạo dashboard
- Kiểm tra trùng
slug/namebằng service6; lập payload theo Create và update. - Dashboard có chart: validate trước khi gửi — không trùng
chartId; mỗi component đủtype,location,config; layout không vượt grid; saved report tham chiếu tồn tại. - Gọi service
3, rồi đọc detail theo slug và đối chiếu toàn bộ metadata/component.
5. Sửa dashboard
Service 4 thay thế toàn bộ cấu hình theo payload, không partial:
- Đọc detail mới nhất (service
6,getDetail: true); deep-parse chuỗi JSON nếu gateway trả serialized JSON. - Deep-copy response, loại field server-managed ở root (
created,updated,createdBy,updatedBy,workspaceId); payload gửi đủidvà mọi field create bắt buộc. - Chỉ đổi phần người dùng yêu cầu, áp lên đúng component theo
chartId(không theo array index); giữ nguyêncomponents[].id,slug, config, filter và layout key chưa sửa. - Validate như bước 4.2, gọi service
4, đọc lại detail và so sánh postcondition.
Xoá một chart: chỉ bỏ component tương ứng khỏi components; không xoá saved report nguồn trừ khi người dùng yêu cầu riêng.
6. Nhân bản dashboard
Service 20 với id nguồn cùng name/slug mới đã kiểm tra trùng (Delete và duplicate); backend sao chép component/filter, không nhân bản bằng update. Đọc detail theo slug mới để xác minh.
7. Xoá dashboard
- Resolve ID, đọc detail cuối cùng và trình bày đúng danh sách ID sẽ xoá; chỉ tiếp tục khi người dùng yêu cầu rõ dashboard đích và xác nhận phạm vi, nhất là khi có nhiều ID.
- Gọi service
5với{ "ids": [...] }, rồi service6theo từng ID/slug để xác minh không còn resource. - Không dùng delete để rollback thao tác dở dang: giữ resource và báo ID/slug/trạng thái.
8. Chẩn đoán dashboard không hiển thị đúng
Đọc detail và đối chiếu từng component với references/dashboard-model.md (định danh chartId/location.i/config.chartId; layout trong grid và kích thước tối thiểu; reportId và report field ID thật; filter isDynamic, params, fieldId/filtersReplace), preview lại saved report nguồn bằng $report-builder, đối chiếu triệu chứng với Lỗi hiển thị đã gặp, rồi sửa theo bước 5.
9. Trả kết quả
- Workspace domain; operation; dashboard ID, name, slug; layout, palette, số component và mapping chart → saved report; filter/config chính đã thay đổi; kết quả postcondition và warning còn lại.
- Deep-link quản trị
https://{WORKSPACE_DOMAIN}/settings/dashboards/{DASHBOARD_SLUG}; route chạyhttps://{WORKSPACE_DOMAIN}/dashboards/{DASHBOARD_SLUG}theo Route runtime trong App. - Read-back chỉ chứng minh cấu hình, không chứng minh hiển thị. Dashboard mới hoặc đã sửa: xem route chạy trong trình duyệt người dùng đã đăng nhập sẵn, hoặc nhờ người dùng tự mở và xác nhận; không nhập mật khẩu thay người dùng (quy tắc xác nhận giao diện). Chưa xem thì báo "đã lưu, chưa kiểm tra giao diện". Việc xem chỉ để nghiệm thu, không dùng để suy ra request.
- Payload dashboard không có ACL; quyền xem của persona chưa được contract mô tả: kiểm chứng bằng tài khoản persona. Chart trống với persona nhưng có dữ liệu với quản trị thì kiểm tra ACL người xem của saved report nguồn theo $report-builder.
Xử lý lỗi
| Lỗi | Cách xử lý |
r = 5001 / Can not found processor for request: service=... | Thử lại đúng request bằng literal curl thay cho urllib. curl PASS: lỗi client transport, tiếp tục bằng curl. curl cũng lỗi: dừng, báo endpoint, service/type và workspace. Không đổi service number bằng thử ngẫu nhiên. |
Slug already exists / Name already exists | Đọc resource trùng trước khi đề xuất slug/name mới. |
| Timeout | Read: retry tối đa một lần. Mutation: list lại theo slug/ID trước mọi retry. |
| Response khác contract | Dừng mutation, lưu bản đã lọc secret; không đoán ID. |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

