> ## Documentation Index
> Fetch the complete documentation index at: https://learn.cleeksy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Cơ bản về App

> Hiểu cấu trúc của một app trên Cleeksy DOP.

Trang này mô tả các khái niệm và thao tác nền tảng của **App** trên Cleeksy DOP. Nội dung tập trung vào “cách app hoạt động như một work system” và các thiết lập cần có để app vận hành ổn định.

<Info>
  Quickstart thực hành theo ví dụ Purchase Request: [App đầu tiên](/get-started/first-app)
</Info>

## Mục tiêu

* Xác định vai trò của **App** trong mô hình vận hành số (Digital Operations)
* Nắm cấu trúc của một app: **data + UI + workflow + roles + controls + connections**
* Hiểu các lựa chọn **bảo mật** và **quyền truy cập** ở cấp app
* Thực hiện các thao tác quản trị cơ bản: tạo, chỉnh sửa, mời thành viên, di chuyển, xoá/khôi phục

## App là gì trong Cleeksy?

Trong Cleeksy, một **App** thường được thiết kế như một **work system** có thể triển khai độc lập:

* **Data**: entities → fields → records
* **UI**: views + record layout
* **Process**: workflow / approvals / automation
* **People**: roles & permissions
* **Controls**: ràng buộc, bảo vệ dữ liệu, chính sách vận hành
* **Connect**: publish/consume, Data Connection (dựa trên connected app đã consume), webhook/API (khi cần)

Tham khảo thêm:

* [Tổng quan: Cleeksy DOP là gì?](/get-started/overview)
* [Vận hành số (Digital Operations)](/foundations/digital-operations)

## Tạo một App

### Điều kiện tiên quyết

* Quyền **Admin Space** (chỉ Admin Space có thể tạo app)
* Có Space để triển khai app

### Thông tin cần nhập khi tạo app

* **Tên ứng dụng**: tối đa 255 ký tự, **không trùng** trong cùng Space
* **Chế độ bảo mật**: chọn 1 trong 2 chế độ (xem phần “Bảo mật”)
* **Biểu tượng (icon)**: tuỳ chọn (chọn từ danh sách có sẵn)

<Steps>
  <Step title="1) Tạo app mới">
    Tạo app trong Space, điền tên và chọn chế độ bảo mật.
  </Step>

  <Step title="2) Kiểm tra cấu hình mặc định sau khi tạo">
    Sau khi tạo, hệ thống khởi tạo cấu hình để app có thể sử dụng ngay:

    * 3 view mặc định: **Bản ghi**, **Kanban**, **Tài liệu** (view **Bản ghi** được kích hoạt mặc định)
    * Trường thông tin hệ thống (system fields) và trường ID bản ghi làm thông tin hiển thị mặc định
    * Giao diện chi tiết bản ghi (record detail) dạng <b>1 cột</b> theo cấu hình mặc định
  </Step>

  <Step title="3) Bổ sung mô hình dữ liệu, UI và workflow theo bài toán">
    Thiết kế entity/field, tạo view và workflow theo scenario nghiệp vụ.

    * Data modeling: [Thực thể dữ liệu (Entity)](/build-apps/data-modeling/entities), [Kiểu trường dữ liệu (Field types)](/build-apps/data-modeling/field-types)
    * UI: [Tổng quan giao diện](/build-apps/ui-views/views-overview)
    * Process: [Thiết kế quy trình (Process Builder)](/build-apps/workflows/process-builder)
  </Step>
</Steps>

## Bảo mật (Security mode)

App có 2 chế độ bảo mật:

### Riêng tư (Private)

* Chỉ người dùng/nhóm người dùng **được mời** mới truy cập được
* **Admin Space** có thể chủ động tham gia với vai trò Admin

### Công khai (Public)

* Tất cả thành viên trong Space có thể truy cập (mặc định ở mức bình luận)
* Có thể chủ động tham gia để trở thành Admin (tuỳ theo thiết lập và quyền)

<Note>
  Chế độ bảo mật ảnh hưởng đến “cách người dùng tiếp cận app”, nhưng quyền thao tác cụ thể vẫn được kiểm soát bởi Roles/Permissions.
</Note>

## Quyền truy cập (Access) và vai trò (Roles)

### Vai trò hệ thống (System roles)

Các vai trò thường dùng trong app:

* **Quản trị viên (Admin)**: toàn quyền quản lý và cấu hình app
* **Người chỉnh sửa (Editor)**: xem, chỉnh sửa và xoá bản ghi (theo quyền)
* **Người bình luận (Commenter)**: chỉ xem và bình luận
* **Vai trò tuỳ chỉnh (Custom role)**: cấu hình quyền theo nhu cầu

### Phạm vi truy cập (Access scope)

Mỗi thành viên có thể được gán một phạm vi truy cập:

* **Toàn quyền**: truy cập toàn bộ dữ liệu trong app
* **Giới hạn**: chỉ truy cập các bản ghi do người dùng phụ trách

<Warning>
  Nếu dùng phạm vi “Giới hạn”, cần xác định rõ cơ chế “người phụ trách” trong mô hình dữ liệu và workflow (ai là owner/assignee của record).
</Warning>

Tham khảo:

* [Mô hình phân quyền (Permissions model)](/reference/permissions-model-public)
* [Quyền & truy cập (Permissions & access)](/troubleshooting/permissions-access)

## Quản lý thành viên (App access)

Thành viên có thể truy cập app theo 2 cách:

1. **Qua lời mời**

* Admin mời user hoặc user group vào app và gán role/scope
* Hệ thống gửi thông báo mời (email/inbox), quyền được áp dụng khi truy cập

2. **Chủ động tham gia**

* **Admin Space** có thể truy cập tất cả app (công khai và riêng tư)
* **Thành viên Space** chỉ chủ động truy cập app **công khai**

<Note>
  Nếu một user được mời vào app/project/data hub nhưng chưa thuộc Space, hệ thống có thể tự động thêm user vào Space với vai trò “Khách”.
</Note>

## Vai trò tuỳ chỉnh (Custom role)

Vai trò tuỳ chỉnh hỗ trợ “đúng người — đúng quyền — đúng bước” cho các quy trình vận hành.

### Cách tạo vai trò tuỳ chỉnh (mô tả khái niệm)

* Chọn vai trò kế thừa (Admin hoặc Editor) làm nền
* Cấu hình quyền ở cấp bản ghi (ví dụ: có cho phép xoá bản ghi hay không)
* Cấu hình quyền ở cấp trường (field-level edit permissions): chọn trường nào được phép chỉnh sửa

### Quy tắc vận hành thường gặp

* Một vai trò tuỳ chỉnh có thể gán cho nhiều user hoặc nhóm user trong cùng app
* UI tự điều chỉnh theo quyền (ẩn nút xoá, khoá trường không cho sửa, hiển thị tooltip)
* Một số field không thể nhập liệu (rollup/lookup/formula/autonumber/system fields…) không xuất hiện trong danh sách cấp quyền chỉnh sửa
* Khi có field mới, mặc định **không cho phép chỉnh sửa** trong các vai trò tuỳ chỉnh (cho đến khi cấu hình)

## Thao tác quản trị cơ bản của App

Sau khi tạo app, các thao tác quản trị thường dùng gồm:

* Chỉnh sửa **tên / mô tả / biểu tượng**
* Thay đổi **chế độ bảo mật**
* Quản lý quyền truy cập (mời, đổi role/scope, xoá quyền)
* **Sao chép đường dẫn** app
* **Xoá app** (chuyển vào Thùng rác — xoá tạm thời, có thể khôi phục)
* **Di chuyển app** sang Space khác (nếu trùng tên, hệ thống có thể thêm chỉ số để phân biệt)

## Liên kết liên quan

* Thực hành: [App đầu tiên](/get-started/first-app)
* Data modeling: [Thực thể dữ liệu (Entity)](/build-apps/data-modeling/entities), [Bản ghi (Record)](/build-apps/data-modeling/records), [Kiểu trường dữ liệu (Field types)](/build-apps/data-modeling/field-types)
* UI: [Dạng bảng (Grid view)](/build-apps/ui-views/grid-view), [Bố cục bản ghi (Record layout)](/build-apps/ui-views/record-layout)
* Process: [Thiết kế quy trình (Process Builder)](/build-apps/workflows/process-builder), [Phê duyệt (Approvals)](/build-apps/workflows/approvals)
* Permissions: [Mô hình phân quyền (Permissions model)](/reference/permissions-model-public)
