今天我们上线了一项被反复要求的账号功能:团队工作区(Team Workspaces)。从今天起,你可以把团队成员邀请进你的 Shifter 账号,为每个人分配一个真正贴合其工作的角色,而且同一个人可以同时属于多个工作区,无需在不同登录账号之间切换。
如果你时间紧:打开面板里的 Team 页面,发出邀请,选择角色,完成。已有 Shifter 账号的用户一键加入。新邮箱用魔法链接注册,不需要记住任何密码。你可以从侧边栏的一个下拉菜单,在所属的任意工作区之间切换。
如果你想看完整版,下面讲我们做了什么、为什么这么做。
我们为什么做这件事
多年来,典型的 Shifter 账号是这样的:一个人、一个邮箱、一个登录。这对单独跑爬虫的开发者、独自维护 SERP 流水线的运维工程师来说没问题。一旦不止一个人需要操作这个账号,就行不通了。
我们反复听到的几种场景:
写爬虫的开发者不应该需要拿到公司信用卡。审批发票的人不应该为了完成工作而必须搞清楚什么是 ISP 代理。同时为三家客户工作的自由职业工程师,不应该挨家挨户在 Slack 上求别人共享登录信息。为多个品牌投放活动的代理商,不应该把所有品牌的流量混在同一个会员里。
共享登录把这些问题暂时掩盖了,又制造了新的问题。没有审计记录。有人离职时无法收回访问权限。一旦改了密码,所有还拿着旧密码的人都会打电话给客服。
团队工作区把这些问题都解决了,同时不让简单场景变得更复杂。
对你来说改变了什么
如果你之前一直是账号里的唯一用户,上线第一天不会有任何改变。你现有的账号现在叫做个人(Personal)工作区。它依然是你的,和之前完全一样,只是多了一项新能力:你可以邀请别人进来。
只要你这么做,模型就扩展了。你的账号变成一个工作区,你邀请的人变成成员,每个人都会拿到一个角色,这个角色决定他们能看什么、能做什么。
三档角色
我们刻意只保留三档。更细的粒度在演示稿上看起来漂亮,落到实际就变成一张没人记得住的权限矩阵。
Viewer(查看者)。 只读。可以看会员、流量和发票。可以浏览订单目录看有什么可买,但不能买任何东西,也不能改任何东西。这个角色适合需要查看用量趋势的分析师、想看清楚钱花在哪的 CFO、或者在拉取审计资料的安全审查员。
Billing(账单)。 包含 Viewer 的全部权限,再加上充值、支付发票、购买新计划、升级已有计划。Billing 角色不能在购买之外管理会员,也不能改动团队成员。这是给握着公司卡的人用的角色。
Admin(管理员)。 包含 Billing 的全部权限,再加上完整的会员管理(取消、切换、升级、修改设置)和完整的团队管理(邀请、移除、改角色)。工作区的所有者(Owner)在自己的工作区里隐式具备 Admin 权限,永远不会把自己锁在外面。
每一道权限关卡在前端(Viewer 看到的 Pay Now 按钮不会以会误导他们的方式呈现为可点击,如果他们还是去点,会看到一条清晰的提示)和后端都同样落实。用错误的角色调用受限端点会返回 403,而不是 500,也不是默默成功。
多工作区,不是多账号
这部分设计是我们最骄傲的,因为它也是花最长时间才打磨好的。一个用户不会被困在某一个工作区里。同一个邮箱可以同时是自己个人工作区的所有者、某个客户工作区的 Viewer、以及另一个工作区的 Billing。
我们不想让人为此维护三套登录,也不想让人退出再登录才能切换上下文。所以侧边栏里、个人菜单上方有一个工作区切换器。它向上展开,列出你所属的全部工作区(个人在最前面,其它在后),切换上下文只需要一次点击。只有当你确实在不止一个工作区里时,这个下拉才会出现,单独使用的用户永远不会看到它。
当前活跃的工作区存在你的会话里。每一次请求都会重新校验你是否还属于它。如果某个工作区的所有者在你正处于该上下文时把你移除,下一次页面加载就会把你退回个人工作区,并告诉你原因。会话中没有任何东西能比被撤销的成员资格活得更久。
在任何一个工作区内部,所有东西都被这个工作区圈定。你看到的计划、钱包余额、发票、团队列表、会员资格,全都是。切换是改变上下文的唯一途径,而且它一次性改变所有东西。绝对不会出现你不小心从错的账号里付了一张发票的情况。
怎么邀请人
打开你想管理的那个工作区的 Team 页面。输入邮箱,选好角色,发送。
如果这个邮箱已经是一个 Shifter 用户,他们下次登录时会看到一个一键 “Join” 按钮。他们保留原本的账号、原本的个人工作区,同时现在也是你这边的成员。不会新建账号。不需要重置密码。不需要重新走入门流程。
如果这个邮箱在 Shifter 是全新的,邀请会转换成一个精简的注册流程。只需要 First Name,Last Name 可选,用魔法链接登录,不需要记住或轮换任何密码。确认魔法链接的那一刻,他们就进了你的工作区,同时也获得了一个属于他们自己的个人工作区,以后随时可以切过去。
我们会自动拦截一些显而易见的奇怪情况:你不能邀请自己,不能邀请已经是成员的人,每个工作区有 10 个席位的上限。(如果 10 个不够用,请写信到 hi@shifter.io,这个上限是故意做软的。)
这套功能能解锁的一些用法
在 staging 上已经看到过的几种用法:
只给财务访问权限。 工程团队作为 Admin 拥有工作区。CFO 以 Billing 身份被邀请进来。CFO 可以充值、查看所有发票、支付任何未结账单、自己回答自己关于支出的问题,完全不需要去打扰工程团队。
安全审查的审计访问。 在审计期间把审查员以 Viewer 身份邀请进来。他们只看到为完成审计所需要看到的内容。审计结束时一键把他们移除,他们的访问权限立刻消失,包括任何还开着的后台会话。
代理公司管理多个客户工作区。 每个客户拥有自己的工作区,发票也落在自己的钱包里。代理公司的项目负责人以 Admin 身份加入所有这些工作区,只用一个登录。在客户上下文之间切换只需要在侧边栏点一下。流量永远不会在工作区之间被混在一起,因为计划不能跨工作区。
自由职业者同时为多个客户工作。 反过来的模式。自由职业者在每个客户的工作区里被加为 Billing 或 Admin。客户保留对账号、计划、发票的所有权。合作结束时,客户把自由职业者移除,合作关系干净收尾。
把个人实验和公司流量分开。 同一个人,两个工作区。个人工作区用于晚上和周末。公司工作区用于生产爬虫。各自的余额、各自的发票、各自的计划。一个登录,在两者之间侧边栏点一下就行。
几个值得知道的细节
下面这几条机制从界面上看不太出来,但用起来很重要:
-
工作区的所有者不能被任何人移除。所有者可以降级或移除其他 Admin,但工作区本身属于最初的创建者。如果一家公司因为任何原因需要转移所有权,可以联系我们办理,所以欢迎联系我们。
-
账号删除会双向级联。如果一个成员的账号被删除,他在其它工作区里的成员资格会被清理。如果工作区所有者删掉自己的账号,工作区和其中的成员资格会跟着一起消失。这一点会在删号流程里清晰呈现,不会有任何意外。
-
角色是按工作区计的,不是全局的。你不是泛指意义上”Shifter 的 Billing 用户”。你是工作区 X 里的 Billing 用户。在另一个工作区里你可能是 Viewer,也可能是所有者。当前上下文里的角色始终是被执行的那个角色,而且切换器里始终能看到它。
-
计划不会在工作区之间迁移。在工作区 A 里购买的住宅代理计划属于工作区 A 的资产,会留在那里。如果你希望某个计划属于另一个工作区,就在那个工作区里购买它。
在哪里找到它
已经对所有人上线,无需主动开通。登录你的面板,在侧边栏里找 Team,就可以开始邀请人了。
如果你刚接触 Shifter,想认真地搭起第一个工作区,住宅代理计划和 ISP 计划是常见的起点。计划装进工作区,团队围着它搭起来。
我们从重做住宅网关那时起就想交付这个功能,因为账号级别的功能只有在底层产品不再是瓶颈之后才真正有意义。现在底层不再是瓶颈了,团队工作区也上线了。如果有我们漏掉的权限形态,或者某种角色划分跟你的团队不太合得上,写信告诉我们。我们刻意把这个能力面留得很小,这样才能继续移动它。