Phase 4 Data Inventory — Checklist lấy thông tin Lark
File path: knowledge/dev/lark/phase4-data-inventory.md
Tags: lark, phase4, inventory, checklist, s178
Mục đích: Danh sách đầy đủ các loại thông tin cần lấy để vẽ lại bản thiết kế Lark Incomex. Tư duy sản xuất — liệt kê trước, tick khi có thật.
File này là SSOT cho tiến độ dump Phase 4. Mọi phiên làm việc Lark phải cập nhật file này khi lấy được dữ liệu mới.
Quy tắc tick:
- Chỉ tick
[x] khi LẤY XONG và verify đủ — không tick dự định
- Chỉ tick cổng thực tế đã lấy thành công, không tick cổng "có thể lấy"
- Gặp thông tin mới chưa có → thêm dòng ngay
- Ghi chú phải có path file dump hoặc endpoint cụ thể
Ký hiệu: [ ] chưa lấy · [x] đã lấy · [~] một phần · [?] không rõ
Cổng: C1 lark-mcp · C2 REST tenant token · C4 Network intercept cookie · C5 Computer Use
| STT |
Thông tin |
C1 |
C2 |
C4 |
C5 |
Ghi chú |
| A01 |
Base name, revision, timezone |
[ ] |
[ ] |
[ ] |
[ ] |
C2 /apps/{token}, C4 clientvars.base |
| A02 |
Base owner |
[ ] |
[ ] |
[ ] |
[ ] |
C4 clientvars.base.owner |
| A03 |
Feature flags (calcMode, isProBase, baseEngineEnabled) |
[ ] |
[ ] |
[ ] |
[ ] |
C4 only |
| A04 |
baseRecordsNum (tổng record toàn Base) |
[ ] |
[ ] |
[ ] |
[ ] |
C4 only |
| A05 |
advPermInfo |
[ ] |
[ ] |
[ ] |
[ ] |
C4 only |
| A06 |
permissionMap |
[ ] |
[ ] |
[ ] |
[ ] |
C4 only |
| A07 |
baseRoleMap (shallow) |
[ ] |
[ ] |
[ ] |
[ ] |
C4 only |
| A08 |
trashBlockMap / trashTableMap (bảng đã xóa) |
[ ] |
[ ] |
[ ] |
[ ] |
C4 only |
| A09 |
marketplaceInfo |
[ ] |
[ ] |
[ ] |
[ ] |
C4 only |
| A10 |
blocks[] (danh sách tất cả tableId) |
[ ] |
[ ] |
[ ] |
[ ] |
C4 only |
| A11 |
blockInfos (meta per block) |
[ ] |
[ ] |
[ ] |
[ ] |
C4 — S178 thấy {id, name} |
| A12 |
Bonus C2: advance_version, formula_type, app_token |
[ ] |
[ ] |
[ ] |
[ ] |
C2 only S178 |
B. Table (cấp bảng)
| STT |
Thông tin |
C1 |
C2 |
C4 |
C5 |
Ghi chú |
| B01 |
table_id, name, revision |
[ ] |
[ ] |
[ ] |
[ ] |
— |
| B02 |
Record count |
[ ] |
[ ] |
[ ] |
[ ] |
— |
| B03 |
meta.jointRev (Sync local rev vs source rev) |
[ ] |
[ ] |
[ ] |
[ ] |
C4 only S178 |
| B04 |
meta.depRev |
[ ] |
[ ] |
[ ] |
[ ] |
C4 — cần hiểu thêm |
| B05 |
tableLimit, tablePerm |
[ ] |
[ ] |
[ ] |
[ ] |
C4 only |
| B06 |
primaryKey field_id |
[ ] |
[ ] |
[ ] |
[ ] |
C4 only |
| B07 |
exInfo.exType, contentCreation |
[ ] |
[ ] |
[ ] |
[ ] |
C4 only |
C. Field (cấp trường)
| STT |
Thông tin |
C1 |
C2 |
C4 |
C5 |
Ghi chú |
| C01 |
field_id, name, type, ui_type |
[ ] |
[ ] |
[ ] |
[ ] |
3 cổng có |
| C02 |
description (user note) |
[ ] |
[ ] |
[ ] |
[ ] |
C2 text_field_as_array=true |
| C03 |
is_primary, is_synced, is_extend |
[ ] |
[ ] |
[ ] |
[ ] |
C2 verify S176 |
| C04 |
property đầy đủ per type |
[ ] |
[ ] |
[ ] |
[ ] |
C2 S177 |
| C05 |
SingleSelect/MultiSelect options {id, name, color} |
[ ] |
[ ] |
[ ] |
[ ] |
C2 |
| C06 |
Link (18/21) target, back_field, multiple |
[ ] |
[ ] |
[ ] |
[ ] |
C2 |
| C07 |
Link filter "Specified records" |
[ ] |
[ ] |
[ ] |
[ ] |
❌ C2 không có — cần C5 |
| C08 |
Lookup target_table, roll_up, filter, formula DSL |
[ ] |
[ ] |
[ ] |
[ ] |
C2 |
| C09 |
Formula formula_expression DSL |
[ ] |
[ ] |
[ ] |
[ ] |
C2 |
| C10 |
Formula return type (nested) |
[ ] |
[ ] |
[ ] |
[ ] |
C2 S177 |
| C11 |
Formula compiled code |
[ ] |
[ ] |
[ ] |
[ ] |
C4 only table.formulaInfo.code |
| C12 |
auto_serial rule |
[ ] |
[ ] |
[ ] |
[ ] |
C2 |
| C13 |
Stage (type 24) options |
[ ] |
[ ] |
[ ] |
[ ] |
❌ C2+C4 property:null — cần C5 |
| C14 |
description.disableSync per field (cờ selective sync tick) |
[ ] |
[ ] |
[ ] |
[ ] |
C4 only S178 |
| C15 |
exInfo.synced field-level |
[ ] |
[ ] |
[ ] |
[ ] |
C4 S178 |
| C16 |
allowedEditModes (manual/scan) |
[ ] |
[ ] |
[ ] |
[ ] |
C4 S178 |
D. View
| STT |
Thông tin |
C1 |
C2 |
C4 |
C5 |
Ghi chú |
| D01 |
view_id, name, type, public_level |
[ ] |
[ ] |
[ ] |
[ ] |
C2 S178 |
| D02 |
filter_info (tree) |
[ ] |
[ ] |
[ ] |
[ ] |
C2 |
| D03 |
hidden_fields |
[ ] |
[ ] |
[ ] |
[ ] |
C2 — 1 view lộ 54 field IDs |
| D04 |
hierarchy_config |
[ ] |
[ ] |
[ ] |
[ ] |
C2 |
| D05 |
Group config |
[ ] |
[ ] |
[ ] |
[ ] |
C4 groupList |
| D06 |
rankInfo.viewRankMap (record ordering custom) |
[ ] |
[ ] |
[ ] |
[ ] |
C4 only |
| D07 |
Layout Kanban/Gantt/Gallery detail |
[ ] |
[ ] |
[ ] |
[ ] |
C4 viewMap |
| D08 |
viewMap đầy đủ (Base 88: 37/bảng) |
[ ] |
[ ] |
[ ] |
[ ] |
C4 rich |
E. Record
| STT |
Thông tin |
C1 |
C2 |
C4 |
C5 |
Ghi chú |
| E01 |
Record values |
[ ] |
[ ] |
[ ] |
[ ] |
C2 500/call, C4 3000/call |
| E02 |
deniedRecords (record perm) |
[ ] |
[ ] |
[ ] |
[ ] |
C4 only |
| E03 |
Comment per record |
[ ] |
[ ] |
[ ] |
[ ] |
C4 commentMap |
| E04 |
Attachment file tokens |
[ ] |
[ ] |
[ ] |
[ ] |
C4 resourceMap.attachments |
| E05 |
Reminder |
[ ] |
[ ] |
[ ] |
[ ] |
C4 resourceMap.reminders |
| E06 |
Milestone |
[ ] |
[ ] |
[ ] |
[ ] |
C4 milestoneMap |
| E07 |
Change stream cs, latestCSRev (revision history) |
[ ] |
[ ] |
[ ] |
[ ] |
C4 only |
F. Sync Table (⚠️ vùng bế tắc)
| STT |
Thông tin |
C1 |
C2 |
C4 |
C5 |
Ghi chú |
| F01 |
Detect bảng nào Sync (is_synced field-level) |
[ ] |
[ ] |
[ ] |
[ ] |
C2 + C4 |
| F02 |
syncTableIds[] danh sách Sync tables trong Base |
[ ] |
[ ] |
[ ] |
[ ] |
C4 only — 1 call/Base |
| F03 |
source_app_token (Base nguồn) |
[ ] |
[ ] |
[ ] |
[ ] |
❌ S178 BẾ TẮC — C2 không có, C4 chưa tìm ra, chờ C5 |
| F04 |
source_table_id (bảng nguồn) |
[ ] |
[ ] |
[ ] |
[ ] |
❌ Như F03 |
| F05 |
Field mapping source ↔ dest |
[ ] |
[ ] |
[ ] |
[ ] |
❌ Như F03 |
| F06 |
Selective field sync tick (disableSync per field) |
[ ] |
[ ] |
[ ] |
[ ] |
C4 S178 — biết user tick trường nào |
| F07 |
Sync schedule (tự động/tắt) |
[ ] |
[ ] |
[ ] |
[ ] |
UI hiện "Đã tắt tự động" — chưa biết field API |
| F08 |
Last sync time |
[ ] |
[ ] |
[ ] |
[ ] |
UI "13 phút trước" — chưa biết field |
| F09 |
meta.jointRev đếm số lần sync |
[ ] |
[ ] |
[ ] |
[ ] |
C4 S178 |
| F10 |
Sync error log |
[ ] |
[ ] |
[ ] |
[ ] |
Chưa biết endpoint |
| F11 |
Downstream lineage |
[ ] |
[ ] |
[ ] |
[ ] |
Suy ra từ F03 toàn hệ thống |
| STT |
Thông tin |
C1 |
C2 |
C4 |
C5 |
Ghi chú |
| G01 |
Form metadata |
[ ] |
[ ] |
[ ] |
[ ] |
C2 S178 |
| G02 |
shared_limit, submit_limit_once |
[ ] |
[ ] |
[ ] |
[ ] |
C2 bonus S178 |
| G03 |
Question tree rich_description |
[ ] |
[ ] |
[ ] |
[ ] |
C2 only S178 |
| G04 |
Form answer records |
[ ] |
[ ] |
[ ] |
[ ] |
Qua records API |
H. Dashboard
| STT |
Thông tin |
C1 |
C2 |
C4 |
C5 |
Ghi chú |
| H01 |
Dashboard list |
[ ] |
[ ] |
[ ] |
[ ] |
C2 — Base 88 = 0 dashboard |
| H02 |
Dashboard detail (charts config) |
[ ] |
[ ] |
[ ] |
[ ] |
Chưa có endpoint detail xác nhận |
I. Workflow / Automation
| STT |
Thông tin |
C1 |
C2 |
C4 |
C5 |
Ghi chú |
| I01 |
workflow_id, title, status (shallow) |
[ ] |
[ ] |
[ ] |
[ ] |
C2 S178 |
| I02 |
nodeSchema DAG |
[ ] |
[ ] |
[ ] |
[ ] |
C4 only S177 |
| I03 |
draft.steps[] full trigger+action+condition |
[ ] |
[ ] |
[ ] |
[ ] |
C4 only S177 |
| I04 |
extra.TableMap.FieldMap dependency manifest |
[ ] |
[ ] |
[ ] |
[ ] |
C4 only S177 |
| I05 |
extra.BlockMap, extra.BtnTrigger |
[ ] |
[ ] |
[ ] |
[ ] |
C4 |
| I06 |
createUID, updateUID, timestamps |
[ ] |
[ ] |
[ ] |
[ ] |
C4 |
| I07 |
stepConfig schema global (loại trigger/action) |
[ ] |
[ ] |
[ ] |
[ ] |
C4 /automation/configs |
| I08 |
events, template, limits |
[ ] |
[ ] |
[ ] |
[ ] |
C4 /automation/configs |
| I09 |
Run history (execution log) |
[ ] |
[ ] |
[ ] |
[ ] |
⏳ Câu 2 Cổng 4 chưa test |
| I10 |
Script action source code |
[ ] |
[ ] |
[ ] |
[ ] |
⏳ Chưa gặp Run Script workflow |
| I11 |
Enable/disable toggle |
[ ] |
[ ] |
[ ] |
[ ] |
C2 WRITE GĐ2 |
J. Role / Permission
| STT |
Thông tin |
C1 |
C2 |
C4 |
C5 |
Ghi chú |
| J01 |
Role list (id, name) |
[ ] |
[ ] |
[ ] |
[ ] |
C2 S178 |
| J02 |
table_roles[] 278KB permission matrix (per role per table per field) |
[ ] |
[ ] |
[ ] |
[ ] |
C2 only S178 |
| J03 |
Role members |
[ ] |
[ ] |
[ ] |
[ ] |
C2 — chưa verify 100% |
K. Member / User
| STT |
Thông tin |
C1 |
C2 |
C4 |
C5 |
Ghi chú |
| K01 |
Member list |
[ ] |
[ ] |
[ ] |
[ ] |
C2 S178 |
| K02 |
user_id bonus |
[ ] |
[ ] |
[ ] |
[ ] |
C2 only S178 |
| K03 |
member_en_name bonus |
[ ] |
[ ] |
[ ] |
[ ] |
C2 S178 |
| K04 |
userMap cached |
[ ] |
[ ] |
[ ] |
[ ] |
C4 |
L. Cross-base graph (tổng hợp để vẽ)
| STT |
Thông tin |
C1 |
C2 |
C4 |
C5 |
Ghi chú |
| L01 |
Link field graph (cùng Base) |
[ ] |
[ ] |
[ ] |
[ ] |
Từ C06 |
| L02 |
Lookup dependency graph |
[ ] |
[ ] |
[ ] |
[ ] |
Parse DSL từ C08 |
| L03 |
Formula cross-table |
[ ] |
[ ] |
[ ] |
[ ] |
Parse từ C09 |
| L04 |
Sync cross-base graph |
[ ] |
[ ] |
[ ] |
[ ] |
❌ Chặn bởi F03-F05 |
| L05 |
Automation → table/field reverse index |
[ ] |
[ ] |
[ ] |
[ ] |
Parse I04 |
| STT |
Thông tin |
C1 |
C2 |
C4 |
C5 |
Ghi chú |
| M01 |
46 endpoint public REST |
[x] |
— |
— |
— |
S178 GĐ1 |
| M02 |
4+ endpoint internal /space/api/ |
— |
— |
[x] |
— |
S177 + S178 |
| M03 |
Auth public (tenant_access_token) |
— |
[x] |
— |
— |
S178 toolkit |
| M04 |
Auth internal (cookie + CSRF header) |
— |
— |
[x] |
— |
S178 — x-csrftoken = cookie _csrf_token |
| M05 |
Gzip+base64 decode recipe |
— |
— |
[x] |
— |
S177 |
| M06 |
Fetch+XHR interceptor technique |
— |
— |
[x] |
— |
S178 — monkey-patch persistent |
| M07 |
Body format views/ |
— |
— |
[x] |
— |
S178 {token, tableId, tableRev, viewIdList, supportRank} |
| M08 |
Body format fetch_calc_status/ |
— |
— |
[x] |
— |
S178 {baseToken, tableID} |
| M09 |
Body format explorer/v2/entity/info/ |
— |
— |
[ ] |
— |
Endpoint tồn tại, CSRF pass, body chưa đúng |
Tiến độ tổng
Tổng mục inventory: ~85
Đã lấy chính thức: 0 (chưa có dump Phase 4 chính thức nào)
Tick [x] trong M: 8 (technique learnings, không phải data)
Chưa lấy: ~85
Lưu ý: Tất cả các mục A-L đang [ ] vì chưa có dump Phase 4 production. S177/S178 là probing — discover capability, không phải dump file. Khi toolkit tools/lark_probe/ chạy xong 18 Base và file ra snapshots/2026-04-12-phase4/ mới tick [x] cổng tương ứng.
Điểm mù nghiêm trọng
- F03-F05 Sync source mapping — chặn cả L04 Sync cross-base graph. Chưa có hướng C4. Cần thử: (a) decode tầng 2 gzip nested blob trong
table (110 blob H4sI), (b) quét clientvars bảng SOURCE, (c) C5 Computer Use cuối.
- C13 Stage options — C2+C4 đều
property:null. Cần C5.
- C07 Link filter — C2 không trả. Cần C5.
- I09-I10 Run history + Script — chưa test Cổng 4.
- H02 Dashboard detail — chưa biết endpoint.
Lịch sử cập nhật
- S178 (2026-04-11): Tạo file. Tách từ mechanisms.md Section 13 ra thành file độc lập. ~85 mục khởi điểm. Ghi nhận bế tắc F03-F05.
- S179 (2026-04-12): Upload chính thức qua Claude Desktop
upload_document sau khi xác nhận tool set agent-data đầy đủ 11/11. Lỗi S178 (update_document 404) được xác định là do deferred loading phía Desktop, không phải hạ tầng MCP.