@openhi/constructs 0.0.162 → 0.0.163

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 (32) hide show
  1. package/lib/{chunk-WOTU36P3.mjs → chunk-WFTDH2NM.mjs} +3 -2
  2. package/lib/chunk-WFTDH2NM.mjs.map +1 -0
  3. package/lib/{chunk-MLFMW5IF.mjs → chunk-XHG4SODS.mjs} +9 -5
  4. package/lib/chunk-XHG4SODS.mjs.map +1 -0
  5. package/lib/{chunk-7TRO2STL.mjs → chunk-ZODGX37H.mjs} +543 -46
  6. package/lib/chunk-ZODGX37H.mjs.map +1 -0
  7. package/lib/{events-TG654e7L.d.mts → events-dO9nxnPa.d.mts} +89 -4
  8. package/lib/{events-TG654e7L.d.ts → events-dO9nxnPa.d.ts} +89 -4
  9. package/lib/index.d.mts +1 -1
  10. package/lib/index.d.ts +90 -5
  11. package/lib/index.js +335 -52
  12. package/lib/index.js.map +1 -1
  13. package/lib/index.mjs +46 -2
  14. package/lib/index.mjs.map +1 -1
  15. package/lib/pre-token-generation.handler.js +1 -0
  16. package/lib/pre-token-generation.handler.js.map +1 -1
  17. package/lib/pre-token-generation.handler.mjs +1 -1
  18. package/lib/provision-default-workspace.handler.js +9 -4
  19. package/lib/provision-default-workspace.handler.js.map +1 -1
  20. package/lib/provision-default-workspace.handler.mjs +2 -2
  21. package/lib/rest-api-lambda.handler.js +292 -287
  22. package/lib/rest-api-lambda.handler.js.map +1 -1
  23. package/lib/rest-api-lambda.handler.mjs +2 -2
  24. package/lib/seed-demo-data.handler.d.mts +4 -2
  25. package/lib/seed-demo-data.handler.d.ts +4 -2
  26. package/lib/seed-demo-data.handler.js +553 -74
  27. package/lib/seed-demo-data.handler.js.map +1 -1
  28. package/lib/seed-demo-data.handler.mjs +2 -2
  29. package/package.json +3 -3
  30. package/lib/chunk-7TRO2STL.mjs.map +0 -1
  31. package/lib/chunk-MLFMW5IF.mjs.map +0 -1
  32. package/lib/chunk-WOTU36P3.mjs.map +0 -1
@@ -20,7 +20,7 @@ import {
20
20
  createRoleAssignmentOperation,
21
21
  createTenantOperation,
22
22
  createWorkspaceOperation
23
- } from "./chunk-MLFMW5IF.mjs";
23
+ } from "./chunk-XHG4SODS.mjs";
24
24
  import {
25
25
  NotFoundError
26
26
  } from "./chunk-FYHBHHWK.mjs";
@@ -65,59 +65,59 @@ var OPENHI_RESOURCE_URN_SYSTEM = "http://openhi.org/";
65
65
  var DEMO_PERIOD = { start: "2026-01-01T00:00:00Z" };
66
66
  var PLACEHOLDER_TENANT_ID = "placeholder-tenant-id";
67
67
  var PLACEHOLDER_WORKSPACE_ID = "placeholder-workspace-id";
68
- var ON_SITE_DEMO_TENANT_ID = "on-site-demo-tenant";
69
- var ON_SITE_DEMO_WORKSPACE_ID = "on-site-demo-workspace";
68
+ var ON_SITE_DEMO_TENANT_ID = "01KDVDNKKD34R8DX97HRR0N69J";
69
+ var ON_SITE_DEMO_WORKSPACE_ID = "01KDVDPKNJ9MZYC1PH8S4VTC7S";
70
70
  var DEV_USERS = [
71
71
  {
72
- id: "dev-russell",
72
+ id: "01KDVDZC15D5R37PTBR2WVHH94",
73
73
  email: "russell@codedrifters.com",
74
74
  firstName: "Russell",
75
75
  lastName: "Ingram"
76
76
  },
77
77
  {
78
- id: "dev-cameron",
78
+ id: "01KDVDZWMSYTKC0MHRPYKCNDF3",
79
79
  email: "cameron@codedrifters.com",
80
80
  firstName: "Cameron",
81
81
  lastName: "Childress"
82
82
  },
83
83
  {
84
- id: "dev-neelima",
84
+ id: "01KDVE1C1CK58EHD8C5SSGWJQW",
85
85
  email: "neelima@codedrifters.com",
86
86
  firstName: "Neelima",
87
87
  lastName: "Ramaraju"
88
88
  },
89
89
  {
90
- id: "dev-garon",
90
+ id: "01KDVE1W7T37E4SV629R2XC0EY",
91
91
  email: "garon@codedrifters.com",
92
92
  firstName: "Garon",
93
93
  lastName: "Bailey"
94
94
  },
95
95
  {
96
- id: "dev-dave",
96
+ id: "01KDVE31S7PDWE2PED771VAQP6",
97
97
  email: "dave@codedrifters.com",
98
98
  firstName: "Dave",
99
99
  lastName: "Finlay"
100
100
  },
101
101
  {
102
- id: "dev-drew",
102
+ id: "01KDVE4PZ61JTFT4S80KZ1BM4K",
103
103
  email: "drew@codedrifters.com",
104
104
  firstName: "Drew",
105
105
  lastName: "Morris"
106
106
  },
107
107
  {
108
- id: "dev-jessica",
108
+ id: "01KDVE69RQ4GK8APBG1FFS0P5S",
109
109
  email: "jessica@codedrifters.com",
110
110
  firstName: "Jessica",
111
111
  lastName: "Branks"
112
112
  },
113
113
  {
114
- id: "dev-jared",
114
+ id: "01KDVE7Q07TCMSS154HGKZWCYY",
115
115
  email: "jared@codedrifters.com",
116
116
  firstName: "Jared",
117
117
  lastName: "Trotter"
118
118
  },
119
119
  {
120
- id: "dev-goddess",
120
+ id: "01KDVE8HWP9H361ZBQ4M1D5PGK",
121
121
  email: "goddess@codedrifters.com",
122
122
  firstName: "Goddess",
123
123
  lastName: "Culberson"
@@ -132,25 +132,33 @@ var DEV_USERS = [
132
132
  // out of band, and the seeded Cognito user picks it up via
133
133
  // AdminSetUserPassword on every seed run.
134
134
  {
135
- id: "dev-e2e-admin-console",
135
+ id: "01KDVE99B649JPDTB8BX15XZVH",
136
136
  email: "e2e-admin-console@codedrifters.com",
137
137
  firstName: "E2E",
138
138
  lastName: "AdminConsole"
139
139
  }
140
140
  ];
141
+ var DEMO_WOUND_CARE_TENANT_ID = "01KDVDQTK67CT2EEJ9DNMYSX05";
142
+ var DEMO_WOUND_CARE_WORKSPACE_ID = "01KDVDRVPEDF48EAZCRSR7QSW5";
143
+ var DEMO_PRIMARY_CARE_TENANT_ID = "01KDVDTC89KK3422W49AXCDW3Q";
144
+ var DEMO_PRIMARY_CARE_WORKSPACE_ID = "01KDVDVEMA0TEFDGPX6TDRJ857";
145
+ var DEMO_MIXED_TENANT_ID = "01KDVDWQFMN07BY8QSVZQA5AS9";
146
+ var DEMO_MIXED_WORKSPACE_WOUND_CARE_ID = "01KDVDXJSHA1C3B1NY1QEZRMK2";
147
+ var DEMO_MIXED_WORKSPACE_PRIMARY_CARE_ID = "01KDVDYQBFSRE80N3PZQXWEB3Y";
148
+ var PLACEHOLDER_TENANT_SPEC = {
149
+ scenario: "placeholder",
150
+ tenantId: PLACEHOLDER_TENANT_ID,
151
+ tenantName: "OpenHI Placeholder Tenant",
152
+ workspaces: [
153
+ {
154
+ id: PLACEHOLDER_WORKSPACE_ID,
155
+ name: "OpenHI Placeholder Workspace",
156
+ roleSuffix: "workspace"
157
+ }
158
+ ]
159
+ };
141
160
  var DEMO_TENANT_SPECS = [
142
- {
143
- scenario: "placeholder",
144
- tenantId: PLACEHOLDER_TENANT_ID,
145
- tenantName: "OpenHI Placeholder Tenant",
146
- workspaces: [
147
- {
148
- id: PLACEHOLDER_WORKSPACE_ID,
149
- name: "OpenHI Placeholder Workspace",
150
- roleSuffix: "workspace"
151
- }
152
- ]
153
- },
161
+ PLACEHOLDER_TENANT_SPEC,
154
162
  {
155
163
  scenario: "on-site-demo",
156
164
  tenantId: ON_SITE_DEMO_TENANT_ID,
@@ -165,11 +173,11 @@ var DEMO_TENANT_SPECS = [
165
173
  },
166
174
  {
167
175
  scenario: "demo-wound-care",
168
- tenantId: "demo-wound-care-tenant",
176
+ tenantId: DEMO_WOUND_CARE_TENANT_ID,
169
177
  tenantName: "Cedarbrook Wound Healing Institute",
170
178
  workspaces: [
171
179
  {
172
- id: "demo-wound-care-workspace",
180
+ id: DEMO_WOUND_CARE_WORKSPACE_ID,
173
181
  name: "Cedarbrook Outpatient Wound Clinic",
174
182
  roleSuffix: "workspace"
175
183
  }
@@ -177,11 +185,11 @@ var DEMO_TENANT_SPECS = [
177
185
  },
178
186
  {
179
187
  scenario: "demo-primary-care",
180
- tenantId: "demo-primary-care-tenant",
188
+ tenantId: DEMO_PRIMARY_CARE_TENANT_ID,
181
189
  tenantName: "Maple Ridge Family Medicine",
182
190
  workspaces: [
183
191
  {
184
- id: "demo-primary-care-workspace",
192
+ id: DEMO_PRIMARY_CARE_WORKSPACE_ID,
185
193
  name: "Maple Ridge Main Street Office",
186
194
  roleSuffix: "workspace"
187
195
  }
@@ -189,22 +197,249 @@ var DEMO_TENANT_SPECS = [
189
197
  },
190
198
  {
191
199
  scenario: "demo-mixed",
192
- tenantId: "demo-mixed-tenant",
200
+ tenantId: DEMO_MIXED_TENANT_ID,
193
201
  tenantName: "Northbridge Health Network",
194
202
  workspaces: [
195
203
  {
196
- id: "demo-mixed-workspace-wound-care",
204
+ id: DEMO_MIXED_WORKSPACE_WOUND_CARE_ID,
197
205
  name: "Northbridge Wound Care Center",
198
206
  roleSuffix: "workspace-wound-care"
199
207
  },
200
208
  {
201
- id: "demo-mixed-workspace-primary-care",
209
+ id: DEMO_MIXED_WORKSPACE_PRIMARY_CARE_ID,
202
210
  name: "Northbridge Family Practice",
203
211
  roleSuffix: "workspace-primary-care"
204
212
  }
205
213
  ]
206
214
  }
207
215
  ];
216
+ var ON_SITE_WOUNDS_TENANT_ID = "01KDY03CJBF6FWQG9B8WXYXXS6";
217
+ var ON_SITE_WOUNDS_OKLAHOMA_WORKSPACE_ID = "01KDY03KW88CNSGKNB89M7FS2X";
218
+ var ON_SITE_WOUNDS_TEXAS_WORKSPACE_ID = "01KDY04FCGYXVQGS24S0NG1ETM";
219
+ var ON_SITE_MEDICAL_TENANT_ID = "01KDY063WE34DWA3J5260BSEME";
220
+ var ON_SITE_MEDICAL_OKLAHOMA_WORKSPACE_ID = "01KDY06QV8DKYJJZ7X1DP0GGDD";
221
+ var ON_SITE_MEDICAL_TEXAS_WORKSPACE_ID = "01KDY074RZXRZS5K9TBRCVVSX1";
222
+ var ON_SITE_CLINIC_TENANT_ID = "01KDY07XGSMPX7AAM6ZJN8HWS2";
223
+ var ON_SITE_CLINIC_OKLAHOMA_WORKSPACE_ID = "01KDY08F0J7DPTM7XZKV72QFNV";
224
+ var ON_SITE_CLINIC_TEXAS_WORKSPACE_ID = "01KDY0A1YYY5TT4A1SP96KTF0G";
225
+ var ON_SITE_UAT_TENANT_SPECS = [
226
+ {
227
+ scenario: "on-site-wounds",
228
+ tenantId: ON_SITE_WOUNDS_TENANT_ID,
229
+ tenantName: "On-Site Wounds",
230
+ workspaces: [
231
+ {
232
+ id: ON_SITE_WOUNDS_OKLAHOMA_WORKSPACE_ID,
233
+ name: "Oklahoma",
234
+ roleSuffix: "workspace-oklahoma"
235
+ },
236
+ {
237
+ id: ON_SITE_WOUNDS_TEXAS_WORKSPACE_ID,
238
+ name: "Texas",
239
+ roleSuffix: "workspace-texas"
240
+ }
241
+ ]
242
+ },
243
+ {
244
+ scenario: "on-site-medical",
245
+ tenantId: ON_SITE_MEDICAL_TENANT_ID,
246
+ tenantName: "On-Site Medical",
247
+ workspaces: [
248
+ {
249
+ id: ON_SITE_MEDICAL_OKLAHOMA_WORKSPACE_ID,
250
+ name: "Oklahoma",
251
+ roleSuffix: "workspace-oklahoma"
252
+ },
253
+ {
254
+ id: ON_SITE_MEDICAL_TEXAS_WORKSPACE_ID,
255
+ name: "Texas",
256
+ roleSuffix: "workspace-texas"
257
+ }
258
+ ]
259
+ },
260
+ {
261
+ scenario: "on-site-clinic",
262
+ tenantId: ON_SITE_CLINIC_TENANT_ID,
263
+ tenantName: "On-Site Clinic",
264
+ workspaces: [
265
+ {
266
+ id: ON_SITE_CLINIC_OKLAHOMA_WORKSPACE_ID,
267
+ name: "Oklahoma",
268
+ roleSuffix: "workspace-oklahoma"
269
+ },
270
+ {
271
+ id: ON_SITE_CLINIC_TEXAS_WORKSPACE_ID,
272
+ name: "Texas",
273
+ roleSuffix: "workspace-texas"
274
+ }
275
+ ]
276
+ }
277
+ ];
278
+ var ON_SITE_TESTERS = [
279
+ {
280
+ id: "01KE0JG26M0CGFFP9P71PJHXKZ",
281
+ email: "kim@onsitewounds.com",
282
+ displayName: "Kim Leland, RN",
283
+ given: "Kim",
284
+ family: "Leland",
285
+ role: PLATFORM_ROLE_CODE.TENANT_ADMIN
286
+ },
287
+ {
288
+ id: "01KE0JH2X6XCJAY8FVJKKKHBGK",
289
+ email: "kera@onsitewounds.com",
290
+ displayName: "Kera Morris",
291
+ given: "Kera",
292
+ family: "Morris",
293
+ role: PLATFORM_ROLE_CODE.TENANT_ADMIN
294
+ },
295
+ {
296
+ id: "01KE0JHPB9K6AJNDYFDE17SQXT",
297
+ email: "nicole@onsitemed.com",
298
+ displayName: "Nicole Smith",
299
+ given: "Nicole",
300
+ family: "Smith",
301
+ role: PLATFORM_ROLE_CODE.TENANT_ADMIN
302
+ },
303
+ {
304
+ id: "01KE0JJKAV56ECSSYHNZENCTTW",
305
+ email: "sidney@onsitewounds.com",
306
+ displayName: "Sidney Vaughn",
307
+ given: "Sidney",
308
+ family: "Vaughn",
309
+ role: PLATFORM_ROLE_CODE.TENANT_USER
310
+ },
311
+ {
312
+ id: "01KE0JKX2ZK5H93JFFP1V8T3MF",
313
+ email: "chelsea@onsitewounds.com",
314
+ displayName: "Chelsea Romine",
315
+ given: "Chelsea",
316
+ family: "Romine",
317
+ role: PLATFORM_ROLE_CODE.TENANT_USER
318
+ },
319
+ {
320
+ id: "01KE0JMWHW7HYB8DZD4J70PVSD",
321
+ email: "drmetheny@onsitewounds.com",
322
+ displayName: "Dr. Heidi Metheny",
323
+ given: "Heidi",
324
+ family: "Metheny",
325
+ role: PLATFORM_ROLE_CODE.TENANT_USER
326
+ },
327
+ {
328
+ id: "01KE0JP9GEJR7JT0GNAB502DBV",
329
+ email: "drtucker@onsitewounds.com",
330
+ displayName: "Dr. Tucker",
331
+ family: "Tucker",
332
+ role: PLATFORM_ROLE_CODE.TENANT_USER
333
+ },
334
+ {
335
+ id: "01KE0JPMV1X8Y5DQS3MYEJQP3T",
336
+ email: "drwright@onsitewounds.com",
337
+ displayName: "Dr. Wright",
338
+ family: "Wright",
339
+ role: PLATFORM_ROLE_CODE.TENANT_USER
340
+ },
341
+ {
342
+ id: "01KE0JQ18T3BGQZWK1SRY5J73K",
343
+ email: "lauren@onsitewounds.com",
344
+ displayName: "Lauren",
345
+ given: "Lauren",
346
+ role: PLATFORM_ROLE_CODE.TENANT_USER
347
+ },
348
+ {
349
+ id: "01KE0JQBG3X26EHWKBT71AYT6Y",
350
+ email: "caity.np@onsitewounds.com",
351
+ displayName: "Caity",
352
+ given: "Caity",
353
+ role: PLATFORM_ROLE_CODE.TENANT_USER
354
+ },
355
+ {
356
+ id: "01KE0JS0VC6SDB9Q0S1XTKC031",
357
+ email: "shelly@onsitewounds.com",
358
+ displayName: "Shelly",
359
+ given: "Shelly",
360
+ role: PLATFORM_ROLE_CODE.TENANT_USER
361
+ },
362
+ {
363
+ id: "01KE0JS90A94R4E2M1K6HMB0K6",
364
+ email: "kimi@onsitewounds.com",
365
+ displayName: "Kimi",
366
+ given: "Kimi",
367
+ role: PLATFORM_ROLE_CODE.TENANT_USER
368
+ },
369
+ {
370
+ id: "01KE0JSH6B4A5SPJ65V1PQEHZA",
371
+ email: "erika@onsitemed.com",
372
+ displayName: "Erika Fernandez, MA",
373
+ given: "Erika",
374
+ family: "Fernandez",
375
+ role: PLATFORM_ROLE_CODE.TENANT_USER
376
+ },
377
+ {
378
+ id: "01KE0JSQ6CWSCJS25PJEKQWGWM",
379
+ email: "dr.nguyen@onsiteprimary.com",
380
+ displayName: "Dr. Nguyen",
381
+ family: "Nguyen",
382
+ role: PLATFORM_ROLE_CODE.TENANT_USER
383
+ },
384
+ // Extended UAT roster — all `tenant-admin` for now (tenant-scoped
385
+ // only; no platform/system-admin). Members of all three on-site
386
+ // tenants + both workspaces in each, and of the placeholder tenant.
387
+ {
388
+ id: "01KSSZ3K6BNZB6D18TTK5TQ9FA",
389
+ email: "ashton@onsitewounds.com",
390
+ displayName: "Ashton",
391
+ given: "Ashton",
392
+ role: PLATFORM_ROLE_CODE.TENANT_ADMIN
393
+ },
394
+ {
395
+ id: "01KSSZ3K6C8B7SWHHRVA2HPWNA",
396
+ email: "debbie@onsitewounds.com",
397
+ displayName: "Debbie",
398
+ given: "Debbie",
399
+ role: PLATFORM_ROLE_CODE.TENANT_ADMIN
400
+ },
401
+ {
402
+ id: "01KSSZ3K6CMEHW5EG2P474VDFE",
403
+ email: "kim.berkey@onsiteprimary.com",
404
+ displayName: "Kim Berkey",
405
+ given: "Kim",
406
+ family: "Berkey",
407
+ role: PLATFORM_ROLE_CODE.TENANT_ADMIN
408
+ },
409
+ {
410
+ id: "01KSSZ3K6CYF9FXAS515YEZEB0",
411
+ email: "fanniesha@onsitewounds.com",
412
+ displayName: "Fanniesha",
413
+ given: "Fanniesha",
414
+ role: PLATFORM_ROLE_CODE.TENANT_ADMIN
415
+ },
416
+ {
417
+ id: "01KSSZ3K6CDZ90PF1BQBWX55YT",
418
+ email: "brittany.jones@onsitewounds.com",
419
+ displayName: "Brittany Jones",
420
+ given: "Brittany",
421
+ family: "Jones",
422
+ role: PLATFORM_ROLE_CODE.TENANT_ADMIN
423
+ },
424
+ {
425
+ id: "01KSSZ3K6C145GCG0ZH03DQJ0R",
426
+ email: "sabrina@onsiteprimary.com",
427
+ displayName: "Sabrina",
428
+ given: "Sabrina",
429
+ role: PLATFORM_ROLE_CODE.TENANT_ADMIN
430
+ },
431
+ {
432
+ id: "01KSSZ3K6CQZBJGVME470DJQFP",
433
+ email: "stacey.cauthen@onsitewounds.com",
434
+ displayName: "Stacey Cauthen",
435
+ given: "Stacey",
436
+ family: "Cauthen",
437
+ role: PLATFORM_ROLE_CODE.TENANT_ADMIN
438
+ }
439
+ ];
440
+ var onSiteTenantMembershipId = (userId, tenantId) => `onsite-membership-${userId}-${tenantId}`;
441
+ var onSiteWorkspaceMembershipId = (userId, workspaceId) => `onsite-membership-${userId}-ws-${workspaceId}`;
442
+ var onSiteRoleAssignmentId = (userId, tenantId, roleCode) => `onsite-roleassignment-${userId}-${tenantId}-${roleCode}`;
208
443
  var demoMembershipId = (devUserId, tenantId) => `demo-membership-${devUserId}-${tenantId}`;
209
444
  var demoRoleAssignmentId = (devUserId, tenantId, roleCode) => `demo-roleassignment-${devUserId}-${tenantId}-${roleCode}`;
210
445
  var demoScenarioIdentifier = (scenario, roleSuffix) => ({
@@ -3759,26 +3994,26 @@ var DEMO_DATA_PLANE_FIXTURES = [
3759
3994
  ON_SITE_DEMO_FIXTURES,
3760
3995
  buildWoundCareFixtures(
3761
3996
  "demo-wound-care",
3762
- "demo-wound-care-tenant",
3763
- "demo-wound-care-workspace",
3997
+ DEMO_WOUND_CARE_TENANT_ID,
3998
+ DEMO_WOUND_CARE_WORKSPACE_ID,
3764
3999
  "demo-wound-care"
3765
4000
  ),
3766
4001
  buildPrimaryCareFixtures(
3767
4002
  "demo-primary-care",
3768
- "demo-primary-care-tenant",
3769
- "demo-primary-care-workspace",
4003
+ DEMO_PRIMARY_CARE_TENANT_ID,
4004
+ DEMO_PRIMARY_CARE_WORKSPACE_ID,
3770
4005
  "demo-primary-care"
3771
4006
  ),
3772
4007
  buildWoundCareFixtures(
3773
4008
  "demo-mixed",
3774
- "demo-mixed-tenant",
3775
- "demo-mixed-workspace-wound-care",
4009
+ DEMO_MIXED_TENANT_ID,
4010
+ DEMO_MIXED_WORKSPACE_WOUND_CARE_ID,
3776
4011
  "demo-mixed-wound-care"
3777
4012
  ),
3778
4013
  buildPrimaryCareFixtures(
3779
4014
  "demo-mixed",
3780
- "demo-mixed-tenant",
3781
- "demo-mixed-workspace-primary-care",
4015
+ DEMO_MIXED_TENANT_ID,
4016
+ DEMO_MIXED_WORKSPACE_PRIMARY_CARE_ID,
3782
4017
  "demo-mixed-primary-care"
3783
4018
  )
3784
4019
  ];
@@ -3950,6 +4185,204 @@ var upsertUser = async (context, user, cognitoSub) => {
3950
4185
  lastUpdated: context.date ?? (/* @__PURE__ */ new Date()).toISOString()
3951
4186
  }).go();
3952
4187
  };
4188
+ var buildTesterName = (tester) => ({
4189
+ text: tester.displayName,
4190
+ ...tester.given !== void 0 ? { given: [tester.given] } : {},
4191
+ ...tester.family !== void 0 ? { family: tester.family } : {}
4192
+ });
4193
+ var testerUserResourceBody = (tester, cognitoSub) => ({
4194
+ resourceType: "User",
4195
+ id: tester.id,
4196
+ name: [buildTesterName(tester)],
4197
+ telecom: [{ system: "email", value: tester.email }],
4198
+ status: "active",
4199
+ cognitoSub,
4200
+ currentTenant: { reference: `Tenant/${ON_SITE_WOUNDS_TENANT_ID}` },
4201
+ currentWorkspace: {
4202
+ reference: `Workspace/${ON_SITE_WOUNDS_OKLAHOMA_WORKSPACE_ID}`
4203
+ }
4204
+ });
4205
+ var upsertTesterUser = async (context, tester, cognitoSub) => {
4206
+ const service = getDynamoControlService();
4207
+ const resource = testerUserResourceBody(tester, cognitoSub);
4208
+ const summary = JSON.stringify(extractSummary(resource));
4209
+ await service.entities.user.put({
4210
+ id: tester.id,
4211
+ cognitoSub,
4212
+ resource: JSON.stringify(resource),
4213
+ summary,
4214
+ vid: "1",
4215
+ lastUpdated: context.date ?? (/* @__PURE__ */ new Date()).toISOString()
4216
+ }).go();
4217
+ };
4218
+ var onSiteTenantMembershipBody = (spec, userId, membershipId) => ({
4219
+ identifier: [
4220
+ demoScenarioIdentifier(spec.scenario, `membership-${userId}`),
4221
+ openhiResourceIdentifier({
4222
+ tenantId: spec.tenantId,
4223
+ workspaceId: "",
4224
+ resourceType: "Membership",
4225
+ id: membershipId
4226
+ })
4227
+ ],
4228
+ user: { reference: `User/${userId}`, type: "User" },
4229
+ tenant: { reference: `Tenant/${spec.tenantId}`, type: "Tenant" },
4230
+ period: DEMO_PERIOD
4231
+ });
4232
+ var onSiteWorkspaceMembershipBody = (spec, workspace, userId, membershipId) => ({
4233
+ identifier: [
4234
+ demoScenarioIdentifier(
4235
+ spec.scenario,
4236
+ `membership-${userId}-${workspace.roleSuffix}`
4237
+ ),
4238
+ openhiResourceIdentifier({
4239
+ tenantId: spec.tenantId,
4240
+ workspaceId: workspace.id,
4241
+ resourceType: "Membership",
4242
+ id: membershipId
4243
+ })
4244
+ ],
4245
+ user: { reference: `User/${userId}`, type: "User" },
4246
+ tenant: { reference: `Tenant/${spec.tenantId}`, type: "Tenant" },
4247
+ workspace: { reference: `Workspace/${workspace.id}`, type: "Workspace" },
4248
+ period: DEMO_PERIOD
4249
+ });
4250
+ var onSiteRoleAssignmentBody = (spec, userId, roleCode, roleAssignmentId) => ({
4251
+ identifier: [
4252
+ demoScenarioIdentifier(
4253
+ spec.scenario,
4254
+ `roleassignment-${userId}-${roleCode}`
4255
+ ),
4256
+ openhiResourceIdentifier({
4257
+ tenantId: spec.tenantId,
4258
+ workspaceId: "",
4259
+ resourceType: "RoleAssignment",
4260
+ id: roleAssignmentId
4261
+ })
4262
+ ],
4263
+ user: { reference: `User/${userId}`, type: "User" },
4264
+ role: { reference: `Role/${idForRoleCode(roleCode)}`, type: "Role" },
4265
+ tenant: { reference: `Tenant/${spec.tenantId}`, type: "Tenant" },
4266
+ period: DEMO_PERIOD
4267
+ });
4268
+ var seedOnSiteUatForPrincipal = async (failures, baseContext, userId, role) => {
4269
+ for (const spec of ON_SITE_UAT_TENANT_SPECS) {
4270
+ const tenantContext = {
4271
+ ...baseContext,
4272
+ tenantId: spec.tenantId
4273
+ };
4274
+ const scope = `${userId}@${spec.tenantId}`;
4275
+ const tenantMembershipId = onSiteTenantMembershipId(userId, spec.tenantId);
4276
+ await tryRun(
4277
+ failures,
4278
+ "phase-2",
4279
+ scope,
4280
+ "Membership",
4281
+ tenantMembershipId,
4282
+ () => createMembershipOperation({
4283
+ context: tenantContext,
4284
+ body: {
4285
+ id: tenantMembershipId,
4286
+ resource: onSiteTenantMembershipBody(
4287
+ spec,
4288
+ userId,
4289
+ tenantMembershipId
4290
+ )
4291
+ }
4292
+ })
4293
+ );
4294
+ for (const workspace of spec.workspaces) {
4295
+ const wsMembershipId = onSiteWorkspaceMembershipId(userId, workspace.id);
4296
+ await tryRun(
4297
+ failures,
4298
+ "phase-2",
4299
+ scope,
4300
+ "Membership",
4301
+ wsMembershipId,
4302
+ () => createMembershipOperation({
4303
+ context: tenantContext,
4304
+ body: {
4305
+ id: wsMembershipId,
4306
+ resource: onSiteWorkspaceMembershipBody(
4307
+ spec,
4308
+ workspace,
4309
+ userId,
4310
+ wsMembershipId
4311
+ )
4312
+ }
4313
+ })
4314
+ );
4315
+ }
4316
+ const raId = onSiteRoleAssignmentId(userId, spec.tenantId, role);
4317
+ await tryRun(
4318
+ failures,
4319
+ "phase-2",
4320
+ scope,
4321
+ "RoleAssignment",
4322
+ raId,
4323
+ () => createRoleAssignmentOperation({
4324
+ context: tenantContext,
4325
+ body: {
4326
+ id: raId,
4327
+ resource: onSiteRoleAssignmentBody(spec, userId, role, raId)
4328
+ }
4329
+ })
4330
+ );
4331
+ }
4332
+ };
4333
+ var seedPlaceholderTenantForPrincipal = async (failures, baseContext, userId, role) => {
4334
+ const tenantContext = {
4335
+ ...baseContext,
4336
+ tenantId: PLACEHOLDER_TENANT_SPEC.tenantId
4337
+ };
4338
+ const scope = `${userId}@${PLACEHOLDER_TENANT_SPEC.tenantId}`;
4339
+ const tenantMembershipId = onSiteTenantMembershipId(
4340
+ userId,
4341
+ PLACEHOLDER_TENANT_SPEC.tenantId
4342
+ );
4343
+ await tryRun(
4344
+ failures,
4345
+ "phase-2",
4346
+ scope,
4347
+ "Membership",
4348
+ tenantMembershipId,
4349
+ () => createMembershipOperation({
4350
+ context: tenantContext,
4351
+ body: {
4352
+ id: tenantMembershipId,
4353
+ resource: onSiteTenantMembershipBody(
4354
+ PLACEHOLDER_TENANT_SPEC,
4355
+ userId,
4356
+ tenantMembershipId
4357
+ )
4358
+ }
4359
+ })
4360
+ );
4361
+ const raId = onSiteRoleAssignmentId(
4362
+ userId,
4363
+ PLACEHOLDER_TENANT_SPEC.tenantId,
4364
+ role
4365
+ );
4366
+ await tryRun(
4367
+ failures,
4368
+ "phase-2",
4369
+ scope,
4370
+ "RoleAssignment",
4371
+ raId,
4372
+ () => createRoleAssignmentOperation({
4373
+ context: tenantContext,
4374
+ body: {
4375
+ id: raId,
4376
+ resource: onSiteRoleAssignmentBody(
4377
+ PLACEHOLDER_TENANT_SPEC,
4378
+ userId,
4379
+ role,
4380
+ raId
4381
+ )
4382
+ }
4383
+ })
4384
+ );
4385
+ };
3953
4386
  var seedWorkspaceDataPlane = async (baseContext, group, failures) => {
3954
4387
  const workspaceContext = {
3955
4388
  ...baseContext,
@@ -4137,9 +4570,9 @@ var seedWorkspaceDataPlane = async (baseContext, group, failures) => {
4137
4570
  }
4138
4571
  };
4139
4572
  var seedDemoGraph = async (params) => {
4140
- const { baseContext, devUsers, cognito } = params;
4573
+ const { baseContext, devUsers, cognito, onSiteTesters = [] } = params;
4141
4574
  const failures = [];
4142
- for (const spec of DEMO_TENANT_SPECS) {
4575
+ for (const spec of [...DEMO_TENANT_SPECS, ...ON_SITE_UAT_TENANT_SPECS]) {
4143
4576
  const tenantContext = {
4144
4577
  ...baseContext,
4145
4578
  tenantId: spec.tenantId
@@ -4269,6 +4702,47 @@ var seedDemoGraph = async (params) => {
4269
4702
  }
4270
4703
  })
4271
4704
  );
4705
+ await seedOnSiteUatForPrincipal(
4706
+ failures,
4707
+ baseContext,
4708
+ user.id,
4709
+ PLATFORM_ROLE_CODE2.TENANT_ADMIN
4710
+ );
4711
+ }
4712
+ for (const tester of onSiteTesters) {
4713
+ let cognitoSub;
4714
+ try {
4715
+ cognitoSub = await cognito.ensureUser(tester.email);
4716
+ } catch (err) {
4717
+ failures.push({
4718
+ phase: "phase-2",
4719
+ scope: tester.id,
4720
+ resourceType: "CognitoUser",
4721
+ resourceId: tester.email,
4722
+ error: err
4723
+ });
4724
+ continue;
4725
+ }
4726
+ await tryRun(
4727
+ failures,
4728
+ "phase-2",
4729
+ tester.id,
4730
+ "User",
4731
+ tester.id,
4732
+ () => upsertTesterUser(baseContext, tester, cognitoSub)
4733
+ );
4734
+ await seedPlaceholderTenantForPrincipal(
4735
+ failures,
4736
+ baseContext,
4737
+ tester.id,
4738
+ tester.role
4739
+ );
4740
+ await seedOnSiteUatForPrincipal(
4741
+ failures,
4742
+ baseContext,
4743
+ tester.id,
4744
+ tester.role
4745
+ );
4272
4746
  }
4273
4747
  for (const group of DEMO_DATA_PLANE_FIXTURES) {
4274
4748
  try {
@@ -4287,7 +4761,7 @@ var seedDemoGraph = async (params) => {
4287
4761
  throw aggregateFailureError(failures);
4288
4762
  }
4289
4763
  };
4290
- var runSeedDemoData = async (event, deps, devUsers) => {
4764
+ var runSeedDemoData = async (event, deps, devUsers, onSiteTesters = []) => {
4291
4765
  const parsed = (0, import_workflows2.parseWorkflowEvent)(event, import_workflows.PlatformSystemDataSeededV1);
4292
4766
  const recordResult = await deps.dedupClient.recordIfAbsent({
4293
4767
  consumerName: SEED_DEMO_DATA_CONSUMER_NAME,
@@ -4311,7 +4785,8 @@ var runSeedDemoData = async (event, deps, devUsers) => {
4311
4785
  await deps.seedDemoGraph({
4312
4786
  baseContext,
4313
4787
  devUsers,
4314
- cognito: deps.cognito
4788
+ cognito: deps.cognito,
4789
+ onSiteTesters
4315
4790
  });
4316
4791
  } catch (err) {
4317
4792
  await deps.dedupClient.markFailed({
@@ -4465,7 +4940,7 @@ var productionDependencies = () => {
4465
4940
  cognito
4466
4941
  };
4467
4942
  };
4468
- var handler = async (event) => runSeedDemoData(event, productionDependencies(), DEV_USERS);
4943
+ var handler = async (event) => runSeedDemoData(event, productionDependencies(), DEV_USERS, ON_SITE_TESTERS);
4469
4944
 
4470
4945
  export {
4471
4946
  import_workflows,
@@ -4478,7 +4953,29 @@ export {
4478
4953
  ON_SITE_DEMO_TENANT_ID,
4479
4954
  ON_SITE_DEMO_WORKSPACE_ID,
4480
4955
  DEV_USERS,
4956
+ DEMO_WOUND_CARE_TENANT_ID,
4957
+ DEMO_WOUND_CARE_WORKSPACE_ID,
4958
+ DEMO_PRIMARY_CARE_TENANT_ID,
4959
+ DEMO_PRIMARY_CARE_WORKSPACE_ID,
4960
+ DEMO_MIXED_TENANT_ID,
4961
+ DEMO_MIXED_WORKSPACE_WOUND_CARE_ID,
4962
+ DEMO_MIXED_WORKSPACE_PRIMARY_CARE_ID,
4963
+ PLACEHOLDER_TENANT_SPEC,
4481
4964
  DEMO_TENANT_SPECS,
4965
+ ON_SITE_WOUNDS_TENANT_ID,
4966
+ ON_SITE_WOUNDS_OKLAHOMA_WORKSPACE_ID,
4967
+ ON_SITE_WOUNDS_TEXAS_WORKSPACE_ID,
4968
+ ON_SITE_MEDICAL_TENANT_ID,
4969
+ ON_SITE_MEDICAL_OKLAHOMA_WORKSPACE_ID,
4970
+ ON_SITE_MEDICAL_TEXAS_WORKSPACE_ID,
4971
+ ON_SITE_CLINIC_TENANT_ID,
4972
+ ON_SITE_CLINIC_OKLAHOMA_WORKSPACE_ID,
4973
+ ON_SITE_CLINIC_TEXAS_WORKSPACE_ID,
4974
+ ON_SITE_UAT_TENANT_SPECS,
4975
+ ON_SITE_TESTERS,
4976
+ onSiteTenantMembershipId,
4977
+ onSiteWorkspaceMembershipId,
4978
+ onSiteRoleAssignmentId,
4482
4979
  demoMembershipId,
4483
4980
  demoRoleAssignmentId,
4484
4981
  demoScenarioIdentifier,
@@ -4613,4 +5110,4 @@ export {
4613
5110
  productionCognitoProvisioner,
4614
5111
  handler
4615
5112
  };
4616
- //# sourceMappingURL=chunk-7TRO2STL.mjs.map
5113
+ //# sourceMappingURL=chunk-ZODGX37H.mjs.map