@atlasauth/backend 0.25.0 → 0.26.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/CHANGELOG.md +32 -1
- package/dist/client/abac.d.ts +389 -0
- package/dist/client/abac.js +98 -0
- package/dist/client/abac.js.map +1 -1
- package/dist/client/analytics-reports.d.ts +1 -1
- package/dist/client/authz-decisions.d.ts +108 -0
- package/dist/client/authz-decisions.js +40 -0
- package/dist/client/authz-decisions.js.map +1 -0
- package/dist/client/connections.d.ts +507 -0
- package/dist/client/connections.js +164 -0
- package/dist/client/connections.js.map +1 -0
- package/dist/client/custom-oauth-providers.d.ts +15 -0
- package/dist/client/custom-oauth-providers.js.map +1 -1
- package/dist/client/desktop-mfa.d.ts +104 -0
- package/dist/client/desktop-mfa.js +44 -0
- package/dist/client/desktop-mfa.js.map +1 -0
- package/dist/client/email-templates.d.ts +1 -1
- package/dist/client/email-templates.js.map +1 -1
- package/dist/client/fga.d.ts +125 -4
- package/dist/client/fga.js +40 -0
- package/dist/client/fga.js.map +1 -1
- package/dist/client/iga.d.ts +436 -0
- package/dist/client/iga.js +82 -0
- package/dist/client/iga.js.map +1 -0
- package/dist/client/index.d.ts +490 -2
- package/dist/client/index.js +23 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/least-privilege.d.ts +95 -0
- package/dist/client/least-privilege.js +28 -0
- package/dist/client/least-privilege.js.map +1 -0
- package/dist/client/managed-grants.d.ts +52 -0
- package/dist/client/managed-grants.js +28 -0
- package/dist/client/managed-grants.js.map +1 -0
- package/dist/client/mcp-gateways.d.ts +72 -0
- package/dist/client/mcp-gateways.js +22 -0
- package/dist/client/mcp-gateways.js.map +1 -1
- package/dist/client/oauth-clients.d.ts +4 -0
- package/dist/client/oauth-clients.js.map +1 -1
- package/dist/client/openfga.d.ts +90 -3
- package/dist/client/openfga.js +27 -1
- package/dist/client/openfga.js.map +1 -1
- package/dist/client/policy-bundles.d.ts +105 -0
- package/dist/client/policy-bundles.js +38 -0
- package/dist/client/policy-bundles.js.map +1 -0
- package/dist/client/resources.d.ts +1 -0
- package/dist/client/resources.js.map +1 -1
- package/dist/client/ssf.d.ts +2 -1
- package/dist/client/ssf.js.map +1 -1
- package/dist/client/vc.d.ts +8 -0
- package/dist/client/vc.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/policy-bundle.d.ts +110 -0
- package/dist/policy-bundle.js +289 -0
- package/dist/policy-bundle.js.map +1 -0
- package/dist/uma.d.ts +77 -0
- package/dist/uma.js +95 -0
- package/dist/uma.js.map +1 -0
- package/package.json +2 -2
package/dist/client/index.js
CHANGED
|
@@ -49,11 +49,15 @@ const fga_1 = require("./fga");
|
|
|
49
49
|
const rate_limit_1 = require("./rate-limit");
|
|
50
50
|
const risk_based_mfa_1 = require("./risk-based-mfa");
|
|
51
51
|
const ssf_1 = require("./ssf");
|
|
52
|
+
const managed_grants_1 = require("./managed-grants");
|
|
53
|
+
const least_privilege_1 = require("./least-privilege");
|
|
52
54
|
const bot_signals_1 = require("./bot-signals");
|
|
53
55
|
const network_acls_1 = require("./network-acls");
|
|
54
56
|
const network_zones_1 = require("./network-zones");
|
|
55
57
|
const access_policies_1 = require("./access-policies");
|
|
56
58
|
const abac_1 = require("./abac");
|
|
59
|
+
const authz_decisions_1 = require("./authz-decisions");
|
|
60
|
+
const policy_bundles_1 = require("./policy-bundles");
|
|
57
61
|
const resources_1 = require("./resources");
|
|
58
62
|
const org_role_grants_1 = require("./org-role-grants");
|
|
59
63
|
const devices_1 = require("./devices");
|
|
@@ -94,12 +98,15 @@ const organization_settings_schema_1 = require("./organization-settings-schema")
|
|
|
94
98
|
const email_addresses_1 = require("./email-addresses");
|
|
95
99
|
const openfga_1 = require("./openfga");
|
|
96
100
|
const connectors_1 = require("./connectors");
|
|
101
|
+
const connections_1 = require("./connections");
|
|
97
102
|
const custom_oauth_providers_1 = require("./custom-oauth-providers");
|
|
98
103
|
const notifications_1 = require("./notifications");
|
|
99
104
|
const audit_events_1 = require("./audit-events");
|
|
100
105
|
const vault_1 = require("./vault");
|
|
101
106
|
const service_connectors_1 = require("./service-connectors");
|
|
107
|
+
const desktop_mfa_1 = require("./desktop-mfa");
|
|
102
108
|
const identity_verification_1 = require("./identity-verification");
|
|
109
|
+
const iga_1 = require("./iga");
|
|
103
110
|
const flags_1 = require("./flags");
|
|
104
111
|
const credentials_1 = require("./credentials");
|
|
105
112
|
const partner_platforms_1 = require("./partner-platforms");
|
|
@@ -175,11 +182,15 @@ function buildNamespaces(request) {
|
|
|
175
182
|
riskBasedMfa: (0, risk_based_mfa_1.riskBasedMfaResource)(request),
|
|
176
183
|
riskEvents: (0, risk_based_mfa_1.riskEventsResource)(request),
|
|
177
184
|
ssf: (0, ssf_1.ssfResource)(request),
|
|
185
|
+
managedGrants: (0, managed_grants_1.managedGrantsResource)(request),
|
|
186
|
+
leastPrivilege: (0, least_privilege_1.leastPrivilegeResource)(request),
|
|
178
187
|
botSignals: (0, bot_signals_1.botSignalsResource)(request),
|
|
179
188
|
networkAcls: (0, network_acls_1.networkAclsResource)(request),
|
|
180
189
|
networkZones: (0, network_zones_1.networkZonesResource)(request),
|
|
181
190
|
accessPolicies: (0, access_policies_1.accessPoliciesResource)(request),
|
|
182
191
|
abac: (0, abac_1.abacResource)(request),
|
|
192
|
+
authzDecisions: (0, authz_decisions_1.authzDecisionsResource)(request),
|
|
193
|
+
policyBundles: (0, policy_bundles_1.policyBundlesResource)(request),
|
|
183
194
|
resources: (0, resources_1.resourcesResource)(request),
|
|
184
195
|
orgRoleGrants: (0, org_role_grants_1.orgRoleGrantsResource)(request),
|
|
185
196
|
devices: (0, devices_1.devicesResource)(request),
|
|
@@ -242,6 +253,8 @@ function buildNamespaces(request) {
|
|
|
242
253
|
// OpenFGA-wire ReBAC stores, models and tuples.
|
|
243
254
|
openfga: (0, openfga_1.openfgaResource)(request),
|
|
244
255
|
connectors: (0, connectors_1.connectorsResource)(request),
|
|
256
|
+
// Org- or user-owned provider connections that own their tokens, per-owner OAuth clients, token reads.
|
|
257
|
+
connections: (0, connections_1.connectionsResource)(request),
|
|
245
258
|
customOAuthProviders: (0, custom_oauth_providers_1.customOAuthProvidersResource)(request),
|
|
246
259
|
notifications: (0, notifications_1.notificationsResource)(request),
|
|
247
260
|
// The tenant's own custom audit events (distinct from Atlas's auditLogs).
|
|
@@ -250,8 +263,11 @@ function buildNamespaces(request) {
|
|
|
250
263
|
vault: (0, vault_1.vaultResource)(request),
|
|
251
264
|
// Typed connectors to messaging, CRM, analytics, fraud and identity-verification services.
|
|
252
265
|
serviceConnectors: (0, service_connectors_1.serviceConnectorsResource)(request),
|
|
266
|
+
desktopMfa: (0, desktop_mfa_1.desktopMfaResource)(request),
|
|
253
267
|
// Document and selfie identity checks through your own verification service.
|
|
254
268
|
identityVerification: (0, identity_verification_1.identityVerificationResource)(request),
|
|
269
|
+
// Identity governance: catalog, access requests and approvals, certification campaigns, separation of duties, joiner/mover/leaver.
|
|
270
|
+
iga: (0, iga_1.igaResource)(request),
|
|
255
271
|
flags: (0, flags_1.flagsResource)(request),
|
|
256
272
|
// The key this client uses, the instance's secret keys, and every credential on it.
|
|
257
273
|
whoami: (0, credentials_1.whoamiResource)(request),
|
|
@@ -305,7 +321,9 @@ __exportStar(require("./types"), exports);
|
|
|
305
321
|
__exportStar(require("./compliance"), exports);
|
|
306
322
|
__exportStar(require("./vault"), exports);
|
|
307
323
|
__exportStar(require("./service-connectors"), exports);
|
|
324
|
+
__exportStar(require("./desktop-mfa"), exports);
|
|
308
325
|
__exportStar(require("./identity-verification"), exports);
|
|
326
|
+
__exportStar(require("./iga"), exports);
|
|
309
327
|
__exportStar(require("./flags"), exports);
|
|
310
328
|
__exportStar(require("./users"), exports);
|
|
311
329
|
__exportStar(require("./sessions"), exports);
|
|
@@ -337,11 +355,15 @@ __exportStar(require("./fga"), exports);
|
|
|
337
355
|
__exportStar(require("./rate-limit"), exports);
|
|
338
356
|
__exportStar(require("./risk-based-mfa"), exports);
|
|
339
357
|
__exportStar(require("./ssf"), exports);
|
|
358
|
+
__exportStar(require("./managed-grants"), exports);
|
|
359
|
+
__exportStar(require("./least-privilege"), exports);
|
|
340
360
|
__exportStar(require("./bot-signals"), exports);
|
|
341
361
|
__exportStar(require("./network-acls"), exports);
|
|
342
362
|
__exportStar(require("./network-zones"), exports);
|
|
343
363
|
__exportStar(require("./access-policies"), exports);
|
|
344
364
|
__exportStar(require("./abac"), exports);
|
|
365
|
+
__exportStar(require("./authz-decisions"), exports);
|
|
366
|
+
__exportStar(require("./policy-bundles"), exports);
|
|
345
367
|
__exportStar(require("./resources"), exports);
|
|
346
368
|
__exportStar(require("./org-role-grants"), exports);
|
|
347
369
|
__exportStar(require("./devices"), exports);
|
|
@@ -381,6 +403,7 @@ __exportStar(require("./organization-settings-schema"), exports);
|
|
|
381
403
|
__exportStar(require("./email-addresses"), exports);
|
|
382
404
|
__exportStar(require("./openfga"), exports);
|
|
383
405
|
__exportStar(require("./connectors"), exports);
|
|
406
|
+
__exportStar(require("./connections"), exports);
|
|
384
407
|
__exportStar(require("./passkey-api"), exports);
|
|
385
408
|
__exportStar(require("./delegated-ui-proxy"), exports);
|
|
386
409
|
__exportStar(require("./vc"), exports);
|
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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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { type RequestFn } from './request';
|
|
2
|
+
export type LeastPrivilegeSubjectType = 'api_key' | 'oauth_client' | 'mcp_gateway' | 'agent';
|
|
3
|
+
export interface LeastPrivilegePermission {
|
|
4
|
+
/** A scope, `tool:<name>`, `<kind>:<resource>` for an agent grant, or `default_policy:allow`. */
|
|
5
|
+
permission: string;
|
|
6
|
+
kind: 'scope' | 'tool' | 'grant' | 'default_policy' | 'wildcard';
|
|
7
|
+
detail?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface LeastPrivilegeChange {
|
|
10
|
+
field: string;
|
|
11
|
+
before: unknown;
|
|
12
|
+
after: unknown;
|
|
13
|
+
}
|
|
14
|
+
export interface LeastPrivilegeSubject {
|
|
15
|
+
object: 'least_privilege_subject';
|
|
16
|
+
subject_type: LeastPrivilegeSubjectType;
|
|
17
|
+
subject_id: string;
|
|
18
|
+
name: string | null;
|
|
19
|
+
window_days: number;
|
|
20
|
+
/** How many of the window's days the usage data covers. */
|
|
21
|
+
observed_days: number;
|
|
22
|
+
/** `low` when the data covers less than the window. */
|
|
23
|
+
confidence: 'high' | 'low';
|
|
24
|
+
granted: LeastPrivilegePermission[];
|
|
25
|
+
used: Array<{
|
|
26
|
+
permission: string;
|
|
27
|
+
uses: number;
|
|
28
|
+
last_used_at: number;
|
|
29
|
+
}>;
|
|
30
|
+
unused: Array<LeastPrivilegePermission & {
|
|
31
|
+
last_used_at: null;
|
|
32
|
+
}>;
|
|
33
|
+
/** The narrower grant. It only ever removes permissions. */
|
|
34
|
+
suggestion: {
|
|
35
|
+
summary: string;
|
|
36
|
+
changes: LeastPrivilegeChange[];
|
|
37
|
+
digest: string;
|
|
38
|
+
} | null;
|
|
39
|
+
/** The suggestion can be applied with one call. */
|
|
40
|
+
applicable: boolean;
|
|
41
|
+
note?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface LeastPrivilegeReport {
|
|
44
|
+
object: 'least_privilege_report';
|
|
45
|
+
generated_at: number;
|
|
46
|
+
window_days: number;
|
|
47
|
+
summary: {
|
|
48
|
+
subjects: number;
|
|
49
|
+
with_unused: number;
|
|
50
|
+
unused_permissions: number;
|
|
51
|
+
applicable_suggestions: number;
|
|
52
|
+
};
|
|
53
|
+
data: LeastPrivilegeSubject[];
|
|
54
|
+
}
|
|
55
|
+
export interface LeastPrivilegeReportQuery {
|
|
56
|
+
days?: number;
|
|
57
|
+
subject_type?: LeastPrivilegeSubjectType;
|
|
58
|
+
subject_id?: string;
|
|
59
|
+
only_unused?: boolean;
|
|
60
|
+
limit?: number;
|
|
61
|
+
}
|
|
62
|
+
export interface ApplyLeastPrivilegeBody {
|
|
63
|
+
subject_type: LeastPrivilegeSubjectType;
|
|
64
|
+
subject_id: string;
|
|
65
|
+
/** `suggestion.digest` from the report: what you previewed is what is applied. */
|
|
66
|
+
digest: string;
|
|
67
|
+
days?: number;
|
|
68
|
+
/** Required when the report's `confidence` is `low`. */
|
|
69
|
+
acknowledge_short_window?: boolean;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* The least-privilege report: what each secret key, OAuth client, MCP gateway and
|
|
73
|
+
* agent holds against what it used, and the narrower grant that would cover it.
|
|
74
|
+
* Preview an `apply` with `dryRun` first.
|
|
75
|
+
*/
|
|
76
|
+
export declare function leastPrivilegeResource(request: RequestFn): {
|
|
77
|
+
report(query?: LeastPrivilegeReportQuery): Promise<LeastPrivilegeReport>;
|
|
78
|
+
/** One credential's report. */
|
|
79
|
+
get(type: LeastPrivilegeSubjectType, id: string, query?: {
|
|
80
|
+
days?: number;
|
|
81
|
+
}): Promise<LeastPrivilegeSubject>;
|
|
82
|
+
/** The report as CSV, one row per used or unused permission. */
|
|
83
|
+
exportCsv(query?: LeastPrivilegeReportQuery): Promise<string>;
|
|
84
|
+
/** Apply a suggestion. `dryRun: true` previews it without changing anything. */
|
|
85
|
+
apply(body: ApplyLeastPrivilegeBody, options?: {
|
|
86
|
+
dryRun?: boolean;
|
|
87
|
+
}): Promise<{
|
|
88
|
+
object: "least_privilege_change";
|
|
89
|
+
subject_type: LeastPrivilegeSubjectType;
|
|
90
|
+
subject_id: string;
|
|
91
|
+
applied: true;
|
|
92
|
+
summary: string;
|
|
93
|
+
changes: LeastPrivilegeChange[];
|
|
94
|
+
}>;
|
|
95
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.leastPrivilegeResource = leastPrivilegeResource;
|
|
4
|
+
/**
|
|
5
|
+
* The least-privilege report: what each secret key, OAuth client, MCP gateway and
|
|
6
|
+
* agent holds against what it used, and the narrower grant that would cover it.
|
|
7
|
+
* Preview an `apply` with `dryRun` first.
|
|
8
|
+
*/
|
|
9
|
+
function leastPrivilegeResource(request) {
|
|
10
|
+
return {
|
|
11
|
+
report(query = {}) {
|
|
12
|
+
return request({ method: 'GET', path: '/v1/least_privilege/report', query: { ...query } });
|
|
13
|
+
},
|
|
14
|
+
/** One credential's report. */
|
|
15
|
+
get(type, id, query = {}) {
|
|
16
|
+
return request({ method: 'GET', path: `/v1/least_privilege/report/${type}/${encodeURIComponent(id)}`, query: { ...query } });
|
|
17
|
+
},
|
|
18
|
+
/** The report as CSV, one row per used or unused permission. */
|
|
19
|
+
exportCsv(query = {}) {
|
|
20
|
+
return request({ method: 'GET', path: '/v1/least_privilege/report', query: { ...query, format: 'csv' }, raw: true });
|
|
21
|
+
},
|
|
22
|
+
/** Apply a suggestion. `dryRun: true` previews it without changing anything. */
|
|
23
|
+
apply(body, options = {}) {
|
|
24
|
+
return request({ method: 'POST', path: '/v1/least_privilege/apply', body, ...(options.dryRun ? { query: { dry_run: true } } : {}) });
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=least-privilege.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"least-privilege.js","sourceRoot":"","sources":["../../src/client/least-privilege.ts"],"names":[],"mappings":";;AAoEA,wDAyBC;AA9BD;;;;GAIG;AACH,SAAgB,sBAAsB,CAAC,OAAkB;IACvD,OAAO;QACL,MAAM,CAAC,QAAmC,EAAE;YAC1C,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,+BAA+B;QAC/B,GAAG,CAAC,IAA+B,EAAE,EAAU,EAAE,QAA2B,EAAE;YAC5E,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,8BAA8B,IAAI,IAAI,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/H,CAAC;QACD,gEAAgE;QAChE,SAAS,CAAC,QAAmC,EAAE;YAC7C,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QACvH,CAAC;QACD,gFAAgF;QAChF,KAAK,CAAC,IAA6B,EAAE,UAAgC,EAAE;YAQrE,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACvI,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { type RequestFn } from './request';
|
|
2
|
+
/** A grant an OAuth client holds for a user (OpenID Grant Management): the `grant_id` token responses carry. */
|
|
3
|
+
export interface ManagedGrant {
|
|
4
|
+
object: 'managed_grant';
|
|
5
|
+
id: string;
|
|
6
|
+
/** The OAuth client's public `client_id`. */
|
|
7
|
+
client_id: string | null;
|
|
8
|
+
user_id: string;
|
|
9
|
+
organization_id: string | null;
|
|
10
|
+
status: 'active' | 'revoked';
|
|
11
|
+
scopes: string[];
|
|
12
|
+
/** The API (resource server identifier) the grant covers. */
|
|
13
|
+
resource: string | null;
|
|
14
|
+
authorization_details: Record<string, unknown>[] | null;
|
|
15
|
+
/** Bumped by every merge, replace and narrowing. */
|
|
16
|
+
revision: number;
|
|
17
|
+
created_at: number;
|
|
18
|
+
updated_at: number;
|
|
19
|
+
revoked_at: number | null;
|
|
20
|
+
revoked_by: 'client' | 'user' | 'admin' | 'system' | null;
|
|
21
|
+
}
|
|
22
|
+
export interface ListManagedGrantsQuery {
|
|
23
|
+
user_id?: string;
|
|
24
|
+
/** The OAuth client's public client id. */
|
|
25
|
+
client_id?: string;
|
|
26
|
+
status?: 'active' | 'revoked';
|
|
27
|
+
limit?: number;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* OpenID Grant Management grants. Backends can read, narrow and revoke what each
|
|
31
|
+
* OAuth client holds for each user. Widening is the user's alone: they authorize
|
|
32
|
+
* again with `grant_management_action=merge`.
|
|
33
|
+
*/
|
|
34
|
+
export declare function managedGrantsResource(request: RequestFn): {
|
|
35
|
+
list(query?: ListManagedGrantsQuery): Promise<{
|
|
36
|
+
object: "list";
|
|
37
|
+
data: ManagedGrant[];
|
|
38
|
+
}>;
|
|
39
|
+
get(id: string): Promise<ManagedGrant>;
|
|
40
|
+
/** Keep a subset of what the grant holds. A scope or authorization_details entry it does not hold is refused. */
|
|
41
|
+
narrow(id: string, body: {
|
|
42
|
+
scopes?: string[];
|
|
43
|
+
authorization_details?: Record<string, unknown>[];
|
|
44
|
+
}): Promise<ManagedGrant>;
|
|
45
|
+
/** Revoke the grant and end every token issued under it. */
|
|
46
|
+
revoke(id: string): Promise<{
|
|
47
|
+
object: "managed_grant";
|
|
48
|
+
id: string;
|
|
49
|
+
deleted: true;
|
|
50
|
+
tokens_ended: number;
|
|
51
|
+
}>;
|
|
52
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.managedGrantsResource = managedGrantsResource;
|
|
4
|
+
/**
|
|
5
|
+
* OpenID Grant Management grants. Backends can read, narrow and revoke what each
|
|
6
|
+
* OAuth client holds for each user. Widening is the user's alone: they authorize
|
|
7
|
+
* again with `grant_management_action=merge`.
|
|
8
|
+
*/
|
|
9
|
+
function managedGrantsResource(request) {
|
|
10
|
+
const path = (id) => `/v1/grant_management/grants/${encodeURIComponent(id)}`;
|
|
11
|
+
return {
|
|
12
|
+
list(query = {}) {
|
|
13
|
+
return request({ method: 'GET', path: '/v1/grant_management/grants', query: { ...query } });
|
|
14
|
+
},
|
|
15
|
+
get(id) {
|
|
16
|
+
return request({ method: 'GET', path: path(id) });
|
|
17
|
+
},
|
|
18
|
+
/** Keep a subset of what the grant holds. A scope or authorization_details entry it does not hold is refused. */
|
|
19
|
+
narrow(id, body) {
|
|
20
|
+
return request({ method: 'PATCH', path: path(id), body });
|
|
21
|
+
},
|
|
22
|
+
/** Revoke the grant and end every token issued under it. */
|
|
23
|
+
revoke(id) {
|
|
24
|
+
return request({ method: 'DELETE', path: path(id) });
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=managed-grants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-grants.js","sourceRoot":"","sources":["../../src/client/managed-grants.ts"],"names":[],"mappings":";;AAoCA,sDAkBC;AAvBD;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,OAAkB;IACtD,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,+BAA+B,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;IACrF,OAAO;QACL,IAAI,CAAC,QAAgC,EAAE;YACrC,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,6BAA6B,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,GAAG,CAAC,EAAU;YACZ,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,iHAAiH;QACjH,MAAM,CAAC,EAAU,EAAE,IAA8E;YAC/F,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,4DAA4D;QAC5D,MAAM,CAAC,EAAU;YACf,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -28,9 +28,63 @@ export interface McpGateway {
|
|
|
28
28
|
default_policy: 'allow' | 'deny';
|
|
29
29
|
tools: Record<string, McpToolPolicy>;
|
|
30
30
|
enabled: boolean;
|
|
31
|
+
/** Authorize every tool call through the ABAC policy engine too. */
|
|
32
|
+
abac: McpGatewayAbac;
|
|
31
33
|
url: string;
|
|
32
34
|
created_at: number;
|
|
33
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Each call is checked as: principal = the agent (type `Agent`: name, tier, owner_user_id,
|
|
38
|
+
* organization_id, scopes, data), action = the tool name, resource = the tool (type `McpTool`:
|
|
39
|
+
* gateway_id, gateway_name, tool, args). With `enabled` and no permitting policy, every call is denied.
|
|
40
|
+
*/
|
|
41
|
+
export interface McpGatewayAbac {
|
|
42
|
+
enabled: boolean;
|
|
43
|
+
/** The policies consulted; empty means every enabled policy. */
|
|
44
|
+
policy_ids: string[];
|
|
45
|
+
}
|
|
46
|
+
/** A ceiling across calls: calls, cost units, or calls per window, per agent or per session. */
|
|
47
|
+
export interface McpBudget {
|
|
48
|
+
object: 'mcp_budget';
|
|
49
|
+
id: string;
|
|
50
|
+
gateway_id: string;
|
|
51
|
+
name: string;
|
|
52
|
+
/** `agent`: each agent counts apart. `session`: each session (the Mcp-Session-Id an initialize returns). */
|
|
53
|
+
scope: 'agent' | 'session';
|
|
54
|
+
agent_id: string | null;
|
|
55
|
+
tool: string | null;
|
|
56
|
+
metric: 'calls' | 'cost' | 'rate';
|
|
57
|
+
limit: number;
|
|
58
|
+
/** Fixed windows; null never resets. */
|
|
59
|
+
window_seconds: number | null;
|
|
60
|
+
cost_per_call: number;
|
|
61
|
+
/** A dot path to a number in the call arguments that is the cost of the call. */
|
|
62
|
+
cost_arg: string | null;
|
|
63
|
+
enabled: boolean;
|
|
64
|
+
created_at: number;
|
|
65
|
+
}
|
|
66
|
+
export interface CreateMcpBudgetBody {
|
|
67
|
+
name: string;
|
|
68
|
+
metric: 'calls' | 'cost' | 'rate';
|
|
69
|
+
limit: number;
|
|
70
|
+
scope?: 'agent' | 'session';
|
|
71
|
+
/** Required for `rate`. */
|
|
72
|
+
window_seconds?: number | null;
|
|
73
|
+
agent_id?: string | null;
|
|
74
|
+
tool?: string | null;
|
|
75
|
+
cost_per_call?: number;
|
|
76
|
+
cost_arg?: string | null;
|
|
77
|
+
enabled?: boolean;
|
|
78
|
+
}
|
|
79
|
+
export interface McpBudgetUsage {
|
|
80
|
+
object: 'mcp_budget_usage';
|
|
81
|
+
budget_id: string;
|
|
82
|
+
agent_id: string;
|
|
83
|
+
used: number;
|
|
84
|
+
limit: number;
|
|
85
|
+
remaining: number;
|
|
86
|
+
resets_at: number | null;
|
|
87
|
+
}
|
|
34
88
|
export interface CreateMcpGatewayBody {
|
|
35
89
|
name: string;
|
|
36
90
|
upstream_url: string;
|
|
@@ -38,6 +92,7 @@ export interface CreateMcpGatewayBody {
|
|
|
38
92
|
default_policy?: 'allow' | 'deny';
|
|
39
93
|
tools?: Record<string, McpToolPolicy>;
|
|
40
94
|
enabled?: boolean;
|
|
95
|
+
abac?: Partial<McpGatewayAbac>;
|
|
41
96
|
}
|
|
42
97
|
export type UpdateMcpGatewayBody = Partial<CreateMcpGatewayBody>;
|
|
43
98
|
export declare function mcpGatewaysResource(request: RequestFn): {
|
|
@@ -51,4 +106,21 @@ export declare function mcpGatewaysResource(request: RequestFn): {
|
|
|
51
106
|
id: string;
|
|
52
107
|
deleted: true;
|
|
53
108
|
}>;
|
|
109
|
+
/** Cross-call budgets of one gateway. */
|
|
110
|
+
budgets: {
|
|
111
|
+
list(gatewayId: string): Promise<ListPage<McpBudget>>;
|
|
112
|
+
create(gatewayId: string, body: CreateMcpBudgetBody): Promise<McpBudget>;
|
|
113
|
+
get(gatewayId: string, budgetId: string): Promise<McpBudget>;
|
|
114
|
+
update(gatewayId: string, budgetId: string, body: Partial<CreateMcpBudgetBody>): Promise<McpBudget>;
|
|
115
|
+
delete(gatewayId: string, budgetId: string): Promise<{
|
|
116
|
+
object: "mcp_budget";
|
|
117
|
+
id: string;
|
|
118
|
+
deleted: true;
|
|
119
|
+
}>;
|
|
120
|
+
/** What an agent (and, for a per-session budget, one session) has used of the budget now. */
|
|
121
|
+
usage(gatewayId: string, budgetId: string, query?: {
|
|
122
|
+
agent_id?: string;
|
|
123
|
+
session_id?: string;
|
|
124
|
+
}): Promise<McpBudgetUsage>;
|
|
125
|
+
};
|
|
54
126
|
};
|
|
@@ -20,6 +20,28 @@ function mcpGatewaysResource(request) {
|
|
|
20
20
|
delete(id) {
|
|
21
21
|
return request({ method: 'DELETE', path: `/v1/mcp_gateways/${(0, request_1.enc)(id)}` });
|
|
22
22
|
},
|
|
23
|
+
/** Cross-call budgets of one gateway. */
|
|
24
|
+
budgets: {
|
|
25
|
+
list(gatewayId) {
|
|
26
|
+
return request({ method: 'GET', path: `/v1/mcp_gateways/${(0, request_1.enc)(gatewayId)}/budgets` });
|
|
27
|
+
},
|
|
28
|
+
create(gatewayId, body) {
|
|
29
|
+
return request({ method: 'POST', path: `/v1/mcp_gateways/${(0, request_1.enc)(gatewayId)}/budgets`, body });
|
|
30
|
+
},
|
|
31
|
+
get(gatewayId, budgetId) {
|
|
32
|
+
return request({ method: 'GET', path: `/v1/mcp_gateways/${(0, request_1.enc)(gatewayId)}/budgets/${(0, request_1.enc)(budgetId)}` });
|
|
33
|
+
},
|
|
34
|
+
update(gatewayId, budgetId, body) {
|
|
35
|
+
return request({ method: 'PATCH', path: `/v1/mcp_gateways/${(0, request_1.enc)(gatewayId)}/budgets/${(0, request_1.enc)(budgetId)}`, body });
|
|
36
|
+
},
|
|
37
|
+
delete(gatewayId, budgetId) {
|
|
38
|
+
return request({ method: 'DELETE', path: `/v1/mcp_gateways/${(0, request_1.enc)(gatewayId)}/budgets/${(0, request_1.enc)(budgetId)}` });
|
|
39
|
+
},
|
|
40
|
+
/** What an agent (and, for a per-session budget, one session) has used of the budget now. */
|
|
41
|
+
usage(gatewayId, budgetId, query = {}) {
|
|
42
|
+
return request({ method: 'GET', path: `/v1/mcp_gateways/${(0, request_1.enc)(gatewayId)}/budgets/${(0, request_1.enc)(budgetId)}/usage`, query: { ...query } });
|
|
43
|
+
},
|
|
44
|
+
},
|
|
23
45
|
};
|
|
24
46
|
}
|
|
25
47
|
//# sourceMappingURL=mcp-gateways.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-gateways.js","sourceRoot":"","sources":["../../src/client/mcp-gateways.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"mcp-gateways.js","sourceRoot":"","sources":["../../src/client/mcp-gateways.ts"],"names":[],"mappings":";;AAmGA,kDAyCC;AA5ID,uCAAgD;AAmGhD,SAAgB,mBAAmB,CAAC,OAAkB;IACpD,OAAO;QACL,IAAI;YACF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,CAAC,IAA0B,EAAE,cAAuB;YACxD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,GAAG,CAAC,EAAU;YACZ,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,sCAAsC;QACtC,MAAM,CAAC,EAAU,EAAE,IAA0B;YAC3C,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,oBAAoB,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,CAAC,EAAU;YACf,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,yCAAyC;QACzC,OAAO,EAAE;YACP,IAAI,CAAC,SAAiB;gBACpB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,IAAA,aAAG,EAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;YACxF,CAAC;YACD,MAAM,CAAC,SAAiB,EAAE,IAAyB;gBACjD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,IAAA,aAAG,EAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/F,CAAC;YACD,GAAG,CAAC,SAAiB,EAAE,QAAgB;gBACrC,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,IAAA,aAAG,EAAC,SAAS,CAAC,YAAY,IAAA,aAAG,EAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YACzG,CAAC;YACD,MAAM,CAAC,SAAiB,EAAE,QAAgB,EAAE,IAAkC;gBAC5E,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,oBAAoB,IAAA,aAAG,EAAC,SAAS,CAAC,YAAY,IAAA,aAAG,EAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YACjH,CAAC;YACD,MAAM,CAAC,SAAiB,EAAE,QAAgB;gBACxC,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,IAAA,aAAG,EAAC,SAAS,CAAC,YAAY,IAAA,aAAG,EAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5G,CAAC;YACD,6FAA6F;YAC7F,KAAK,CAAC,SAAiB,EAAE,QAAgB,EAAE,QAAoD,EAAE;gBAC/F,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,IAAA,aAAG,EAAC,SAAS,CAAC,YAAY,IAAA,aAAG,EAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;YACpI,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -61,6 +61,8 @@ export interface OAuthClient extends ProvisioningFields {
|
|
|
61
61
|
first_party: boolean;
|
|
62
62
|
/** Where the client may send users after an RP-initiated logout. */
|
|
63
63
|
post_logout_redirect_uris: string[];
|
|
64
|
+
/** UMA 2.0 claims-gathering redirect allowlist (exact match). */
|
|
65
|
+
claims_redirect_uris: string[];
|
|
64
66
|
/** Back-channel logout endpoint Atlas POSTs a `logout_token` to, or null. */
|
|
65
67
|
backchannel_logout_uri: string | null;
|
|
66
68
|
/** Whether the back-channel `logout_token` must carry `sid`. */
|
|
@@ -149,6 +151,8 @@ export interface CreateInitialAccessTokenBody {
|
|
|
149
151
|
*/
|
|
150
152
|
export interface OAuthClientLogoutFields {
|
|
151
153
|
post_logout_redirect_uris?: string[];
|
|
154
|
+
/** UMA 2.0 claims-gathering redirect allowlist (exact match). */
|
|
155
|
+
claims_redirect_uris?: string[];
|
|
152
156
|
backchannel_logout_uri?: string | null;
|
|
153
157
|
backchannel_logout_session_required?: boolean;
|
|
154
158
|
frontchannel_logout_uri?: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-clients.js","sourceRoot":"","sources":["../../src/client/oauth-clients.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"oauth-clients.js","sourceRoot":"","sources":["../../src/client/oauth-clients.ts"],"names":[],"mappings":"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"}
|