Skip to content

[enhance] advanced permission control #170

Description

@mrgoonie

Context

GoClaw hiện chỉ có 3 mode phân quyền cơ bản: operator, writer, reader. Cơ chế này quá thô cho use case công ty/team, nơi cần phân quyền theo nhóm, theo leader, theo runtime commands, và theo phạm vi quản trị được uỷ quyền.

Problem

Khi phân quyền cho một team/company, chỉ chọn một trong 3 mode hiện tại không đủ để mô hình hoá các trường hợp như:

  • Team leader được phép tạo/manage agent trong phạm vi team.
  • Một agent/user chỉ được grant một subset commands cụ thể của GoClaw runtime package.
  • Leader có thể tiếp tục phân quyền cho member/agent khác, nhưng chỉ trong quyền hạn được cấp.
  • Cần UX dễ hiểu, không bắt admin phải cấu hình command-level ACL từ đầu.

Proposed direction / Brainstorm

Cần brainstorm thiết kế chi tiết cho advanced permission control. Một hướng đề xuất:

  1. Khi admin phân quyền cho một team, hệ thống tạo/provision một agent đại diện cho user leader của team.
  2. Agent này được grant các GoClaw runtime commands/package commands cụ thể theo policy.
  3. User leader dùng agent đó để:
    • tạo thêm agent nếu được phép;
    • grant/revoke quyền cho agent/member khác trong phạm vi được uỷ quyền;
    • manage team permissions nhưng không vượt quá permission boundary ban đầu.
  4. Cần permission templates dựng sẵn cho UX tốt hơn, ví dụ:
    • Company admin / department admin
    • Team lead
    • Developer / operator
    • Content/editor team
    • Read-only auditor
  5. Templates nên map xuống permission grants cụ thể, vẫn cho phép chỉnh advanced mode.

Acceptance criteria

  • Có proposal/design doc cho advanced permission control.
  • Làm rõ model quyền: subject, resource, action/command, scope, boundary, delegation.
  • Có cơ chế grant command-level permissions cho GoClaw runtime package/commands.
  • Có flow phân quyền team leader và delegated management trong phạm vi cho phép.
  • Có UX permission templates cho company/team use cases.
  • Backward compatible với 3 mode hiện tại (operator, writer, reader) hoặc có migration path rõ ràng.
  • Có security notes về privilege escalation, audit log, revoke/inheritance, và default-deny behavior.

Open questions

  • Permission boundary nên gắn với user, agent, team, hay cả ba?
  • Runtime commands nên được định danh/version như thế nào để tránh grant nhầm sau khi package thay đổi?
  • Leader delegation nên cho phép grant ngang quyền hay chỉ grant subset?
  • Templates nên lưu ở system-level hay org-level có thể customize?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions