@oimlsmart/platform-server 0.1.4 → 0.1.5

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oimlsmart/platform-server",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "The OIML SMART platform server kernel: the store seam (ServerStore + the D1 and SQLite implementations), the canonical D1 migration set both deployments apply, the instance profile, the mailer, the RBAC map, the OIDC/OAuth client cones, and the shared role/permission vocabulary. Consumed by the smart monorepo (browser/) and the identity service.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -145,6 +145,12 @@ export const TRANSITION_PERMISSIONS: Record<string, readonly ActionPermission[]>
145
145
  // records mode (TODO.adoption/02): the registered-offline entry — the
146
146
  // application's honest hop into ACCEPTED without a fake walked history.
147
147
  'application:register_offline->ACCEPTED': ['records.register'],
148
+ // DEMO_FLOWS wave 1: the lifecycle closure — the IA marks the Evaluation
149
+ // Project COMPLETED once the completion gate's settling conditions all
150
+ // hold (the model's completion_settled guard refuses otherwise); the act
151
+ // is the IA's decision desk on the application, the same family as the
152
+ // accept/reject decisions.
153
+ 'application:ia_marks_completed->COMPLETED': ['application.accept'],
148
154
 
149
155
  // test_request (the dispatch; TODO.adoption/07's quote leg: the
150
156
  // laboratory's quotation response and the IA's commercial decision on it)
@@ -161,6 +167,9 @@ export const TRANSITION_PERMISSIONS: Record<string, readonly ActionPermission[]>
161
167
  // test_report
162
168
  'test_report:lab_submits->SUBMITTED': ['tr.submit'],
163
169
  'test_report:ia_starts_review->UNDER_REVIEW': ['tr.review'],
170
+ // DEMO_FLOWS wave 1: the review period's opening on the test report —
171
+ // the IA's TR-review desk (the consultation rides the review class).
172
+ 'test_report:ia_opens_consultation->CONSULTATION': ['tr.review'],
164
173
  'test_report:ia_accepts->ACCEPTED': ['tr.review'],
165
174
  'test_report:ia_rejects->REJECTED': ['tr.review'],
166
175
  'test_report:lab_withdraws_for_edit->DRAFT': ['tr.submit'],
@@ -184,6 +193,9 @@ export const TRANSITION_PERMISSIONS: Record<string, readonly ActionPermission[]>
184
193
  // Fired by the TR-review service when the last report is determined —
185
194
  // the reviewing officer holds tr.review, the evaluation worker er.review.
186
195
  'evaluation_report:last_tr_determined->ALL_TR_REVIEWED': ['tr.review', 'er.review'],
196
+ // DEMO_FLOWS wave 1: the review period's opening — the IA officer's
197
+ // evaluation-work act (the consultation is the ER's review surface).
198
+ 'evaluation_report:ia_opens_consultation->CONSULTATION': ['er.review'],
187
199
  'evaluation_report:ia_approves->APPROVED': ['er.finalize'],
188
200
  'evaluation_report:ia_rejects->REJECTED': ['er.finalize'],
189
201
  'evaluation_report:ia_approves_with_conditions->CONDITIONALLY_APPROVED': ['er.finalize'],
@@ -217,6 +229,22 @@ export const TRANSITION_PERMISSIONS: Record<string, readonly ActionPermission[]>
217
229
  'certificate:revise->ACTIVE': ['certificate.issue'],
218
230
  'certificate:transfer_ownership->ACTIVE': ['certificate.issue'],
219
231
 
232
+ // certificate_registration (DEMO_FLOWS wave 1 — the register's
233
+ // auto-publish doctrine, the program owner's 2026-08-28 decision): the
234
+ // hub-side registration submission lifecycle — the registrant
235
+ // announcement's shell, the signed package's intake verification, the
236
+ // publication, the recorded refusal. All three edges are SYSTEM acts:
237
+ // the intake automation walks them on the verified signed submission
238
+ // (no human gate between verify and publish — the register's trust is
239
+ // in the signature + the receipt machinery; the human review surfaces
240
+ // stay read postures). The map names the desk authority the automation
241
+ // exercises — the same shape the other engine-fired edges ride (the
242
+ // sample_verification projection's transitions name
243
+ // verification.perform).
244
+ 'certificate_registration:intake_verifies->SUBMITTED': ['certificate.register'],
245
+ 'certificate_registration:auto_publishes->PUBLISHED': ['certificate.register'],
246
+ 'certificate_registration:intake_refuses->REFUSED': ['certificate.register'],
247
+
220
248
  // test_assignment (the laboratory's work items; `omit` rides the IA's
221
249
  // dispatch withdrawal cascade)
222
250
  'test_assignment:lab_accepts->ACCEPTED': ['run.perform'],
@@ -354,6 +382,10 @@ export const STORE_MACHINES: Record<string, string> = {
354
382
  formInstances: 'form_instance',
355
383
  evaluationReports: 'evaluation_report',
356
384
  certificates: 'certificate',
385
+ // DEMO_FLOWS wave 1: the register's registration submissions are
386
+ // machinated too (the intake-verify → auto-publish chain); the generic
387
+ // write path gates status writes on the machine's declared edges.
388
+ certificateRegistrations: 'certificate_registration',
357
389
  testAssignments: 'test_assignment',
358
390
  testRuns: 'test_run',
359
391
  measuringInstrumentSamples: 'measuring_instrument_sample',