@loxtep/sdk 0.1.0

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 (460) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +274 -0
  3. package/dist/auth/index.d.ts +6 -0
  4. package/dist/auth/index.d.ts.map +1 -0
  5. package/dist/auth/index.js +4 -0
  6. package/dist/auth/index.js.map +1 -0
  7. package/dist/auth/jwt.d.ts +10 -0
  8. package/dist/auth/jwt.d.ts.map +1 -0
  9. package/dist/auth/jwt.js +24 -0
  10. package/dist/auth/jwt.js.map +1 -0
  11. package/dist/auth/login.d.ts +49 -0
  12. package/dist/auth/login.d.ts.map +1 -0
  13. package/dist/auth/login.js +131 -0
  14. package/dist/auth/login.js.map +1 -0
  15. package/dist/auth/token-manager.d.ts +30 -0
  16. package/dist/auth/token-manager.d.ts.map +1 -0
  17. package/dist/auth/token-manager.js +61 -0
  18. package/dist/auth/token-manager.js.map +1 -0
  19. package/dist/checkpoint/index.d.ts +6 -0
  20. package/dist/checkpoint/index.d.ts.map +1 -0
  21. package/dist/checkpoint/index.js +5 -0
  22. package/dist/checkpoint/index.js.map +1 -0
  23. package/dist/checkpoint/memory-store.d.ts +6 -0
  24. package/dist/checkpoint/memory-store.d.ts.map +1 -0
  25. package/dist/checkpoint/memory-store.js +16 -0
  26. package/dist/checkpoint/memory-store.js.map +1 -0
  27. package/dist/checkpoint/types.d.ts +14 -0
  28. package/dist/checkpoint/types.d.ts.map +1 -0
  29. package/dist/checkpoint/types.js +5 -0
  30. package/dist/checkpoint/types.js.map +1 -0
  31. package/dist/cli/auth-resolve.d.ts +19 -0
  32. package/dist/cli/auth-resolve.d.ts.map +1 -0
  33. package/dist/cli/auth-resolve.js +25 -0
  34. package/dist/cli/auth-resolve.js.map +1 -0
  35. package/dist/cli/commands/bus-cmd.d.ts +6 -0
  36. package/dist/cli/commands/bus-cmd.d.ts.map +1 -0
  37. package/dist/cli/commands/bus-cmd.js +19 -0
  38. package/dist/cli/commands/bus-cmd.js.map +1 -0
  39. package/dist/cli/commands/config-cmd.d.ts +105 -0
  40. package/dist/cli/commands/config-cmd.d.ts.map +1 -0
  41. package/dist/cli/commands/config-cmd.js +334 -0
  42. package/dist/cli/commands/config-cmd.js.map +1 -0
  43. package/dist/cli/commands/connections-cmd.d.ts +19 -0
  44. package/dist/cli/commands/connections-cmd.d.ts.map +1 -0
  45. package/dist/cli/commands/connections-cmd.js +39 -0
  46. package/dist/cli/commands/connections-cmd.js.map +1 -0
  47. package/dist/cli/commands/data-assets-cmd.d.ts +12 -0
  48. package/dist/cli/commands/data-assets-cmd.d.ts.map +1 -0
  49. package/dist/cli/commands/data-assets-cmd.js +75 -0
  50. package/dist/cli/commands/data-assets-cmd.js.map +1 -0
  51. package/dist/cli/commands/data-contracts-cmd.d.ts +12 -0
  52. package/dist/cli/commands/data-contracts-cmd.d.ts.map +1 -0
  53. package/dist/cli/commands/data-contracts-cmd.js +28 -0
  54. package/dist/cli/commands/data-contracts-cmd.js.map +1 -0
  55. package/dist/cli/commands/data-products-cmd.d.ts +15 -0
  56. package/dist/cli/commands/data-products-cmd.d.ts.map +1 -0
  57. package/dist/cli/commands/data-products-cmd.js +30 -0
  58. package/dist/cli/commands/data-products-cmd.js.map +1 -0
  59. package/dist/cli/commands/domains-cmd.d.ts +12 -0
  60. package/dist/cli/commands/domains-cmd.d.ts.map +1 -0
  61. package/dist/cli/commands/domains-cmd.js +28 -0
  62. package/dist/cli/commands/domains-cmd.js.map +1 -0
  63. package/dist/cli/commands/flows-cmd.d.ts +19 -0
  64. package/dist/cli/commands/flows-cmd.d.ts.map +1 -0
  65. package/dist/cli/commands/flows-cmd.js +37 -0
  66. package/dist/cli/commands/flows-cmd.js.map +1 -0
  67. package/dist/cli/commands/login.d.ts +28 -0
  68. package/dist/cli/commands/login.d.ts.map +1 -0
  69. package/dist/cli/commands/login.js +110 -0
  70. package/dist/cli/commands/login.js.map +1 -0
  71. package/dist/cli/commands/logout.d.ts +5 -0
  72. package/dist/cli/commands/logout.d.ts.map +1 -0
  73. package/dist/cli/commands/logout.js +9 -0
  74. package/dist/cli/commands/logout.js.map +1 -0
  75. package/dist/cli/commands/metrics-cmd.d.ts +15 -0
  76. package/dist/cli/commands/metrics-cmd.d.ts.map +1 -0
  77. package/dist/cli/commands/metrics-cmd.js +21 -0
  78. package/dist/cli/commands/metrics-cmd.js.map +1 -0
  79. package/dist/cli/commands/observe-cmd.d.ts +10 -0
  80. package/dist/cli/commands/observe-cmd.d.ts.map +1 -0
  81. package/dist/cli/commands/observe-cmd.js +10 -0
  82. package/dist/cli/commands/observe-cmd.js.map +1 -0
  83. package/dist/cli/commands/pipelines-cmd.d.ts +17 -0
  84. package/dist/cli/commands/pipelines-cmd.d.ts.map +1 -0
  85. package/dist/cli/commands/pipelines-cmd.js +52 -0
  86. package/dist/cli/commands/pipelines-cmd.js.map +1 -0
  87. package/dist/cli/commands/promises-cmd.d.ts +11 -0
  88. package/dist/cli/commands/promises-cmd.d.ts.map +1 -0
  89. package/dist/cli/commands/promises-cmd.js +53 -0
  90. package/dist/cli/commands/promises-cmd.js.map +1 -0
  91. package/dist/cli/commands/queue-cmd.d.ts +13 -0
  92. package/dist/cli/commands/queue-cmd.d.ts.map +1 -0
  93. package/dist/cli/commands/queue-cmd.js +21 -0
  94. package/dist/cli/commands/queue-cmd.js.map +1 -0
  95. package/dist/cli/commands/standards-cmd.d.ts +12 -0
  96. package/dist/cli/commands/standards-cmd.d.ts.map +1 -0
  97. package/dist/cli/commands/standards-cmd.js +28 -0
  98. package/dist/cli/commands/standards-cmd.js.map +1 -0
  99. package/dist/cli/commands/whoami.d.ts +24 -0
  100. package/dist/cli/commands/whoami.d.ts.map +1 -0
  101. package/dist/cli/commands/whoami.js +46 -0
  102. package/dist/cli/commands/whoami.js.map +1 -0
  103. package/dist/cli/commands/workflows-cmd.d.ts +18 -0
  104. package/dist/cli/commands/workflows-cmd.d.ts.map +1 -0
  105. package/dist/cli/commands/workflows-cmd.js +32 -0
  106. package/dist/cli/commands/workflows-cmd.js.map +1 -0
  107. package/dist/cli/create-cli-client.d.ts +32 -0
  108. package/dist/cli/create-cli-client.d.ts.map +1 -0
  109. package/dist/cli/create-cli-client.js +143 -0
  110. package/dist/cli/create-cli-client.js.map +1 -0
  111. package/dist/cli/credentials.d.ts +25 -0
  112. package/dist/cli/credentials.d.ts.map +1 -0
  113. package/dist/cli/credentials.js +70 -0
  114. package/dist/cli/credentials.js.map +1 -0
  115. package/dist/cli/index.d.ts +8 -0
  116. package/dist/cli/index.d.ts.map +1 -0
  117. package/dist/cli/index.js +424 -0
  118. package/dist/cli/index.js.map +1 -0
  119. package/dist/client/catalog-types.d.ts +22 -0
  120. package/dist/client/catalog-types.d.ts.map +1 -0
  121. package/dist/client/catalog-types.js +5 -0
  122. package/dist/client/catalog-types.js.map +1 -0
  123. package/dist/client/catalog.d.ts +9 -0
  124. package/dist/client/catalog.d.ts.map +1 -0
  125. package/dist/client/catalog.js +29 -0
  126. package/dist/client/catalog.js.map +1 -0
  127. package/dist/client/connection-types.d.ts +98 -0
  128. package/dist/client/connection-types.d.ts.map +1 -0
  129. package/dist/client/connection-types.js +18 -0
  130. package/dist/client/connection-types.js.map +1 -0
  131. package/dist/client/connections.d.ts +18 -0
  132. package/dist/client/connections.d.ts.map +1 -0
  133. package/dist/client/connections.js +66 -0
  134. package/dist/client/connections.js.map +1 -0
  135. package/dist/client/connectors-types.d.ts +61 -0
  136. package/dist/client/connectors-types.d.ts.map +1 -0
  137. package/dist/client/connectors-types.js +6 -0
  138. package/dist/client/connectors-types.js.map +1 -0
  139. package/dist/client/connectors.d.ts +27 -0
  140. package/dist/client/connectors.d.ts.map +1 -0
  141. package/dist/client/connectors.js +71 -0
  142. package/dist/client/connectors.js.map +1 -0
  143. package/dist/client/consumptions-types.d.ts +80 -0
  144. package/dist/client/consumptions-types.d.ts.map +1 -0
  145. package/dist/client/consumptions-types.js +5 -0
  146. package/dist/client/consumptions-types.js.map +1 -0
  147. package/dist/client/consumptions.d.ts +14 -0
  148. package/dist/client/consumptions.d.ts.map +1 -0
  149. package/dist/client/consumptions.js +47 -0
  150. package/dist/client/consumptions.js.map +1 -0
  151. package/dist/client/data-assets-types.d.ts +150 -0
  152. package/dist/client/data-assets-types.d.ts.map +1 -0
  153. package/dist/client/data-assets-types.js +5 -0
  154. package/dist/client/data-assets-types.js.map +1 -0
  155. package/dist/client/data-assets.d.ts +31 -0
  156. package/dist/client/data-assets.d.ts.map +1 -0
  157. package/dist/client/data-assets.js +182 -0
  158. package/dist/client/data-assets.js.map +1 -0
  159. package/dist/client/data-product-resolver.d.ts +92 -0
  160. package/dist/client/data-product-resolver.d.ts.map +1 -0
  161. package/dist/client/data-product-resolver.js +165 -0
  162. package/dist/client/data-product-resolver.js.map +1 -0
  163. package/dist/client/data-products-types.d.ts +182 -0
  164. package/dist/client/data-products-types.d.ts.map +1 -0
  165. package/dist/client/data-products-types.js +5 -0
  166. package/dist/client/data-products-types.js.map +1 -0
  167. package/dist/client/data-products.d.ts +63 -0
  168. package/dist/client/data-products.d.ts.map +1 -0
  169. package/dist/client/data-products.js +461 -0
  170. package/dist/client/data-products.js.map +1 -0
  171. package/dist/client/discovery-types.d.ts +74 -0
  172. package/dist/client/discovery-types.d.ts.map +1 -0
  173. package/dist/client/discovery-types.js +6 -0
  174. package/dist/client/discovery-types.js.map +1 -0
  175. package/dist/client/discovery.d.ts +14 -0
  176. package/dist/client/discovery.d.ts.map +1 -0
  177. package/dist/client/discovery.js +57 -0
  178. package/dist/client/discovery.js.map +1 -0
  179. package/dist/client/domains-types.d.ts +46 -0
  180. package/dist/client/domains-types.d.ts.map +1 -0
  181. package/dist/client/domains-types.js +6 -0
  182. package/dist/client/domains-types.js.map +1 -0
  183. package/dist/client/domains.d.ts +11 -0
  184. package/dist/client/domains.d.ts.map +1 -0
  185. package/dist/client/domains.js +39 -0
  186. package/dist/client/domains.js.map +1 -0
  187. package/dist/client/flow-queue-resolve.d.ts +9 -0
  188. package/dist/client/flow-queue-resolve.d.ts.map +1 -0
  189. package/dist/client/flow-queue-resolve.js +17 -0
  190. package/dist/client/flow-queue-resolve.js.map +1 -0
  191. package/dist/client/flow-types.d.ts +112 -0
  192. package/dist/client/flow-types.d.ts.map +1 -0
  193. package/dist/client/flow-types.js +6 -0
  194. package/dist/client/flow-types.js.map +1 -0
  195. package/dist/client/flows.d.ts +33 -0
  196. package/dist/client/flows.d.ts.map +1 -0
  197. package/dist/client/flows.js +293 -0
  198. package/dist/client/flows.js.map +1 -0
  199. package/dist/client/index.d.ts +28 -0
  200. package/dist/client/index.d.ts.map +1 -0
  201. package/dist/client/index.js +3 -0
  202. package/dist/client/index.js.map +1 -0
  203. package/dist/client/instances-types.d.ts +40 -0
  204. package/dist/client/instances-types.d.ts.map +1 -0
  205. package/dist/client/instances-types.js +6 -0
  206. package/dist/client/instances-types.js.map +1 -0
  207. package/dist/client/instances.d.ts +29 -0
  208. package/dist/client/instances.d.ts.map +1 -0
  209. package/dist/client/instances.js +41 -0
  210. package/dist/client/instances.js.map +1 -0
  211. package/dist/client/loxtep-client.d.ts +111 -0
  212. package/dist/client/loxtep-client.d.ts.map +1 -0
  213. package/dist/client/loxtep-client.js +262 -0
  214. package/dist/client/loxtep-client.js.map +1 -0
  215. package/dist/client/observe-types.d.ts +17 -0
  216. package/dist/client/observe-types.d.ts.map +1 -0
  217. package/dist/client/observe-types.js +5 -0
  218. package/dist/client/observe-types.js.map +1 -0
  219. package/dist/client/observe.d.ts +15 -0
  220. package/dist/client/observe.d.ts.map +1 -0
  221. package/dist/client/observe.js +22 -0
  222. package/dist/client/observe.js.map +1 -0
  223. package/dist/client/pipelines-types.d.ts +3 -0
  224. package/dist/client/pipelines-types.d.ts.map +1 -0
  225. package/dist/client/pipelines-types.js +3 -0
  226. package/dist/client/pipelines-types.js.map +1 -0
  227. package/dist/client/pipelines.d.ts +3 -0
  228. package/dist/client/pipelines.d.ts.map +1 -0
  229. package/dist/client/pipelines.js +3 -0
  230. package/dist/client/pipelines.js.map +1 -0
  231. package/dist/client/procedures-types.d.ts +25 -0
  232. package/dist/client/procedures-types.d.ts.map +1 -0
  233. package/dist/client/procedures-types.js +6 -0
  234. package/dist/client/procedures-types.js.map +1 -0
  235. package/dist/client/procedures.d.ts +19 -0
  236. package/dist/client/procedures.d.ts.map +1 -0
  237. package/dist/client/procedures.js +33 -0
  238. package/dist/client/procedures.js.map +1 -0
  239. package/dist/client/process-intelligence-types.d.ts +45 -0
  240. package/dist/client/process-intelligence-types.d.ts.map +1 -0
  241. package/dist/client/process-intelligence-types.js +6 -0
  242. package/dist/client/process-intelligence-types.js.map +1 -0
  243. package/dist/client/process-intelligence.d.ts +17 -0
  244. package/dist/client/process-intelligence.d.ts.map +1 -0
  245. package/dist/client/process-intelligence.js +50 -0
  246. package/dist/client/process-intelligence.js.map +1 -0
  247. package/dist/client/projects-types.d.ts +79 -0
  248. package/dist/client/projects-types.d.ts.map +1 -0
  249. package/dist/client/projects-types.js +6 -0
  250. package/dist/client/projects-types.js.map +1 -0
  251. package/dist/client/projects.d.ts +19 -0
  252. package/dist/client/projects.d.ts.map +1 -0
  253. package/dist/client/projects.js +53 -0
  254. package/dist/client/projects.js.map +1 -0
  255. package/dist/client/promises-types.d.ts +56 -0
  256. package/dist/client/promises-types.d.ts.map +1 -0
  257. package/dist/client/promises-types.js +6 -0
  258. package/dist/client/promises-types.js.map +1 -0
  259. package/dist/client/promises.d.ts +11 -0
  260. package/dist/client/promises.d.ts.map +1 -0
  261. package/dist/client/promises.js +41 -0
  262. package/dist/client/promises.js.map +1 -0
  263. package/dist/client/quality-types.d.ts +62 -0
  264. package/dist/client/quality-types.d.ts.map +1 -0
  265. package/dist/client/quality-types.js +5 -0
  266. package/dist/client/quality-types.js.map +1 -0
  267. package/dist/client/quality.d.ts +12 -0
  268. package/dist/client/quality.d.ts.map +1 -0
  269. package/dist/client/quality.js +57 -0
  270. package/dist/client/quality.js.map +1 -0
  271. package/dist/client/queue-types.d.ts +84 -0
  272. package/dist/client/queue-types.d.ts.map +1 -0
  273. package/dist/client/queue-types.js +5 -0
  274. package/dist/client/queue-types.js.map +1 -0
  275. package/dist/client/queues.d.ts +61 -0
  276. package/dist/client/queues.d.ts.map +1 -0
  277. package/dist/client/queues.js +138 -0
  278. package/dist/client/queues.js.map +1 -0
  279. package/dist/client/schemas-types.d.ts +27 -0
  280. package/dist/client/schemas-types.d.ts.map +1 -0
  281. package/dist/client/schemas-types.js +5 -0
  282. package/dist/client/schemas-types.js.map +1 -0
  283. package/dist/client/schemas.d.ts +11 -0
  284. package/dist/client/schemas.d.ts.map +1 -0
  285. package/dist/client/schemas.js +22 -0
  286. package/dist/client/schemas.js.map +1 -0
  287. package/dist/client/standards-types.d.ts +45 -0
  288. package/dist/client/standards-types.d.ts.map +1 -0
  289. package/dist/client/standards-types.js +6 -0
  290. package/dist/client/standards-types.js.map +1 -0
  291. package/dist/client/standards.d.ts +11 -0
  292. package/dist/client/standards.d.ts.map +1 -0
  293. package/dist/client/standards.js +41 -0
  294. package/dist/client/standards.js.map +1 -0
  295. package/dist/client/stubs.d.ts +35 -0
  296. package/dist/client/stubs.d.ts.map +1 -0
  297. package/dist/client/stubs.js +30 -0
  298. package/dist/client/stubs.js.map +1 -0
  299. package/dist/client/templates-types.d.ts +70 -0
  300. package/dist/client/templates-types.d.ts.map +1 -0
  301. package/dist/client/templates-types.js +7 -0
  302. package/dist/client/templates-types.js.map +1 -0
  303. package/dist/client/templates.d.ts +12 -0
  304. package/dist/client/templates.d.ts.map +1 -0
  305. package/dist/client/templates.js +38 -0
  306. package/dist/client/templates.js.map +1 -0
  307. package/dist/client/thesaurus-types.d.ts +28 -0
  308. package/dist/client/thesaurus-types.d.ts.map +1 -0
  309. package/dist/client/thesaurus-types.js +5 -0
  310. package/dist/client/thesaurus-types.js.map +1 -0
  311. package/dist/client/thesaurus.d.ts +11 -0
  312. package/dist/client/thesaurus.d.ts.map +1 -0
  313. package/dist/client/thesaurus.js +35 -0
  314. package/dist/client/thesaurus.js.map +1 -0
  315. package/dist/client/types.d.ts +80 -0
  316. package/dist/client/types.d.ts.map +1 -0
  317. package/dist/client/types.js +2 -0
  318. package/dist/client/types.js.map +1 -0
  319. package/dist/client/versions-types.d.ts +47 -0
  320. package/dist/client/versions-types.d.ts.map +1 -0
  321. package/dist/client/versions-types.js +9 -0
  322. package/dist/client/versions-types.js.map +1 -0
  323. package/dist/client/versions.d.ts +14 -0
  324. package/dist/client/versions.d.ts.map +1 -0
  325. package/dist/client/versions.js +14 -0
  326. package/dist/client/versions.js.map +1 -0
  327. package/dist/client/workflows-types.d.ts +56 -0
  328. package/dist/client/workflows-types.d.ts.map +1 -0
  329. package/dist/client/workflows-types.js +6 -0
  330. package/dist/client/workflows-types.js.map +1 -0
  331. package/dist/client/workflows.d.ts +15 -0
  332. package/dist/client/workflows.d.ts.map +1 -0
  333. package/dist/client/workflows.js +50 -0
  334. package/dist/client/workflows.js.map +1 -0
  335. package/dist/config/api-path.d.ts +17 -0
  336. package/dist/config/api-path.d.ts.map +1 -0
  337. package/dist/config/api-path.js +57 -0
  338. package/dist/config/api-path.js.map +1 -0
  339. package/dist/config/index.d.ts +10 -0
  340. package/dist/config/index.d.ts.map +1 -0
  341. package/dist/config/index.js +9 -0
  342. package/dist/config/index.js.map +1 -0
  343. package/dist/config/load.d.ts +12 -0
  344. package/dist/config/load.d.ts.map +1 -0
  345. package/dist/config/load.js +152 -0
  346. package/dist/config/load.js.map +1 -0
  347. package/dist/config/paths.d.ts +5 -0
  348. package/dist/config/paths.d.ts.map +1 -0
  349. package/dist/config/paths.js +11 -0
  350. package/dist/config/paths.js.map +1 -0
  351. package/dist/config/platform-request-url.d.ts +35 -0
  352. package/dist/config/platform-request-url.d.ts.map +1 -0
  353. package/dist/config/platform-request-url.js +100 -0
  354. package/dist/config/platform-request-url.js.map +1 -0
  355. package/dist/config/resolve-sdk-urls.d.ts +39 -0
  356. package/dist/config/resolve-sdk-urls.d.ts.map +1 -0
  357. package/dist/config/resolve-sdk-urls.js +130 -0
  358. package/dist/config/resolve-sdk-urls.js.map +1 -0
  359. package/dist/config/save.d.ts +7 -0
  360. package/dist/config/save.d.ts.map +1 -0
  361. package/dist/config/save.js +26 -0
  362. package/dist/config/save.js.map +1 -0
  363. package/dist/config/streams-partial.d.ts +9 -0
  364. package/dist/config/streams-partial.d.ts.map +1 -0
  365. package/dist/config/streams-partial.js +30 -0
  366. package/dist/config/streams-partial.js.map +1 -0
  367. package/dist/config/types.d.ts +37 -0
  368. package/dist/config/types.d.ts.map +1 -0
  369. package/dist/config/types.js +11 -0
  370. package/dist/config/types.js.map +1 -0
  371. package/dist/errors/auth.d.ts +10 -0
  372. package/dist/errors/auth.d.ts.map +1 -0
  373. package/dist/errors/auth.js +26 -0
  374. package/dist/errors/auth.js.map +1 -0
  375. package/dist/errors/base.d.ts +15 -0
  376. package/dist/errors/base.d.ts.map +1 -0
  377. package/dist/errors/base.js +32 -0
  378. package/dist/errors/base.js.map +1 -0
  379. package/dist/errors/index.d.ts +15 -0
  380. package/dist/errors/index.d.ts.map +1 -0
  381. package/dist/errors/index.js +14 -0
  382. package/dist/errors/index.js.map +1 -0
  383. package/dist/errors/parse-http.d.ts +13 -0
  384. package/dist/errors/parse-http.d.ts.map +1 -0
  385. package/dist/errors/parse-http.js +68 -0
  386. package/dist/errors/parse-http.js.map +1 -0
  387. package/dist/errors/rate-limit.d.ts +17 -0
  388. package/dist/errors/rate-limit.d.ts.map +1 -0
  389. package/dist/errors/rate-limit.js +23 -0
  390. package/dist/errors/rate-limit.js.map +1 -0
  391. package/dist/errors/resource.d.ts +18 -0
  392. package/dist/errors/resource.d.ts.map +1 -0
  393. package/dist/errors/resource.js +32 -0
  394. package/dist/errors/resource.js.map +1 -0
  395. package/dist/errors/streaming.d.ts +19 -0
  396. package/dist/errors/streaming.d.ts.map +1 -0
  397. package/dist/errors/streaming.js +32 -0
  398. package/dist/errors/streaming.js.map +1 -0
  399. package/dist/errors/types.d.ts +44 -0
  400. package/dist/errors/types.d.ts.map +1 -0
  401. package/dist/errors/types.js +2 -0
  402. package/dist/errors/types.js.map +1 -0
  403. package/dist/errors/validation.d.ts +23 -0
  404. package/dist/errors/validation.d.ts.map +1 -0
  405. package/dist/errors/validation.js +37 -0
  406. package/dist/errors/validation.js.map +1 -0
  407. package/dist/http/client.d.ts +51 -0
  408. package/dist/http/client.d.ts.map +1 -0
  409. package/dist/http/client.js +164 -0
  410. package/dist/http/client.js.map +1 -0
  411. package/dist/http/index.d.ts +5 -0
  412. package/dist/http/index.d.ts.map +1 -0
  413. package/dist/http/index.js +3 -0
  414. package/dist/http/index.js.map +1 -0
  415. package/dist/http/signer.d.ts +15 -0
  416. package/dist/http/signer.d.ts.map +1 -0
  417. package/dist/http/signer.js +55 -0
  418. package/dist/http/signer.js.map +1 -0
  419. package/dist/index.d.ts +13 -0
  420. package/dist/index.d.ts.map +1 -0
  421. package/dist/index.js +13 -0
  422. package/dist/index.js.map +1 -0
  423. package/dist/rstreams/configuration.d.ts +11 -0
  424. package/dist/rstreams/configuration.d.ts.map +1 -0
  425. package/dist/rstreams/configuration.js +43 -0
  426. package/dist/rstreams/configuration.js.map +1 -0
  427. package/dist/rstreams/event-bridge.d.ts +16 -0
  428. package/dist/rstreams/event-bridge.d.ts.map +1 -0
  429. package/dist/rstreams/event-bridge.js +45 -0
  430. package/dist/rstreams/event-bridge.js.map +1 -0
  431. package/dist/rstreams/leo-runtime.d.ts +9 -0
  432. package/dist/rstreams/leo-runtime.d.ts.map +1 -0
  433. package/dist/rstreams/leo-runtime.js +14 -0
  434. package/dist/rstreams/leo-runtime.js.map +1 -0
  435. package/dist/streaming/index.d.ts +2 -0
  436. package/dist/streaming/index.d.ts.map +1 -0
  437. package/dist/streaming/index.js +2 -0
  438. package/dist/streaming/index.js.map +1 -0
  439. package/dist/streaming/transformer.d.ts +15 -0
  440. package/dist/streaming/transformer.d.ts.map +1 -0
  441. package/dist/streaming/transformer.js +25 -0
  442. package/dist/streaming/transformer.js.map +1 -0
  443. package/dist/types/generated-api.d.ts +146 -0
  444. package/dist/types/generated-api.d.ts.map +1 -0
  445. package/dist/types/generated-api.js +7 -0
  446. package/dist/types/generated-api.js.map +1 -0
  447. package/dist/types/index.d.ts +5 -0
  448. package/dist/types/index.d.ts.map +1 -0
  449. package/dist/types/index.js +5 -0
  450. package/dist/types/index.js.map +1 -0
  451. package/docs/event-replay-cookbook.md +152 -0
  452. package/docs/getting-started.md +332 -0
  453. package/docs/quick-reference.md +256 -0
  454. package/docs/sdk-bus-rbac-threat-model.md +46 -0
  455. package/docs/sdk-control-vs-data-plane.md +32 -0
  456. package/docs/sdk-ingestion-export-guide.md +480 -0
  457. package/docs/sdk-mcp-mapping.md +20 -0
  458. package/docs/sdk-pairing.md +42 -0
  459. package/docs/sdk-rest-vs-bus.md +131 -0
  460. package/package.json +85 -0
@@ -0,0 +1,332 @@
1
+ # SDK Getting Started Guide
2
+
3
+ Get from zero to your first event in under 5 minutes. This guide walks you
4
+ through installing the Loxtep SDK, authenticating, and writing your first event
5
+ to a data product — all with a single method call.
6
+
7
+ ## Table of Contents
8
+
9
+ - [Prerequisites](#prerequisites)
10
+ - [Step 1: Install the SDK](#step-1-install-the-sdk)
11
+ - [Step 2: Log In](#step-2-log-in)
12
+ - [Step 3: Write Your First Event](#step-3-write-your-first-event)
13
+ - [Step 4: Read Events Back](#step-4-read-events-back)
14
+ - [Complete Example](#complete-example)
15
+ - [Troubleshooting](#troubleshooting)
16
+ - [Next Steps](#next-steps)
17
+
18
+ ---
19
+
20
+ ## Prerequisites
21
+
22
+ Before you begin, make sure you have:
23
+
24
+ | Requirement | Details |
25
+ |-------------|---------|
26
+ | **Node.js 22+** | Required for the Node.js SDK (`@loxtep/sdk`). Check with `node --version`. |
27
+ | **Loxtep account** | You need an account with the **developer** role. Ask your org admin if you don't have one. |
28
+ | **A deployed data product** | Your organization must have at least one data product deployed to an instance. |
29
+
30
+ ---
31
+
32
+ ## Step 1: Install the SDK
33
+
34
+ ```bash
35
+ npm install @loxtep/sdk
36
+ ```
37
+
38
+ Or with your preferred package manager:
39
+
40
+ ```bash
41
+ pnpm add @loxtep/sdk
42
+ # or
43
+ yarn add @loxtep/sdk
44
+ ```
45
+
46
+ Verify the installation:
47
+
48
+ ```bash
49
+ npx loxtep --version
50
+ ```
51
+
52
+ ---
53
+
54
+ ## Step 2: Log In
55
+
56
+ Authenticate with your Loxtep account. This stores credentials locally so the
57
+ SDK can make API calls on your behalf.
58
+
59
+ ```bash
60
+ npx loxtep login
61
+ ```
62
+
63
+ Follow the prompts to enter your email and password. On success you'll see:
64
+
65
+ ```
66
+ ✓ Logged in successfully. Credentials saved to ~/.loxtep/credentials.json
67
+ ```
68
+
69
+ **Alternative: use an environment variable.** If you're running in CI/CD or a
70
+ container, set the token directly instead of using `loxtep login`:
71
+
72
+ ```bash
73
+ export LOXTEP_AUTH_TOKEN="your-jwt-token"
74
+ ```
75
+
76
+ The SDK checks `LOXTEP_AUTH_TOKEN` first, then falls back to
77
+ `~/.loxtep/credentials.json`.
78
+
79
+ ---
80
+
81
+ ## Step 3: Write Your First Event
82
+
83
+ With the new data-product-centric API, you write events by referencing a data
84
+ product by name. The SDK resolves all the plumbing (queue names, bot IDs, stream
85
+ bus configuration) automatically.
86
+
87
+ ```typescript
88
+ import { LoxtepClient } from '@loxtep/sdk';
89
+
90
+ const client = new LoxtepClient({
91
+ api_url: process.env.LOXTEP_API_URL,
92
+ auth: { type: 'jwt', token: process.env.LOXTEP_TOKEN },
93
+ });
94
+
95
+ // Write events to a data product by name
96
+ const writer = await client.data_products.get_writer('my-data-product');
97
+ writer.write({ id: '123', name: 'Alice' });
98
+ await writer.close();
99
+ ```
100
+
101
+ That's it. No workflow IDs, no deployment lookups, no queue name conventions.
102
+ The SDK resolves the data product's runtime bindings, connects to the correct
103
+ stream bus, and writes directly to the data product queue.
104
+
105
+ ### What happens under the hood
106
+
107
+ 1. The SDK looks up the data product by name via the platform API
108
+ 2. It reads the `deployment_bindings` to find the queue name, bot ID, and instance
109
+ 3. It resolves the stream bus configuration from the instance record
110
+ 4. It initializes the stream SDK and returns a writer pointed at the correct queue
111
+
112
+ ### Writer options
113
+
114
+ You can customize the writer behavior with an options object:
115
+
116
+ ```typescript
117
+ const writer = await client.data_products.get_writer('my-data-product', {
118
+ bot_id: 'custom-bot-id', // Override the resolved bot identity
119
+ batch_size: 500, // Events per batch (default: 100)
120
+ max_retries: 5, // Retry attempts on failure (default: 3)
121
+ });
122
+ ```
123
+
124
+ ---
125
+
126
+ ## Step 4: Read Events Back
127
+
128
+ Reading from a data product is just as simple:
129
+
130
+ ```typescript
131
+ const reader = await client.data_products.get_reader('my-data-product');
132
+
133
+ for await (const event of reader) {
134
+ console.log('Received:', event);
135
+ }
136
+ ```
137
+
138
+ The reader yields events as an async iterable. By default it generates a
139
+ reader bot ID of `sdk-reader-{data-product-name}` for checkpoint tracking.
140
+
141
+ ### Reader options
142
+
143
+ ```typescript
144
+ const reader = await client.data_products.get_reader('my-data-product', {
145
+ bot_id: 'my-consumer', // Custom reader identity for checkpointing
146
+ from: 'z/2024/01/01', // Start position (default: latest checkpoint)
147
+ batch_size: 200, // Events per batch (default: 100)
148
+ });
149
+ ```
150
+
151
+ ---
152
+
153
+ ## Complete Example
154
+
155
+ ```typescript
156
+ // first-event.ts
157
+ // Run: npx tsx first-event.ts
158
+
159
+ import { LoxtepClient } from '@loxtep/sdk';
160
+
161
+ async function main() {
162
+ const client = new LoxtepClient({
163
+ api_url: process.env.LOXTEP_API_URL,
164
+ auth: { type: 'jwt', token: process.env.LOXTEP_TOKEN },
165
+ });
166
+
167
+ // Write an event to a data product
168
+ const writer = await client.data_products.get_writer('my-data-product');
169
+
170
+ writer.write({
171
+ id: `event-${Date.now()}`,
172
+ timestamp: new Date().toISOString(),
173
+ payload: { message: 'Hello from the Loxtep SDK!' },
174
+ });
175
+
176
+ await writer.close();
177
+ console.log('✓ Event written');
178
+
179
+ // Read it back
180
+ const reader = await client.data_products.get_reader('my-data-product', {
181
+ bot_id: 'quickstart-reader',
182
+ });
183
+
184
+ for await (const event of reader) {
185
+ console.log('✓ Event received:', JSON.stringify(event, null, 2));
186
+ break; // Just read the first one to verify
187
+ }
188
+
189
+ console.log('Done!');
190
+ }
191
+
192
+ main().catch(console.error);
193
+ ```
194
+
195
+ ---
196
+
197
+ ## Troubleshooting
198
+
199
+ ### Data product not found
200
+
201
+ **Symptom:** `NotFoundError: Data product 'my-data-product' not found`
202
+
203
+ **Cause:** The SDK could not find a data product matching the name you provided.
204
+
205
+ **Fix:**
206
+
207
+ 1. Verify the data product name is spelled correctly (names are case-sensitive).
208
+ 2. Check that the data product's workflow has been deployed to an instance.
209
+ 3. If you're using a UUID, confirm it matches an existing data product ID.
210
+
211
+ ```bash
212
+ # List data products in your organization
213
+ npx loxtep data-products list
214
+ ```
215
+
216
+ ---
217
+
218
+ ### Data product not deployed
219
+
220
+ **Symptom:** `StreamingError: Data product 'my-data-product' is not deployed.
221
+ Deploy the workflow first.`
222
+
223
+ **Cause:** The data product exists in the workflow graph but has not been
224
+ deployed to an instance. Runtime bindings (queue name, bot ID) are only
225
+ available after deployment.
226
+
227
+ **Fix:**
228
+
229
+ 1. Deploy the workflow containing the data product:
230
+
231
+ ```bash
232
+ npx loxtep deploy <workflow-id>
233
+ ```
234
+
235
+ 2. Or deploy via the Loxtep UI: **Workflows** → select your workflow → **Deploy**.
236
+
237
+ 3. If using an AI assistant with MCP, use the `deploy_workflow` tool.
238
+
239
+ ---
240
+
241
+ ### Unable to resolve stream configuration
242
+
243
+ **Symptom:** `StreamingError: Failed to resolve stream config for instance
244
+ <instance-id>`
245
+
246
+ **Cause:** The SDK resolved the data product and its instance, but could not
247
+ retrieve the stream bus resource names (DynamoDB tables, Kinesis stream, S3
248
+ bucket) from the instance record.
249
+
250
+ **Fix:**
251
+
252
+ 1. Verify the instance is fully provisioned and running in the Loxtep UI.
253
+ 2. Check that your account has `instances:read` permission on the target instance.
254
+ 3. If the instance was recently created, wait a few minutes for provisioning to
255
+ complete — CloudFormation stack outputs may not be available immediately.
256
+ 4. Contact your platform admin if the instance shows as provisioned but
257
+ resolution still fails.
258
+
259
+ ---
260
+
261
+ ### Multiple data products match
262
+
263
+ **Symptom:** `AmbiguityError: Multiple data products match 'my-data-product'.
264
+ Found matches on instances: [instance-a, instance-b]`
265
+
266
+ **Cause:** The same data product name exists on multiple instances and the SDK
267
+ cannot determine which one you mean.
268
+
269
+ **Fix:**
270
+
271
+ 1. Set `instance_id` in the client options to scope resolution to a specific
272
+ instance:
273
+
274
+ ```typescript
275
+ const client = new LoxtepClient({
276
+ api_url: process.env.LOXTEP_API_URL,
277
+ auth: { type: 'jwt', token: process.env.LOXTEP_TOKEN },
278
+ instance_id: process.env.LOXTEP_INSTANCE_ID,
279
+ });
280
+ ```
281
+
282
+ 2. Or use the data product's UUID instead of its name:
283
+
284
+ ```typescript
285
+ const writer = await client.data_products.get_writer('09fa202b-...');
286
+ ```
287
+
288
+ ---
289
+
290
+ ### Missing Auth Token
291
+
292
+ **Symptom:** `AuthenticationError: No authentication token found`
293
+
294
+ **Cause:** The SDK cannot find a JWT token. Neither `LOXTEP_TOKEN` is set
295
+ nor `~/.loxtep/credentials.json` exists.
296
+
297
+ **Fix:**
298
+
299
+ ```bash
300
+ # Option 1: Log in interactively
301
+ npx loxtep login
302
+
303
+ # Option 2: Set the token directly
304
+ export LOXTEP_TOKEN="your-jwt-token"
305
+ ```
306
+
307
+ ---
308
+
309
+ ## Next Steps
310
+
311
+ Now that you've written and read your first event, explore these resources:
312
+
313
+ | Resource | Description |
314
+ |----------|-------------|
315
+ | [Architecture Guide](./sdk-ingestion-export-guide.md) | Deep dive into how SDK ingestion and export works under the hood |
316
+ | [Quick Reference Card](./quick-reference.md) | Single-page cheat sheet for common SDK operations |
317
+ | [SDK REST vs Bus](./sdk-rest-vs-bus.md) | Understanding control plane vs data plane configuration |
318
+ | [Event Replay Cookbook](./event-replay-cookbook.md) | Patterns for replaying and reprocessing historical events |
319
+
320
+ ### Lower-level API
321
+
322
+ If you need explicit control over bot IDs, queue names, or stream configuration,
323
+ the `flows.get_writer` API is still available as a lower-level escape hatch:
324
+
325
+ ```typescript
326
+ const writer = await client.flows.get_writer('<flow_id>', {
327
+ bot_id: 'my-custom-bot',
328
+ output_queue_name: 'specific-queue-name',
329
+ });
330
+ ```
331
+
332
+ See the [SDK README](../README.md) for the full API surface.
@@ -0,0 +1,256 @@
1
+ # SDK Quick Reference Card
2
+
3
+ Concise cheat sheet for common Loxtep SDK operations. For full walkthroughs,
4
+ see the [Getting Started Guide](./getting-started.md) and the
5
+ [Architecture Guide](./sdk-ingestion-export-guide.md).
6
+
7
+ ---
8
+
9
+ ## Client Initialization
10
+
11
+ ### Node.js
12
+
13
+ ```typescript
14
+ import { LoxtepClient } from '@loxtep/sdk';
15
+
16
+ const client = new LoxtepClient({
17
+ api_url: process.env.LOXTEP_API_URL,
18
+ organization_id: process.env.LOXTEP_ORGANIZATION_ID,
19
+ project_id: process.env.LOXTEP_PROJECT_ID,
20
+ instance_id: process.env.LOXTEP_INSTANCE_ID,
21
+ region: process.env.LOXTEP_REGION,
22
+ });
23
+ ```
24
+
25
+ ### Python
26
+
27
+ ```python
28
+ import os
29
+ from loxtep import LoxtepClient
30
+
31
+ client = LoxtepClient(
32
+ api_url=os.environ["LOXTEP_API_URL"],
33
+ organization_id=os.environ["LOXTEP_ORGANIZATION_ID"],
34
+ project_id=os.environ["LOXTEP_PROJECT_ID"],
35
+ instance_id=os.environ["LOXTEP_INSTANCE_ID"],
36
+ region=os.environ["LOXTEP_REGION"],
37
+ )
38
+ ```
39
+
40
+ > If you ran `loxtep init`, the SDK reads defaults from
41
+ > `~/.loxtep/config.json` — you can use `new LoxtepClient()` with no args.
42
+
43
+ ---
44
+
45
+ ## Writing Events
46
+
47
+ ### Node.js
48
+
49
+ ```typescript
50
+ const writer = await client.flows.get_writer('<flow_id>', {
51
+ bot_id: 'my-bot',
52
+ output_queue_name: 'raw-events',
53
+ });
54
+
55
+ writer.write({ id: 'evt-1', payload: { key: 'value' } });
56
+ writer.write({ id: 'evt-2', payload: { key: 'value' } });
57
+
58
+ await writer.close(); // flushes all buffered events
59
+ ```
60
+
61
+ ### Python
62
+
63
+ ```python
64
+ writer = client.flows.get_writer("<flow_id>", {
65
+ "bot_id": "my-bot",
66
+ "output_queue_name": "raw-events",
67
+ })
68
+
69
+ writer.write({"id": "evt-1", "payload": {"key": "value"}})
70
+ writer.write({"id": "evt-2", "payload": {"key": "value"}})
71
+
72
+ writer.close() # flushes all buffered events
73
+ ```
74
+
75
+ ---
76
+
77
+ ## Reading Events
78
+
79
+ ### Node.js
80
+
81
+ ```typescript
82
+ const reader = await client.queues.open_reader({
83
+ bot_id: 'my-reader',
84
+ queue_name: 'raw-events',
85
+ });
86
+
87
+ for await (const event of reader.read()) {
88
+ console.log(event);
89
+ }
90
+
91
+ reader.close();
92
+ ```
93
+
94
+ ### Python
95
+
96
+ ```python
97
+ reader = client.queues.open_reader({
98
+ "bot_id": "my-reader",
99
+ "queue_name": "raw-events",
100
+ })
101
+
102
+ for event in reader.read():
103
+ print(event)
104
+
105
+ reader.close()
106
+ ```
107
+
108
+ ---
109
+
110
+ ## Data Products
111
+
112
+ ### Stream Live Events
113
+
114
+ #### Node.js
115
+
116
+ ```typescript
117
+ const stream = await client.data_products.stream('<data_product_id>', {
118
+ bot_id: 'my-stream-bot',
119
+ });
120
+
121
+ for await (const event of stream) {
122
+ console.log(event);
123
+ }
124
+ ```
125
+
126
+ #### Python
127
+
128
+ ```python
129
+ stream = client.data_products.stream("<data_product_id>", {
130
+ "bot_id": "my-stream-bot",
131
+ })
132
+
133
+ for event in stream:
134
+ print(event)
135
+ ```
136
+
137
+ ### Replay Historical Events
138
+
139
+ #### Node.js
140
+
141
+ ```typescript
142
+ const events = await client.data_products.replay('<data_product_id>', {
143
+ start: '2024-01-01T00:00:00Z',
144
+ end: '2024-01-02T00:00:00Z',
145
+ });
146
+ ```
147
+
148
+ #### Python
149
+
150
+ ```python
151
+ events = client.data_products.replay("<data_product_id>", {
152
+ "start": "2024-01-01T00:00:00Z",
153
+ "end": "2024-01-02T00:00:00Z",
154
+ })
155
+ ```
156
+
157
+ ### List and Get Data Products
158
+
159
+ #### Node.js
160
+
161
+ ```typescript
162
+ const products = await client.data_products.list();
163
+ const product = await client.data_products.get('<data_product_id>');
164
+ ```
165
+
166
+ #### Python
167
+
168
+ ```python
169
+ products = client.data_products.list()
170
+ product = client.data_products.get("<data_product_id>")
171
+ ```
172
+
173
+ ---
174
+
175
+ ## Flows and Connectors
176
+
177
+ ### List Flows
178
+
179
+ #### Node.js
180
+
181
+ ```typescript
182
+ const flows = await client.flows.list();
183
+ ```
184
+
185
+ #### Python
186
+
187
+ ```python
188
+ flows = client.flows.list()
189
+ ```
190
+
191
+ ### Get Connector
192
+
193
+ #### Node.js
194
+
195
+ ```typescript
196
+ const connector = await client.connectors.get('<connector_id>');
197
+ ```
198
+
199
+ #### Python
200
+
201
+ ```python
202
+ connector = client.connectors.get("<connector_id>")
203
+ ```
204
+
205
+ ---
206
+
207
+ ## Quick Reference Table
208
+
209
+ | Task | Node.js | Python |
210
+ |------|---------|--------|
211
+ | **Init client** | `new LoxtepClient(options)` | `LoxtepClient(**options)` |
212
+ | **Write events** | `client.flows.get_writer(flow_id, opts)` → `writer.write(evt)` → `writer.close()` | Same API |
213
+ | **Read events** | `client.queues.open_reader({ bot_id, queue_name })` → `reader.read()` → `reader.close()` | Same API |
214
+ | **Stream live** | `client.data_products.stream(id, opts)` | Same API |
215
+ | **Replay history** | `client.data_products.replay(id, opts)` | Same API |
216
+ | **List data products** | `client.data_products.list()` | Same API |
217
+ | **Get data product** | `client.data_products.get(id)` | Same API |
218
+ | **List flows** | `client.flows.list()` | Same API |
219
+ | **Get connector** | `client.connectors.get(id)` | Same API |
220
+
221
+ ---
222
+
223
+ ## CLI Shortcuts
224
+
225
+ ```bash
226
+ # Log in
227
+ npx loxtep login
228
+
229
+ # Initialize config
230
+ npx loxtep init
231
+
232
+ # Export connector config (shell, json, or env format)
233
+ npx loxtep config export --from-connector "<connector_id>" --format sh
234
+ npx loxtep config export --from-connector "<connector_id>" --format json
235
+ npx loxtep config export --from-connector "<connector_id>" --format env
236
+ ```
237
+
238
+ ---
239
+
240
+ ## Auth Precedence
241
+
242
+ The SDK resolves authentication in this order:
243
+
244
+ 1. `LOXTEP_AUTH_TOKEN` environment variable
245
+ 2. `~/.loxtep/credentials.json` (from `loxtep login`)
246
+
247
+ ---
248
+
249
+ ## Further Reading
250
+
251
+ | Resource | Description |
252
+ |----------|-------------|
253
+ | [Getting Started Guide](./getting-started.md) | Zero-to-first-event walkthrough |
254
+ | [Architecture Guide](./sdk-ingestion-export-guide.md) | Control plane vs data plane, data flow diagrams |
255
+ | [SDK REST vs Bus](./sdk-rest-vs-bus.md) | Configuration surfaces and credential handling |
256
+ | [Event Replay Cookbook](./event-replay-cookbook.md) | Patterns for replaying historical events |
@@ -0,0 +1,46 @@
1
+ # Bus access — threat model and direction
2
+
3
+ ## Assets
4
+
5
+ - **API JWT:** org-scoped, audited via normal app auth; used only on **SigV4
6
+ REST**.
7
+ - **Loxtep stream bus:** Kinesis/Dynamo/S3 tables and streams from your
8
+ **instance / stack** env; accessed with the **stream runtime** and **AWS
9
+ credentials** (not JWT alone).
10
+
11
+ ## Threats
12
+
13
+ 1. **Confused deputy:** treating a user JWT as proof of bus access would let any
14
+ token holder touch queues if they guessed names.
15
+ 2. **Over-privileged CI:** long-lived IAM keys on developer laptops co-located
16
+ with refresh tokens double the blast radius.
17
+ 3. **Silent god credentials:** implicit `~/.aws/credentials` for the bus account
18
+ without org policy mapping.
19
+
20
+ ## Mitigations (target)
21
+
22
+ - **Separate issuance:** bus-capable material is issued only through **platform
23
+ APIs** evaluated with the **same RBAC** as REST (resource + action), with
24
+ **short TTL** and **scoped** policy (queue/bot prefixes).
25
+ - **Revocation:** disabling org role or bus grant immediately stops new
26
+ issuance; in-flight TTL bounded.
27
+ - **Audit:** who received bus credentials, when, for which instance/data
28
+ product.
29
+ - **No hand-rolled per-customer IAM** in app code; use STS assume-role or a
30
+ documented `bus session` API when shipped.
31
+
32
+ ## Current state (honest)
33
+
34
+ - SDK expects operators to configure the **stream data plane** + **AWS** per
35
+ environment, or to call **`GET /observe/stream-config`** (same Observe
36
+ **proxy** path as `GET /observe/sdk-config`) with **`instances:read`** to
37
+ receive allowlisted **Leo/RStreams resource identifiers** resolved in the
38
+ **instance account** (not a JWT substitute for IAM on the bus).
39
+ - **`loxtep bus login`** is a **placeholder** until a platform **bus session**
40
+ (or STS exchange) endpoint ships; see CLI help output.
41
+
42
+ ## ADR stub
43
+
44
+ **Decision (interim):** ship the Loxtep **stream** data plane in the SDK with
45
+ env/stack-based bus config; document JWT vs bus split; add RBAC-gated issuance
46
+ in a follow-up release when the API exists.
@@ -0,0 +1,32 @@
1
+ # Control plane vs data plane (SDK)
2
+
3
+ ## Control plane (REST)
4
+
5
+ - **SigV4-signed HTTP** to the API gateway **plus** `x-jwt-token` (org/user
6
+ JWT).
7
+ - Used for: catalogs, data product CRUD, flow definitions, deploy, checkpoints
8
+ **metadata**, `data_products.replay`, query, contracts, MCP-proxy style
9
+ `discovery` calls, etc.
10
+ - **AWS credentials** are still required for SigV4 unless your environment
11
+ injects them (CLI uses a documented dummy pair only where the gateway allows
12
+ it).
13
+
14
+ ## Data plane (Loxtep streams)
15
+
16
+ - **Live** events: `flows.get_writer().close()`, `queues.open_reader` /
17
+ `open_writer`, and `data_products.stream` when `bot_id` + configured bus — all
18
+ go through the Loxtep **stream runtime** (DynamoDB / Kinesis / S3, etc. per
19
+ your stack) via `LoxtepClientOptions.streams` and instance env, or a prebuild
20
+ passed as `streams_sdk`.
21
+ - **Not** “JWT ⇒ bus.” Bus access uses **AWS principals** scoped to the stream
22
+ infrastructure. Platform **RBAC** should gate _who_ may receive short-lived
23
+ bus material (see
24
+ [sdk-bus-rbac-threat-model.md](./sdk-bus-rbac-threat-model.md)); today
25
+ operators wire stack access and env.
26
+
27
+ ## Project vs queue
28
+
29
+ - **Project** scopes control-plane APIs: list flows, deploy workflow graphs,
30
+ resolve ingestion queue names from flow metadata.
31
+ - **Queue** is the runtime unit on the bus: readers/writers are always
32
+ `bot_id` + `queue_name` on the stream data plane.