Skip to content

Commit bd7a9c0

Browse files
os-zhuangclaude
andcommitted
docs(setup): slim the Setup overview to the genuinely-invisible rules
Cut textbook concept-restatement and the repeated external-docs links that duplicated what the Setup UI already shows; keep the three rules the screens don't reveal (identity≠access, additive permissions, sharing-not-permissions). EN + zh. Content only. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent d08551c commit bd7a9c0

2 files changed

Lines changed: 47 additions & 54 deletions

File tree

.changeset/setup-doc-slim.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
"@objectstack/setup": patch
3+
---
4+
5+
docs(setup): slim the Setup overview to the genuinely-invisible rules
6+
7+
Cut the textbook concept-restatement (permission-set vs role definitions) and
8+
the repeated "see external docs" lines that duplicated what the Setup UI's own
9+
Users/Roles/Permission-set screens already show. What remains is three short
10+
bullets the screens *don't* reveal: a user is identity-not-access, permissions
11+
are additive, and "can't see a record" is almost always sharing rather than
12+
object permissions. EN + zh updated together. No behaviour change — content only.

packages/apps/setup/src/setup-overview.doc.ts

Lines changed: 35 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -9,78 +9,59 @@ import type { Doc } from '@objectstack/spec/system';
99
* Authored inline rather than as a flat `src/docs/*.md` file because this is a
1010
* TS-first code package built by tsup, not a user app built by `os build` —
1111
* `defineStack({ docs })` / manifest `docs[]` is the supported path for those
12-
* (see `DocSchema` in `@objectstack/spec/system`). The `content` below is plain
13-
* CommonMark + GFM with no images/MDX, per ADR-0046 §3.4.
12+
* (see `DocSchema` in `@objectstack/spec/system`). Plain CommonMark + GFM, no
13+
* images/MDX, per ADR-0046 §3.4.
1414
*
15-
* Principle (from the HotCRM reference docs): document the *invisible* concepts,
16-
* not what the Setup UI already shows on screen.
15+
* Principle (from the HotCRM reference docs): document only the *invisible*
16+
* rules, not what the Setup UI already shows. Deliberately three short bullets —
17+
* the Users/Roles/Permission-set screens cover the rest; this page exists for
18+
* the handful of behaviours those screens don't reveal.
1719
*
1820
* `translations` carries per-locale variants (ADR-0046 i18n); the REST layer
1921
* collapses the doc to the request's `Accept-Language` and serves one body.
2022
*/
2123
export const SETUP_OVERVIEW_DOC: Doc = {
2224
name: 'setup_overview',
2325
label: 'Setup overview',
24-
description: 'Orientation for administrators: users, roles & permissions, and record visibility.',
26+
description: 'The non-obvious rules behind Setup: identity vs access, additive permissions, and record visibility.',
2527
content: `# Setup overview
2628
27-
Setup is the administrator app for the platform. Its screens are mostly
28-
self-explanatory — this page covers the concepts behind them that the UI does
29-
not make obvious. For the full reference, see <https://docs.objectstack.ai>.
30-
31-
## Users & authentication
32-
33-
Every person who signs in is a \`sys_user\` record. Authentication (passwords,
34-
SSO, API keys, sessions) is handled by the platform's auth layer, so creating a
35-
user here grants *identity*, not access — what they can do is decided entirely
36-
by the roles and permissions assigned to them. Deactivating a user revokes
37-
sign-in without deleting their records, preserving ownership and history.
38-
39-
## Roles & permissions
40-
41-
Permission sets define *what* a user can do (which objects and fields they can
42-
read or write, which apps they can open); roles place a user in the
43-
organization hierarchy and drive *which records* they can reach. A user's
44-
effective access is the union of all permission sets granted to them — access is
45-
additive, so you grant capability rather than taking it away.
46-
47-
## Record visibility (sharing)
48-
49-
Object-level permissions decide whether a user can touch a *kind* of record;
50-
sharing decides *which* rows of that kind they actually see. Visibility starts
51-
from an org-wide default (private or public) and is then widened by the role
52-
hierarchy and explicit sharing rules — it is never silently narrowed. When a
53-
user "can't see a record they should," the cause is almost always sharing, not
54-
object permissions.
29+
Setup is the administrator app. Its screens are mostly self-explanatory — these
30+
are the few rules behind them that the UI does not show. For everything else,
31+
see <https://docs.objectstack.ai>.
32+
33+
- **A user is identity, not access.** Creating a \`sys_user\` lets someone sign
34+
in; *what* they can do comes entirely from the roles and permission sets you
35+
then assign. Deactivating a user revokes sign-in without deleting their
36+
records, so ownership and history survive.
37+
- **Access is additive.** A user's effective permissions are the *union* of
38+
every permission set granted to them — you grant capability, you never
39+
subtract it.
40+
- **"Can't see a record" is almost always sharing, not permissions.**
41+
Object-level permissions decide which *kinds* of records a user can touch;
42+
sharing decides *which rows*. Visibility starts from the org-wide default and
43+
is only ever widened by the role hierarchy and sharing rules — never silently
44+
narrowed.
5545
5646
See <https://docs.objectstack.ai> for the full security model.
5747
`,
5848
translations: {
5949
zh: {
6050
label: 'Setup 概览',
61-
description: '管理员入门:用户、角色与权限、记录可见性。',
51+
description: 'Setup 背后看不见的几条规则:身份≠权限、权限叠加、记录可见性。',
6252
content: `# Setup 概览
6353
64-
Setup 是平台的管理员应用。它的界面大多一目了然——本页讲的是界面背后、UI 没有
65-
明说的概念。完整参考见 <https://docs.objectstack.ai>。
66-
67-
## 用户与认证
68-
69-
每个登录的人都是一条 \`sys_user\` 记录。认证(密码、SSO、API Key、会话)由平台
70-
的认证层负责,所以在这里创建用户给的是*身份*,不是权限——他能做什么,完全由分配
71-
给他的角色和权限决定。停用用户会收回登录权,但不删除其记录,从而保留归属与历史。
72-
73-
## 角色与权限
74-
75-
权限集定义用户*能做什么*(可读写哪些对象和字段、能打开哪些应用);角色把用户放进
76-
组织层级,决定他*能触及哪些记录*。用户的最终访问权是其所有权限集的并集——权限是
77-
叠加的,你是在授予能力,而不是在收回能力。
78-
79-
## 记录可见性(共享)
80-
81-
对象级权限决定用户能否操作某*类*记录;共享决定他实际能看到该类记录中的*哪些行*。
82-
可见性从组织级默认(私有或公开)出发,再由角色层级和显式共享规则*放宽*——绝不会被
83-
悄悄收窄。当用户"看不到本该看到的记录"时,原因几乎总是共享,而不是对象权限。
54+
Setup 是管理员应用。它的界面大多一目了然——下面这几条是界面背后、UI 没有明说的
55+
规则。其余内容见 <https://docs.objectstack.ai>。
56+
57+
- **用户是身份,不是权限。** 创建一条 \`sys_user\` 只是让人能登录;他*能做什么*
58+
完全由你随后分配的角色和权限集决定。停用用户会收回登录权,但不删除其记录,
59+
归属与历史因此得以保留。
60+
- **权限是叠加的。** 用户的最终权限是其所有权限集的*并集*——你是在授予能力,
61+
从不做减法。
62+
- **"看不到某条记录"几乎总是共享问题,不是权限问题。** 对象级权限决定用户能碰
63+
*哪类*记录;共享决定*哪些行*。可见性从组织级默认出发,只会被角色层级和共享规则
64+
*放宽*,绝不会被悄悄收窄。
8465
8566
完整安全模型见 <https://docs.objectstack.ai>。
8667
`,

0 commit comments

Comments
 (0)