@webiny/api-core-ddb 0.0.0-unstable.3c5210ad37

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.
Files changed (54) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +11 -0
  3. package/adminUsers/definitions/entities.d.ts +3 -0
  4. package/adminUsers/definitions/entities.js +10 -0
  5. package/adminUsers/definitions/entities.js.map +1 -0
  6. package/adminUsers/definitions/types.d.ts +5 -0
  7. package/adminUsers/definitions/types.js +3 -0
  8. package/adminUsers/definitions/types.js.map +1 -0
  9. package/adminUsers/index.d.ts +2 -0
  10. package/adminUsers/index.js +165 -0
  11. package/adminUsers/index.js.map +1 -0
  12. package/adminUsers/types.d.ts +22 -0
  13. package/adminUsers/types.js +7 -0
  14. package/adminUsers/types.js.map +1 -0
  15. package/createApiCoreDdb.d.ts +7 -0
  16. package/createApiCoreDdb.js +24 -0
  17. package/createApiCoreDdb.js.map +1 -0
  18. package/index.d.ts +1 -0
  19. package/index.js +3 -0
  20. package/index.js.map +1 -0
  21. package/keyValueStore/KeyValueStoreDynamoTable.d.ts +15 -0
  22. package/keyValueStore/KeyValueStoreDynamoTable.js +29 -0
  23. package/keyValueStore/KeyValueStoreDynamoTable.js.map +1 -0
  24. package/keyValueStore/KeyValueStoreStorageOperations.d.ts +16 -0
  25. package/keyValueStore/KeyValueStoreStorageOperations.js +83 -0
  26. package/keyValueStore/KeyValueStoreStorageOperations.js.map +1 -0
  27. package/keyValueStore/index.d.ts +8 -0
  28. package/keyValueStore/index.js +6 -0
  29. package/keyValueStore/index.js.map +1 -0
  30. package/package.json +40 -0
  31. package/security/definitions/entities.d.ts +5 -0
  32. package/security/definitions/entities.js +28 -0
  33. package/security/definitions/entities.js.map +1 -0
  34. package/security/definitions/types.d.ts +14 -0
  35. package/security/definitions/types.js +3 -0
  36. package/security/definitions/types.js.map +1 -0
  37. package/security/index.d.ts +3 -0
  38. package/security/index.js +476 -0
  39. package/security/index.js.map +1 -0
  40. package/security/types.d.ts +10 -0
  41. package/security/types.js +8 -0
  42. package/security/types.js.map +1 -0
  43. package/tenancy/definitions/tenantEntity.d.ts +8 -0
  44. package/tenancy/definitions/tenantEntity.js +12 -0
  45. package/tenancy/definitions/tenantEntity.js.map +1 -0
  46. package/tenancy/definitions/types.d.ts +6 -0
  47. package/tenancy/definitions/types.js +3 -0
  48. package/tenancy/definitions/types.js.map +1 -0
  49. package/tenancy/index.d.ts +2 -0
  50. package/tenancy/index.js +135 -0
  51. package/tenancy/index.js.map +1 -0
  52. package/tenancy/types.d.ts +10 -0
  53. package/tenancy/types.js +6 -0
  54. package/tenancy/types.js.map +1 -0
@@ -0,0 +1,135 @@
1
+ import { createTable } from "@webiny/db-dynamodb";
2
+ import WebinyError from "@webiny/error";
3
+ import { createTenantEntity } from "./definitions/tenantEntity.js";
4
+ import { ENTITIES } from "./types.js";
5
+ const setTenantDefaults = item => {
6
+ if (!item.tags) {
7
+ item.tags = [];
8
+ }
9
+ if (!item.description) {
10
+ item.description = "";
11
+ }
12
+ return item;
13
+ };
14
+ export const createStorageOperations = params => {
15
+ const {
16
+ documentClient
17
+ } = params;
18
+ const tableInstance = createTable({
19
+ name: process.env.DB_TABLE_TENANCY || process.env.DB_TABLE,
20
+ documentClient
21
+ });
22
+ const entities = {
23
+ tenants: createTenantEntity({
24
+ entityName: ENTITIES.TENANT,
25
+ table: tableInstance.table
26
+ })
27
+ };
28
+ return {
29
+ getTable() {
30
+ return tableInstance;
31
+ },
32
+ getEntities() {
33
+ return entities;
34
+ },
35
+ async getTenantsByIds(ids) {
36
+ const batchReader = entities.tenants.createEntityReader({
37
+ read: ids.map(id => {
38
+ return {
39
+ PK: `T#${id}`,
40
+ SK: "A"
41
+ };
42
+ })
43
+ });
44
+ const tenants = await batchReader.execute();
45
+ return tenants.map(item => {
46
+ return item.data;
47
+ }).map(item => {
48
+ return setTenantDefaults(item);
49
+ });
50
+ },
51
+ async listTenants(params = {}) {
52
+ const {
53
+ parent
54
+ } = params;
55
+ const options = {
56
+ index: "GSI1"
57
+ };
58
+ if (parent) {
59
+ options.beginsWith = `T#${parent}#`;
60
+ } else {
61
+ options.gt = " ";
62
+ }
63
+ const tenants = await entities.tenants.queryAll({
64
+ partitionKey: `TENANTS`,
65
+ options
66
+ });
67
+ return tenants.map(item => {
68
+ return item.data;
69
+ }).map(item => {
70
+ return setTenantDefaults(item);
71
+ });
72
+ },
73
+ async createTenant(data) {
74
+ const keys = {
75
+ PK: `T#${data.id}`,
76
+ SK: "A",
77
+ GSI1_PK: "TENANTS",
78
+ GSI1_SK: `T#${data.parent}#${data.createdOn}`,
79
+ GSI_TENANT: data.id
80
+ };
81
+ try {
82
+ await entities.tenants.put({
83
+ TYPE: "tenancy.tenant",
84
+ ...keys,
85
+ data
86
+ });
87
+ return data;
88
+ } catch (err) {
89
+ throw WebinyError.from(err, {
90
+ message: "Could not create tenant record.",
91
+ code: "CREATE_TENANT_ERROR",
92
+ data: {
93
+ keys,
94
+ data
95
+ }
96
+ });
97
+ }
98
+ },
99
+ async updateTenant(data) {
100
+ const tenantPK = `T#${data.id}`;
101
+ const keys = {
102
+ PK: tenantPK,
103
+ SK: "A",
104
+ GSI1_PK: "TENANTS",
105
+ GSI1_SK: `T#${data.parent}#${data.createdOn}`,
106
+ GSI_TENANT: data.id,
107
+ TYPE: "tenancy.tenant"
108
+ };
109
+ try {
110
+ await entities.tenants.put({
111
+ ...keys,
112
+ data
113
+ });
114
+ return data;
115
+ } catch (err) {
116
+ throw WebinyError.from(err, {
117
+ message: "Could not update tenant record.",
118
+ code: "CREATE_TENANT_ERROR",
119
+ data: {
120
+ keys,
121
+ data
122
+ }
123
+ });
124
+ }
125
+ },
126
+ async deleteTenant(id) {
127
+ await entities.tenants.delete({
128
+ PK: `T#${id}`,
129
+ SK: "A"
130
+ });
131
+ }
132
+ };
133
+ };
134
+
135
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createTable","WebinyError","createTenantEntity","ENTITIES","setTenantDefaults","item","tags","description","createStorageOperations","params","documentClient","tableInstance","name","process","env","DB_TABLE_TENANCY","DB_TABLE","entities","tenants","entityName","TENANT","table","getTable","getEntities","getTenantsByIds","ids","batchReader","createEntityReader","read","map","id","PK","SK","execute","data","listTenants","parent","options","index","beginsWith","gt","queryAll","partitionKey","createTenant","keys","GSI1_PK","GSI1_SK","createdOn","GSI_TENANT","put","TYPE","err","from","message","code","updateTenant","tenantPK","deleteTenant","delete"],"sources":["index.ts"],"sourcesContent":["import { createTable, type IEntityQueryAllParams } from \"@webiny/db-dynamodb\";\nimport WebinyError from \"@webiny/error\";\nimport { createTenantEntity } from \"./definitions/tenantEntity.js\";\nimport type { CreateTenancyStorageOperations } from \"./types.js\";\nimport { ENTITIES } from \"./types.js\";\nimport type { ListTenantsParams, Tenant } from \"@webiny/api-core/types/tenancy.js\";\n\nconst setTenantDefaults = (item: Tenant) => {\n if (!item.tags) {\n item.tags = [];\n }\n\n if (!item.description) {\n item.description = \"\";\n }\n\n return item;\n};\n\nexport const createStorageOperations: CreateTenancyStorageOperations = params => {\n const { documentClient } = params;\n\n const tableInstance = createTable({\n name: (process.env.DB_TABLE_TENANCY || process.env.DB_TABLE) as string,\n documentClient\n });\n\n const entities = {\n tenants: createTenantEntity({\n entityName: ENTITIES.TENANT,\n table: tableInstance.table\n })\n };\n\n return {\n getTable() {\n return tableInstance;\n },\n getEntities() {\n return entities;\n },\n\n async getTenantsByIds(ids: string[]): Promise<Tenant[]> {\n const batchReader = entities.tenants.createEntityReader({\n read: ids.map(id => {\n return {\n PK: `T#${id}`,\n SK: \"A\"\n };\n })\n });\n const tenants = await batchReader.execute();\n\n return tenants\n .map(item => {\n return item.data;\n })\n .map(item => {\n return setTenantDefaults(item);\n });\n },\n\n async listTenants(params: ListTenantsParams = {}): Promise<Tenant[]> {\n const { parent } = params;\n\n const options: IEntityQueryAllParams[\"options\"] = {\n index: \"GSI1\"\n };\n\n if (parent) {\n options.beginsWith = `T#${parent}#`;\n } else {\n options.gt = \" \";\n }\n\n const tenants = await entities.tenants.queryAll({\n partitionKey: `TENANTS`,\n options\n });\n\n return tenants\n .map(item => {\n return item.data;\n })\n .map(item => {\n return setTenantDefaults(item);\n });\n },\n\n async createTenant(data: Tenant): Promise<Tenant> {\n const keys = {\n PK: `T#${data.id}`,\n SK: \"A\",\n GSI1_PK: \"TENANTS\",\n GSI1_SK: `T#${data.parent}#${data.createdOn}`,\n GSI_TENANT: data.id\n };\n\n try {\n await entities.tenants.put({\n TYPE: \"tenancy.tenant\",\n ...keys,\n data\n });\n\n return data;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not create tenant record.\",\n code: \"CREATE_TENANT_ERROR\",\n data: {\n keys,\n data\n }\n });\n }\n },\n\n async updateTenant(data: Tenant): Promise<Tenant> {\n const tenantPK = `T#${data.id}`;\n\n const keys = {\n PK: tenantPK,\n SK: \"A\",\n GSI1_PK: \"TENANTS\",\n GSI1_SK: `T#${data.parent}#${data.createdOn}`,\n GSI_TENANT: data.id,\n TYPE: \"tenancy.tenant\"\n };\n\n try {\n await entities.tenants.put({\n ...keys,\n data\n });\n return data;\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Could not update tenant record.\",\n code: \"CREATE_TENANT_ERROR\",\n data: { keys, data }\n });\n }\n },\n\n async deleteTenant(id: string): Promise<void> {\n await entities.tenants.delete({\n PK: `T#${id}`,\n SK: \"A\"\n });\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import type { TenancyStorageOperations } from "@webiny/api-core/types/tenancy.js";
2
+ import type { DynamoDBDocument } from "@webiny/aws-sdk/client-dynamodb/index.js";
3
+ export declare enum ENTITIES {
4
+ TENANT = "TenancyTenant"
5
+ }
6
+ export interface CreateTenancyStorageOperations {
7
+ (params: {
8
+ documentClient: DynamoDBDocument;
9
+ }): TenancyStorageOperations;
10
+ }
@@ -0,0 +1,6 @@
1
+ export let ENTITIES = /*#__PURE__*/function (ENTITIES) {
2
+ ENTITIES["TENANT"] = "TenancyTenant";
3
+ return ENTITIES;
4
+ }({});
5
+
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ENTITIES"],"sources":["types.ts"],"sourcesContent":["import type { TenancyStorageOperations } from \"@webiny/api-core/types/tenancy.js\";\nimport type { DynamoDBDocument } from \"@webiny/aws-sdk/client-dynamodb/index.js\";\n\nexport enum ENTITIES {\n TENANT = \"TenancyTenant\"\n}\n\nexport interface CreateTenancyStorageOperations {\n (params: { documentClient: DynamoDBDocument }): TenancyStorageOperations;\n}\n"],"mappings":"AAGA,WAAYA,QAAQ,0BAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA","ignoreList":[]}