+ Resolving what a module's capability would carry reads any + organization's installation scope and is restricted to platform + super administrators. +
++ A composed module with no person present mints a capability for one of + its installed operation bindings and names the organization it acts + for. Resolve what that capability would carry — and why it would be + refused. +
++ {stale} +
+ )} + {waiting ? null : outcome !== "empty" && !answer ? ( ++ {readOutcomeMessage( + outcome, + "this module's declared authority", + "", + )} +
+ ) : !answer ? ( ++ {readOutcomeMessage( + outcome, + "issued capabilities", + "Complete the selection above to read issued capabilities.", + )} +
+ ) : answer.recent.length === 0 ? ( ++ No capability has been issued to this module for this + organization. +
+ ) : ( ++ Scopes, as this organization's installation narrowed them +
++ {identity.scopes.join(", ") || "—"} +
+
+ The owner is the module's own service principal and it acts
+ directly: no person, and no actor hop. The scopes are the binding's{" "}
+ headless_scopes narrowed by this organization's
+ installation scope, never the invoke_scopes it holds for
+ work a person asked for.
+
{refusal}
++ A refusal here is a decision about declared authority, not an outage: it + is what the mint itself would answer, and retrying changes nothing until + the declaration does. +
++ {stale} +
+ )} + {/* + * The declaration's facts need a declaration. Without one the read + * either has not answered or was refused, and the message says + * which — never a dash, which would read as "this host has none". + */} + {declaration ? ( ++ {readOutcomeMessage( + outcome, + "this source's declared trigger", + "This source declares no trigger.", + )} +
+ )} {declaration?.undeclarableReason && (
{declaration.undeclarableReason}
@@ -194,7 +255,22 @@ function SourceTriggerRow({
+ {declarationStale}
+
+ {readOutcomeMessage(
+ outcome,
+ "this source's declared trigger",
+ "This source declares no trigger.",
+ )}
+
{declaration.undeclarableReason}
- {outcome === "empty"
- ? "No reference is bound to this source's triggers. An occurrence would be refused."
- : readOutcomeMessage(outcome, "this source's delegations", "")}
-
+ {read.isSuccess
+ ? "No reference is bound to this source's triggers. An occurrence would be refused."
+ : readOutcomeMessage(
+ outcome,
+ "this source's delegations",
+ "",
+ )}
+
- No child has been minted against this source's references.
-
+ No child has been minted against this source's references.
+
+ {readOutcomeMessage(
+ outcome,
+ "the children this source minted",
+ "No child has been minted against this source’s references.",
+ )}
+ ` rendered dashes, and the
+// Identity row, computed from no declaration at all, said "None — occurrences
+// would be refused". That is the same false statement about authority the
+// schedule row was fixed for, surviving in the other consumer because the
+// branch tested `!declaration && !read.isFetching` — true only once the read
+// had finished, and so false for the whole of the pending window.
+describe("the playground's declaration card while the read is in flight", () => {
+ it("claims no identity before the declaration arrives", async () => {
+ let release: (() => void) | undefined;
+ const gate = new Promise
-
@@ -281,15 +335,33 @@ function TriggerIdentityPanel({
+ ) : unanswered ? null : read.isSuccess ? (
+