# Built-in `workplace` — Workplace — mạng nội bộ (built-in)

> 08/7/2026 · **Built-in module — WS runtime** (sẵn lúc boot, không cài qua .ogapp) · Bản HTML: [workplace-builtin.html](workplace-builtin.html) · [Review tổng core](core-review-2026-07-07.md) · [Quan hệ module](../quan-he-module-2026-07-07.md)
>
> 🎯 **Disable ở workspace Vĩnh An GĐ1** — giảm bề mặt lỗi/phân quyền. Tài liệu ghi ranh giới với notify + điều kiện bật lại.

## 1. Vai trò
Mạng nội bộ: bảng tin, thông báo nội bộ, danh bạ, nhóm — **sản phẩm ngang, không thuộc nghiệp vụ trường lái**. Đánh giá lại khi trung tâm đông nhân viên có nhu cầu truyền thông nội bộ.

## 2. Feature / BO / Action

| Feature | BO chính | Action |
|---|---|---|
| `post` | Bảng tin (post · comment · reaction) | view·create·edit·delete |
| `announcement` | Thông báo nội bộ + theo dõi đã đọc | view·create·**send** |
| `directory` | Danh bạ nhân viên (đọc từ hrm) | view |
| `group` | Nhóm / cộng đồng | view·create·assign |

## 3. Manifest — khai báo permissions

Permission key: `workplace.<group>.<feature>.<action>`; `fields`/`scopeVars` theo plan data-scope (manifest v1.1).

```json
{
  "key": "workplace",
  "name": "Workplace (Mạng nội bộ)",
  "version": "1.0.0 — DISABLED ở Vĩnh An",
  "permissions": [
    {
      "group": "feed",
      "feature": "post",
      "label": "Bảng tin",
      "actions": [
        "view",
        "create",
        "edit",
        "delete"
      ]
    },
    {
      "group": "announcement",
      "feature": "announcement",
      "label": "Thông báo nội bộ",
      "actions": [
        "view",
        "create",
        "send"
      ]
    },
    {
      "group": "directory",
      "feature": "directory",
      "label": "Danh bạ (đọc từ hrm)",
      "actions": [
        "view"
      ]
    },
    {
      "group": "community",
      "feature": "group",
      "label": "Nhóm / Cộng đồng",
      "actions": [
        "view",
        "create",
        "assign"
      ]
    }
  ]
}
```

## 4. Dữ liệu chính

### Thông báo nội bộ (phần đáng dùng nhất)
| Trường | Kiểu | Bắt buộc | Ghi chú |
|---|---|---|---|
| Tiêu đề / nội dung | text | ✔ |  |
| Người đăng / phạm vi | ref·enum | ✔ | Toàn trung tâm / theo phòng (org) |
| Theo dõi đã đọc | append-only | ✔ | Ai đọc, khi nào — dùng cho "xác nhận đã đọc quy định" |

### Ranh giới với notify
| Trường | Kiểu | Bắt buộc | Ghi chú |
|---|---|---|---|
| workplace | truyền thông xã hội nội bộ | — | người → người |
| notify | thông báo nghiệp vụ đa kênh | — | hệ thống → người, có bằng chứng gửi — nhắc hạn/cảnh báo KHÔNG dùng workplace |

## 5. Ma trận quyền — vai trò × feature

| Feature | QTHT | GIAM_DOC | QL_DAO_TAO | TUYEN_SINH | GIAO_VU | GIAO_VIEN | KE_TOAN | NHAN_SU |
|---|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|
| `post · group (khi bật)` | W | R | R | R | R | R | R | R |
| `announcement (khi bật)` | W | A | — | — | — | — | — | W |
| `directory (khi bật)` | R | R | R | R | R | R | R | R |

¹ chỉ bản ghi mình phụ trách · ² chỉ của chính mình · **W·A** = tạo/sửa + duyệt
Toàn bộ disabled ở Vĩnh An GĐ1 — ma trận chỉ áp dụng khi bật lại.

## 6. Quy tắc nghiệp vụ
1. GĐ1: `ogapp disable workplace` (hoặc không gán quyền) ở workspace Vĩnh An
2. Nếu bật lại: chỉ **announcement + directory** trước; post/group cân nhắc sau
3. Directory đọc từ hrm — không nhập tay danh bạ riêng

## 7. Liên kết chéo
- **notify** — ranh giới nghiệp vụ/xã hội
- **hrm** — nguồn danh bạ
- **rt-host** — cơ chế disable

## 8. Câu hỏi mở
- Khi nào đáng bật: trung tâm >30–50 nhân viên nhiều cơ sở? (đánh giá lại v1.5+)
