Skip to content

Content And Asset Publishing — Technical Map

Route / page map

SurfaceMain page / shellGhi chú
Post list/detail/createPosts.tsx, PostCreate.tsx, PostDetail.tsxMounted, nested route đầy đủ
Page list/detail/createPages.tsx, PageCreate.tsx, PageDetail.tsxMounted
Post categoryPostCategories.tsx, PostCategoryCreate.tsx, PostCategoryDetail.tsxMounted
BannerBanners.tsx, BannerCreate.tsx, BannerDetail.tsxFiles có thật nhưng route subtree đang comment
Banner groupBannerGroupCreate.tsx, BannerGroupDetail.tsx, BannerGroupDataTable.tsxPhụ thuộc banner subtree

GraphQL / data model map

SurfaceQuery / model chính
Postpost, post_content, post_category_relation, post_comment, post_reaction
Pagepage
Categorypost_category, post_category_content
Bannerbanner, banner_group, banner_group_item, banner_subject_type, banner_view
Highlightapp_highlight_feature*, label
Public read modelsbanner_current_user, banner_user_view, app_highlight_feature_current_user, app_highlight_feature_user_view

Public visibility model

ObjectPermission signal
postanonymous/customer chỉ thấy record published_at <= now, published_at IS NOT NULL, disabled = false
banneranonymous/customer chỉ thấy record đã publish (published_at <= now)
post adminuser có full CRUD-level access với audit fields
banner adminuser có select/update; create path nhiều khả năng nằm qua nested insert trên FE/tooling khác

Rủi ro / Findings kỹ thuật

MứcFinding
CaoBlock route cho ROUTE_BANNER, ROUTE_BANNER_CREATE, ROUTE_BANNER_DETAIL, ROUTE_BANNER_GROUP_* trong module.ts đang bị comment, trong khi components/pages vẫn tồn tại và nhiều component còn router.push tới các route này. Đây là drift thật giữa file coverage và runtime route coverage.
Trung bìnhnewsConfig gắn moduleId = news cho post routes, trong khi page/category/banner dùng config khác; permission boundary của content publishing không đồng nhất theo một submodule duy nhất.
Trung bìnhpostbanner public-read model đang nằm trực tiếp ở metadata permissions/functions, nên việc thay đổi publish semantics cần soi cả FE lẫn Hasura metadata, không chỉ app code.