dt-common-device 5.0.2 → 5.0.4

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.
@@ -8,7 +8,8 @@ export declare enum Resource {
8
8
  DEVICE = "device",
9
9
  SCHEDULE = "schedule",
10
10
  USER = "user",
11
- GUEST = "guest"
11
+ GUEST = "guest",
12
+ USER_GROUP = "userGroup"
12
13
  }
13
14
  export interface IAuditProperties {
14
15
  resource: Resource;
@@ -12,4 +12,5 @@ var Resource;
12
12
  Resource["SCHEDULE"] = "schedule";
13
13
  Resource["USER"] = "user";
14
14
  Resource["GUEST"] = "guest";
15
+ Resource["USER_GROUP"] = "userGroup";
15
16
  })(Resource || (exports.Resource = Resource = {}));
@@ -29,24 +29,34 @@ let config = null;
29
29
  let auditInitialized = false;
30
30
  let eventSubscription = null;
31
31
  let db_keys = null;
32
+ let sourceKey = null;
32
33
  async function initialize(cfg) {
33
34
  // Check if required env variables are set
34
- checkRequiredEnv(constants_1.CONFIG_KEYS.REQUIRED.envs);
35
+ checkRequiredEnv(constants_1.CONFIG_KEYS.REQUIRED.env);
35
36
  // Initialize config
36
37
  config = { ...cfg };
38
+ if (cfg.SOURCE === "ADMIN_SERVICE") {
39
+ sourceKey = "ADMIN";
40
+ db_keys = constants_1.CONFIG_KEYS.ADMIN.db_keys;
41
+ await validateAdminConfig(cfg);
42
+ }
37
43
  if (cfg.SOURCE === "ACCESS_SERVICE") {
44
+ sourceKey = "ACCESS";
38
45
  db_keys = constants_1.CONFIG_KEYS.ACCESS.db_keys;
39
46
  await validateAccessConfig(cfg);
40
47
  }
41
48
  if (cfg.SOURCE === "SCHEDULE_SERVICE") {
49
+ sourceKey = "SCHEDULE";
42
50
  db_keys = constants_1.CONFIG_KEYS.SCHEDULE.db_keys;
43
51
  await validateScheduleConfig(cfg);
44
52
  }
45
53
  if (cfg.SOURCE === "ENERGY_SERVICE") {
54
+ sourceKey = "ENERGY";
46
55
  db_keys = constants_1.CONFIG_KEYS.ENERGY.db_keys;
47
56
  await validateEnergyConfig(cfg);
48
57
  }
49
58
  if (cfg.SOURCE === "REMOTE_SERVICE") {
59
+ sourceKey = "REMOTE";
50
60
  db_keys = constants_1.CONFIG_KEYS.REMOTE.db_keys;
51
61
  await validateRemoteConfig(cfg);
52
62
  }
@@ -89,6 +99,12 @@ async function validateInternalEventHandler(cfg) {
89
99
  }
90
100
  }
91
101
  }
102
+ async function validateAdminConfig(cfg) {
103
+ checkRequiredEnv(constants_1.CONFIG_KEYS.ADMIN.env);
104
+ if (constants_1.CONFIG_KEYS.ADMIN.INTERNAL_EVENT_HANDLER) {
105
+ await validateInternalEventHandler(cfg);
106
+ }
107
+ }
92
108
  async function validateAccessConfig(cfg) {
93
109
  checkRequiredEnv(constants_1.CONFIG_KEYS.ACCESS.env);
94
110
  if (constants_1.CONFIG_KEYS.ACCESS.INTERNAL_EVENT_HANDLER) {
@@ -128,20 +144,26 @@ function getDeviceServiceUrl() {
128
144
  return deviceServiceUrl;
129
145
  }
130
146
  function getAdminServiceUrl() {
131
- const adminServiceUrl = process.env.ADMIN_SERVICE;
132
- if (!adminServiceUrl) {
133
- getConfig().LOGGER.error("ADMIN_SERVICE must be set in environment variables");
134
- throw new Error("dt-common-device: ADMIN_SERVICE must be set in environment variables");
147
+ if (constants_1.CONFIG_KEYS[sourceKey].env.includes("ADMIN_SERVICE")) {
148
+ const adminServiceUrl = process.env.ADMIN_SERVICE;
149
+ if (!adminServiceUrl) {
150
+ getConfig().LOGGER.error("ADMIN_SERVICE must be set in environment variables");
151
+ throw new Error("dt-common-device: ADMIN_SERVICE must be set in environment variables");
152
+ }
153
+ return adminServiceUrl;
135
154
  }
136
- return adminServiceUrl;
155
+ throw new Error("dt-common-device: ADMIN_SERVICE is not configured for this service");
137
156
  }
138
157
  function getSqsQueueUrl() {
139
- const sqsQueueUrl = process.env.AWS_SQS_URL;
140
- if (!sqsQueueUrl) {
141
- getConfig().LOGGER.error("AWS_SQS_URL must be set in environment variables");
142
- throw new Error("dt-common-device: AWS_SQS_URL must be set in environment variables");
158
+ if (constants_1.CONFIG_KEYS[sourceKey].env.includes("AWS_SQS_URL")) {
159
+ const sqsQueueUrl = process.env.AWS_SQS_URL;
160
+ if (!sqsQueueUrl) {
161
+ getConfig().LOGGER.error("AWS_SQS_URL must be set in environment variables");
162
+ throw new Error("dt-common-device: AWS_SQS_URL must be set in environment variables");
163
+ }
164
+ return sqsQueueUrl;
143
165
  }
144
- return sqsQueueUrl;
166
+ throw new Error("dt-common-device: AWS_SQS_URL is not configured for this service");
145
167
  }
146
168
  function getEventSubscription() {
147
169
  return eventSubscription;
@@ -1,6 +1,6 @@
1
1
  export declare const CONFIG_KEYS: {
2
2
  REQUIRED: {
3
- envs: string[];
3
+ env: string[];
4
4
  };
5
5
  ACCESS: {
6
6
  env: string[];
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CONFIG_KEYS = void 0;
4
4
  exports.CONFIG_KEYS = {
5
5
  REQUIRED: {
6
- envs: [
6
+ env: [
7
7
  "AWS_SECRET_ACCESS_KEY",
8
8
  "AWS_REGION",
9
9
  "AWS_ACCESS_KEY_ID",
@@ -14,11 +14,11 @@ exports.CONFIG_KEYS = {
14
14
  "POSTHOG_API_KEY",
15
15
  "POSTHOG_HOST",
16
16
  "DEVICE_SERVICE",
17
- "DT_API_KEY"
17
+ "DT_API_KEY",
18
18
  ],
19
19
  },
20
20
  ACCESS: {
21
- env: ["ADMIN_DB_URI", "PMS_DB_URI"],
21
+ env: ["ADMIN_DB_URI", "PMS_DB_URI", "AWS_SQS_URL", "ADMIN_SERVICE"],
22
22
  INTERNAL_EVENT_HANDLER: true,
23
23
  db_keys: {
24
24
  base: "DATABASE_URL",
@@ -36,7 +36,7 @@ exports.CONFIG_KEYS = {
36
36
  },
37
37
  },
38
38
  ENERGY: {
39
- env: ["ADMIN_DB_URI", "PMS_DB_URI"],
39
+ env: ["ADMIN_DB_URI", "PMS_DB_URI", "AWS_SQS_URL"],
40
40
  INTERNAL_EVENT_HANDLER: true,
41
41
  db_keys: {
42
42
  base: "DATABASE_URL",
@@ -54,7 +54,7 @@ exports.CONFIG_KEYS = {
54
54
  },
55
55
  },
56
56
  SCHEDULE: {
57
- env: ["ADMIN_DB_URI", "ACCESS_DB_URI"],
57
+ env: ["ADMIN_DB_URI", "ACCESS_DB_URI", "AWS_SQS_URL"],
58
58
  INTERNAL_EVENT_HANDLER: true,
59
59
  db_keys: {
60
60
  admin: "ADMIN_DB_URI",
@@ -64,7 +64,7 @@ class RateLimitUtils {
64
64
  provider: constants_1.CONNECTION_PROVIDERS.SCHLAGE,
65
65
  });
66
66
  configs.set(constants_1.CONNECTION_PROVIDERS.SMARTTHINGS, {
67
- maxRequests: 250,
67
+ maxRequests: 12,
68
68
  windowMs: 60000, // 1 minute
69
69
  provider: constants_1.CONNECTION_PROVIDERS.SMARTTHINGS,
70
70
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dt-common-device",
3
- "version": "5.0.2",
3
+ "version": "5.0.4",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [