@ampsec/platform-client 12.0.0 → 12.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.
- package/build/src/dto/enums/agent.role.d.ts +16 -0
- package/build/src/dto/enums/agent.role.js +44 -0
- package/build/src/dto/enums/agent.role.js.map +1 -0
- package/build/src/dto/enums/index.d.ts +1 -0
- package/build/src/dto/enums/index.js +1 -0
- package/build/src/dto/enums/index.js.map +1 -1
- package/build/src/dto/index.d.ts +1 -0
- package/build/src/dto/index.js +1 -0
- package/build/src/dto/index.js.map +1 -1
- package/build/src/dto/jwt.d.ts +20 -0
- package/build/src/dto/jwt.js +3 -0
- package/build/src/dto/jwt.js.map +1 -0
- package/build/src/dto/reportResults.dto.d.ts +2 -0
- package/example/package-lock.json +7 -7
- package/example/package.json +1 -1
- package/package.json +1 -1
- package/src/dto/agents.dto.ts +3 -0
- package/src/dto/enums/agent.role.ts +41 -0
- package/src/dto/enums/index.ts +1 -0
- package/src/dto/index.ts +1 -0
- package/src/dto/jwt.ts +20 -0
- package/src/dto/reportResults.dto.ts +2 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare enum AgentRole {
|
|
2
|
+
/** Agent can only read data. */
|
|
3
|
+
VIEWER = "VIEWER",
|
|
4
|
+
/** Agent can read and write data. */
|
|
5
|
+
AGENT = "AGENT",
|
|
6
|
+
/** Agent can read and write data and manage other agents. */
|
|
7
|
+
ADMIN = "ADMIN",
|
|
8
|
+
/** Agent owns organization. */
|
|
9
|
+
OWNER = "OWNER",
|
|
10
|
+
/** Token belongs to a service account. */
|
|
11
|
+
SERVICE_ACCOUNT = "SERVICE_ACCOUNT",
|
|
12
|
+
/** Unknown role. Used for validation */
|
|
13
|
+
UNKNOWN = "UNKNOWN"
|
|
14
|
+
}
|
|
15
|
+
export declare function lookupAgentRole(role: string): AgentRole;
|
|
16
|
+
export declare function lookupAgentRoleOrdinal(role: string): number;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.lookupAgentRoleOrdinal = exports.lookupAgentRole = exports.AgentRole = void 0;
|
|
4
|
+
/* eslint-disable no-unused-vars */
|
|
5
|
+
var AgentRole;
|
|
6
|
+
(function (AgentRole) {
|
|
7
|
+
/** Agent can only read data. */
|
|
8
|
+
AgentRole["VIEWER"] = "VIEWER";
|
|
9
|
+
/** Agent can read and write data. */
|
|
10
|
+
AgentRole["AGENT"] = "AGENT";
|
|
11
|
+
/** Agent can read and write data and manage other agents. */
|
|
12
|
+
AgentRole["ADMIN"] = "ADMIN";
|
|
13
|
+
/** Agent owns organization. */
|
|
14
|
+
AgentRole["OWNER"] = "OWNER";
|
|
15
|
+
/** Token belongs to a service account. */
|
|
16
|
+
AgentRole["SERVICE_ACCOUNT"] = "SERVICE_ACCOUNT";
|
|
17
|
+
/** Unknown role. Used for validation */
|
|
18
|
+
AgentRole["UNKNOWN"] = "UNKNOWN";
|
|
19
|
+
})(AgentRole = exports.AgentRole || (exports.AgentRole = {}));
|
|
20
|
+
const agentRoleLookupMap = {
|
|
21
|
+
VIEWER: AgentRole.VIEWER,
|
|
22
|
+
AGENT: AgentRole.AGENT,
|
|
23
|
+
ADMIN: AgentRole.ADMIN,
|
|
24
|
+
OWNER: AgentRole.OWNER,
|
|
25
|
+
SERVICE_ACCOUNT: AgentRole.SERVICE_ACCOUNT,
|
|
26
|
+
};
|
|
27
|
+
function lookupAgentRole(role) {
|
|
28
|
+
return agentRoleLookupMap[role] || AgentRole.UNKNOWN;
|
|
29
|
+
}
|
|
30
|
+
exports.lookupAgentRole = lookupAgentRole;
|
|
31
|
+
const UNKNOWN_ORDINAL = -99;
|
|
32
|
+
const agentRoleOrdinalMap = new Map([
|
|
33
|
+
[AgentRole.VIEWER, 0],
|
|
34
|
+
[AgentRole.AGENT, 1],
|
|
35
|
+
[AgentRole.ADMIN, 2],
|
|
36
|
+
[AgentRole.OWNER, 3],
|
|
37
|
+
[AgentRole.SERVICE_ACCOUNT, -1],
|
|
38
|
+
[AgentRole.UNKNOWN, UNKNOWN_ORDINAL],
|
|
39
|
+
]);
|
|
40
|
+
function lookupAgentRoleOrdinal(role) {
|
|
41
|
+
return agentRoleOrdinalMap.get(lookupAgentRole(role)) || UNKNOWN_ORDINAL;
|
|
42
|
+
}
|
|
43
|
+
exports.lookupAgentRoleOrdinal = lookupAgentRoleOrdinal;
|
|
44
|
+
//# sourceMappingURL=agent.role.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.role.js","sourceRoot":"","sources":["../../../../src/dto/enums/agent.role.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,IAAY,SAaX;AAbD,WAAY,SAAS;IACnB,gCAAgC;IAChC,8BAAiB,CAAA;IACjB,qCAAqC;IACrC,4BAAe,CAAA;IACf,6DAA6D;IAC7D,4BAAe,CAAA;IACf,+BAA+B;IAC/B,4BAAe,CAAA;IACf,0CAA0C;IAC1C,gDAAmC,CAAA;IACnC,wCAAwC;IACxC,gCAAmB,CAAA;AACrB,CAAC,EAbW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAapB;AAED,MAAM,kBAAkB,GAA+B;IACrD,MAAM,EAAE,SAAS,CAAC,MAAM;IACxB,KAAK,EAAE,SAAS,CAAC,KAAK;IACtB,KAAK,EAAE,SAAS,CAAC,KAAK;IACtB,KAAK,EAAE,SAAS,CAAC,KAAK;IACtB,eAAe,EAAE,SAAS,CAAC,eAAe;CAC3C,CAAC;AAEF,SAAgB,eAAe,CAAC,IAAY;IAC1C,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC;AACvD,CAAC;AAFD,0CAEC;AAED,MAAM,eAAe,GAAG,CAAC,EAAE,CAAC;AAC5B,MAAM,mBAAmB,GAA2B,IAAI,GAAG,CAAC;IAC1D,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACrB,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;IACpB,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;IACpB,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;IACpB,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,SAAS,CAAC,OAAO,EAAE,eAAe,CAAC;CACrC,CAAC,CAAC;AAEH,SAAgB,sBAAsB,CAAC,IAAY;IACjD,OAAO,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC;AAC3E,CAAC;AAFD,wDAEC"}
|
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./agent.role"), exports);
|
|
17
18
|
__exportStar(require("./agent.status"), exports);
|
|
18
19
|
__exportStar(require("./connector.status"), exports);
|
|
19
20
|
__exportStar(require("./finding.severity"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/dto/enums/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,qDAAmC;AACnC,qDAAmC;AACnC,mDAAiC;AACjC,wDAAsC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/dto/enums/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,iDAA+B;AAC/B,qDAAmC;AACnC,qDAAmC;AACnC,mDAAiC;AACjC,wDAAsC"}
|
package/build/src/dto/index.d.ts
CHANGED
package/build/src/dto/index.js
CHANGED
|
@@ -22,6 +22,7 @@ __exportStar(require("./enum.dto"), exports);
|
|
|
22
22
|
__exportStar(require("./enums"), exports);
|
|
23
23
|
__exportStar(require("./extKeyMap.dto"), exports);
|
|
24
24
|
__exportStar(require("./findings.dto"), exports);
|
|
25
|
+
__exportStar(require("./jwt"), exports);
|
|
25
26
|
__exportStar(require("./message.dto"), exports);
|
|
26
27
|
__exportStar(require("./page.dto"), exports);
|
|
27
28
|
__exportStar(require("./platform"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,+CAA6B;AAC7B,6CAA2B;AAC3B,mDAAiC;AACjC,6CAA2B;AAC3B,0CAAwB;AACxB,kDAAgC;AAChC,iDAA+B;AAC/B,gDAA8B;AAC9B,6CAA2B;AAC3B,6CAA2B;AAC3B,kDAAgC;AAChC,sDAAoC;AACpC,yDAAuC;AACvC,mDAAiC;AACjC,uDAAqC;AACrC,kDAAgC;AAChC,gDAA8B;AAC9B,8CAA4B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,+CAA6B;AAC7B,6CAA2B;AAC3B,mDAAiC;AACjC,6CAA2B;AAC3B,0CAAwB;AACxB,kDAAgC;AAChC,iDAA+B;AAC/B,wCAAsB;AACtB,gDAA8B;AAC9B,6CAA2B;AAC3B,6CAA2B;AAC3B,kDAAgC;AAChC,sDAAoC;AACpC,yDAAuC;AACvC,mDAAiC;AACjC,uDAAqC;AACrC,kDAAgC;AAChC,gDAA8B;AAC9B,8CAA4B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type AmpJwtToken = {
|
|
2
|
+
/** Constant for now but might change in the future. */
|
|
3
|
+
iss: 'amp-platform-api';
|
|
4
|
+
/** UNIX timestamp, i.e. seconds since January 1, 1970 */
|
|
5
|
+
exp: number;
|
|
6
|
+
/** Single tenant ID for scoping requests */
|
|
7
|
+
tid: string;
|
|
8
|
+
/** DB PK for authenticated Agent/End User */
|
|
9
|
+
sub: string;
|
|
10
|
+
/** Display value for subject. Falls back to email. */
|
|
11
|
+
name: string;
|
|
12
|
+
/** Single role defining Amplifier User Personas */
|
|
13
|
+
role: string;
|
|
14
|
+
/** Enables fine grain access controls to actions/data. Defined by ORG admin or SCIM. */
|
|
15
|
+
group: string[];
|
|
16
|
+
/** Feature flags and other permissions. Defined by Amplifier Platform. */
|
|
17
|
+
entitlement: string[];
|
|
18
|
+
/** OAuth scopes to limit ability of token, e.g. READ_ONLY service accounts. Might overlap too much with `group` field. */
|
|
19
|
+
scope: string[];
|
|
20
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../../src/dto/jwt.ts"],"names":[],"mappings":""}
|
|
@@ -127,6 +127,8 @@ export type ReportResultUpsertDto = BaseUpsertDto & {
|
|
|
127
127
|
uid?: string;
|
|
128
128
|
/** Department */
|
|
129
129
|
department?: string | null;
|
|
130
|
+
/** Organization */
|
|
131
|
+
organization?: string | null;
|
|
130
132
|
/** Timestamp the report result was generated in ISO8601 format */
|
|
131
133
|
ts: string;
|
|
132
134
|
/** The results generated for the given report */
|
|
@@ -9,14 +9,14 @@
|
|
|
9
9
|
"version": "1.0.0",
|
|
10
10
|
"license": "ISC",
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@ampsec/platform-client": "^10.
|
|
12
|
+
"@ampsec/platform-client": "^10.4.0",
|
|
13
13
|
"axios": "^1.4.0"
|
|
14
14
|
}
|
|
15
15
|
},
|
|
16
16
|
"node_modules/@ampsec/platform-client": {
|
|
17
|
-
"version": "10.
|
|
18
|
-
"resolved": "https://registry.npmjs.org/@ampsec/platform-client/-/platform-client-10.
|
|
19
|
-
"integrity": "sha512-
|
|
17
|
+
"version": "10.4.0",
|
|
18
|
+
"resolved": "https://registry.npmjs.org/@ampsec/platform-client/-/platform-client-10.4.0.tgz",
|
|
19
|
+
"integrity": "sha512-KNmFLtDCvsQEQZFdjAlNclII0bcAVPS3VI4sS5ZyDvcimngucgGvlm6jUsndkDXGdv2CRR+wC/3P+riemNWTsQ==",
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"axios": "^1.4.0",
|
|
22
22
|
"blueimp-md5": "^2.19.0",
|
|
@@ -132,9 +132,9 @@
|
|
|
132
132
|
},
|
|
133
133
|
"dependencies": {
|
|
134
134
|
"@ampsec/platform-client": {
|
|
135
|
-
"version": "10.
|
|
136
|
-
"resolved": "https://registry.npmjs.org/@ampsec/platform-client/-/platform-client-10.
|
|
137
|
-
"integrity": "sha512-
|
|
135
|
+
"version": "10.4.0",
|
|
136
|
+
"resolved": "https://registry.npmjs.org/@ampsec/platform-client/-/platform-client-10.4.0.tgz",
|
|
137
|
+
"integrity": "sha512-KNmFLtDCvsQEQZFdjAlNclII0bcAVPS3VI4sS5ZyDvcimngucgGvlm6jUsndkDXGdv2CRR+wC/3P+riemNWTsQ==",
|
|
138
138
|
"requires": {
|
|
139
139
|
"axios": "^1.4.0",
|
|
140
140
|
"blueimp-md5": "^2.19.0",
|
package/example/package.json
CHANGED
package/package.json
CHANGED
package/src/dto/agents.dto.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {AgentStatus} from './enums/agent.status';
|
|
2
2
|
import {BaseDto, BaseUpsertDto} from './base.dto';
|
|
3
|
+
// import {AgentRole} from './enums';
|
|
3
4
|
|
|
4
5
|
export type AgentUpsertDto = BaseUpsertDto & {
|
|
5
6
|
/** Agent first name */
|
|
@@ -10,6 +11,8 @@ export type AgentUpsertDto = BaseUpsertDto & {
|
|
|
10
11
|
status: AgentStatus;
|
|
11
12
|
/** External Id */
|
|
12
13
|
email: string;
|
|
14
|
+
/** Agent role */
|
|
15
|
+
// TODO: role: AgentRole; // for now all agents are `OWNER`. Need to map role to tenant
|
|
13
16
|
};
|
|
14
17
|
|
|
15
18
|
export type AgentDto = BaseDto & AgentUpsertDto;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/* eslint-disable no-unused-vars */
|
|
2
|
+
export enum AgentRole {
|
|
3
|
+
/** Agent can only read data. */
|
|
4
|
+
VIEWER = 'VIEWER',
|
|
5
|
+
/** Agent can read and write data. */
|
|
6
|
+
AGENT = 'AGENT',
|
|
7
|
+
/** Agent can read and write data and manage other agents. */
|
|
8
|
+
ADMIN = 'ADMIN',
|
|
9
|
+
/** Agent owns organization. */
|
|
10
|
+
OWNER = 'OWNER',
|
|
11
|
+
/** Token belongs to a service account. */
|
|
12
|
+
SERVICE_ACCOUNT = 'SERVICE_ACCOUNT',
|
|
13
|
+
/** Unknown role. Used for validation */
|
|
14
|
+
UNKNOWN = 'UNKNOWN',
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const agentRoleLookupMap: {[key: string]: AgentRole} = {
|
|
18
|
+
VIEWER: AgentRole.VIEWER,
|
|
19
|
+
AGENT: AgentRole.AGENT,
|
|
20
|
+
ADMIN: AgentRole.ADMIN,
|
|
21
|
+
OWNER: AgentRole.OWNER,
|
|
22
|
+
SERVICE_ACCOUNT: AgentRole.SERVICE_ACCOUNT,
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export function lookupAgentRole(role: string): AgentRole {
|
|
26
|
+
return agentRoleLookupMap[role] || AgentRole.UNKNOWN;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const UNKNOWN_ORDINAL = -99;
|
|
30
|
+
const agentRoleOrdinalMap: Map<AgentRole, number> = new Map([
|
|
31
|
+
[AgentRole.VIEWER, 0],
|
|
32
|
+
[AgentRole.AGENT, 1],
|
|
33
|
+
[AgentRole.ADMIN, 2],
|
|
34
|
+
[AgentRole.OWNER, 3],
|
|
35
|
+
[AgentRole.SERVICE_ACCOUNT, -1],
|
|
36
|
+
[AgentRole.UNKNOWN, UNKNOWN_ORDINAL],
|
|
37
|
+
]);
|
|
38
|
+
|
|
39
|
+
export function lookupAgentRoleOrdinal(role: string): number {
|
|
40
|
+
return agentRoleOrdinalMap.get(lookupAgentRole(role)) || UNKNOWN_ORDINAL;
|
|
41
|
+
}
|
package/src/dto/enums/index.ts
CHANGED
package/src/dto/index.ts
CHANGED
package/src/dto/jwt.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type AmpJwtToken = {
|
|
2
|
+
/** Constant for now but might change in the future. */
|
|
3
|
+
iss: 'amp-platform-api';
|
|
4
|
+
/** UNIX timestamp, i.e. seconds since January 1, 1970 */
|
|
5
|
+
exp: number;
|
|
6
|
+
/** Single tenant ID for scoping requests */
|
|
7
|
+
tid: string;
|
|
8
|
+
/** DB PK for authenticated Agent/End User */
|
|
9
|
+
sub: string;
|
|
10
|
+
/** Display value for subject. Falls back to email. */
|
|
11
|
+
name: string;
|
|
12
|
+
/** Single role defining Amplifier User Personas */
|
|
13
|
+
role: string;
|
|
14
|
+
/** Enables fine grain access controls to actions/data. Defined by ORG admin or SCIM. */
|
|
15
|
+
group: string[];
|
|
16
|
+
/** Feature flags and other permissions. Defined by Amplifier Platform. */
|
|
17
|
+
entitlement: string[];
|
|
18
|
+
/** OAuth scopes to limit ability of token, e.g. READ_ONLY service accounts. Might overlap too much with `group` field. */
|
|
19
|
+
scope: string[];
|
|
20
|
+
};
|
|
@@ -133,6 +133,8 @@ export type ReportResultUpsertDto = BaseUpsertDto & {
|
|
|
133
133
|
uid?: string;
|
|
134
134
|
/** Department */
|
|
135
135
|
department?: string | null;
|
|
136
|
+
/** Organization */
|
|
137
|
+
organization?: string | null;
|
|
136
138
|
/** Timestamp the report result was generated in ISO8601 format */
|
|
137
139
|
ts: string;
|
|
138
140
|
/** The results generated for the given report */
|