@atlasauth/backend 0.1.7 → 0.2.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.
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type RequestFn } from './request';
|
|
2
|
+
/**
|
|
3
|
+
* The verdict `POST /v1/captcha/verify` returns. `success` is the gate decision;
|
|
4
|
+
* `score` (0..1, higher = more human), `verdict` and `meta` are the provider's
|
|
5
|
+
* own judgment, surfaced for the caller's risk pipeline.
|
|
6
|
+
*/
|
|
7
|
+
export interface CaptchaVerification {
|
|
8
|
+
object: 'captcha_verification';
|
|
9
|
+
success: boolean;
|
|
10
|
+
/** The action this verification resolved for, or null for the base provider. */
|
|
11
|
+
action: string | null;
|
|
12
|
+
/** The provider the token was verified against. */
|
|
13
|
+
provider: string;
|
|
14
|
+
/** Normalized 0..1 (higher = more human); absent for pass/fail-only providers. */
|
|
15
|
+
score?: number;
|
|
16
|
+
/** Coarse label; `edge` for edge-enforced providers (AWS WAF, PerimeterX, …). */
|
|
17
|
+
verdict?: 'pass' | 'fail' | 'low_score' | 'edge';
|
|
18
|
+
/** The provider-issued challenge timestamp, when it returns one. */
|
|
19
|
+
challenge_ts?: string;
|
|
20
|
+
/** Provider-specific reason codes / breakdown (server-side only). */
|
|
21
|
+
meta?: Record<string, unknown>;
|
|
22
|
+
}
|
|
23
|
+
/** Options for a verify call. */
|
|
24
|
+
export interface VerifyCaptchaOptions {
|
|
25
|
+
/**
|
|
26
|
+
* The customer-named action to resolve the provider for (e.g. "comment.create").
|
|
27
|
+
* Omit to use the instance's base provider.
|
|
28
|
+
*/
|
|
29
|
+
action?: string;
|
|
30
|
+
/** The end-user's IP, forwarded to the provider when it accepts one (advised). */
|
|
31
|
+
remoteIp?: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* "CAPTCHA anywhere" — verify a token server-side against the instance's
|
|
35
|
+
* centrally-configured provider. Atlas holds the provider secret and does the
|
|
36
|
+
* verification, so a tenant protects any action without holding the secret or
|
|
37
|
+
* writing its own verification code. Fails CLOSED: an unconfigured provider,
|
|
38
|
+
* missing secret, outage or bad token all come back `success: false`.
|
|
39
|
+
*/
|
|
40
|
+
export declare function captchaResource(request: RequestFn): {
|
|
41
|
+
/** Verify a CAPTCHA token for an optional action. */
|
|
42
|
+
verify(token: string, options?: VerifyCaptchaOptions): Promise<CaptchaVerification>;
|
|
43
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.captchaResource = captchaResource;
|
|
4
|
+
/**
|
|
5
|
+
* "CAPTCHA anywhere" — verify a token server-side against the instance's
|
|
6
|
+
* centrally-configured provider. Atlas holds the provider secret and does the
|
|
7
|
+
* verification, so a tenant protects any action without holding the secret or
|
|
8
|
+
* writing its own verification code. Fails CLOSED: an unconfigured provider,
|
|
9
|
+
* missing secret, outage or bad token all come back `success: false`.
|
|
10
|
+
*/
|
|
11
|
+
function captchaResource(request) {
|
|
12
|
+
return {
|
|
13
|
+
/** Verify a CAPTCHA token for an optional action. */
|
|
14
|
+
verify(token, options = {}) {
|
|
15
|
+
return request({
|
|
16
|
+
method: 'POST',
|
|
17
|
+
path: '/v1/captcha/verify',
|
|
18
|
+
body: {
|
|
19
|
+
token,
|
|
20
|
+
...(options.action ? { action: options.action } : {}),
|
|
21
|
+
...(options.remoteIp ? { remote_ip: options.remoteIp } : {}),
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=captcha.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captcha.js","sourceRoot":"","sources":["../../src/client/captcha.ts"],"names":[],"mappings":";;AA0CA,0CAeC;AAtBD;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,OAAkB;IAChD,OAAO;QACL,qDAAqD;QACrD,MAAM,CAAC,KAAa,EAAE,UAAgC,EAAE;YACtD,OAAO,OAAO,CAAC;gBACb,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE;oBACJ,KAAK;oBACL,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrD,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC7D;aACF,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/client/index.d.ts
CHANGED
|
@@ -743,6 +743,9 @@ export declare function createAtlasClient(config: AtlasClientConfig): {
|
|
|
743
743
|
tokens: {
|
|
744
744
|
verify(body: import("./tokens").VerifyTokenBody): Promise<import("./tokens").TokenVerification>;
|
|
745
745
|
};
|
|
746
|
+
captcha: {
|
|
747
|
+
verify(token: string, options?: import("./captcha").VerifyCaptchaOptions): Promise<import("./captcha").CaptchaVerification>;
|
|
748
|
+
};
|
|
746
749
|
};
|
|
747
750
|
/** The fully typed client instance `createAtlasClient` returns. */
|
|
748
751
|
export type AtlasClient = ReturnType<typeof createAtlasClient>;
|
|
@@ -794,3 +797,4 @@ export * from './lti-platforms';
|
|
|
794
797
|
export * from './instance';
|
|
795
798
|
export * from './instance-security';
|
|
796
799
|
export * from './tokens';
|
|
800
|
+
export * from './captcha';
|
package/dist/client/index.js
CHANGED
|
@@ -60,6 +60,7 @@ const lti_platforms_1 = require("./lti-platforms");
|
|
|
60
60
|
const instance_1 = require("./instance");
|
|
61
61
|
const instance_security_1 = require("./instance-security");
|
|
62
62
|
const tokens_1 = require("./tokens");
|
|
63
|
+
const captcha_1 = require("./captcha");
|
|
63
64
|
/**
|
|
64
65
|
* The typed management client for the Atlas Backend API — the secret-key
|
|
65
66
|
* surface, the peer of `@clerk/backend`'s `createClerkClient`.
|
|
@@ -117,6 +118,9 @@ function createAtlasClient(config) {
|
|
|
117
118
|
instance: (0, instance_1.instanceResource)(request),
|
|
118
119
|
instanceSecurity: (0, instance_security_1.instanceSecurityResource)(request),
|
|
119
120
|
tokens: (0, tokens_1.tokensResource)(request),
|
|
121
|
+
// §5 "captcha anywhere" — verify any CAPTCHA token against the instance's
|
|
122
|
+
// centrally-configured provider, server-side, with the secret held by Atlas.
|
|
123
|
+
captcha: (0, captcha_1.captchaResource)(request),
|
|
120
124
|
};
|
|
121
125
|
}
|
|
122
126
|
var request_2 = require("./request");
|
|
@@ -171,4 +175,5 @@ __exportStar(require("./lti-platforms"), exports);
|
|
|
171
175
|
__exportStar(require("./instance"), exports);
|
|
172
176
|
__exportStar(require("./instance-security"), exports);
|
|
173
177
|
__exportStar(require("./tokens"), exports);
|
|
178
|
+
__exportStar(require("./captcha"), exports);
|
|
174
179
|
//# sourceMappingURL=index.js.map
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|