@astrasyncai/verification-gateway 2.3.7 → 2.3.8

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.
Files changed (79) hide show
  1. package/dist/adapter-interface/interface.d.mts +2 -2
  2. package/dist/adapter-interface/interface.d.ts +2 -2
  3. package/dist/adapters/express.d.mts +2 -2
  4. package/dist/adapters/express.d.ts +2 -2
  5. package/dist/adapters/express.js +42 -1
  6. package/dist/adapters/express.js.map +1 -1
  7. package/dist/adapters/express.mjs +42 -1
  8. package/dist/adapters/express.mjs.map +1 -1
  9. package/dist/adapters/mcp.d.mts +1 -1
  10. package/dist/adapters/mcp.d.ts +1 -1
  11. package/dist/adapters/mcp.js +31 -1
  12. package/dist/adapters/mcp.js.map +1 -1
  13. package/dist/adapters/mcp.mjs +31 -1
  14. package/dist/adapters/mcp.mjs.map +1 -1
  15. package/dist/adapters/nextjs.d.mts +2 -2
  16. package/dist/adapters/nextjs.d.ts +2 -2
  17. package/dist/adapters/nextjs.js +19 -1
  18. package/dist/adapters/nextjs.js.map +1 -1
  19. package/dist/adapters/nextjs.mjs +19 -1
  20. package/dist/adapters/nextjs.mjs.map +1 -1
  21. package/dist/adapters/sdk.d.mts +2 -2
  22. package/dist/adapters/sdk.d.ts +2 -2
  23. package/dist/adapters/sdk.js +19 -1
  24. package/dist/adapters/sdk.js.map +1 -1
  25. package/dist/adapters/sdk.mjs +19 -1
  26. package/dist/adapters/sdk.mjs.map +1 -1
  27. package/dist/agent/index.d.mts +2 -2
  28. package/dist/agent/index.d.ts +2 -2
  29. package/dist/browser/background.js +19 -1
  30. package/dist/browser/background.js.map +1 -1
  31. package/dist/browser/background.mjs +19 -1
  32. package/dist/browser/background.mjs.map +1 -1
  33. package/dist/browser/browser-adapter.d.mts +2 -2
  34. package/dist/browser/browser-adapter.d.ts +2 -2
  35. package/dist/cli/index.d.mts +2 -2
  36. package/dist/cli/index.d.ts +2 -2
  37. package/dist/cursor/cursor-adapter.d.mts +2 -2
  38. package/dist/cursor/cursor-adapter.d.ts +2 -2
  39. package/dist/cursor/extension.d.mts +2 -2
  40. package/dist/cursor/extension.d.ts +2 -2
  41. package/dist/cursor/extension.js +19 -1
  42. package/dist/cursor/extension.js.map +1 -1
  43. package/dist/cursor/extension.mjs +19 -1
  44. package/dist/cursor/extension.mjs.map +1 -1
  45. package/dist/{express-D9oRsseg.d.mts → express-BNWqDVIz.d.mts} +1 -1
  46. package/dist/{express-DMSIl20m.d.ts → express-BYup_4Jg.d.ts} +1 -1
  47. package/dist/gateway/gateway.d.mts +2 -2
  48. package/dist/gateway/gateway.d.ts +2 -2
  49. package/dist/gateway/gateway.js +19 -1
  50. package/dist/gateway/gateway.js.map +1 -1
  51. package/dist/gateway/gateway.mjs +19 -1
  52. package/dist/gateway/gateway.mjs.map +1 -1
  53. package/dist/git-trigger/git-hooks.d.mts +2 -2
  54. package/dist/git-trigger/git-hooks.d.ts +2 -2
  55. package/dist/{index-YNPs800Z.d.mts → index-BHXa2WTO.d.mts} +1 -1
  56. package/dist/{index-Bn_7eGjb.d.mts → index-CK4lNLVn.d.mts} +1 -1
  57. package/dist/{index-BtU9yFda.d.ts → index-CSMpOcxV.d.ts} +1 -1
  58. package/dist/{index-EwUWXC5T.d.ts → index-DN3ztP2d.d.ts} +1 -1
  59. package/dist/index.d.mts +7 -7
  60. package/dist/index.d.ts +7 -7
  61. package/dist/index.js +42 -1
  62. package/dist/index.js.map +1 -1
  63. package/dist/index.mjs +42 -1
  64. package/dist/index.mjs.map +1 -1
  65. package/dist/local-evaluator/evaluator.d.mts +2 -2
  66. package/dist/local-evaluator/evaluator.d.ts +2 -2
  67. package/dist/{nextjs-BLtjRbc-.d.mts → nextjs-Bzdfu8Eg.d.mts} +1 -1
  68. package/dist/{nextjs-B5ZBpHra.d.ts → nextjs-C4h_MpgK.d.ts} +1 -1
  69. package/dist/{sdk-BhkxvqnK.d.mts → sdk-CDdD7EcJ.d.mts} +1 -1
  70. package/dist/{sdk-YmE3RG8n.d.ts → sdk-Tzsn6s-O.d.ts} +1 -1
  71. package/dist/transport/index.d.mts +2 -2
  72. package/dist/transport/index.d.ts +2 -2
  73. package/dist/{types-BecRpozv.d.ts → types-Bzp1SMaD.d.ts} +1 -1
  74. package/dist/{types-Bxqj1sKY.d.mts → types-D_tmbDA_.d.mts} +27 -1
  75. package/dist/{types-Bxqj1sKY.d.ts → types-D_tmbDA_.d.ts} +27 -1
  76. package/dist/{types-DxY5zt4z.d.mts → types-z-QVnG4b.d.mts} +1 -1
  77. package/dist/ui/index.d.mts +1 -1
  78. package/dist/ui/index.d.ts +1 -1
  79. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -284,6 +284,23 @@ async function callVerifyAccessAPI(config, request) {
284
284
  body: JSON.stringify(body)
285
285
  });
286
286
  const data = await response.json();
287
+ if (response.status === 410) {
288
+ return {
289
+ success: true,
290
+ access: {
291
+ allowed: false,
292
+ accessLevel: "none",
293
+ reason: "endpoint_deactivated",
294
+ failures: [
295
+ {
296
+ dimension: "endpoint.deactivated",
297
+ message: typeof data?.message === "string" ? data.message : "Endpoint has been deactivated",
298
+ guidance: typeof data?.guidance === "string" ? data.guidance : "Reactivate via POST /api/endpoints/{id}/reactivate, or update the URL on the calling agent."
299
+ }
300
+ ]
301
+ }
302
+ };
303
+ }
287
304
  if (!response.ok) {
288
305
  return {
289
306
  success: false,
@@ -393,7 +410,8 @@ async function verify(config, request) {
393
410
  runtimeChallenge: apiResponse.runtimeChallenge,
394
411
  tokenGuidance: apiResponse.tokenGuidance,
395
412
  recommendation: apiResponse.recommendation,
396
- recommendationReasons: apiResponse.recommendationReasons
413
+ recommendationReasons: apiResponse.recommendationReasons,
414
+ warningHeader: apiResponse.warningHeader
397
415
  };
398
416
  if (result.recommendation === "deny") {
399
417
  result.verified = false;
@@ -666,6 +684,7 @@ function createMiddleware(options) {
666
684
  let lastFetchAt = 0;
667
685
  let refreshing = null;
668
686
  let warnedNoCounterparty = false;
687
+ let warnedEmptyRoutes = false;
669
688
  async function refreshRoutes() {
670
689
  if (!config.counterpartyId) {
671
690
  if (!warnedNoCounterparty) {
@@ -680,6 +699,13 @@ function createMiddleware(options) {
680
699
  if (fetched) {
681
700
  cachedRoutes = fetched;
682
701
  lastFetchAt = Date.now();
702
+ if (cachedRoutes.length === 0 && !warnedEmptyRoutes) {
703
+ const dashboard = config.dashboardUrl ?? "https://app.astrasync.ai";
704
+ console.warn(
705
+ `[VerificationGateway] No route policy configured for ${config.counterpartyId}. Gateway is in pass-through mode for ALL traffic until you add at least one route. Configure at ${dashboard}/dashboard/endpoints/${config.counterpartyId}/routes`
706
+ );
707
+ warnedEmptyRoutes = true;
708
+ }
683
709
  }
684
710
  }
685
711
  refreshing = refreshRoutes().finally(() => {
@@ -702,9 +728,20 @@ function createMiddleware(options) {
702
728
  }
703
729
  const routeConfig = findRouteConfig(cachedRoutes, req.path, req.method);
704
730
  if (!routeConfig) {
731
+ if (config.setPassThroughHeader) {
732
+ res.setHeader("X-Astra-Gateway-Mode", "pass-through");
733
+ res.setHeader(
734
+ "X-Astra-Gateway-Reason",
735
+ cachedRoutes.length === 0 ? "no-policy" : "no-match"
736
+ );
737
+ }
705
738
  return next();
706
739
  }
707
740
  if (routeConfig.minAccessLevel === "none") {
741
+ if (config.setPassThroughHeader) {
742
+ res.setHeader("X-Astra-Gateway-Mode", "pass-through");
743
+ res.setHeader("X-Astra-Gateway-Reason", "route-none");
744
+ }
708
745
  return next();
709
746
  }
710
747
  const credentials = customExtractCredentials ? customExtractCredentials(req) : defaultExtractCredentials(req);
@@ -788,6 +825,10 @@ function createMiddleware(options) {
788
825
  recordDecision(config, sessionId, "granted").catch(() => {
789
826
  });
790
827
  }
828
+ const enhancedResult = result;
829
+ if (enhancedResult.warningHeader) {
830
+ res.setHeader(enhancedResult.warningHeader.name, enhancedResult.warningHeader.value);
831
+ }
791
832
  next();
792
833
  } catch (error) {
793
834
  console.error("[VerificationGateway] Middleware error:", error);