@fuzdev/fuz_app 0.147.0 → 0.148.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.
- package/dist/actions/CLAUDE.md +6 -4
- package/dist/actions/action_codegen.d.ts +15 -1
- package/dist/actions/action_codegen.d.ts.map +1 -1
- package/dist/actions/action_codegen.js +23 -2
- package/dist/actions/perform_action.js +1 -1
- package/dist/auth/cell_action_specs.d.ts +3 -1
- package/dist/auth/cell_action_specs.d.ts.map +1 -1
- package/dist/auth/cell_action_specs.js +5 -5
- package/dist/auth/cell_actions.d.ts.map +1 -1
- package/dist/auth/cell_actions.js +2 -3
- package/dist/auth/cell_data_schema.d.ts +1 -1
- package/dist/auth/cell_data_schema.js +1 -1
- package/dist/auth/cell_field_action_specs.d.ts +4 -3
- package/dist/auth/cell_field_action_specs.d.ts.map +1 -1
- package/dist/auth/cell_field_action_specs.js +5 -6
- package/dist/auth/cell_field_actions.d.ts.map +1 -1
- package/dist/auth/cell_field_actions.js +8 -1
- package/dist/auth/cell_item_action_specs.d.ts +4 -2
- package/dist/auth/cell_item_action_specs.d.ts.map +1 -1
- package/dist/auth/cell_item_action_specs.js +5 -5
- package/dist/auth/cell_item_actions.d.ts.map +1 -1
- package/dist/auth/cell_item_actions.js +8 -1
- package/dist/auth/role_grant_offer_action_specs.d.ts +2 -0
- package/dist/auth/role_grant_offer_action_specs.d.ts.map +1 -1
- package/dist/auth/role_grant_offer_action_specs.js +3 -1
- package/dist/primitive_schemas.d.ts +1 -1
- package/dist/primitive_schemas.d.ts.map +1 -1
- package/dist/primitive_schemas.js +2 -1
- package/dist/schema_meta.d.ts +20 -0
- package/dist/schema_meta.d.ts.map +1 -1
- package/dist/schema_meta.js +7 -1
- package/dist/testing/CLAUDE.md +720 -114
- package/dist/testing/admin_integration.d.ts.map +1 -1
- package/dist/testing/admin_integration.js +73 -5
- package/dist/testing/adversarial_input.d.ts +0 -47
- package/dist/testing/adversarial_input.d.ts.map +1 -1
- package/dist/testing/adversarial_input.js +4 -340
- package/dist/testing/adversarial_input_cases.d.ts +64 -0
- package/dist/testing/adversarial_input_cases.d.ts.map +1 -0
- package/dist/testing/adversarial_input_cases.js +348 -0
- package/dist/testing/audit_completeness.d.ts.map +1 -1
- package/dist/testing/audit_completeness.js +24 -20
- package/dist/testing/audit_drift_guard.d.ts +27 -1
- package/dist/testing/audit_drift_guard.d.ts.map +1 -1
- package/dist/testing/audit_drift_guard.js +50 -0
- package/dist/testing/cross_backend/account_lifecycle.d.ts.map +1 -1
- package/dist/testing/cross_backend/account_lifecycle.js +29 -12
- package/dist/testing/cross_backend/actor_lookup.d.ts.map +1 -1
- package/dist/testing/cross_backend/actor_lookup.js +7 -25
- package/dist/testing/cross_backend/app_settings.d.ts.map +1 -1
- package/dist/testing/cross_backend/app_settings.js +4 -6
- package/dist/testing/cross_backend/audit_cross_helpers.d.ts +51 -0
- package/dist/testing/cross_backend/audit_cross_helpers.d.ts.map +1 -0
- package/dist/testing/cross_backend/audit_cross_helpers.js +78 -0
- package/dist/testing/cross_backend/backend_config.d.ts +2 -1
- package/dist/testing/cross_backend/backend_config.d.ts.map +1 -1
- package/dist/testing/cross_backend/body_size.d.ts +6 -0
- package/dist/testing/cross_backend/body_size.d.ts.map +1 -1
- package/dist/testing/cross_backend/body_size.js +26 -44
- package/dist/testing/cross_backend/body_size_smuggling.d.ts +5 -0
- package/dist/testing/cross_backend/body_size_smuggling.d.ts.map +1 -1
- package/dist/testing/cross_backend/body_size_smuggling.js +7 -14
- package/dist/testing/cross_backend/build_test_backend_paths.d.ts +3 -1
- package/dist/testing/cross_backend/build_test_backend_paths.d.ts.map +1 -1
- package/dist/testing/cross_backend/capabilities.d.ts +55 -59
- package/dist/testing/cross_backend/capabilities.d.ts.map +1 -1
- package/dist/testing/cross_backend/capabilities.js +20 -23
- package/dist/testing/cross_backend/cargo_binary.d.ts +70 -0
- package/dist/testing/cross_backend/cargo_binary.d.ts.map +1 -0
- package/dist/testing/cross_backend/cargo_binary.js +148 -0
- package/dist/testing/cross_backend/cell_crud.d.ts.map +1 -1
- package/dist/testing/cross_backend/cell_crud.js +57 -1
- package/dist/testing/cross_backend/cell_gated_create.d.ts +0 -60
- package/dist/testing/cross_backend/cell_gated_create.d.ts.map +1 -1
- package/dist/testing/cross_backend/cell_gated_create.js +9 -487
- package/dist/testing/cross_backend/cell_grant_role.d.ts +14 -2
- package/dist/testing/cross_backend/cell_grant_role.d.ts.map +1 -1
- package/dist/testing/cross_backend/cell_grant_role.js +22 -12
- package/dist/testing/cross_backend/cell_moderate.d.ts +66 -0
- package/dist/testing/cross_backend/cell_moderate.d.ts.map +1 -0
- package/dist/testing/cross_backend/cell_moderate.js +511 -0
- package/dist/testing/cross_backend/cell_ref_admission.d.ts.map +1 -1
- package/dist/testing/cross_backend/cell_ref_admission.js +1 -1
- package/dist/testing/cross_backend/cell_relations.d.ts.map +1 -1
- package/dist/testing/cross_backend/cell_relations.js +40 -19
- package/dist/testing/cross_backend/conformance_case.d.ts +43 -4
- package/dist/testing/cross_backend/conformance_case.d.ts.map +1 -1
- package/dist/testing/cross_backend/conformance_case.js +29 -1
- package/dist/testing/cross_backend/conformance_rpc_auth.d.ts +93 -0
- package/dist/testing/cross_backend/conformance_rpc_auth.d.ts.map +1 -0
- package/dist/testing/cross_backend/conformance_rpc_auth.js +125 -0
- package/dist/testing/cross_backend/conformance_table.d.ts +144 -4
- package/dist/testing/cross_backend/conformance_table.d.ts.map +1 -1
- package/dist/testing/cross_backend/conformance_table.js +297 -65
- package/dist/testing/cross_backend/cookie_attributes.d.ts.map +1 -1
- package/dist/testing/cross_backend/cookie_attributes.js +3 -2
- package/dist/testing/cross_backend/create_cross_backend_global_setup.d.ts +38 -5
- package/dist/testing/cross_backend/create_cross_backend_global_setup.d.ts.map +1 -1
- package/dist/testing/cross_backend/create_cross_backend_global_setup.js +24 -3
- package/dist/testing/cross_backend/create_dual_spawn_global_setup.d.ts +5 -5
- package/dist/testing/cross_backend/create_dual_spawn_global_setup.d.ts.map +1 -1
- package/dist/testing/cross_backend/credential_deadline.d.ts +10 -6
- package/dist/testing/cross_backend/credential_deadline.d.ts.map +1 -1
- package/dist/testing/cross_backend/credential_deadline.js +32 -31
- package/dist/testing/cross_backend/credential_header_robustness.d.ts.map +1 -1
- package/dist/testing/cross_backend/credential_header_robustness.js +4 -6
- package/dist/testing/cross_backend/{cell_cross_helpers.d.ts → cross_rpc.d.ts} +12 -2
- package/dist/testing/cross_backend/cross_rpc.d.ts.map +1 -0
- package/dist/testing/cross_backend/{cell_cross_helpers.js → cross_rpc.js} +31 -7
- package/dist/testing/cross_backend/default_backend_configs.d.ts +56 -61
- package/dist/testing/cross_backend/default_backend_configs.d.ts.map +1 -1
- package/dist/testing/cross_backend/default_backend_configs.js +97 -91
- package/dist/testing/cross_backend/default_spine_surface.d.ts.map +1 -1
- package/dist/testing/cross_backend/default_spine_surface.js +2 -2
- package/dist/testing/cross_backend/differential.d.ts +126 -0
- package/dist/testing/cross_backend/differential.d.ts.map +1 -0
- package/dist/testing/cross_backend/differential.js +201 -0
- package/dist/testing/cross_backend/differential_normalize.d.ts +150 -0
- package/dist/testing/cross_backend/differential_normalize.d.ts.map +1 -0
- package/dist/testing/cross_backend/differential_normalize.js +153 -0
- package/dist/testing/cross_backend/fact_serving.d.ts.map +1 -1
- package/dist/testing/cross_backend/fact_serving.js +27 -17
- package/dist/testing/cross_backend/full_spine_mount.d.ts +15 -0
- package/dist/testing/cross_backend/full_spine_mount.d.ts.map +1 -1
- package/dist/testing/cross_backend/full_spine_mount.js +55 -1
- package/dist/testing/cross_backend/identity_parity.d.ts.map +1 -1
- package/dist/testing/cross_backend/identity_parity.js +6 -5
- package/dist/testing/cross_backend/in_process_setup.d.ts +12 -2
- package/dist/testing/cross_backend/in_process_setup.d.ts.map +1 -1
- package/dist/testing/cross_backend/in_process_setup.js +10 -7
- package/dist/testing/cross_backend/login_security.d.ts.map +1 -1
- package/dist/testing/cross_backend/login_security.js +13 -18
- package/dist/testing/cross_backend/origin.js +1 -1
- package/dist/testing/cross_backend/origin_conformance.js +1 -1
- package/dist/testing/cross_backend/origin_scope.d.ts +6 -0
- package/dist/testing/cross_backend/origin_scope.d.ts.map +1 -1
- package/dist/testing/cross_backend/origin_scope.js +13 -12
- package/dist/testing/cross_backend/peer_ping_ws.d.ts +2 -5
- package/dist/testing/cross_backend/peer_ping_ws.d.ts.map +1 -1
- package/dist/testing/cross_backend/peer_ping_ws.js +14 -24
- package/dist/testing/cross_backend/postgres_database.d.ts +85 -0
- package/dist/testing/cross_backend/postgres_database.d.ts.map +1 -0
- package/dist/testing/cross_backend/postgres_database.js +140 -0
- package/dist/testing/cross_backend/provided_context.d.ts +28 -0
- package/dist/testing/cross_backend/provided_context.d.ts.map +1 -0
- package/dist/testing/cross_backend/provided_context.js +35 -0
- package/dist/testing/cross_backend/query_shape.d.ts.map +1 -1
- package/dist/testing/cross_backend/query_shape.js +10 -12
- package/dist/testing/cross_backend/ready.js +2 -2
- package/dist/testing/cross_backend/revocation_drivers.d.ts +4 -3
- package/dist/testing/cross_backend/revocation_drivers.d.ts.map +1 -1
- package/dist/testing/cross_backend/revocation_drivers.js +1 -1
- package/dist/testing/cross_backend/role_grant_cross_helpers.d.ts +3 -2
- package/dist/testing/cross_backend/role_grant_cross_helpers.d.ts.map +1 -1
- package/dist/testing/cross_backend/role_grant_offer_lifecycle.d.ts +13 -0
- package/dist/testing/cross_backend/role_grant_offer_lifecycle.d.ts.map +1 -0
- package/dist/testing/cross_backend/role_grant_offer_lifecycle.js +203 -0
- package/dist/testing/cross_backend/role_grant_offer_notification_ws.d.ts +2 -5
- package/dist/testing/cross_backend/role_grant_offer_notification_ws.d.ts.map +1 -1
- package/dist/testing/cross_backend/role_grant_offer_notification_ws.js +203 -111
- package/dist/testing/cross_backend/role_grant_participation.d.ts +13 -0
- package/dist/testing/cross_backend/role_grant_participation.d.ts.map +1 -1
- package/dist/testing/cross_backend/role_grant_participation.js +32 -21
- package/dist/testing/cross_backend/role_grant_role_grammar.d.ts.map +1 -1
- package/dist/testing/cross_backend/role_grant_role_grammar.js +6 -9
- package/dist/testing/cross_backend/rpc_adversarial.d.ts +38 -0
- package/dist/testing/cross_backend/rpc_adversarial.d.ts.map +1 -0
- package/dist/testing/cross_backend/rpc_adversarial.js +292 -0
- package/dist/testing/cross_backend/rpc_success_fixtures.d.ts +24 -0
- package/dist/testing/cross_backend/rpc_success_fixtures.d.ts.map +1 -0
- package/dist/testing/cross_backend/rpc_success_fixtures.js +124 -0
- package/dist/testing/cross_backend/rust_spine_consumer_surface.d.ts +101 -0
- package/dist/testing/cross_backend/rust_spine_consumer_surface.d.ts.map +1 -0
- package/dist/testing/cross_backend/rust_spine_consumer_surface.js +113 -0
- package/dist/testing/cross_backend/rust_spine_stub_backend_config.d.ts +10 -0
- package/dist/testing/cross_backend/rust_spine_stub_backend_config.d.ts.map +1 -1
- package/dist/testing/cross_backend/rust_spine_stub_backend_config.js +27 -18
- package/dist/testing/cross_backend/session_cap.d.ts +9 -8
- package/dist/testing/cross_backend/session_cap.d.ts.map +1 -1
- package/dist/testing/cross_backend/session_cap.js +9 -4
- package/dist/testing/cross_backend/session_cookie_codec.js +1 -1
- package/dist/testing/cross_backend/setup.d.ts +56 -54
- package/dist/testing/cross_backend/setup.d.ts.map +1 -1
- package/dist/testing/cross_backend/setup.js +29 -29
- package/dist/testing/cross_backend/simple_request.d.ts.map +1 -1
- package/dist/testing/cross_backend/simple_request.js +4 -4
- package/dist/testing/cross_backend/spawn_backend.d.ts +59 -10
- package/dist/testing/cross_backend/spawn_backend.d.ts.map +1 -1
- package/dist/testing/cross_backend/spawn_backend.js +219 -60
- package/dist/testing/cross_backend/spine_suites.d.ts +231 -0
- package/dist/testing/cross_backend/spine_suites.d.ts.map +1 -0
- package/dist/testing/cross_backend/spine_suites.js +626 -0
- package/dist/testing/cross_backend/spine_surface_constants.d.ts +29 -0
- package/dist/testing/cross_backend/spine_surface_constants.d.ts.map +1 -1
- package/dist/testing/cross_backend/spine_surface_constants.js +29 -0
- package/dist/testing/cross_backend/sse_round_trip.d.ts.map +1 -1
- package/dist/testing/cross_backend/sse_round_trip.js +3 -4
- package/dist/testing/cross_backend/standard.d.ts +18 -1
- package/dist/testing/cross_backend/standard.d.ts.map +1 -1
- package/dist/testing/cross_backend/standard.js +2 -0
- package/dist/testing/cross_backend/test_cell_gated_create_authorize.d.ts +24 -0
- package/dist/testing/cross_backend/test_cell_gated_create_authorize.d.ts.map +1 -1
- package/dist/testing/cross_backend/test_cell_gated_create_authorize.js +15 -0
- package/dist/testing/cross_backend/testing_backdoor.d.ts +2 -8
- package/dist/testing/cross_backend/testing_backdoor.d.ts.map +1 -1
- package/dist/testing/cross_backend/testing_backdoor.js +7 -10
- package/dist/testing/cross_backend/testing_reset_actions.d.ts +3 -2
- package/dist/testing/cross_backend/testing_reset_actions.d.ts.map +1 -1
- package/dist/testing/cross_backend/testing_reset_actions.js +8 -4
- package/dist/testing/cross_backend/testing_server_bun.js +1 -1
- package/dist/testing/cross_backend/token_lifetime.js +1 -1
- package/dist/testing/cross_backend/token_scope_surface.d.ts.map +1 -1
- package/dist/testing/cross_backend/token_scope_surface.js +9 -13
- package/dist/testing/cross_backend/transport_composition.d.ts +26 -2
- package/dist/testing/cross_backend/transport_composition.d.ts.map +1 -1
- package/dist/testing/cross_backend/transport_composition.js +81 -51
- package/dist/testing/cross_backend/ts_spine_backend_config.d.ts +8 -0
- package/dist/testing/cross_backend/ts_spine_backend_config.d.ts.map +1 -1
- package/dist/testing/cross_backend/ts_spine_backend_config.js +17 -10
- package/dist/testing/cross_backend/ws_action_rate_limit.d.ts +2 -5
- package/dist/testing/cross_backend/ws_action_rate_limit.d.ts.map +1 -1
- package/dist/testing/cross_backend/ws_action_rate_limit.js +8 -14
- package/dist/testing/cross_backend/ws_connection_cap.d.ts +4 -9
- package/dist/testing/cross_backend/ws_connection_cap.d.ts.map +1 -1
- package/dist/testing/cross_backend/ws_connection_cap.js +11 -12
- package/dist/testing/cross_backend/ws_endpoint.d.ts +52 -0
- package/dist/testing/cross_backend/ws_endpoint.d.ts.map +1 -0
- package/dist/testing/cross_backend/ws_endpoint.js +54 -0
- package/dist/testing/cross_backend/ws_inbound_dispatch.d.ts +2 -5
- package/dist/testing/cross_backend/ws_inbound_dispatch.d.ts.map +1 -1
- package/dist/testing/cross_backend/ws_inbound_dispatch.js +9 -15
- package/dist/testing/cross_backend/ws_outbound_overflow.d.ts +2 -7
- package/dist/testing/cross_backend/ws_outbound_overflow.d.ts.map +1 -1
- package/dist/testing/cross_backend/ws_outbound_overflow.js +5 -9
- package/dist/testing/cross_backend/ws_role_gated.d.ts +4 -5
- package/dist/testing/cross_backend/ws_role_gated.d.ts.map +1 -1
- package/dist/testing/cross_backend/ws_role_gated.js +12 -21
- package/dist/testing/cross_backend/ws_round_trip.d.ts +12 -9
- package/dist/testing/cross_backend/ws_round_trip.d.ts.map +1 -1
- package/dist/testing/cross_backend/ws_round_trip.js +29 -34
- package/dist/testing/db_entities.d.ts +16 -3
- package/dist/testing/db_entities.d.ts.map +1 -1
- package/dist/testing/db_entities.js +28 -5
- package/dist/testing/integration_helpers.d.ts +61 -2
- package/dist/testing/integration_helpers.d.ts.map +1 -1
- package/dist/testing/integration_helpers.js +75 -18
- package/dist/testing/round_trip.d.ts +17 -0
- package/dist/testing/round_trip.d.ts.map +1 -1
- package/dist/testing/round_trip.js +67 -24
- package/dist/testing/rpc_attack_surface.d.ts.map +1 -1
- package/dist/testing/rpc_attack_surface.js +13 -138
- package/dist/testing/rpc_envelope_cases.d.ts +111 -0
- package/dist/testing/rpc_envelope_cases.d.ts.map +1 -0
- package/dist/testing/rpc_envelope_cases.js +240 -0
- package/dist/testing/rpc_helpers.d.ts +31 -0
- package/dist/testing/rpc_helpers.d.ts.map +1 -1
- package/dist/testing/rpc_helpers.js +35 -14
- package/dist/testing/rpc_round_trip.d.ts +62 -6
- package/dist/testing/rpc_round_trip.d.ts.map +1 -1
- package/dist/testing/rpc_round_trip.js +151 -39
- package/dist/testing/schema_generators.d.ts.map +1 -1
- package/dist/testing/schema_generators.js +22 -2
- package/dist/testing/standard.d.ts +26 -0
- package/dist/testing/standard.d.ts.map +1 -1
- package/dist/testing/standard.js +4 -1
- package/dist/testing/transports/raw_http.d.ts +21 -0
- package/dist/testing/transports/raw_http.d.ts.map +1 -1
- package/dist/testing/transports/raw_http.js +30 -0
- package/package.json +6 -4
- package/dist/testing/cross_backend/actor_search.d.ts +0 -6
- package/dist/testing/cross_backend/actor_search.d.ts.map +0 -1
- package/dist/testing/cross_backend/actor_search.js +0 -90
- package/dist/testing/cross_backend/cell_cross_helpers.d.ts.map +0 -1
|
@@ -15,6 +15,26 @@ export const TESTING_ACTION_AUTH = {
|
|
|
15
15
|
};
|
|
16
16
|
/** RPC endpoint mount path — matches the binary's `/api/rpc`. */
|
|
17
17
|
export const SPINE_RPC_PATH = '/api/rpc';
|
|
18
|
+
/** Ungated WebSocket endpoint mount path — matches the binaries' `/api/ws`. */
|
|
19
|
+
export const SPINE_WS_PATH = '/api/ws';
|
|
20
|
+
/**
|
|
21
|
+
* Mount prefix of the account REST routes (login, logout, password, status,
|
|
22
|
+
* signup, bootstrap) on both spine binaries. The `SPINE_ACCOUNT_*_PATH`
|
|
23
|
+
* constants below are the routes under it the suites drive.
|
|
24
|
+
*/
|
|
25
|
+
export const SPINE_ACCOUNT_PATH_PREFIX = '/api/account';
|
|
26
|
+
/** REST login route. */
|
|
27
|
+
export const SPINE_ACCOUNT_LOGIN_PATH = '/api/account/login';
|
|
28
|
+
/** REST logout route. */
|
|
29
|
+
export const SPINE_ACCOUNT_LOGOUT_PATH = '/api/account/logout';
|
|
30
|
+
/** REST password-change route. */
|
|
31
|
+
export const SPINE_ACCOUNT_PASSWORD_PATH = '/api/account/password';
|
|
32
|
+
/** REST account-status route. */
|
|
33
|
+
export const SPINE_ACCOUNT_STATUS_PATH = '/api/account/status';
|
|
34
|
+
/** REST signup route. */
|
|
35
|
+
export const SPINE_ACCOUNT_SIGNUP_PATH = '/api/account/signup';
|
|
36
|
+
/** REST bootstrap route — the default `BackendConfig.bootstrap_path`. */
|
|
37
|
+
export const SPINE_ACCOUNT_BOOTSTRAP_PATH = '/api/account/bootstrap';
|
|
18
38
|
/**
|
|
19
39
|
* Audit-log SSE stream path — `/api/admin` prefix + the
|
|
20
40
|
* `create_audit_log_route_specs` `/audit/stream` route. Matches the default
|
|
@@ -23,6 +43,15 @@ export const SPINE_RPC_PATH = '/api/rpc';
|
|
|
23
43
|
* surface stub leaves `ctx.audit_sse` null so the snapshot stays SSE-free.
|
|
24
44
|
*/
|
|
25
45
|
export const SPINE_SSE_PATH = '/api/admin/audit/stream';
|
|
46
|
+
/**
|
|
47
|
+
* The request-body cap both spines ship by default, 1 MiB
|
|
48
|
+
* (`DEFAULT_MAX_BODY_SIZE` in TS, `DEFAULT_BODY_LIMIT_BYTES` in `fuz_http`).
|
|
49
|
+
* Kept here as the cross-impl contract value rather than imported from either
|
|
50
|
+
* impl — the boundary the body-size suites pin is the shared default, and a
|
|
51
|
+
* change to either is a deliberate cross-impl decision that would revisit them
|
|
52
|
+
* regardless.
|
|
53
|
+
*/
|
|
54
|
+
export const SPINE_BODY_LIMIT_DEFAULT_BYTES = 1024 * 1024;
|
|
26
55
|
/**
|
|
27
56
|
* App role the role-shaped-`cell_grant` cross suite exercises. Registered
|
|
28
57
|
* with no grant path (`grant_paths: []`) so it stays a valid registry member
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse_round_trip.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/sse_round_trip.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAkF9B,OAAO,EAAE,KAAK,mBAAmB,EAAW,MAAM,mBAAmB,CAAC;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"sse_round_trip.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/sse_round_trip.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAkF9B,OAAO,EAAE,KAAK,mBAAmB,EAAW,MAAM,mBAAmB,CAAC;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAO5C,4DAA4D;AAC5D,MAAM,WAAW,0BAA0B;IAC1C;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAC/B,wEAAwE;IACxE,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,wFAAwF;IACxF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,4FAA4F;IAC5F,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CAChC;AA0BD;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC,GAAI,SAAS,0BAA0B,KAAG,IAyStF,CAAC"}
|
|
@@ -69,8 +69,7 @@ import { create_rpc_post_init } from '../rpc_helpers.js';
|
|
|
69
69
|
import { DEFAULT_TEST_PASSWORD } from '../test_credentials.js';
|
|
70
70
|
import { test_if } from './capabilities.js';
|
|
71
71
|
import { create_account_revocations } from './revocation_drivers.js';
|
|
72
|
-
|
|
73
|
-
const DEFAULT_SSE_PATH = '/api/admin/audit/stream';
|
|
72
|
+
import { SPINE_ACCOUNT_LOGOUT_PATH, SPINE_ACCOUNT_PASSWORD_PATH, SPINE_SSE_PATH } from './spine_surface_constants.js';
|
|
74
73
|
/**
|
|
75
74
|
* Assert a decoded SSE frame is a well-formed audit `{method, params}`
|
|
76
75
|
* payload whose `params` validate against the matching `audit_log_event_specs`
|
|
@@ -94,8 +93,8 @@ const assert_audit_data_frame = (frame) => {
|
|
|
94
93
|
* per-session cap.
|
|
95
94
|
*/
|
|
96
95
|
export const describe_cross_process_sse_tests = (options) => {
|
|
97
|
-
const { setup_test, capabilities, base_url, rpc_path, origin, logout_path =
|
|
98
|
-
const sse_path = options.sse_path ??
|
|
96
|
+
const { setup_test, capabilities, base_url, rpc_path, origin, logout_path = SPINE_ACCOUNT_LOGOUT_PATH, password_path = SPINE_ACCOUNT_PASSWORD_PATH } = options;
|
|
97
|
+
const sse_path = options.sse_path ?? SPINE_SSE_PATH;
|
|
99
98
|
const max_per_scope = options.max_per_scope === undefined ? AUDIT_LOG_SSE_MAX_PER_SCOPE : options.max_per_scope;
|
|
100
99
|
describe('cross-process sse', () => {
|
|
101
100
|
test_if(capabilities.sse, 'connects and emits the connected comment', async () => {
|
|
@@ -41,6 +41,7 @@ import '../assert_dev_env.js';
|
|
|
41
41
|
import type { SessionOptions } from '../../auth/session_cookie.js';
|
|
42
42
|
import type { RoleSchemaResult } from '../../auth/role_schema.js';
|
|
43
43
|
import type { AppSurfaceSpec } from '../../http/surface.js';
|
|
44
|
+
import { type RpcSuccessFixtures } from '../rpc_round_trip.js';
|
|
44
45
|
import type { RpcEndpointsSuiteOption } from '../rpc_helpers.js';
|
|
45
46
|
import type { BackendCapabilities } from './capabilities.js';
|
|
46
47
|
import type { SetupTest, TestFixture } from './setup.js';
|
|
@@ -112,7 +113,23 @@ export interface StandardCrossProcessTestOptions {
|
|
|
112
113
|
* schema on each backend — the success-shape parity check. See
|
|
113
114
|
* `RpcRoundTripTestOptions.success_fixtures`.
|
|
114
115
|
*/
|
|
115
|
-
rpc_success_fixtures?:
|
|
116
|
+
rpc_success_fixtures?: RpcSuccessFixtures;
|
|
117
|
+
/**
|
|
118
|
+
* Forwarded to `describe_rpc_round_trip_tests` as `skip_methods` — the
|
|
119
|
+
* consumer escape hatch for a method the generic round-trip can't drive at
|
|
120
|
+
* all (a handler whose test wiring stubs out the deps it reaches, or reads
|
|
121
|
+
* tables the suite's database doesn't migrate). Each entry hides the
|
|
122
|
+
* method from both the crash check and the envelope check, so name the
|
|
123
|
+
* reason beside it.
|
|
124
|
+
*/
|
|
125
|
+
rpc_skip_methods?: Array<string>;
|
|
126
|
+
/**
|
|
127
|
+
* Forwarded to `describe_rpc_round_trip_tests` as `input_overrides`
|
|
128
|
+
* (method name → params) — for a method whose generated params can't
|
|
129
|
+
* reach its handler cleanly. The response is held to the same rules as a
|
|
130
|
+
* generated one.
|
|
131
|
+
*/
|
|
132
|
+
rpc_input_overrides?: Map<string, Record<string, unknown>>;
|
|
116
133
|
/**
|
|
117
134
|
* Forwarded to `describe_round_trip_validation` as `success_fixtures`
|
|
118
135
|
* (`'METHOD /path'` → async `{url?, body?}` factory) for referential REST
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/standard.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"standard.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/standard.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D,OAAO,EAAiC,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE9F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,WAAW,+BAA+B;IAC/C,2CAA2C;IAC3C,UAAU,EAAE,SAAS,CAAC;IACtB;;;OAGG;IACH,cAAc,EAAE,cAAc,CAAC;IAC/B;;;;OAIG;IACH,YAAY,EAAE,mBAAmB,CAAC;IAClC,uFAAuF;IACvF,eAAe,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC;;;;;OAKG;IACH,aAAa,EAAE,uBAAuB,CAAC;IACvC;;;OAGG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvC;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1C;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,kBAAkB,CAAC;IAC1C;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,GAAG,CAC1B,MAAM,EACN,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CACnF,CAAC;CACF;AAED;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,GACjD,SAAS,+BAA+B,KACtC,IAuCF,CAAC"}
|
|
@@ -29,6 +29,8 @@ export const describe_standard_cross_process_tests = (options) => {
|
|
|
29
29
|
surface_source: options.surface_source,
|
|
30
30
|
session_options: options.session_options,
|
|
31
31
|
rpc_endpoints: options.rpc_endpoints,
|
|
32
|
+
skip_methods: options.rpc_skip_methods,
|
|
33
|
+
input_overrides: options.rpc_input_overrides,
|
|
32
34
|
success_fixtures: options.rpc_success_fixtures
|
|
33
35
|
});
|
|
34
36
|
describe_data_exposure_tests({
|
|
@@ -8,6 +8,30 @@ export declare const SPACE_CELL_KIND = "space";
|
|
|
8
8
|
* `"participant"` literal.
|
|
9
9
|
*/
|
|
10
10
|
export declare const PARTICIPATION_ROLE = "participant";
|
|
11
|
+
/**
|
|
12
|
+
* A space `data.policy` mirroring the test ladder: gated `post` (moderated) +
|
|
13
|
+
* `react` (live) + `comment` (live), each on `PARTICIPATION_ROLE`. `comment`
|
|
14
|
+
* exists so a suite can create a comment under a post (`root_id !==
|
|
15
|
+
* parent_id`) and prove the policy resolves from the governing root (the
|
|
16
|
+
* space), not the immediate parent. Shared by the gated-create and moderate
|
|
17
|
+
* cross suites.
|
|
18
|
+
*/
|
|
19
|
+
export declare const TEST_SPACE_POLICY: {
|
|
20
|
+
readonly policy: {
|
|
21
|
+
readonly post: {
|
|
22
|
+
readonly min_role: "participant";
|
|
23
|
+
readonly moderation_required: true;
|
|
24
|
+
};
|
|
25
|
+
readonly react: {
|
|
26
|
+
readonly min_role: "participant";
|
|
27
|
+
readonly moderation_required: false;
|
|
28
|
+
};
|
|
29
|
+
readonly comment: {
|
|
30
|
+
readonly min_role: "participant";
|
|
31
|
+
readonly moderation_required: false;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
};
|
|
11
35
|
/** A space's per-kind contribution rule (the shape stamped into `space.data.policy`). */
|
|
12
36
|
export interface ContributionRule {
|
|
13
37
|
min_role?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test_cell_gated_create_authorize.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/test_cell_gated_create_authorize.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA4B9B,OAAO,KAAK,EACX,mBAAmB,EAGnB,MAAM,4BAA4B,CAAC;AAGpC,8EAA8E;AAC9E,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,gBAAyB,CAAC;AAEzD,yFAAyF;AACzF,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAYD;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,EAAE,mBAsB9C,CAAC"}
|
|
1
|
+
{"version":3,"file":"test_cell_gated_create_authorize.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/test_cell_gated_create_authorize.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA4B9B,OAAO,KAAK,EACX,mBAAmB,EAGnB,MAAM,4BAA4B,CAAC;AAGpC,8EAA8E;AAC9E,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,gBAAyB,CAAC;AAEzD;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;CAMpB,CAAC;AAEX,yFAAyF;AACzF,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAYD;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,EAAE,mBAsB9C,CAAC"}
|
|
@@ -33,6 +33,21 @@ export const SPACE_CELL_KIND = 'space';
|
|
|
33
33
|
* `"participant"` literal.
|
|
34
34
|
*/
|
|
35
35
|
export const PARTICIPATION_ROLE = SPINE_PARTICIPANT_ROLE;
|
|
36
|
+
/**
|
|
37
|
+
* A space `data.policy` mirroring the test ladder: gated `post` (moderated) +
|
|
38
|
+
* `react` (live) + `comment` (live), each on `PARTICIPATION_ROLE`. `comment`
|
|
39
|
+
* exists so a suite can create a comment under a post (`root_id !==
|
|
40
|
+
* parent_id`) and prove the policy resolves from the governing root (the
|
|
41
|
+
* space), not the immediate parent. Shared by the gated-create and moderate
|
|
42
|
+
* cross suites.
|
|
43
|
+
*/
|
|
44
|
+
export const TEST_SPACE_POLICY = {
|
|
45
|
+
policy: {
|
|
46
|
+
post: { min_role: PARTICIPATION_ROLE, moderation_required: true },
|
|
47
|
+
react: { min_role: PARTICIPATION_ROLE, moderation_required: false },
|
|
48
|
+
comment: { min_role: PARTICIPATION_ROLE, moderation_required: false }
|
|
49
|
+
}
|
|
50
|
+
};
|
|
36
51
|
/** Pull the governing root's `data.policy[kind]` rule, defensively (loose `data`). */
|
|
37
52
|
const get_contribution_rule = (data, kind) => {
|
|
38
53
|
if (data === null || typeof data !== 'object')
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import '../assert_dev_env.js';
|
|
2
2
|
import type { RpcPathCrossSuiteOptions } from './setup.js';
|
|
3
|
+
import { type WsEndpointTarget } from './ws_endpoint.js';
|
|
3
4
|
/** Options for the testing-backdoor negative-credential suite. */
|
|
4
5
|
export interface TestingBackdoorCrossTestOptions extends RpcPathCrossSuiteOptions {
|
|
5
6
|
/**
|
|
@@ -7,14 +8,7 @@ export interface TestingBackdoorCrossTestOptions extends RpcPathCrossSuiteOption
|
|
|
7
8
|
* Pass it when the backend serves the `_testing_*` actions on its WS
|
|
8
9
|
* endpoint too; omitted, those cases are skipped.
|
|
9
10
|
*/
|
|
10
|
-
readonly ws?:
|
|
11
|
-
/** Base URL the backend is reachable at (e.g. `http://localhost:1178`). */
|
|
12
|
-
readonly base_url: string;
|
|
13
|
-
/** WebSocket endpoint path on the backend (e.g. `/api/ws`). */
|
|
14
|
-
readonly ws_path: string;
|
|
15
|
-
/** Origin for the upgrade. Defaults to `base_url`. */
|
|
16
|
-
readonly origin?: string;
|
|
17
|
-
};
|
|
11
|
+
readonly ws?: WsEndpointTarget;
|
|
18
12
|
}
|
|
19
13
|
export declare const describe_testing_backdoor_cross_tests: (options: TestingBackdoorCrossTestOptions) => void;
|
|
20
14
|
//# sourceMappingURL=testing_backdoor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing_backdoor.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/testing_backdoor.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"testing_backdoor.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/testing_backdoor.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA6E9B,OAAO,KAAK,EAAE,wBAAwB,EAAe,MAAM,YAAY,CAAC;AAExE,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAwF1E,kEAAkE;AAClE,MAAM,WAAW,+BAAgC,SAAQ,wBAAwB;IAChF;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED,eAAO,MAAM,qCAAqC,GACjD,SAAS,+BAA+B,KACtC,IAoEF,CAAC"}
|
|
@@ -18,9 +18,11 @@ import '../assert_dev_env.js';
|
|
|
18
18
|
* each spec's `auth` axis. A test binary live-mounts them on its RPC
|
|
19
19
|
* endpoint (and, on fuz_app's spine binary and the Rust stub, its WS
|
|
20
20
|
* endpoint) but keeps them off the declared surface — so the spec-derived
|
|
21
|
-
* `describe_rpc_attack_surface_tests` never enumerates them
|
|
22
|
-
*
|
|
23
|
-
*
|
|
21
|
+
* `describe_rpc_attack_surface_tests` never enumerates them. This suite fires
|
|
22
|
+
* them with non-daemon credentials to prove the gate holds end-to-end, against
|
|
23
|
+
* each impl's real auth resolution; a conformance table given the live mount
|
|
24
|
+
* (`live_rpc_endpoints`) fires the same refusals through the auth rows
|
|
25
|
+
* `generate_rpc_auth_conformance_cases` generates for them.
|
|
24
26
|
*
|
|
25
27
|
* For every backdoor method, three principals:
|
|
26
28
|
*
|
|
@@ -67,10 +69,10 @@ import { describe, test, assert } from 'vitest';
|
|
|
67
69
|
import { ERROR_CREDENTIAL_TYPE_REQUIRED } from '../../http/error_schemas.js';
|
|
68
70
|
import { JSONRPC_ERROR_CODES } from '../../http/jsonrpc_errors.js';
|
|
69
71
|
import { rpc_call } from '../rpc_helpers.js';
|
|
70
|
-
import { create_admitted_ws_transport } from '../transports/ws_transport.js';
|
|
71
72
|
import { is_response_for } from '../transports/ws_client.js';
|
|
72
73
|
import { test_if } from './capabilities.js';
|
|
73
74
|
import { SPINE_RPC_PATH } from './spine_surface_constants.js';
|
|
75
|
+
import { open_session_ws } from './ws_endpoint.js';
|
|
74
76
|
/** A well-formed UUID that never names a real row. */
|
|
75
77
|
const NIL_UUID = '00000000-0000-0000-0000-000000000000';
|
|
76
78
|
/**
|
|
@@ -171,12 +173,7 @@ export const describe_testing_backdoor_cross_tests = (options) => {
|
|
|
171
173
|
for (const { method, params } of backdoor_methods) {
|
|
172
174
|
test_if(ws !== undefined, `${method} over a session socket → forbidden ${ERROR_CREDENTIAL_TYPE_REQUIRED}`, async () => {
|
|
173
175
|
const fixture = await setup_test();
|
|
174
|
-
const client = await
|
|
175
|
-
base_url: ws.base_url,
|
|
176
|
-
ws_path: ws.ws_path,
|
|
177
|
-
cookies: fixture.transport.cookies(),
|
|
178
|
-
origin: ws.origin
|
|
179
|
-
});
|
|
176
|
+
const client = await open_session_ws(ws, fixture, { admitted: true });
|
|
180
177
|
try {
|
|
181
178
|
const id = `backdoor_${method}`;
|
|
182
179
|
await client.send({ jsonrpc: '2.0', id, method, params });
|
|
@@ -632,8 +632,9 @@ export interface CreateTestingActionsOptions {
|
|
|
632
632
|
* `db` rather than a separately-pooled connection — under the in-memory
|
|
633
633
|
* drivers' single connection (pglet, PGlite) a second connection deadlocks against this still-open
|
|
634
634
|
* transaction. `testing_zzz_server` clears in-memory workspace registry +
|
|
635
|
-
* terminals + scoped-FS scratch (ignores `db`);
|
|
636
|
-
*
|
|
635
|
+
* terminals + scoped-FS scratch (ignores `db`); the spine binaries
|
|
636
|
+
* (`testing/cross_backend/full_spine_mount.ts` and the Rust `testing_spine_stub`) empty
|
|
637
|
+
* the cell and fact tables. Runs inside the same RPC dispatch
|
|
637
638
|
* as the auth-table writes, so a throw surfaces to the caller as a
|
|
638
639
|
* JSON-RPC error and the per-test fixture short-circuits.
|
|
639
640
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing_reset_actions.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/testing_reset_actions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"testing_reset_actions.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/testing_reset_actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -87,7 +87,7 @@ import { query_put_fact_holder } from '../../db/fact_holder_queries.js';
|
|
|
87
87
|
import { ROLE_ADMIN, ROLE_KEEPER } from '../../auth/role_schema.js';
|
|
88
88
|
import { query_schema_snapshot, SchemaSnapshot, query_migration_tracker, MigrationTracker } from '../schema_introspect.js';
|
|
89
89
|
import { ActionManifest, build_action_manifest } from './action_manifest.js';
|
|
90
|
-
import {
|
|
90
|
+
import { create_test_extra_actor } from '../db_entities.js';
|
|
91
91
|
import { create_test_account_with_credentials, mint_test_session } from '../app_server.js';
|
|
92
92
|
import { DEFAULT_TEST_PASSWORD } from '../test_credentials.js';
|
|
93
93
|
import { TESTING_ACTION_AUTH } from './spine_surface_constants.js';
|
|
@@ -682,10 +682,13 @@ export const create_testing_actions = (deps, options) => {
|
|
|
682
682
|
// bypass as extra_accounts — no production wire path mints a
|
|
683
683
|
// second actor, so the multi-actor `acting` branches need this
|
|
684
684
|
// direct insert. Order-preserving so the fixture can address
|
|
685
|
-
// them positionally
|
|
685
|
+
// them positionally, and seeded at the wall clock so they sort
|
|
686
|
+
// after the keeper's bootstrap actor in insert order
|
|
687
|
+
// (`create_test_extra_actor`), as on the Rust spine
|
|
688
|
+
// (`query_create_actor_with_clock_timestamp`).
|
|
686
689
|
const extra_actors = [];
|
|
687
690
|
for (const name of input.extra_actors ?? []) {
|
|
688
|
-
const seeded_actor = await
|
|
691
|
+
const seeded_actor = await create_test_extra_actor(ctx.db, keeper.account.id, name);
|
|
689
692
|
extra_actors.push({ id: seeded_actor.id, name: seeded_actor.name });
|
|
690
693
|
}
|
|
691
694
|
// 6. Refresh the daemon-token cache so subsequent daemon-token
|
|
@@ -701,7 +704,8 @@ export const create_testing_actions = (deps, options) => {
|
|
|
701
704
|
daemon_token_state.keeper_account_id = keeper_account_id;
|
|
702
705
|
});
|
|
703
706
|
// 7. Fire domain-state reset (zzz workspaces/terminals/scratch,
|
|
704
|
-
// fuz_forge cell/fact/file truncation,
|
|
707
|
+
// fuz_forge cell/fact/file truncation, the spine binaries' cell +
|
|
708
|
+
// fact wipe).
|
|
705
709
|
// Pass the transactional `ctx.db` so DB-domain truncation runs
|
|
706
710
|
// on the same connection — a separate pool connection deadlocks
|
|
707
711
|
// against this open transaction under the in-memory drivers.
|
|
@@ -72,7 +72,7 @@ export const create_bun_testing_adapter = () => {
|
|
|
72
72
|
// hang), and the client runtime — a single server-closed WS is
|
|
73
73
|
// necessary and sufficient. Client-initiated close or leaving the
|
|
74
74
|
// socket open both stop cleanly in ~0ms. In this suite the trigger is
|
|
75
|
-
// any server-initiated WS close — a revocation's (the
|
|
75
|
+
// any server-initiated WS close — a revocation's (the WS round-trip suite's
|
|
76
76
|
// close-on-revoke cases), a cap eviction's, an oversized message's —
|
|
77
77
|
// which is why teardown hangs after those and not under HTTP-only or
|
|
78
78
|
// client-closed WS traffic.
|
|
@@ -37,7 +37,7 @@ import '../assert_dev_env.js';
|
|
|
37
37
|
*/
|
|
38
38
|
import { describe, test, assert } from 'vitest';
|
|
39
39
|
import { account_token_create_action_spec, account_token_list_action_spec, API_TOKEN_NAME_LENGTH_MAX, TokenCreateOutput, TokenListOutput } from '../../auth/account_action_specs.js';
|
|
40
|
-
import { cross_rpc_call, error_reason, expect_output } from './
|
|
40
|
+
import { cross_rpc_call, error_reason, expect_output } from './cross_rpc.js';
|
|
41
41
|
import { assert_iso8601_seconds } from './wire_shapes.js';
|
|
42
42
|
import { SPINE_RPC_PATH } from './spine_surface_constants.js';
|
|
43
43
|
/** TTL used by the bounded-mint case. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token_scope_surface.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/token_scope_surface.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAgF9B,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"token_scope_surface.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/token_scope_surface.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAgF9B,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,YAAY,CAAC;AAmB1E,wDAAwD;AACxD,MAAM,WAAW,iCAAkC,SAAQ,uCAAuC;IACjG,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC3B;AA6DD,eAAO,MAAM,wCAAwC,GACpD,SAAS,iCAAiC,KACxC,IAqKF,CAAC"}
|
|
@@ -70,13 +70,9 @@ import '../assert_dev_env.js';
|
|
|
70
70
|
import { describe, assert } from 'vitest';
|
|
71
71
|
import { ERROR_CREDENTIAL_TYPE_REQUIRED, ERROR_TOKEN_SCOPE_REQUIRED } from '../../http/error_schemas.js';
|
|
72
72
|
import { test_if } from './capabilities.js';
|
|
73
|
-
import { cross_rpc_call } from './
|
|
73
|
+
import { cross_rpc_call } from './cross_rpc.js';
|
|
74
74
|
import { mint_narrowed_api_token } from './narrowed_api_token.js';
|
|
75
|
-
import { SPINE_RPC_PATH } from './spine_surface_constants.js';
|
|
76
|
-
/** Default audit-log SSE path — the `audit_stream` surface. */
|
|
77
|
-
const DEFAULT_SSE_PATH = '/api/admin/audit/stream';
|
|
78
|
-
/** The account status read, which answers a narrowed token as anonymous. */
|
|
79
|
-
const STATUS_PATH = '/api/account/status';
|
|
75
|
+
import { SPINE_ACCOUNT_STATUS_PATH, SPINE_RPC_PATH, SPINE_SSE_PATH } from './spine_surface_constants.js';
|
|
80
76
|
/**
|
|
81
77
|
* A well-formed hash that no fact has. The scope gate is a pre-authorization
|
|
82
78
|
* guard, so it fires before the handler ever looks the hash up — but *params*
|
|
@@ -127,7 +123,7 @@ const assert_channel_denied = async (fresh_transport, path, token, credential_ty
|
|
|
127
123
|
export const describe_token_scope_surface_cross_tests = (options) => {
|
|
128
124
|
const { setup_test, capabilities } = options;
|
|
129
125
|
const rpc_path = options.rpc_path ?? SPINE_RPC_PATH;
|
|
130
|
-
const sse_path = options.sse_path ??
|
|
126
|
+
const sse_path = options.sse_path ?? SPINE_SSE_PATH;
|
|
131
127
|
describe('token scope non-RPC surface parity', () => {
|
|
132
128
|
/**
|
|
133
129
|
* The non-vacuity control for every denial below: a narrowed token is
|
|
@@ -155,7 +151,7 @@ export const describe_token_scope_surface_cross_tests = (options) => {
|
|
|
155
151
|
});
|
|
156
152
|
await assert_channel_denied(fixture.fresh_transport, sse_path, token, ['session']);
|
|
157
153
|
});
|
|
158
|
-
test_if(capabilities.
|
|
154
|
+
test_if(capabilities.fact_serving_admin_hash, 'a narrowed token is refused the bare-hash fact read (surface:fact_bare)', async () => {
|
|
159
155
|
const fixture = await setup_test();
|
|
160
156
|
const token = await mint_narrowed_api_token({
|
|
161
157
|
app: fixture.transport,
|
|
@@ -173,7 +169,7 @@ export const describe_token_scope_surface_cross_tests = (options) => {
|
|
|
173
169
|
* scope denial satisfies the property, so the assertion is on what the
|
|
174
170
|
* response must *not* be.
|
|
175
171
|
*/
|
|
176
|
-
test_if(capabilities.
|
|
172
|
+
test_if(capabilities.fact_serving_admin_hash, 'a full token is not refused by the scope gate on the same route', async () => {
|
|
177
173
|
const fixture = await setup_test();
|
|
178
174
|
const res = await fixture.fresh_transport({ origin: null })(`/api/facts/${ABSENT_FACT_HASH}`, { headers: fixture.create_bearer_headers() });
|
|
179
175
|
const body = (await res.json().catch(() => undefined));
|
|
@@ -193,14 +189,14 @@ export const describe_token_scope_surface_cross_tests = (options) => {
|
|
|
193
189
|
session_headers: fixture.create_session_headers(),
|
|
194
190
|
methods: [ADMITTED_METHOD]
|
|
195
191
|
});
|
|
196
|
-
const anonymous = await fixture.fresh_transport({ origin: null })(
|
|
197
|
-
const narrowed = await fixture.fresh_transport({ origin: null })(
|
|
192
|
+
const anonymous = await fixture.fresh_transport({ origin: null })(SPINE_ACCOUNT_STATUS_PATH, {});
|
|
193
|
+
const narrowed = await fixture.fresh_transport({ origin: null })(SPINE_ACCOUNT_STATUS_PATH, {
|
|
198
194
|
headers: { authorization: `Bearer ${token}` }
|
|
199
195
|
});
|
|
200
196
|
assert.strictEqual(anonymous.status, 401, 'anonymous status must be 401');
|
|
201
197
|
assert.strictEqual(narrowed.status, 401, 'a narrowed token must read status as anonymous');
|
|
202
198
|
assert.strictEqual(await narrowed.text(), await anonymous.text(), 'the narrowed answer must be the anonymous one, byte for byte');
|
|
203
|
-
const full = await fixture.fresh_transport({ origin: null })(
|
|
199
|
+
const full = await fixture.fresh_transport({ origin: null })(SPINE_ACCOUNT_STATUS_PATH, {
|
|
204
200
|
headers: fixture.create_bearer_headers()
|
|
205
201
|
});
|
|
206
202
|
assert.strictEqual(full.status, 200, 'a full-scope bearer must read the account');
|
|
@@ -218,7 +214,7 @@ export const describe_token_scope_surface_cross_tests = (options) => {
|
|
|
218
214
|
* *holds* the role — so both orderings look identical there, which is
|
|
219
215
|
* exactly why this divergence survived as long as it did.
|
|
220
216
|
*/
|
|
221
|
-
test_if(capabilities.
|
|
217
|
+
test_if(capabilities.fact_serving_admin_hash, 'scope outranks role — a narrowed token lacking the role hears about its scope', async () => {
|
|
222
218
|
const fixture = await setup_test();
|
|
223
219
|
const non_admin = await fixture.create_account({ username: 'scope_before_role' });
|
|
224
220
|
const token = await mint_narrowed_api_token({
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import '../assert_dev_env.js';
|
|
2
2
|
import { type BackendCapabilities } from './capabilities.js';
|
|
3
|
-
import type { RpcPathCapabilityGatedCrossSuiteOptions } from './setup.js';
|
|
3
|
+
import type { RpcPathCapabilityGatedCrossSuiteOptions, SetupTest } from './setup.js';
|
|
4
4
|
/** A transport's front door, as the table's rows name it. */
|
|
5
5
|
export type TransportCompositionSurface = 'rest_post' | 'rest_password' | 'rpc_post' | 'rpc_get' | 'ws_upgrade' | 'sse';
|
|
6
6
|
/** What a probe sends, as the table's columns name it. */
|
|
7
|
-
export type TransportCompositionProbe = 'foreign_origin' | 'unreadable_origin' | 'duplicated_origin' | 'over_cap_foreign_origin' | 'no_credential' | 'narrowed_token';
|
|
7
|
+
export type TransportCompositionProbe = 'foreign_origin' | 'unreadable_origin' | 'duplicated_origin' | 'over_cap_foreign_origin' | 'no_credential' | 'narrowed_token' | 'multi_actor_no_acting';
|
|
8
8
|
/** The refusal a case expects. */
|
|
9
9
|
export interface TransportCompositionExpect {
|
|
10
10
|
readonly status: number;
|
|
@@ -25,6 +25,21 @@ export interface TransportCompositionCase {
|
|
|
25
25
|
}
|
|
26
26
|
/** The front-door table — one case per cell of the module doc's matrix. */
|
|
27
27
|
export declare const transport_composition_cases: ReadonlyArray<TransportCompositionCase>;
|
|
28
|
+
/**
|
|
29
|
+
* The rows that need a multi-actor keeper — run only given
|
|
30
|
+
* `TransportCompositionCrossTestOptions.multi_actor`, on its fixture.
|
|
31
|
+
*/
|
|
32
|
+
export declare const transport_composition_multi_actor_cases: ReadonlyArray<TransportCompositionCase>;
|
|
33
|
+
/** The multi-actor rows' fixture, and how a backend known to diverge runs them. */
|
|
34
|
+
export interface TransportCompositionMultiActorOptions {
|
|
35
|
+
/** Per-test fixture whose keeper is seeded with at least one `extra_actors` entry. */
|
|
36
|
+
readonly setup_test: SetupTest;
|
|
37
|
+
/** Run the multi-actor rows as `xfail_until` — for a backend known to admit them. */
|
|
38
|
+
readonly xfail?: {
|
|
39
|
+
readonly tracking_id: string;
|
|
40
|
+
readonly reason: string;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
28
43
|
/** Options for `describe_transport_composition_cross_tests`. */
|
|
29
44
|
export interface TransportCompositionCrossTestOptions extends RpcPathCapabilityGatedCrossSuiteOptions {
|
|
30
45
|
/**
|
|
@@ -47,6 +62,15 @@ export interface TransportCompositionCrossTestOptions extends RpcPathCapabilityG
|
|
|
47
62
|
readonly ws_path?: string;
|
|
48
63
|
/** Audit-log SSE path. Default `/api/admin/audit/stream`. */
|
|
49
64
|
readonly sse_path?: string;
|
|
65
|
+
/** Run the multi-actor rows (`transport_composition_multi_actor_cases`). */
|
|
66
|
+
readonly multi_actor?: TransportCompositionMultiActorOptions;
|
|
67
|
+
/**
|
|
68
|
+
* The backend's request-body cap on `rpc_path`, in bytes; the RPC row's
|
|
69
|
+
* over-cap probe declares a length one past it. Default
|
|
70
|
+
* `SPINE_BODY_LIMIT_DEFAULT_BYTES`. The REST rows probe past that default,
|
|
71
|
+
* the cap a backend keeps off its RPC path.
|
|
72
|
+
*/
|
|
73
|
+
readonly rpc_max_body_bytes?: number;
|
|
50
74
|
}
|
|
51
75
|
/**
|
|
52
76
|
* Register the front-door table's cases — one test per cell, each on a fresh
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport_composition.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/transport_composition.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"transport_composition.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/transport_composition.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAgG9B,OAAO,EAAW,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEtE,OAAO,KAAK,EAAE,uCAAuC,EAAE,SAAS,EAAe,MAAM,YAAY,CAAC;AAWlG,6DAA6D;AAC7D,MAAM,MAAM,2BAA2B,GACtC,WAAW,GAAG,eAAe,GAAG,UAAU,GAAG,SAAS,GAAG,YAAY,GAAG,KAAK,CAAC;AAE/E,0DAA0D;AAC1D,MAAM,MAAM,yBAAyB,GAClC,gBAAgB,GAChB,mBAAmB,GACnB,mBAAmB,GACnB,yBAAyB,GACzB,eAAe,GACf,gBAAgB,GAChB,uBAAuB,CAAC;AAE3B,kCAAkC;AAClC,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2FAA2F;IAC3F,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,8FAA8F;IAC9F,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wCAAwC;AACxC,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;IAC9C,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAC5C,gFAAgF;IAChF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,mBAAmB,CAAC;CAC1C;AAsCD,2EAA2E;AAC3E,eAAO,MAAM,2BAA2B,EAAE,aAAa,CAAC,wBAAwB,CA4C/E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uCAAuC,EAAE,aAAa,CAAC,wBAAwB,CAO3F,CAAC;AAEF,mFAAmF;AACnF,MAAM,WAAW,qCAAqC;IACrD,sFAAsF;IACtF,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAC/B,qFAAqF;IACrF,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3E;AAED,gEAAgE;AAChE,MAAM,WAAW,oCAAqC,SAAQ,uCAAuC;IACpG;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,yFAAyF;IACzF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,yFAAyF;IACzF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,kDAAkD;IAClD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,CAAC,EAAE,qCAAqC,CAAC;IAC7D;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACrC;AAqED;;;;;;;GAOG;AACH,eAAO,MAAM,0CAA0C,GACtD,SAAS,oCAAoC,KAC3C,IAiMF,CAAC"}
|