代理程序主体无法做到的事
一个计划进行变更的代理程序会在第一个回合发现它不被允许做什么, 通常是通过尝试去做。这是一种读取权限模型的昂贵方式, 而拒绝会在最不方便的时刻到达——在代理程序已经承诺的计划中途。
平台如何解决此问题
Section titled “平台如何解决此问题”此处列出了限制条件,以便在规划之前了解这些限制,从而可以在它们之内制定计划。
代理程序主体仅在一个租户内操作。 没有跨租户的列出、读取或写入操作;未指定租户的请求并非针对所有租户的请求。任何试图访问其他租户记录的行为都将被拒绝。
运行不等于构建。 拥有运行部署的权限,并不等同于拥有构建其运行镜像的权限。需要新镜像的代理程序需要构建镜像的表面以及拥有该权限的主体——这两种角色是特意分开的,而由一个主体同时拥有两者会在无意中破坏这种分离。
平台拥有的状态不可编写。 身份、修订版本、状态和时间戳由平台标记。尝试设置这些字段的描述将被拒绝,而不是被接受并覆盖,因此代理程序永远不会认为自己设置了某个实际未设置的值。
不能直接写入存储。 每个准入规则都作用于写入路径上。绕过它们写入的记录看起来是合法的,但实际上从未被检查过,这是唯一一种不会留下任何自身证据的失败。
拒绝即接口,而非异常。 每次拒绝都会说明字段、接收到的值、可接受的形式、重要性原因以及一个用于分支处理的稳定代码。应基于该代码进行分支;切勿匹配消息内容,该消息是为人设计的,措辞改进时会发生变化。完整列表位于 拒绝与变更 。
Not this
本页不枚举工具或其参数——那些是工具参考—— 也不描述主体如何签发或轮换,那是操作程序。
