ObjectOS
配置

用户与组织

搭建业务单元树、添加和邀请用户、管理成员资格与团队,以及开通服务账号。

关于你的部署中都有谁的一切——人员、他们所在的组织树、他们协作的团队,以及代表他们行事的服务账号——都在 Setup → People & Organization(人员与组织,/apps/setup)中管理。

底层的身份对象(sys_usersys_organizationsys_membersys_business_unitsys_teamsys_invitationsys_api_key ……)存在你的项目数据库中;每个对象表示什么,参见身份层表格

**90% 的日常管理就是把人分配到岗位。**岗位、其背后的权限集以及安全基线都随平台和你安装的应用一起交付。你的工作是人这一侧——本页所讲的内容——以及分配这一侧,后者在权限分配中讲解。

搭建组织(业务单元)

Setup → People & Organization → Business Units(业务单元)。

业务单元树是访问模型中唯一的层级结构:它决定可见性深度(unitunit_and_below)和委派管理边界。在初始上线时搭好它,之后仅在组织架构调整时再修改。

  • 默认的 Org Chart(组织架构图)标签页把树渲染为可展开/收起的缩进树形表格。
  • 先创建根节点(kind 为 company),再用 New(新建)添加子节点,并在表单中选择 Parent Business Unit(上级业务单元)。division / department / office / cost_center 这些 kind 只是显示提示——无论选哪种,树的工作方式都一样。
  • 调整架构时,Edit(编辑)某个单元并修改其上级即可。树视图是只读展示——变更上级要通过记录表单完成,而不是拖拽。

三个名字相近的东西,三种不同的职责——别混淆:

对象职责
业务单元sys_business_unit层级结构。驱动可见性深度和委派管理边界
团队sys_team扁平的协作组。团队只接收共享;从不承载能力
组织sys_organization租户本身——你公司的账户,而不是其中的一个节点

让树保持浅层、如实反映你的真实结构。如果某个东西应该按组织结构影响人们能看到哪些记录,它是业务单元;如果只是一个供人共享记录的群组,它是团队。

添加人员

Setup → People & Organization → Users(用户)。三条入口,都是一等公民:

路径何时使用会发生什么
Invite User(邀请用户,工具栏)此人有可达的邮箱发送邀请;对方接受时自行设置密码
Create User(创建用户,工具栏)不想走邮件流程——或只有手机号的员工创建可直接登录的账户(邮箱和/或手机号);生成的临时密码只显示一次,并强制首次登录时修改密码
Import(导入,工具栏)从 CSV/Excel 批量入职带列映射和 dry-run 预览的向导;每批最多 500 行。可选择登录策略:无密码(首次通过 OTP/魔法链接/重置链接登录)、发送邀请,或一次性临时密码

待接受的邀请列在 Setup → People & Organization → Invitations(邀请)下。

同样的流程也可通过 REST 完成(ObjectStack 14.3+),用于脚本化入职:

# 创建可直接登录的账户,可选生成一次性密码
curl -X POST https://crm.example.com/api/v1/auth/admin/create-user

# 批量导入行 / CSV / XLSX(最多 500 行),支持 dry-run 和 upsert 模式
curl -X POST https://crm.example.com/api/v1/auth/admin/import-users

请求体、密码策略和仅手机号账户的细节,参见认证 → 管理员用户管理

把人放进组织树(成员资格)

把一个人放进组织树是一条独立的记录:Business Unit Member(业务单元成员)行(sys_business_unit_member——用户 + 业务单元,其中一条标记为 primary)。基于深度的可见性和 unit_and_subordinates 共享都通过这条成员资格解析,所以不要跳过它——没有成员资格行的用户对基于深度的规则来说是不可见的。

当某人调换部门时,更新其业务单元成员行,并重新锚定其岗位分配——参见权限分配

团队

Setup → People & Organization → Teams(团队)。团队是扁平的协作组:共享规则和记录共享可以指向它们,但它们从不承载权限集。当一个跨部门的群组需要看到某批记录,而又不想改变任何人的职能或组织树时,就用团队。

用户生命周期

日常生命周期操作位于每个用户的行菜单和记录头部:

操作效果
Ban / Unban(封禁 / 解封)立即阻止(或恢复)登录
Unlock Account(解锁账户)提前清除暴力破解锁定
Set Password(设置密码)直接设置密码;也能生成强制轮换的一次性临时密码
Impersonate User(模拟用户)以该用户身份打开会话,用于支持和验证(会话会被记录)

要停用某人,先 Ban(封禁)——登录立即被阻止——之后再从容移除其岗位分配和成员资格。完整的离职流程见权限分配

用户的自助密码找回依赖已配置的邮件或短信发送服务。在接通之前,管理员的 Set Password(临时密码、强制修改)是可靠的兜底手段。

服务账号与 API Key

集成和无头 Agent 使用 API Key(sys_api_key)认证——一种绑定到用户的长期编程凭据。用该 Key 发起的每次调用都以那个用户的身份、按那个用户的权限运行。

凡是超出个人脚本用途的场景,都请创建专用的服务用户:

  1. 为该集成 Create User(创建用户,无需邀请)。
  2. 为它分配能覆盖该集成所涉对象的最小权限集——绝不要用管理员权限集。
  3. 为它签发 API Key,可在 Setup → Connect an Agent(接入 Agent)中操作,或通过 REST:
curl -b cookies.txt -X POST https://crm.example.com/api/v1/keys
# → { "key": "osk_..." }  —— 只显示一次;存入你的 secret manager

Key 的用法、请求头和轮换见 API 访问;用 Key 接入 AI Agent 见接入 AI 工具(MCP)

FAQ

**新用户几乎什么都看不到——是坏了吗?**不是:这正是基线在正常工作。每个已认证用户都获得叠加式的 member_default 基线;真正的访问权限在你分配岗位时到来。

**部门还是团队?**部门 = 业务单元(层级、可见性)。团队 = 扁平的共享群组。

**能删除内置权限集吗?**不能——member_defaultorganization_admin 这类权限集是平台基线。随应用交付的权限集可以被覆盖(overlay),或干脆不分配。

下一步

任务页面
分配岗位和权限集权限分配
理解分层访问模型权限
配置登录、SSO 和密码策略认证
配置邮件,让邀请和重置邮件可送达邮件
集成用的 API KeyAPI 访问

On this page