Repository navigation
Commit 8d189af
committed
fix(runtime): read the tenancy posture loudly at the /keys mint and activation-write gates
Both gates derived the effective tenancy posture through
`DomainHandlerDeps.resolveService`, the dispatcher's capability PROBE, whose
fallback chain absorbs every rejection at every step and answers `undefined`.
So a `tenancy` service that was registered and FAILED to build arrived at both
gates as the same value a deployment that never registered one produces, and
both gates read that as "there is no wall": `POST /keys` minted an
organization-less key it would otherwise refuse, and an organization
administrator's install-wide activation write was served instead of refused.
Measured on the pre-fix tree with a real `ObjectKernel` whose `tenancy` is
registered through a throwing factory: the mint door answered 201 with one row
written and the raw secret echoed once, and the activation door answered 200
with `setActionActive` called.
The identity step already reads this fact through the classified lookup
(`resolveServiceOrLoud`, #13906 decision 1 option A). That made one failure
answer 503 at the identity step and admit at these two gates in the same
deployment, so "what is this deployment's state on the wall question" had two
answers at once. The gates now read the same classification: never registered
stays quiet and behaves exactly as before, every other resolution failure is
re-raised as `AuthzStoreUnavailableError` (503 `SERVICE_UNAVAILABLE`).
`resolveService` keeps its probe contract for every other name and every other
domain; the classified read is a second, opted-into deps facility, so no gate
that was not named here changes behaviour.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D47qPfEWVPmhguWgBZCi5N1 parent a87163c commit 8d189af
5 files changed
Lines changed: 456 additions & 14 deletions
File tree
- packages/runtime/src
- domains
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
124 | 124 | | |
125 | 125 | | |
126 | 126 | | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
127 | 163 | | |
128 | 164 | | |
129 | 165 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
82 | | - | |
| 82 | + | |
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
| |||
147 | 147 | | |
148 | 148 | | |
149 | 149 | | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
150 | 154 | | |
151 | 155 | | |
152 | 156 | | |
| |||
156 | 160 | | |
157 | 161 | | |
158 | 162 | | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
159 | 187 | | |
160 | 188 | | |
161 | | - | |
162 | | - | |
163 | | - | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
164 | 192 | | |
165 | 193 | | |
166 | 194 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
| 34 | + | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| |||
104 | 104 | | |
105 | 105 | | |
106 | 106 | | |
107 | | - | |
108 | | - | |
109 | | - | |
110 | | - | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
111 | 132 | | |
112 | 133 | | |
113 | 134 | | |
114 | | - | |
| 135 | + | |
115 | 136 | | |
116 | | - | |
117 | | - | |
| 137 | + | |
| 138 | + | |
118 | 139 | | |
119 | 140 | | |
120 | 141 | | |
| |||
0 commit comments