grm-shared-library 1.1.207 → 1.1.209

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 (49) hide show
  1. package/README.md +70 -0
  2. package/dist/cjs/modules/permission/data/permissions.data.js +17 -0
  3. package/dist/cjs/modules/permission/data/permissions.data.js.map +1 -1
  4. package/dist/cjs/modules/permission/enums/permission-actions.enum.js +36 -0
  5. package/dist/cjs/modules/permission/enums/permission-actions.enum.js.map +1 -1
  6. package/dist/cjs/modules/permission/enums/permissions-module.enum.js +1 -0
  7. package/dist/cjs/modules/permission/enums/permissions-module.enum.js.map +1 -1
  8. package/dist/cjs/modules/role/constants/roles-by-scope.js +4 -2
  9. package/dist/cjs/modules/role/constants/roles-by-scope.js.map +1 -1
  10. package/dist/cjs/modules/role/data/roles.data.js +103 -5
  11. package/dist/cjs/modules/role/data/roles.data.js.map +1 -1
  12. package/dist/cjs/modules/role/enums/role.enum.js +16 -0
  13. package/dist/cjs/modules/role/enums/role.enum.js.map +1 -1
  14. package/dist/cjs/modules/tracking/enums/tracking-provider-code.enum.js +7 -4
  15. package/dist/cjs/modules/tracking/enums/tracking-provider-code.enum.js.map +1 -1
  16. package/dist/cjs/modules/tracking/enums/tracking-transport-type.enum.js +3 -3
  17. package/dist/cjs/modules/tracking/enums/tracking-transport-type.enum.js.map +1 -1
  18. package/dist/cjs/modules/tracking/index.js +2 -0
  19. package/dist/cjs/modules/tracking/index.js.map +1 -1
  20. package/dist/cjs/modules/tracking/interfaces/tracking-provider-descriptor.js +79 -0
  21. package/dist/cjs/modules/tracking/interfaces/tracking-provider-descriptor.js.map +1 -0
  22. package/dist/esm/modules/permission/data/permissions.data.js +17 -0
  23. package/dist/esm/modules/permission/data/permissions.data.js.map +1 -1
  24. package/dist/esm/modules/permission/enums/permission-actions.enum.js +36 -0
  25. package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
  26. package/dist/esm/modules/permission/enums/permissions-module.enum.js +1 -0
  27. package/dist/esm/modules/permission/enums/permissions-module.enum.js.map +1 -1
  28. package/dist/esm/modules/role/constants/roles-by-scope.js +4 -2
  29. package/dist/esm/modules/role/constants/roles-by-scope.js.map +1 -1
  30. package/dist/esm/modules/role/data/roles.data.js +103 -5
  31. package/dist/esm/modules/role/data/roles.data.js.map +1 -1
  32. package/dist/esm/modules/role/enums/role.enum.js +16 -0
  33. package/dist/esm/modules/role/enums/role.enum.js.map +1 -1
  34. package/dist/esm/modules/tracking/enums/tracking-provider-code.enum.js +7 -4
  35. package/dist/esm/modules/tracking/enums/tracking-provider-code.enum.js.map +1 -1
  36. package/dist/esm/modules/tracking/enums/tracking-transport-type.enum.js +3 -3
  37. package/dist/esm/modules/tracking/enums/tracking-transport-type.enum.js.map +1 -1
  38. package/dist/esm/modules/tracking/index.js +2 -0
  39. package/dist/esm/modules/tracking/index.js.map +1 -1
  40. package/dist/esm/modules/tracking/interfaces/tracking-provider-descriptor.js +75 -0
  41. package/dist/esm/modules/tracking/interfaces/tracking-provider-descriptor.js.map +1 -0
  42. package/dist/types/modules/permission/enums/permission-actions.enum.d.ts +12 -0
  43. package/dist/types/modules/permission/enums/permissions-module.enum.d.ts +1 -0
  44. package/dist/types/modules/role/enums/role.enum.d.ts +16 -0
  45. package/dist/types/modules/tracking/enums/tracking-provider-code.enum.d.ts +7 -4
  46. package/dist/types/modules/tracking/enums/tracking-transport-type.enum.d.ts +3 -3
  47. package/dist/types/modules/tracking/index.d.ts +1 -0
  48. package/dist/types/modules/tracking/interfaces/tracking-provider-descriptor.d.ts +117 -0
  49. package/package.json +1 -1
package/README.md CHANGED
@@ -145,3 +145,73 @@ filtering) are delivered in later phases and should build on top of these types.
145
145
  ```bash
146
146
  npm test # compiles src/modules/country and runs the country/currency suite
147
147
  ```
148
+
149
+ ## Roles and permissions
150
+
151
+ This package is the authority on both. clarion-authentication seeds them into its
152
+ database on boot; every other service reads them from here.
153
+
154
+ | File | Holds |
155
+ |---|---|
156
+ | `role/enums/role.enum.ts` | `Roles` - the role names. |
157
+ | `role/constants/roles-by-scope.ts` | `ORGANIZATION_ROLES` / `CONTROL_CENTRE_ROLES` / `MOBILE_ROLES` - each role's **scope**. |
158
+ | `role/data/roles.data.ts` | `ROLES_DATA` - the permissions each role is seeded with. |
159
+ | `permission/enums/permission-actions.enum.ts` | `PermissionActions` - every action, as `verb:resource`. |
160
+ | `permission/data/permissions.data.ts` | `PERMISSIONS_DATA` - the catalogue role management shows, grouped by `PermissionsModule`. |
161
+
162
+ **WHAT a role may do and WHERE it may do it are separate.** Permissions answer the
163
+ first and are checked by the gateway's `PermissionGuard` (ANY-of). Scope answers the
164
+ second and comes only from which list in `roles-by-scope.ts` the role is in: the
165
+ gateway (`AccessScopeService`), clarion-authentication (`AuthorizationService`) and
166
+ clarion-socket (tracking rooms) all read those lists, and downstream services confine
167
+ a caller to the scope the gateway built. A role in no list gets no scope at all and
168
+ every tenant-scoped call it makes fails closed.
169
+
170
+ That is how one job exists at two scopes. `Organization:Response-Units-Admin` and
171
+ `Control-Centre:Response-Units-Admin` are seeded from the **same** permission list
172
+ (`RESPONSE_UNITS_ADMIN_PERMISSIONS`) - all of the `Response Unit` and `Tracking`
173
+ modules, plus `read:control-centre` and `read:organization`, which their own screens
174
+ call - and differ only in the list they are in.
175
+
176
+ ### The Tracking permission module
177
+
178
+ clarion-response-tracking's routes used to be guarded by the `Response Unit` actions.
179
+ Every mobile user holds `read:response-unit`, so every app user could read their
180
+ organization's tracking provider connections, and nobody could be given tracking
181
+ without being given the response units. They now have their own:
182
+
183
+ | Action | Covers |
184
+ |---|---|
185
+ | `create` / `read` / `update` / `delete:tracking-provider-connection` | The link to a tracking platform (Telox, Wialon). `update` also covers test, enable, disable, reconnect. |
186
+ | `create` / `read` / `update` / `delete:tracking-device-binding` | Which provider unit is which response unit. `read` also covers the unmapped-units worklist; `update`, resolving / reopening an entry on it. |
187
+ | `read:tracking-position` | Where units are now - the incident map and live tracking. |
188
+ | `read:tracking-history` | Where a unit has been. Separate on purpose: a movement history is a record of somebody's working day. |
189
+ | `read:tracking-operations` | The tracking operations dashboard. |
190
+ | `manage:tracking-operations` | Reconciling the tracking service's copy of the response units (the dry run included). |
191
+
192
+ Who holds them: Owner, Admin, `Control-Centre:Admin` and both Response-Units-Admins -
193
+ all twelve (everybody who could administer tracking before the split still can);
194
+ `Organization:User` - the five `read` actions; `Control-Centre:User` and `Responder` -
195
+ position and history; `Mobile-User` - **none**.
196
+
197
+ ### Adding a role: every step fails silently on its own
198
+
199
+ 1. **Here** - the `Roles` value, a scope list, and a `ROLES_DATA` entry. `roles.spec.ts`
200
+ fails if a scoped role is unseeded, a seeded role is not in the enum, or a role
201
+ holds an action the catalogue does not list.
202
+ 2. **clarion-authentication** - `users.roles` is a Postgres ENUM array, so the label
203
+ needs an `ALTER TYPE "users_roles_enum" ADD VALUE IF NOT EXISTS` migration. Without
204
+ it the role is seeded, offered by the admin, and rejected at the INSERT.
205
+ 3. **Every service that reads the role lists** - clarion-api-gateway,
206
+ clarion-authentication, clarion-socket - must INSTALL the new version (the lockfile
207
+ decides, not the caret) and redeploy. The gateway also validates `roles` with
208
+ `@IsEnum(Roles)`.
209
+ 4. **clarion-socket** names the organization roles admitted to tracking rooms one by
210
+ one; an organization role that should see the fleet has to be added there.
211
+ 5. **clarion-admin** shows menu entries by role NAME (`requiresAnyRole` in
212
+ `sidebar-data.ts`), from `clarion-shared-types`' mirror of `Roles`.
213
+
214
+ Deploy clarion-authentication first and let it reseed. The gateway caches role
215
+ permissions for five minutes, so a gateway that starts REQUIRING a new action should
216
+ go out after that window - or the roles that were just granted it are refused until
217
+ their cache entry expires.
@@ -104,6 +104,23 @@ exports.PERMISSIONS_DATA = [
104
104
  permission_actions_enum_1.PermissionActions.DELETE_RESPONSE_UNIT
105
105
  ]
106
106
  },
107
+ {
108
+ module: permissions_module_enum_1.PermissionsModule.TRACKING,
109
+ actions: [
110
+ permission_actions_enum_1.PermissionActions.CREATE_TRACKING_PROVIDER_CONNECTION,
111
+ permission_actions_enum_1.PermissionActions.READ_TRACKING_PROVIDER_CONNECTION,
112
+ permission_actions_enum_1.PermissionActions.UPDATE_TRACKING_PROVIDER_CONNECTION,
113
+ permission_actions_enum_1.PermissionActions.DELETE_TRACKING_PROVIDER_CONNECTION,
114
+ permission_actions_enum_1.PermissionActions.CREATE_TRACKING_DEVICE_BINDING,
115
+ permission_actions_enum_1.PermissionActions.READ_TRACKING_DEVICE_BINDING,
116
+ permission_actions_enum_1.PermissionActions.UPDATE_TRACKING_DEVICE_BINDING,
117
+ permission_actions_enum_1.PermissionActions.DELETE_TRACKING_DEVICE_BINDING,
118
+ permission_actions_enum_1.PermissionActions.READ_TRACKING_POSITION,
119
+ permission_actions_enum_1.PermissionActions.READ_TRACKING_HISTORY,
120
+ permission_actions_enum_1.PermissionActions.READ_TRACKING_OPERATIONS,
121
+ permission_actions_enum_1.PermissionActions.MANAGE_TRACKING_OPERATIONS
122
+ ]
123
+ },
107
124
  {
108
125
  module: permissions_module_enum_1.PermissionsModule.BILLING,
109
126
  actions: [
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.data.js","sourceRoot":"","sources":["../../../../../src/modules/permission/data/permissions.data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permissions.data.js","sourceRoot":"","sources":["../../../../../src/modules/permission/data/permissions.data.ts"],"names":[],"mappings":"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"}
@@ -109,6 +109,42 @@ var PermissionActions;
109
109
  PermissionActions["READ_RESPONSE_UNIT"] = "read:response-unit";
110
110
  PermissionActions["UPDATE_RESPONSE_UNIT"] = "update:response-unit";
111
111
  PermissionActions["DELETE_RESPONSE_UNIT"] = "delete:response-unit";
112
+ // Module: Tracking (clarion-response-tracking)
113
+ //
114
+ // Until these existed the gateway guarded every tracking route with the
115
+ // RESPONSE_UNIT actions above. That tied two different things together:
116
+ // anybody who could read a response unit - which includes every mobile user
117
+ // - could also read an organization's tracking provider connections, and
118
+ // nobody could be trusted with tracking without being handed response units.
119
+ //
120
+ // A provider connection: the link to a third-party tracking platform (Telox,
121
+ // Wialon). UPDATE also covers testing, enabling, disabling and reconnecting
122
+ // one - they change whether, and how, the organization's fleet is tracked.
123
+ PermissionActions["CREATE_TRACKING_PROVIDER_CONNECTION"] = "create:tracking-provider-connection";
124
+ PermissionActions["READ_TRACKING_PROVIDER_CONNECTION"] = "read:tracking-provider-connection";
125
+ PermissionActions["UPDATE_TRACKING_PROVIDER_CONNECTION"] = "update:tracking-provider-connection";
126
+ PermissionActions["DELETE_TRACKING_PROVIDER_CONNECTION"] = "delete:tracking-provider-connection";
127
+ // A device binding: which provider unit IS which response unit. READ also
128
+ // covers the unmapped-units worklist (provider units reporting with no
129
+ // binding yet), and UPDATE marking one of those resolved or reopening it -
130
+ // that list exists to be worked through by whoever makes the bindings.
131
+ PermissionActions["CREATE_TRACKING_DEVICE_BINDING"] = "create:tracking-device-binding";
132
+ PermissionActions["READ_TRACKING_DEVICE_BINDING"] = "read:tracking-device-binding";
133
+ PermissionActions["UPDATE_TRACKING_DEVICE_BINDING"] = "update:tracking-device-binding";
134
+ PermissionActions["DELETE_TRACKING_DEVICE_BINDING"] = "delete:tracking-device-binding";
135
+ // Where units are NOW: the incident map and live tracking. Held by everybody
136
+ // who works an incident.
137
+ PermissionActions["READ_TRACKING_POSITION"] = "read:tracking-position";
138
+ // Where a unit HAS BEEN. Kept apart from the live position on purpose: a
139
+ // movement history is a record of a person's working day, which is a
140
+ // different thing to be allowed to read than a dot on a map.
141
+ PermissionActions["READ_TRACKING_HISTORY"] = "read:tracking-history";
142
+ // The tracking operations dashboard: connection, unit and ingestion health.
143
+ PermissionActions["READ_TRACKING_OPERATIONS"] = "read:tracking-operations";
144
+ // Reconciling the tracking service's copy of the response units against
145
+ // clarion-organization - the dry run as well as the run, because the dry run
146
+ // is the first half of that one task.
147
+ PermissionActions["MANAGE_TRACKING_OPERATIONS"] = "manage:tracking-operations";
112
148
  // Module: Billing
113
149
  PermissionActions["CREATE_BENEFICIARY"] = "create:beneficiary";
114
150
  PermissionActions["READ_BENEFICIARY"] = "read:beneficiary";
@@ -1 +1 @@
1
- {"version":3,"file":"permission-actions.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permission-actions.enum.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permission-actions.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permission-actions.enum.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ var PermissionsModule;
10
10
  PermissionsModule["ROLE"] = "Role";
11
11
  PermissionsModule["INCIDENT"] = "Grievance";
12
12
  PermissionsModule["RESPONSE_UNIT"] = "Response Unit";
13
+ PermissionsModule["TRACKING"] = "Tracking";
13
14
  PermissionsModule["BILLING"] = "Billing";
14
15
  PermissionsModule["NEWSFEED"] = "Newsfeed";
15
16
  PermissionsModule["SUPPORT"] = "Support";
@@ -1 +1 @@
1
- {"version":3,"file":"permissions-module.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permissions-module.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBAWX;AAXD,WAAY,iBAAiB;IACzB,kDAA6B,CAAA;IAC7B,wCAAmB,CAAA;IACnB,sDAAiC,CAAA;IACjC,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,2CAAsB,CAAA;IACtB,oDAA+B,CAAA;IAC/B,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,wCAAmB,CAAA;AACvB,CAAC,EAXW,iBAAiB,iCAAjB,iBAAiB,QAW5B"}
1
+ {"version":3,"file":"permissions-module.enum.js","sourceRoot":"","sources":["../../../../../src/modules/permission/enums/permissions-module.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBAYX;AAZD,WAAY,iBAAiB;IACzB,kDAA6B,CAAA;IAC7B,wCAAmB,CAAA;IACnB,sDAAiC,CAAA;IACjC,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,2CAAsB,CAAA;IACtB,oDAA+B,CAAA;IAC/B,0CAAqB,CAAA;IACrB,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,wCAAmB,CAAA;AACvB,CAAC,EAZW,iBAAiB,iCAAjB,iBAAiB,QAY5B"}
@@ -8,12 +8,14 @@ exports.ORGANIZATION_ROLES = [
8
8
  role_enum_1.Roles.ORGANIZATION_USER,
9
9
  role_enum_1.Roles.ORGANIZATION_BILLING_ADMIN,
10
10
  role_enum_1.Roles.ORGANIZATION_NEWSFEED_ADMIN,
11
- role_enum_1.Roles.ORGANIZATION_PARTNERSHIPS_ADMIN
11
+ role_enum_1.Roles.ORGANIZATION_PARTNERSHIPS_ADMIN,
12
+ role_enum_1.Roles.ORGANIZATION_RESPONSE_UNITS_ADMIN
12
13
  ];
13
14
  exports.CONTROL_CENTRE_ROLES = [
14
15
  role_enum_1.Roles.CONTROL_CENTRE_ADMIN,
15
16
  role_enum_1.Roles.CONTROL_CENTRE_USER,
16
- role_enum_1.Roles.RESPONDER
17
+ role_enum_1.Roles.RESPONDER,
18
+ role_enum_1.Roles.CONTROL_CENTRE_RESPONSE_UNITS_ADMIN
17
19
  ];
18
20
  exports.MOBILE_ROLES = [
19
21
  role_enum_1.Roles.MOBILE_USER
@@ -1 +1 @@
1
- {"version":3,"file":"roles-by-scope.js","sourceRoot":"","sources":["../../../../../src/modules/role/constants/roles-by-scope.ts"],"names":[],"mappings":";;;AAAA,kDAA2C;AAE9B,QAAA,kBAAkB,GAAa;IACxC,iBAAK,CAAC,kBAAkB;IACxB,iBAAK,CAAC,kBAAkB;IACxB,iBAAK,CAAC,iBAAiB;IACvB,iBAAK,CAAC,0BAA0B;IAChC,iBAAK,CAAC,2BAA2B;IACjC,iBAAK,CAAC,+BAA+B;CACxC,CAAC;AAEW,QAAA,oBAAoB,GAAa;IAC1C,iBAAK,CAAC,oBAAoB;IAC1B,iBAAK,CAAC,mBAAmB;IACzB,iBAAK,CAAC,SAAS;CAClB,CAAC;AAEW,QAAA,YAAY,GAAa;IAClC,iBAAK,CAAC,WAAW;CACpB,CAAC"}
1
+ {"version":3,"file":"roles-by-scope.js","sourceRoot":"","sources":["../../../../../src/modules/role/constants/roles-by-scope.ts"],"names":[],"mappings":";;;AAAA,kDAA2C;AAE9B,QAAA,kBAAkB,GAAa;IACxC,iBAAK,CAAC,kBAAkB;IACxB,iBAAK,CAAC,kBAAkB;IACxB,iBAAK,CAAC,iBAAiB;IACvB,iBAAK,CAAC,0BAA0B;IAChC,iBAAK,CAAC,2BAA2B;IACjC,iBAAK,CAAC,+BAA+B;IACrC,iBAAK,CAAC,iCAAiC;CAC1C,CAAC;AAEW,QAAA,oBAAoB,GAAa;IAC1C,iBAAK,CAAC,oBAAoB;IAC1B,iBAAK,CAAC,mBAAmB;IACzB,iBAAK,CAAC,SAAS;IACf,iBAAK,CAAC,mCAAmC;CAC5C,CAAC;AAEW,QAAA,YAAY,GAAa;IAClC,iBAAK,CAAC,WAAW;CACpB,CAAC"}
@@ -3,6 +3,39 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ROLES_DATA = void 0;
4
4
  const permission_1 = require("../../permission");
5
5
  const role_enum_1 = require("../enums/role.enum");
6
+ /**
7
+ * What a Response-Units-Admin may do. Shared by the organization-level and the
8
+ * control-centre-level role on purpose: the two differ in WHERE they may act -
9
+ * decided by roles-by-scope.ts and enforced by each service's tenant scoping -
10
+ * and never in WHAT they may do. One list means they cannot drift apart.
11
+ */
12
+ const RESPONSE_UNITS_ADMIN_PERMISSIONS = [
13
+ //Response Unit: every action. Managing the units is half of this job.
14
+ permission_1.PermissionActions.CREATE_RESPONSE_UNIT,
15
+ permission_1.PermissionActions.READ_RESPONSE_UNIT,
16
+ permission_1.PermissionActions.UPDATE_RESPONSE_UNIT,
17
+ permission_1.PermissionActions.DELETE_RESPONSE_UNIT,
18
+ //Tracking: every action. Pinned by roles.spec.ts against the catalogue, so a
19
+ //tracking action added later has to be granted here - or deliberately withheld.
20
+ permission_1.PermissionActions.CREATE_TRACKING_PROVIDER_CONNECTION,
21
+ permission_1.PermissionActions.READ_TRACKING_PROVIDER_CONNECTION,
22
+ permission_1.PermissionActions.UPDATE_TRACKING_PROVIDER_CONNECTION,
23
+ permission_1.PermissionActions.DELETE_TRACKING_PROVIDER_CONNECTION,
24
+ permission_1.PermissionActions.CREATE_TRACKING_DEVICE_BINDING,
25
+ permission_1.PermissionActions.READ_TRACKING_DEVICE_BINDING,
26
+ permission_1.PermissionActions.UPDATE_TRACKING_DEVICE_BINDING,
27
+ permission_1.PermissionActions.DELETE_TRACKING_DEVICE_BINDING,
28
+ permission_1.PermissionActions.READ_TRACKING_POSITION,
29
+ permission_1.PermissionActions.READ_TRACKING_HISTORY,
30
+ permission_1.PermissionActions.READ_TRACKING_OPERATIONS,
31
+ permission_1.PermissionActions.MANAGE_TRACKING_OPERATIONS,
32
+ //Control Centre: read-only. The provider-connection form lists the control
33
+ //centres a connection can be confined to, and a response unit belongs to one.
34
+ permission_1.PermissionActions.READ_CONTROL_CENTRE,
35
+ //Organization: read-only. The response-unit forms read the organization for
36
+ //its country, which centres their map and scopes the address search.
37
+ permission_1.PermissionActions.READ_ORGANIZATION
38
+ ];
6
39
  exports.ROLES_DATA = [
7
40
  {
8
41
  name: role_enum_1.Roles.SUPER_ADMIN,
@@ -86,7 +119,21 @@ exports.ROLES_DATA = [
86
119
  permission_1.PermissionActions.CREATE_RESPONSE_UNIT,
87
120
  permission_1.PermissionActions.READ_RESPONSE_UNIT,
88
121
  permission_1.PermissionActions.UPDATE_RESPONSE_UNIT,
89
- permission_1.PermissionActions.DELETE_RESPONSE_UNIT
122
+ permission_1.PermissionActions.DELETE_RESPONSE_UNIT,
123
+ //Tracking: provider connections, device bindings, positions, history
124
+ //and tracking operations - all of it.
125
+ permission_1.PermissionActions.CREATE_TRACKING_PROVIDER_CONNECTION,
126
+ permission_1.PermissionActions.READ_TRACKING_PROVIDER_CONNECTION,
127
+ permission_1.PermissionActions.UPDATE_TRACKING_PROVIDER_CONNECTION,
128
+ permission_1.PermissionActions.DELETE_TRACKING_PROVIDER_CONNECTION,
129
+ permission_1.PermissionActions.CREATE_TRACKING_DEVICE_BINDING,
130
+ permission_1.PermissionActions.READ_TRACKING_DEVICE_BINDING,
131
+ permission_1.PermissionActions.UPDATE_TRACKING_DEVICE_BINDING,
132
+ permission_1.PermissionActions.DELETE_TRACKING_DEVICE_BINDING,
133
+ permission_1.PermissionActions.READ_TRACKING_POSITION,
134
+ permission_1.PermissionActions.READ_TRACKING_HISTORY,
135
+ permission_1.PermissionActions.READ_TRACKING_OPERATIONS,
136
+ permission_1.PermissionActions.MANAGE_TRACKING_OPERATIONS
90
137
  ]
91
138
  },
92
139
  {
@@ -165,7 +212,21 @@ exports.ROLES_DATA = [
165
212
  permission_1.PermissionActions.CREATE_RESPONSE_UNIT,
166
213
  permission_1.PermissionActions.READ_RESPONSE_UNIT,
167
214
  permission_1.PermissionActions.UPDATE_RESPONSE_UNIT,
168
- permission_1.PermissionActions.DELETE_RESPONSE_UNIT
215
+ permission_1.PermissionActions.DELETE_RESPONSE_UNIT,
216
+ //Tracking: provider connections, device bindings, positions, history
217
+ //and tracking operations - all of it.
218
+ permission_1.PermissionActions.CREATE_TRACKING_PROVIDER_CONNECTION,
219
+ permission_1.PermissionActions.READ_TRACKING_PROVIDER_CONNECTION,
220
+ permission_1.PermissionActions.UPDATE_TRACKING_PROVIDER_CONNECTION,
221
+ permission_1.PermissionActions.DELETE_TRACKING_PROVIDER_CONNECTION,
222
+ permission_1.PermissionActions.CREATE_TRACKING_DEVICE_BINDING,
223
+ permission_1.PermissionActions.READ_TRACKING_DEVICE_BINDING,
224
+ permission_1.PermissionActions.UPDATE_TRACKING_DEVICE_BINDING,
225
+ permission_1.PermissionActions.DELETE_TRACKING_DEVICE_BINDING,
226
+ permission_1.PermissionActions.READ_TRACKING_POSITION,
227
+ permission_1.PermissionActions.READ_TRACKING_HISTORY,
228
+ permission_1.PermissionActions.READ_TRACKING_OPERATIONS,
229
+ permission_1.PermissionActions.MANAGE_TRACKING_OPERATIONS
169
230
  ]
170
231
  },
171
232
  {
@@ -197,7 +258,13 @@ exports.ROLES_DATA = [
197
258
  //Incident Category Type
198
259
  permission_1.PermissionActions.READ_INCIDENT_CATEGORY_TYPE,
199
260
  //Response Unit
200
- permission_1.PermissionActions.READ_RESPONSE_UNIT
261
+ permission_1.PermissionActions.READ_RESPONSE_UNIT,
262
+ //Tracking: sees all of it, changes none of it - as with partnerships.
263
+ permission_1.PermissionActions.READ_TRACKING_PROVIDER_CONNECTION,
264
+ permission_1.PermissionActions.READ_TRACKING_DEVICE_BINDING,
265
+ permission_1.PermissionActions.READ_TRACKING_POSITION,
266
+ permission_1.PermissionActions.READ_TRACKING_HISTORY,
267
+ permission_1.PermissionActions.READ_TRACKING_OPERATIONS
201
268
  ]
202
269
  },
203
270
  {
@@ -230,6 +297,11 @@ exports.ROLES_DATA = [
230
297
  permission_1.PermissionActions.READ_INCIDENT_CATEGORY_TYPE
231
298
  ]
232
299
  },
300
+ {
301
+ name: role_enum_1.Roles.ORGANIZATION_RESPONSE_UNITS_ADMIN,
302
+ description: 'Organization Response Units Admin: Manage response units and their tracking - provider connections, device bindings and tracking operations - across the organization',
303
+ permissions: [...RESPONSE_UNITS_ADMIN_PERMISSIONS]
304
+ },
233
305
  {
234
306
  name: role_enum_1.Roles.CONTROL_CENTRE_ADMIN,
235
307
  description: 'Control Centre Admin: Manage Control Centre',
@@ -290,7 +362,21 @@ exports.ROLES_DATA = [
290
362
  permission_1.PermissionActions.CREATE_RESPONSE_UNIT,
291
363
  permission_1.PermissionActions.READ_RESPONSE_UNIT,
292
364
  permission_1.PermissionActions.UPDATE_RESPONSE_UNIT,
293
- permission_1.PermissionActions.DELETE_RESPONSE_UNIT
365
+ permission_1.PermissionActions.DELETE_RESPONSE_UNIT,
366
+ //Tracking: provider connections, device bindings, positions, history
367
+ //and tracking operations - all of it.
368
+ permission_1.PermissionActions.CREATE_TRACKING_PROVIDER_CONNECTION,
369
+ permission_1.PermissionActions.READ_TRACKING_PROVIDER_CONNECTION,
370
+ permission_1.PermissionActions.UPDATE_TRACKING_PROVIDER_CONNECTION,
371
+ permission_1.PermissionActions.DELETE_TRACKING_PROVIDER_CONNECTION,
372
+ permission_1.PermissionActions.CREATE_TRACKING_DEVICE_BINDING,
373
+ permission_1.PermissionActions.READ_TRACKING_DEVICE_BINDING,
374
+ permission_1.PermissionActions.UPDATE_TRACKING_DEVICE_BINDING,
375
+ permission_1.PermissionActions.DELETE_TRACKING_DEVICE_BINDING,
376
+ permission_1.PermissionActions.READ_TRACKING_POSITION,
377
+ permission_1.PermissionActions.READ_TRACKING_HISTORY,
378
+ permission_1.PermissionActions.READ_TRACKING_OPERATIONS,
379
+ permission_1.PermissionActions.MANAGE_TRACKING_OPERATIONS
294
380
  ]
295
381
  },
296
382
  {
@@ -331,9 +417,18 @@ exports.ROLES_DATA = [
331
417
  //Incident Category Type
332
418
  permission_1.PermissionActions.READ_INCIDENT_CATEGORY_TYPE,
333
419
  //Response Unit
334
- permission_1.PermissionActions.READ_RESPONSE_UNIT
420
+ permission_1.PermissionActions.READ_RESPONSE_UNIT,
421
+ //Tracking: an operator needs to see where units are and where they
422
+ //have been. How they come to be tracked is not the desk's business.
423
+ permission_1.PermissionActions.READ_TRACKING_POSITION,
424
+ permission_1.PermissionActions.READ_TRACKING_HISTORY
335
425
  ]
336
426
  },
427
+ {
428
+ name: role_enum_1.Roles.CONTROL_CENTRE_RESPONSE_UNITS_ADMIN,
429
+ description: 'Control Centre Response Units Admin: Manage response units and their tracking - provider connections, device bindings and tracking operations - within one control centre',
430
+ permissions: [...RESPONSE_UNITS_ADMIN_PERMISSIONS]
431
+ },
337
432
  {
338
433
  name: role_enum_1.Roles.RESPONDER,
339
434
  description: 'Responder: Respond to Incidents, raise support tickets',
@@ -358,6 +453,9 @@ exports.ROLES_DATA = [
358
453
  permission_1.PermissionActions.READ_INCIDENT_CATEGORY_TYPE,
359
454
  //Response Unit
360
455
  permission_1.PermissionActions.READ_RESPONSE_UNIT,
456
+ //Tracking: a responder using the console sees the map and the history.
457
+ permission_1.PermissionActions.READ_TRACKING_POSITION,
458
+ permission_1.PermissionActions.READ_TRACKING_HISTORY,
361
459
  //Support - the CUSTOMER surface only.
362
460
  //
363
461
  //These five are what the gateway's customer support controller
@@ -1 +1 @@
1
- {"version":3,"file":"roles.data.js","sourceRoot":"","sources":["../../../../../src/modules/role/data/roles.data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"roles.data.js","sourceRoot":"","sources":["../../../../../src/modules/role/data/roles.data.ts"],"names":[],"mappings":"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"}
@@ -10,12 +10,28 @@ var Roles;
10
10
  Roles["ORGANIZATION_BILLING_ADMIN"] = "Organization:Billing-Admin";
11
11
  Roles["ORGANIZATION_NEWSFEED_ADMIN"] = "Organization:Newsfeed-Admin";
12
12
  Roles["ORGANIZATION_PARTNERSHIPS_ADMIN"] = "Organization:Partnerships-Admin";
13
+ /**
14
+ * Manages response units and how they are tracked - provider connections,
15
+ * device bindings, tracking operations - across the whole organization.
16
+ */
17
+ Roles["ORGANIZATION_RESPONSE_UNITS_ADMIN"] = "Organization:Response-Units-Admin";
13
18
  Roles["CONTROL_CENTRE_ADMIN"] = "Control-Centre:Admin";
14
19
  Roles["CONTROL_CENTRE_USER"] = "Control-Centre:User";
20
+ /** The same job, confined to one control centre. */
21
+ Roles["CONTROL_CENTRE_RESPONSE_UNITS_ADMIN"] = "Control-Centre:Response-Units-Admin";
15
22
  Roles["RESPONDER"] = "Responder";
16
23
  Roles["MOBILE_USER"] = "Mobile-User";
17
24
  })(Roles || (exports.Roles = Roles = {}));
18
25
  /**
19
26
  * When defining new roles, also update the roles-by-scope.ts file and roles.data.ts file
27
+ *
28
+ * A role's SCOPE comes from which list in roles-by-scope.ts it is in, not from its
29
+ * name: the gateway (AccessScopeService), clarion-authentication
30
+ * (AuthorizationService) and clarion-socket (tracking rooms) all read those lists.
31
+ * A role in neither list gets no scope at all and every tenant-scoped call it
32
+ * makes fails closed.
33
+ *
34
+ * `users.roles` is a Postgres ENUM array, so a new value here also needs an
35
+ * ALTER TYPE migration in clarion-authentication before anybody can hold it.
20
36
  */
21
37
  //# sourceMappingURL=role.enum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"role.enum.js","sourceRoot":"","sources":["../../../../../src/modules/role/enums/role.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,KAYX;AAZD,WAAY,KAAK;IACb,oCAA2B,CAAA;IAC3B,kDAAyC,CAAA;IACzC,kDAAyC,CAAA;IACzC,gDAAuC,CAAA;IACvC,kEAAyD,CAAA;IACzD,oEAA2D,CAAA;IAC3D,4EAAmE,CAAA;IACnE,sDAA6C,CAAA;IAC7C,oDAA2C,CAAA;IAC3C,gCAAuB,CAAA;IACvB,oCAA2B,CAAA;AAC/B,CAAC,EAZW,KAAK,qBAAL,KAAK,QAYhB;AAED;;GAEG"}
1
+ {"version":3,"file":"role.enum.js","sourceRoot":"","sources":["../../../../../src/modules/role/enums/role.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,KAmBX;AAnBD,WAAY,KAAK;IACb,oCAA2B,CAAA;IAC3B,kDAAyC,CAAA;IACzC,kDAAyC,CAAA;IACzC,gDAAuC,CAAA;IACvC,kEAAyD,CAAA;IACzD,oEAA2D,CAAA;IAC3D,4EAAmE,CAAA;IACnE;;;OAGG;IACH,gFAAuE,CAAA;IACvE,sDAA6C,CAAA;IAC7C,oDAA2C,CAAA;IAC3C,oDAAoD;IACpD,oFAA2E,CAAA;IAC3E,gCAAuB,CAAA;IACvB,oCAA2B,CAAA;AAC/B,CAAC,EAnBW,KAAK,qBAAL,KAAK,QAmBhB;AAED;;;;;;;;;;;GAWG"}
@@ -8,15 +8,18 @@ exports.TrackingProviderCode = void 0;
8
8
  * per-provider adapter inside clarion-response-tracking understands the raw
9
9
  * wire format.
10
10
  *
11
- * Only {@link TrackingProviderCode.TELOX} has a working adapter in Phase 1. The
12
- * remaining values are reserved so future adapters can be added without changing
13
- * the shared contracts, database columns or Kafka events.
11
+ * {@link TrackingProviderCode.TELOX} and {@link TrackingProviderCode.WIALON} have
12
+ * working adapters. The remaining values are reserved so future adapters can be
13
+ * added without changing the shared contracts, database columns or Kafka events.
14
+ *
15
+ * A value here does NOT mean the provider can be connected — ask the service
16
+ * (`GET /tracking/providers`, see TrackingProviderDescriptor) which adapters exist.
14
17
  */
15
18
  var TrackingProviderCode;
16
19
  (function (TrackingProviderCode) {
17
20
  /** Telox WebSocket platform (G4S Phase 1 integration). */
18
21
  TrackingProviderCode["TELOX"] = "TELOX";
19
- /** Wialon (reserved — not implemented in Phase 1). */
22
+ /** Wialon Hosting / Wialon Local, polled over the Remote API. */
20
23
  TrackingProviderCode["WIALON"] = "WIALON";
21
24
  /** Teltonika direct device ingestion (reserved — not implemented in Phase 1). */
22
25
  TrackingProviderCode["TELTONIKA"] = "TELTONIKA";
@@ -1 +1 @@
1
- {"version":3,"file":"tracking-provider-code.enum.js","sourceRoot":"","sources":["../../../../../src/modules/tracking/enums/tracking-provider-code.enum.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACH,IAAY,oBAWX;AAXD,WAAY,oBAAoB;IAC5B,0DAA0D;IAC1D,uCAAe,CAAA;IACf,sDAAsD;IACtD,yCAAiB,CAAA;IACjB,iFAAiF;IACjF,+CAAuB,CAAA;IACvB,4CAA4C;IAC5C,+DAAuC,CAAA;IACvC,+CAA+C;IAC/C,qEAA6C,CAAA;AACjD,CAAC,EAXW,oBAAoB,oCAApB,oBAAoB,QAW/B"}
1
+ {"version":3,"file":"tracking-provider-code.enum.js","sourceRoot":"","sources":["../../../../../src/modules/tracking/enums/tracking-provider-code.enum.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;GAaG;AACH,IAAY,oBAWX;AAXD,WAAY,oBAAoB;IAC5B,0DAA0D;IAC1D,uCAAe,CAAA;IACf,iEAAiE;IACjE,yCAAiB,CAAA;IACjB,iFAAiF;IACjF,+CAAuB,CAAA;IACvB,4CAA4C;IAC5C,+DAAuC,CAAA;IACvC,+CAA+C;IAC/C,qEAA6C,CAAA;AACjD,CAAC,EAXW,oBAAoB,oCAApB,oBAAoB,QAW/B"}
@@ -3,14 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TrackingTransportType = void 0;
4
4
  /**
5
5
  * How a provider connection physically transports telemetry into
6
- * clarion-response-tracking. Phase 1 implements only {@link WEBSOCKET} (Telox);
7
- * the remaining values are reserved for future adapters.
6
+ * clarion-response-tracking. {@link WEBSOCKET} (Telox) and {@link HTTP_POLLING}
7
+ * (Wialon) are implemented; the remaining values are reserved for future adapters.
8
8
  */
9
9
  var TrackingTransportType;
10
10
  (function (TrackingTransportType) {
11
11
  /** Outbound WebSocket client maintained by the connector worker (Telox). */
12
12
  TrackingTransportType["WEBSOCKET"] = "WEBSOCKET";
13
- /** Outbound HTTP polling loop. */
13
+ /** Outbound HTTP polling loop maintained by the connector worker (Wialon). */
14
14
  TrackingTransportType["HTTP_POLLING"] = "HTTP_POLLING";
15
15
  /** Inbound TCP listener (direct device ingestion). */
16
16
  TrackingTransportType["TCP"] = "TCP";
@@ -1 +1 @@
1
- {"version":3,"file":"tracking-transport-type.enum.js","sourceRoot":"","sources":["../../../../../src/modules/tracking/enums/tracking-transport-type.enum.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,IAAY,qBAWX;AAXD,WAAY,qBAAqB;IAC7B,4EAA4E;IAC5E,gDAAuB,CAAA;IACvB,kCAAkC;IAClC,sDAA6B,CAAA;IAC7B,sDAAsD;IACtD,oCAAW,CAAA;IACX,sDAAsD;IACtD,oCAAW,CAAA;IACX,yBAAyB;IACzB,sCAAa,CAAA;AACjB,CAAC,EAXW,qBAAqB,qCAArB,qBAAqB,QAWhC"}
1
+ {"version":3,"file":"tracking-transport-type.enum.js","sourceRoot":"","sources":["../../../../../src/modules/tracking/enums/tracking-transport-type.enum.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,IAAY,qBAWX;AAXD,WAAY,qBAAqB;IAC7B,4EAA4E;IAC5E,gDAAuB,CAAA;IACvB,8EAA8E;IAC9E,sDAA6B,CAAA;IAC7B,sDAAsD;IACtD,oCAAW,CAAA;IACX,sDAAsD;IACtD,oCAAW,CAAA;IACX,yBAAyB;IACzB,sCAAa,CAAA;AACjB,CAAC,EAXW,qBAAqB,qCAArB,qBAAqB,QAWhC"}
@@ -32,6 +32,8 @@ __exportStar(require("./interfaces/response-unit-lifecycle-events"), exports);
32
32
  __exportStar(require("./interfaces/tracking-unit-current-state"), exports);
33
33
  __exportStar(require("./interfaces/tracking-socket-payloads"), exports);
34
34
  __exportStar(require("./interfaces/tracking-realtime-envelope"), exports);
35
+ // Interfaces — provider catalog (what each adapter needs from an operator)
36
+ __exportStar(require("./interfaces/tracking-provider-descriptor"), exports);
35
37
  // Constants
36
38
  __exportStar(require("./constants/tracking-kafka.const"), exports);
37
39
  // Utilities
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/tracking/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,QAAQ;AACR,sEAAoD;AACpD,uEAAqD;AACrD,0EAAwD;AACxD,2EAAyD;AACzD,sEAAoD;AAEpD,+CAA+C;AAC/C,+EAA6D;AAC7D,+EAA6D;AAC7D,6EAA2D;AAC3D,iFAA+D;AAC/D,iFAA+D;AAC/D,iFAA+D;AAC/D,8EAA4D;AAE5D,+CAA+C;AAC/C,2EAAyD;AACzD,wEAAsD;AACtD,0EAAwD;AAExD,YAAY;AACZ,mEAAiD;AAEjD,YAAY;AACZ,iEAA+C;AAC/C,mEAAiD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/tracking/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,QAAQ;AACR,sEAAoD;AACpD,uEAAqD;AACrD,0EAAwD;AACxD,2EAAyD;AACzD,sEAAoD;AAEpD,+CAA+C;AAC/C,+EAA6D;AAC7D,+EAA6D;AAC7D,6EAA2D;AAC3D,iFAA+D;AAC/D,iFAA+D;AAC/D,iFAA+D;AAC/D,8EAA4D;AAE5D,+CAA+C;AAC/C,2EAAyD;AACzD,wEAAsD;AACtD,0EAAwD;AAExD,2EAA2E;AAC3E,4EAA0D;AAE1D,YAAY;AACZ,mEAAiD;AAEjD,YAAY;AACZ,iEAA+C;AAC/C,mEAAiD"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildDefaultTrackingProviderConfiguration = buildDefaultTrackingProviderConfiguration;
4
+ exports.validateTrackingProviderSettings = validateTrackingProviderSettings;
5
+ /**
6
+ * The `configuration` a connection gets when the operator supplies none: every
7
+ * setting at its default. Stored explicitly on the connection so that readers
8
+ * which know nothing about adapters (the status evaluator, ingestion guards) see
9
+ * the provider's thresholds rather than the service-wide fallbacks.
10
+ */
11
+ function buildDefaultTrackingProviderConfiguration(descriptor) {
12
+ const configuration = {};
13
+ for (const setting of descriptor.settings) {
14
+ configuration[setting.key] = setting.defaultValue;
15
+ }
16
+ return configuration;
17
+ }
18
+ function isBlank(value) {
19
+ return value === undefined || value === null || value === '';
20
+ }
21
+ /**
22
+ * Validate a raw `configuration` blob against a provider's setting descriptors.
23
+ * Returns human-readable errors (empty ⇒ valid). Absent keys are valid — they
24
+ * take their default. Keys the descriptor does not know are ignored, not
25
+ * rejected: a connection saved before a setting was retired must stay editable.
26
+ *
27
+ * Cross-field rules (e.g. "offline must not precede stale") are the adapter's.
28
+ */
29
+ function validateTrackingProviderSettings(settings, configuration) {
30
+ var _a;
31
+ const errors = [];
32
+ const config = configuration !== null && configuration !== void 0 ? configuration : {};
33
+ for (const setting of settings) {
34
+ const raw = config[setting.key];
35
+ if (isBlank(raw))
36
+ continue;
37
+ switch (setting.type) {
38
+ case 'number': {
39
+ const value = typeof raw === 'string' ? Number(raw) : raw;
40
+ if (typeof value !== 'number' || !Number.isFinite(value)) {
41
+ errors.push(`${setting.key} must be a finite number`);
42
+ break;
43
+ }
44
+ if (setting.integer && !Number.isInteger(value)) {
45
+ errors.push(`${setting.key} must be a whole number`);
46
+ }
47
+ if (setting.min !== undefined && value < setting.min) {
48
+ errors.push(`${setting.key} must be at least ${setting.min}`);
49
+ }
50
+ if (setting.max !== undefined && value > setting.max) {
51
+ errors.push(`${setting.key} must be at most ${setting.max}`);
52
+ }
53
+ break;
54
+ }
55
+ case 'boolean':
56
+ if (typeof raw !== 'boolean' && raw !== 'true' && raw !== 'false') {
57
+ errors.push(`${setting.key} must be a boolean`);
58
+ }
59
+ break;
60
+ case 'select': {
61
+ const allowed = ((_a = setting.options) !== null && _a !== void 0 ? _a : []).map((option) => option.value);
62
+ if (!allowed.includes(String(raw))) {
63
+ errors.push(`${setting.key} must be one of ${allowed.join(', ')}`);
64
+ }
65
+ break;
66
+ }
67
+ case 'text':
68
+ if (typeof raw !== 'string') {
69
+ errors.push(`${setting.key} must be text`);
70
+ }
71
+ else if (setting.maxLength !== undefined && raw.length > setting.maxLength) {
72
+ errors.push(`${setting.key} must be at most ${setting.maxLength} characters`);
73
+ }
74
+ break;
75
+ }
76
+ }
77
+ return errors;
78
+ }
79
+ //# sourceMappingURL=tracking-provider-descriptor.js.map