@fuzdev/fuz_app 0.79.0 → 0.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"fact_serving.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/fact_serving.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA+C9B,OAAO,EAAgC,KAAK,oBAAoB,EAAC,MAAM,yBAAyB,CAAC;AAEjG,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,YAAY,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACxE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,SAAS,CAAC;CAC5C;AA8BD,eAAO,MAAM,iCAAiC,GAAI,SAAS,2BAA2B,KAAG,IA4OxF,CAAC"}
1
+ {"version":3,"file":"fact_serving.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/fact_serving.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA+C9B,OAAO,EAAgC,KAAK,oBAAoB,EAAC,MAAM,yBAAyB,CAAC;AAEjG,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,YAAY,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACxE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,SAAS,CAAC;CAC5C;AA8BD,eAAO,MAAM,iCAAiC,GAAI,SAAS,2BAA2B,KAAG,IA8NxF,CAAC"}
@@ -18,11 +18,11 @@ import '../assert_dev_env.js';
18
18
  * - **bare-hash admin-only** — `GET /api/facts/:hash` is admin (keeper) only:
19
19
  * non-admin → 403, anonymous → 401;
20
20
  * - **multi-actor fallthrough** — a multi-actor caller resolves to a null
21
- * (anonymous) context, so it can't read its own *private* fact via the
22
- * cell-scoped route (admitted only by public cells). Opt-in (needs the
23
- * multi-actor setup); a deliberate **tripwire** that fails on backends whose
24
- * credential resolution is single-actor-per-account and greens once a backend
25
- * gains multi-actor support.
21
+ * (anonymous) context on the (`acting`-less) cell-scoped route, so it can't
22
+ * read its own *private* fact there (admitted only by public cells). Opt-in
23
+ * (needs the multi-actor setup); every spine resolves the acting actor at the
24
+ * dispatcher's authorization phase from account-grain credentials, so the
25
+ * multi-actor account is drivable on TS and Rust alike.
26
26
  *
27
27
  * Facts are seeded **embedded** via `_testing_put_fact` (the cross-process
28
28
  * driver has no DB handle); the referencing cell via the `cell_create` RPC
@@ -167,26 +167,14 @@ export const describe_fact_serving_cross_tests = (options) => {
167
167
  const t = fixture.fresh_transport();
168
168
  const keeper = fixture.create_session_headers();
169
169
  const acting = fixture.actor.id; // the keeper's bootstrap actor
170
- // Seeding a multi-actor account over the wire (daemon-token put + the
171
- // actor-required cell creates) is the part that can't run on a backend
172
- // whose credential resolution is single-actor-per-account. Surface that
173
- // as a labeled tripwire so the red reads as "multi-actor unsupported on
174
- // this backend", not a daemon-auth regression — it greens here once the
175
- // backend gains multi-actor support. The behavior assertions below stay
176
- // OUTSIDE the catch so a real fallthrough regression surfaces as itself.
177
- let hash;
178
- let private_cell;
179
- let public_cell;
180
- try {
181
- hash = await put_fact(fixture, 'multi-actor-bytes');
182
- private_cell = await create_cell_with_ref(t, keeper, hash, 'private', acting);
183
- public_cell = await create_cell_with_ref(t, keeper, hash, 'public', acting);
184
- }
185
- catch (cause) {
186
- throw new Error('this backend cannot drive a multi-actor account — its credential ' +
187
- 'resolution is single-actor-per-account, so the cell-scoped multi-actor ' +
188
- 'fallthrough is unverified here until the backend gains multi-actor support', { cause });
189
- }
170
+ // Seed a multi-actor account over the wire: the daemon-token put +
171
+ // the actor-required cell creates (disambiguated via `acting`) drive
172
+ // the keeper's two actors. Every spine resolves the acting actor at
173
+ // the dispatcher's authorization phase from account-grain credentials,
174
+ // so this runs on TS and Rust alike.
175
+ const hash = await put_fact(fixture, 'multi-actor-bytes');
176
+ const private_cell = await create_cell_with_ref(t, keeper, hash, 'private', acting);
177
+ const public_cell = await create_cell_with_ref(t, keeper, hash, 'public', acting);
190
178
  // Owns a PRIVATE cell, yet reading its own fact back resolves to a null
191
179
  // (anonymous) context → 404. The owner path never runs.
192
180
  const own_private = await fact_get(t, cell_fact_path(private_cell, hash), keeper);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fuzdev/fuz_app",
3
- "version": "0.79.0",
3
+ "version": "0.80.0",
4
4
  "description": "fullstack app library",
5
5
  "glyph": "🗝",
6
6
  "logo": "logo.svg",