@astrasyncai/verification-gateway 3.5.0 → 3.6.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/README.md +16 -0
- package/dist/adapter-interface/interface.d.mts +2 -2
- package/dist/adapter-interface/interface.d.ts +2 -2
- package/dist/adapters/express.d.mts +2 -2
- package/dist/adapters/express.d.ts +2 -2
- package/dist/adapters/express.js +96 -20
- package/dist/adapters/express.js.map +1 -1
- package/dist/adapters/express.mjs +96 -20
- package/dist/adapters/express.mjs.map +1 -1
- package/dist/adapters/mcp.d.mts +1 -1
- package/dist/adapters/mcp.d.ts +1 -1
- package/dist/adapters/mcp.js +96 -20
- package/dist/adapters/mcp.js.map +1 -1
- package/dist/adapters/mcp.mjs +96 -20
- package/dist/adapters/mcp.mjs.map +1 -1
- package/dist/adapters/nextjs.d.mts +2 -2
- package/dist/adapters/nextjs.d.ts +2 -2
- package/dist/adapters/nextjs.js +101 -20
- package/dist/adapters/nextjs.js.map +1 -1
- package/dist/adapters/nextjs.mjs +101 -20
- package/dist/adapters/nextjs.mjs.map +1 -1
- package/dist/adapters/sdk.d.mts +2 -2
- package/dist/adapters/sdk.d.ts +2 -2
- package/dist/adapters/sdk.js +19 -16
- package/dist/adapters/sdk.js.map +1 -1
- package/dist/adapters/sdk.mjs +19 -16
- package/dist/adapters/sdk.mjs.map +1 -1
- package/dist/agent/index.d.mts +2 -2
- package/dist/agent/index.d.ts +2 -2
- package/dist/browser/background.js +22 -16
- package/dist/browser/background.js.map +1 -1
- package/dist/browser/background.mjs +22 -16
- package/dist/browser/background.mjs.map +1 -1
- package/dist/browser/browser-adapter.d.mts +2 -2
- package/dist/browser/browser-adapter.d.ts +2 -2
- package/dist/cli/index.d.mts +2 -2
- package/dist/cli/index.d.ts +2 -2
- package/dist/cursor/cursor-adapter.d.mts +2 -2
- package/dist/cursor/cursor-adapter.d.ts +2 -2
- package/dist/cursor/extension.d.mts +2 -2
- package/dist/cursor/extension.d.ts +2 -2
- package/dist/cursor/extension.js +22 -16
- package/dist/cursor/extension.js.map +1 -1
- package/dist/cursor/extension.mjs +22 -16
- package/dist/cursor/extension.mjs.map +1 -1
- package/dist/{express-BH5ADAyb.d.mts → express-BnMO-H3y.d.mts} +1 -1
- package/dist/{express-jUzLIoep.d.ts → express-DQhDzNAt.d.ts} +1 -1
- package/dist/gateway/gateway.d.mts +2 -2
- package/dist/gateway/gateway.d.ts +2 -2
- package/dist/gateway/gateway.js +22 -16
- package/dist/gateway/gateway.js.map +1 -1
- package/dist/gateway/gateway.mjs +22 -16
- package/dist/gateway/gateway.mjs.map +1 -1
- package/dist/git-trigger/git-hooks.d.mts +2 -2
- package/dist/git-trigger/git-hooks.d.ts +2 -2
- package/dist/{index-aZHAWujT.d.mts → index-BT_aRn-I.d.mts} +1 -1
- package/dist/{index-DlCnmpJH.d.ts → index-D8-dvUFA.d.ts} +1 -1
- package/dist/{index-BR2nmxBU.d.mts → index-WHKq2v17.d.mts} +1 -1
- package/dist/{index-DEixUCu0.d.ts → index-rftma0ln.d.ts} +1 -1
- package/dist/index.d.mts +55 -9
- package/dist/index.d.ts +55 -9
- package/dist/index.js +145 -30
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +143 -30
- package/dist/index.mjs.map +1 -1
- package/dist/local-evaluator/evaluator.d.mts +2 -2
- package/dist/local-evaluator/evaluator.d.ts +2 -2
- package/dist/{nextjs-LTeoPqMH.d.mts → nextjs-DFKYhxe6.d.mts} +1 -1
- package/dist/{nextjs-DfXOd0Au.d.ts → nextjs-DPj7ZNlq.d.ts} +1 -1
- package/dist/{sdk-LmvyDVpL.d.ts → sdk-CAcHgB5x.d.ts} +1 -1
- package/dist/{sdk-DKhwVL9X.d.mts → sdk-Cy3wAmDt.d.mts} +1 -1
- package/dist/transport/index.d.mts +2 -2
- package/dist/transport/index.d.ts +2 -2
- package/dist/{types-C8HyQEaz.d.mts → types-B-ubjHER.d.mts} +1 -1
- package/dist/{types-xofemo0G.d.ts → types-Bgn5gxHQ.d.ts} +1 -1
- package/dist/{types-DrDIouvO.d.mts → types-CKe8O0lR.d.mts} +41 -1
- package/dist/{types-DrDIouvO.d.ts → types-CKe8O0lR.d.ts} +41 -1
- package/dist/ui/index.d.mts +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -3746,7 +3746,7 @@ function getTrustLevel(score) {
|
|
|
3746
3746
|
}
|
|
3747
3747
|
|
|
3748
3748
|
// src/version.ts
|
|
3749
|
-
var SDK_VERSION = "3.
|
|
3749
|
+
var SDK_VERSION = "3.6.0";
|
|
3750
3750
|
|
|
3751
3751
|
// src/well-known.ts
|
|
3752
3752
|
var CACHE_TTL_MS = 60 * 60 * 1e3;
|
|
@@ -3764,10 +3764,10 @@ var DEFAULT_CONFIG = {
|
|
|
3764
3764
|
// through (`hasMinimumAccess('guidance', 'guidance') === true`).
|
|
3765
3765
|
defaultAccessLevel: "none",
|
|
3766
3766
|
// minTrustScore + minTrustScoreForFull deprecated in v2.3.0 — server decides.
|
|
3767
|
-
//
|
|
3768
|
-
//
|
|
3769
|
-
//
|
|
3770
|
-
// Set cacheTtl: 0 to disable caching entirely.
|
|
3767
|
+
// cacheTtl deliberately unset. When undefined, cacheResult applies the 60s
|
|
3768
|
+
// default; the caller's explicit value is honoured for cacheable results.
|
|
3769
|
+
// Denials and step-up escalations are NEVER cached (3.6.0) regardless of
|
|
3770
|
+
// cacheTtl. Set cacheTtl: 0 to disable caching entirely.
|
|
3771
3771
|
debug: false
|
|
3772
3772
|
};
|
|
3773
3773
|
var initCheckPerformed = false;
|
|
@@ -3854,10 +3854,9 @@ function getCachedResult(request, counterpartyId) {
|
|
|
3854
3854
|
}
|
|
3855
3855
|
return null;
|
|
3856
3856
|
}
|
|
3857
|
-
var
|
|
3858
|
-
var DEFAULT_STEP_UP_TTL_SECONDS = 300;
|
|
3857
|
+
var DEFAULT_CACHE_TTL_SECONDS = 60;
|
|
3859
3858
|
function cacheResult(request, result, configuredTtl, counterpartyId) {
|
|
3860
|
-
const ttlSeconds = configuredTtl && configuredTtl > 0 ? configuredTtl :
|
|
3859
|
+
const ttlSeconds = configuredTtl && configuredTtl > 0 ? configuredTtl : DEFAULT_CACHE_TTL_SECONDS;
|
|
3861
3860
|
const key = getCacheKey(request, counterpartyId);
|
|
3862
3861
|
verificationCache.set(key, {
|
|
3863
3862
|
result,
|
|
@@ -3999,7 +3998,7 @@ async function callVerifyAccessAPI(config, request) {
|
|
|
3999
3998
|
};
|
|
4000
3999
|
}
|
|
4001
4000
|
}
|
|
4002
|
-
async function verify(config, request) {
|
|
4001
|
+
async function verify(config, request, options) {
|
|
4003
4002
|
const mergedConfig = { ...DEFAULT_CONFIG, ...config };
|
|
4004
4003
|
const urls = mergedConfig.apiBaseUrl ? getCachedWellKnownUrls(mergedConfig.apiBaseUrl) : void 0;
|
|
4005
4004
|
if (!initCheckPerformed && !mergedConfig.disableInitChecks && mergedConfig.apiBaseUrl) {
|
|
@@ -4015,7 +4014,7 @@ async function verify(config, request) {
|
|
|
4015
4014
|
"[VerificationGateway] minTrustScore / minTrustScoreForFull are deprecated in v2.3.0 and have no effect. Server is now the single source of truth for access-level decisions (the SDK reads access.accessLevel from the verify-access response). To gate access to an endpoint, configure the endpoint's trust_score_requirement server-side."
|
|
4016
4015
|
);
|
|
4017
4016
|
}
|
|
4018
|
-
if (mergedConfig.cacheTtl !== 0) {
|
|
4017
|
+
if (mergedConfig.cacheTtl !== 0 && !options?.bypassCache) {
|
|
4019
4018
|
const cached = getCachedResult(request, mergedConfig.counterpartyId);
|
|
4020
4019
|
if (cached) {
|
|
4021
4020
|
if (mergedConfig.debug) {
|
|
@@ -4035,6 +4034,8 @@ async function verify(config, request) {
|
|
|
4035
4034
|
console.log("[VerificationGateway] Calling verify-access API");
|
|
4036
4035
|
}
|
|
4037
4036
|
const apiResponse = await callVerifyAccessAPI(mergedConfig, enrichedRequest);
|
|
4037
|
+
const rawServerDenialReasons = apiResponse.denialReasons;
|
|
4038
|
+
const serverDenialReasons = Array.isArray(rawServerDenialReasons) && rawServerDenialReasons.length > 0 ? rawServerDenialReasons : void 0;
|
|
4038
4039
|
if (!apiResponse.success) {
|
|
4039
4040
|
return createGuidanceResponse(mergedConfig, apiResponse.error, {
|
|
4040
4041
|
source: "api_error",
|
|
@@ -4056,7 +4057,10 @@ async function verify(config, request) {
|
|
|
4056
4057
|
// ALSO short-circuit on `!identityVerified || !policyAllowed` before
|
|
4057
4058
|
// the gate check — belt-and-braces.
|
|
4058
4059
|
accessLevel: "none",
|
|
4059
|
-
|
|
4060
|
+
// 3.6.0: the server now emits top-level denialReasons on every deny
|
|
4061
|
+
// path — prefer it verbatim; the failure-message reconstruction remains
|
|
4062
|
+
// as the fallback for older backends.
|
|
4063
|
+
denialReasons: serverDenialReasons ?? (aggregatedFailures && aggregatedFailures.length > 0 ? aggregatedFailures.map((f) => f.message) : apiResponse.access?.reason ? [apiResponse.access.reason] : ["Access denied"]),
|
|
4060
4064
|
failures: aggregatedFailures,
|
|
4061
4065
|
requiresStepUp: apiResponse.access?.requiresStepUp,
|
|
4062
4066
|
requiresApproval: apiResponse.access?.requiresApproval,
|
|
@@ -4133,9 +4137,7 @@ async function verify(config, request) {
|
|
|
4133
4137
|
if (result.recommendation === "deny") {
|
|
4134
4138
|
result.policyAllowed = false;
|
|
4135
4139
|
result.accessLevel = "none";
|
|
4136
|
-
result.denialReasons = result.recommendationReasons
|
|
4137
|
-
"Access denied by AstraSync recommendation"
|
|
4138
|
-
];
|
|
4140
|
+
result.denialReasons = serverDenialReasons ?? result.recommendationReasons ?? ["Access denied by AstraSync recommendation"];
|
|
4139
4141
|
result.guidance = result.runtimeChallenge ? {
|
|
4140
4142
|
message: `Verification failed: ${result.runtimeChallenge.reason || "runtime challenge failed"}`,
|
|
4141
4143
|
registrationUrl: urls?.registrationUrl ?? "",
|
|
@@ -4147,14 +4149,18 @@ async function verify(config, request) {
|
|
|
4147
4149
|
};
|
|
4148
4150
|
} else if (result.recommendation === "step_up_required") {
|
|
4149
4151
|
result.requiresStepUp = true;
|
|
4150
|
-
result.denialReasons = result.recommendationReasons
|
|
4152
|
+
result.denialReasons = serverDenialReasons ?? result.recommendationReasons ?? ["Step-up verification required"];
|
|
4151
4153
|
}
|
|
4152
|
-
|
|
4154
|
+
const escalates = result.requiresStepUp === true || result.requiresApproval === true || result.recommendation === "step_up_required";
|
|
4155
|
+
if (mergedConfig.cacheTtl !== 0 && result.recommendation !== "deny" && !escalates) {
|
|
4153
4156
|
cacheResult(request, result, mergedConfig.cacheTtl, mergedConfig.counterpartyId);
|
|
4154
4157
|
}
|
|
4155
4158
|
return result;
|
|
4156
4159
|
}
|
|
4157
4160
|
|
|
4161
|
+
// src/adapters/stepup-poll.ts
|
|
4162
|
+
var FALLBACK_MAX_WAIT_MS = 5 * 60 * 1e3;
|
|
4163
|
+
|
|
4158
4164
|
// src/adapters/express.ts
|
|
4159
4165
|
var DEFAULT_ROUTES_REFRESH_MS = 5 * 60 * 1e3;
|
|
4160
4166
|
|