neotoma 0.18.3 → 0.18.4
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.d.ts +10 -0
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +86 -0
- package/dist/actions.js.map +1 -1
- package/dist/cli/bootstrap.js +0 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +22 -8
- package/dist/cli/index.js.map +1 -1
- package/dist/docs/developer/cli_reference.md +2 -1
- package/dist/docs/developer/fleet_onboarding.md +23 -0
- package/dist/docs/subsystems/conflict_resolution.md +72 -30
- package/dist/docs/testing/automated_test_catalog.md +12 -6
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +80 -0
- package/dist/server.js.map +1 -1
- package/dist/services/null_cleared_field_warning.d.ts +71 -0
- package/dist/services/null_cleared_field_warning.d.ts.map +1 -0
- package/dist/services/null_cleared_field_warning.js +77 -0
- package/dist/services/null_cleared_field_warning.js.map +1 -0
- package/dist/services/source_priority_warning.d.ts +57 -0
- package/dist/services/source_priority_warning.d.ts.map +1 -1
- package/dist/services/source_priority_warning.js +84 -0
- package/dist/services/source_priority_warning.js.map +1 -1
- package/dist/shared/action_schemas.d.ts +6 -0
- package/dist/shared/action_schemas.d.ts.map +1 -1
- package/dist/shared/action_schemas.js +6 -0
- package/dist/shared/action_schemas.js.map +1 -1
- package/package.json +2 -1
- package/dist/cli/activate.d.ts +0 -72
- package/dist/cli/activate.d.ts.map +0 -1
- package/dist/cli/activate.js +0 -160
- package/dist/cli/activate.js.map +0 -1
- package/dist/cli/auth_keygen.d.ts +0 -11
- package/dist/cli/auth_keygen.d.ts.map +0 -1
- package/dist/cli/auth_keygen.js +0 -110
- package/dist/cli/auth_keygen.js.map +0 -1
- package/dist/cli/packs.d.ts +0 -15
- package/dist/cli/packs.d.ts.map +0 -1
- package/dist/cli/packs.js +0 -156
- package/dist/cli/packs.js.map +0 -1
- package/dist/cli/triage.d.ts +0 -33
- package/dist/cli/triage.d.ts.map +0 -1
- package/dist/cli/triage.js +0 -251
- package/dist/cli/triage.js.map +0 -1
- package/dist/services/activation/stage_zero_five.d.ts +0 -62
- package/dist/services/activation/stage_zero_five.d.ts.map +0 -1
- package/dist/services/activation/stage_zero_five.js +0 -126
- package/dist/services/activation/stage_zero_five.js.map +0 -1
- package/dist/services/activation/user_preference.d.ts +0 -110
- package/dist/services/activation/user_preference.d.ts.map +0 -1
- package/dist/services/activation/user_preference.js +0 -98
- package/dist/services/activation/user_preference.js.map +0 -1
- package/dist/services/activation/vertical_detection.d.ts +0 -78
- package/dist/services/activation/vertical_detection.d.ts.map +0 -1
- package/dist/services/activation/vertical_detection.js +0 -219
- package/dist/services/activation/vertical_detection.js.map +0 -1
- package/dist/services/app_mount.d.ts +0 -166
- package/dist/services/app_mount.d.ts.map +0 -1
- package/dist/services/app_mount.js +0 -626
- package/dist/services/app_mount.js.map +0 -1
- package/dist/services/bundled_pages/html_shell.d.ts +0 -118
- package/dist/services/bundled_pages/html_shell.d.ts.map +0 -1
- package/dist/services/bundled_pages/html_shell.js +0 -242
- package/dist/services/bundled_pages/html_shell.js.map +0 -1
- package/dist/services/bundled_pages/tokens.d.ts +0 -496
- package/dist/services/bundled_pages/tokens.d.ts.map +0 -1
- package/dist/services/bundled_pages/tokens.js +0 -261
- package/dist/services/bundled_pages/tokens.js.map +0 -1
- package/dist/services/compliance/alerting.d.ts +0 -123
- package/dist/services/compliance/alerting.d.ts.map +0 -1
- package/dist/services/compliance/alerting.js +0 -169
- package/dist/services/compliance/alerting.js.map +0 -1
- package/dist/services/compliance/historical_backfill.d.ts +0 -74
- package/dist/services/compliance/historical_backfill.d.ts.map +0 -1
- package/dist/services/compliance/historical_backfill.js +0 -244
- package/dist/services/compliance/historical_backfill.js.map +0 -1
- package/dist/services/compliance/renderer.d.ts +0 -21
- package/dist/services/compliance/renderer.d.ts.map +0 -1
- package/dist/services/compliance/renderer.js +0 -208
- package/dist/services/compliance/renderer.js.map +0 -1
- package/dist/services/compliance/routes.d.ts +0 -55
- package/dist/services/compliance/routes.d.ts.map +0 -1
- package/dist/services/compliance/routes.js +0 -212
- package/dist/services/compliance/routes.js.map +0 -1
- package/dist/services/docs/site_page_frontmatter.d.ts +0 -58
- package/dist/services/docs/site_page_frontmatter.d.ts.map +0 -1
- package/dist/services/docs/site_page_frontmatter.js +0 -106
- package/dist/services/docs/site_page_frontmatter.js.map +0 -1
- package/dist/services/docs/site_page_index_builder.d.ts +0 -49
- package/dist/services/docs/site_page_index_builder.d.ts.map +0 -1
- package/dist/services/docs/site_page_index_builder.js +0 -152
- package/dist/services/docs/site_page_index_builder.js.map +0 -1
- package/dist/services/docs/site_pages_route.d.ts +0 -33
- package/dist/services/docs/site_pages_route.d.ts.map +0 -1
- package/dist/services/docs/site_pages_route.js +0 -124
- package/dist/services/docs/site_pages_route.js.map +0 -1
- package/dist/services/docs_bundle/frontmatter.d.ts +0 -26
- package/dist/services/docs_bundle/frontmatter.d.ts.map +0 -1
- package/dist/services/docs_bundle/frontmatter.js +0 -50
- package/dist/services/docs_bundle/frontmatter.js.map +0 -1
- package/dist/services/docs_bundle/loader.d.ts +0 -28
- package/dist/services/docs_bundle/loader.d.ts.map +0 -1
- package/dist/services/docs_bundle/loader.js +0 -91
- package/dist/services/docs_bundle/loader.js.map +0 -1
- package/dist/services/docs_bundle/render_html.d.ts +0 -15
- package/dist/services/docs_bundle/render_html.d.ts.map +0 -1
- package/dist/services/docs_bundle/render_html.js +0 -48
- package/dist/services/docs_bundle/render_html.js.map +0 -1
- package/dist/services/docs_bundle/types.d.ts +0 -73
- package/dist/services/docs_bundle/types.d.ts.map +0 -1
- package/dist/services/docs_bundle/types.js +0 -50
- package/dist/services/docs_bundle/types.js.map +0 -1
- package/dist/services/docs_install/loader.d.ts +0 -25
- package/dist/services/docs_install/loader.d.ts.map +0 -1
- package/dist/services/docs_install/loader.js +0 -63
- package/dist/services/docs_install/loader.js.map +0 -1
- package/dist/services/docs_install/renderer.d.ts +0 -40
- package/dist/services/docs_install/renderer.d.ts.map +0 -1
- package/dist/services/docs_install/renderer.js +0 -323
- package/dist/services/docs_install/renderer.js.map +0 -1
- package/dist/services/docs_install/routes.d.ts +0 -20
- package/dist/services/docs_install/routes.d.ts.map +0 -1
- package/dist/services/docs_install/routes.js +0 -117
- package/dist/services/docs_install/routes.js.map +0 -1
- package/dist/services/entity_submission/seed_product_feedback_schema.d.ts +0 -11
- package/dist/services/entity_submission/seed_product_feedback_schema.d.ts.map +0 -1
- package/dist/services/entity_submission/seed_product_feedback_schema.js +0 -45
- package/dist/services/entity_submission/seed_product_feedback_schema.js.map +0 -1
- package/dist/services/feedback/activation.d.ts +0 -20
- package/dist/services/feedback/activation.d.ts.map +0 -1
- package/dist/services/feedback/activation.js +0 -66
- package/dist/services/feedback/activation.js.map +0 -1
- package/dist/services/feedback/admin_proxy.d.ts +0 -73
- package/dist/services/feedback/admin_proxy.d.ts.map +0 -1
- package/dist/services/feedback/admin_proxy.js +0 -292
- package/dist/services/feedback/admin_proxy.js.map +0 -1
- package/dist/services/feedback/admin_session.d.ts +0 -36
- package/dist/services/feedback/admin_session.d.ts.map +0 -1
- package/dist/services/feedback/admin_session.js +0 -147
- package/dist/services/feedback/admin_session.js.map +0 -1
- package/dist/services/feedback/local_store.d.ts +0 -72
- package/dist/services/feedback/local_store.d.ts.map +0 -1
- package/dist/services/feedback/local_store.js +0 -95
- package/dist/services/feedback/local_store.js.map +0 -1
- package/dist/services/feedback/mirror_local_to_entity.d.ts +0 -42
- package/dist/services/feedback/mirror_local_to_entity.d.ts.map +0 -1
- package/dist/services/feedback/mirror_local_to_entity.js +0 -71
- package/dist/services/feedback/mirror_local_to_entity.js.map +0 -1
- package/dist/services/feedback/neotoma_payload.d.ts +0 -108
- package/dist/services/feedback/neotoma_payload.d.ts.map +0 -1
- package/dist/services/feedback/neotoma_payload.js +0 -169
- package/dist/services/feedback/neotoma_payload.js.map +0 -1
- package/dist/services/feedback/next_check.d.ts +0 -4
- package/dist/services/feedback/next_check.d.ts.map +0 -1
- package/dist/services/feedback/next_check.js +0 -22
- package/dist/services/feedback/next_check.js.map +0 -1
- package/dist/services/feedback/seed_schema.d.ts +0 -52
- package/dist/services/feedback/seed_schema.d.ts.map +0 -1
- package/dist/services/feedback/seed_schema.js +0 -160
- package/dist/services/feedback/seed_schema.js.map +0 -1
- package/dist/services/feedback/types.d.ts +0 -134
- package/dist/services/feedback/types.d.ts.map +0 -1
- package/dist/services/feedback/types.js +0 -23
- package/dist/services/feedback/types.js.map +0 -1
- package/dist/services/feedback/upgrade_guidance_map.d.ts +0 -24
- package/dist/services/feedback/upgrade_guidance_map.d.ts.map +0 -1
- package/dist/services/feedback/upgrade_guidance_map.js +0 -39
- package/dist/services/feedback/upgrade_guidance_map.js.map +0 -1
- package/dist/services/feedback/verification_request.d.ts +0 -14
- package/dist/services/feedback/verification_request.d.ts.map +0 -1
- package/dist/services/feedback/verification_request.js +0 -33
- package/dist/services/feedback/verification_request.js.map +0 -1
- package/dist/services/feedback_transport.d.ts +0 -15
- package/dist/services/feedback_transport.d.ts.map +0 -1
- package/dist/services/feedback_transport.js +0 -31
- package/dist/services/feedback_transport.js.map +0 -1
- package/dist/services/feedback_transport_http.d.ts +0 -14
- package/dist/services/feedback_transport_http.d.ts.map +0 -1
- package/dist/services/feedback_transport_http.js +0 -40
- package/dist/services/feedback_transport_http.js.map +0 -1
- package/dist/services/feedback_transport_local.d.ts +0 -20
- package/dist/services/feedback_transport_local.d.ts.map +0 -1
- package/dist/services/feedback_transport_local.js +0 -152
- package/dist/services/feedback_transport_local.js.map +0 -1
- package/dist/services/issues/syncIssuesFromGitHub.d.ts +0 -35
- package/dist/services/issues/syncIssuesFromGitHub.d.ts.map +0 -1
- package/dist/services/issues/syncIssuesFromGitHub.js +0 -193
- package/dist/services/issues/syncIssuesFromGitHub.js.map +0 -1
- package/dist/services/oauth_pages/render.d.ts +0 -25
- package/dist/services/oauth_pages/render.d.ts.map +0 -1
- package/dist/services/oauth_pages/render.js +0 -235
- package/dist/services/oauth_pages/render.js.map +0 -1
- package/dist/services/root_landing/auth_overview.d.ts +0 -60
- package/dist/services/root_landing/auth_overview.d.ts.map +0 -1
- package/dist/services/root_landing/auth_overview.js +0 -86
- package/dist/services/root_landing/auth_overview.js.map +0 -1
- package/dist/services/root_landing/cli_overview.d.ts +0 -34
- package/dist/services/root_landing/cli_overview.d.ts.map +0 -1
- package/dist/services/root_landing/cli_overview.js +0 -123
- package/dist/services/root_landing/cli_overview.js.map +0 -1
- package/dist/services/root_landing/http_api_overview.d.ts +0 -34
- package/dist/services/root_landing/http_api_overview.d.ts.map +0 -1
- package/dist/services/root_landing/http_api_overview.js +0 -110
- package/dist/services/root_landing/http_api_overview.js.map +0 -1
- package/dist/services/root_landing/mcp_overview.d.ts +0 -34
- package/dist/services/root_landing/mcp_overview.d.ts.map +0 -1
- package/dist/services/root_landing/mcp_overview.js +0 -133
- package/dist/services/root_landing/mcp_overview.js.map +0 -1
- package/dist/services/sandbox/inspector_redirect.d.ts +0 -41
- package/dist/services/sandbox/inspector_redirect.d.ts.map +0 -1
- package/dist/services/sandbox/inspector_redirect.js +0 -59
- package/dist/services/sandbox/inspector_redirect.js.map +0 -1
- package/dist/services/timeline_user_query.d.ts +0 -22
- package/dist/services/timeline_user_query.d.ts.map +0 -1
- package/dist/services/timeline_user_query.js +0 -60
- package/dist/services/timeline_user_query.js.map +0 -1
- package/dist/services/usage_stats.d.ts +0 -18
- package/dist/services/usage_stats.d.ts.map +0 -1
- package/dist/services/usage_stats.js +0 -82
- package/dist/services/usage_stats.js.map +0 -1
- package/dist/services/verticals/baseline_metadata.d.ts +0 -39
- package/dist/services/verticals/baseline_metadata.d.ts.map +0 -1
- package/dist/services/verticals/baseline_metadata.js +0 -394
- package/dist/services/verticals/baseline_metadata.js.map +0 -1
- package/dist/services/verticals/entity_type_registry.d.ts +0 -29
- package/dist/services/verticals/entity_type_registry.d.ts.map +0 -1
- package/dist/services/verticals/entity_type_registry.js +0 -169
- package/dist/services/verticals/entity_type_registry.js.map +0 -1
- package/dist/services/verticals/install.d.ts +0 -64
- package/dist/services/verticals/install.d.ts.map +0 -1
- package/dist/services/verticals/install.js +0 -262
- package/dist/services/verticals/install.js.map +0 -1
- package/dist/services/verticals/registry.d.ts +0 -131
- package/dist/services/verticals/registry.d.ts.map +0 -1
- package/dist/services/verticals/registry.js +0 -457
- package/dist/services/verticals/registry.js.map +0 -1
- package/dist/shared/generated_design_tokens.d.ts +0 -2
- package/dist/shared/generated_design_tokens.d.ts.map +0 -1
- package/dist/shared/generated_design_tokens.js +0 -3
- package/dist/shared/generated_design_tokens.js.map +0 -1
package/dist/actions.d.ts
CHANGED
|
@@ -97,6 +97,16 @@ type GuestPrincipal = {
|
|
|
97
97
|
type RoutePrincipal = UserPrincipal | GuestPrincipal;
|
|
98
98
|
/** Exported for unit tests: routes where guest (AAuth / guest token) may be stamped before handlers run. */
|
|
99
99
|
export declare function routeAcceptsGuestPrincipal(req: Pick<express.Request, "method" | "path">): boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Exported for unit tests: the two issue-write routes that extend local-loopback
|
|
102
|
+
* trust to unauthenticated requests. A local request to `/issues/submit` or
|
|
103
|
+
* `/issues/add_message` with no `Authorization: Bearer` header falls through to
|
|
104
|
+
* the local dev user — the same offline-developer trust the entity-read routes
|
|
105
|
+
* already grant (see `resolveGuestUserId`). This is the ONLY place that trust is
|
|
106
|
+
* widened; every other route still requires a Bearer token, and remote requests
|
|
107
|
+
* (non-loopback / untrusted XFF) get AUTH_REQUIRED on these routes too.
|
|
108
|
+
*/
|
|
109
|
+
export declare function routeAllowsLocalIssueWriteFallback(req: Pick<express.Request, "method" | "path">): boolean;
|
|
100
110
|
/** Exported for unit tests: guest-capable routes that mutate state and should consume a guest write-rate budget. */
|
|
101
111
|
export declare function routeConsumesGuestWriteBudget(req: Pick<express.Request, "method" | "path">): boolean;
|
|
102
112
|
/** Exported for unit tests: guest-rate-limit key precedence is thumbprint -> guest token -> IP. */
|
package/dist/actions.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAsC9B,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,6BAA6B,CAAC;AAarC,OAAO,EAGL,KAAK,aAAa,EAGnB,MAAM,4BAA4B,CAAC;AA4BpC,OAAO,EAQL,KAAK,sBAAsB,EAC5B,MAAM,4BAA4B,CAAC;AA6CpC,OAAO,EAiCL,KAAK,wBAAwB,EAE9B,MAAM,4BAA4B,CAAC;AA8CpC,6FAA6F;AAC7F,wBAAgB,qBAAqB,IAAI,sBAAsB,GAAG,IAAI,CAErE;AAED,eAAO,MAAM,GAAG,6CAAY,CAAC;AA4rB7B,kFAAkF;AAClF,eAAO,MAAM,4BAA4B,QAAS,CAAC;AAEnD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAMtE;AAoBD,uFAAuF;AACvF,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAE9C;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAMlE;AAID;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,CAAC,OAAO,EACpB,GAAG,EAAE,OAAO,CAAC,QAAQ,EACrB,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAA;CAAE,GAC7F,IAAI,CA4IN;AAuBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CA+B1F;AAmCD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CA2B5D;AA4PD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CA2BhD;AA47CD,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,aAAa,CAAC;IACvB,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,cAAc,GAAG,aAAa,GAAG,cAAc,CAAC;AA2CrD,4GAA4G;AAC5G,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC,GAAG,OAAO,CAqBjG;AAED,oHAAoH;AACpH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC,GAC5C,OAAO,CAWT;AAED,mGAAmG;AACnG,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,GAAG,MAAM,CAanE;
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
|
package/dist/actions.js
CHANGED
|
@@ -2611,6 +2611,23 @@ export function routeAcceptsGuestPrincipal(req) {
|
|
|
2611
2611
|
}
|
|
2612
2612
|
return false;
|
|
2613
2613
|
}
|
|
2614
|
+
/**
|
|
2615
|
+
* Exported for unit tests: the two issue-write routes that extend local-loopback
|
|
2616
|
+
* trust to unauthenticated requests. A local request to `/issues/submit` or
|
|
2617
|
+
* `/issues/add_message` with no `Authorization: Bearer` header falls through to
|
|
2618
|
+
* the local dev user — the same offline-developer trust the entity-read routes
|
|
2619
|
+
* already grant (see `resolveGuestUserId`). This is the ONLY place that trust is
|
|
2620
|
+
* widened; every other route still requires a Bearer token, and remote requests
|
|
2621
|
+
* (non-loopback / untrusted XFF) get AUTH_REQUIRED on these routes too.
|
|
2622
|
+
*/
|
|
2623
|
+
export function routeAllowsLocalIssueWriteFallback(req) {
|
|
2624
|
+
const path = req.path;
|
|
2625
|
+
return (req.method === "POST" &&
|
|
2626
|
+
(path === "/issues/submit" ||
|
|
2627
|
+
path === "/api/issues/submit" ||
|
|
2628
|
+
path === "/issues/add_message" ||
|
|
2629
|
+
path === "/api/issues/add_message"));
|
|
2630
|
+
}
|
|
2614
2631
|
/** Exported for unit tests: guest-capable routes that mutate state and should consume a guest write-rate budget. */
|
|
2615
2632
|
export function routeConsumesGuestWriteBudget(req) {
|
|
2616
2633
|
const path = req.path;
|
|
@@ -2704,6 +2721,24 @@ async function resolveRoutePrincipal(req, accept) {
|
|
|
2704
2721
|
}
|
|
2705
2722
|
}
|
|
2706
2723
|
if (accept.includes("user")) {
|
|
2724
|
+
// Local-loopback trust for the two issue-write routes: a local request with
|
|
2725
|
+
// no Bearer token resolves to the local dev user instead of failing
|
|
2726
|
+
// AUTH_REQUIRED. This mirrors the existing local fallback in
|
|
2727
|
+
// `resolveGuestUserId` and keeps `neotoma issues create` working offline
|
|
2728
|
+
// (gh-CLI auth alone does not configure a Neotoma Bearer token). Scoped as
|
|
2729
|
+
// narrowly as possible: ONLY these routes, ONLY local requests, ONLY when
|
|
2730
|
+
// no Bearer header is present — remote/Bearer requests fall through to the
|
|
2731
|
+
// normal `getAuthenticatedUserId` gate below.
|
|
2732
|
+
const headerAuth = (req.headers.authorization || req.headers.Authorization || "");
|
|
2733
|
+
if (routeAllowsLocalIssueWriteFallback(req) &&
|
|
2734
|
+
isLocalRequest(req) &&
|
|
2735
|
+
!headerAuth.startsWith("Bearer ")) {
|
|
2736
|
+
const userId = _localSandboxActive ? ensureLocalSandboxUser().id : ensureLocalDevUser().id;
|
|
2737
|
+
// Stamp the principal so a later `getAuthenticatedUserId` in the handler
|
|
2738
|
+
// resolves the same local user without re-tripping the missing-Bearer gate.
|
|
2739
|
+
stampUserPrincipal(req, userId);
|
|
2740
|
+
return { kind: "user", userId };
|
|
2741
|
+
}
|
|
2707
2742
|
const userId = await getAuthenticatedUserId(req, (req.body?.user_id ??
|
|
2708
2743
|
req.query.user_id));
|
|
2709
2744
|
return { kind: "user", userId };
|
|
@@ -5704,6 +5739,12 @@ export async function storeStructuredForApi(params) {
|
|
|
5704
5739
|
}
|
|
5705
5740
|
}
|
|
5706
5741
|
const createdEntities = [];
|
|
5742
|
+
// Issue #1839: capture each entity's prior and post-reduction snapshot so the
|
|
5743
|
+
// store_warnings loop below can detect a NULL_CLEARED_FIELD event (an incoming
|
|
5744
|
+
// null clearing a prior non-null value under highest_priority). Keyed by
|
|
5745
|
+
// entity_id.
|
|
5746
|
+
const priorSnapshotByEntityId = new Map();
|
|
5747
|
+
const newSnapshotByEntityId = new Map();
|
|
5707
5748
|
for (const r of resolved) {
|
|
5708
5749
|
let observation_id = null;
|
|
5709
5750
|
let snapshotAfter = null;
|
|
@@ -5715,6 +5756,7 @@ export async function storeStructuredForApi(params) {
|
|
|
5715
5756
|
.eq("user_id", userId)
|
|
5716
5757
|
.maybeSingle();
|
|
5717
5758
|
const priorSnapshot = priorSnapRow?.snapshot ?? {};
|
|
5759
|
+
priorSnapshotByEntityId.set(r.entity_id, priorSnapshot);
|
|
5718
5760
|
const obsData = await createObservation({
|
|
5719
5761
|
entity_id: r.entity_id,
|
|
5720
5762
|
entity_type: r.entity_type,
|
|
@@ -5737,6 +5779,8 @@ export async function storeStructuredForApi(params) {
|
|
|
5737
5779
|
const snap = await recomputeSnapshot(r.entity_id, userId);
|
|
5738
5780
|
snapshotAfter =
|
|
5739
5781
|
snap?.snapshot ?? null;
|
|
5782
|
+
if (snapshotAfter)
|
|
5783
|
+
newSnapshotByEntityId.set(r.entity_id, snapshotAfter);
|
|
5740
5784
|
}
|
|
5741
5785
|
catch (snapshotErr) {
|
|
5742
5786
|
logger.warn(`Snapshot recompute failed for ${r.entity_id}: ${snapshotErr}`);
|
|
@@ -6076,6 +6120,48 @@ export async function storeStructuredForApi(params) {
|
|
|
6076
6120
|
});
|
|
6077
6121
|
if (spWarn)
|
|
6078
6122
|
schemaStoreWarnings.push(spWarn);
|
|
6123
|
+
// Issue #1838: SOURCE_PRIORITY_ESCALATION — mirror-image advisory. A
|
|
6124
|
+
// write at the DEFAULT source_priority (100) into a `highest_priority`
|
|
6125
|
+
// field silently OUTRANKS any prior observation written with an
|
|
6126
|
+
// explicit lower priority. Non-blocking; reuses the same import.
|
|
6127
|
+
const { buildSourcePriorityEscalationWarning } = await import("./services/source_priority_warning.js");
|
|
6128
|
+
const spEsc = buildSourcePriorityEscalationWarning({
|
|
6129
|
+
sourcePriority,
|
|
6130
|
+
writtenFields: r.fields,
|
|
6131
|
+
mergePolicies: schemaEntry?.reducer_config?.merge_policies,
|
|
6132
|
+
observationIndex: r.observation_index,
|
|
6133
|
+
entityType: r.entity_type,
|
|
6134
|
+
entityId: r.entity_id,
|
|
6135
|
+
});
|
|
6136
|
+
if (spEsc)
|
|
6137
|
+
schemaStoreWarnings.push(spEsc);
|
|
6138
|
+
}
|
|
6139
|
+
// Issue #1839: NULL_CLEARED_FIELD — non-blocking advisory warning when an
|
|
6140
|
+
// incoming null clears a prior non-null value under a `highest_priority`
|
|
6141
|
+
// field. The clear is by design (null is an explicit tombstone), but it
|
|
6142
|
+
// is silent today; this surfaces the data-loss vector. Warn-only: no
|
|
6143
|
+
// change to snapshot computation or clearing semantics.
|
|
6144
|
+
{
|
|
6145
|
+
const mergePolicies = schemaEntry?.reducer_config?.merge_policies;
|
|
6146
|
+
if (mergePolicies) {
|
|
6147
|
+
const priorSnapshot = priorSnapshotByEntityId.get(r.entity_id) ?? {};
|
|
6148
|
+
const newSnapshot = newSnapshotByEntityId.get(r.entity_id) ?? {};
|
|
6149
|
+
const { buildNullClearedFieldWarning } = await import("./services/null_cleared_field_warning.js");
|
|
6150
|
+
for (const field of Object.keys(r.fields)) {
|
|
6151
|
+
const nullWarn = buildNullClearedFieldWarning({
|
|
6152
|
+
field,
|
|
6153
|
+
strategy: mergePolicies[field]?.strategy,
|
|
6154
|
+
prior_value: priorSnapshot[field],
|
|
6155
|
+
incoming_value: r.fields[field],
|
|
6156
|
+
new_value: newSnapshot[field],
|
|
6157
|
+
observation_index: r.observation_index,
|
|
6158
|
+
entity_type: r.entity_type,
|
|
6159
|
+
entity_id: r.entity_id,
|
|
6160
|
+
});
|
|
6161
|
+
if (nullWarn)
|
|
6162
|
+
schemaStoreWarnings.push(nullWarn);
|
|
6163
|
+
}
|
|
6164
|
+
}
|
|
6079
6165
|
}
|
|
6080
6166
|
}
|
|
6081
6167
|
}
|