@casual-simulation/aux-records-aws 3.2.2 → 3.2.4-alpha.5857788915

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.
@@ -1,328 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { ACCOUNT_MARKER, DEFAULT_ANY_RESOURCE_POLICY_DOCUMENT, DEFAULT_PUBLIC_READ_POLICY_DOCUMENT, PUBLIC_READ_MARKER, getExpireTime, } from '@casual-simulation/aux-records';
11
- import { differenceBy } from 'lodash';
12
- /**
13
- * Defines a PolicyStore that can store data items in DynamoDB.
14
- */
15
- export class DynamoDBPolicyStore {
16
- constructor(client, policiesTableName, subjectRolesTableName, roleSubjectsTableName, rolesTableName) {
17
- this._dynamo = client;
18
- this._policiesTableName = policiesTableName;
19
- this._subjectRolesTableName = subjectRolesTableName;
20
- this._roleSubjectsTableName = roleSubjectsTableName;
21
- this._rolesTableName = rolesTableName;
22
- }
23
- listPoliciesForMarker(recordName, marker) {
24
- return __awaiter(this, void 0, void 0, function* () {
25
- const policies = [DEFAULT_ANY_RESOURCE_POLICY_DOCUMENT];
26
- if (marker === PUBLIC_READ_MARKER) {
27
- policies.push(DEFAULT_PUBLIC_READ_POLICY_DOCUMENT);
28
- }
29
- const result = yield this._dynamo
30
- .get({
31
- TableName: this._policiesTableName,
32
- Key: {
33
- recordName: recordName,
34
- marker: marker,
35
- },
36
- })
37
- .promise();
38
- const item = result.Item;
39
- if (item) {
40
- policies.push(item.document);
41
- }
42
- return policies;
43
- });
44
- }
45
- listUserPolicies(recordName, startingMarker) {
46
- return __awaiter(this, void 0, void 0, function* () {
47
- const query = typeof startingMarker === 'string'
48
- ? 'recordName = :recordName AND marker > :marker'
49
- : 'recordName = :recordName';
50
- const values = typeof startingMarker === 'string'
51
- ? {
52
- ':recordName': recordName,
53
- ':marker': startingMarker,
54
- }
55
- : {
56
- ':recordName': recordName,
57
- };
58
- const result = yield this._dynamo
59
- .query({
60
- TableName: this._policiesTableName,
61
- KeyConditionExpression: query,
62
- ExpressionAttributeValues: values,
63
- Limit: 10,
64
- })
65
- .promise();
66
- const items = result.Items;
67
- return {
68
- success: true,
69
- policies: items.map((i) => {
70
- let policy = {
71
- marker: i.marker,
72
- document: i.document,
73
- markers: i.markers,
74
- };
75
- return policy;
76
- }),
77
- totalCount: items.length,
78
- };
79
- });
80
- }
81
- listRolesForUser(recordName, userId) {
82
- return __awaiter(this, void 0, void 0, function* () {
83
- const result = yield this._dynamo
84
- .get({
85
- TableName: this._subjectRolesTableName,
86
- Key: {
87
- subjectId: `u/${userId}`,
88
- recordName: recordName,
89
- },
90
- })
91
- .promise();
92
- const item = result.Item;
93
- if (item) {
94
- const now = Date.now();
95
- return item.roles.filter((r) => getExpireTime(r.expireTimeMs) > now);
96
- }
97
- else {
98
- return [];
99
- }
100
- });
101
- }
102
- listRolesForInst(recordName, inst) {
103
- return __awaiter(this, void 0, void 0, function* () {
104
- const result = yield this._dynamo
105
- .get({
106
- TableName: this._subjectRolesTableName,
107
- Key: {
108
- subjectId: `i/${inst}`,
109
- recordName: recordName,
110
- },
111
- })
112
- .promise();
113
- const item = result.Item;
114
- if (item) {
115
- const now = Date.now();
116
- return item.roles.filter((r) => getExpireTime(r.expireTimeMs) > now);
117
- }
118
- else {
119
- return [];
120
- }
121
- });
122
- }
123
- listAssignmentsForRole(recordName, role) {
124
- return __awaiter(this, void 0, void 0, function* () {
125
- const result = yield this._dynamo
126
- .query({
127
- TableName: this._roleSubjectsTableName,
128
- KeyConditionExpression: 'roleId = :roleId',
129
- ExpressionAttributeValues: {
130
- ':roleId': `${recordName}/${role}`,
131
- },
132
- })
133
- .promise();
134
- const items = result.Items;
135
- let assignments = [];
136
- for (let item of items) {
137
- if (getExpireTime(item.expireTimeMs) <= Date.now()) {
138
- continue;
139
- }
140
- if (item.subjectId.startsWith('u/')) {
141
- assignments.push({
142
- type: 'user',
143
- userId: item.subjectId.substring(2),
144
- role: {
145
- role: role,
146
- expireTimeMs: item.expireTimeMs,
147
- },
148
- });
149
- }
150
- else if (item.subjectId.startsWith('i/')) {
151
- assignments.push({
152
- type: 'inst',
153
- inst: item.subjectId.substring(2),
154
- role: {
155
- role: role,
156
- expireTimeMs: item.expireTimeMs,
157
- },
158
- });
159
- }
160
- }
161
- return {
162
- assignments,
163
- totalCount: assignments.length,
164
- };
165
- });
166
- }
167
- getUserPolicy(recordName, marker) {
168
- return __awaiter(this, void 0, void 0, function* () {
169
- let result = yield this._dynamo
170
- .get({
171
- TableName: this._policiesTableName,
172
- Key: {
173
- recordName,
174
- marker,
175
- },
176
- })
177
- .promise();
178
- let item = result.Item;
179
- if (item) {
180
- return {
181
- success: true,
182
- document: item.document,
183
- markers: item.markers,
184
- };
185
- }
186
- return {
187
- success: false,
188
- errorCode: 'policy_not_found',
189
- errorMessage: 'Policy not found.',
190
- };
191
- });
192
- }
193
- updateUserPolicy(recordName, marker, policy) {
194
- return __awaiter(this, void 0, void 0, function* () {
195
- const item = {
196
- recordName,
197
- marker,
198
- document: policy.document,
199
- markers: policy.markers,
200
- };
201
- let result = yield this._dynamo.put({
202
- TableName: this._policiesTableName,
203
- Item: item,
204
- });
205
- return {
206
- success: true,
207
- };
208
- });
209
- }
210
- assignSubjectRole(recordName, subjectId, type, role) {
211
- return __awaiter(this, void 0, void 0, function* () {
212
- const roles = type === 'user'
213
- ? yield this.listRolesForUser(recordName, subjectId)
214
- : yield this.listRolesForInst(recordName, subjectId);
215
- const filtered = roles.filter((r) => r.role !== role.role ||
216
- getExpireTime(r.expireTimeMs) <= role.expireTimeMs);
217
- if (type === 'user') {
218
- return yield this.updateUserRoles(recordName, subjectId, {
219
- roles: [...filtered, role],
220
- });
221
- }
222
- else {
223
- return yield this.updateInstRoles(recordName, subjectId, {
224
- roles: [...filtered, role],
225
- });
226
- }
227
- });
228
- }
229
- revokeSubjectRole(recordName, subjectId, type, role) {
230
- return __awaiter(this, void 0, void 0, function* () {
231
- const roles = type === 'user'
232
- ? yield this.listRolesForUser(recordName, subjectId)
233
- : yield this.listRolesForInst(recordName, subjectId);
234
- const filtered = roles.filter((r) => r.role !== role);
235
- if (type === 'user') {
236
- return yield this.updateUserRoles(recordName, subjectId, {
237
- roles: [...filtered],
238
- });
239
- }
240
- else {
241
- return yield this.updateInstRoles(recordName, subjectId, {
242
- roles: [...filtered],
243
- });
244
- }
245
- });
246
- }
247
- updateUserRoles(recordName, userId, update) {
248
- return __awaiter(this, void 0, void 0, function* () {
249
- const roles = yield this.listRolesForUser(recordName, userId);
250
- return yield this._updateRoles(recordName, `u/${userId}`, update, roles);
251
- });
252
- }
253
- updateInstRoles(recordName, inst, update) {
254
- return __awaiter(this, void 0, void 0, function* () {
255
- const roles = yield this.listRolesForInst(recordName, inst);
256
- return yield this._updateRoles(recordName, `i/${inst}`, update, roles);
257
- });
258
- }
259
- _updateRoles(recordName, subjectId, update, roles) {
260
- return __awaiter(this, void 0, void 0, function* () {
261
- const newRoles = differenceBy(update.roles, roles, (r) => r.role);
262
- const removedRoles = differenceBy(roles, update.roles, (r) => r.role);
263
- if (newRoles.length <= 0 && removedRoles.length <= 0) {
264
- return {
265
- success: true,
266
- };
267
- }
268
- const subjectItem = {
269
- recordName,
270
- subjectId,
271
- roles: update.roles,
272
- };
273
- let items = [
274
- {
275
- Put: {
276
- TableName: this._subjectRolesTableName,
277
- Item: subjectItem,
278
- },
279
- },
280
- ];
281
- for (let role of newRoles) {
282
- const roleItem = {
283
- recordName,
284
- role: role.role,
285
- markers: [ACCOUNT_MARKER],
286
- };
287
- items.push({
288
- Put: {
289
- TableName: this._rolesTableName,
290
- Item: roleItem,
291
- ConditionExpression: 'attribute_not_exists(recordName) AND attribute_not_exists(role)',
292
- },
293
- });
294
- const subjectItem = {
295
- roleId: `${recordName}/${role.role}`,
296
- subjectId,
297
- expireTimeMs: role.expireTimeMs,
298
- };
299
- items.push({
300
- Put: {
301
- TableName: this._roleSubjectsTableName,
302
- Item: subjectItem,
303
- },
304
- });
305
- }
306
- for (let role of removedRoles) {
307
- items.push({
308
- Delete: {
309
- TableName: this._roleSubjectsTableName,
310
- Key: {
311
- roleId: `${recordName}/${role.role}`,
312
- subjectId,
313
- },
314
- },
315
- });
316
- }
317
- yield this._dynamo
318
- .transactWrite({
319
- TransactItems: items,
320
- })
321
- .promise();
322
- return {
323
- success: true,
324
- };
325
- });
326
- }
327
- }
328
- //# sourceMappingURL=DynamoDBPolicyStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DynamoDBPolicyStore.js","sourceRoot":"","sources":["DynamoDBPolicyStore.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { Record, RecordsStore } from '@casual-simulation/aux-records';
2
- import { RecordKey } from '@casual-simulation/aux-records/RecordsStore';
3
- import dynamodb from 'aws-sdk/clients/dynamodb';
4
- export declare class DynamoDBRecordsStore implements RecordsStore {
5
- private _dynamo;
6
- private _tableName;
7
- private _keyTableName;
8
- constructor(dynamo: dynamodb.DocumentClient, tableName: string, keyTableName: string);
9
- getRecordByName(name: string): Promise<Record>;
10
- updateRecord(record: Record): Promise<void>;
11
- addRecord(record: Record): Promise<void>;
12
- addRecordKey(key: RecordKey): Promise<void>;
13
- getRecordKeyByRecordAndHash(recordName: string, hash: string): Promise<RecordKey>;
14
- private _getRecord;
15
- private _getRecordKey;
16
- }
17
- //# sourceMappingURL=DynamoDBRecordsStore.d.ts.map
@@ -1,110 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- export class DynamoDBRecordsStore {
11
- constructor(dynamo, tableName, keyTableName) {
12
- this._dynamo = dynamo;
13
- this._tableName = tableName;
14
- this._keyTableName = keyTableName;
15
- }
16
- getRecordByName(name) {
17
- return __awaiter(this, void 0, void 0, function* () {
18
- const record = yield this._getRecord(name);
19
- if (!record) {
20
- return null;
21
- }
22
- return {
23
- name: record.recordName,
24
- ownerId: record.ownerId,
25
- secretHashes: record.secretHashes,
26
- secretSalt: record.secretSalt,
27
- };
28
- });
29
- }
30
- updateRecord(record) {
31
- return __awaiter(this, void 0, void 0, function* () {
32
- const r = yield this._getRecord(record.name);
33
- let now = Date.now();
34
- let update = {
35
- recordName: record.name,
36
- ownerId: record.ownerId,
37
- secretHashes: record.secretHashes,
38
- secretSalt: record.secretSalt,
39
- updateTime: now,
40
- };
41
- if (!r) {
42
- update.creationTime = now;
43
- }
44
- else {
45
- update.creationTime = r.creationTime;
46
- }
47
- yield this._dynamo
48
- .put({
49
- TableName: this._tableName,
50
- Item: update,
51
- })
52
- .promise();
53
- });
54
- }
55
- addRecord(record) {
56
- return __awaiter(this, void 0, void 0, function* () {
57
- return yield this.updateRecord(record);
58
- });
59
- }
60
- addRecordKey(key) {
61
- return __awaiter(this, void 0, void 0, function* () {
62
- const existingKey = yield this._getRecordKey(key.recordName, key.secretHash);
63
- if (!!existingKey) {
64
- return;
65
- }
66
- let update = {
67
- recordName: key.recordName,
68
- secretHash: key.secretHash,
69
- policy: key.policy,
70
- creatorId: key.creatorId,
71
- creationTime: Date.now()
72
- };
73
- yield this._dynamo.put({
74
- TableName: this._keyTableName,
75
- Item: update
76
- }).promise();
77
- });
78
- }
79
- getRecordKeyByRecordAndHash(recordName, hash) {
80
- return __awaiter(this, void 0, void 0, function* () {
81
- return this._getRecordKey(recordName, hash);
82
- });
83
- }
84
- _getRecord(name) {
85
- return __awaiter(this, void 0, void 0, function* () {
86
- const record = yield this._dynamo
87
- .get({
88
- TableName: this._tableName,
89
- Key: {
90
- recordName: name,
91
- },
92
- })
93
- .promise();
94
- return record.Item;
95
- });
96
- }
97
- _getRecordKey(recordName, hash) {
98
- return __awaiter(this, void 0, void 0, function* () {
99
- const key = yield this._dynamo.get({
100
- TableName: this._keyTableName,
101
- Key: {
102
- recordName: recordName,
103
- secretHash: hash
104
- }
105
- }).promise();
106
- return key.Item;
107
- });
108
- }
109
- }
110
- //# sourceMappingURL=DynamoDBRecordsStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DynamoDBRecordsStore.js","sourceRoot":"","sources":["DynamoDBRecordsStore.ts"],"names":[],"mappings":";;;;;;;;;AAIA,MAAM,OAAO,oBAAoB;IAK7B,YAAY,MAA+B,EAAE,SAAiB,EAAE,YAAoB;QAChF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACtC,CAAC;IAEK,eAAe,CAAC,IAAY;;YAC9B,MAAM,MAAM,GAAiB,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAEzD,IAAI,CAAC,MAAM,EAAE;gBACT,OAAO,IAAI,CAAC;aACf;YAED,OAAO;gBACH,IAAI,EAAE,MAAM,CAAC,UAAU;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,UAAU,EAAE,MAAM,CAAC,UAAU;aAChC,CAAC;QACN,CAAC;KAAA;IAEK,YAAY,CAAC,MAAc;;YAC7B,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAE7C,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACrB,IAAI,MAAM,GAA0B;gBAChC,UAAU,EAAE,MAAM,CAAC,IAAI;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,UAAU,EAAE,GAAG;aAClB,CAAC;YAEF,IAAI,CAAC,CAAC,EAAE;gBACJ,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC;aAC7B;iBAAM;gBACH,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;aACxC;YAED,MAAM,IAAI,CAAC,OAAO;iBACb,GAAG,CAAC;gBACD,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,IAAI,EAAE,MAAM;aACf,CAAC;iBACD,OAAO,EAAE,CAAC;QACnB,CAAC;KAAA;IAEK,SAAS,CAAC,MAAc;;YAC1B,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;KAAA;IAEK,YAAY,CAAC,GAAc;;YAC7B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;YAE7E,IAAI,CAAC,CAAC,WAAW,EAAE;gBACf,OAAO;aACV;YAED,IAAI,MAAM,GAAc;gBACpB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;aAC3B,CAAC;YAEF,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;gBACnB,SAAS,EAAE,IAAI,CAAC,aAAa;gBAC7B,IAAI,EAAE,MAAM;aACf,CAAC,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;KAAA;IAEK,2BAA2B,CAAC,UAAkB,EAAE,IAAY;;YAC9D,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;KAAA;IAEa,UAAU,CAAC,IAAY;;YACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO;iBAC5B,GAAG,CAAC;gBACD,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,GAAG,EAAE;oBACD,UAAU,EAAE,IAAI;iBACnB;aACJ,CAAC;iBACD,OAAO,EAAE,CAAC;YAEf,OAAO,MAAM,CAAC,IAAoB,CAAC;QACvC,CAAC;KAAA;IAEa,aAAa,CAAC,UAAkB,EAAE,IAAY;;YACxD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;gBAC/B,SAAS,EAAE,IAAI,CAAC,aAAa;gBAC7B,GAAG,EAAE;oBACD,UAAU,EAAE,UAAU;oBACtB,UAAU,EAAE,IAAI;iBACnB;aACJ,CAAC,CAAC,OAAO,EAAE,CAAC;YAEb,OAAO,GAAG,CAAC,IAAiB,CAAC;QACjC,CAAC;KAAA;CACJ"}