Data rules

  • tenant isolation first

  • standard audit fields

  • query-driven index design

  • business ownership must be explicit

Permission model

Recommended relationship:

user -> user-tenant relation -> role -> permission_key -> page/API/data scope

permission_key

Use one shared format:

<domain>:<resource>:<action>

Examples:

  • system:user:view

  • system:file:upload

  • plugin:management:install

Frontend visibility control is useful, but backend enforcement is the real security boundary.