@marinoscar/platform-api 0.0.0-stage → 0.1.0-next.3

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 (616) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/LICENSE +21 -0
  3. package/README.md +106 -2
  4. package/dist/core/crypto/encryption-key-startup-check.d.ts +29 -0
  5. package/dist/core/crypto/encryption-key-startup-check.d.ts.map +1 -0
  6. package/dist/core/crypto/encryption-key-startup-check.js +221 -0
  7. package/dist/core/crypto/encryption-key-startup-check.js.map +1 -0
  8. package/dist/core/crypto/secret-cipher.d.ts +151 -0
  9. package/dist/core/crypto/secret-cipher.d.ts.map +1 -0
  10. package/dist/core/crypto/secret-cipher.js +452 -0
  11. package/dist/core/crypto/secret-cipher.js.map +1 -0
  12. package/dist/core/data-access/index.d.ts +6 -0
  13. package/dist/core/data-access/index.d.ts.map +1 -0
  14. package/dist/core/data-access/index.js +19 -0
  15. package/dist/core/data-access/index.js.map +1 -0
  16. package/dist/core/data-access/scoped-access.error.d.ts +35 -0
  17. package/dist/core/data-access/scoped-access.error.d.ts.map +1 -0
  18. package/dist/core/data-access/scoped-access.error.js +43 -0
  19. package/dist/core/data-access/scoped-access.error.js.map +1 -0
  20. package/dist/core/data-access/scoped-client.d.ts +104 -0
  21. package/dist/core/data-access/scoped-client.d.ts.map +1 -0
  22. package/dist/core/data-access/scoped-client.js +270 -0
  23. package/dist/core/data-access/scoped-client.js.map +1 -0
  24. package/dist/core/data-access/types.d.ts +85 -0
  25. package/dist/core/data-access/types.d.ts.map +1 -0
  26. package/dist/core/data-access/types.js +12 -0
  27. package/dist/core/data-access/types.js.map +1 -0
  28. package/dist/core/data-access/user-owned-data.registry.d.ts +60 -0
  29. package/dist/core/data-access/user-owned-data.registry.d.ts.map +1 -0
  30. package/dist/core/data-access/user-owned-data.registry.js +140 -0
  31. package/dist/core/data-access/user-owned-data.registry.js.map +1 -0
  32. package/dist/core/errors/database-seed.exception.d.ts +23 -0
  33. package/dist/core/errors/database-seed.exception.d.ts.map +1 -0
  34. package/dist/core/errors/database-seed.exception.js +49 -0
  35. package/dist/core/errors/database-seed.exception.js.map +1 -0
  36. package/dist/core/errors/error.dto.d.ts +47 -0
  37. package/dist/core/errors/error.dto.d.ts.map +1 -0
  38. package/dist/core/errors/error.dto.js +121 -0
  39. package/dist/core/errors/error.dto.js.map +1 -0
  40. package/dist/core/errors/http-exception.filter.d.ts +63 -0
  41. package/dist/core/errors/http-exception.filter.d.ts.map +1 -0
  42. package/dist/core/errors/http-exception.filter.js +234 -0
  43. package/dist/core/errors/http-exception.filter.js.map +1 -0
  44. package/dist/core/errors/verbatim-error-body.exception.d.ts +46 -0
  45. package/dist/core/errors/verbatim-error-body.exception.d.ts.map +1 -0
  46. package/dist/core/errors/verbatim-error-body.exception.js +135 -0
  47. package/dist/core/errors/verbatim-error-body.exception.js.map +1 -0
  48. package/dist/core/host/index.d.ts +7 -0
  49. package/dist/core/host/index.d.ts.map +1 -0
  50. package/dist/core/host/index.js +14 -0
  51. package/dist/core/host/index.js.map +1 -0
  52. package/dist/core/host/platform-host.d.ts +58 -0
  53. package/dist/core/host/platform-host.d.ts.map +1 -0
  54. package/dist/core/host/platform-host.js +104 -0
  55. package/dist/core/host/platform-host.js.map +1 -0
  56. package/dist/core/host/platform-host.module.d.ts +53 -0
  57. package/dist/core/host/platform-host.module.d.ts.map +1 -0
  58. package/dist/core/host/platform-host.module.js +90 -0
  59. package/dist/core/host/platform-host.module.js.map +1 -0
  60. package/dist/core/host/ports.d.ts +132 -0
  61. package/dist/core/host/ports.d.ts.map +1 -0
  62. package/dist/core/host/ports.js +48 -0
  63. package/dist/core/host/ports.js.map +1 -0
  64. package/dist/core/index.d.ts +15 -0
  65. package/dist/core/index.d.ts.map +1 -0
  66. package/dist/core/index.js +77 -0
  67. package/dist/core/index.js.map +1 -0
  68. package/dist/core/openapi/openapi-tag.registry.d.ts +80 -0
  69. package/dist/core/openapi/openapi-tag.registry.d.ts.map +1 -0
  70. package/dist/core/openapi/openapi-tag.registry.js +72 -0
  71. package/dist/core/openapi/openapi-tag.registry.js.map +1 -0
  72. package/dist/core/principal/index.d.ts +6 -0
  73. package/dist/core/principal/index.d.ts.map +1 -0
  74. package/dist/core/principal/index.js +3 -0
  75. package/dist/core/principal/index.js.map +1 -0
  76. package/dist/core/principal/principal.types.d.ts +222 -0
  77. package/dist/core/principal/principal.types.d.ts.map +1 -0
  78. package/dist/core/principal/principal.types.js +22 -0
  79. package/dist/core/principal/principal.types.js.map +1 -0
  80. package/dist/core/registry/index.d.ts +4 -0
  81. package/dist/core/registry/index.d.ts.map +1 -0
  82. package/dist/core/registry/index.js +19 -0
  83. package/dist/core/registry/index.js.map +1 -0
  84. package/dist/core/registry/registry-freeze.service.d.ts +14 -0
  85. package/dist/core/registry/registry-freeze.service.d.ts.map +1 -0
  86. package/dist/core/registry/registry-freeze.service.js +55 -0
  87. package/dist/core/registry/registry-freeze.service.js.map +1 -0
  88. package/dist/core/registry/registry.d.ts +268 -0
  89. package/dist/core/registry/registry.d.ts.map +1 -0
  90. package/dist/core/registry/registry.js +351 -0
  91. package/dist/core/registry/registry.js.map +1 -0
  92. package/dist/core/registry/testing.d.ts +29 -0
  93. package/dist/core/registry/testing.d.ts.map +1 -0
  94. package/dist/core/registry/testing.js +63 -0
  95. package/dist/core/registry/testing.js.map +1 -0
  96. package/dist/doctor/doctor-check.interface.d.ts +100 -0
  97. package/dist/doctor/doctor-check.interface.d.ts.map +1 -0
  98. package/dist/doctor/doctor-check.interface.js +95 -0
  99. package/dist/doctor/doctor-check.interface.js.map +1 -0
  100. package/dist/doctor/doctor-check.registry.d.ts +37 -0
  101. package/dist/doctor/doctor-check.registry.d.ts.map +1 -0
  102. package/dist/doctor/doctor-check.registry.js +96 -0
  103. package/dist/doctor/doctor-check.registry.js.map +1 -0
  104. package/dist/doctor/doctor.controller.factory.d.ts +29 -0
  105. package/dist/doctor/doctor.controller.factory.d.ts.map +1 -0
  106. package/dist/doctor/doctor.controller.factory.js +121 -0
  107. package/dist/doctor/doctor.controller.factory.js.map +1 -0
  108. package/dist/doctor/doctor.module.d.ts +78 -0
  109. package/dist/doctor/doctor.module.d.ts.map +1 -0
  110. package/dist/doctor/doctor.module.js +158 -0
  111. package/dist/doctor/doctor.module.js.map +1 -0
  112. package/dist/doctor/doctor.options.d.ts +39 -0
  113. package/dist/doctor/doctor.options.d.ts.map +1 -0
  114. package/dist/doctor/doctor.options.js +21 -0
  115. package/dist/doctor/doctor.options.js.map +1 -0
  116. package/dist/doctor/doctor.service.d.ts +80 -0
  117. package/dist/doctor/doctor.service.d.ts.map +1 -0
  118. package/dist/doctor/doctor.service.js +301 -0
  119. package/dist/doctor/doctor.service.js.map +1 -0
  120. package/dist/doctor/dto/doctor-query.dto.d.ts +15 -0
  121. package/dist/doctor/dto/doctor-query.dto.d.ts.map +1 -0
  122. package/dist/doctor/dto/doctor-query.dto.js +16 -0
  123. package/dist/doctor/dto/doctor-query.dto.js.map +1 -0
  124. package/dist/doctor/dto/doctor-report.dto.d.ts +27 -0
  125. package/dist/doctor/dto/doctor-report.dto.d.ts.map +1 -0
  126. package/dist/doctor/dto/doctor-report.dto.js +23 -0
  127. package/dist/doctor/dto/doctor-report.dto.js.map +1 -0
  128. package/dist/doctor/egress/classify-host.d.ts +73 -0
  129. package/dist/doctor/egress/classify-host.d.ts.map +1 -0
  130. package/dist/doctor/egress/classify-host.js +210 -0
  131. package/dist/doctor/egress/classify-host.js.map +1 -0
  132. package/dist/doctor/egress/egress.registry.d.ts +34 -0
  133. package/dist/doctor/egress/egress.registry.d.ts.map +1 -0
  134. package/dist/doctor/egress/egress.registry.js +70 -0
  135. package/dist/doctor/egress/egress.registry.js.map +1 -0
  136. package/dist/doctor/egress/egress.types.d.ts +135 -0
  137. package/dist/doctor/egress/egress.types.d.ts.map +1 -0
  138. package/dist/doctor/egress/egress.types.js +42 -0
  139. package/dist/doctor/egress/egress.types.js.map +1 -0
  140. package/dist/doctor/egress/index.d.ts +6 -0
  141. package/dist/doctor/egress/index.d.ts.map +1 -0
  142. package/dist/doctor/egress/index.js +23 -0
  143. package/dist/doctor/egress/index.js.map +1 -0
  144. package/dist/doctor/egress/network-egress.doctor-check.d.ts +78 -0
  145. package/dist/doctor/egress/network-egress.doctor-check.d.ts.map +1 -0
  146. package/dist/doctor/egress/network-egress.doctor-check.js +226 -0
  147. package/dist/doctor/egress/network-egress.doctor-check.js.map +1 -0
  148. package/dist/doctor/index.d.ts +19 -0
  149. package/dist/doctor/index.d.ts.map +1 -0
  150. package/dist/doctor/index.js +66 -0
  151. package/dist/doctor/index.js.map +1 -0
  152. package/dist/doctor/support-bundle/index.d.ts +12 -0
  153. package/dist/doctor/support-bundle/index.d.ts.map +1 -0
  154. package/dist/doctor/support-bundle/index.js +32 -0
  155. package/dist/doctor/support-bundle/index.js.map +1 -0
  156. package/dist/doctor/support-bundle/redact.d.ts +76 -0
  157. package/dist/doctor/support-bundle/redact.d.ts.map +1 -0
  158. package/dist/doctor/support-bundle/redact.js +236 -0
  159. package/dist/doctor/support-bundle/redact.js.map +1 -0
  160. package/dist/doctor/support-bundle/sections/doctor.section.d.ts +81 -0
  161. package/dist/doctor/support-bundle/sections/doctor.section.d.ts.map +1 -0
  162. package/dist/doctor/support-bundle/sections/doctor.section.js +83 -0
  163. package/dist/doctor/support-bundle/sections/doctor.section.js.map +1 -0
  164. package/dist/doctor/support-bundle/sections/egress.section.d.ts +73 -0
  165. package/dist/doctor/support-bundle/sections/egress.section.d.ts.map +1 -0
  166. package/dist/doctor/support-bundle/sections/egress.section.js +97 -0
  167. package/dist/doctor/support-bundle/sections/egress.section.js.map +1 -0
  168. package/dist/doctor/support-bundle/sections/meta.section.d.ts +39 -0
  169. package/dist/doctor/support-bundle/sections/meta.section.d.ts.map +1 -0
  170. package/dist/doctor/support-bundle/sections/meta.section.js +89 -0
  171. package/dist/doctor/support-bundle/sections/meta.section.js.map +1 -0
  172. package/dist/doctor/support-bundle/support-bundle-section.interface.d.ts +100 -0
  173. package/dist/doctor/support-bundle/support-bundle-section.interface.d.ts.map +1 -0
  174. package/dist/doctor/support-bundle/support-bundle-section.interface.js +59 -0
  175. package/dist/doctor/support-bundle/support-bundle-section.interface.js.map +1 -0
  176. package/dist/doctor/support-bundle/support-bundle.controller.d.ts +57 -0
  177. package/dist/doctor/support-bundle/support-bundle.controller.d.ts.map +1 -0
  178. package/dist/doctor/support-bundle/support-bundle.controller.js +141 -0
  179. package/dist/doctor/support-bundle/support-bundle.controller.js.map +1 -0
  180. package/dist/doctor/support-bundle/support-bundle.options.d.ts +92 -0
  181. package/dist/doctor/support-bundle/support-bundle.options.d.ts.map +1 -0
  182. package/dist/doctor/support-bundle/support-bundle.options.js +100 -0
  183. package/dist/doctor/support-bundle/support-bundle.options.js.map +1 -0
  184. package/dist/doctor/support-bundle/support-bundle.registry.d.ts +38 -0
  185. package/dist/doctor/support-bundle/support-bundle.registry.d.ts.map +1 -0
  186. package/dist/doctor/support-bundle/support-bundle.registry.js +90 -0
  187. package/dist/doctor/support-bundle/support-bundle.registry.js.map +1 -0
  188. package/dist/doctor/support-bundle/support-bundle.service.d.ts +63 -0
  189. package/dist/doctor/support-bundle/support-bundle.service.d.ts.map +1 -0
  190. package/dist/doctor/support-bundle/support-bundle.service.js +244 -0
  191. package/dist/doctor/support-bundle/support-bundle.service.js.map +1 -0
  192. package/dist/index.d.ts +11 -0
  193. package/dist/index.d.ts.map +1 -0
  194. package/dist/index.js +14 -0
  195. package/dist/index.js.map +1 -0
  196. package/dist/otel-core/index.d.ts +9 -0
  197. package/dist/otel-core/index.d.ts.map +1 -0
  198. package/dist/otel-core/index.js +58 -0
  199. package/dist/otel-core/index.js.map +1 -0
  200. package/dist/otel-core/metrics/gauge-provider.d.ts +44 -0
  201. package/dist/otel-core/metrics/gauge-provider.d.ts.map +1 -0
  202. package/dist/otel-core/metrics/gauge-provider.js +37 -0
  203. package/dist/otel-core/metrics/gauge-provider.js.map +1 -0
  204. package/dist/otel-core/metrics/labels.d.ts +79 -0
  205. package/dist/otel-core/metrics/labels.d.ts.map +1 -0
  206. package/dist/otel-core/metrics/labels.js +135 -0
  207. package/dist/otel-core/metrics/labels.js.map +1 -0
  208. package/dist/otel-core/metrics/metric-name.registry.d.ts +130 -0
  209. package/dist/otel-core/metrics/metric-name.registry.d.ts.map +1 -0
  210. package/dist/otel-core/metrics/metric-name.registry.js +134 -0
  211. package/dist/otel-core/metrics/metric-name.registry.js.map +1 -0
  212. package/dist/otel-core/metrics/metrics-host.service.d.ts +163 -0
  213. package/dist/otel-core/metrics/metrics-host.service.d.ts.map +1 -0
  214. package/dist/otel-core/metrics/metrics-host.service.js +344 -0
  215. package/dist/otel-core/metrics/metrics-host.service.js.map +1 -0
  216. package/dist/otel-core/metrics/otel-metrics.module.d.ts +54 -0
  217. package/dist/otel-core/metrics/otel-metrics.module.d.ts.map +1 -0
  218. package/dist/otel-core/metrics/otel-metrics.module.js +83 -0
  219. package/dist/otel-core/metrics/otel-metrics.module.js.map +1 -0
  220. package/dist/otel-core/sdk/index.d.ts +5 -0
  221. package/dist/otel-core/sdk/index.d.ts.map +1 -0
  222. package/dist/otel-core/sdk/index.js +27 -0
  223. package/dist/otel-core/sdk/index.js.map +1 -0
  224. package/dist/otel-core/sdk/initialize-otel.d.ts +126 -0
  225. package/dist/otel-core/sdk/initialize-otel.d.ts.map +1 -0
  226. package/dist/otel-core/sdk/initialize-otel.js +204 -0
  227. package/dist/otel-core/sdk/initialize-otel.js.map +1 -0
  228. package/dist/otel-core/sdk/instance-id.d.ts +29 -0
  229. package/dist/otel-core/sdk/instance-id.d.ts.map +1 -0
  230. package/dist/otel-core/sdk/instance-id.js +65 -0
  231. package/dist/otel-core/sdk/instance-id.js.map +1 -0
  232. package/dist/otel-core/sdk/service-name.d.ts +28 -0
  233. package/dist/otel-core/sdk/service-name.d.ts.map +1 -0
  234. package/dist/otel-core/sdk/service-name.js +63 -0
  235. package/dist/otel-core/sdk/service-name.js.map +1 -0
  236. package/dist/otel-core/sdk/telemetry-gate.d.ts +116 -0
  237. package/dist/otel-core/sdk/telemetry-gate.d.ts.map +1 -0
  238. package/dist/otel-core/sdk/telemetry-gate.js +297 -0
  239. package/dist/otel-core/sdk/telemetry-gate.js.map +1 -0
  240. package/dist/otel-core/spans/request-span-attributes.d.ts +58 -0
  241. package/dist/otel-core/spans/request-span-attributes.d.ts.map +1 -0
  242. package/dist/otel-core/spans/request-span-attributes.js +155 -0
  243. package/dist/otel-core/spans/request-span-attributes.js.map +1 -0
  244. package/dist/otel-core/spans/trace.decorator.d.ts +36 -0
  245. package/dist/otel-core/spans/trace.decorator.d.ts.map +1 -0
  246. package/dist/otel-core/spans/trace.decorator.js +74 -0
  247. package/dist/otel-core/spans/trace.decorator.js.map +1 -0
  248. package/dist/telemetry/assistant/telemetry-ai-enabled.guard.d.ts +15 -0
  249. package/dist/telemetry/assistant/telemetry-ai-enabled.guard.d.ts.map +1 -0
  250. package/dist/telemetry/assistant/telemetry-ai-enabled.guard.js +50 -0
  251. package/dist/telemetry/assistant/telemetry-ai-enabled.guard.js.map +1 -0
  252. package/dist/telemetry/assistant/telemetry-assistant.controller.d.ts +14 -0
  253. package/dist/telemetry/assistant/telemetry-assistant.controller.d.ts.map +1 -0
  254. package/dist/telemetry/assistant/telemetry-assistant.controller.js +178 -0
  255. package/dist/telemetry/assistant/telemetry-assistant.controller.js.map +1 -0
  256. package/dist/telemetry/assistant/telemetry-assistant.metrics.d.ts +147 -0
  257. package/dist/telemetry/assistant/telemetry-assistant.metrics.d.ts.map +1 -0
  258. package/dist/telemetry/assistant/telemetry-assistant.metrics.js +495 -0
  259. package/dist/telemetry/assistant/telemetry-assistant.metrics.js.map +1 -0
  260. package/dist/telemetry/assistant/telemetry-assistant.service.d.ts +216 -0
  261. package/dist/telemetry/assistant/telemetry-assistant.service.d.ts.map +1 -0
  262. package/dist/telemetry/assistant/telemetry-assistant.service.js +1256 -0
  263. package/dist/telemetry/assistant/telemetry-assistant.service.js.map +1 -0
  264. package/dist/telemetry/assistant/telemetry-assistant.sql.d.ts +69 -0
  265. package/dist/telemetry/assistant/telemetry-assistant.sql.d.ts.map +1 -0
  266. package/dist/telemetry/assistant/telemetry-assistant.sql.js +471 -0
  267. package/dist/telemetry/assistant/telemetry-assistant.sql.js.map +1 -0
  268. package/dist/telemetry/assistant/telemetry-assistant.sse.d.ts +15 -0
  269. package/dist/telemetry/assistant/telemetry-assistant.sse.d.ts.map +1 -0
  270. package/dist/telemetry/assistant/telemetry-assistant.sse.js +68 -0
  271. package/dist/telemetry/assistant/telemetry-assistant.sse.js.map +1 -0
  272. package/dist/telemetry/connection/dto/telemetry-connection.dto.d.ts +92 -0
  273. package/dist/telemetry/connection/dto/telemetry-connection.dto.d.ts.map +1 -0
  274. package/dist/telemetry/connection/dto/telemetry-connection.dto.js +41 -0
  275. package/dist/telemetry/connection/dto/telemetry-connection.dto.js.map +1 -0
  276. package/dist/telemetry/connection/telemetry-connection-admin.service.d.ts +45 -0
  277. package/dist/telemetry/connection/telemetry-connection-admin.service.d.ts.map +1 -0
  278. package/dist/telemetry/connection/telemetry-connection-admin.service.js +303 -0
  279. package/dist/telemetry/connection/telemetry-connection-admin.service.js.map +1 -0
  280. package/dist/telemetry/connection/telemetry-connection-test.service.d.ts +41 -0
  281. package/dist/telemetry/connection/telemetry-connection-test.service.d.ts.map +1 -0
  282. package/dist/telemetry/connection/telemetry-connection-test.service.js +187 -0
  283. package/dist/telemetry/connection/telemetry-connection-test.service.js.map +1 -0
  284. package/dist/telemetry/connection/telemetry-connection.controller.d.ts +14 -0
  285. package/dist/telemetry/connection/telemetry-connection.controller.d.ts.map +1 -0
  286. package/dist/telemetry/connection/telemetry-connection.controller.js +192 -0
  287. package/dist/telemetry/connection/telemetry-connection.controller.js.map +1 -0
  288. package/dist/telemetry/connection/telemetry-connection.schema.d.ts +28 -0
  289. package/dist/telemetry/connection/telemetry-connection.schema.d.ts.map +1 -0
  290. package/dist/telemetry/connection/telemetry-connection.schema.js +106 -0
  291. package/dist/telemetry/connection/telemetry-connection.schema.js.map +1 -0
  292. package/dist/telemetry/connection/telemetry-connection.service.d.ts +197 -0
  293. package/dist/telemetry/connection/telemetry-connection.service.d.ts.map +1 -0
  294. package/dist/telemetry/connection/telemetry-connection.service.js +461 -0
  295. package/dist/telemetry/connection/telemetry-connection.service.js.map +1 -0
  296. package/dist/telemetry/dashboard/sql-literals.d.ts +19 -0
  297. package/dist/telemetry/dashboard/sql-literals.d.ts.map +1 -0
  298. package/dist/telemetry/dashboard/sql-literals.js +75 -0
  299. package/dist/telemetry/dashboard/sql-literals.js.map +1 -0
  300. package/dist/telemetry/dashboard/telemetry-dashboard.controller.d.ts +14 -0
  301. package/dist/telemetry/dashboard/telemetry-dashboard.controller.d.ts.map +1 -0
  302. package/dist/telemetry/dashboard/telemetry-dashboard.controller.js +277 -0
  303. package/dist/telemetry/dashboard/telemetry-dashboard.controller.js.map +1 -0
  304. package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts +112 -0
  305. package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts.map +1 -0
  306. package/dist/telemetry/dashboard/telemetry-dashboard.service.js +904 -0
  307. package/dist/telemetry/dashboard/telemetry-dashboard.service.js.map +1 -0
  308. package/dist/telemetry/dashboard/telemetry-dashboard.sql.d.ts +212 -0
  309. package/dist/telemetry/dashboard/telemetry-dashboard.sql.d.ts.map +1 -0
  310. package/dist/telemetry/dashboard/telemetry-dashboard.sql.js +486 -0
  311. package/dist/telemetry/dashboard/telemetry-dashboard.sql.js.map +1 -0
  312. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts +235 -0
  313. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts.map +1 -0
  314. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js +269 -0
  315. package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js.map +1 -0
  316. package/dist/telemetry/dashboard/verdict-policy.d.ts +51 -0
  317. package/dist/telemetry/dashboard/verdict-policy.d.ts.map +1 -0
  318. package/dist/telemetry/dashboard/verdict-policy.js +77 -0
  319. package/dist/telemetry/dashboard/verdict-policy.js.map +1 -0
  320. package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.d.ts +21 -0
  321. package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.d.ts.map +1 -0
  322. package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.js +59 -0
  323. package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.js.map +1 -0
  324. package/dist/telemetry/doctor/telemetry-connection.doctor-check.d.ts +23 -0
  325. package/dist/telemetry/doctor/telemetry-connection.doctor-check.d.ts.map +1 -0
  326. package/dist/telemetry/doctor/telemetry-connection.doctor-check.js +69 -0
  327. package/dist/telemetry/doctor/telemetry-connection.doctor-check.js.map +1 -0
  328. package/dist/telemetry/doctor/telemetry-export.doctor-check.d.ts +33 -0
  329. package/dist/telemetry/doctor/telemetry-export.doctor-check.d.ts.map +1 -0
  330. package/dist/telemetry/doctor/telemetry-export.doctor-check.js +105 -0
  331. package/dist/telemetry/doctor/telemetry-export.doctor-check.js.map +1 -0
  332. package/dist/telemetry/doctor/telemetry-freshness.doctor-check.d.ts +38 -0
  333. package/dist/telemetry/doctor/telemetry-freshness.doctor-check.d.ts.map +1 -0
  334. package/dist/telemetry/doctor/telemetry-freshness.doctor-check.js +104 -0
  335. package/dist/telemetry/doctor/telemetry-freshness.doctor-check.js.map +1 -0
  336. package/dist/telemetry/doctor/telemetry-reachable.doctor-check.d.ts +23 -0
  337. package/dist/telemetry/doctor/telemetry-reachable.doctor-check.d.ts.map +1 -0
  338. package/dist/telemetry/doctor/telemetry-reachable.doctor-check.js +65 -0
  339. package/dist/telemetry/doctor/telemetry-reachable.doctor-check.js.map +1 -0
  340. package/dist/telemetry/doctor/telemetry-tables.doctor-check.d.ts +23 -0
  341. package/dist/telemetry/doctor/telemetry-tables.doctor-check.d.ts.map +1 -0
  342. package/dist/telemetry/doctor/telemetry-tables.doctor-check.js +91 -0
  343. package/dist/telemetry/doctor/telemetry-tables.doctor-check.js.map +1 -0
  344. package/dist/telemetry/dto/telemetry-assistant.dto.d.ts +14 -0
  345. package/dist/telemetry/dto/telemetry-assistant.dto.d.ts.map +1 -0
  346. package/dist/telemetry/dto/telemetry-assistant.dto.js +29 -0
  347. package/dist/telemetry/dto/telemetry-assistant.dto.js.map +1 -0
  348. package/dist/telemetry/dto/telemetry-config.dto.d.ts +59 -0
  349. package/dist/telemetry/dto/telemetry-config.dto.d.ts.map +1 -0
  350. package/dist/telemetry/dto/telemetry-config.dto.js +18 -0
  351. package/dist/telemetry/dto/telemetry-config.dto.js.map +1 -0
  352. package/dist/telemetry/dto/telemetry-dashboard.dto.d.ts +397 -0
  353. package/dist/telemetry/dto/telemetry-dashboard.dto.d.ts.map +1 -0
  354. package/dist/telemetry/dto/telemetry-dashboard.dto.js +118 -0
  355. package/dist/telemetry/dto/telemetry-dashboard.dto.js.map +1 -0
  356. package/dist/telemetry/dto/telemetry-query.dto.d.ts +44 -0
  357. package/dist/telemetry/dto/telemetry-query.dto.d.ts.map +1 -0
  358. package/dist/telemetry/dto/telemetry-query.dto.js +42 -0
  359. package/dist/telemetry/dto/telemetry-query.dto.js.map +1 -0
  360. package/dist/telemetry/dto/telemetry-status.dto.d.ts +22 -0
  361. package/dist/telemetry/dto/telemetry-status.dto.d.ts.map +1 -0
  362. package/dist/telemetry/dto/telemetry-status.dto.js +12 -0
  363. package/dist/telemetry/dto/telemetry-status.dto.js.map +1 -0
  364. package/dist/telemetry/export/parquet-writer.loader.d.ts +13 -0
  365. package/dist/telemetry/export/parquet-writer.loader.d.ts.map +1 -0
  366. package/dist/telemetry/export/parquet-writer.loader.js +29 -0
  367. package/dist/telemetry/export/parquet-writer.loader.js.map +1 -0
  368. package/dist/telemetry/export/telemetry-export.service.d.ts +39 -0
  369. package/dist/telemetry/export/telemetry-export.service.d.ts.map +1 -0
  370. package/dist/telemetry/export/telemetry-export.service.js +185 -0
  371. package/dist/telemetry/export/telemetry-export.service.js.map +1 -0
  372. package/dist/telemetry/greptime/greptime-host.d.ts +44 -0
  373. package/dist/telemetry/greptime/greptime-host.d.ts.map +1 -0
  374. package/dist/telemetry/greptime/greptime-host.js +114 -0
  375. package/dist/telemetry/greptime/greptime-host.js.map +1 -0
  376. package/dist/telemetry/greptime/greptime.client.d.ts +171 -0
  377. package/dist/telemetry/greptime/greptime.client.d.ts.map +1 -0
  378. package/dist/telemetry/greptime/greptime.client.js +352 -0
  379. package/dist/telemetry/greptime/greptime.client.js.map +1 -0
  380. package/dist/telemetry/greptime/greptime.errors.d.ts +59 -0
  381. package/dist/telemetry/greptime/greptime.errors.d.ts.map +1 -0
  382. package/dist/telemetry/greptime/greptime.errors.js +100 -0
  383. package/dist/telemetry/greptime/greptime.errors.js.map +1 -0
  384. package/dist/telemetry/handlers/telemetry-retention.handler.d.ts +27 -0
  385. package/dist/telemetry/handlers/telemetry-retention.handler.d.ts.map +1 -0
  386. package/dist/telemetry/handlers/telemetry-retention.handler.js +123 -0
  387. package/dist/telemetry/handlers/telemetry-retention.handler.js.map +1 -0
  388. package/dist/telemetry/index.d.ts +37 -0
  389. package/dist/telemetry/index.d.ts.map +1 -0
  390. package/dist/telemetry/index.js +97 -0
  391. package/dist/telemetry/index.js.map +1 -0
  392. package/dist/telemetry/internal/blank-secret.d.ts +3 -0
  393. package/dist/telemetry/internal/blank-secret.d.ts.map +1 -0
  394. package/dist/telemetry/internal/blank-secret.js +14 -0
  395. package/dist/telemetry/internal/blank-secret.js.map +1 -0
  396. package/dist/telemetry/internal/csv.d.ts +9 -0
  397. package/dist/telemetry/internal/csv.d.ts.map +1 -0
  398. package/dist/telemetry/internal/csv.js +23 -0
  399. package/dist/telemetry/internal/csv.js.map +1 -0
  400. package/dist/telemetry/internal/sse.d.ts +23 -0
  401. package/dist/telemetry/internal/sse.d.ts.map +1 -0
  402. package/dist/telemetry/internal/sse.js +43 -0
  403. package/dist/telemetry/internal/sse.js.map +1 -0
  404. package/dist/telemetry/metrics/groups/database.metric-group.d.ts +7 -0
  405. package/dist/telemetry/metrics/groups/database.metric-group.d.ts.map +1 -0
  406. package/dist/telemetry/metrics/groups/database.metric-group.js +159 -0
  407. package/dist/telemetry/metrics/groups/database.metric-group.js.map +1 -0
  408. package/dist/telemetry/metrics/groups/host.metric-group.d.ts +7 -0
  409. package/dist/telemetry/metrics/groups/host.metric-group.d.ts.map +1 -0
  410. package/dist/telemetry/metrics/groups/host.metric-group.js +146 -0
  411. package/dist/telemetry/metrics/groups/host.metric-group.js.map +1 -0
  412. package/dist/telemetry/metrics/groups/nodes.metric-group.d.ts +7 -0
  413. package/dist/telemetry/metrics/groups/nodes.metric-group.d.ts.map +1 -0
  414. package/dist/telemetry/metrics/groups/nodes.metric-group.js +159 -0
  415. package/dist/telemetry/metrics/groups/nodes.metric-group.js.map +1 -0
  416. package/dist/telemetry/metrics/groups/pipeline.metric-group.d.ts +7 -0
  417. package/dist/telemetry/metrics/groups/pipeline.metric-group.d.ts.map +1 -0
  418. package/dist/telemetry/metrics/groups/pipeline.metric-group.js +144 -0
  419. package/dist/telemetry/metrics/groups/pipeline.metric-group.js.map +1 -0
  420. package/dist/telemetry/metrics/groups/queue.metric-group.d.ts +7 -0
  421. package/dist/telemetry/metrics/groups/queue.metric-group.d.ts.map +1 -0
  422. package/dist/telemetry/metrics/groups/queue.metric-group.js +163 -0
  423. package/dist/telemetry/metrics/groups/queue.metric-group.js.map +1 -0
  424. package/dist/telemetry/metrics/groups/uptime.metric-group.d.ts +7 -0
  425. package/dist/telemetry/metrics/groups/uptime.metric-group.d.ts.map +1 -0
  426. package/dist/telemetry/metrics/groups/uptime.metric-group.js +103 -0
  427. package/dist/telemetry/metrics/groups/uptime.metric-group.js.map +1 -0
  428. package/dist/telemetry/metrics/metric-catalog.d.ts +324 -0
  429. package/dist/telemetry/metrics/metric-catalog.d.ts.map +1 -0
  430. package/dist/telemetry/metrics/metric-catalog.helpers.d.ts +30 -0
  431. package/dist/telemetry/metrics/metric-catalog.helpers.d.ts.map +1 -0
  432. package/dist/telemetry/metrics/metric-catalog.helpers.js +37 -0
  433. package/dist/telemetry/metrics/metric-catalog.helpers.js.map +1 -0
  434. package/dist/telemetry/metrics/metric-catalog.js +180 -0
  435. package/dist/telemetry/metrics/metric-catalog.js.map +1 -0
  436. package/dist/telemetry/metrics/metric-group-registry.service.d.ts +59 -0
  437. package/dist/telemetry/metrics/metric-group-registry.service.d.ts.map +1 -0
  438. package/dist/telemetry/metrics/metric-group-registry.service.js +99 -0
  439. package/dist/telemetry/metrics/metric-group-registry.service.js.map +1 -0
  440. package/dist/telemetry/metrics/metric-group.d.ts +113 -0
  441. package/dist/telemetry/metrics/metric-group.d.ts.map +1 -0
  442. package/dist/telemetry/metrics/metric-group.js +647 -0
  443. package/dist/telemetry/metrics/metric-group.js.map +1 -0
  444. package/dist/telemetry/metrics/metric-group.manifest.d.ts +2 -0
  445. package/dist/telemetry/metrics/metric-group.manifest.d.ts.map +1 -0
  446. package/dist/telemetry/metrics/metric-group.manifest.js +30 -0
  447. package/dist/telemetry/metrics/metric-group.manifest.js.map +1 -0
  448. package/dist/telemetry/metrics/metric-group.registry.d.ts +109 -0
  449. package/dist/telemetry/metrics/metric-group.registry.d.ts.map +1 -0
  450. package/dist/telemetry/metrics/metric-group.registry.js +181 -0
  451. package/dist/telemetry/metrics/metric-group.registry.js.map +1 -0
  452. package/dist/telemetry/metrics/metric-sql.d.ts +98 -0
  453. package/dist/telemetry/metrics/metric-sql.d.ts.map +1 -0
  454. package/dist/telemetry/metrics/metric-sql.js +259 -0
  455. package/dist/telemetry/metrics/metric-sql.js.map +1 -0
  456. package/dist/telemetry/metrics/metric-values.d.ts +19 -0
  457. package/dist/telemetry/metrics/metric-values.d.ts.map +1 -0
  458. package/dist/telemetry/metrics/metric-values.js +97 -0
  459. package/dist/telemetry/metrics/metric-values.js.map +1 -0
  460. package/dist/telemetry/metrics/metric-verdict.d.ts +20 -0
  461. package/dist/telemetry/metrics/metric-verdict.d.ts.map +1 -0
  462. package/dist/telemetry/metrics/metric-verdict.js +218 -0
  463. package/dist/telemetry/metrics/metric-verdict.js.map +1 -0
  464. package/dist/telemetry/ports.d.ts +575 -0
  465. package/dist/telemetry/ports.d.ts.map +1 -0
  466. package/dist/telemetry/ports.js +78 -0
  467. package/dist/telemetry/ports.js.map +1 -0
  468. package/dist/telemetry/query/sql-guard.d.ts +71 -0
  469. package/dist/telemetry/query/sql-guard.d.ts.map +1 -0
  470. package/dist/telemetry/query/sql-guard.js +258 -0
  471. package/dist/telemetry/query/sql-guard.js.map +1 -0
  472. package/dist/telemetry/query/telemetry-availability.d.ts +11 -0
  473. package/dist/telemetry/query/telemetry-availability.d.ts.map +1 -0
  474. package/dist/telemetry/query/telemetry-availability.js +55 -0
  475. package/dist/telemetry/query/telemetry-availability.js.map +1 -0
  476. package/dist/telemetry/query/telemetry-query.errors.d.ts +48 -0
  477. package/dist/telemetry/query/telemetry-query.errors.d.ts.map +1 -0
  478. package/dist/telemetry/query/telemetry-query.errors.js +100 -0
  479. package/dist/telemetry/query/telemetry-query.errors.js.map +1 -0
  480. package/dist/telemetry/query/telemetry-query.service.d.ts +57 -0
  481. package/dist/telemetry/query/telemetry-query.service.d.ts.map +1 -0
  482. package/dist/telemetry/query/telemetry-query.service.js +194 -0
  483. package/dist/telemetry/query/telemetry-query.service.js.map +1 -0
  484. package/dist/telemetry/query/telemetry-schema.service.d.ts +36 -0
  485. package/dist/telemetry/query/telemetry-schema.service.d.ts.map +1 -0
  486. package/dist/telemetry/query/telemetry-schema.service.js +154 -0
  487. package/dist/telemetry/query/telemetry-schema.service.js.map +1 -0
  488. package/dist/telemetry/stack/dto/telemetry-stack.dto.d.ts +29 -0
  489. package/dist/telemetry/stack/dto/telemetry-stack.dto.d.ts.map +1 -0
  490. package/dist/telemetry/stack/dto/telemetry-stack.dto.js +27 -0
  491. package/dist/telemetry/stack/dto/telemetry-stack.dto.js.map +1 -0
  492. package/dist/telemetry/stack/stack-agent.client.d.ts +76 -0
  493. package/dist/telemetry/stack/stack-agent.client.d.ts.map +1 -0
  494. package/dist/telemetry/stack/stack-agent.client.js +208 -0
  495. package/dist/telemetry/stack/stack-agent.client.js.map +1 -0
  496. package/dist/telemetry/stack/telemetry-stack-deploy.handler.d.ts +43 -0
  497. package/dist/telemetry/stack/telemetry-stack-deploy.handler.d.ts.map +1 -0
  498. package/dist/telemetry/stack/telemetry-stack-deploy.handler.js +159 -0
  499. package/dist/telemetry/stack/telemetry-stack-deploy.handler.js.map +1 -0
  500. package/dist/telemetry/stack/telemetry-stack.controller.d.ts +14 -0
  501. package/dist/telemetry/stack/telemetry-stack.controller.d.ts.map +1 -0
  502. package/dist/telemetry/stack/telemetry-stack.controller.js +107 -0
  503. package/dist/telemetry/stack/telemetry-stack.controller.js.map +1 -0
  504. package/dist/telemetry/stack/telemetry-stack.service.d.ts +19 -0
  505. package/dist/telemetry/stack/telemetry-stack.service.d.ts.map +1 -0
  506. package/dist/telemetry/stack/telemetry-stack.service.js +122 -0
  507. package/dist/telemetry/stack/telemetry-stack.service.js.map +1 -0
  508. package/dist/telemetry/tasks/telemetry-retention.task.d.ts +8 -0
  509. package/dist/telemetry/tasks/telemetry-retention.task.d.ts.map +1 -0
  510. package/dist/telemetry/tasks/telemetry-retention.task.js +61 -0
  511. package/dist/telemetry/tasks/telemetry-retention.task.js.map +1 -0
  512. package/dist/telemetry/telemetry-admin.controller.d.ts +14 -0
  513. package/dist/telemetry/telemetry-admin.controller.d.ts.map +1 -0
  514. package/dist/telemetry/telemetry-admin.controller.js +148 -0
  515. package/dist/telemetry/telemetry-admin.controller.js.map +1 -0
  516. package/dist/telemetry/telemetry-config.controller.d.ts +14 -0
  517. package/dist/telemetry/telemetry-config.controller.d.ts.map +1 -0
  518. package/dist/telemetry/telemetry-config.controller.js +73 -0
  519. package/dist/telemetry/telemetry-config.controller.js.map +1 -0
  520. package/dist/telemetry/telemetry-explorer.controller.d.ts +14 -0
  521. package/dist/telemetry/telemetry-explorer.controller.d.ts.map +1 -0
  522. package/dist/telemetry/telemetry-explorer.controller.js +193 -0
  523. package/dist/telemetry/telemetry-explorer.controller.js.map +1 -0
  524. package/dist/telemetry/telemetry-settings.service.d.ts +85 -0
  525. package/dist/telemetry/telemetry-settings.service.d.ts.map +1 -0
  526. package/dist/telemetry/telemetry-settings.service.js +278 -0
  527. package/dist/telemetry/telemetry-settings.service.js.map +1 -0
  528. package/dist/telemetry/telemetry-status.service.d.ts +28 -0
  529. package/dist/telemetry/telemetry-status.service.d.ts.map +1 -0
  530. package/dist/telemetry/telemetry-status.service.js +185 -0
  531. package/dist/telemetry/telemetry-status.service.js.map +1 -0
  532. package/dist/telemetry/telemetry-support-bundle.section.d.ts +163 -0
  533. package/dist/telemetry/telemetry-support-bundle.section.d.ts.map +1 -0
  534. package/dist/telemetry/telemetry-support-bundle.section.js +187 -0
  535. package/dist/telemetry/telemetry-support-bundle.section.js.map +1 -0
  536. package/dist/telemetry/telemetry.module.d.ts +35 -0
  537. package/dist/telemetry/telemetry.module.d.ts.map +1 -0
  538. package/dist/telemetry/telemetry.module.js +210 -0
  539. package/dist/telemetry/telemetry.module.js.map +1 -0
  540. package/dist/telemetry/telemetry.options.d.ts +176 -0
  541. package/dist/telemetry/telemetry.options.d.ts.map +1 -0
  542. package/dist/telemetry/telemetry.options.js +246 -0
  543. package/dist/telemetry/telemetry.options.js.map +1 -0
  544. package/dist/telemetry/telemetry.permissions.d.ts +76 -0
  545. package/dist/telemetry/telemetry.permissions.d.ts.map +1 -0
  546. package/dist/telemetry/telemetry.permissions.js +85 -0
  547. package/dist/telemetry/telemetry.permissions.js.map +1 -0
  548. package/dist/telemetry/telemetry.settings.d.ts +79 -0
  549. package/dist/telemetry/telemetry.settings.d.ts.map +1 -0
  550. package/dist/telemetry/telemetry.settings.js +92 -0
  551. package/dist/telemetry/telemetry.settings.js.map +1 -0
  552. package/dist/telemetry/testing/coach-metric-group.fixture.d.ts +17 -0
  553. package/dist/telemetry/testing/coach-metric-group.fixture.d.ts.map +1 -0
  554. package/dist/telemetry/testing/coach-metric-group.fixture.js +128 -0
  555. package/dist/telemetry/testing/coach-metric-group.fixture.js.map +1 -0
  556. package/dist/telemetry/testing/conformance.d.ts +257 -0
  557. package/dist/telemetry/testing/conformance.d.ts.map +1 -0
  558. package/dist/telemetry/testing/conformance.js +626 -0
  559. package/dist/telemetry/testing/conformance.js.map +1 -0
  560. package/dist/telemetry/testing/index.d.ts +10 -0
  561. package/dist/telemetry/testing/index.d.ts.map +1 -0
  562. package/dist/telemetry/testing/index.js +41 -0
  563. package/dist/telemetry/testing/index.js.map +1 -0
  564. package/dist/telemetry/testing/metric-schema.fixture.d.ts +73 -0
  565. package/dist/telemetry/testing/metric-schema.fixture.d.ts.map +1 -0
  566. package/dist/telemetry/testing/metric-schema.fixture.js +362 -0
  567. package/dist/telemetry/testing/metric-schema.fixture.js.map +1 -0
  568. package/dist/telemetry/testing/stub-ports.d.ts +46 -0
  569. package/dist/telemetry/testing/stub-ports.d.ts.map +1 -0
  570. package/dist/telemetry/testing/stub-ports.js +119 -0
  571. package/dist/telemetry/testing/stub-ports.js.map +1 -0
  572. package/dist/testing/conformance-suite.d.ts +106 -0
  573. package/dist/testing/conformance-suite.d.ts.map +1 -0
  574. package/dist/testing/conformance-suite.js +8 -0
  575. package/dist/testing/conformance-suite.js.map +1 -0
  576. package/dist/testing/conformance-suites.d.ts +14 -0
  577. package/dist/testing/conformance-suites.d.ts.map +1 -0
  578. package/dist/testing/conformance-suites.js +27 -0
  579. package/dist/testing/conformance-suites.js.map +1 -0
  580. package/dist/testing/host/in-memory-audit-sink.d.ts +23 -0
  581. package/dist/testing/host/in-memory-audit-sink.d.ts.map +1 -0
  582. package/dist/testing/host/in-memory-audit-sink.js +30 -0
  583. package/dist/testing/host/in-memory-audit-sink.js.map +1 -0
  584. package/dist/testing/host/in-memory-system-settings-store.d.ts +31 -0
  585. package/dist/testing/host/in-memory-system-settings-store.d.ts.map +1 -0
  586. package/dist/testing/host/in-memory-system-settings-store.js +54 -0
  587. package/dist/testing/host/in-memory-system-settings-store.js.map +1 -0
  588. package/dist/testing/host/index.d.ts +4 -0
  589. package/dist/testing/host/index.d.ts.map +1 -0
  590. package/dist/testing/host/index.js +13 -0
  591. package/dist/testing/host/index.js.map +1 -0
  592. package/dist/testing/host/test-platform-host.d.ts +35 -0
  593. package/dist/testing/host/test-platform-host.d.ts.map +1 -0
  594. package/dist/testing/host/test-platform-host.js +81 -0
  595. package/dist/testing/host/test-platform-host.js.map +1 -0
  596. package/dist/testing/index.d.ts +12 -0
  597. package/dist/testing/index.d.ts.map +1 -0
  598. package/dist/testing/index.js +32 -0
  599. package/dist/testing/index.js.map +1 -0
  600. package/dist/testing/prisma-schema.d.ts +99 -0
  601. package/dist/testing/prisma-schema.d.ts.map +1 -0
  602. package/dist/testing/prisma-schema.js +175 -0
  603. package/dist/testing/prisma-schema.js.map +1 -0
  604. package/dist/testing/run-platform-conformance.d.ts +70 -0
  605. package/dist/testing/run-platform-conformance.d.ts.map +1 -0
  606. package/dist/testing/run-platform-conformance.js +77 -0
  607. package/dist/testing/run-platform-conformance.js.map +1 -0
  608. package/dist/testing/suites/cron-enqueue-only.d.ts +46 -0
  609. package/dist/testing/suites/cron-enqueue-only.d.ts.map +1 -0
  610. package/dist/testing/suites/cron-enqueue-only.js +177 -0
  611. package/dist/testing/suites/cron-enqueue-only.js.map +1 -0
  612. package/dist/testing/suites/user-owned-data.d.ts +86 -0
  613. package/dist/testing/suites/user-owned-data.d.ts.map +1 -0
  614. package/dist/testing/suites/user-owned-data.js +329 -0
  615. package/dist/testing/suites/user-owned-data.js.map +1 -0
  616. package/package.json +129 -4
@@ -0,0 +1,104 @@
1
+ import { Prisma } from '@prisma/client/extension';
2
+ import type { Scope, SystemActor } from '../principal/index';
3
+ import type { UserOwnedModelLookup } from './types';
4
+ /**
5
+ * The arguments a user-scoped client passes to Prisma for one call. Pure: it
6
+ * never mutates `args`, and it throws {@link ScopedAccessError} instead of
7
+ * returning when the call is outside the scope.
8
+ *
9
+ * Not exported from the package entry point; the package's unit tests import
10
+ * it from this file.
11
+ *
12
+ * @param call - `model` is `undefined` for raw SQL (`$queryRaw` and friends).
13
+ * @param scope - only `userId` is applied (see the file header).
14
+ * @param registry - the user-owned model registry; tests pass a fixture.
15
+ * @internal
16
+ */
17
+ export declare function scopeQueryArgs(call: {
18
+ model?: string;
19
+ operation: string;
20
+ args: unknown;
21
+ }, scope: Scope, registry?: UserOwnedModelLookup): unknown;
22
+ /**
23
+ * The Prisma client extension {@link userScopeExtension} returns: a function
24
+ * of a client, as `Prisma.defineExtension` builds it, that adds no models,
25
+ * results or client methods (all four type arguments empty), so the extended
26
+ * client keeps the app's generated types.
27
+ *
28
+ * @stability experimental
29
+ */
30
+ export type UserScopeExtension = ReturnType<typeof Prisma.defineExtension<{}, {}, {}, {}>>;
31
+ /**
32
+ * The extension behind {@link forUser}: confines queries on registered owner
33
+ * models to `scope.userId` and refuses every other model and raw SQL. Pass it
34
+ * to the app's own client with `$extends` when the call site needs the app's
35
+ * generated types (the reference app's `PrismaService.forUser`).
36
+ *
37
+ * @param scope - only `userId` is applied; `orgId` and `groupIds` are accepted and ignored until #725 and #729.
38
+ * @param registry - defaults to {@link userOwnedModelRegistry}.
39
+ * @throws ScopedAccessError when `scope.userId` is empty.
40
+ *
41
+ * @stability experimental
42
+ * @example
43
+ * ```ts
44
+ * // apps/api/src/prisma/prisma.service.ts
45
+ * forUser(scope: Scope) {
46
+ * return this.$extends(userScopeExtension(scope));
47
+ * }
48
+ * ```
49
+ */
50
+ export declare function userScopeExtension(scope: Scope, registry?: UserOwnedModelLookup): UserScopeExtension;
51
+ /**
52
+ * The structural shape {@link forUser} needs from a client: `$extends`. The
53
+ * app's generated `PrismaClient` and the `PLATFORM_PRISMA` host port's
54
+ * `PrismaClientLike` both satisfy it.
55
+ *
56
+ * @stability experimental
57
+ */
58
+ export interface ExtendableClient {
59
+ /** Prisma's client-extension entry point. */
60
+ $extends(extension: never): unknown;
61
+ }
62
+ /**
63
+ * A client whose queries on registered owner models are confined to
64
+ * `scope.userId`, and which refuses every other model and raw SQL.
65
+ *
66
+ * Built per call; `$extends` shares the underlying connection pool, so this is
67
+ * cheap. Interactive transactions on the returned client stay scoped. The
68
+ * return type is whatever the client's `$extends` returns; an app that wants
69
+ * its generated model types back uses {@link userScopeExtension} on its own
70
+ * client instead.
71
+ *
72
+ * @param client - the app's Prisma client (or the `PLATFORM_PRISMA` port).
73
+ * @param scope - derived from the principal, never from request input.
74
+ * @param registry - defaults to {@link userOwnedModelRegistry}.
75
+ * @throws ScopedAccessError when `scope.userId` is empty.
76
+ *
77
+ * @stability experimental
78
+ * @example
79
+ * ```ts
80
+ * const db = forUser(prisma, { userId: principal.userId });
81
+ * await db.userCredential.findMany(); // only that user's rows
82
+ * ```
83
+ */
84
+ export declare function forUser<C extends ExtendableClient>(client: C, scope: Scope, registry?: UserOwnedModelLookup): ReturnType<C['$extends']>;
85
+ /**
86
+ * The explicit, greppable marker for deliberately unscoped work (backups,
87
+ * purges, the Doctor, cross-user admin reads, actor-only tables). Returns
88
+ * `client` unchanged after checking the actor, and sets
89
+ * `db.access.scope = 'system'` and `db.access.reason` on the active span. The
90
+ * reason is never a metric label (cardinality).
91
+ *
92
+ * @param client - the unscoped client to hand back.
93
+ * @param actor - `{ kind: 'system', reason }` with a short, non-empty reason.
94
+ * @throws ScopedAccessError when the actor is not a system actor with a reason.
95
+ *
96
+ * @stability experimental
97
+ * @example
98
+ * ```ts
99
+ * const db = asSystem(prisma, { kind: 'system', reason: 'retention.purge' });
100
+ * await db.notification.deleteMany({ where: { createdAt: { lt: cutoff } } });
101
+ * ```
102
+ */
103
+ export declare function asSystem<C>(client: C, actor: SystemActor): C;
104
+ //# sourceMappingURL=scoped-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoped-client.d.ts","sourceRoot":"","sources":["../../../src/core/data-access/scoped-client.ts"],"names":[],"mappings":"AA+CA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAyGpD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,EAC1D,KAAK,EAAE,KAAK,EACZ,QAAQ,GAAE,oBAA6C,GACtD,OAAO,CAsCT;AAQD;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAE3F;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,GAAE,oBAA6C,GAAG,kBAAkB,CAW5H;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,EAAE,KAAK,GAAG,OAAO,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,gBAAgB,EAChD,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,KAAK,EACZ,QAAQ,GAAE,oBAA6C,GACtD,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAG3B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,GAAG,CAAC,CAS5D"}
@@ -0,0 +1,270 @@
1
+ "use strict";
2
+ // =============================================================================
3
+ // Scoped data access: forUser() and asSystem() (issue #688 PP-1.9, moved to
4
+ // core by #699)
5
+ // =============================================================================
6
+ //
7
+ // `forUser(client, scope)` returns a Prisma client extension whose queries on
8
+ // REGISTERED OWNER MODELS (./user-owned-data.registry.ts) are confined to the
9
+ // scope's user. Everything else through that client throws `ScopedAccessError`:
10
+ // actor-only models, unregistered models and raw SQL. A path that needs a
11
+ // system table says so with `asSystem(client, { kind: 'system', reason })`,
12
+ // which returns the client unchanged and records the reason on the active span.
13
+ //
14
+ // SCHEMA-INDEPENDENT: the extension is built with `Prisma.defineExtension` from
15
+ // `@prisma/client/extension`, which does not depend on any generated client.
16
+ // Model names are strings looked up in the registry the app fills; nothing
17
+ // here imports a generated model type. The app's client is passed in at call
18
+ // time (in a packaged slice: the `PLATFORM_PRISMA` host port).
19
+ //
20
+ // Defence in depth, never a replacement for authorization: every route still
21
+ // declares its access, and a service still decides WHICH user it acts for.
22
+ // What this adds is that, once it has decided, a forgotten `where: { userId }`
23
+ // cannot read or change another user's rows.
24
+ //
25
+ // What the extension does per operation, for owner field O and user U:
26
+ //
27
+ // findFirst(OrThrow), findMany, count, aggregate, groupBy,
28
+ // updateMany(AndReturn), deleteMany
29
+ // where := { AND: [where ?? {}, { O: U }] }
30
+ // findUnique(OrThrow), update, delete, upsert
31
+ // where := { ...where, AND: [...where.AND, { O: U }] } (a unique where
32
+ // accepts extra filters; another user's row is "not found", never 403)
33
+ // create, createMany(AndReturn), upsert.create
34
+ // O absent: set to U. O present and different: throw. The owner given
35
+ // as the relation instead (`user: { connect: { id } }`) is accepted only
36
+ // when the id is U.
37
+ // update, updateMany(AndReturn), upsert.update
38
+ // data may not move the row to another owner (throw).
39
+ //
40
+ // NOT REWRITTEN: nested writes and `include`/`select` of relations. A nested
41
+ // write into another user-owned model must go through that model's own
42
+ // scoped call. See README.md next to this folder.
43
+ //
44
+ // `Scope.orgId` and `Scope.groupIds` are accepted and ignored: org scoping
45
+ // arrives with row-level security (#725) and group grants with #729.
46
+ // =============================================================================
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.scopeQueryArgs = scopeQueryArgs;
49
+ exports.userScopeExtension = userScopeExtension;
50
+ exports.forUser = forUser;
51
+ exports.asSystem = asSystem;
52
+ const api_1 = require("@opentelemetry/api");
53
+ const extension_1 = require("@prisma/client/extension");
54
+ const scoped_access_error_1 = require("./scoped-access.error");
55
+ const user_owned_data_registry_1 = require("./user-owned-data.registry");
56
+ /** Operations whose `where` is a filter: the owner condition is ANDed in. */
57
+ const FILTER_OPERATIONS = new Set([
58
+ 'findFirst',
59
+ 'findFirstOrThrow',
60
+ 'findMany',
61
+ 'count',
62
+ 'aggregate',
63
+ 'groupBy',
64
+ 'updateMany',
65
+ 'updateManyAndReturn',
66
+ 'deleteMany',
67
+ ]);
68
+ /** Operations whose `where` is a unique where: the owner condition is added to it. */
69
+ const UNIQUE_OPERATIONS = new Set(['findUnique', 'findUniqueOrThrow', 'update', 'delete', 'upsert']);
70
+ /** Operations whose `data` creates rows. */
71
+ const CREATE_OPERATIONS = new Set(['create', 'createMany', 'createManyAndReturn']);
72
+ /** Operations whose `data` updates rows. */
73
+ const UPDATE_OPERATIONS = new Set(['update', 'updateMany', 'updateManyAndReturn']);
74
+ function isRecord(value) {
75
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
76
+ }
77
+ function refuse(pin, message) {
78
+ throw new scoped_access_error_1.ScopedAccessError(message, { model: pin.model, operation: pin.operation });
79
+ }
80
+ function ownerCondition(pin) {
81
+ return { [pin.field]: pin.userId };
82
+ }
83
+ function scopeFilterWhere(where, pin) {
84
+ return { AND: [isRecord(where) ? where : {}, ownerCondition(pin)] };
85
+ }
86
+ function scopeUniqueWhere(where, pin) {
87
+ const base = isRecord(where) ? where : {};
88
+ const existing = base.AND === undefined ? [] : Array.isArray(base.AND) ? base.AND : [base.AND];
89
+ return { ...base, AND: [...existing, ownerCondition(pin)] };
90
+ }
91
+ /** The scalar value an update or create assigns, unwrapping `{ set: v }`. */
92
+ function assignedValue(value) {
93
+ return isRecord(value) && 'set' in value ? value.set : value;
94
+ }
95
+ /** Whether a relation write points exactly at the scope's user: `{ connect: { id: U } }`. */
96
+ function isConnectToScopeUser(value, pin) {
97
+ if (!isRecord(value))
98
+ return false;
99
+ const keys = Object.keys(value);
100
+ if (keys.length !== 1 || keys[0] !== 'connect' || !isRecord(value.connect))
101
+ return false;
102
+ const connect = value.connect;
103
+ return Object.keys(connect).length === 1 && connect.id === pin.userId;
104
+ }
105
+ function scopeCreateData(data, pin) {
106
+ if (!isRecord(data))
107
+ refuse(pin, `${pin.model}.${pin.operation}: create data must be an object.`);
108
+ if (pin.field in data) {
109
+ if (assignedValue(data[pin.field]) !== pin.userId) {
110
+ refuse(pin, `${pin.model}.${pin.operation}: ${pin.field} names another user; a scoped client only writes its own user's rows.`);
111
+ }
112
+ return data;
113
+ }
114
+ if (pin.relation !== undefined && pin.relation in data) {
115
+ if (!isConnectToScopeUser(data[pin.relation], pin)) {
116
+ refuse(pin, `${pin.model}.${pin.operation}: ${pin.relation} must be { connect: { id: <scope user> } }; a scoped client only writes its own user's rows.`);
117
+ }
118
+ return data;
119
+ }
120
+ return { ...data, [pin.field]: pin.userId };
121
+ }
122
+ function assertUpdateKeepsOwner(data, pin) {
123
+ if (!isRecord(data))
124
+ return;
125
+ if (pin.field in data && assignedValue(data[pin.field]) !== pin.userId) {
126
+ refuse(pin, `${pin.model}.${pin.operation}: a scoped client cannot move a row to another owner (${pin.field}).`);
127
+ }
128
+ if (pin.relation !== undefined && pin.relation in data && !isConnectToScopeUser(data[pin.relation], pin)) {
129
+ refuse(pin, `${pin.model}.${pin.operation}: a scoped client cannot change a row's owner (${pin.relation}).`);
130
+ }
131
+ }
132
+ /**
133
+ * The arguments a user-scoped client passes to Prisma for one call. Pure: it
134
+ * never mutates `args`, and it throws {@link ScopedAccessError} instead of
135
+ * returning when the call is outside the scope.
136
+ *
137
+ * Not exported from the package entry point; the package's unit tests import
138
+ * it from this file.
139
+ *
140
+ * @param call - `model` is `undefined` for raw SQL (`$queryRaw` and friends).
141
+ * @param scope - only `userId` is applied (see the file header).
142
+ * @param registry - the user-owned model registry; tests pass a fixture.
143
+ * @internal
144
+ */
145
+ function scopeQueryArgs(call, scope, registry = user_owned_data_registry_1.userOwnedModelRegistry) {
146
+ const { model, operation } = call;
147
+ if (model === undefined) {
148
+ refuse({ model: '(raw)', operation }, `${operation} is not allowed on a user-scoped client: raw SQL is system-only; use asSystem() with a reason.`);
149
+ }
150
+ const def = registry.get(model);
151
+ const field = def?.ownerField;
152
+ if (def === undefined || field === undefined) {
153
+ refuse({ model, operation }, `${model} is not user-owned; use asSystem() with a reason.`);
154
+ }
155
+ const pin = { model, operation, field, relation: (0, user_owned_data_registry_1.ownerRelationOf)(def), userId: scope.userId };
156
+ const args = isRecord(call.args) ? { ...call.args } : {};
157
+ if (FILTER_OPERATIONS.has(operation)) {
158
+ args.where = scopeFilterWhere(args.where, pin);
159
+ }
160
+ else if (UNIQUE_OPERATIONS.has(operation)) {
161
+ args.where = scopeUniqueWhere(args.where, pin);
162
+ }
163
+ else if (!CREATE_OPERATIONS.has(operation)) {
164
+ refuse(pin, `${model}.${operation} is not supported on a user-scoped client; use asSystem() with a reason.`);
165
+ }
166
+ if (CREATE_OPERATIONS.has(operation)) {
167
+ args.data = Array.isArray(args.data)
168
+ ? args.data.map((row) => scopeCreateData(row, pin))
169
+ : scopeCreateData(args.data, pin);
170
+ }
171
+ if (UPDATE_OPERATIONS.has(operation)) {
172
+ assertUpdateKeepsOwner(args.data, pin);
173
+ }
174
+ if (operation === 'upsert') {
175
+ args.create = scopeCreateData(args.create, pin);
176
+ assertUpdateKeepsOwner(args.update, pin);
177
+ }
178
+ return args;
179
+ }
180
+ function assertScope(scope) {
181
+ if (typeof scope?.userId !== 'string' || scope.userId.trim() === '') {
182
+ throw new scoped_access_error_1.ScopedAccessError('A scope must name a user: scope.userId is empty.');
183
+ }
184
+ }
185
+ /**
186
+ * The extension behind {@link forUser}: confines queries on registered owner
187
+ * models to `scope.userId` and refuses every other model and raw SQL. Pass it
188
+ * to the app's own client with `$extends` when the call site needs the app's
189
+ * generated types (the reference app's `PrismaService.forUser`).
190
+ *
191
+ * @param scope - only `userId` is applied; `orgId` and `groupIds` are accepted and ignored until #725 and #729.
192
+ * @param registry - defaults to {@link userOwnedModelRegistry}.
193
+ * @throws ScopedAccessError when `scope.userId` is empty.
194
+ *
195
+ * @stability experimental
196
+ * @example
197
+ * ```ts
198
+ * // apps/api/src/prisma/prisma.service.ts
199
+ * forUser(scope: Scope) {
200
+ * return this.$extends(userScopeExtension(scope));
201
+ * }
202
+ * ```
203
+ */
204
+ function userScopeExtension(scope, registry = user_owned_data_registry_1.userOwnedModelRegistry) {
205
+ assertScope(scope);
206
+ const pinned = { userId: scope.userId };
207
+ return extension_1.Prisma.defineExtension({
208
+ name: 'user-scope',
209
+ query: {
210
+ $allOperations({ model, operation, args, query }) {
211
+ return query(scopeQueryArgs({ model, operation, args }, pinned, registry));
212
+ },
213
+ },
214
+ });
215
+ }
216
+ /**
217
+ * A client whose queries on registered owner models are confined to
218
+ * `scope.userId`, and which refuses every other model and raw SQL.
219
+ *
220
+ * Built per call; `$extends` shares the underlying connection pool, so this is
221
+ * cheap. Interactive transactions on the returned client stay scoped. The
222
+ * return type is whatever the client's `$extends` returns; an app that wants
223
+ * its generated model types back uses {@link userScopeExtension} on its own
224
+ * client instead.
225
+ *
226
+ * @param client - the app's Prisma client (or the `PLATFORM_PRISMA` port).
227
+ * @param scope - derived from the principal, never from request input.
228
+ * @param registry - defaults to {@link userOwnedModelRegistry}.
229
+ * @throws ScopedAccessError when `scope.userId` is empty.
230
+ *
231
+ * @stability experimental
232
+ * @example
233
+ * ```ts
234
+ * const db = forUser(prisma, { userId: principal.userId });
235
+ * await db.userCredential.findMany(); // only that user's rows
236
+ * ```
237
+ */
238
+ function forUser(client, scope, registry = user_owned_data_registry_1.userOwnedModelRegistry) {
239
+ const extension = userScopeExtension(scope, registry);
240
+ return client.$extends(extension);
241
+ }
242
+ /**
243
+ * The explicit, greppable marker for deliberately unscoped work (backups,
244
+ * purges, the Doctor, cross-user admin reads, actor-only tables). Returns
245
+ * `client` unchanged after checking the actor, and sets
246
+ * `db.access.scope = 'system'` and `db.access.reason` on the active span. The
247
+ * reason is never a metric label (cardinality).
248
+ *
249
+ * @param client - the unscoped client to hand back.
250
+ * @param actor - `{ kind: 'system', reason }` with a short, non-empty reason.
251
+ * @throws ScopedAccessError when the actor is not a system actor with a reason.
252
+ *
253
+ * @stability experimental
254
+ * @example
255
+ * ```ts
256
+ * const db = asSystem(prisma, { kind: 'system', reason: 'retention.purge' });
257
+ * await db.notification.deleteMany({ where: { createdAt: { lt: cutoff } } });
258
+ * ```
259
+ */
260
+ function asSystem(client, actor) {
261
+ if (actor?.kind !== 'system' || typeof actor.reason !== 'string' || actor.reason.trim() === '') {
262
+ throw new scoped_access_error_1.ScopedAccessError('asSystem() needs { kind: "system", reason } with a non-empty reason.');
263
+ }
264
+ api_1.trace.getActiveSpan()?.setAttributes({
265
+ 'db.access.scope': 'system',
266
+ 'db.access.reason': actor.reason,
267
+ });
268
+ return client;
269
+ }
270
+ //# sourceMappingURL=scoped-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoped-client.js","sourceRoot":"","sources":["../../../src/core/data-access/scoped-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * What happens to a registered row when its user's data is purged.
3
+ *
4
+ * Each value names the database behaviour the relation's `onDelete` already
5
+ * implements; the `userOwnedData` conformance suite checks the two agree.
6
+ *
7
+ * - `'delete'`: the row is deleted with the user's data (`onDelete: Cascade`).
8
+ * - `'detach'`: the row survives and the user reference is nulled
9
+ * (`onDelete: SetNull`).
10
+ * - `'retain'`: the row survives untouched and the user cannot be deleted
11
+ * while it exists (`onDelete: Restrict` or `NoAction`). Only for actor
12
+ * fields on rows another owner controls, and the rationale must say why.
13
+ *
14
+ * @stability experimental
15
+ */
16
+ export type PurgePolicy = 'delete' | 'detach' | 'retain';
17
+ /**
18
+ * Whether a user's data export includes the row.
19
+ *
20
+ * @stability experimental
21
+ */
22
+ export type ExportPolicy = 'include' | 'exclude';
23
+ /**
24
+ * One registered model: every model holding a foreign key to `User` has one,
25
+ * naming the role of each such key, a purge and an export policy.
26
+ *
27
+ * @typeParam TModel - the model-name type. Apps pass their generated
28
+ * `Prisma.ModelName` so a misspelt model fails to compile; the registry itself
29
+ * stores plain strings.
30
+ *
31
+ * @stability experimental
32
+ * @example
33
+ * ```ts
34
+ * const def: UserOwnedModelDef = {
35
+ * model: 'UserCredential',
36
+ * ownerField: 'userId',
37
+ * purge: 'delete',
38
+ * export: 'include',
39
+ * exportOmit: ['secret'],
40
+ * rationale: "A user's own encrypted key; the ciphertext never leaves the server.",
41
+ * };
42
+ * ```
43
+ */
44
+ export interface UserOwnedModelDef<TModel extends string = string> {
45
+ /** The Prisma model name, PascalCase, e.g. `'UserCredential'`. */
46
+ readonly model: TModel;
47
+ /**
48
+ * The scalar foreign key naming the row's owner, e.g. `'userId'`. Absent for
49
+ * actor-only models. A model with an owner field is what a scoped client
50
+ * may read and write.
51
+ */
52
+ readonly ownerField?: string;
53
+ /**
54
+ * The relation field backing {@link UserOwnedModelDef.ownerField}, used when
55
+ * a create passes the owner as `{ connect: { id } }` instead of the scalar.
56
+ * Defaults to the owner field without its trailing `Id` (`userId` → `user`,
57
+ * `createdById` → `createdBy`); the conformance suite checks it against the
58
+ * schema.
59
+ */
60
+ readonly ownerRelation?: string;
61
+ /** Scalar foreign keys to `User` that record who acted, not who owns. */
62
+ readonly actorFields?: readonly string[];
63
+ /**
64
+ * Applies to the owner field, or to every actor field when there is no
65
+ * owner. See {@link PurgePolicy}.
66
+ */
67
+ readonly purge: PurgePolicy;
68
+ /** See {@link ExportPolicy}. */
69
+ readonly export: ExportPolicy;
70
+ /** Columns never exported even when `export` is `'include'` (secrets, hashes). */
71
+ readonly exportOmit?: readonly string[];
72
+ /** One or two sentences: why this role and these policies. Rendered in docs. */
73
+ readonly rationale: string;
74
+ }
75
+ /**
76
+ * The one capability a scoped client needs from a registry: look a model up.
77
+ * {@link userOwnedModelRegistry} satisfies it; tests pass a fixture.
78
+ *
79
+ * @stability experimental
80
+ */
81
+ export interface UserOwnedModelLookup {
82
+ /** The registered definition of `model`, or `undefined`. */
83
+ get(model: string): UserOwnedModelDef | undefined;
84
+ }
85
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/data-access/types.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,iBAAiB,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM;IAC/D,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,yEAAyE;IACzE,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,gCAAgC;IAChC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,kFAAkF;IAClF,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,gFAAgF;IAChF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;CACnD"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ // =============================================================================
3
+ // User-owned data: policy types (issue #688 PP-1.9, moved to core by #699)
4
+ // =============================================================================
5
+ //
6
+ // Schema-independent on purpose: a model is a string. An app narrows it to its
7
+ // own generated `Prisma.ModelName` with the type parameter, so a typo in a
8
+ // registration still fails its typecheck while the package never sees the
9
+ // app's generated types.
10
+ // =============================================================================
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/data-access/types.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,2EAA2E;AAC3E,gFAAgF;AAChF,EAAE;AACF,+EAA+E;AAC/E,2EAA2E;AAC3E,0EAA0E;AAC1E,yBAAyB;AACzB,gFAAgF"}
@@ -0,0 +1,60 @@
1
+ import type { UserOwnedModelDef } from './types';
2
+ /**
3
+ * The static registry of models holding a foreign key to `User`, keyed by
4
+ * model name. One per process: the app fills it from a manifest imported
5
+ * before bootstrap, and `RegistryFreezeService` freezes it with every other
6
+ * `defineRegistry` registry.
7
+ *
8
+ * @stability experimental
9
+ * @extensionPoint registry
10
+ * @example
11
+ * ```ts
12
+ * // apps/api/src/prisma/ownership/user-owned-model.manifest.ts
13
+ * registerUserOwnedModels(PLATFORM_USER_OWNED_MODELS);
14
+ * registerUserOwnedModels(APP_USER_OWNED_MODELS);
15
+ *
16
+ * userOwnedModelRegistry.get('UserCredential')?.ownerField; // 'userId'
17
+ * ```
18
+ */
19
+ export declare const userOwnedModelRegistry: import("../registry/registry").Registry<UserOwnedModelDef<string>>;
20
+ /**
21
+ * Registers a batch of definitions in {@link userOwnedModelRegistry}, all or
22
+ * nothing.
23
+ *
24
+ * @param defs - the definitions; an app may type them with its own model names.
25
+ * @throws RegistryError `INVALID_ENTRY`, `DUPLICATE_ID` or `FROZEN`.
26
+ *
27
+ * @stability experimental
28
+ * @example
29
+ * ```ts
30
+ * registerUserOwnedModels([
31
+ * { model: 'Workout', ownerField: 'userId', purge: 'delete', export: 'include', rationale: "The user's own log." },
32
+ * ]);
33
+ * ```
34
+ */
35
+ export declare function registerUserOwnedModels<TModel extends string>(defs: readonly UserOwnedModelDef<TModel>[]): void;
36
+ /**
37
+ * The owner field of a registered model, or `undefined` (actor-only or
38
+ * unregistered).
39
+ *
40
+ * @param model - the Prisma model name.
41
+ * @stability experimental
42
+ * @example
43
+ * ```ts
44
+ * ownerFieldOf('StorageObject'); // 'uploadedById'
45
+ * ```
46
+ */
47
+ export declare function ownerFieldOf(model: string): string | undefined;
48
+ /**
49
+ * The relation field backing a definition's owner field: `ownerRelation`
50
+ * when given, otherwise the owner field without its trailing `Id`.
51
+ *
52
+ * @param def - a registered (or candidate) definition.
53
+ * @stability experimental
54
+ * @example
55
+ * ```ts
56
+ * ownerRelationOf({ model: 'WorkerNode', ownerField: 'createdById', purge: 'delete', export: 'exclude', rationale: 'x' }); // 'createdBy'
57
+ * ```
58
+ */
59
+ export declare function ownerRelationOf(def: UserOwnedModelDef): string | undefined;
60
+ //# sourceMappingURL=user-owned-data.registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-owned-data.registry.d.ts","sourceRoot":"","sources":["../../../src/core/data-access/user-owned-data.registry.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAuCjD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,sBAAsB,oEAMjC,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,SAAS,MAAM,EAAE,IAAI,EAAE,SAAS,iBAAiB,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAE/G;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAG1E"}