@almadar/std 15.15.0 → 15.15.1

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 (273) hide show
  1. package/behaviors/registry/app/atoms/std-ap-bill.orb +423 -171
  2. package/behaviors/registry/app/atoms/std-applicant.orb +207 -165
  3. package/behaviors/registry/app/atoms/std-application.orb +300 -188
  4. package/behaviors/registry/app/atoms/std-approval-request.orb +370 -215
  5. package/behaviors/registry/app/atoms/std-campaign-goal.orb +382 -167
  6. package/behaviors/registry/app/atoms/std-change-order.orb +458 -194
  7. package/behaviors/registry/app/atoms/std-chart-of-accounts.orb +201 -130
  8. package/behaviors/registry/app/atoms/std-checkin.orb +215 -151
  9. package/behaviors/registry/app/atoms/std-checkout-terminal.orb +322 -133
  10. package/behaviors/registry/app/atoms/std-class-roster.orb +343 -170
  11. package/behaviors/registry/app/atoms/std-class-session.orb +321 -190
  12. package/behaviors/registry/app/atoms/std-court-deadline.orb +353 -182
  13. package/behaviors/registry/app/atoms/std-customer-account.orb +376 -157
  14. package/behaviors/registry/app/atoms/std-donation-receipt.orb +214 -143
  15. package/behaviors/registry/app/atoms/std-donor.orb +191 -156
  16. package/behaviors/registry/app/atoms/std-drip-sequence.orb +409 -170
  17. package/behaviors/registry/app/atoms/std-driver.orb +440 -202
  18. package/behaviors/registry/app/atoms/std-dunning.orb +431 -167
  19. package/behaviors/registry/app/atoms/std-email-broadcast.orb +386 -143
  20. package/behaviors/registry/app/atoms/std-event.orb +309 -178
  21. package/behaviors/registry/app/atoms/std-form-builder.orb +353 -220
  22. package/behaviors/registry/app/atoms/std-health-score.orb +218 -183
  23. package/behaviors/registry/app/atoms/std-help-article.orb +425 -162
  24. package/behaviors/registry/app/atoms/std-help-category.orb +409 -166
  25. package/behaviors/registry/app/atoms/std-interview-slot.orb +311 -138
  26. package/behaviors/registry/app/atoms/std-invoice.orb +349 -211
  27. package/behaviors/registry/app/atoms/std-kitchen-display.orb +308 -184
  28. package/behaviors/registry/app/atoms/std-lease.orb +411 -178
  29. package/behaviors/registry/app/atoms/std-ledger-entry.orb +266 -195
  30. package/behaviors/registry/app/atoms/std-maintenance-request.orb +396 -177
  31. package/behaviors/registry/app/atoms/std-matter.orb +415 -189
  32. package/behaviors/registry/app/atoms/std-membership.orb +387 -167
  33. package/behaviors/registry/app/atoms/std-menu.orb +232 -175
  34. package/behaviors/registry/app/atoms/std-modifier-group.orb +224 -167
  35. package/behaviors/registry/app/atoms/std-nps-survey.orb +390 -138
  36. package/behaviors/registry/app/atoms/std-offer-letter.orb +242 -133
  37. package/behaviors/registry/app/atoms/std-payout-ledger.orb +428 -176
  38. package/behaviors/registry/app/atoms/std-question-bank.orb +211 -145
  39. package/behaviors/registry/app/atoms/std-receipt.orb +248 -177
  40. package/behaviors/registry/app/atoms/std-recurring-charge.orb +421 -149
  41. package/behaviors/registry/app/atoms/std-renewal-risk.orb +382 -153
  42. package/behaviors/registry/app/atoms/std-rent-charge.orb +476 -176
  43. package/behaviors/registry/app/atoms/std-reorder-rule.orb +246 -176
  44. package/behaviors/registry/app/atoms/std-response-collector.orb +213 -150
  45. package/behaviors/registry/app/atoms/std-rfi.orb +365 -210
  46. package/behaviors/registry/app/atoms/std-route-optimize.orb +195 -146
  47. package/behaviors/registry/app/atoms/std-segment.orb +173 -139
  48. package/behaviors/registry/app/atoms/std-stock-level.orb +205 -135
  49. package/behaviors/registry/app/atoms/std-submittal.orb +323 -166
  50. package/behaviors/registry/app/atoms/std-table-map.orb +187 -63
  51. package/behaviors/registry/app/atoms/std-technician-dispatch.orb +290 -202
  52. package/behaviors/registry/app/atoms/std-telematics-event.orb +156 -128
  53. package/behaviors/registry/app/atoms/std-template-editor.orb +255 -189
  54. package/behaviors/registry/app/atoms/std-tenant.orb +375 -147
  55. package/behaviors/registry/app/atoms/std-ticket-tier.orb +463 -150
  56. package/behaviors/registry/app/atoms/std-time-entry.orb +259 -150
  57. package/behaviors/registry/app/atoms/std-timesheet.orb +292 -183
  58. package/behaviors/registry/app/atoms/std-trial.orb +401 -183
  59. package/behaviors/registry/app/atoms/std-vehicle.orb +447 -205
  60. package/behaviors/registry/app/atoms/std-vendor-onboarding.orb +289 -245
  61. package/behaviors/registry/app/atoms/std-waitlist.orb +308 -177
  62. package/behaviors/registry/app/atoms/std-warehouse.orb +211 -141
  63. package/behaviors/registry/app/atoms/std-work-order.orb +374 -219
  64. package/behaviors/registry/app/organisms/std-subscription-billing.orb +282 -195
  65. package/behaviors/registry/core/atoms/std-approval-gate.orb +703 -0
  66. package/behaviors/registry/core/atoms/std-audit-capture.orb +150 -64
  67. package/behaviors/registry/core/atoms/std-data-erasure.orb +546 -0
  68. package/behaviors/registry/core/atoms/std-lifecycle.orb +343 -0
  69. package/behaviors/registry/core/atoms/std-notify-on-event.orb +132 -46
  70. package/behaviors/registry/core/atoms/std-reminder-scheduler.orb +330 -0
  71. package/behaviors/registry/marketing/atoms/std-marketing-article.orb +96 -0
  72. package/behaviors/registry/marketing/atoms/std-marketing-case-studies.orb +243 -0
  73. package/behaviors/registry/marketing/atoms/std-marketing-community.orb +134 -0
  74. package/behaviors/registry/marketing/atoms/std-marketing-cta.orb +206 -0
  75. package/behaviors/registry/marketing/atoms/std-marketing-features.orb +193 -0
  76. package/behaviors/registry/marketing/atoms/std-marketing-footer.orb +192 -0
  77. package/behaviors/registry/marketing/atoms/std-marketing-hero.orb +262 -0
  78. package/behaviors/registry/marketing/atoms/std-marketing-nav.orb +190 -0
  79. package/behaviors/registry/marketing/atoms/std-marketing-pricing.orb +232 -0
  80. package/behaviors/registry/marketing/atoms/std-marketing-showcase.orb +276 -0
  81. package/behaviors/registry/marketing/atoms/std-marketing-split.orb +135 -0
  82. package/behaviors/registry/marketing/atoms/std-marketing-stats.orb +120 -0
  83. package/behaviors/registry/marketing/atoms/std-marketing-steps.orb +179 -0
  84. package/behaviors/registry/marketing/atoms/std-marketing-team.orb +192 -0
  85. package/behaviors/registry/marketing/atoms/std-marketing-testimonials.orb +124 -0
  86. package/behaviors/registry/marketing/molecules/std-about-page.orb +440 -0
  87. package/behaviors/registry/marketing/molecules/std-feature-detail-page.orb +371 -0
  88. package/behaviors/registry/marketing/molecules/std-landing-page.orb +521 -0
  89. package/behaviors/registry/marketing/molecules/std-pricing-page.orb +406 -0
  90. package/behaviors/registry/marketing/organisms/std-marketing-site.orb +1654 -0
  91. package/dist/behaviors/behaviors-registry.json +2913 -156
  92. package/dist/behaviors/registry/app/atoms/std-ap-bill.orb +423 -171
  93. package/dist/behaviors/registry/app/atoms/std-applicant.orb +207 -165
  94. package/dist/behaviors/registry/app/atoms/std-application.orb +300 -188
  95. package/dist/behaviors/registry/app/atoms/std-approval-request.orb +370 -215
  96. package/dist/behaviors/registry/app/atoms/std-campaign-goal.orb +382 -167
  97. package/dist/behaviors/registry/app/atoms/std-change-order.orb +458 -194
  98. package/dist/behaviors/registry/app/atoms/std-chart-of-accounts.orb +201 -130
  99. package/dist/behaviors/registry/app/atoms/std-checkin.orb +215 -151
  100. package/dist/behaviors/registry/app/atoms/std-checkout-terminal.orb +322 -133
  101. package/dist/behaviors/registry/app/atoms/std-class-roster.orb +343 -170
  102. package/dist/behaviors/registry/app/atoms/std-class-session.orb +321 -190
  103. package/dist/behaviors/registry/app/atoms/std-court-deadline.orb +353 -182
  104. package/dist/behaviors/registry/app/atoms/std-customer-account.orb +376 -157
  105. package/dist/behaviors/registry/app/atoms/std-donation-receipt.orb +214 -143
  106. package/dist/behaviors/registry/app/atoms/std-donor.orb +191 -156
  107. package/dist/behaviors/registry/app/atoms/std-drip-sequence.orb +409 -170
  108. package/dist/behaviors/registry/app/atoms/std-driver.orb +440 -202
  109. package/dist/behaviors/registry/app/atoms/std-dunning.orb +431 -167
  110. package/dist/behaviors/registry/app/atoms/std-email-broadcast.orb +386 -143
  111. package/dist/behaviors/registry/app/atoms/std-event.orb +309 -178
  112. package/dist/behaviors/registry/app/atoms/std-form-builder.orb +353 -220
  113. package/dist/behaviors/registry/app/atoms/std-health-score.orb +218 -183
  114. package/dist/behaviors/registry/app/atoms/std-help-article.orb +425 -162
  115. package/dist/behaviors/registry/app/atoms/std-help-category.orb +409 -166
  116. package/dist/behaviors/registry/app/atoms/std-interview-slot.orb +311 -138
  117. package/dist/behaviors/registry/app/atoms/std-invoice.orb +349 -211
  118. package/dist/behaviors/registry/app/atoms/std-kitchen-display.orb +308 -184
  119. package/dist/behaviors/registry/app/atoms/std-lease.orb +411 -178
  120. package/dist/behaviors/registry/app/atoms/std-ledger-entry.orb +266 -195
  121. package/dist/behaviors/registry/app/atoms/std-maintenance-request.orb +396 -177
  122. package/dist/behaviors/registry/app/atoms/std-matter.orb +415 -189
  123. package/dist/behaviors/registry/app/atoms/std-membership.orb +387 -167
  124. package/dist/behaviors/registry/app/atoms/std-menu.orb +232 -175
  125. package/dist/behaviors/registry/app/atoms/std-modifier-group.orb +224 -167
  126. package/dist/behaviors/registry/app/atoms/std-nps-survey.orb +390 -138
  127. package/dist/behaviors/registry/app/atoms/std-offer-letter.orb +242 -133
  128. package/dist/behaviors/registry/app/atoms/std-payout-ledger.orb +428 -176
  129. package/dist/behaviors/registry/app/atoms/std-question-bank.orb +211 -145
  130. package/dist/behaviors/registry/app/atoms/std-receipt.orb +248 -177
  131. package/dist/behaviors/registry/app/atoms/std-recurring-charge.orb +421 -149
  132. package/dist/behaviors/registry/app/atoms/std-renewal-risk.orb +382 -153
  133. package/dist/behaviors/registry/app/atoms/std-rent-charge.orb +476 -176
  134. package/dist/behaviors/registry/app/atoms/std-reorder-rule.orb +246 -176
  135. package/dist/behaviors/registry/app/atoms/std-response-collector.orb +213 -150
  136. package/dist/behaviors/registry/app/atoms/std-rfi.orb +365 -210
  137. package/dist/behaviors/registry/app/atoms/std-route-optimize.orb +195 -146
  138. package/dist/behaviors/registry/app/atoms/std-segment.orb +173 -139
  139. package/dist/behaviors/registry/app/atoms/std-stock-level.orb +205 -135
  140. package/dist/behaviors/registry/app/atoms/std-submittal.orb +323 -166
  141. package/dist/behaviors/registry/app/atoms/std-table-map.orb +187 -63
  142. package/dist/behaviors/registry/app/atoms/std-technician-dispatch.orb +290 -202
  143. package/dist/behaviors/registry/app/atoms/std-telematics-event.orb +156 -128
  144. package/dist/behaviors/registry/app/atoms/std-template-editor.orb +255 -189
  145. package/dist/behaviors/registry/app/atoms/std-tenant.orb +375 -147
  146. package/dist/behaviors/registry/app/atoms/std-ticket-tier.orb +463 -150
  147. package/dist/behaviors/registry/app/atoms/std-time-entry.orb +259 -150
  148. package/dist/behaviors/registry/app/atoms/std-timesheet.orb +292 -183
  149. package/dist/behaviors/registry/app/atoms/std-trial.orb +401 -183
  150. package/dist/behaviors/registry/app/atoms/std-vehicle.orb +447 -205
  151. package/dist/behaviors/registry/app/atoms/std-vendor-onboarding.orb +289 -245
  152. package/dist/behaviors/registry/app/atoms/std-waitlist.orb +308 -177
  153. package/dist/behaviors/registry/app/atoms/std-warehouse.orb +211 -141
  154. package/dist/behaviors/registry/app/atoms/std-work-order.orb +374 -219
  155. package/dist/behaviors/registry/app/organisms/std-subscription-billing.orb +282 -195
  156. package/dist/behaviors/registry/core/atoms/std-approval-gate.orb +703 -0
  157. package/dist/behaviors/registry/core/atoms/std-audit-capture.orb +150 -64
  158. package/dist/behaviors/registry/core/atoms/std-data-erasure.orb +546 -0
  159. package/dist/behaviors/registry/core/atoms/std-lifecycle.orb +343 -0
  160. package/dist/behaviors/registry/core/atoms/std-notify-on-event.orb +132 -46
  161. package/dist/behaviors/registry/core/atoms/std-reminder-scheduler.orb +330 -0
  162. package/dist/behaviors/registry/marketing/atoms/std-marketing-article.orb +96 -0
  163. package/dist/behaviors/registry/marketing/atoms/std-marketing-case-studies.orb +243 -0
  164. package/dist/behaviors/registry/marketing/atoms/std-marketing-community.orb +134 -0
  165. package/dist/behaviors/registry/marketing/atoms/std-marketing-cta.orb +206 -0
  166. package/dist/behaviors/registry/marketing/atoms/std-marketing-features.orb +193 -0
  167. package/dist/behaviors/registry/marketing/atoms/std-marketing-footer.orb +192 -0
  168. package/dist/behaviors/registry/marketing/atoms/std-marketing-hero.orb +262 -0
  169. package/dist/behaviors/registry/marketing/atoms/std-marketing-nav.orb +190 -0
  170. package/dist/behaviors/registry/marketing/atoms/std-marketing-pricing.orb +232 -0
  171. package/dist/behaviors/registry/marketing/atoms/std-marketing-showcase.orb +276 -0
  172. package/dist/behaviors/registry/marketing/atoms/std-marketing-split.orb +135 -0
  173. package/dist/behaviors/registry/marketing/atoms/std-marketing-stats.orb +120 -0
  174. package/dist/behaviors/registry/marketing/atoms/std-marketing-steps.orb +179 -0
  175. package/dist/behaviors/registry/marketing/atoms/std-marketing-team.orb +192 -0
  176. package/dist/behaviors/registry/marketing/atoms/std-marketing-testimonials.orb +124 -0
  177. package/dist/behaviors/registry/marketing/molecules/std-about-page.orb +440 -0
  178. package/dist/behaviors/registry/marketing/molecules/std-feature-detail-page.orb +371 -0
  179. package/dist/behaviors/registry/marketing/molecules/std-landing-page.orb +521 -0
  180. package/dist/behaviors/registry/marketing/molecules/std-pricing-page.orb +406 -0
  181. package/dist/behaviors/registry/marketing/organisms/std-marketing-site.orb +1654 -0
  182. package/dist/behaviors-registry.json +2913 -156
  183. package/dist/registry/app/atoms/std-ap-bill.orb +423 -171
  184. package/dist/registry/app/atoms/std-applicant.orb +207 -165
  185. package/dist/registry/app/atoms/std-application.orb +300 -188
  186. package/dist/registry/app/atoms/std-approval-request.orb +370 -215
  187. package/dist/registry/app/atoms/std-campaign-goal.orb +382 -167
  188. package/dist/registry/app/atoms/std-change-order.orb +458 -194
  189. package/dist/registry/app/atoms/std-chart-of-accounts.orb +201 -130
  190. package/dist/registry/app/atoms/std-checkin.orb +215 -151
  191. package/dist/registry/app/atoms/std-checkout-terminal.orb +322 -133
  192. package/dist/registry/app/atoms/std-class-roster.orb +343 -170
  193. package/dist/registry/app/atoms/std-class-session.orb +321 -190
  194. package/dist/registry/app/atoms/std-court-deadline.orb +353 -182
  195. package/dist/registry/app/atoms/std-customer-account.orb +376 -157
  196. package/dist/registry/app/atoms/std-donation-receipt.orb +214 -143
  197. package/dist/registry/app/atoms/std-donor.orb +191 -156
  198. package/dist/registry/app/atoms/std-drip-sequence.orb +409 -170
  199. package/dist/registry/app/atoms/std-driver.orb +440 -202
  200. package/dist/registry/app/atoms/std-dunning.orb +431 -167
  201. package/dist/registry/app/atoms/std-email-broadcast.orb +386 -143
  202. package/dist/registry/app/atoms/std-event.orb +309 -178
  203. package/dist/registry/app/atoms/std-form-builder.orb +353 -220
  204. package/dist/registry/app/atoms/std-health-score.orb +218 -183
  205. package/dist/registry/app/atoms/std-help-article.orb +425 -162
  206. package/dist/registry/app/atoms/std-help-category.orb +409 -166
  207. package/dist/registry/app/atoms/std-interview-slot.orb +311 -138
  208. package/dist/registry/app/atoms/std-invoice.orb +349 -211
  209. package/dist/registry/app/atoms/std-kitchen-display.orb +308 -184
  210. package/dist/registry/app/atoms/std-lease.orb +411 -178
  211. package/dist/registry/app/atoms/std-ledger-entry.orb +266 -195
  212. package/dist/registry/app/atoms/std-maintenance-request.orb +396 -177
  213. package/dist/registry/app/atoms/std-matter.orb +415 -189
  214. package/dist/registry/app/atoms/std-membership.orb +387 -167
  215. package/dist/registry/app/atoms/std-menu.orb +232 -175
  216. package/dist/registry/app/atoms/std-modifier-group.orb +224 -167
  217. package/dist/registry/app/atoms/std-nps-survey.orb +390 -138
  218. package/dist/registry/app/atoms/std-offer-letter.orb +242 -133
  219. package/dist/registry/app/atoms/std-payout-ledger.orb +428 -176
  220. package/dist/registry/app/atoms/std-question-bank.orb +211 -145
  221. package/dist/registry/app/atoms/std-receipt.orb +248 -177
  222. package/dist/registry/app/atoms/std-recurring-charge.orb +421 -149
  223. package/dist/registry/app/atoms/std-renewal-risk.orb +382 -153
  224. package/dist/registry/app/atoms/std-rent-charge.orb +476 -176
  225. package/dist/registry/app/atoms/std-reorder-rule.orb +246 -176
  226. package/dist/registry/app/atoms/std-response-collector.orb +213 -150
  227. package/dist/registry/app/atoms/std-rfi.orb +365 -210
  228. package/dist/registry/app/atoms/std-route-optimize.orb +195 -146
  229. package/dist/registry/app/atoms/std-segment.orb +173 -139
  230. package/dist/registry/app/atoms/std-stock-level.orb +205 -135
  231. package/dist/registry/app/atoms/std-submittal.orb +323 -166
  232. package/dist/registry/app/atoms/std-table-map.orb +187 -63
  233. package/dist/registry/app/atoms/std-technician-dispatch.orb +290 -202
  234. package/dist/registry/app/atoms/std-telematics-event.orb +156 -128
  235. package/dist/registry/app/atoms/std-template-editor.orb +255 -189
  236. package/dist/registry/app/atoms/std-tenant.orb +375 -147
  237. package/dist/registry/app/atoms/std-ticket-tier.orb +463 -150
  238. package/dist/registry/app/atoms/std-time-entry.orb +259 -150
  239. package/dist/registry/app/atoms/std-timesheet.orb +292 -183
  240. package/dist/registry/app/atoms/std-trial.orb +401 -183
  241. package/dist/registry/app/atoms/std-vehicle.orb +447 -205
  242. package/dist/registry/app/atoms/std-vendor-onboarding.orb +289 -245
  243. package/dist/registry/app/atoms/std-waitlist.orb +308 -177
  244. package/dist/registry/app/atoms/std-warehouse.orb +211 -141
  245. package/dist/registry/app/atoms/std-work-order.orb +374 -219
  246. package/dist/registry/app/organisms/std-subscription-billing.orb +282 -195
  247. package/dist/registry/core/atoms/std-approval-gate.orb +703 -0
  248. package/dist/registry/core/atoms/std-audit-capture.orb +150 -64
  249. package/dist/registry/core/atoms/std-data-erasure.orb +546 -0
  250. package/dist/registry/core/atoms/std-lifecycle.orb +343 -0
  251. package/dist/registry/core/atoms/std-notify-on-event.orb +132 -46
  252. package/dist/registry/core/atoms/std-reminder-scheduler.orb +330 -0
  253. package/dist/registry/marketing/atoms/std-marketing-article.orb +96 -0
  254. package/dist/registry/marketing/atoms/std-marketing-case-studies.orb +243 -0
  255. package/dist/registry/marketing/atoms/std-marketing-community.orb +134 -0
  256. package/dist/registry/marketing/atoms/std-marketing-cta.orb +206 -0
  257. package/dist/registry/marketing/atoms/std-marketing-features.orb +193 -0
  258. package/dist/registry/marketing/atoms/std-marketing-footer.orb +192 -0
  259. package/dist/registry/marketing/atoms/std-marketing-hero.orb +262 -0
  260. package/dist/registry/marketing/atoms/std-marketing-nav.orb +190 -0
  261. package/dist/registry/marketing/atoms/std-marketing-pricing.orb +232 -0
  262. package/dist/registry/marketing/atoms/std-marketing-showcase.orb +276 -0
  263. package/dist/registry/marketing/atoms/std-marketing-split.orb +135 -0
  264. package/dist/registry/marketing/atoms/std-marketing-stats.orb +120 -0
  265. package/dist/registry/marketing/atoms/std-marketing-steps.orb +179 -0
  266. package/dist/registry/marketing/atoms/std-marketing-team.orb +192 -0
  267. package/dist/registry/marketing/atoms/std-marketing-testimonials.orb +124 -0
  268. package/dist/registry/marketing/molecules/std-about-page.orb +440 -0
  269. package/dist/registry/marketing/molecules/std-feature-detail-page.orb +371 -0
  270. package/dist/registry/marketing/molecules/std-landing-page.orb +521 -0
  271. package/dist/registry/marketing/molecules/std-pricing-page.orb +406 -0
  272. package/dist/registry/marketing/organisms/std-marketing-site.orb +1654 -0
  273. package/package.json +1 -1
@@ -0,0 +1,546 @@
1
+ {
2
+ "name": "std-data-erasure",
3
+ "version": "1.0.0",
4
+ "description": "std-data-erasure — GDPR Art. 17 right-to-be-forgotten queue. Tracks ErasureRequest rows through pending → grace → executed lifecycle with Cancel during grace. v1.0 ships the request lifecycle UI + knob set; auto-emit of ExecuteErasure after grace lands in v1.1 (loop-with-emit gap — docs/Almadar_Std_Factories.md). Target app/ atoms then own the actual delete or piiFields scrub via an ExecuteErasure listener.",
5
+ "orbitals": [
6
+ {
7
+ "name": "DataErasureOrbital",
8
+ "entity": {
9
+ "name": "ErasureRequest",
10
+ "collection": "erasure_requests",
11
+ "persistence": "persistent",
12
+ "fields": [
13
+ {
14
+ "name": "id",
15
+ "type": "string",
16
+ "required": true
17
+ },
18
+ {
19
+ "name": "subjectId",
20
+ "type": "string",
21
+ "default": ""
22
+ },
23
+ {
24
+ "name": "targetEntity",
25
+ "type": "string",
26
+ "default": ""
27
+ },
28
+ {
29
+ "name": "status",
30
+ "type": "string",
31
+ "default": "pending",
32
+ "values": [
33
+ "pending",
34
+ "grace",
35
+ "executed",
36
+ "cancelled"
37
+ ]
38
+ },
39
+ {
40
+ "name": "requestedAt",
41
+ "type": "number",
42
+ "default": 0.0
43
+ },
44
+ {
45
+ "name": "executesAt",
46
+ "type": "number",
47
+ "default": 0.0
48
+ },
49
+ {
50
+ "name": "executedAt",
51
+ "type": "number",
52
+ "default": 0.0
53
+ },
54
+ {
55
+ "name": "cancelledAt",
56
+ "type": "number",
57
+ "default": 0.0
58
+ },
59
+ {
60
+ "name": "notes",
61
+ "type": "string",
62
+ "default": ""
63
+ }
64
+ ]
65
+ },
66
+ "traits": [
67
+ {
68
+ "name": "ErasureWorkflow",
69
+ "category": "interaction",
70
+ "linkedEntity": "ErasureRequest",
71
+ "emits": [
72
+ {
73
+ "event": "CANCEL_ERASURE",
74
+ "payloadSchema": [
75
+ {
76
+ "name": "id",
77
+ "type": "string",
78
+ "required": true
79
+ },
80
+ {
81
+ "name": "row.id",
82
+ "type": "string",
83
+ "required": true
84
+ },
85
+ {
86
+ "name": "row.subjectId",
87
+ "type": "string"
88
+ },
89
+ {
90
+ "name": "row.targetEntity",
91
+ "type": "string"
92
+ },
93
+ {
94
+ "name": "row.status",
95
+ "type": "string"
96
+ },
97
+ {
98
+ "name": "row.requestedAt",
99
+ "type": "number"
100
+ },
101
+ {
102
+ "name": "row.executesAt",
103
+ "type": "number"
104
+ },
105
+ {
106
+ "name": "row.executedAt",
107
+ "type": "number"
108
+ },
109
+ {
110
+ "name": "row.cancelledAt",
111
+ "type": "number"
112
+ },
113
+ {
114
+ "name": "row.notes",
115
+ "type": "string"
116
+ }
117
+ ]
118
+ },
119
+ {
120
+ "event": "ErasureLoaded",
121
+ "payloadSchema": [
122
+ {
123
+ "name": "data",
124
+ "type": "[ErasureRequest]"
125
+ }
126
+ ]
127
+ },
128
+ {
129
+ "event": "ErasureLoadFailed",
130
+ "payloadSchema": [
131
+ {
132
+ "name": "error",
133
+ "type": "string"
134
+ },
135
+ {
136
+ "name": "code",
137
+ "type": "string"
138
+ }
139
+ ]
140
+ },
141
+ {
142
+ "event": "ErasureSaved",
143
+ "payloadSchema": [
144
+ {
145
+ "name": "row.id",
146
+ "type": "string",
147
+ "required": true
148
+ },
149
+ {
150
+ "name": "row.subjectId",
151
+ "type": "string"
152
+ },
153
+ {
154
+ "name": "row.targetEntity",
155
+ "type": "string"
156
+ },
157
+ {
158
+ "name": "row.status",
159
+ "type": "string"
160
+ },
161
+ {
162
+ "name": "row.requestedAt",
163
+ "type": "number"
164
+ },
165
+ {
166
+ "name": "row.executesAt",
167
+ "type": "number"
168
+ },
169
+ {
170
+ "name": "row.executedAt",
171
+ "type": "number"
172
+ },
173
+ {
174
+ "name": "row.cancelledAt",
175
+ "type": "number"
176
+ },
177
+ {
178
+ "name": "row.notes",
179
+ "type": "string"
180
+ }
181
+ ]
182
+ },
183
+ {
184
+ "event": "ErasureSaveFailed",
185
+ "payloadSchema": [
186
+ {
187
+ "name": "error",
188
+ "type": "string"
189
+ },
190
+ {
191
+ "name": "code",
192
+ "type": "string"
193
+ }
194
+ ]
195
+ }
196
+ ],
197
+ "stateMachine": {
198
+ "states": [
199
+ {
200
+ "name": "loading",
201
+ "isInitial": true
202
+ },
203
+ {
204
+ "name": "browsing"
205
+ },
206
+ {
207
+ "name": "error"
208
+ }
209
+ ],
210
+ "events": [
211
+ {
212
+ "key": "INIT",
213
+ "name": "Initialize"
214
+ },
215
+ {
216
+ "key": "ErasureLoaded",
217
+ "name": "Erasure loaded",
218
+ "payloadSchema": [
219
+ {
220
+ "name": "data",
221
+ "type": "[ErasureRequest]"
222
+ }
223
+ ]
224
+ },
225
+ {
226
+ "key": "ErasureLoadFailed",
227
+ "name": "Erasure load failed",
228
+ "payloadSchema": [
229
+ {
230
+ "name": "error",
231
+ "type": "string"
232
+ },
233
+ {
234
+ "name": "code",
235
+ "type": "string"
236
+ }
237
+ ]
238
+ },
239
+ {
240
+ "key": "CANCEL_ERASURE",
241
+ "name": "Cancel Erasure",
242
+ "payloadSchema": [
243
+ {
244
+ "name": "id",
245
+ "type": "string",
246
+ "required": true
247
+ },
248
+ {
249
+ "name": "row",
250
+ "type": "ErasureRequest"
251
+ }
252
+ ]
253
+ },
254
+ {
255
+ "key": "ErasureSaved",
256
+ "name": "Erasure saved",
257
+ "payloadSchema": [
258
+ {
259
+ "name": "row",
260
+ "type": "ErasureRequest"
261
+ }
262
+ ]
263
+ },
264
+ {
265
+ "key": "ErasureSaveFailed",
266
+ "name": "Erasure save failed",
267
+ "payloadSchema": [
268
+ {
269
+ "name": "error",
270
+ "type": "string"
271
+ },
272
+ {
273
+ "name": "code",
274
+ "type": "string"
275
+ }
276
+ ]
277
+ }
278
+ ],
279
+ "transitions": [
280
+ {
281
+ "from": "loading",
282
+ "to": "loading",
283
+ "event": "INIT",
284
+ "effects": [
285
+ [
286
+ "fetch",
287
+ "ErasureRequest",
288
+ {
289
+ "emit": {
290
+ "success": "ErasureLoaded",
291
+ "failure": "ErasureLoadFailed"
292
+ }
293
+ }
294
+ ],
295
+ [
296
+ "render-ui",
297
+ "main",
298
+ {
299
+ "children": [
300
+ {
301
+ "type": "spinner"
302
+ },
303
+ {
304
+ "color": "muted",
305
+ "variant": "caption",
306
+ "content": "Loading erasure requests…",
307
+ "type": "typography"
308
+ }
309
+ ],
310
+ "type": "stack",
311
+ "gap": "md",
312
+ "align": "center",
313
+ "className": "py-12",
314
+ "direction": "vertical"
315
+ }
316
+ ]
317
+ ]
318
+ },
319
+ {
320
+ "from": "loading",
321
+ "to": "browsing",
322
+ "event": "ErasureLoaded",
323
+ "effects": [
324
+ [
325
+ "render-ui",
326
+ "main",
327
+ {
328
+ "gap": "md",
329
+ "direction": "vertical",
330
+ "children": [
331
+ {
332
+ "align": "center",
333
+ "children": [
334
+ {
335
+ "type": "icon",
336
+ "name": "trash-2"
337
+ },
338
+ {
339
+ "type": "typography",
340
+ "variant": "h3",
341
+ "content": "Erasure requests"
342
+ }
343
+ ],
344
+ "direction": "horizontal",
345
+ "type": "stack",
346
+ "gap": "sm"
347
+ },
348
+ {
349
+ "type": "divider"
350
+ },
351
+ {
352
+ "entity": "@payload.data",
353
+ "fields": [
354
+ {
355
+ "label": "Subject",
356
+ "variant": "caption",
357
+ "name": "subjectId"
358
+ },
359
+ {
360
+ "label": "Status",
361
+ "name": "status",
362
+ "variant": "badge"
363
+ },
364
+ {
365
+ "name": "executesAt",
366
+ "label": "Executes",
367
+ "variant": "caption"
368
+ }
369
+ ],
370
+ "cols": 1.0,
371
+ "type": "data-grid",
372
+ "itemActions": [
373
+ {
374
+ "variant": "secondary",
375
+ "label": "Cancel",
376
+ "event": "CANCEL_ERASURE",
377
+ "icon": "x"
378
+ }
379
+ ],
380
+ "gap": "sm"
381
+ }
382
+ ],
383
+ "type": "stack"
384
+ }
385
+ ]
386
+ ]
387
+ },
388
+ {
389
+ "from": "loading",
390
+ "to": "error",
391
+ "event": "ErasureLoadFailed",
392
+ "effects": [
393
+ [
394
+ "render-ui",
395
+ "main",
396
+ {
397
+ "variant": "error",
398
+ "message": "@payload.error",
399
+ "type": "alert"
400
+ }
401
+ ]
402
+ ]
403
+ },
404
+ {
405
+ "from": "browsing",
406
+ "to": "loading",
407
+ "event": "CANCEL_ERASURE",
408
+ "effects": [
409
+ [
410
+ "set",
411
+ "@entity.id",
412
+ "@payload.id"
413
+ ],
414
+ [
415
+ "set",
416
+ "@entity.status",
417
+ "cancelled"
418
+ ],
419
+ [
420
+ "persist",
421
+ "update",
422
+ "ErasureRequest",
423
+ "@entity",
424
+ {
425
+ "emit": {
426
+ "failure": "ErasureSaveFailed",
427
+ "success": "ErasureSaved"
428
+ }
429
+ }
430
+ ]
431
+ ]
432
+ },
433
+ {
434
+ "from": "browsing",
435
+ "to": "loading",
436
+ "event": "ErasureSaved",
437
+ "effects": [
438
+ [
439
+ "fetch",
440
+ "ErasureRequest",
441
+ {
442
+ "emit": {
443
+ "success": "ErasureLoaded",
444
+ "failure": "ErasureLoadFailed"
445
+ }
446
+ }
447
+ ]
448
+ ]
449
+ },
450
+ {
451
+ "from": "browsing",
452
+ "to": "browsing",
453
+ "event": "ErasureSaveFailed",
454
+ "effects": [
455
+ [
456
+ "render-ui",
457
+ "main",
458
+ {
459
+ "message": "@payload.error",
460
+ "type": "alert",
461
+ "variant": "error"
462
+ }
463
+ ]
464
+ ]
465
+ },
466
+ {
467
+ "from": "error",
468
+ "to": "loading",
469
+ "event": "INIT",
470
+ "effects": [
471
+ [
472
+ "fetch",
473
+ "ErasureRequest",
474
+ {
475
+ "emit": {
476
+ "failure": "ErasureLoadFailed",
477
+ "success": "ErasureLoaded"
478
+ }
479
+ }
480
+ ],
481
+ [
482
+ "render-ui",
483
+ "main",
484
+ {
485
+ "type": "spinner",
486
+ "size": "sm"
487
+ }
488
+ ]
489
+ ]
490
+ }
491
+ ]
492
+ },
493
+ "config": {
494
+ "piiFields": {
495
+ "type": "[string]",
496
+ "default": [],
497
+ "label": "PII fields to scrub",
498
+ "description": "Fields the target atom should null when anonymizeVsDelete='anonymize'.",
499
+ "tier": "customization",
500
+ "items": {
501
+ "type": "string"
502
+ }
503
+ },
504
+ "gracePeriodDays": {
505
+ "type": "number",
506
+ "default": 30.0,
507
+ "label": "Grace period (days)",
508
+ "description": "Days between request and execution. Customer can CANCEL during this window. Default 30 days matches typical GDPR practice.",
509
+ "tier": "customization"
510
+ },
511
+ "anonymizeVsDelete": {
512
+ "type": "string",
513
+ "default": "anonymize",
514
+ "label": "Mode",
515
+ "description": "anonymize = scrub piiFields and retain row for audit. delete = remove the row entirely.",
516
+ "tier": "customization",
517
+ "values": [
518
+ "anonymize",
519
+ "delete"
520
+ ]
521
+ },
522
+ "targetEntity": {
523
+ "type": "string",
524
+ "default": "",
525
+ "label": "Target entity",
526
+ "description": "Entity name whose records erasure requests apply to (e.g. 'CustomerAccount').",
527
+ "tier": "essential"
528
+ }
529
+ },
530
+ "scope": "collection"
531
+ }
532
+ ],
533
+ "pages": [
534
+ {
535
+ "name": "ErasureWorkflowPage",
536
+ "path": "/erasure/queue",
537
+ "traits": [
538
+ {
539
+ "ref": "ErasureWorkflow"
540
+ }
541
+ ]
542
+ }
543
+ ]
544
+ }
545
+ ]
546
+ }