object-filter
Skill13 starsChanged 33 days agoMITView on GitHub
Quản lý saved filter của Cogover Object qua Filters API `/bapi/v1/filters`: list, view, tạo, cập nhật, xóa; thiết kế conditions, logic, sortFields, tableSettings (thứ tự, độ rộng cột) theo nghiệp vụ Object; cấu hình layoutConfig/accessControls; verify bằng view sau khi ghi. Phối hợp $object-info lấy metadata; không dùng chỉ để lọc tạm thời records.
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
- dashboard-builderSkill
- document-templateSkill
- layout-scriptingSkill
- object-buttonSkill
- 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
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 86
Delete: các ID đã gửi, kết quả xác minh và cảnh báo rõ filter không xóa được.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Object Filter
- Phiên bản:
1.1.0 - Ngày phát hành:
2026-10-06
Quản lý bộ lọc đã lưu của Cogover Object qua /bapi/v1/filters (API Key Bearer): list, view, create, update, delete. Không dùng skill này chỉ để lọc tạm thời một request lấy records.
Chuẩn bị
- Credential, header và quy ước response/lỗi chung: theo $cogover-api-auth. Ngoại lệ riêng:
429và timeout sau request ghi xử lý theo Validation và lỗi;500sau request ghi thì không tự lặp request khi chưa xác định trạng thái. - Người dùng chỉ đưa tên filter: tra
POST /bapi/v1/filters/listđể lấy ID; nhiều kết quả trùng hoặc gần giống thì đưa danh sách ứng viên thay vì tự chọn. - Object vừa tạo: cấu hình filter "Tất cả" theo Checklist hoàn thiện Object mới và mục Filter mặc định của Object mới.
- Dùng
$object-infolấyobjectTypeId,objectTypeSlug, field slug,fieldType, options và metadata field; bắt buộc khi payload cóobjectTypeIdhoặcconditions. - Đọc references/api-filters.md (schema, ràng buộc, ví dụ cURL) trước khi dựng payload hoặc gọi endpoint. Nếu mô tả condition ở đó chưa đủ cho
fieldType/operator đang dùng, đọc danh mục điều kiện của object-record: chỉ tái sử dụng quy tắc tương thíchfieldType+op+params; vẫn dùng schema saved filter (conditions,logicType,logic) của Filters API, không sao chép schema request của Records API.
Quy tắc payload
Áp dụng cho create và update:
- Tên trường camelCase.
tableSettingslà JSON string (dựng bằngjqhoặc tương đương, không escape thủ công);layoutConfiglà JSON object. - Mỗi condition dùng field slug,
fieldTypevà option slug/value thật mà API Object trả về; không tự dịch hoặc tự sinh option; không đưa field không tồn tại hoặc inactive vào conditions, sort,tableSettings. - Lookup tới người dùng hiện tại:
op: "=",params: "$currentUser", đúngfieldType; không thêm key ngoài schema nhưiuvì UI có thể diễn giải sai condition. params: nullchois nullvànot null; mảng choin,not in,between(kiểm tra thứ tự hai đầu khoảng).- Kiểm tra
logicType,logic, tối đa basortFields,limitRecord >= 1, độ dàiname/descriptionvà kiểu dữ liệu của các cấu hình. - Không đưa field
formulatính khi đọc vàoconditionshoặcsortFields: điều kiện không khớp record nào. Field dùng lọc/sắp xếp phải là field lưu, xem Formula tính khi đọc và khi lưu. - Response create/update có thể là resource rút gọn (
conditions,accessControlscó thểnull): không suy luận trườngnullđã bị mất; luôn gọi view để xác minh.
Xem danh sách
POST /bapi/v1/filters/list. Biết Object thì lọc bằng objectTypeId và objectTypeIdOperator: "IN"; phân trang cho đến khi đủ phạm vi người dùng yêu cầu.
Xem chi tiết
POST /bapi/v1/filters/view với id. Parse tableSettings khi cần mô tả cột hoặc sửa bảng. Phân biệt filter standard (type: 1) với filter người dùng tạo (thường type: 2).
Tạo bộ lọc
- Đặt
namebằng tiếng Anh theo mặc định; chỉ dùng ngôn ngữ khác khi người dùng chủ động yêu cầu hoặc cung cấp rõ tên bằng ngôn ngữ đó. - Dùng
$object-infođọcid,name,slug,description,nameTranslationscủa Object và, với mỗi field có thể vào bộ lọc hoặc bảng:name,slug,description,fieldType,required,manualModifyAllow,readOnly, options, metadata liên kết. - Xác định nghiệp vụ của Object và điều người dùng cần nhận biết, so sánh, hành động trên danh sách theo Phân tích Object. Metadata không đủ thì hỏi một câu ngắn; không thiết kế bảng bằng field chọn ngẫu nhiên.
- Dựng
conditionstừ metadata thật. Chưa rõ logic thìlogicType: "AND"; chỉ dùngORhoặc biểu thứclogickhi nghiệp vụ cần. - Thiết kế cột, thứ tự, width, pinned và
sortFieldstheo references/filter-table-design.md. Bước bắt buộc, quan trọng ngang conditions. - Mặc định khi người dùng không chỉ định:
conditions: [],limitRecord: 20.sortFields: [{"field":"created","order":"desc"}]nếucreatedtồn tại và active; nếu không, chọn field ngày hoặc mã tuần tự phù hợp từ metadata. Không thay bằngname ascchỉ vì Object là master data hoặc có fieldname.accessControls: [{"functions":["VIEW"],"option":1,"items":[],"type":"personnel"}](quyền xem cho tất cả).layoutConfig.assignmentgiống hệtaccessControls;layoutConfigđồng bộobjectId,name,description,limitRecord,sortFieldItems,layoutFilterType,displayTaskModevới payload cấp cao.layoutFilterType: 1,displayTaskMode: 0; bỏ qua các cấu hình layout tùy chọn còn lại thay vì tự đoán.
- Gọi
POST /bapi/v1/filters, lấy ID rồi gọi view: kiểm tra conditions,accessControls,layoutConfig.assignment, thứ tựshowingColumns, width trongcolumnsvàsortFieldstheo Kiểm tra sau khi tạo.
Filter mặc định của Object mới
- Tạo Object với
standard_filtermặc định sinh filter standard "Tất cả" (type: 1) chỉ có cột hệ thống (id,name,created,created_by,updated,updated_by). - Filter standard không xoá được nhưng sửa được: khi Object đã có field nghiệp vụ, thiết kế 5–10 cột theo references/filter-table-design.md, rồi cập nhật theo Cập nhật bộ lọc, chỉ thay
tableSettings(đã sửa và chạy đúng, kiểm tra cả trên giao diện).
Cập nhật bộ lọc
- Gọi view ngay trước khi sửa để lấy trạng thái mới nhất và kiểm tra quyền
EDIT. - Chỉ đổi trường người dùng yêu cầu; gửi kèm nguyên vẹn các trường còn lại. Không đổi
objectTypeIdkhi chỉ sửa điều kiện hoặc hiển thị; giữ nguyên quyền chia sẻ trừ khi được yêu cầu. - Không gửi
conditions: []trừ khi người dùng muốn xóa toàn bộ điều kiện. - Sửa
tableSettings: parse JSON string hiện tại, cập nhật đúng key, serialize lại; không ghi đè key không liên quan. - Đổi
sortFieldschỉ khi có căn cứfieldTypevà nghiệp vụ; không đổi sangname asckhinamechỉ làshort_text(xem Chọn trường sắp xếp). - Gọi
PUT /bapi/v1/filters/{filter_id}, rồi view lại và so sánh các trường mục tiêu; response update có thể rút gọn hoặc trảconditions: null.
Xóa bộ lọc
- Resolve mọi ID, gọi view từng filter và hiển thị tên, ID, Object.
- Từ chối xóa filter standard; kiểm tra người dùng hiện tại có quyền
DELETEvới mọi filter. - Chỉ tiếp tục sau khi người dùng xác nhận rõ danh sách sẽ xóa (thao tác không hoàn tác).
- Gọi
POST /bapi/v1/filters/deletevớiids. Không diễn giảidatalà số filter đã xóa; giá trị này không nhất thiết bằng số ID gửi lên. - Gọi list hoặc view để xác minh các filter mục tiêu không còn truy cập được.
Trả kết quả
- List: tối thiểu ID, name, slug, objectTypeSlug, logicType, số conditions, type, starred, status và quyền hiện tại; kèm tổng số và phân trang.
- Create/update: trạng thái đã được view xác minh, không chỉ response rút gọn: ID, name, slug, object, tóm tắt điều kiện, sắp xếp, thứ tự cột và width chính. Với update, nêu rõ phần đã đổi và phần giữ nguyên.
- Thay đổi cột hoặc sắp xếp: nêu đã hay chưa mở danh sách trên trình duyệt, theo xác nhận giao diện; view lại không chứng minh danh sách hiển thị đúng.
- Delete: các ID đã gửi, kết quả xác minh và cảnh báo rõ filter không xóa được.
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.

