Hub documentation

Quản lý kiểm soát quyền truy cập người dùng theo chương trình

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Quản lý kiểm soát quyền truy cập người dùng theo chương trình

Hướng dẫn này mô tả cách quản lý vai trò thành viên tổ chức và thành viên nhóm tài nguyên thông qua Hub API: thay đổi vai trò tổ chức và phân công nhóm tài nguyên của một thành viên, liệt kê các nhóm tài nguyên, thêm người dùng vào nhóm và các quy trình hàng loạt.

Mục lục:


Thay đổi vai trò thành viên qua API

Bạn có thể thay đổi vai trò tổ chức (No Access / Read / Contributor / Write / Admin) của một thành viên và, tùy chọn, vai trò của họ trong các nhóm tài nguyên bằng cách sử dụng Hub API. API cập nhật một thành viên mỗi yêu cầu. Để thay đổi vai trò cho nhiều thành viên, hãy gọi API trong một vòng lặp (các ví dụ bên dưới).

Tham chiếu OpenAPI: PUT /api/organizations/{name}/members/{username}/role

Yêu cầu tiên quyết

  • Tổ chức của bạn phải có kế hoạch đăng ký (ví dụ: Team hoặc Enterprise). Nếu không, endpoint sẽ trả về 402.
  • Bạn phải được xác thực là thành viên của tổ chức với quyền Write (hoặc Admin) trên tổ chức.
  • Người dùng đích phải đã là thành viên của tổ chức.

URL gốc và xác thực

  • URL gốc: https://huggingface.co
  • Authentication: Gửi token của bạn trong header yêu cầu:
    Authorization: Bearer <your_access_token>
    Tạo token chi tiết với quyền “Write access to organizations settings / member management” được giới hạn trong tổ chức của bạn tại https://huggingface.co/settings/tokens.

Điểm cuối thay đổi vai trò thành viên

Yêu cầu

PUT /api/organizations/{org_name}/members/{username}/role
Authorization: Bearer <your_access_token>
Content-Type: application/json

{
  "role": "read",
  "resourceGroups": []
}
  • Path parameters
    • org_name: Slug của tổ chức (ví dụ: my-org).
    • username: username trên Hugging Face của thành viên mà bạn đang thay đổi vai trò.
  • Body
    • role (bắt buộc): Vai trò cấp tổ chức của thành viên. Một trong các giá trị: "no_access", "read", "contributor", "write" hoặc "admin".
    • resourceGroups (tùy chọn): Mảng các gán nhóm tài nguyên cho người dùng này. Mỗi mục:
      • id: ID của nhóm tài nguyên (chuỗi hex 24 ký tự; lấy ID từ API danh sách nhóm tài nguyên).
      • role: Vai trò trong nhóm tài nguyên đó: "read", "contributor", "write", "admin" hoặc "inherit".
    • Nếu bạn bỏ qua resourceGroups hoặc truyền [], người dùng sẽ bị xóa khỏi tất cả các nhóm tài nguyên. Để chỉ thay đổi vai trò tổ chức và giữ nguyên các nhóm tài nguyên, hãy truyền các thành viên nhóm tài nguyên hiện tại của họ (thân yêu cầu luôn đặt cả vai trò tổ chức và danh sách nhóm tài nguyên).

Ví dụ (curl) – đặt vai trò tổ chức thành “read”, không có nhóm tài nguyên (xóa bất kỳ nhóm nào mà người dùng từng thuộc)

curl -s -X PUT \
  -H "Authorization: Bearer $HF_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"role":"read","resourceGroups":[]}' \
  "https://huggingface.co/api/organizations/my-org/members/member1/role"

Ví dụ (curl) – đặt vai trò tổ chức và vai trò nhóm tài nguyên (ghi đè mọi nhóm hiện tại)

curl -s -X PUT \
  -H "Authorization: Bearer $HF_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"role":"write","resourceGroups":[{"id":"507f1f77bcf86cd799439011","role":"read"}]}' \
  "https://huggingface.co/api/organizations/my-org/members/member2/role"

Phản hồi thành công: Trạng thái 200 OK; nội dung: { "success": true }.

Lỗi thường gặp

  • 400 — Body không hợp lệ (ví dụ: role hoặc resource group id không hợp lệ).
  • 402 — Tổ chức không có gói đăng ký.
  • 403 — Không được phép (ví dụ: bạn không có quyền Write trên tổ chức, hoặc nhóm tài nguyên không thuộc tổ chức).
  • 404 — Không tìm thấy tổ chức hoặc người dùng.

Cập nhật nhiều thành viên

API thay đổi một thành viên mỗi yêu cầu. Không có điểm cuối hàng loạt. Để cập nhật nhiều thành viên, hãy gọi điểm cuối một lần cho mỗi tên người dùng (ví dụ: từ một danh sách hoặc tệp CSV).

Ví dụ: Bash – lặp qua các tên người dùng, cùng một vai trò cho tất cả

ORG_NAME="my-org"
ROLE="read"
for username in member1 member2 member3 member4; do
  echo "Setting $username to $ROLE ..."
  curl -s -w "\n%{http_code}" -X PUT \
    -H "Authorization: Bearer $HF_TOKEN" \
    -H "Content-Type: application/json" \
    -d "{\"role\":\"$ROLE\",\"resourceGroups\":[]}" \
    "https://huggingface.co/api/organizations/$ORG_NAME/members/$username/role"
  echo ""
done

Ví dụ: Python – lặp qua các tên người dùng

import os
import requests

BASE_URL = "https://huggingface.co"
HF_TOKEN = os.environ.get("HF_TOKEN", "")

def change_member_role(org_name: str, username: str, role: str, resource_groups: list | None = None):
    payload = {"role": role, "resourceGroups": resource_groups or []}
    r = requests.put(
        f"{BASE_URL}/api/organizations/{org_name}/members/{username}/role",
        headers={"Authorization": f"Bearer {HF_TOKEN}", "Content-Type": "application/json"},
        json=payload,
    )
    if r.status_code != 200:
        raise RuntimeError(f"{r.status_code}: {r.text}")
    return r.json()

org_name = "my-org"
role = "read"
for username in ["member1", "member2", "member3", "member4"]:
    print(f"Setting {username} to {role} ... ", end="")
    try:
        change_member_role(org_name, username, role)
        print("OK")
    except Exception as e:
        print(f"Failed: {e}")

Để gán các vai trò khác nhau cho từng người dùng, hãy lặp qua các cặp (username, role) (ví dụ từ một tệp CSV) và gọi change_member_role cho mỗi cặp.


API Nhóm Tài nguyên

Các endpoint sau cho phép bạn liệt kê các nhóm tài nguyên và thêm người dùng vào chúng. Để thay đổi vai trò cấp tổ chức của một thành viên hiện có hoặc các gán nhóm tài nguyên của họ, hãy xem Thay đổi vai trò thành viên qua API ở trên.

Tham chiếu OpenAPI: Nhóm tài nguyên

Mục lục — Các cách tiếp cận API:

Mục tiêuMục
Thêm nhiều người dùng vào một nhóm tài nguyênThêm người dùng vào nhóm tài nguyên
Thêm cùng các người dùng vào nhiều nhóm tài nguyênThêm hàng loạt bằng cách lặp qua API
Thêm khác nhau người dùng cho mỗi nhómThêm hàng loạt bằng cách lặp qua API

URL gốc và xác thực

  • URL gốc: https://huggingface.co
  • Authentication: Sử dụng một trong các phương thức sau:
    • Access token (recommended for scripts): Tạo token chi tiết với quyền “Write access to organizations settings / member management” được giới hạn trong tổ chức của bạn tại https://huggingface.co/settings/tokens. Gửi token trong header của yêu cầu:
      Authorization: Bearer <your_access_token>
    • Cookie phiên: Nếu gọi từ trình duyệt hoặc công cụ chia sẻ cùng phiên với giao diện Hub, cookie sẽ được gửi tự động.

Liệt kê các nhóm tài nguyên

Lấy tất cả các nhóm tài nguyên mà bạn có thể quản lý cho tổ chức. Sử dụng điều này để lấy id của từng nhóm cho các lệnh gọi add-users.

Yêu cầu

GET /api/organizations/{org_name}/resource-groups
Authorization: Bearer <your_access_token>

Ví dụ (curl)

curl -s -H "Authorization: Bearer $HF_TOKEN" \
  "https://huggingface.co/api/organizations/my-org/resource-groups"

Ví dụ về phản hồi (đã rút gọn)

[
  {
    "id": "507f1f77bcf86cd799439011",
    "name": "Cohort 2024",
    "description": "Members in this group",
    "users": [...],
    "repos": [...]
  }
]

Sử dụng id của mỗi nhóm tài nguyên khi thêm người dùng.

Thêm người dùng vào nhóm tài nguyên

Thêm một hoặc nhiều người dùng vào một nhóm tài nguyên duy nhất trong một yêu cầu. Bạn có thể gửi nhiều người dùng trong cùng một yêu cầu.

Yêu cầu

POST /api/organizations/{org_name}/resource-groups/{resource_group_id}/users
Authorization: Bearer <your_access_token>
Content-Type: application/json

{
  "users": [
    { "user": "member1", "role": "read" },
    { "user": "member2", "role": "read" },
    { "user": "member3", "role": "write" }
  ]
}
  • Path parameters
    • org_name: Slug của tổ chức (ví dụ: my-org).
    • resource_group_id: id của nhóm tài nguyên (chuỗi hex 24 ký tự từ endpoint danh sách).
  • Body
    • users: Mảng các đối tượng. Mỗi đối tượng phải có:
      • user: tên người dùng Hugging Face (bắt buộc).
      • role: Một trong "read", "contributor", "write", "admin" hoặc "inherit".

Ví dụ (curl)

curl -s -X POST \
  -H "Authorization: Bearer $HF_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"users":[{"user":"member1","role":"read"},{"user":"member2","role":"read"}]}' \
  "https://huggingface.co/api/organizations/my-org/resource-groups/507f1f77bcf86cd799439011/users"

Thành công: Trạng thái 200 OK; nội dung là đối tượng nhóm tài nguyên đã cập nhật (bao gồm các người dùng mới trong users).

Lỗi thường gặp:

  • 400 — ví dụ: không tìm thấy người dùng, tên người dùng trùng lặp, hoặc body không hợp lệ.
  • 403 — Không được phép (ví dụ: không thuộc tổ chức, hoặc đã thuộc nhóm tài nguyên). Thông báo sẽ cho biết người dùng không thuộc tổ chức hay đã thuộc nhóm.

Thêm thành viên qua email (giải pháp thay thế)

Endpoint add-users chỉ chấp nhận tên người dùng Hugging Face, không chấp nhận email. Nếu bạn có danh sách email (ví dụ: email của các thành viên), bạn có thể chuyển đổi email → tên người dùng trước, sau đó gọi API add-users.

Lưu ý rằng lọc email chỉ hoạt động khi tên miền của email khớp với một trong các tên miền được phép của tổ chức: Tên miền email của tổ chức (Cài đặt → Tài khoản → Tên miền email của tổ chức) và/hoặc các tên miền được phép cho SSO của tổ chức (nếu SSO được cấu hình).

Bước 1 – Chuyển đổi email thành tên người dùng

GET /api/organizations/{org_name}/members?email={email}&limit=1
Authorization: Bearer <your_access_token>

Response là một mảng các thành viên; mỗi thành viên có user (tên người dùng). Sử dụng user cho lệnh add-users.

Bước 2 – Thêm vào nhóm tài nguyên

Sử dụng tên người dùng từ bước 1 trong một yêu cầu thêm người dùng thông thường:

POST /api/organizations/{org_name}/resource-groups/{resource_group_id}/users
Content-Type: application/json
Body: { "users": [{ "user": "<username from step 1>", "role": "read" }] }

Ví dụ: một email (bash)

ORG_NAME="my-org"
RG_ID="507f1f77bcf86cd799439011"
EMAIL="member@org.com"

# Step 1: look up member by email (domain must match org's Organization email domain or SSO allowed domains)
MEMBERS=$(curl -s -H "Authorization: Bearer $HF_TOKEN" \
  "https://huggingface.co/api/organizations/$ORG_NAME/members?email=$EMAIL&limit=1")
USERNAME=$(echo "$MEMBERS" | jq -r '(.[0] // {} | .user // "")')
if [ -z "$USERNAME" ]; then
  echo "No member found for $EMAIL"
  exit 1
fi
# Step 2: add to resource group
curl -s -X POST -H "Authorization: Bearer $HF_TOKEN" -H "Content-Type: application/json" \
  -d "{\"users\":[{\"user\":\"$USERNAME\",\"role\":\"read\"}]}" \
  "https://huggingface.co/api/organizations/$ORG_NAME/resource-groups/$RG_ID/users"

Ví dụ: nhiều email trong một vòng lặp (Python)

import os
import requests

BASE = "https://huggingface.co"
ORG = "my-org"
RG_ID = "507f1f77bcf86cd799439011"
ROLE = "read"
headers = {"Authorization": f"Bearer {os.environ['HF_TOKEN']}", "Content-Type": "application/json"}

emails = ["member1@org.com", "member2@org.com"]
for email in emails:
    # Step 1: resolve email → username (email domain must match org's Organization email domain or SSO allowed domains)
    r = requests.get(f"{BASE}/api/organizations/{ORG}/members", params={"email": email, "limit": 1}, headers=headers)
    r.raise_for_status()
    members = r.json()
    if not members:
        print(f"No member found for {email}")
        continue
    username = members[0]["user"]
    # Step 2: add that user to the resource group
    add_r = requests.post(
        f"{BASE}/api/organizations/{ORG}/resource-groups/{RG_ID}/users",
        headers=headers,
        json={"users": [{"user": username, "role": ROLE}]},
    )
    if add_r.status_code == 200:
        print(f"Added {username} ({email})")
    else:
        print(f"Failed {email}: {add_r.status_code} {add_r.text}")

Nếu người dùng đã có trong nhóm tài nguyên, lệnh thêm sẽ trả về 403; script sẽ báo cáo đây là một sự cố và bạn có thể bỏ qua hoặc phớt lờ trường hợp đó nếu muốn.

Hạn chế: Bộ lọc email chỉ được áp dụng khi tổ chức đã thiết lập Domain email của tổ chức và/hoặc Các domain được phép SSO, và domain của email khớp với một trong số đó. Ngược lại, bạn không thể tra cứu theo email qua API thành viên; bạn sẽ cần một nguồn khác cho email → username (ví dụ: danh bạ của riêng bạn).

Thêm hàng loạt bằng cách lặp qua API

Bạn có thể thêm nhiều người dùng vào một nhóm tài nguyên trong một hoặc vài yêu cầu (ví dụ: chia danh sách tên người dùng thành các phần), hoặc thêm người dùng vào nhiều nhóm tài nguyên bằng cách lặp qua các nhóm và gọi endpoint add-users cho từng nhóm.

Ví dụ: Bash – một nhóm, nhiều người dùng trong một yêu cầu

#!/bin/bash
# Add a list of users to a single resource group.
# Usage: ./add-users-to-rg.sh <org_name> <resource_group_id> <role>

ORG_NAME="${1:-my-org}"
RG_ID="${2:-507f1f77bcf86cd799439011}"
ROLE="${3:-read}"

USERS="member1 member2 member3 member4"
USERS_JSON=$(echo "$USERS" | tr ' ' '\n' | while read u; do
  [ -n "$u" ] && echo "{\"user\":\"$u\",\"role\":\"$ROLE\"}"
done | paste -sd ',' -)

curl -s -w "\nHTTP_STATUS:%{http_code}" -X POST \
  -H "Authorization: Bearer $HF_TOKEN" \
  -H "Content-Type: application/json" \
  -d "{\"users\":[$USERS_JSON]}" \
  "https://huggingface.co/api/organizations/$ORG_NAME/resource-groups/$RG_ID/users"

Ví dụ: Bash – lặp qua nhiều nhóm

# Get group IDs and add users to each
curl -s -H "Authorization: Bearer $HF_TOKEN" \
  "https://huggingface.co/api/organizations/my-org/resource-groups" \
  | jq -r '.[].id' \
  | while read -r RG_ID; do
      [ -z "$RG_ID" ] && continue
      echo "Adding users to resource group $RG_ID ..."
      curl -s -X POST -H "Authorization: Bearer $HF_TOKEN" -H "Content-Type: application/json" \
        -d "{\"users\":[$USERS_JSON]}" \
        "https://huggingface.co/api/organizations/my-org/resource-groups/$RG_ID/users"
    done

Ví dụ: Python – thêm hàng loạt vào một hoặc nhiều nhóm

import os
import requests

BASE_URL = "https://huggingface.co"
HF_TOKEN = os.environ.get("HF_TOKEN", "")

def list_resource_groups(org_name: str):
    r = requests.get(
        f"{BASE_URL}/api/organizations/{org_name}/resource-groups",
        headers={"Authorization": f"Bearer {HF_TOKEN}"},
    )
    r.raise_for_status()
    return r.json()

def add_users_to_resource_group(org_name: str, resource_group_id: str, users_with_roles: list):
    """users_with_roles: list of {"user": "username", "role": "read"|"write"|"contributor"|"admin"}"""
    r = requests.post(
        f"{BASE_URL}/api/organizations/{org_name}/resource-groups/{resource_group_id}/users",
        headers={"Authorization": f"Bearer {HF_TOKEN}", "Content-Type": "application/json"},
        json={"users": users_with_roles},
    )
    if r.status_code != 200:
        raise RuntimeError(f"Add users failed {r.status_code}: {r.text}")
    return r.json()

# Example: same users added to every resource group
org_name = "my-org"
role = "read"
usernames = ["member1", "member2", "member3"]
users_with_roles = [{"user": u, "role": role} for u in usernames]

for rg in list_resource_groups(org_name):
    add_users_to_resource_group(org_name, rg["id"], users_with_roles)

Với danh sách dài các tên người dùng, hãy chia chúng thành các nhóm (ví dụ: 50 tên mỗi yêu cầu) và gọi API một lần cho mỗi nhóm để tránh các yêu cầu có kích thước lớn hoặc bị hết thời gian chờ.

Ghi chú quan trọng

  1. Chỉ tên người dùng — API chấp nhận tên người dùng của Hugging Face, không phải email. Bạn cần một bản ánh xạ từ email → tên người dùng (ví dụ: từ danh bạ hoặc danh sách thành viên tổ chức) trước khi gọi API.
  2. Người dùng phải thuộc tổ chức — Mọi người dùng trong yêu cầu đều phải là thành viên của tổ chức. Nếu không, yêu cầu sẽ trả về 403 kèm thông báo rằng một số người dùng không thuộc tổ chức.
  3. Tính chất không đổi — Nếu người dùng đã có trong nhóm tài nguyên, backend có thể trả về 403 cho yêu cầu đó. Script của bạn có thể bắt lỗi và tiếp tục, hoặc bỏ qua những người dùng đã có trong nhóm nếu bạn lấy trước danh sách users của nhóm.
  4. Giới hạn tần suất — Với các lô lớn, hãy cân nhắc thêm một khoảng trễ ngắn giữa các yêu cầu (ví dụ: 0,5–1 giây) để tránh vượt quá giới hạn tần suất.
  5. Phạm vi token — Token truy cập phải có đủ quyền hạn cho tổ chức (thường là ít nhất “Quyền ghi vào cài đặt tổ chức / quản lý thành viên”). Hãy tạo và lưu trữ token một cách an toàn; không được commit token vào hệ thống kiểm soát phiên bản.

Cấu hình tham gia tự động qua API

Auto-join tự động thêm thành viên tổ chức vào một Resource Group với vai trò được chỉ định. Bạn có thể bật hoặc tắt tính năng này qua API, và tùy chọn việc bao gồm mọi thành viên tổ chức hay chỉ các thành viên có quyền Read+.

Bật tham gia tự động

POST /api/organizations/{org_name}/resource-groups/{resource_group_id}/settings
Authorization: Bearer <your_access_token>
Content-Type: application/json

{
  "autoJoin": {
    "enabled": true,
    "role": "read",
    "scope": "read_plus"
  }
}
  • Path parameters
    • org_name: Slug của tổ chức (ví dụ: my-org).
    • resource_group_id: ID của Resource Group (chuỗi hex 24 ký tự; lấy ID từ list resource groups endpoint).
  • Body
    • role: Vai trò được gán cho các thành viên được thêm tự động. Một trong số "read", "contributor", "write", "admin" hoặc "inherit".
    • scope (tùy chọn): Thành viên tổ chức nào sẽ được thêm tự động. Dùng "all" để bao gồm mọi thành viên tổ chức. Dùng "read_plus" để loại trừ các thành viên có vai trò tổ chức no_access. Mặc định là "all" nếu không được chỉ định.

Việc bật tính năng tham gia tự động trên một Resource Group hiện có sẽ ngay lập tức thêm các thành viên tổ chức hiện tại khớp với phạm vi đã chọn (backfill).

Tắt tính năng tham gia tự động

Gửi cùng một yêu cầu với "enabled": false. Trường role không bắt buộc khi tắt:

POST /api/organizations/{org_name}/resource-groups/{resource_group_id}/settings
Authorization: Bearer <your_access_token>
Content-Type: application/json

{
  "autoJoin": {
    "enabled": false
  }
}

Việc tắt tính năng tự động tham gia không xóa các thành viên đã được tự động tham gia trước đó. Nó chỉ ngăn các thành viên tổ chức trong tương lai được thêm vào tự động. Các thành viên hiện có vẫn ở trong Nhóm Tài nguyên.

Đặt giới hạn chi tiêu qua API

Giới hạn chi tiêu đặt mức trần cho chi phí tính toán hàng tháng được gán cho một Nhóm Tài nguyên. Hãy thiết lập chúng bằng điểm cuối cập nhật:

PATCH /api/organizations/{org_name}/resource-groups/{resource_group_id}
Authorization: Bearer <your_access_token>
Content-Type: application/json

{
  "spendLimits": {
    "total": 500000,
    "spaces": 100000,
    "jobs": 50000
  }
}
  • Path parameters
    • org_name: Slug của tổ chức (ví dụ: my-org).
    • resource_group_id: ID của Resource Group (chuỗi hex 24 ký tự; lấy ID từ list resource groups endpoint).
  • Body
    • spendLimits: Giới hạn hàng tháng tính bằng cent. Ví dụ trên đặt tổng giới hạn là 5.000 USD, trong đó 1.000 USD cho Spaces và 500 USD cho Jobs.
      • total: Giới hạn chi tiêu gộp của nhóm trên mọi sản phẩm.
      • inferenceProviders, spaces, jobs, endpoints: Giới hạn theo từng sản phẩm, được áp dụng trên tổng giới hạn. Giới hạn nào chặt chẽ hơn sẽ được ưu tiên.

Chỉ các khóa bạn gửi đi sẽ được cập nhật, các khóa khác giữ nguyên giá trị hiện tại. Gửi null để xóa một giới hạn:

PATCH /api/organizations/{org_name}/resource-groups/{resource_group_id}
Authorization: Bearer <your_access_token>
Content-Type: application/json

{
  "spendLimits": {
    "jobs": null
  }
}

Ví dụ (curl)

curl -s -X PATCH \
  -H "Authorization: Bearer $HF_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"spendLimits": {"total": 500000}}' \
  "https://huggingface.co/api/organizations/my-org/resource-groups/507f1f77bcf86cd799439011"

Phản hồi là nhóm tài nguyên đã được cập nhật, bao gồm spendLimits của nó.

Mời cộng tác viên bên ngoài qua API

Mời từ bên ngoài cho phép quản trị viên nhóm tài nguyên mời người dùng từ bên ngoài tổ chức vào Nhóm Tài Nguyên. Người được mời sẽ tham gia với vai trò cộng tác viên bên ngoài và có vai trò tổ chức no_access. Họ được tính vào số lượng chỗ trả phí trong tổ chức của bạn.

Bật lời mời từ bên ngoài

Quản trị viên tổ chức có thể bật cài đặt này bằng cách:

POST /api/organizations/{org_name}/resource-groups/settings
Authorization: Bearer <your_access_token>
Content-Type: application/json

{
  "allowExternalInvites": true
}
  • Body
    • allowExternalInvites (tùy chọn): Xác định xem quản trị viên nhóm tài nguyên có thể mời người dùng từ bên ngoài tổ chức hay không.
    • minRoleToCreate (tùy chọn): Vai trò tổ chức tối thiểu cần thiết để tạo Resource Groups.

Các trường bị bỏ qua sẽ không thay đổi. Sử dụng GET /api/organizations/{org_name}/resource-groups/settings để đọc các cài đặt hiện tại.

Mời một người dùng

POST /api/organizations/{org_name}/resource-groups/{resource_group_id}/invite
Authorization: Bearer <your_access_token>
Content-Type: application/json

{
  "username": "partner-user",
  "role": "read"
}
  • Path parameters
    • org_name: Slug của tổ chức (ví dụ: my-org).
    • resource_group_id: ID của Resource Group (chuỗi hex 24 ký tự; lấy ID từ list resource groups endpoint).
  • Body
    • username: Tên người dùng của một người dùng Hugging Face hiện có chưa phải là thành viên của tổ chức. Để thêm thành viên tổ chức, hãy sử dụng Thêm người dùng vào nhóm tài nguyên thay thế.
    • role: Vai trò mà người được mời có trong Nhóm Tài nguyên, "read" hoặc "write".

Người dùng sẽ nhận được lời mời qua email và quyền truy cập vào Resource Group sau khi họ chấp nhận.

Quản lý lời mời đang chờ

  • Danh sách: GET /api/organizations/{org_name}/resource-groups/{resource_group_id}/invitations
  • Gửi lại: POST /api/organizations/{org_name}/resource-groups/{resource_group_id}/invitation/{invitation_id}/resend
  • Thu hồi: DELETE /api/organizations/{org_name}/resource-groups/{resource_group_id}/invitation/{invitation_id}

Bạn cũng có thể xem toàn bộ đặc tả OpenAPI

Lỗi thường gặp:

  • 403 — Lời mời từ bên ngoài không được bật cho tổ chức.
  • 409 — Người dùng đã là thành viên của tổ chức, hoặc đã có lời mời chờ xử lý cho tổ chức đó.

Thay đổi loại tài khoản thành viên qua API

Chuyển một thành viên tổ chức thành người cộng tác bên ngoài (không yêu cầu SSO), hoặc chuyển họ trở lại thành viên. Yêu cầu gói trả phí và quyền Write (hoặc Admin) trên tổ chức. Không khả dụng trong các tổ chức có người dùng được quản lý, nơi các thành viên được cấp phát thông qua SCIM.

Việc thay đổi loại tài khoản của người dùng không làm thay đổi vai trò của họ. Xem Thay đổi vai trò thành viên qua API để thay đổi vai trò của người dùng.

PUT /api/organizations/{org_name}/members/{username}/account-type
Authorization: Bearer <your_access_token>
Content-Type: application/json

{
  "accountType": "external"
}
  • Body
    • accountType: "external" để chuyển thành viên thành cộng tác viên bên ngoài, hoặc "member" để chuyển họ trở lại.
Update on GitHub