Chọn ai trả lời từng thẻ phê duyệt, yêu cầu người thứ hai, cho phép break-glass và kiểm tra những gì mỗi Rule đã quyết định
Người phê duyệt là những người được phép trả lời thẻ phê duyệt, tức lời nhắc agent hiển thị khi một thao tác ghi phải chờ người duyệt. Activity cho biết mỗi Rule đã quyết định gì và ai đã phê duyệt, để bạn có thể kiểm tra lại sau.
Vai trò Admin của workspace để thay đổi người phê duyệt hoặc quy tắc hai người. Developer và Viewer có thể xem các thiết lập này.
Vai trò Admin của workspace, hoặc quyền sở hữu workspace, để bật hoặc tắt break-glass. Owner và Admin của tổ chức có vai trò đó trong mọi workspace; xem ai có thể thay đổi Approvals.
Default approvers là nhóm có sẵn, trả lời mọi yêu cầu mà không Rule nào chuyển cho nhóm khác. Bạn không thể đổi tên hoặc xóa nhóm này.Khi nhóm không có thành viên, mọi Developer trở lên đều có thể phê duyệt. Viewer không bao giờ được phê duyệt, nên bạn không thể thêm họ vào bất kỳ nhóm nào.
1
Mở tab Approvers
Mở Approvals trên thanh bên, rồi chọn tab Approvers. Default approvers là dòng đầu tiên.
Approvers: nhóm Default approvers, New group và các công tắc quy tắc hai người và break-glass
2
Thêm thành viên
Nhấn Edit trên Default approvers, thêm những người sẽ trả lời phần lớn yêu cầu vào Members, rồi nhấn Save group.Trạng thái thành công: dòng này liệt kê những người đó thay cho “No one listed, so every Developer or above can approve.”
Nhóm người phê duyệt trả lời yêu cầu của các Rule Ask first có chỉ định nhóm đó, thay cho Default approvers. Dùng nhóm khi một đội cụ thể sở hữu một hệ thống, chẳng hạn DBA cho các thao tác xóa cơ sở dữ liệu. Nhóm bắt đầu nhận yêu cầu khi CloudThinker bật Rule enforcement cho workspace của bạn. Tính năng này mặc định tắt: khi bước Rules hiển thị In preview, Rule chỉ ghi lại quyết định mà chúng sẽ đưa ra, nên mọi yêu cầu đều đến Default approvers cho đến lúc đó.
1
Tạo nhóm
Trên tab Approvers, nhấn New group. Nhập Group name, chẳng hạn On-call SRE, thêm Members, rồi nhấn Create group. Thành viên là những người đã có trong workspace này; Viewer không được liệt kê. Tệp chính sách chỉ định họ bằng email.
2
Chỉ định nhóm trong một Rule
Mở một Rule Ask first trên tab Rules. Ở Who approves this?, chọn nhóm và lưu.Trạng thái thành công: dòng của nhóm trên tab Approvers hiển thị “Used by 1 Rule”.
Khi một thao tác ghi khớp với nhiều Rule, những người sau có thể phê duyệt:
Rule khớp
Ai có thể phê duyệt
Không Rule nào chỉ định nhóm
Default approvers
Một Rule chỉ định nhóm
Thành viên của nhóm đó
Các Rule chỉ định những nhóm khác nhau
Người có mặt trong mọi nhóm được chỉ định
Không còn ai
Admin của workspace
Ví dụ, nếu một thao tác ghi khớp một Rule chỉ định DBA và một Rule khác chỉ định SRE, chỉ người thuộc cả hai nhóm mới có thể phê duyệt. Nếu không ai thuộc cả hai, Admin của workspace sẽ phê duyệt.Nếu hoàn toàn không ai có thể phê duyệt, thẻ hiển thị “No one else can approve this. Ask a workspace owner to add an approver.” Người đó là owner của workspace, hoặc bất kỳ Admin nào của workspace (workspace có thể có nhiều Admin và có thể không có owner). Bạn không thể xóa một nhóm khi vẫn có Rule chỉ định nhóm đó.
Quy tắc hai người ngăn người bắt đầu một lượt chạy tự phê duyệt thao tác ghi của chính họ. Chỉ cần một người phê duyệt khác; đây không phải bỏ phiếu.
1
Bật quy tắc
Trên tab Approvers, bật The person who started a run cannot approve it. Bạn cần có ít nhất 2 người phê duyệt trước.
2
Chọn phạm vi áp dụng
Ở Applies to, chọn một:
Applies to
Ai phải phê duyệt
Destructive actions
Một người phê duyệt khác cho thao tác xóa, phiên shell từ xa như ssh, và mọi lệnh gọi mà CloudThinker không nhận diện được (xem huy hiệu truy cập)
All writes
Một người phê duyệt khác cho mọi thao tác ghi
Trạng thái thành công: lần tới khi bạn bắt đầu một lượt chạy cần phê duyệt, thẻ của bạn không có nút Approve và nêu tên những người khác có thể phê duyệt.
Quy tắc này áp dụng cho mọi yêu cầu, không chỉ yêu cầu từ một Rule. Để chỉ yêu cầu hai người cho một loại thao tác ghi, hãy chọn Needs 2 different people trong Rule đó.
Với All writes, kỹ sư on-call làm việc một mình không thể tự phê duyệt bản sửa lỗi của mình. Hãy đảm bảo luôn liên lạc được với người phê duyệt thứ hai, hoặc chọn Destructive actions.
Break-glass cho phép Admin của workspace chạy một lệnh gọi đã bị Rule Deny từ chối, trong trường hợp khẩn cấp thực sự. Tính năng này mặc định tắt.
Owner hoặc Admin của workspace bật Let owners and admins break glass trên tab Approvers.
Khi một Rule Deny từ chối lệnh gọi trong cuộc chat có người tham gia, owner hoặc Admin của workspace nhấn Break glass… trên thẻ. Chỉ lệnh bị Rule Deny từ chối mới đủ điều kiện. Nếu lệnh bị chế độ Refuse từ chối, hãy chuyển cuộc chat sang chế độ Ask me.
Họ nhập lý do dài từ 20 ký tự trở lên trong vòng 15 phút kể từ yêu cầu. Lệnh gọi chạy một lần.
Owner và các Admin của workspace nhận thông báo trong ứng dụng kèm lý do và liên kết đến cuộc chat. Đây không phải là một trong các sự kiện có thể định tuyến trong Notifications. Lý do cũng được lưu trong nhật ký kiểm tra. Agent không thể yêu cầu break-glass. Khi quy tắc hai người được bật, người bắt đầu lượt chạy cũng không thể break glass cho lượt chạy đó.
Break-glass là một sự kiện bảo mật. Tính năng này không bao giờ chạy lệnh gọi Always blocked hoặc lệnh gọi mà Rule được đánh dấu Never allow break-glass đã từ chối.
Mở Approvals → Activity để kiểm tra các Rule. Chọn khoảng thời gian tối đa 366 ngày. Bảng có một dòng cho mỗi Rule trong khoảng đó, cộng thêm dòng No Rule matched cho các thao tác ghi do chế độ Approval quyết định, chẳng hạn đánh giá của AI hoặc yêu cầu ở chế độ Manual.
Cột
Nội dung
Rule, Source, Accepted by
Rule là gì, đến từ đâu và ai đã chấp nhận
Allowed, Asked first, Refused
Số lệnh gọi mà Rule đã quyết định theo từng cách
Approved, Declined, Approvers
Mọi người đã trả lời yêu cầu của Rule như thế nào, và ai đã trả lời
Break-glass
Số lần có người break glass trên Rule đó
Lọc theo Source, Effect hoặc Result, hoặc dùng Search Rules or people. Nhấn Export CSV để tải xuống mọi Rule trong khoảng thời gian, chẳng hạn cho đợt rà soát quyền truy cập hằng quý.Số lệnh gọi được tính trong 90 ngày gần nhất, vì CloudThinker giữ mỗi bản ghi quyết định trong 90 ngày. Thời gian trong bảng theo UTC. Tab Overview hiển thị cùng các tổng số cho 7 ngày gần nhất: lệnh gọi đã chạy, đã hỏi một người, hoặc đã bị từ chối.
Công tắc cần ít nhất 2 người có thể phê duyệt. Thêm một người phê duyệt khác vào Default approvers hoặc đảm bảo có Developer hoặc Admin thứ hai trong workspace, rồi thử lại.
Có người không thấy nút Approve
Có thể họ là Viewer, họ đã bắt đầu lượt chạy khi quy tắc hai người đang bật, hoặc Rule khớp chuyển yêu cầu cho một nhóm họ không thuộc về. Thẻ nêu tên những người khác có thể phê duyệt.
Break glass… không hiển thị trên thẻ bị từ chối
Break-glass phải được bật, bạn phải là owner hoặc Admin của workspace, và một Rule Deny của workspace phải đã từ chối lệnh gọi trong cuộc chat có người tham gia. Nút này không bao giờ hiển thị cho lệnh gọi Always blocked hoặc Rule được đánh dấu Never allow break-glass, và hết hạn 15 phút sau yêu cầu.
Activity hiển thị No decisions in this period
Chọn khoảng thời gian dài hơn. Nếu vẫn trống, có thể Rule vẫn đang ở chế độ xem trước trong workspace này, nên chưa ghi lại quyết định nào.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"CloudThinker","colors":{"primary":"#0c93c0","light":"#2897c1","dark":"#0c93c0"},"logo":{"light":"https://mintcdn.com/cloudthinker/-4m9DUjwzDxHfABz/logo/light.svg?fit=max\u0026auto=format\u0026n=-4m9DUjwzDxHfABz\u0026q=85\u0026s=a56a571509d1cd246f5b0e68db015e5f","dark":"https://mintcdn.com/cloudthinker/-4m9DUjwzDxHfABz/logo/dark.svg?fit=max\u0026auto=format\u0026n=-4m9DUjwzDxHfABz\u0026q=85\u0026s=4252f33496bbaa527e5408338963a31e"},"favicon":"https://mintcdn.com/cloudthinker/PoYnb4baZ54aMMQW/favicon.ico?fit=max\u0026auto=format\u0026n=PoYnb4baZ54aMMQW\u0026q=85\u0026s=6570e99ed2a763d9632c8f933fe9c164","background":{"color":{"light":"#eef0f3","dark":"#000000"}},"navbar":{"links":[{"href":"https://discord.com/invite/sRBWRWtaNR","label":"Community"},{"href":"https://cloudthinker.io/blogs","label":"Blog"},{"href":"https://cloudthinker.io/contact","label":"Contact us"}],"primary":{"type":"button","label":"Open app","href":"https://app.cloudthinker.io"}},"footer":{"socials":{"x":"https://x.com/cloudthinkerio?s=21","linkedin":"https://www.linkedin.com/company/cloud-thinker","github":"https://github.com/cloudthinker-ai","discord":"https://discord.com/invite/sRBWRWtaNR","youtube":"https://www.youtube.com/@cloudthinkerai"}},"seo":{"indexing":"navigable"},"fonts":{"family":"Poppins"},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"metadata":{"timestamp":false},"styling":{"latex":true},"navigation":{"languages":[{"language":"en","href":""},{"language":"vi","href":"vi"},{"language":"ja","href":"ja"},{"language":"ko","href":"ko"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"cloudthinker","hasAudioNarration":false,"actualSubdomain":"cloudthinker","customDomains":["docs.cloudthinker.io"],"gitSource":{"type":"github","owner":"nhat-tranvan","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae15a4fd86e510dddaf7235","collectionId":"4bee09ef-014a-46f1-a560-f2d4cfb62382","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae15a4fd86e510dddaf7235"},"feedback":{"thumbs":true,"edits":true,"issues":true,"agentFeedback":true},"entitlements":{},"buildId":"6ae15a4fd86e510dddaf7235","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"vi","tag":"Nền tảng","count":131},{"language":"vi","tag":"Kết nối","count":101},{"language":"default","tag":"Platform","count":67},{"language":"en","tag":"Platform","count":63},{"language":"ja","tag":"プラットフォーム","count":63},{"language":"ko","tag":"플랫폼","count":63},{"language":"vi","tag":"Sản phẩm","count":55},{"language":"default","tag":"Connections","count":52},{"language":"en","tag":"Connections","count":49},{"language":"ja","tag":"接続","count":48},{"language":"ko","tag":"연결","count":48},{"language":"vi","tag":"Tài nguyên","count":39},{"language":"vi","tag":"Học","count":30},{"language":"en","tag":"Products","count":29},{"language":"ja","tag":"プロダクト","count":29},{"language":"ko","tag":"제품","count":29},{"language":"default","tag":"Products","count":26},{"language":"default","tag":"Resources","count":26},{"language":"vi","tag":"Bắt đầu","count":26},{"language":"vi","tag":"Observability \u0026 Monitoring","count":24},{"language":"vi","tag":"Resolve","count":20},{"language":"default","tag":"Learn","count":18},{"language":"default","tag":"Agentic Infrastructure Operations - Engineer Edition","count":18},{"language":"vi","tag":"Agentic Infrastructure Operations - Engineer Edition","count":18},{"language":"vi","tag":"Databases","count":16},{"language":"en","tag":"Get started","count":15},{"language":"ja","tag":"はじめに","count":15},{"language":"ko","tag":"시작하기","count":15},{"language":"en","tag":"Resources","count":13},{"language":"ja","tag":"リソース","count":13},{"language":"ko","tag":"리소스","count":13},{"language":"en","tag":"Monitoring","count":12},{"language":"en","tag":"Learn","count":12},{"language":"en","tag":"Agentic Infrastructure Operations - Leadership Edition","count":12},{"language":"ja","tag":"Observability \u0026 Monitoring","count":12},{"language":"ja","tag":"学ぶ","count":12},{"language":"ja","tag":"Agentic Infrastructure Operations - Leadership Edition","count":12},{"language":"ko","tag":"Observability \u0026 Monitoring","count":12},{"language":"ko","tag":"배우기","count":12},{"language":"ko","tag":"Agentic Infrastructure Operations - Leadership Edition","count":12},{"language":"default","tag":"Get started","count":11},{"language":"en","tag":"Resolve","count":11},{"language":"ja","tag":"Resolve","count":11},{"language":"ko","tag":"Resolve","count":11},{"language":"default","tag":"Resolve","count":9},{"language":"en","tag":"Enterprise","count":9},{"language":"ja","tag":"Databases","count":8},{"language":"ko","tag":"Databases","count":8},{"language":"default","tag":"Review","count":6},{"language":"default","tag":"Set up","count":6}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":".ct-landing a,a.ct-featured{text-decoration:none!important}a.ct-featured{display:block;margin:1.25rem 0 1rem;padding:1.75rem 1.75rem 1.5rem;border:1px solid rgba(12,147,192,.45)!important;border-radius:16px;background:radial-gradient(120% 160% at 0 0,rgba(12,147,192,.14),transparent 55%),#fff;box-shadow:0 12px 32px -16px rgba(12,147,192,.45);transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}a.ct-featured:hover{border-color:#0c93c0!important;transform:translateY(-1px);box-shadow:0 16px 40px -16px rgba(12,147,192,.6)}.dark a.ct-featured{border-color:rgba(40,151,193,.45)!important;background:radial-gradient(120% 160% at 0 0,rgba(40,151,193,.16),transparent 55%),#05070a;box-shadow:0 12px 32px -16px rgba(40,151,193,.35)}.dark a.ct-featured:hover{border-color:#2897c1!important}.ct-featured-head{display:flex;align-items:center;gap:.75rem;margin-bottom:.875rem}.ct-featured-icon{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:999px;background:rgba(12,147,192,.12);color:#0a7aa0}.dark .ct-featured-icon{background:rgba(40,151,193,.14);color:#5bb8e0}.ct-eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#0a7aa0}.dark .ct-eyebrow{color:#5bb8e0}.ct-hero h1,.ct-title{font-weight:600;color:#0b1a2b}.ct-title{font-size:1.375rem;line-height:1.3}.dark .ct-card .ct-card-head span,.dark .ct-card h3,.dark .ct-hero h1,.dark .ct-section>h2,.dark .ct-step h3,.dark .ct-title{color:#f5f5f7}.ct-body{margin:.5rem 0 0!important;font-weight:400!important;font-size:1rem;max-width:46rem;color:#5b6577;line-height:1.6}.dark .ct-body,.dark .ct-hero .ct-promise,.dark .ct-hero p.ct-lead,.dark .ct-section>p.ct-section-lead{color:#a1a1a6}.ct-cta{display:inline-block;margin-top:1rem;font-weight:600;color:#0a7aa0}.dark .ct-cta{color:#5bb8e0}.ct-illustration{margin:1.5rem 0}.ct-illustration img{max-width:720px;margin:0 auto}.ct-iso-scene{margin:1.5rem 0 2rem;border:1px solid rgba(12,147,192,.18);border-radius:16px;background:#fff;overflow:hidden}.dark .ct-iso-scene{border-color:rgba(40,151,193,.22);background:#000}.ct-illustration img,.ct-iso-scene .ct-iso-svg{display:block;width:100%;height:auto}.ct-landing{max-width:1120px;margin:0 auto;padding:3rem 1.5rem 5rem}.ct-landing a{border-bottom-width:0}.ct-kicker{font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#0c93c0}.dark .ct-card .ct-tagline,.dark .ct-hero .ct-promise strong,.dark .ct-kicker{color:#2897c1}.ct-hero{text-align:center;padding:1.5rem 0 1rem}.ct-hero h1{margin:.75rem 0 0;font-size:clamp(2.25rem,5vw,3.75rem);line-height:1.05;letter-spacing:-.03em;-webkit-text-fill-color:currentColor;background:0 0}.ct-hero .ct-promise{margin:1rem auto 0;font-size:clamp(1.125rem,2.2vw,1.5rem);color:#5b6577}.ct-hero .ct-promise strong,.ct-section>h2{color:#0c93c0;font-weight:600}.ct-hero p.ct-lead{max-width:44rem;margin:1rem auto 0;font-size:1.0625rem;line-height:1.65;color:#5b6577}.ct-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:1.75rem}.ct-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.25rem;border-radius:999px;font-weight:600;font-size:.95rem;transition:transform .15s ease,background .15s ease}.ct-btn:hover{transform:translateY(-1px)}.ct-btn-primary{background:#0c93c0;color:#fff!important}.ct-btn-primary:hover{background:#0a7aa0}.ct-btn-ghost{border:1px solid rgba(12,147,192,.35)!important;color:#0b1a2b!important}.dark .ct-btn-ghost{color:#f5f5f7!important;border-color:rgba(40,151,193,.4)!important}.ct-landing .ct-iso-scene{margin-top:2.5rem}.ct-section{margin-top:4.5rem}.ct-section>h2{margin:.4rem 0 0;font-size:1.75rem;letter-spacing:-.02em;color:#0b1a2b;-webkit-text-fill-color:currentColor;background:0 0}.ct-section>p.ct-section-lead{margin:.5rem 0 0;color:#5b6577;max-width:46rem}.ct-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-top:1.5rem}.ct-step{display:block;padding:1.25rem;border-radius:14px;border:1px solid rgba(12,147,192,.18)!important;background:#fff;transition:border-color .15s ease,transform .15s ease}.dark .ct-step{background:#05070a;border-color:rgba(40,151,193,.22)!important}.ct-step:hover{border-color:#0c93c0!important;transform:translateY(-1px)}.ct-step-num{display:inline-flex;width:1.75rem;height:1.75rem;border-radius:999px;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;color:#fff;background:#0c93c0}.ct-card h3,.ct-step h3{margin:.75rem 0 .25rem;font-size:1.05rem}.ct-card p,.ct-step p{margin:0;font-size:.925rem;line-height:1.55;color:#5b6577}.dark .ct-card p,.dark .ct-landing td,.dark .ct-step p{color:#a1a1a6}.ct-grid{display:grid;gap:1rem;margin-top:1.5rem}.ct-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ct-grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}.ct-card{display:flex;flex-direction:column;padding:1.25rem;border-radius:14px;border:1px solid rgba(12,147,192,.18);background:#fff}.dark .ct-card{background:#05070a;border-color:rgba(40,151,193,.22)}.ct-card .ct-card-head{display:flex;align-items:center;gap:.6rem}.ct-card .ct-card-head span,.ct-card h3,.ct-step h3{font-weight:600;color:#0b1a2b}.ct-card .ct-tagline{margin-top:.75rem;font-size:1.05rem;font-weight:600;line-height:1.35;color:#0c93c0}.ct-card .ct-links{margin-top:auto;padding-top:1rem;display:flex;gap:1rem;font-size:.9rem;font-weight:600}.ct-card .ct-links a{color:#0c93c0!important}.dark .ct-card .ct-links a,.dark .ct-card-head .ct-arrow,.dark .ct-landing td a{color:#2897c1!important}a.ct-card{transition:border-color .15s ease,transform .15s ease}a.ct-card:hover{border-color:#0c93c0!important;transform:translateY(-1px)}.ct-strip{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.25rem}.ct-strip a{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .95rem;border-radius:999px;border:1px solid rgba(12,147,192,.25)!important;font-size:.9rem;font-weight:500;color:#0b1a2b!important}.dark .ct-strip a{color:#f5f5f7!important;border-color:rgba(40,151,193,.3)!important}.ct-strip a:hover{border-color:#0c93c0!important}@media (max-width:900px){.ct-grid-3,.ct-grid-5,.ct-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.ct-landing{padding:2rem 1rem 4rem}.ct-grid-3,.ct-grid-5,.ct-steps{grid-template-columns:minmax(0,1fr)}}.ct-landing table{width:100%;margin-top:1.25rem;border-collapse:collapse;font-size:.925rem}.ct-landing th{text-align:left;font-weight:600;padding:.7rem .9rem;border-bottom:1px solid rgba(12,147,192,.3)}.ct-landing td{vertical-align:top;padding:.8rem .9rem;border-bottom:1px solid rgba(12,147,192,.12);color:#5b6577;line-height:1.55}.ct-landing td:first-child{font-weight:600;color:#0b1a2b;width:22%}.dark .ct-landing td:first-child{color:#f5f5f7}.ct-landing td a{color:#0c93c0!important;font-weight:600}.ct-product{padding:1.1rem 1.2rem}.ct-product .ct-tagline{margin-top:.55rem;font-size:1rem}.ct-product p{margin-top:.3rem}.ct-card-head .ct-arrow{margin-left:auto;font-weight:500!important;color:#0c93c0!important;transition:transform .15s ease}a.ct-product:hover .ct-arrow{transform:translateX(3px)}html:not(.dark) .ct-card,html:not(.dark) .ct-iso-scene,html:not(.dark) .ct-step{background:#f6f7f9}html:not(.dark) .ct-iso-scene{border-color:rgba(12,147,192,.12)}html:not(.dark) #content-area,html:not(.dark) .prose,html:not(.dark) body{color:#2b3240}html:not(.dark) .prose :where(h1, h2, h3, h4, strong){color:#1c2230}html:not(.dark) .ct-card .ct-card-head span,html:not(.dark) .ct-card h3,html:not(.dark) .ct-hero h1,html:not(.dark) .ct-section>h2,html:not(.dark) .ct-step h3{color:#1c2230}"}],"page":{"pagePath":"vi/guide/approvals/approvers","slug":"/vi/guide/approvals/approvers","pageMetadata":{"title":"Người phê duyệt và Activity","description":"Chọn ai trả lời từng thẻ phê duyệt, yêu cầu người thứ hai, cho phép break-glass và kiểm tra những gì mỗi Rule đã quyết định","icon":"users","href":"/vi/guide/approvals/approvers"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Chọn ai trả lời từng thẻ phê duyệt, yêu cầu người thứ hai, cho phép break-glass và kiểm tra những gì mỗi Rule đã quyết định\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CardGroup,Frame,Heading,OptimizedImage,Step,Steps,Table,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Người phê duyệt là những người được phép trả lời thẻ phê duyệt, tức lời nhắc agent hiển thị khi một thao tác ghi phải chờ người duyệt. `,_jsx(_components.strong,{children:`Activity`}),` cho biết mỗi `,_jsx(_components.a,{href:`/vi/guide/approvals/rules`,children:`Rule`}),` đã quyết định gì và ai đã phê duyệt, để bạn có thể kiểm tra lại sau.`]}),`\n`,_jsx(Heading,{level:`2`,id:`điều-kiện-tiên-quyết`,children:`Điều kiện tiên quyết`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Vai trò Admin của workspace để thay đổi người phê duyệt hoặc quy tắc hai người. Developer và Viewer có thể xem các thiết lập này.`}),`\n`,_jsxs(_components.li,{children:[`Vai trò Admin của workspace, hoặc quyền sở hữu workspace, để bật hoặc tắt break-glass. Owner và Admin của tổ chức có vai trò đó trong mọi workspace; xem `,_jsx(_components.a,{href:`/vi/guide/approvals/overview#ai-c%C3%B3-th%E1%BB%83-thay-%C4%91%E1%BB%95i-approvals`,children:`ai có thể thay đổi Approvals`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`người-phê-duyệt-mặc-định`,children:`Người phê duyệt mặc định`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Default approvers`}),` là nhóm có sẵn, trả lời mọi yêu cầu mà không Rule nào chuyển cho nhóm khác. Bạn không thể đổi tên hoặc xóa nhóm này.`]}),`\n`,_jsx(_components.p,{children:`Khi nhóm không có thành viên, mọi Developer trở lên đều có thể phê duyệt. Viewer không bao giờ được phê duyệt, nên bạn không thể thêm họ vào bất kỳ nhóm nào.`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Mở tab Approvers`,children:[_jsxs(_components.p,{children:[`Mở `,_jsx(_components.strong,{children:`Approvals`}),` trên thanh bên, rồi chọn tab `,_jsx(_components.strong,{children:`Approvers`}),`. `,_jsx(_components.strong,{children:`Default approvers`}),` là dòng đầu tiên.`]}),_jsx(Frame,{caption:`Approvers: nhóm Default approvers, New group và các công tắc quy tắc hai người và break-glass`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/cloudthinker/7N5Axt6gSxkmeWiW/images/v2/approvals-approvers.webp?fit=max\u0026auto=format\u0026n=7N5Axt6gSxkmeWiW\u0026q=85\u0026s=318657e04fa4df3f66b32812af9e91df`,alt:`Tab Approvers với dòng Default approvers, nút New group và các công tắc quy tắc hai người và break-glass`,\"data-og-width\":`2176`,width:`2176`,\"data-og-height\":`1060`,height:`1060`,\"data-path\":`images/v2/approvals-approvers.webp`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/cloudthinker/7N5Axt6gSxkmeWiW/images/v2/approvals-approvers.webp?w=280\u0026fit=max\u0026auto=format\u0026n=7N5Axt6gSxkmeWiW\u0026q=85\u0026s=332e48f0e7ea2c0aec2d8d5441ecd837 280w, https://mintcdn.com/cloudthinker/7N5Axt6gSxkmeWiW/images/v2/approvals-approvers.webp?w=560\u0026fit=max\u0026auto=format\u0026n=7N5Axt6gSxkmeWiW\u0026q=85\u0026s=be0e203442cac7b351ad69eaae7bbf38 560w, https://mintcdn.com/cloudthinker/7N5Axt6gSxkmeWiW/images/v2/approvals-approvers.webp?w=840\u0026fit=max\u0026auto=format\u0026n=7N5Axt6gSxkmeWiW\u0026q=85\u0026s=e09baefcf84fbef1b496c5f5935292a0 840w, https://mintcdn.com/cloudthinker/7N5Axt6gSxkmeWiW/images/v2/approvals-approvers.webp?w=1100\u0026fit=max\u0026auto=format\u0026n=7N5Axt6gSxkmeWiW\u0026q=85\u0026s=c7e3b8c3e9e1b8fa832d4f26b492083a 1100w, https://mintcdn.com/cloudthinker/7N5Axt6gSxkmeWiW/images/v2/approvals-approvers.webp?w=1650\u0026fit=max\u0026auto=format\u0026n=7N5Axt6gSxkmeWiW\u0026q=85\u0026s=d6f77b9e37877d914a74792f131179b2 1650w, https://mintcdn.com/cloudthinker/7N5Axt6gSxkmeWiW/images/v2/approvals-approvers.webp?w=2500\u0026fit=max\u0026auto=format\u0026n=7N5Axt6gSxkmeWiW\u0026q=85\u0026s=e6e06c003ccfa81667e5069d055a7659 2500w`})})]}),_jsxs(Step,{title:`Thêm thành viên`,children:[_jsxs(_components.p,{children:[`Nhấn `,_jsx(_components.strong,{children:`Edit`}),` trên `,_jsx(_components.strong,{children:`Default approvers`}),`, thêm những người sẽ trả lời phần lớn yêu cầu vào `,_jsx(_components.strong,{children:`Members`}),`, rồi nhấn `,_jsx(_components.strong,{children:`Save group`}),`.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Trạng thái thành công:`}),` dòng này liệt kê những người đó thay cho “No one listed, so every Developer or above can approve.”`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`chuyển-một-loại-thao-tác-ghi-cho-một-nhóm`,children:`Chuyển một loại thao tác ghi cho một nhóm`}),`\n`,_jsxs(_components.p,{children:[`Nhóm người phê duyệt trả lời yêu cầu của các Rule `,_jsx(_components.strong,{children:`Ask first`}),` có chỉ định nhóm đó, thay cho Default approvers. Dùng nhóm khi một đội cụ thể sở hữu một hệ thống, chẳng hạn DBA cho các thao tác xóa cơ sở dữ liệu. Nhóm bắt đầu nhận yêu cầu khi CloudThinker bật Rule enforcement cho workspace của bạn. Tính năng này mặc định tắt: khi bước `,_jsx(_components.strong,{children:`Rules`}),` hiển thị `,_jsx(_components.strong,{children:`In preview`}),`, Rule chỉ ghi lại quyết định mà chúng sẽ đưa ra, nên mọi yêu cầu đều đến Default approvers cho đến lúc đó.`]}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Tạo nhóm`,children:_jsxs(_components.p,{children:[`Trên tab `,_jsx(_components.strong,{children:`Approvers`}),`, nhấn `,_jsx(_components.strong,{children:`New group`}),`. Nhập `,_jsx(_components.strong,{children:`Group name`}),`, chẳng hạn `,_jsx(_components.code,{children:`On-call SRE`}),`, thêm `,_jsx(_components.strong,{children:`Members`}),`, rồi nhấn `,_jsx(_components.strong,{children:`Create group`}),`. Thành viên là những người đã có trong workspace này; Viewer không được liệt kê. Tệp chính sách chỉ định họ bằng email.`]})}),_jsxs(Step,{title:`Chỉ định nhóm trong một Rule`,children:[_jsxs(_components.p,{children:[`Mở một Rule `,_jsx(_components.strong,{children:`Ask first`}),` trên tab `,_jsx(_components.strong,{children:`Rules`}),`. Ở `,_jsx(_components.strong,{children:`Who approves this?`}),`, chọn nhóm và lưu.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Trạng thái thành công:`}),` dòng của nhóm trên tab `,_jsx(_components.strong,{children:`Approvers`}),` hiển thị “Used by 1 Rule”.`]})]})]}),`\n`,_jsx(_components.p,{children:`Khi một thao tác ghi khớp với nhiều Rule, những người sau có thể phê duyệt:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Rule khớp`}),_jsx(_components.th,{children:`Ai có thể phê duyệt`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Không Rule nào chỉ định nhóm`}),_jsx(_components.td,{children:`Default approvers`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Một Rule chỉ định nhóm`}),_jsx(_components.td,{children:`Thành viên của nhóm đó`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Các Rule chỉ định những nhóm khác nhau`}),_jsx(_components.td,{children:`Người có mặt trong mọi nhóm được chỉ định`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Không còn ai`}),_jsx(_components.td,{children:`Admin của workspace`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Ví dụ, nếu một thao tác ghi khớp một Rule chỉ định `,_jsx(_components.code,{children:`DBA`}),` và một Rule khác chỉ định `,_jsx(_components.code,{children:`SRE`}),`, chỉ người thuộc cả hai nhóm mới có thể phê duyệt. Nếu không ai thuộc cả hai, Admin của workspace sẽ phê duyệt.`]}),`\n`,_jsxs(_components.p,{children:[`Nếu hoàn toàn không ai có thể phê duyệt, thẻ hiển thị “No one else can approve this. Ask a workspace owner to add an approver.” Người đó là owner của workspace, hoặc bất kỳ Admin nào của workspace (workspace có thể có nhiều Admin và `,_jsx(_components.a,{href:`/vi/guide/security/roles`,children:`có thể không có owner`}),`). Bạn không thể xóa một nhóm khi vẫn có Rule chỉ định nhóm đó.`]}),`\n`,_jsx(Heading,{level:`2`,id:`yêu-cầu-người-thứ-hai`,children:`Yêu cầu người thứ hai`}),`\n`,_jsx(_components.p,{children:`Quy tắc hai người ngăn người bắt đầu một lượt chạy tự phê duyệt thao tác ghi của chính họ. Chỉ cần một người phê duyệt khác; đây không phải bỏ phiếu.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Bật quy tắc`,children:_jsxs(_components.p,{children:[`Trên tab `,_jsx(_components.strong,{children:`Approvers`}),`, bật `,_jsx(_components.strong,{children:`The person who started a run cannot approve it`}),`. Bạn cần có ít nhất 2 người phê duyệt trước.`]})}),_jsxs(Step,{title:`Chọn phạm vi áp dụng`,children:[_jsxs(_components.p,{children:[`Ở `,_jsx(_components.strong,{children:`Applies to`}),`, chọn một:`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Applies to`}),_jsx(_components.th,{children:`Ai phải phê duyệt`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Destructive actions`})}),_jsxs(_components.td,{children:[`Một người phê duyệt khác cho thao tác xóa, phiên shell từ xa như `,_jsx(_components.code,{children:`ssh`}),`, và mọi lệnh gọi mà CloudThinker không nhận diện được (xem `,_jsx(_components.a,{href:`/vi/guide/approvals/rules#rule-g%E1%BB%93m-nh%E1%BB%AFng-g%C3%AC`,children:`huy hiệu truy cập`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`All writes`})}),_jsx(_components.td,{children:`Một người phê duyệt khác cho mọi thao tác ghi`})]})]})]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Trạng thái thành công:`}),` lần tới khi bạn bắt đầu một lượt chạy cần phê duyệt, thẻ của bạn không có nút `,_jsx(_components.strong,{children:`Approve`}),` và nêu tên những người khác có thể phê duyệt.`]})]})]}),`\n`,_jsxs(_components.p,{children:[`Quy tắc này áp dụng cho mọi yêu cầu, không chỉ yêu cầu từ một Rule. Để chỉ yêu cầu hai người cho một loại thao tác ghi, hãy chọn `,_jsx(_components.strong,{children:`Needs 2 different people`}),` trong Rule đó.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Với `,_jsx(_components.strong,{children:`All writes`}),`, kỹ sư on-call làm việc một mình không thể tự phê duyệt bản sửa lỗi của mình. Hãy đảm bảo luôn liên lạc được với người phê duyệt thứ hai, hoặc chọn `,_jsx(_components.strong,{children:`Destructive actions`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`break-glass`,children:`Break-glass`}),`\n`,_jsxs(_components.p,{children:[`Break-glass cho phép Admin của workspace chạy một lệnh gọi đã bị Rule `,_jsx(_components.strong,{children:`Deny`}),` từ chối, trong trường hợp khẩn cấp thực sự. Tính năng này mặc định tắt.`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Owner hoặc Admin của workspace bật `,_jsx(_components.strong,{children:`Let owners and admins break glass`}),` trên tab `,_jsx(_components.strong,{children:`Approvers`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Khi một Rule `,_jsx(_components.strong,{children:`Deny`}),` từ chối lệnh gọi trong cuộc chat có người tham gia, owner hoặc Admin của workspace nhấn `,_jsx(_components.strong,{children:`Break glass…`}),` trên thẻ. Chỉ lệnh bị Rule Deny từ chối mới đủ điều kiện. Nếu lệnh bị chế độ `,_jsx(_components.strong,{children:`Refuse`}),` từ chối, hãy chuyển cuộc chat sang chế độ `,_jsx(_components.strong,{children:`Ask me`}),`.`]}),`\n`,_jsx(_components.li,{children:`Họ nhập lý do dài từ 20 ký tự trở lên trong vòng 15 phút kể từ yêu cầu. Lệnh gọi chạy một lần.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Owner và các Admin của workspace nhận thông báo trong ứng dụng kèm lý do và liên kết đến cuộc chat. Đây không phải là một trong các sự kiện có thể định tuyến trong `,_jsx(_components.a,{href:`/vi/guide/notifications`,children:`Notifications`}),`. Lý do cũng được lưu trong `,_jsx(_components.a,{href:`/vi/guide/security/audit-logs`,children:`nhật ký kiểm tra`}),`. Agent không thể yêu cầu break-glass. Khi quy tắc hai người được bật, người bắt đầu lượt chạy cũng không thể break glass cho lượt chạy đó.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Break-glass là một sự kiện bảo mật. Tính năng này không bao giờ chạy lệnh gọi `,_jsx(_components.strong,{children:`Always blocked`}),` hoặc lệnh gọi mà Rule được đánh dấu `,_jsx(_components.strong,{children:`Never allow break-glass`}),` đã từ chối.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`kiểm-tra-activity`,children:`Kiểm tra Activity`}),`\n`,_jsxs(_components.p,{children:[`Mở `,_jsx(_components.strong,{children:`Approvals → Activity`}),` để kiểm tra các Rule. Chọn khoảng thời gian tối đa 366 ngày. Bảng có một dòng cho mỗi Rule trong khoảng đó, cộng thêm dòng `,_jsx(_components.strong,{children:`No Rule matched`}),` cho các thao tác ghi do chế độ Approval quyết định, chẳng hạn đánh giá của AI hoặc yêu cầu ở chế độ Manual.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Cột`}),_jsx(_components.th,{children:`Nội dung`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Rule`}),`, `,_jsx(_components.strong,{children:`Source`}),`, `,_jsx(_components.strong,{children:`Accepted by`})]}),_jsx(_components.td,{children:`Rule là gì, đến từ đâu và ai đã chấp nhận`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Allowed`}),`, `,_jsx(_components.strong,{children:`Asked first`}),`, `,_jsx(_components.strong,{children:`Refused`})]}),_jsx(_components.td,{children:`Số lệnh gọi mà Rule đã quyết định theo từng cách`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Approved`}),`, `,_jsx(_components.strong,{children:`Declined`}),`, `,_jsx(_components.strong,{children:`Approvers`})]}),_jsx(_components.td,{children:`Mọi người đã trả lời yêu cầu của Rule như thế nào, và ai đã trả lời`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Break-glass`})}),_jsx(_components.td,{children:`Số lần có người break glass trên Rule đó`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Lọc theo `,_jsx(_components.strong,{children:`Source`}),`, `,_jsx(_components.strong,{children:`Effect`}),` hoặc `,_jsx(_components.strong,{children:`Result`}),`, hoặc dùng `,_jsx(_components.strong,{children:`Search Rules or people`}),`. Nhấn `,_jsx(_components.strong,{children:`Export CSV`}),` để tải xuống mọi Rule trong khoảng thời gian, chẳng hạn cho đợt rà soát quyền truy cập hằng quý.`]}),`\n`,_jsxs(_components.p,{children:[`Số lệnh gọi được tính trong 90 ngày gần nhất, vì CloudThinker giữ mỗi bản ghi quyết định trong 90 ngày. Thời gian trong bảng theo UTC. Tab `,_jsx(_components.strong,{children:`Overview`}),` hiển thị cùng các tổng số cho 7 ngày gần nhất: lệnh gọi đã chạy, đã hỏi một người, hoặc đã bị từ chối.`]}),`\n`,_jsx(Heading,{level:`2`,id:`khắc-phục-sự-cố`,children:`Khắc phục sự cố`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Tôi không thể bật quy tắc hai người`,id:`toi-khong-the-bat-quy-tac-hai-nguoi`,children:_jsx(_components.p,{children:`Công tắc cần ít nhất 2 người có thể phê duyệt. Thêm một người phê duyệt khác vào Default approvers hoặc đảm bảo có Developer hoặc Admin thứ hai trong workspace, rồi thử lại.`})}),_jsx(Accordion,{title:`Có người không thấy nút Approve`,id:`co-nguoi-khong-thay-nut-approve`,children:_jsx(_components.p,{children:`Có thể họ là Viewer, họ đã bắt đầu lượt chạy khi quy tắc hai người đang bật, hoặc Rule khớp chuyển yêu cầu cho một nhóm họ không thuộc về. Thẻ nêu tên những người khác có thể phê duyệt.`})}),_jsx(Accordion,{title:`Break glass… không hiển thị trên thẻ bị từ chối`,id:`break-glass-khong-hien-thi-tren-the-bi-tu-choi`,children:_jsxs(_components.p,{children:[`Break-glass phải được bật, bạn phải là owner hoặc Admin của workspace, và một Rule `,_jsx(_components.strong,{children:`Deny`}),` của workspace phải đã từ chối lệnh gọi trong cuộc chat có người tham gia. Nút này không bao giờ hiển thị cho lệnh gọi `,_jsx(_components.strong,{children:`Always blocked`}),` hoặc Rule được đánh dấu `,_jsx(_components.strong,{children:`Never allow break-glass`}),`, và hết hạn 15 phút sau yêu cầu.`]})}),_jsx(Accordion,{title:`Activity hiển thị No decisions in this period`,id:`activity-hien-thi-no-decisions-in-this-period`,children:_jsx(_components.p,{children:`Chọn khoảng thời gian dài hơn. Nếu vẫn trống, có thể Rule vẫn đang ở chế độ xem trước trong workspace này, nên chưa ghi lại quyết định nào.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`bước-tiếp-theo`,children:`Bước tiếp theo`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Approval Rules`,icon:`list-check`,href:`/vi/guide/approvals/rules`,children:_jsx(_components.p,{children:`Tạo Rule Ask first chuyển yêu cầu đến các nhóm của bạn`})}),_jsx(Card,{title:`Audit Logs`,icon:`scroll`,href:`/vi/guide/security/audit-logs`,children:_jsx(_components.p,{children:`Xem các sự kiện bảo mật của workspace, bao gồm break-glass`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Người phê duyệt và Activity","description":"Chọn ai trả lời từng thẻ phê duyệt, yêu cầu người thứ hai, cho phép break-glass và kiểm tra những gì mỗi Rule đã quyết định","icon":"users","href":"/vi/guide/approvals/approvers"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Điều kiện tiên quyết","slug":"điều-kiện-tiên-quyết","depth":2,"children":[]},{"title":"Người phê duyệt mặc định","slug":"người-phê-duyệt-mặc-định","depth":2,"children":[]},{"title":"Chuyển một loại thao tác ghi cho một nhóm","slug":"chuyển-một-loại-thao-tác-ghi-cho-một-nhóm","depth":2,"children":[]},{"title":"Yêu cầu người thứ hai","slug":"yêu-cầu-người-thứ-hai","depth":2,"children":[]},{"title":"Break-glass","slug":"break-glass","depth":2,"children":[]},{"title":"Kiểm tra Activity","slug":"kiểm-tra-activity","depth":2,"children":[]},{"title":"Khắc phục sự cố","slug":"khắc-phục-sự-cố","depth":2,"children":[]},{"title":"Bước tiếp theo","slug":"bước-tiếp-theo","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"cloudthinker","siteName":"CloudThinker","title":"Người phê duyệt và Activity - CloudThinker","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/guide/approvals/approvers","matchLevel":1},"vi":{"href":"/vi/guide/approvals/approvers","matchLevel":0},"ja":{"href":"/guide/approvals/approvers","matchLevel":1},"ko":{"href":"/guide/approvals/approvers","matchLevel":1}}},"lastModified":"2026-10-28T02:14:50.771Z","originalFileLocation":"vi/guide/approvals/approvers.mdx","locale":"vi"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Chọn ai trả lời từng thẻ phê duyệt, yêu cầu người thứ hai, cho phép break-glass và kiểm tra những gì mỗi Rule đã quyết định\">\u003cmeta data-mint-head name=\"application-name\" content=\"CloudThinker\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cloudthinker/2UjfrgdSjUW0wAzv/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/cloudthinker/2UjfrgdSjUW0wAzv/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cloudthinker/2UjfrgdSjUW0wAzv/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/cloudthinker/2UjfrgdSjUW0wAzv/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/cloudthinker/2UjfrgdSjUW0wAzv/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cloudthinker/2UjfrgdSjUW0wAzv/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cloudthinker/2UjfrgdSjUW0wAzv/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/cloudthinker/2UjfrgdSjUW0wAzv/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/cloudthinker/2UjfrgdSjUW0wAzv/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Người phê duyệt và Activity - CloudThinker\">\u003cmeta data-mint-head property=\"og:description\" content=\"Chọn ai trả lời từng thẻ phê duyệt, yêu cầu người thứ hai, cho phép break-glass và kiểm tra những gì mỗi Rule đã quyết định\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"CloudThinker\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.cloudthinker.io/vi/guide/approvals/approvers\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://cloudthinker.mintlify.app/_mintlify/api/og/v2?division=Approvals\u0026amp;title=Ng%C6%B0%E1%BB%9Di+ph%C3%AA+duy%E1%BB%87t+v%C3%A0+Activity\u0026amp;description=Ch%E1%BB%8Dn+ai+tr%E1%BA%A3+l%E1%BB%9Di+t%E1%BB%ABng+th%E1%BA%BB+ph%C3%AA+duy%E1%BB%87t%2C+y%C3%AAu+c%E1%BA%A7u+ng%C6%B0%E1%BB%9Di+th%E1%BB%A9+hai%2C+cho+ph%C3%A9p+break-glass+v%C3%A0+ki%E1%BB%83m+tra+nh%E1%BB%AFng+g%C3%AC+m%E1%BB%97i+Rule+%C4%91%C3%A3+quy%E1%BA%BFt+%C4%91%E1%BB%8Bnh\u0026amp;theme=a662466b4ca99701c5f8fbf0\u0026amp;signature=36c0f6de0bda4f7d91fd9a256511107e596c13d1c2eb0898ec1341876c6915d9\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Người phê duyệt và Activity - CloudThinker\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Chọn ai trả lời từng thẻ phê duyệt, yêu cầu người thứ hai, cho phép break-glass và kiểm tra những gì mỗi Rule đã quyết định\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://cloudthinker.mintlify.app/_mintlify/api/og/v2?division=Approvals\u0026amp;title=Ng%C6%B0%E1%BB%9Di+ph%C3%AA+duy%E1%BB%87t+v%C3%A0+Activity\u0026amp;description=Ch%E1%BB%8Dn+ai+tr%E1%BA%A3+l%E1%BB%9Di+t%E1%BB%ABng+th%E1%BA%BB+ph%C3%AA+duy%E1%BB%87t%2C+y%C3%AAu+c%E1%BA%A7u+ng%C6%B0%E1%BB%9Di+th%E1%BB%A9+hai%2C+cho+ph%C3%A9p+break-glass+v%C3%A0+ki%E1%BB%83m+tra+nh%E1%BB%AFng+g%C3%AC+m%E1%BB%97i+Rule+%C4%91%C3%A3+quy%E1%BA%BFt+%C4%91%E1%BB%8Bnh\u0026amp;theme=a662466b4ca99701c5f8fbf0\u0026amp;signature=36c0f6de0bda4f7d91fd9a256511107e596c13d1c2eb0898ec1341876c6915d9\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/cloudthinker/2UjfrgdSjUW0wAzv/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"CloudThinker\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0c93c0\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.cloudthinker.io/vi/guide/approvals/approvers\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/vi/guide/approvals/approvers.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"vi\" href=\"https://docs.cloudthinker.io/vi/guide/approvals/approvers\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.cloudthinker.io/guide/approvals/approvers\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.cloudthinker.io/guide/approvals/approvers\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.cloudthinker.io/guide/approvals/approvers\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.cloudthinker.io/guide/approvals/approvers\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.cloudthinker.io/#organization\",\"name\":\"CloudThinker\",\"url\":\"https://docs.cloudthinker.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/cloudthinker/-4m9DUjwzDxHfABz/logo/light.svg?fit=max\u0026auto=format\u0026n=-4m9DUjwzDxHfABz\u0026q=85\u0026s=a56a571509d1cd246f5b0e68db015e5f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.cloudthinker.io#website\",\"name\":\"CloudThinker\",\"url\":\"https://docs.cloudthinker.io\",\"publisher\":{\"@id\":\"https://docs.cloudthinker.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.cloudthinker.io/vi/guide/approvals/approvers#webpage\",\"url\":\"https://docs.cloudthinker.io/vi/guide/approvals/approvers\",\"name\":\"Người phê duyệt và Activity\",\"description\":\"Chọn ai trả lời từng thẻ phê duyệt, yêu cầu người thứ hai, cho phép break-glass và kiểm tra những gì mỗi Rule đã quyết định\",\"dateModified\":\"2026-10-28T02:14:50.771Z\",\"isPartOf\":{\"@id\":\"https://docs.cloudthinker.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.cloudthinker.io/vi/guide/approvals/approvers#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.cloudthinker.io/vi/guide/approvals/approvers#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Approvals\",\"item\":\"https://docs.cloudthinker.io/vi/guide/approvals/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Người phê duyệt và Activity\",\"item\":\"https://docs.cloudthinker.io/vi/guide/approvals/approvers\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.cloudthinker.io/vi/guide/approvals/approvers#article\",\"headline\":\"Người phê duyệt và Activity\",\"name\":\"Người phê duyệt và Activity\",\"description\":\"Chọn ai trả lời từng thẻ phê duyệt, yêu cầu người thứ hai, cho phép break-glass và kiểm tra những gì mỗi Rule đã quyết định\",\"url\":\"https://docs.cloudthinker.io/vi/guide/approvals/approvers\",\"mainEntityOfPage\":{\"@id\":\"https://docs.cloudthinker.io/vi/guide/approvals/approvers#webpage\"},\"dateModified\":\"2026-10-28T02:14:50.771Z\",\"publisher\":{\"@id\":\"https://docs.cloudthinker.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.cloudthinker.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"CloudThinker\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"CloudThinker","nav":{"global":null,"languages":[{"language":"en","pages":[{"title":"en","href":"/guide/approvals/approvers"}]},{"language":"vi","tabs":[{"tab":"Bắt đầu","pages":[{"title":"Bắt đầu","href":"/vi"}]},{"tab":"Sản phẩm","pages":[{"title":"Sản phẩm","href":"/vi/guide/incident/overview"}]},{"tab":"Nền tảng","groups":[{"group":"Kết nối","pages":[{"title":"Connections","icon":"plug","href":"/vi/guide/connections/overview"},{"group":"Cloud Platforms","pages":[{"title":"Amazon Web Services","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/aws.svg","href":"/vi/guide/connections/aws"},{"title":"Google Cloud Platform","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/gcp.svg","href":"/vi/guide/connections/gcp"},{"title":"Microsoft Azure","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/azure.svg","href":"/vi/guide/connections/azure"},{"title":"Firebase","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/firebase.svg","href":"/vi/guide/connections/firebase"},{"title":"Cloudflare","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/cloudflare.svg","href":"/vi/guide/connections/cloudflare"},{"title":"Vercel","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/vercel.svg","href":"/vi/guide/connections/vercel"},{"title":"Netlify","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/netlify.svg","href":"/vi/guide/connections/netlify"},{"title":"Heroku","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/heroku.svg","href":"/vi/guide/connections/heroku"},{"title":"Render","icon":"server","href":"/vi/guide/connections/render"},{"title":"DigitalOcean","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/digitalocean.svg","href":"/vi/guide/connections/digitalocean"},{"title":"Fly.io","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/flyio.svg","href":"/vi/guide/connections/flyio"},{"title":"GreenNode","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/greennode.svg","href":"/vi/guide/connections/greennode"},{"title":"FPT Cloud","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/fptcloud.svg","href":"/vi/guide/connections/fptcloud"},{"title":"OpenStack","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/openstack.svg","href":"/vi/guide/connections/openstack"},{"title":"VMware vCenter","icon":"server","href":"/vi/guide/connections/vmware"}]},{"group":"Infrastructure \u0026 Access","pages":[{"title":"Kubernetes","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/kubernetes.svg","href":"/vi/guide/connections/kubernetes"},{"title":"Rancher","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/rancher.svg","href":"/vi/guide/connections/rancher"},{"title":"Pulumi","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/pulumi.svg","href":"/vi/guide/connections/pulumi"},{"title":"HCP Terraform","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/terraform.svg","href":"/vi/guide/connections/terraform"},{"title":"SSH","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/ssh.svg","href":"/vi/guide/connections/ssh"},{"title":"HashiCorp Vault","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/vault.svg","href":"/vi/guide/connections/vault"},{"title":"Keycloak","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/keycloak.svg","href":"/vi/guide/connections/keycloak"},{"title":"Backstage","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/backstage.svg","href":"/vi/guide/connections/backstage"},{"title":"Okta","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/okta.svg","href":"/vi/guide/connections/okta"}]},{"group":"Databases","pages":[{"title":"PostgreSQL","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/postgresql.svg","href":"/vi/guide/connections/postgresql"},{"title":"CockroachDB","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/cockroachdb.svg","href":"/vi/guide/connections/cockroachdb"},{"title":"MySQL","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/mysql.svg","href":"/vi/guide/connections/mysql"},{"title":"MongoDB","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/mongodb.svg","href":"/vi/guide/connections/mongodb"},{"title":"Redis","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/redis.svg","href":"/vi/guide/connections/redis"},{"title":"ClickHouse","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/clickhouse.svg","href":"/vi/guide/connections/clickhouse"},{"title":"Apache Cassandra","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/cassandra.svg","href":"/vi/guide/connections/cassandra"},{"title":"Snowflake","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/snowflake.svg","href":"/vi/guide/connections/snowflake"},{"title":"Databricks","icon":"layer-group","href":"/vi/guide/connections/databricks"},{"title":"Neon","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/neon.svg","href":"/vi/guide/connections/neon"},{"title":"Supabase","icon":"bolt","href":"/vi/guide/connections/supabase"},{"title":"Elasticsearch","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/elasticsearch.svg","href":"/vi/guide/connections/elasticsearch"},{"title":"OpenSearch","icon":"magnifying-glass-chart","href":"/vi/guide/connections/opensearch"},{"title":"InfluxDB","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/influxdb.svg","href":"/vi/guide/connections/influxdb"},{"title":"Microsoft SQL Server","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/mssql.svg","href":"/vi/guide/connections/mssql"},{"title":"Pinecone","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/pinecone.svg","href":"/vi/guide/connections/pinecone"}]},{"group":"Messaging \u0026 Streaming","pages":[{"title":"Apache Kafka","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/kafka.svg","href":"/vi/guide/connections/kafka"},{"title":"RabbitMQ","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/rabbitmq.svg","href":"/vi/guide/connections/rabbitmq"},{"title":"Flespi","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/flespi.svg","href":"/vi/guide/connections/flespi"}]},{"group":"Observability \u0026 Monitoring","pages":[{"title":"Grafana","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/grafana.svg","href":"/vi/guide/connections/grafana"},{"title":"Prometheus","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/prometheus.svg","href":"/vi/guide/connections/prometheus"},{"title":"PRTG Network Monitor","href":"/vi/guide/connections/prtg"},{"title":"Datadog","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/datadog.svg","href":"/vi/guide/connections/datadog"},{"title":"New Relic","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/newrelic.svg","href":"/vi/guide/connections/newrelic"},{"title":"Dynatrace","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/dynatrace.svg","href":"/vi/guide/connections/dynatrace"},{"title":"AppDynamics","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/appdynamics.svg","href":"/vi/guide/connections/appdynamics"},{"title":"Coralogix","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/coralogix.svg","href":"/vi/guide/connections/coralogix"},{"title":"SigNoz","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/signoz.svg","href":"/vi/guide/connections/signoz"},{"title":"Honeycomb","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/honeycomb.svg","href":"/vi/guide/connections/honeycomb"},{"title":"Splunk Observability","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/splunkobservability.svg","href":"/vi/guide/connections/splunkobservability"},{"title":"Sumo Logic","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/sumologic.svg","href":"/vi/guide/connections/sumologic"},{"title":"Graylog","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/graylog.svg","href":"/vi/guide/connections/graylog"},{"title":"Zabbix","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/zabbix.svg","href":"/vi/guide/connections/zabbix"},{"title":"Better Stack","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/betterstack.svg","href":"/vi/guide/connections/betterstack"},{"title":"Rollbar","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/rollbar.svg","href":"/vi/guide/connections/rollbar"},{"title":"Sentry","icon":"bug","href":"/vi/guide/connections/sentry"},{"title":"Langfuse","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/langfuse.svg","href":"/vi/guide/connections/langfuse"},{"title":"PostHog","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/posthog.svg","href":"/vi/guide/connections/posthog"},{"title":"Splunk Platform","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/splunkplatform.svg","href":"/vi/guide/connections/splunkplatform"},{"title":"Braintrust","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/braintrust.svg","href":"/vi/guide/connections/braintrust"},{"title":"LangSmith","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/langsmith.svg","href":"/vi/guide/connections/langsmith"},{"title":"UptimeRobot","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/uptimerobot.svg","href":"/vi/guide/connections/uptimerobot"},{"title":"Microsoft Clarity","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/clarity.svg","href":"/vi/guide/connections/clarity"}]},{"group":"CI/CD \u0026 Code Quality","pages":[{"title":"GitHub","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/github.svg","href":"/vi/guide/connections/github"},{"title":"GitLab","icon":"gitlab","href":"/vi/guide/connections/gitlab"},{"title":"Bitbucket","icon":"bitbucket","href":"/vi/guide/connections/bitbucket"},{"title":"Azure DevOps","icon":"microsoft","href":"/vi/guide/connections/azure-devops"},{"title":"Jenkins","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/jenkins.svg","href":"/vi/guide/connections/jenkins"},{"title":"CircleCI","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/circleci.svg","href":"/vi/guide/connections/circleci"},{"title":"Buildkite","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/buildkite.svg","href":"/vi/guide/connections/buildkite"},{"title":"Docker Hub","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/dockerhub.svg","href":"/vi/guide/connections/dockerhub"},{"title":"ArgoCD","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/argocd.svg","href":"/vi/guide/connections/argocd"},{"title":"AWX","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/awx.svg","href":"/vi/guide/connections/awx"},{"title":"SonarQube","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/sonarqube.svg","href":"/vi/guide/connections/sonarqube"},{"title":"GitGuardian","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/gitguardian.svg","href":"/vi/guide/connections/gitguardian"},{"title":"Harness","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/harness.svg","href":"/vi/guide/connections/harness"},{"title":"AWS CodeCommit","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/aws-codecommit.svg","href":"/vi/guide/connections/aws-codecommit"},{"title":"Semgrep","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/semgrep.svg","href":"/vi/guide/connections/semgrep"}]},{"group":"Incident \u0026 Ticketing","pages":[{"title":"PagerDuty","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/pagerduty.svg","href":"/vi/guide/connections/pagerduty"},{"title":"Rootly","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/rootly.svg","href":"/vi/guide/connections/rootly"},{"title":"ServiceNow","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/servicenow.svg","href":"/vi/guide/connections/servicenow"},{"title":"Atlassian","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/atlassian.svg","href":"/vi/guide/connections/atlassian"},{"title":"Jira Service Management","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/jsm.svg","href":"/vi/guide/connections/jsm"},{"title":"Backlog","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/backlog.svg","href":"/vi/guide/connections/backlog"},{"title":"monday.com","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/monday.svg","href":"/vi/guide/connections/monday"},{"title":"Linear","icon":"list-check","href":"/vi/guide/connections/linear"},{"title":"Notion","icon":"book-open","href":"/vi/guide/connections/notion"},{"title":"ClickUp","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/clickup.svg","href":"/vi/guide/connections/clickup"},{"title":"Asana","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/asana.svg","href":"/vi/guide/connections/asana"},{"title":"HubSpot","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/hubspot.svg","href":"/vi/guide/connections/hubspot"},{"title":"FireHydrant","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/firehydrant.svg","href":"/vi/guide/connections/firehydrant"}]},{"group":"Security \u0026 Compliance","pages":[{"title":"FortiGate","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/fortigate.svg","href":"/vi/guide/connections/fortigate"},{"title":"Prowler","icon":"shield-check","href":"/vi/guide/connections/prowler"},{"title":"Wazuh","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/wazuh.svg","href":"/vi/guide/connections/wazuh"},{"title":"Drata","icon":"clipboard-check","href":"/vi/guide/connections/drata"}]},{"group":"Custom MCP","pages":[{"title":"MCP","icon":"https://mintlify.s3.us-west-1.amazonaws.com/cloudthinker/images/icons/mcp.svg","href":"/vi/guide/connections/mcp"}]}]},{"group":"Customize","pages":[{"title":"Dạy CloudThinker","icon":"graduation-cap","href":"/vi/guide/teach-cloudthinker"},{"title":"Bắt đầu nhanh với agent tùy chỉnh","icon":"rocket","href":"/vi/guide/agents/quickstart"},{"title":"Skill tùy chỉnh","icon":"wand-magic-sparkles","href":"/vi/guide/skills/custom-skills"},{"title":"Định dạng skill","icon":"file-code","href":"/vi/guide/skills/skill-format"}]},{"group":"Approvals","pages":[{"title":"Approvals","icon":"shield-check","href":"/vi/guide/approvals/overview"},{"title":"Approval Rules","icon":"list-check","href":"/vi/guide/approvals/rules"},{"title":"Approval Mode","description":"Chọn Manual hoặc Auto cho workspace, từng loại run, một Automation hoặc một cuộc chat, và xem mỗi lựa chọn hoạt động thế nào","icon":"bolt","href":"/vi/guide/approvals/approval-mode"},{"title":"Người phê duyệt và Activity","icon":"users","href":"/vi/guide/approvals/approvers"}]},{"group":"Cài đặt workspace","pages":[{"title":"Workspace Settings","description":"Tìm mọi cài đặt workspace ở một nơi: mỗi tab điều khiển gì, ai có thể thay đổi và tìm hiểu thêm ở đâu.","icon":"gear","href":"/vi/guide/workspace-settings"},{"title":"Thành viên workspace","icon":"users","href":"/vi/guide/workspace-users"},{"title":"Thương hiệu workspace","icon":"palette","href":"/vi/guide/workspace-branding"},{"title":"Skill","icon":"sparkles","href":"/vi/guide/skills/overview"},{"title":"Bộ nhớ workspace","icon":"brain-circuit","href":"/vi/guide/memory"},{"title":"Dreaming","icon":"moon","href":"/vi/guide/memory-dreaming"},{"title":"Customize","icon":"wand-magic-sparkles","href":"/vi/guide/agents/customize"},{"title":"Knowledge Base","icon":"book","href":"/vi/guide/knowledge"},{"title":"Credentials","icon":"vault","href":"/vi/guide/credentials"},{"title":"Thông báo","icon":"bell","href":"/vi/guide/notifications"}]},{"group":"Admin Settings","pages":[{"title":"Admin Settings","icon":"building","href":"/vi/guide/admin-settings"},{"title":"Tổ chức","icon":"building-columns","href":"/vi/guide/organization"},{"title":"Workspaces","icon":"building","href":"/vi/guide/workspaces"},{"title":"Quản lý gói đăng ký","icon":"file-invoice-dollar","href":"/vi/guide/billing/subscription"},{"title":"Bảng giá","icon":"credit-card","href":"/vi/guide/billing/pricing"},{"title":"Giới hạn credit","icon":"sliders","href":"/vi/guide/billing/credit-limits"},{"title":"Mức sử dụng và credit","icon":"coins","href":"/vi/guide/billing/usage"},{"title":"Capabilities","icon":"toggle-on","href":"/vi/guide/capabilities"},{"title":"Sandbox tự host (Workers)","sidebarTitle":"Sandbox tự host (Workers)","icon":"server","href":"/vi/guide/workers"}]},{"group":"Triển khai","pages":[{"title":"Các phương án triển khai","sidebarTitle":"Triển khai","icon":"server","href":"/vi/guide/deployment/overview"}]},{"group":"Artifacts và chia sẻ","pages":[{"title":"Artifacts","icon":"chart-mixed","href":"/vi/guide/artifacts/overview"},{"title":"Chia sẻ","icon":"share-nodes","href":"/vi/guide/sharing"}]}]},{"tab":"Doanh nghiệp","pages":[{"title":"Doanh nghiệp","href":"/vi/guide/security/overview"}]},{"tab":"Nhà phát triển","pages":[{"title":"Nhà phát triển","href":"/vi/guide/api/overview"}]},{"tab":"Tài nguyên","pages":[{"title":"Tài nguyên","href":"/vi/learn/aio/introduction"}]},{"tab":"Nhật ký thay đổi","pages":[{"title":"Nhật ký thay đổi","href":"/changelog"}]},{"tab":"Bảng giá","href":"https://cloudthinker.io/pricing"}]},{"language":"ja","pages":[{"title":"ja","href":"/guide/approvals/approvers"}]},{"language":"ko","pages":[{"title":"ko","href":"/guide/approvals/approvers"}]}]},"title":"Người phê duyệt và Activity - CloudThinker","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-BbYRHtLl.js","DynamicMarkdown-DN96a4Ur.js","zoom-image-lightbox-D7yRe3On.js","lightbox-handle-r17bVUz3.js"]}