LumiBaseDocs

System Collections & Sensitive Access Contract

Ngày chốt: 2026-06-03.

Tài liệu này là contract cho:

  • seed quyền hệ thống;
  • Permission Builder UI grouping;
  • import/export access config;
  • checklist bảo mật khi thêm bảng system mới.

Nguồn: packages/database/src/schema/*.

Principles

  1. Không coi system collection như content collection mặc định.
  2. Public policy không được grant system collection trừ khi explicit và đã review.
  3. Sensitive collections không hiển thị cho non-admin trong Permission Builder.
  4. Permission Builder phải phân nhóm system collections để admin hiểu blast radius.
  5. Khi thêm bảng system mới, phải phân loại vào tài liệu này trước khi seed production.
  6. Các bảng chứa secret/hash/token/audit/security state chỉ cho policy_admin hoặc policy security chuyên dụng.

Standard Seed Policy Keys

Policy keyMục tiêu
policy_adminAdmin bypass, app access, enforce TFA.
policy_access_managerQuản lý roles, policies, permissions, user-role/user-policy binding.
policy_schema_managerQuản lý collections, fields, relations, materialized collections.
policy_user_managerQuản lý users, teams, membership, notifications khi cần.
policy_security_managerĐọc audit/security logs, quản lý lockout/recovery/SCIM/API keys.
policy_automation_managerQuản lý flows, operations, webhooks, CDC pipelines.
policy_extension_managerCài/enable/config/grant capability cho extensions.
policy_ai_managerQuản lý AI approvals/conversations/embeddings theo feature.
policy_studio_selfUser đăng nhập Studio: đọc/update profile, notifications, presets của chính mình.
policy_publicKhông app access; chỉ grant content public explicit.

Current Classification

Nhóm UICollectionsHiển thị trong Permission BuilderSeed mặc địnhGhi chú
Tenant rootsitesAdmin onlypolicy_adminInstance/site metadata; tránh non-admin sửa domain/site root.
Identityusers, user_sites, user_roles, teams, team_members, notificationsAccess/User managerpolicy_user_manager, policy_studio_selfpolicy_studio_self chỉ được đọc/update chính mình và notifications/presets của chính mình.
Access controlroles, policies, role_policies, user_policies, permissionsAccess managerpolicy_access_managerThay đổi ở đây có thể mở toàn site; luôn audit.
Schema buildercollections, fields, relations, materialized_collectionsSchema managerpolicy_schema_managerCho phép quản lý data model; không nên gộp với editor content thường.
Content storeitems, pages, revisions, activityPer content rolePer role/projectitems/pages theo role nội dung; revisions/activity nên read-only trừ admin.
Files & assetsfolders, filesPer content role / asset managerPer role/projectFile metadata có thể chứa PII; public phải explicit.
UX statepresets, translations, settingsStudio/self + managerpolicy_studio_self, manager policiessettings là config-sensitive; chỉ settings manager/admin ghi.
Automationflows, flow_runs, operations, webhooksAutomation managerpolicy_automation_managerWebhook secret/header là sensitive; non-admin không thấy secret.
ExtensionsextensionsExtension managerpolicy_extension_managerGrant capability/install/enable/delete là privileged.
Translation memorytranslation_memory, glossaryTranslation managerDedicated translation policyCó thể chứa nội dung nội bộ; không public mặc định.
AIai_approvals, ai_conversations, ai_messages, ai_embeddingsAI manager / owner scopedpolicy_ai_managerConversations/messages có thể chứa PII hoặc secrets do user nhập.
CDCcdc_pipelines, cdc_pipeline_health, cdc_deploymentsAutomation/ops managerAutomation hoặc ops policyPipeline connection/env config là sensitive.
Security sensitivesystem_state, audit_log, login_attempts, login_baselines, admin_backup_codes, scim_tokensHidden for non-adminpolicy_admin, policy_security_managerKhông hiển thị cho non-admin; không public; không export secrets.

Sensitive Collections Hard Rule

Các collection sau là sensitive/admin-only:

txt
system_state
audit_log
login_attempts
login_baselines
admin_backup_codes
scim_tokens

Future sensitive collections:

txt
api_keys
api_key_roles
api_key_policies
shares
extension_access_policies

Rules:

  • Permission Builder UI ẩn khỏi non-admin.
  • Seed chỉ grant cho policy_admin hoặc policy manager chuyên dụng.
  • Export/import không chứa plaintext secret/token/hash material.
  • Nếu cần cho security manager đọc, dùng read-only và field mask.

Future Virtual/System Access Targets

Các target này có thể không phải bảng DB trực tiếp nhưng phải xuất hiện trong Permission Builder:

TargetMục tiêu
extension_modulesQuyền thấy module extension trong Module Bar.
extension_endpointsQuyền gọi endpoint extension.
extension_operationsQuyền chạy operation extension/flow node.
api_keysQuản lý API key lifecycle.
sharesQuản lý share link.
admin_securityUnlock user, unblock IP, recovery/audit security actions.

Minimum Seed

Seed local/staging/prod tối thiểu:

  1. role_administrator + policy_admin.
  2. policy_access_manager.
  3. policy_schema_manager.
  4. policy_studio_self.
  5. policy_public rỗng hoặc chỉ explicit public content.

Không seed:

  • public read all content;
  • public/system collections;
  • plaintext API/static token;
  • non-admin write vào access/security collections.

Checklist For New System Collections

  1. Thêm collection vào bảng phân loại ở tài liệu này.
  2. Chọn seed policy owner.
  3. Xác định có hidden khỏi non-admin không.
  4. Xác định import/export có cần mask secret không.
  5. Thêm test public policy không đọc được nếu collection sensitive.
Last modified: 26/09/2026