@keboola/api-client 46.0.0 → 48.0.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.
- package/AGENTS.md +95 -24
- package/API-SURFACE.md +52 -30
- package/CHANGELOG.md +85 -0
- package/README.md +47 -37
- package/dist/{ManagementSessionMintError-5FFyvBZi.js → ManagementSessionMintError-4Pkn5Oob.js} +2 -2
- package/dist/{ManagementSessionMintError-5FFyvBZi.js.map → ManagementSessionMintError-4Pkn5Oob.js.map} +1 -1
- package/dist/{ManagementSessionMintError-Bm8s6yDB.cjs → ManagementSessionMintError-Cu9beG7j.cjs} +2 -2
- package/dist/{ManagementSessionMintError-Bm8s6yDB.cjs.map → ManagementSessionMintError-Cu9beG7j.cjs.map} +1 -1
- package/dist/QueryJobError-ZZZ043Nm.js +22 -0
- package/dist/QueryJobError-ZZZ043Nm.js.map +1 -0
- package/dist/{QueryJobTimeoutError-CVNPdCWX.cjs → QueryJobError-irGiP5zh.cjs} +1 -29
- package/dist/QueryJobError-irGiP5zh.cjs.map +1 -0
- package/dist/QueueJobError-6qSEizWo.cjs +30 -0
- package/dist/QueueJobError-6qSEizWo.cjs.map +1 -0
- package/dist/QueueJobError-8bThS_Mc.js +19 -0
- package/dist/QueueJobError-8bThS_Mc.js.map +1 -0
- package/dist/adminRoles-B40yBcmq.js.map +1 -1
- package/dist/{adminRoles-C696kD_U.d.ts → adminRoles-BgpaBE7h.d.cts} +4 -2
- package/dist/adminRoles-CO7J5qAy.cjs.map +1 -1
- package/dist/{adminRoles-C696kD_U.d.cts → adminRoles-DsoGQipO.d.ts} +4 -2
- package/dist/ai/index.cjs +2 -7
- package/dist/ai/index.cjs.map +1 -1
- package/dist/ai/index.d.cts +2 -3
- package/dist/ai/index.d.ts +2 -3
- package/dist/ai/index.js +2 -7
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/types.d.cts +2 -2
- package/dist/ai/types.d.ts +2 -2
- package/dist/{appLogs-BG9ueGxA.cjs → appLogs-Cix2KWra.cjs} +2 -2
- package/dist/{appLogs-BG9ueGxA.cjs.map → appLogs-Cix2KWra.cjs.map} +1 -1
- package/dist/{appLogs-DGIctwbb.d.ts → appLogs-DpcqeOe5.d.ts} +2 -2
- package/dist/{appLogs-CEKz68bE.js → appLogs-KslK7qHr.js} +2 -2
- package/dist/{appLogs-CEKz68bE.js.map → appLogs-KslK7qHr.js.map} +1 -1
- package/dist/{appLogs-Dl0v684o.d.cts → appLogs-SjrflOHk.d.cts} +2 -2
- package/dist/apps/index.cjs +5 -5
- package/dist/apps/index.cjs.map +1 -1
- package/dist/apps/index.d.cts +3 -3
- package/dist/apps/index.d.ts +3 -3
- package/dist/apps/index.js +5 -5
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/types.d.cts +2 -2
- package/dist/apps/types.d.ts +2 -2
- package/dist/assets/index.cjs +1 -1
- package/dist/assets/index.d.cts +1 -1
- package/dist/assets/index.d.ts +1 -1
- package/dist/assets/index.js +1 -1
- package/dist/auth/index.cjs +1 -1
- package/dist/auth/index.d.cts +1 -1
- package/dist/auth/index.d.ts +1 -1
- package/dist/auth/index.js +1 -1
- package/dist/auth/types.d.cts +2 -2
- package/dist/auth/types.d.ts +2 -2
- package/dist/{auth-C6cHWIWx.js → auth-4coY1uwo.js} +2 -2
- package/dist/{auth-C6cHWIWx.js.map → auth-4coY1uwo.js.map} +1 -1
- package/dist/{auth-C9o_0bft.cjs → auth-C8Pjl0Mu.cjs} +2 -2
- package/dist/{auth-C9o_0bft.cjs.map → auth-C8Pjl0Mu.cjs.map} +1 -1
- package/dist/{authClient-CACOwVt0.js → authClient-2e8ZmzSP.js} +71 -7
- package/dist/authClient-2e8ZmzSP.js.map +1 -0
- package/dist/{authClient-DSa5t2Ft.d.cts → authClient-BYIGzL_u.d.ts} +22 -4
- package/dist/{authClient-ZiaKSKpp.d.ts → authClient-D06srBQE.d.cts} +22 -4
- package/dist/{authClient-DZcAR-eW.cjs → authClient-DfkKlc-2.cjs} +82 -6
- package/dist/authClient-DfkKlc-2.cjs.map +1 -0
- package/dist/billing/index.cjs +2 -2
- package/dist/billing/index.d.cts +1 -1
- package/dist/billing/index.d.ts +1 -1
- package/dist/billing/index.js +2 -2
- package/dist/billing/types.d.cts +1 -1
- package/dist/billing/types.d.ts +1 -1
- package/dist/chat/index.cjs +3 -3
- package/dist/chat/index.d.cts +2 -2
- package/dist/chat/index.d.ts +2 -2
- package/dist/chat/index.js +3 -3
- package/dist/chat/types.d.cts +1 -1
- package/dist/chat/types.d.ts +1 -1
- package/dist/{collect-97WhfEpt.js → collectByOffset-2XzJqmvr.js} +6 -6
- package/dist/collectByOffset-2XzJqmvr.js.map +1 -0
- package/dist/{collect-B5TCNiT1.cjs → collectByOffset-DQsqtmJg.cjs} +7 -7
- package/dist/collectByOffset-DQsqtmJg.cjs.map +1 -0
- package/dist/componentsMcp/index.cjs +3 -0
- package/dist/componentsMcp/index.d.cts +2 -0
- package/dist/componentsMcp/index.d.ts +2 -0
- package/dist/componentsMcp/index.js +2 -0
- package/dist/componentsMcp/types.cjs +0 -0
- package/dist/componentsMcp/types.d.cts +2 -0
- package/dist/componentsMcp/types.d.ts +2 -0
- package/dist/componentsMcp/types.js +1 -0
- package/dist/componentsMcp-CHobIsuU.js +57 -0
- package/dist/componentsMcp-CHobIsuU.js.map +1 -0
- package/dist/componentsMcp-pG-PcQrg.cjs +62 -0
- package/dist/componentsMcp-pG-PcQrg.cjs.map +1 -0
- package/dist/{configurations-D_Rbs0Wl.cjs → configurations-B2O8AAy0.cjs} +2 -2
- package/dist/{configurations-D_Rbs0Wl.cjs.map → configurations-B2O8AAy0.cjs.map} +1 -1
- package/dist/{configurations-Chg_JwJ1.js → configurations-CL0ouUMa.js} +3 -3
- package/dist/configurations-CL0ouUMa.js.map +1 -0
- package/dist/{configurations-BTRHVSRq.cjs → configurations-D9J3jh3g.cjs} +3 -3
- package/dist/configurations-D9J3jh3g.cjs.map +1 -0
- package/dist/{configurations-DcpUlC8I.js → configurations-DKINmjA3.js} +2 -2
- package/dist/{configurations-DcpUlC8I.js.map → configurations-DKINmjA3.js.map} +1 -1
- package/dist/constants/index.cjs +1 -1
- package/dist/constants/index.d.cts +2 -3
- package/dist/constants/index.d.ts +2 -3
- package/dist/constants/index.js +1 -1
- package/dist/{constants-Cifrqsls.js → constants-CA4UN2Xv.js} +11 -10
- package/dist/constants-CA4UN2Xv.js.map +1 -0
- package/dist/{constants-BDGRQqij.cjs → constants-a0jswUeK.cjs} +10 -9
- package/dist/constants-a0jswUeK.cjs.map +1 -0
- package/dist/{createFetchClient-DITkTV2k.js → createFetchClient-CkHdS_IG.js} +5 -5
- package/dist/createFetchClient-CkHdS_IG.js.map +1 -0
- package/dist/{createFetchClient-ClWD4ua3.cjs → createFetchClient-lZ_93Yrb.cjs} +5 -5
- package/dist/createFetchClient-lZ_93Yrb.cjs.map +1 -0
- package/dist/{createGenericFetchClient-KqiJhw8G.js → createGenericFetchClient-CQdNcPC3.js} +2 -2
- package/dist/{createGenericFetchClient-KqiJhw8G.js.map → createGenericFetchClient-CQdNcPC3.js.map} +1 -1
- package/dist/{createGenericFetchClient-B81Iezpb.cjs → createGenericFetchClient-MOx97wi-.cjs} +2 -2
- package/dist/{createGenericFetchClient-B81Iezpb.cjs.map → createGenericFetchClient-MOx97wi-.cjs.map} +1 -1
- package/dist/{createOpenapiFetchClient-CioTX11-.cjs → createOpenapiFetchClient-DHYo_k3t.cjs} +2 -2
- package/dist/{createOpenapiFetchClient-CioTX11-.cjs.map → createOpenapiFetchClient-DHYo_k3t.cjs.map} +1 -1
- package/dist/{createOpenapiFetchClient-wq8iGLZM.js → createOpenapiFetchClient-DXiMv9WL.js} +2 -2
- package/dist/{createOpenapiFetchClient-wq8iGLZM.js.map → createOpenapiFetchClient-DXiMv9WL.js.map} +1 -1
- package/dist/dataScience/index.cjs +2 -2
- package/dist/dataScience/index.d.cts +2 -2
- package/dist/dataScience/index.d.ts +2 -2
- package/dist/dataScience/index.js +2 -2
- package/dist/dataScience/types.d.cts +2 -2
- package/dist/dataScience/types.d.ts +2 -2
- package/dist/{dataScience-BwHmDoQb.js → dataScience-AwPMeGfz.js} +5 -5
- package/dist/{dataScience-BwHmDoQb.js.map → dataScience-AwPMeGfz.js.map} +1 -1
- package/dist/{dataScience-Hhoqoql_.cjs → dataScience-BjS1p8WO.cjs} +5 -5
- package/dist/{dataScience-Hhoqoql_.cjs.map → dataScience-BjS1p8WO.cjs.map} +1 -1
- package/dist/developerPortal/index.cjs +1 -1
- package/dist/developerPortal/index.d.cts +2 -2
- package/dist/developerPortal/index.d.ts +2 -2
- package/dist/developerPortal/index.js +1 -1
- package/dist/developerPortal/types.d.cts +1 -1
- package/dist/developerPortal/types.d.ts +1 -1
- package/dist/{developerPortalClient-loKq7X_U.js → developerPortalClient-Bb2suezr.js} +13 -5
- package/dist/{developerPortalClient-loKq7X_U.js.map → developerPortalClient-Bb2suezr.js.map} +1 -1
- package/dist/{developerPortalClient-COm7wJxS.cjs → developerPortalClient-DUerKw-7.cjs} +13 -5
- package/dist/{developerPortalClient-COm7wJxS.cjs.map → developerPortalClient-DUerKw-7.cjs.map} +1 -1
- package/dist/domain/permissions/index.cjs +1 -1
- package/dist/domain/permissions/index.d.cts +2 -3
- package/dist/domain/permissions/index.d.ts +2 -3
- package/dist/domain/permissions/index.js +1 -1
- package/dist/editor/index.cjs +2 -2
- package/dist/editor/index.d.cts +2 -2
- package/dist/editor/index.d.ts +2 -2
- package/dist/editor/index.js +2 -2
- package/dist/editor/types.d.cts +1 -1
- package/dist/editor/types.d.ts +1 -1
- package/dist/encryption/index.cjs +1 -1
- package/dist/encryption/index.d.cts +1 -1
- package/dist/encryption/index.d.ts +1 -1
- package/dist/encryption/index.js +1 -1
- package/dist/encryption/types.d.cts +1 -1
- package/dist/encryption/types.d.ts +1 -1
- package/dist/import/index.cjs +1 -1
- package/dist/import/index.d.cts +3 -3
- package/dist/import/index.d.ts +3 -3
- package/dist/import/index.js +1 -1
- package/dist/{import-B5DcJGMI.cjs → import-BahNYv91.cjs} +3 -3
- package/dist/{import-B5DcJGMI.cjs.map → import-BahNYv91.cjs.map} +1 -1
- package/dist/{import-JlH_QaDd.js → import-FWy_wQZ1.js} +3 -3
- package/dist/{import-JlH_QaDd.js.map → import-FWy_wQZ1.js.map} +1 -1
- package/dist/{index-BP3choXr.d.ts → index-B3QTeqfL.d.ts} +19976 -14513
- package/dist/{index-x8ET_BTN.d.cts → index-BCjU-g9t.d.cts} +3 -3
- package/dist/{index-DCxVLGHH.d.ts → index-BHiJu8LF.d.cts} +16 -28
- package/dist/{index-DXcTukgn.d.ts → index-BIldED4N.d.ts} +4 -4
- package/dist/index-BLvmyehw.d.ts +46 -0
- package/dist/{index-BnPYPXGQ.d.ts → index-BTrxCk90.d.ts} +3 -3
- package/dist/{index-DS6O4UDB.d.cts → index-ByLCYBaw.d.cts} +4 -4
- package/dist/{index-syAYY5LC.d.cts → index-C40Fbj-6.d.cts} +19976 -14513
- package/dist/{index-DWFxcmVD.d.ts → index-CIqWOEWD.d.ts} +4 -4
- package/dist/{index-Bt43tKyu.d.cts → index-Cc5wSIRJ.d.cts} +5 -5
- package/dist/{types-CESP1ONj.d.ts → index-ChDl6ig5.d.cts} +3780 -549
- package/dist/index-Co2Cd-nw.d.cts +46 -0
- package/dist/{index-CTKC-mwi.d.cts → index-CpGmmJbt.d.cts} +4 -4
- package/dist/{index-D-4TT5yW.d.cts → index-CpUYVB-d.d.cts} +4 -4
- package/dist/{index-DeQDdut6.d.ts → index-CzHrIfZS.d.ts} +34 -2
- package/dist/{index-BhDxP0x4.d.cts → index-D91RxB_S.d.cts} +18 -13
- package/dist/{index-GVxpBH6j.d.cts → index-DlZiWfQb.d.ts} +16 -28
- package/dist/{index-DRaVzOLM.d.ts → index-DzLXtE4Q.d.ts} +5 -5
- package/dist/{index-DeQDdut6.d.cts → index-VlzlOBkc.d.cts} +34 -2
- package/dist/{index-se5ee8U1.d.ts → index-avzO5sLa.d.ts} +18 -13
- package/dist/{index-yJ0HrxY6.d.ts → index-m7fX76x3.d.ts} +4 -4
- package/dist/{types-GaOcVZ3d.d.cts → index-sDHBkJhU.d.ts} +3780 -549
- package/dist/index.cjs +551 -375
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -7
- package/dist/index.d.ts +7 -7
- package/dist/index.js +493 -320
- package/dist/index.js.map +1 -1
- package/dist/{isLoginPageRedirect-CsyRa3_v.js → isLoginPageRedirect-B4QKSiSa.js} +2 -2
- package/dist/{isLoginPageRedirect-CsyRa3_v.js.map → isLoginPageRedirect-B4QKSiSa.js.map} +1 -1
- package/dist/{isLoginPageRedirect-iNbwl3iz.cjs → isLoginPageRedirect-r0Opgc1n.cjs} +2 -2
- package/dist/{isLoginPageRedirect-iNbwl3iz.cjs.map → isLoginPageRedirect-r0Opgc1n.cjs.map} +1 -1
- package/dist/kaiAgent/index.cjs +1 -1
- package/dist/kaiAgent/index.d.cts +3 -3
- package/dist/kaiAgent/index.d.ts +3 -3
- package/dist/kaiAgent/index.js +1 -1
- package/dist/kaiAgent/types.d.cts +1 -1
- package/dist/kaiAgent/types.d.ts +1 -1
- package/dist/{kaiAgent-CUeT53-K.js → kaiAgent-CYvrS8oZ.js} +16 -7
- package/dist/kaiAgent-CYvrS8oZ.js.map +1 -0
- package/dist/{kaiAgent-BhcUsBDk.cjs → kaiAgent-N2qbUFZm.cjs} +16 -7
- package/dist/kaiAgent-N2qbUFZm.cjs.map +1 -0
- package/dist/{kaiMemory-DaOh0zVn.js → kaiMemory-C9di17bd.js} +2 -2
- package/dist/{kaiMemory-DaOh0zVn.js.map → kaiMemory-C9di17bd.js.map} +1 -1
- package/dist/{kaiMemory-Cf81ghNd.cjs → kaiMemory-Qch09f-m.cjs} +2 -2
- package/dist/{kaiMemory-Cf81ghNd.cjs.map → kaiMemory-Qch09f-m.cjs.map} +1 -1
- package/dist/management/index.cjs +1 -1
- package/dist/management/index.d.cts +1 -1
- package/dist/management/index.d.ts +1 -1
- package/dist/management/index.js +1 -1
- package/dist/management/types.d.cts +2 -2
- package/dist/management/types.d.ts +2 -2
- package/dist/{management-0cWVLHei.cjs → management-CXHnxVaZ.cjs} +34 -10
- package/dist/management-CXHnxVaZ.cjs.map +1 -0
- package/dist/{management-eg4Ig-Cx.js → management-NYAD6ej4.js} +34 -10
- package/dist/management-NYAD6ej4.js.map +1 -0
- package/dist/metastore/index.cjs +1 -1
- package/dist/metastore/index.d.cts +1 -1
- package/dist/metastore/index.d.ts +1 -1
- package/dist/metastore/index.js +1 -1
- package/dist/metastore/types.d.cts +1 -1
- package/dist/metastore/types.d.ts +1 -1
- package/dist/{metastore-YPHUK3jJ.cjs → metastore-BXHg33ku.cjs} +4 -4
- package/dist/{metastore-YPHUK3jJ.cjs.map → metastore-BXHg33ku.cjs.map} +1 -1
- package/dist/{metastore-D0C6uaPX.js → metastore-Ywq08DBz.js} +4 -4
- package/dist/{metastore-D0C6uaPX.js.map → metastore-Ywq08DBz.js.map} +1 -1
- package/dist/microsoftGraph/index.cjs +2 -2
- package/dist/microsoftGraph/index.d.cts +2 -2
- package/dist/microsoftGraph/index.d.ts +2 -2
- package/dist/microsoftGraph/index.js +2 -2
- package/dist/microsoftGraph/types.d.cts +1 -1
- package/dist/microsoftGraph/types.d.ts +1 -1
- package/dist/{middleware-D_p5TctO.cjs → middleware-CEP6uu_D.cjs} +5 -5
- package/dist/middleware-CEP6uu_D.cjs.map +1 -0
- package/dist/{middleware-DmR6OhTY.js → middleware-GOfx8Apu.js} +5 -5
- package/dist/middleware-GOfx8Apu.js.map +1 -0
- package/dist/notifications/index.cjs +3 -3
- package/dist/notifications/index.d.cts +2 -2
- package/dist/notifications/index.d.ts +2 -2
- package/dist/notifications/index.js +3 -3
- package/dist/notifications/types.d.cts +1 -1
- package/dist/notifications/types.d.ts +1 -1
- package/dist/oauth/index.cjs +1 -1
- package/dist/oauth/index.d.cts +6 -2
- package/dist/oauth/index.d.ts +6 -2
- package/dist/oauth/index.js +1 -1
- package/dist/oauth/types.d.cts +2 -2
- package/dist/oauth/types.d.ts +2 -2
- package/dist/{oauth-DyUwTqHJ.cjs → oauth-DKZPuUlt.cjs} +17 -6
- package/dist/{oauth-DyUwTqHJ.cjs.map → oauth-DKZPuUlt.cjs.map} +1 -1
- package/dist/{oauth-Ck_Fe14o.js → oauth-GXmZ9agP.js} +17 -6
- package/dist/{oauth-Ck_Fe14o.js.map → oauth-GXmZ9agP.js.map} +1 -1
- package/dist/omnisearch/index.cjs +2 -2
- package/dist/omnisearch/index.d.cts +2 -2
- package/dist/omnisearch/index.d.ts +2 -2
- package/dist/omnisearch/index.js +2 -2
- package/dist/omnisearch/types.d.cts +1 -1
- package/dist/omnisearch/types.d.ts +1 -1
- package/dist/project-Dzu85cqr.d.cts +74 -0
- package/dist/project-nbv9yjpl.d.ts +74 -0
- package/dist/queryService/index.cjs +1 -1
- package/dist/queryService/index.d.cts +1 -1
- package/dist/queryService/index.d.ts +1 -1
- package/dist/queryService/index.js +1 -1
- package/dist/queryService/types.d.cts +2 -2
- package/dist/queryService/types.d.ts +2 -2
- package/dist/{queryService-Blfz59Ms.js → queryService-C-pZha5p.js} +36 -27
- package/dist/queryService-C-pZha5p.js.map +1 -0
- package/dist/{queryService-RlNYw7LG.cjs → queryService-CzK53q94.cjs} +36 -27
- package/dist/queryService-CzK53q94.cjs.map +1 -0
- package/dist/queue/index.cjs +1 -1
- package/dist/queue/index.d.cts +75 -7
- package/dist/queue/index.d.ts +75 -7
- package/dist/queue/index.js +1 -1
- package/dist/queue/types.d.cts +1 -1
- package/dist/queue/types.d.ts +1 -1
- package/dist/{queue-BrgRdtOr.cjs → queue-BJvDWriM.cjs} +35 -25
- package/dist/queue-BJvDWriM.cjs.map +1 -0
- package/dist/{queue-CNvR-M23.js → queue-D6-x4OGF.js} +35 -25
- package/dist/queue-D6-x4OGF.js.map +1 -0
- package/dist/scheduler/index.cjs +3 -3
- package/dist/scheduler/index.d.cts +2 -2
- package/dist/scheduler/index.d.ts +2 -2
- package/dist/scheduler/index.js +3 -3
- package/dist/scheduler/types.d.cts +1 -1
- package/dist/scheduler/types.d.ts +1 -1
- package/dist/sdk/configurations/index.cjs +1 -1
- package/dist/sdk/configurations/index.d.cts +2 -4
- package/dist/sdk/configurations/index.d.ts +2 -4
- package/dist/sdk/configurations/index.js +1 -1
- package/dist/sdk/developerPortal/index.cjs +3 -3
- package/dist/sdk/developerPortal/index.d.cts +3 -3
- package/dist/sdk/developerPortal/index.d.ts +3 -3
- package/dist/sdk/developerPortal/index.js +3 -3
- package/dist/sdk/kaiMemory/index.cjs +1 -1
- package/dist/sdk/kaiMemory/index.d.cts +1 -1
- package/dist/sdk/kaiMemory/index.d.ts +1 -1
- package/dist/sdk/kaiMemory/index.js +1 -1
- package/dist/sdk/kaiMemory/types.d.cts +1 -1
- package/dist/sdk/kaiMemory/types.d.ts +1 -1
- package/dist/sdk/queryService/index.cjs +34 -55
- package/dist/sdk/queryService/index.cjs.map +1 -1
- package/dist/sdk/queryService/index.d.cts +2 -2
- package/dist/sdk/queryService/index.d.ts +2 -2
- package/dist/sdk/queryService/index.js +34 -55
- package/dist/sdk/queryService/index.js.map +1 -1
- package/dist/sdk/semanticLayer/index.d.cts +1 -1
- package/dist/sdk/semanticLayer/index.d.ts +1 -1
- package/dist/sdk/semanticLayer/types.d.cts +1 -1
- package/dist/sdk/semanticLayer/types.d.ts +1 -1
- package/dist/sdk/storage/index.cjs +0 -119
- package/dist/sdk/storage/index.cjs.map +1 -1
- package/dist/sdk/storage/index.d.cts +103 -2
- package/dist/sdk/storage/index.d.ts +103 -2
- package/dist/sdk/storage/index.js +1 -119
- package/dist/sdk/storage/index.js.map +1 -1
- package/dist/sdk/tag/index.d.cts +2 -2
- package/dist/sdk/tag/index.d.ts +2 -2
- package/dist/sdk/tag/types.d.cts +1 -1
- package/dist/sdk/tag/types.d.ts +1 -1
- package/dist/sdk/vault/index.d.cts +1 -1
- package/dist/sdk/vault/index.d.ts +1 -1
- package/dist/status/index.cjs +1 -1
- package/dist/status/index.d.cts +1 -1
- package/dist/status/index.d.ts +1 -1
- package/dist/status/index.js +1 -1
- package/dist/storage/index.cjs +13 -9
- package/dist/storage/index.d.cts +3 -3
- package/dist/storage/index.d.ts +3 -3
- package/dist/storage/index.js +7 -6
- package/dist/storage/types.d.cts +6 -5
- package/dist/storage/types.d.ts +6 -5
- package/dist/{storage-RkNaOFJ-.js → storage-BR-Kgi-6.js} +353 -169
- package/dist/storage-BR-Kgi-6.js.map +1 -0
- package/dist/{storage-76Sf_z_H.cjs → storage-CVBXivpB.cjs} +372 -170
- package/dist/storage-CVBXivpB.cjs.map +1 -0
- package/dist/stream/index.cjs +3 -3
- package/dist/stream/index.d.cts +2 -2
- package/dist/stream/index.d.ts +2 -2
- package/dist/stream/index.js +3 -3
- package/dist/stream/types.d.cts +1 -1
- package/dist/stream/types.d.ts +1 -1
- package/dist/syncActions/index.cjs +1 -1
- package/dist/syncActions/index.d.cts +2 -2
- package/dist/syncActions/index.d.ts +2 -2
- package/dist/syncActions/index.js +1 -1
- package/dist/syncActions/types.d.cts +1 -1
- package/dist/syncActions/types.d.ts +1 -1
- package/dist/{syncActions-DlNPhZY4.cjs → syncActions-C1rE4R3f.cjs} +5 -5
- package/dist/{syncActions-DlNPhZY4.cjs.map → syncActions-C1rE4R3f.cjs.map} +1 -1
- package/dist/{syncActions-BvFUa9xV.js → syncActions-DM8vP7p3.js} +5 -5
- package/dist/{syncActions-BvFUa9xV.js.map → syncActions-DM8vP7p3.js.map} +1 -1
- package/dist/telemetry/index.cjs +3 -6
- package/dist/telemetry/index.cjs.map +1 -1
- package/dist/telemetry/index.d.cts +2 -5
- package/dist/telemetry/index.d.ts +2 -5
- package/dist/telemetry/index.js +3 -6
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/types.d.cts +1 -1
- package/dist/telemetry/types.d.ts +1 -1
- package/dist/{jobStatus-BJdbZ72V.js → transientRetries-B4iusp69.js} +79 -37
- package/dist/transientRetries-B4iusp69.js.map +1 -0
- package/dist/{jobStatus-B0E-MZ9I.cjs → transientRetries-DdJfH9QK.cjs} +82 -40
- package/dist/transientRetries-DdJfH9QK.cjs.map +1 -0
- package/dist/{types-QroFANIW.d.cts → types-0ZAMQhva.d.cts} +3 -3
- package/dist/{types-BMWeCO5M.d.ts → types-1LENlL5h.d.ts} +3 -3
- package/dist/{types-BRvs3fXN.d.cts → types-6KabdIyO.d.cts} +3 -3
- package/dist/{types-B5kkD7h4.d.cts → types-9d8ihjZh.d.cts} +2 -2
- package/dist/{types-qGMVZGSB.d.ts → types-B7L6uSYb.d.ts} +50 -3
- package/dist/{types-qWA5iU0j.d.ts → types-BTy_FFSu.d.ts} +2 -2
- package/dist/{types-B1GN_I06.d.ts → types-BWYtQkHu.d.ts} +2 -2
- package/dist/types-BXHZQvGy.d.ts +2111 -0
- package/dist/{types-Btb8r9iw.d.ts → types-BYFU_6Iz.d.ts} +95 -26
- package/dist/{types-Nwq1QtYe.d.ts → types-BaqdM92a.d.ts} +3 -4
- package/dist/{types-CFurl1xe.d.cts → types-BbwrMl0Q.d.cts} +2 -2
- package/dist/{types-Br04cEri.d.ts → types-Bt8CEZ6K.d.ts} +2 -2
- package/dist/types-BtS3DhGu.d.cts +2111 -0
- package/dist/{types-CaBhH99H.d.ts → types-C-GSYDTN.d.ts} +3 -3
- package/dist/{types-BGICH80a.d.cts → types-C4eQ-Zcx.d.cts} +2 -2
- package/dist/{types-BTqxM-IN.d.ts → types-C9VaQSqV.d.ts} +2 -2
- package/dist/{types-C05ALlV6.d.cts → types-CNkQuWnO.d.cts} +3 -3
- package/dist/{types-DMWfdZ5C.d.cts → types-CXv_e6xC.d.cts} +2 -2
- package/dist/{types-C8oZX0oP.d.cts → types-C_raqbl-.d.cts} +3 -3
- package/dist/{types-BtII5RSD.d.ts → types-Cc4yTEdK.d.ts} +11 -3
- package/dist/{types-BoNqe_Lz.d.ts → types-Ce5Blzhg.d.ts} +2 -2
- package/dist/{types-UI2aZ74n.d.ts → types-CfZLdfAL.d.ts} +3 -3
- package/dist/{types-sg2xnYlr.d.cts → types-Cfc-fYbq.d.cts} +95 -26
- package/dist/{types-C4yryy-R.d.ts → types-Cn8I0vcr.d.ts} +3 -3
- package/dist/{types-DQauEri3.d.ts → types-CpWE6Yg2.d.ts} +2 -2
- package/dist/{types-XHNJRi3-.d.cts → types-CrJIILXf.d.cts} +2 -2
- package/dist/{types-DHdXufVf.d.cts → types-CwGbiMF-.d.cts} +3 -3
- package/dist/{types-fAqPUl-a.d.ts → types-CwQ8_n8q.d.ts} +320 -43
- package/dist/{types-BksK2Eo0.d.cts → types-D3H3EAre.d.ts} +2 -2
- package/dist/{types-CyO8qCKl.d.cts → types-D3mj56iq.d.cts} +2 -2
- package/dist/{types-YdE2VJzw.d.cts → types-D8d5tyGi.d.cts} +2 -2
- package/dist/{types-Csmy6qFk.d.cts → types-DMpiG2q4.d.cts} +3 -3
- package/dist/{types-ggpJFEWZ.d.cts → types-DSBrhK_K.d.cts} +2 -2
- package/dist/{types-5HdT1rSH.d.cts → types-DXF6faow.d.cts} +2 -2
- package/dist/{types-DDjp9lXD.d.ts → types-DfJP6Dti.d.ts} +2 -2
- package/dist/{types-DSv1XS7s.d.ts → types-DgOLSRiy.d.ts} +3 -3
- package/dist/{types-tJLoKlMX.d.cts → types-DlgqPU_4.d.cts} +2 -2
- package/dist/{types-sI3K5t3w.d.cts → types-Dn1G-qv4.d.cts} +320 -43
- package/dist/{types--owScV0r.d.cts → types-EkyQ0_10.d.cts} +11 -3
- package/dist/{types-LxDyOfdY.d.cts → types-EmIcG-8K.d.cts} +2 -2
- package/dist/{types-DGu-wPPm.d.cts → types-NSxpnYW5.d.cts} +50 -3
- package/dist/{types-Dvysi2Eo.d.ts → types-QPW-7dPm.d.ts} +2 -2
- package/dist/{types-BE7mRarT.d.ts → types-UySfduQo.d.ts} +2 -2
- package/dist/{types-BHxsCu0f.d.ts → types-VehpPOQX.d.ts} +2 -2
- package/dist/{types-DiE081mn.d.ts → types-Vu09EUZs.d.ts} +3 -3
- package/dist/{types-CoQET4Ep.d.ts → types-c4h2YDMC.d.ts} +2 -2
- package/dist/{types-BuKviWct.d.ts → types-sOM2_KPc.d.cts} +2 -2
- package/dist/{types-DUDQg4ry.d.cts → types-wNuJUhco.d.cts} +3 -4
- package/dist/{validateConnectionStatus-DR-0h35y.cjs → validateConnectionStatus-BalWEyRk.cjs} +3 -3
- package/dist/{validateConnectionStatus-DR-0h35y.cjs.map → validateConnectionStatus-BalWEyRk.cjs.map} +1 -1
- package/dist/{validateConnectionStatus-CdTV3gsP.js → validateConnectionStatus-DyrYpn0G.js} +3 -3
- package/dist/{validateConnectionStatus-CdTV3gsP.js.map → validateConnectionStatus-DyrYpn0G.js.map} +1 -1
- package/dist/vault/index.cjs +6 -6
- package/dist/vault/index.cjs.map +1 -1
- package/dist/vault/index.d.cts +1 -1
- package/dist/vault/index.d.ts +1 -1
- package/dist/vault/index.js +6 -6
- package/dist/vault/index.js.map +1 -1
- package/dist/vault/types.d.cts +1 -1
- package/dist/vault/types.d.ts +1 -1
- package/package.json +27 -1
- package/surface/ai.md +0 -1
- package/surface/apps.md +5 -5
- package/surface/auth.md +2 -0
- package/surface/chat.md +2 -2
- package/surface/componentsMcp.md +9 -0
- package/surface/dataScience.md +2 -2
- package/surface/kaiAgent.md +5 -4
- package/surface/management.md +5 -2
- package/surface/oauth.md +1 -0
- package/surface/queryService.md +4 -4
- package/surface/queue.md +2 -2
- package/surface/sdk.md +0 -24
- package/surface/storage.md +88 -57
- package/dist/QueryJobTimeoutError-C7JbNGOM.js +0 -38
- package/dist/QueryJobTimeoutError-C7JbNGOM.js.map +0 -1
- package/dist/QueryJobTimeoutError-CVNPdCWX.cjs.map +0 -1
- package/dist/authClient-CACOwVt0.js.map +0 -1
- package/dist/authClient-DZcAR-eW.cjs.map +0 -1
- package/dist/collect-97WhfEpt.js.map +0 -1
- package/dist/collect-B5TCNiT1.cjs.map +0 -1
- package/dist/configurations-BTRHVSRq.cjs.map +0 -1
- package/dist/configurations-Chg_JwJ1.js.map +0 -1
- package/dist/constants-BDGRQqij.cjs.map +0 -1
- package/dist/constants-Cifrqsls.js.map +0 -1
- package/dist/createFetchClient-ClWD4ua3.cjs.map +0 -1
- package/dist/createFetchClient-DITkTV2k.js.map +0 -1
- package/dist/index-BzhLY7el.d.cts +0 -254
- package/dist/index-CH5Sg3rk.d.ts +0 -77
- package/dist/index-CiwWDu-q.d.cts +0 -16
- package/dist/index-DCAnnlcL.d.ts +0 -16
- package/dist/index-DQwjlSJi.d.cts +0 -77
- package/dist/index-PyTPrtaL.d.ts +0 -254
- package/dist/jobStatus-B0E-MZ9I.cjs.map +0 -1
- package/dist/jobStatus-BJdbZ72V.js.map +0 -1
- package/dist/kaiAgent-BhcUsBDk.cjs.map +0 -1
- package/dist/kaiAgent-CUeT53-K.js.map +0 -1
- package/dist/management-0cWVLHei.cjs.map +0 -1
- package/dist/management-eg4Ig-Cx.js.map +0 -1
- package/dist/middleware-D_p5TctO.cjs.map +0 -1
- package/dist/middleware-DmR6OhTY.js.map +0 -1
- package/dist/project-BN7YRWFS.d.cts +0 -24
- package/dist/project-BpWTnoQ_.d.ts +0 -24
- package/dist/queryService-Blfz59Ms.js.map +0 -1
- package/dist/queryService-RlNYw7LG.cjs.map +0 -1
- package/dist/queue-BrgRdtOr.cjs.map +0 -1
- package/dist/queue-CNvR-M23.js.map +0 -1
- package/dist/serviceIds-DRcoTnSd.d.cts +0 -32
- package/dist/serviceIds-DRcoTnSd.d.ts +0 -32
- package/dist/storage-76Sf_z_H.cjs.map +0 -1
- package/dist/storage-RkNaOFJ-.js.map +0 -1
- package/dist/types-1B3ioN33.d.cts +0 -1868
- package/dist/types-BjIuVrAZ.d.ts +0 -66
- package/dist/types-CGhu0tID.d.cts +0 -1298
- package/dist/types-CclheyE7.d.cts +0 -66
- package/dist/types-M9vU_ONp.d.ts +0 -1868
- package/dist/types-P_61P9Nd.d.ts +0 -1298
- package/dist/types-j30rKMe6.d.ts +0 -957
- package/dist/types-q5lgElyc.d.cts +0 -957
package/AGENTS.md
CHANGED
|
@@ -82,9 +82,12 @@ Two flow-specific factories back the SDK:
|
|
|
82
82
|
`session` is **flow-specific** lifecycle machinery:
|
|
83
83
|
|
|
84
84
|
- bearer: `stack.select(baseUrl)` → `auth.authenticate(credential)` → `project.select(projectId)`,
|
|
85
|
-
plus `auth.signOut()` / `auth.replace(credential)` / `auth.isAuthenticated()` / `auth.isAuthenticatedAsync()` / `auth.rotate(baseUrl)` / `auth.getHeaders(projectId?)` / `auth.getHeadersAsync(projectId?)`, `stack.close` and
|
|
85
|
+
plus `auth.signOut({ baseUrl?, retain? }?)` / `auth.replace(credential)` / `auth.isAuthenticated()` / `auth.isAuthenticatedAsync()` / `auth.rotate(baseUrl)` / `auth.getHeaders(projectId?)` / `auth.getHeadersAsync(projectId?)`, `auth.restoreRetained(baseUrl)`, `stack.close` and
|
|
86
86
|
the two `deactivate`s, and `getState()` / `subscribe(cb)` over the stack-and-project table. Every
|
|
87
|
-
verb
|
|
87
|
+
verb changes the table synchronously — nothing awaits a build; a namespace throws `NotReady` until
|
|
88
|
+
its fetch lands. `stack.select`, `project.select` and `auth.signOut` also return a promise that
|
|
89
|
+
resolves once the change is stored: await it before leaving the document, or the reload boots
|
|
90
|
+
from the scope or sign-in it was meant to replace.
|
|
88
91
|
The one fetch each entry does own is readable both ways: `stack.getContext(baseUrl?)` /
|
|
89
92
|
`project.getContext(entryId?)` answer from cache (`null` until it lands), and the
|
|
90
93
|
`getContextAsync` sibling of each awaits it. `retryContext` refetches after a failure. The
|
|
@@ -157,8 +160,8 @@ Three things follow from that, worth knowing before you hold one:
|
|
|
157
160
|
the sign-in stands. **The refresh is the only oracle** — the server refusing the refresh token is
|
|
158
161
|
the one unambiguous report of a dead credential, and that is where the sign-out happens
|
|
159
162
|
(`rotateOnce` in `credentials.ts`). A cookie credential's refresh is the same oracle: the server
|
|
160
|
-
refusing its session signs it out.
|
|
161
|
-
|
|
163
|
+
refusing its session signs it out. `onExpired` on `createKeboola` reports that sign-out, once per
|
|
164
|
+
sign-in and never for one the caller made, so an app can leave the document.
|
|
162
165
|
- **Memoised per project** — `getApi(7) === getApi(7)`, which is what React `key`s and hook deps
|
|
163
166
|
need. A sign-out drops everything built for that stack's projects, so a reopened project is built
|
|
164
167
|
from scratch rather than from what the previous sign-in left behind.
|
|
@@ -206,14 +209,15 @@ Every credential change (login, project switch, token rotation, sign-out) is wri
|
|
|
206
209
|
fixed key, and what it holds is the whole table rather than a single session: `current` — the scoped
|
|
207
210
|
stack and project — plus a `stacks` array, each entry carrying its own credential and the projects
|
|
208
211
|
open under it. Only the durable part of a credential is written: a token credential's rotating
|
|
209
|
-
refresh token,
|
|
210
|
-
|
|
212
|
+
refresh token, and a cookie one's session id, which renews nothing without the HttpOnly session
|
|
213
|
+
cookie the browser keeps. An access token or user identity is never written.
|
|
211
214
|
|
|
212
|
-
**Token or cookie is
|
|
213
|
-
|
|
214
|
-
`token.refreshWithSession
|
|
215
|
-
origin, so localhost and previews
|
|
216
|
-
|
|
215
|
+
**Token or cookie is the login's choice, and the credential carries it.** A browser-mode login
|
|
216
|
+
(`login.withPassword({ …, browserMode: true })`) answers with no refresh token; stored as a `cookie`
|
|
217
|
+
credential it renews through `token.refreshWithSession`, so the refresh token never reaches JS. That
|
|
218
|
+
works only from the stack's own origin, so localhost and previews log in in API mode and hold a
|
|
219
|
+
`token` credential. One client takes either kind, renews each by its own grant, and restores a
|
|
220
|
+
persisted grant of either kind.
|
|
217
221
|
|
|
218
222
|
**A stack is always active**, so `session.stack.getActive()` never returns `null` and the active
|
|
219
223
|
stack cannot be closed. Call `resume()` once on startup: persistence starts only after it settles,
|
|
@@ -487,7 +491,10 @@ api.sdk.tag.* api.sdk.storage.*
|
|
|
487
491
|
|
|
488
492
|
`api.apps` is the data-apps `/v2` App Deployments surface (apps + deployments); `api.dataScience` is the same service's `/v1` surface, which still owns workspaces (`/sandboxes`, `/runtimes`) and the data-app endpoints the UI has not moved off yet.
|
|
489
493
|
|
|
490
|
-
**`
|
|
494
|
+
**`api.apps` needs no availability check.** Every stack's sandboxes-service serves `/v2` from the same image as `/v1`, and `api.apps` resolves off the `data-science` service id like `api.dataScience`. When probing a stack by hand, only an authenticated call answers:
|
|
495
|
+
|
|
496
|
+
- `healthCheck()`, `GET /v2/docs/swagger.yaml` and unauthenticated calls answer the same everywhere.
|
|
497
|
+
- A `401` from an authenticated call means a bad or expired token, not a missing API.
|
|
491
498
|
|
|
492
499
|
Clients backing optional stack services (vault, queue, …) throw `ServiceUnavailableError` if absent from the current stack — check `api.context.stack.hasService(...)` before assuming a namespace exists.
|
|
493
500
|
|
|
@@ -609,6 +616,54 @@ const createWidget = async ({ widgetId, branchId, ...body }: CreateWidgetInput)
|
|
|
609
616
|
|
|
610
617
|
Name them `<Verb><Entity>Path` / `…Query` / `…Body` / `…Input`, with `…SchemaBody` / `…SchemaQuery` reserved for the raw spec-derived alias when a tightened sibling shares the name. Because `Input` is built from the spec's `Path`, path parameters keep the spec's own names (`configurationId`, not a local `configId`) — that keeps a call site diffable against the endpoint it hits.
|
|
611
618
|
|
|
619
|
+
### A query parameter that changes the result type (`include`, `exclude`)
|
|
620
|
+
|
|
621
|
+
Some reads let the caller pick what comes back: `include=metadata,columns` adds keys to each item, `exclude=componentDetails` swaps a field for a thinner shape. The spec types the parameter as `string` and every conditional key as optional, so a derived return says "maybe" about all of them. Type the method from the literal it is called with instead — `getBuckets({ branchId, include: ['metadata'] })` resolves with `metadata` required, `getBuckets({ branchId })` leaves it optional. Three helpers in `fetchClient/types.ts` carry it; each endpoint declares in its `types.ts` what its values mean:
|
|
622
|
+
|
|
623
|
+
```ts
|
|
624
|
+
// buckets/types.ts
|
|
625
|
+
/** What each `include` value adds to a listed bucket (see `IncludeMap`). */
|
|
626
|
+
export type BucketIncludes = {
|
|
627
|
+
attributes: 'attributes';
|
|
628
|
+
metadata: 'metadata';
|
|
629
|
+
linkedBuckets: []; // adds `linkedBy` only to a bucket something links to, so it stays optional
|
|
630
|
+
};
|
|
631
|
+
|
|
632
|
+
export type BucketInclude = keyof BucketIncludes;
|
|
633
|
+
|
|
634
|
+
export type GetBucketsQuery<I extends readonly BucketInclude[] = BucketInclude[]> =
|
|
635
|
+
OpenapiIncludeQueryType<paths['/v2/storage/branch/{branchId}/buckets']['get'], I>;
|
|
636
|
+
export type GetBucketsInput<I extends readonly BucketInclude[] = BucketInclude[]> = GetBucketsPath &
|
|
637
|
+
GetBucketsQuery<I>;
|
|
638
|
+
export type BucketWith<I extends readonly BucketInclude[]> = WithIncludes<
|
|
639
|
+
Bucket,
|
|
640
|
+
BucketIncludes,
|
|
641
|
+
I
|
|
642
|
+
>;
|
|
643
|
+
|
|
644
|
+
// buckets/buckets.ts
|
|
645
|
+
const getBuckets = async <const I extends readonly BucketInclude[] = []>(
|
|
646
|
+
{ branchId, ...query }: GetBucketsInput<I>,
|
|
647
|
+
signal?: AbortSignal,
|
|
648
|
+
) => {
|
|
649
|
+
const { data } = await openApiClient.get(
|
|
650
|
+
'/v2/storage/branch/{branchId}/buckets',
|
|
651
|
+
{ path: { branchId }, query: query as GetBucketsSchemaQuery },
|
|
652
|
+
{ signal, queryArrayFormat: 'comma' },
|
|
653
|
+
);
|
|
654
|
+
|
|
655
|
+
return data as unknown as BucketWith<I>[];
|
|
656
|
+
};
|
|
657
|
+
```
|
|
658
|
+
|
|
659
|
+
- **`OpenapiIncludeQueryType<Op, I>` is the query.** It is the operation's own query with `include` swapped for the tuple, so paging and filters stay spec-derived and the key name cannot drift. Tighten a wrong sibling param on top of it (`Omit<…, 'isDeleted'> & { isDeleted?: boolean }`), never by retyping the whole query.
|
|
660
|
+
- **The map is the contract, and it is checked.** `WithIncludes` constrains the map to `IncludeMap<T>`: every value must be a dotted path that exists on `T` (three segments deep, array hops implicit), so a typo is a type error at the `With…` alias. `[]` marks a value that only sometimes adds a key, so it stays optional. Verify each value against Connection's action, not the spec's description.
|
|
661
|
+
- **`const I`, default `[]`.** `const` keeps the tuple literal. `[]` means "nothing sent", so with no `include` every conditional key stays optional. A widened `BucketInclude[]` from a variable is not a tuple, and `WithIncludes` then returns the base type. Server-side defaults (a list that answers `name,description` with no `include`) are not modelled.
|
|
662
|
+
- **Both casts are required.** The spec's query has `include?: string`, so the tuple goes out as `query as Get…SchemaQuery`. The return needs `as unknown as …With<I>[]`: a type with keys made required or removed does not overlap the spec's all-optional shape, so a single `as` is refused. A detail read that joins `include` itself (`include?.join(',')`, `getBucket`) sends a plain string and needs no query cast. Together with the spec-defect bridge above, these are the sanctioned uses of `as` in this package.
|
|
663
|
+
- **`exclude` reshapes, so it is a patch map.** `WithExcludes<T, Map, E>` takes `ExcludeMap<T>`: each value is a patch over `T` where a key replaces that field's type and `never` removes it. `StackInfoExcludes` maps `componentDetails` to `{ components: StackComponent[] }` and `components` to `{ components: never }`; `undefined` returns `T`. The query is `OpenapiExcludeQueryType<Op, E>`, the method takes the same `const E` generic and the same cast.
|
|
664
|
+
- **Never** a `getXWithY` sibling method, a hand-typed `include?: 'foo'[]` without a map, or a conditional key made required on the base type.
|
|
665
|
+
- **Where a `*.types.test.ts` already asserts on such a method, use an instantiation expression**, never a call (the root rules forbid new type-only tests): `expectTypeOf(storage.getStackInfo<'componentDetails'>).returns.resolves.toEqualTypeOf<…>()`. A call fires a real request, which MSW rejects as an unhandled error.
|
|
666
|
+
|
|
612
667
|
### A method that returns a job ends in `Async`
|
|
613
668
|
|
|
614
669
|
If the resolved value is a `Job` — the request only _enqueues_ the work — the method name **must** end in `Async`: `deleteBucketAsync`, `importAsync`, `createSnapshotAsync`. Never `*Job` (that names the return type, not what the call does) and never a bare verb, which reads like the work is finished when the promise resolves.
|
|
@@ -624,26 +679,42 @@ const getBucket = async (…): Promise<BucketDetail> => { … }; //
|
|
|
624
679
|
|
|
625
680
|
One shape needs a judgement call: an endpoint that answers _either_ the resource or a job depending on a parameter (`createAliasTable` → `Table | CreateAliasJob`). Prefer splitting it into a sync method and an `*Async` sibling; where that isn't worth it, leave the bare name and say so in a comment, because a caller that must branch on the response can't be told anything useful by the name alone.
|
|
626
681
|
|
|
627
|
-
### A method that
|
|
682
|
+
### A method that hands back the poller for its job ends in `Poller`
|
|
628
683
|
|
|
629
|
-
The sibling of an `*Async` method that
|
|
684
|
+
The sibling of an `*Async` method that hands back the poller for the enqueued job ends in `Poller`: `createTablePoller`, `importPoller`, `unshareBucketPoller`. It lives on the client, next to the `*Async` it mirrors.
|
|
630
685
|
|
|
631
|
-
| What the call does | Name shape | Example
|
|
632
|
-
| ------------------------------------------------ | ---------- |
|
|
633
|
-
| returns the finished resource in one request | bare verb | `getBucket`, `deleteBucket`
|
|
634
|
-
| enqueues the work and hands back a `Job` to poll | `*Async` | `createTableAsync`
|
|
635
|
-
|
|
|
686
|
+
| What the call does | Name shape | Example |
|
|
687
|
+
| ------------------------------------------------ | ---------- | ---------------------------- |
|
|
688
|
+
| returns the finished resource in one request | bare verb | `getBucket`, `deleteBucket` |
|
|
689
|
+
| enqueues the work and hands back a `Job` to poll | `*Async` | `createTableAsync` |
|
|
690
|
+
| hands back the poller for the enqueue | `*Poller` | `createTablePoller` |
|
|
691
|
+
| runs a batch to completion and reports it | `*AndWait` | `purgeConfigurationsAndWait` |
|
|
636
692
|
|
|
637
693
|
- **Never a bare verb.** `buckets.deleteBucket` is a real single-request endpoint sitting next to `deleteBucketAsync`, so a bare name would mean "one request" on one resource and "poll loop" on the next.
|
|
638
|
-
- **Never `
|
|
694
|
+
- **Never `AndWait` for a poller.** The method waits for nothing; the poller it returns does, once started. `AndWait` is for a method that itself awaits the work and resolves what it reports, like the chunked batch purge and restore.
|
|
639
695
|
- **Never a `{ wait: true }` option.** Both branches return `Job` — the same TS type — so nothing discriminates work that is merely enqueued from work that is done, and the name is the only signal a call site gets.
|
|
640
|
-
- **Never `AndPoll`.** That names the transport, not the contract. A route that later grows long-poll or SSE turns every `AndPoll` into a lie.
|
|
641
696
|
|
|
642
|
-
It is a suffix, not a prefix, because a suffix means "same endpoint, different completion contract" — the variant shares its sibling's prefix and so sorts beside it in autocomplete, where
|
|
697
|
+
It is a suffix, not a prefix, because a suffix means "same endpoint, different completion contract" — the variant shares its sibling's prefix and so sorts beside it in autocomplete, where Azure's `beginCreateTable` would sort nowhere near `createTableAsync`.
|
|
698
|
+
|
|
699
|
+
**A `*Poller` returns the job's `Poller`**, handed the enqueue as `init`, so the handle exists before any request is sent. It is lazy: nothing runs until `start()` or `wait()`. `start()` resolves the `PollResult`; `wait()` resolves the succeeded job or throws, the poll's failure, a refused enqueue or the job's `StorageJobError`; `subscribe` and `stop` let a caller watch or cancel the wait. `start()` still resolves a job that ended `error`, for a caller that reads partial results off it.
|
|
700
|
+
|
|
701
|
+
### A paginated collection has a page method and a `getAll*` sibling
|
|
643
702
|
|
|
644
|
-
|
|
703
|
+
Connection's newer collections are cursor-paginated: a `data` / `meta` / `links` envelope,
|
|
704
|
+
`page[limit]` / `page[after]` and `filter[...]` query objects, `links.next` null on the last page
|
|
705
|
+
(connection's `docs/guidelines/.../paginated-collections.md`; `/manage/deleted-projects`,
|
|
706
|
+
`/v1/auth/me/*`). Older ones are offset-paginated (`limit` / `offset`). Both get the same two
|
|
707
|
+
methods:
|
|
645
708
|
|
|
646
|
-
**
|
|
709
|
+
- **The page method is the bare plural** (`getProjects(query, signal)`) and returns the envelope
|
|
710
|
+
untouched. A consumer that renders one page at a time pages with it, reading the next cursor
|
|
711
|
+
off `links.next` with `nextCursorOf` — never rebuilding it from the last row, since the encoding
|
|
712
|
+
is the server's.
|
|
713
|
+
- **The all-pages sibling is `getAll<Noun>(signal)`** (`auth.me.getAllProjects`), built on
|
|
714
|
+
`collectByCursor` or `collectByOffset` from `utils/async`. It owns the page size as a client
|
|
715
|
+
constant set to the server's maximum, and exists only where a consumer needs the whole
|
|
716
|
+
collection. An app never walks pages itself; the walk, the cursor parsing and the page limit
|
|
717
|
+
live here.
|
|
647
718
|
|
|
648
719
|
## Extending the SDK (endpoint not in the client yet)
|
|
649
720
|
|
package/API-SURFACE.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Every namespace and method reachable from a ready `KeboolaApi` — the `api` half of a keboola client (`createKeboola(...).api` / `createLegacyKeboola(...).api`, or `useApiClient()`). Generated from the TypeScript type checker — see `scripts/gen-surface.mjs`.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
26 top-level namespaces, 727 methods. This index lists method **names** only — full signatures live per namespace under [`surface/`](./surface). Open `surface/<namespace>.md` for the one you need.
|
|
8
8
|
|
|
9
9
|
## [`api.ai`](./surface/ai.md)
|
|
10
10
|
|
|
@@ -13,7 +13,6 @@ Every namespace and method reachable from a ready `KeboolaApi` — the `api` hal
|
|
|
13
13
|
- `describeConfigurationVersion`
|
|
14
14
|
- `docsQuestion`
|
|
15
15
|
- `explainError`
|
|
16
|
-
- `feedback`
|
|
17
16
|
- `getComponentDetail`
|
|
18
17
|
- `healthCheck`
|
|
19
18
|
- `suggestComponent`
|
|
@@ -60,6 +59,8 @@ Every namespace and method reachable from a ready `KeboolaApi` — the `api` hal
|
|
|
60
59
|
- `manageTokens.getAll`
|
|
61
60
|
- `manageTokens.revoke`
|
|
62
61
|
- `me.get`
|
|
62
|
+
- `me.getAllOrganizations`
|
|
63
|
+
- `me.getAllProjects`
|
|
63
64
|
- `me.getMaintainers`
|
|
64
65
|
- `me.getOrganizations`
|
|
65
66
|
- `me.getProjects`
|
|
@@ -116,6 +117,12 @@ Every namespace and method reachable from a ready `KeboolaApi` — the `api` hal
|
|
|
116
117
|
- `updateAgentSettings`
|
|
117
118
|
- `updateUserAgentSettings`
|
|
118
119
|
|
|
120
|
+
## [`api.componentsMcp`](./surface/componentsMcp.md)
|
|
121
|
+
|
|
122
|
+
- `getConnectors`
|
|
123
|
+
- `healthCheck`
|
|
124
|
+
- `setConnectorCredentials`
|
|
125
|
+
|
|
119
126
|
## [`api.context`](./surface/context.md)
|
|
120
127
|
|
|
121
128
|
- `defaultBranch.getType`
|
|
@@ -221,6 +228,7 @@ Every namespace and method reachable from a ready `KeboolaApi` — the `api` hal
|
|
|
221
228
|
- `updateProjectToolPolicy`
|
|
222
229
|
- `updateSpendCaps`
|
|
223
230
|
- `updateUserAgentSettings`
|
|
231
|
+
- `updateUserMemory`
|
|
224
232
|
|
|
225
233
|
## [`api.management`](./surface/management.md)
|
|
226
234
|
|
|
@@ -319,6 +327,7 @@ Every namespace and method reachable from a ready `KeboolaApi` — the `api` hal
|
|
|
319
327
|
- `payAsYouGo.updateStripeCustomer`
|
|
320
328
|
- `payAsYouGo.updateTopUpSetting`
|
|
321
329
|
- `programmaticProjects.confirm`
|
|
330
|
+
- `programmaticProjects.getClaim`
|
|
322
331
|
- `projects.addProjectFeature`
|
|
323
332
|
- `projects.addProjectTemplateFeature`
|
|
324
333
|
- `projects.addProjectUser`
|
|
@@ -355,9 +364,11 @@ Every namespace and method reachable from a ready `KeboolaApi` — the `api` hal
|
|
|
355
364
|
- `snowflakePartnerConnect.check`
|
|
356
365
|
- `snowflakePartnerConnect.unlock`
|
|
357
366
|
- `storageBackends.activateStorageBackend`
|
|
367
|
+
- `storageBackends.createBigqueryServerSideStorageBackend`
|
|
358
368
|
- `storageBackends.createBigqueryStorageBackend`
|
|
359
369
|
- `storageBackends.createSnowflakeStorageBackend`
|
|
360
370
|
- `storageBackends.deleteStorageBackend`
|
|
371
|
+
- `storageBackends.getPolicyTagEnablementGuide`
|
|
361
372
|
- `storageBackends.getStorageBackend`
|
|
362
373
|
- `storageBackends.getStorageBackendMaintainers`
|
|
363
374
|
- `storageBackends.getStorageBackendProjects`
|
|
@@ -424,6 +435,7 @@ Every namespace and method reachable from a ready `KeboolaApi` — the `api` hal
|
|
|
424
435
|
- `deleteCredential`
|
|
425
436
|
- `getCredential`
|
|
426
437
|
- `getCredentials`
|
|
438
|
+
- `getOrganizationConnections`
|
|
427
439
|
- `healthCheck`
|
|
428
440
|
|
|
429
441
|
## [`api.omnisearch`](./surface/omnisearch.md)
|
|
@@ -497,27 +509,6 @@ Every namespace and method reachable from a ready `KeboolaApi` — the `api` hal
|
|
|
497
509
|
- `semanticLayer.updateModel`
|
|
498
510
|
- `semanticLayer.updateObject`
|
|
499
511
|
- `semanticLayer.withdrawScopeElevationRequest`
|
|
500
|
-
- `storage.addTableColumn`
|
|
501
|
-
- `storage.createBucketListing`
|
|
502
|
-
- `storage.createSnapshot`
|
|
503
|
-
- `storage.createTable`
|
|
504
|
-
- `storage.createTableDefinition`
|
|
505
|
-
- `storage.createTablePrimaryKey`
|
|
506
|
-
- `storage.deleteBucketListing`
|
|
507
|
-
- `storage.deleteTableColumn`
|
|
508
|
-
- `storage.exportToFile`
|
|
509
|
-
- `storage.forceUnlinkBucket`
|
|
510
|
-
- `storage.importFromFile`
|
|
511
|
-
- `storage.pullTable`
|
|
512
|
-
- `storage.refreshExternalBucket`
|
|
513
|
-
- `storage.registerBucket`
|
|
514
|
-
- `storage.removeTablePrimaryKey`
|
|
515
|
-
- `storage.shareBucketToOrganization`
|
|
516
|
-
- `storage.shareBucketToOrganizationProject`
|
|
517
|
-
- `storage.shareBucketToProjects`
|
|
518
|
-
- `storage.shareBucketToUsers`
|
|
519
|
-
- `storage.unshareBucket`
|
|
520
|
-
- `storage.updateBucketListing`
|
|
521
512
|
- `tag.assignTags`
|
|
522
513
|
- `tag.createAndAssignTag`
|
|
523
514
|
- `tag.createTag`
|
|
@@ -536,11 +527,11 @@ Every namespace and method reachable from a ready `KeboolaApi` — the `api` hal
|
|
|
536
527
|
|
|
537
528
|
## [`api.storage`](./surface/storage.md)
|
|
538
529
|
|
|
539
|
-
- `branches.createDevBranchAndWait`
|
|
540
530
|
- `branches.createDevBranchAsync`
|
|
541
|
-
- `branches.
|
|
531
|
+
- `branches.createDevBranchPoller`
|
|
542
532
|
- `branches.deleteDevBranchAsync`
|
|
543
533
|
- `branches.deleteDevBranchMetadata`
|
|
534
|
+
- `branches.deleteDevBranchPoller`
|
|
544
535
|
- `branches.getDevBranchMetadata`
|
|
545
536
|
- `branches.getDevBranches`
|
|
546
537
|
- `branches.saveDevBranchMetadata`
|
|
@@ -549,24 +540,39 @@ Every namespace and method reachable from a ready `KeboolaApi` — the `api` hal
|
|
|
549
540
|
- `bucketExternal.deleteScheduledTask`
|
|
550
541
|
- `bucketExternal.getBucketRegistrationGuide`
|
|
551
542
|
- `bucketExternal.refreshExternalBucketAsync`
|
|
543
|
+
- `bucketExternal.refreshExternalBucketPoller`
|
|
552
544
|
- `bucketExternal.registerBucketAsync`
|
|
545
|
+
- `bucketExternal.registerBucketPoller`
|
|
553
546
|
- `bucketListings.createListingAsync`
|
|
547
|
+
- `bucketListings.createListingPoller`
|
|
554
548
|
- `bucketListings.deleteListingAsync`
|
|
549
|
+
- `bucketListings.deleteListingPoller`
|
|
555
550
|
- `bucketListings.getListing`
|
|
551
|
+
- `bucketListings.getListingSubscriptions`
|
|
556
552
|
- `bucketListings.getListings`
|
|
557
553
|
- `bucketListings.updateListingAsync`
|
|
554
|
+
- `bucketListings.updateListingPoller`
|
|
558
555
|
- `bucketSharing.forceUnlinkBucketAsync`
|
|
556
|
+
- `bucketSharing.forceUnlinkBucketPoller`
|
|
559
557
|
- `bucketSharing.linkBucketAsync`
|
|
558
|
+
- `bucketSharing.linkBucketPoller`
|
|
560
559
|
- `bucketSharing.shareBucketToOrganizationAsync`
|
|
560
|
+
- `bucketSharing.shareBucketToOrganizationPoller`
|
|
561
561
|
- `bucketSharing.shareBucketToOrganizationProjectAsync`
|
|
562
|
+
- `bucketSharing.shareBucketToOrganizationProjectPoller`
|
|
562
563
|
- `bucketSharing.shareBucketToProjectsAsync`
|
|
564
|
+
- `bucketSharing.shareBucketToProjectsPoller`
|
|
563
565
|
- `bucketSharing.shareBucketToUsersAsync`
|
|
566
|
+
- `bucketSharing.shareBucketToUsersPoller`
|
|
564
567
|
- `bucketSharing.sharedBuckets`
|
|
568
|
+
- `bucketSharing.sharingTargets`
|
|
565
569
|
- `bucketSharing.unshareBucketAsync`
|
|
570
|
+
- `bucketSharing.unshareBucketPoller`
|
|
566
571
|
- `buckets.createBucket`
|
|
567
572
|
- `buckets.deleteBucket`
|
|
568
573
|
- `buckets.deleteBucketAsync`
|
|
569
574
|
- `buckets.deleteBucketMetadata`
|
|
575
|
+
- `buckets.deleteBucketPoller`
|
|
570
576
|
- `buckets.getBucket`
|
|
571
577
|
- `buckets.getBucketOwner`
|
|
572
578
|
- `buckets.getBuckets`
|
|
@@ -574,10 +580,14 @@ Every namespace and method reachable from a ready `KeboolaApi` — the `api` hal
|
|
|
574
580
|
- `buckets.updateBucket`
|
|
575
581
|
- `buckets.updateBucketOwner`
|
|
576
582
|
- `columns.addTableColumnAsync`
|
|
583
|
+
- `columns.addTableColumnPoller`
|
|
577
584
|
- `columns.createTablePrimaryKeyAsync`
|
|
585
|
+
- `columns.createTablePrimaryKeyPoller`
|
|
578
586
|
- `columns.deleteColumnMetadata`
|
|
579
587
|
- `columns.deleteTableColumnAsync`
|
|
588
|
+
- `columns.deleteTableColumnPoller`
|
|
580
589
|
- `columns.removeTablePrimaryKeyAsync`
|
|
590
|
+
- `columns.removeTablePrimaryKeyPoller`
|
|
581
591
|
- `columns.saveColumnMetadata`
|
|
582
592
|
- `components.getComponent`
|
|
583
593
|
- `components.getComponents`
|
|
@@ -600,7 +610,8 @@ Every namespace and method reachable from a ready `KeboolaApi` — the `api` hal
|
|
|
600
610
|
- `configurationVersions.rollbackConfigurationRowToVersion`
|
|
601
611
|
- `configurationVersions.rollbackConfigurationToVersion`
|
|
602
612
|
- `configurationWorkspaces.createConfigurationWorkspace`
|
|
603
|
-
- `configurationWorkspaces.
|
|
613
|
+
- `configurationWorkspaces.createConfigurationWorkspaceAsync`
|
|
614
|
+
- `configurationWorkspaces.createConfigurationWorkspacePoller`
|
|
604
615
|
- `configurationWorkspaces.getConfigurationWorkspaces`
|
|
605
616
|
- `configurations.createConfiguration`
|
|
606
617
|
- `configurations.deleteConfiguration`
|
|
@@ -640,9 +651,9 @@ Every namespace and method reachable from a ready `KeboolaApi` — the `api` hal
|
|
|
640
651
|
- `mergeRequests.createMergeRequest`
|
|
641
652
|
- `mergeRequests.getMergeRequest`
|
|
642
653
|
- `mergeRequests.getMergeRequestConflicts`
|
|
643
|
-
- `mergeRequests.getMergeRequestWithActivityLog`
|
|
644
654
|
- `mergeRequests.getMergeRequests`
|
|
645
|
-
- `mergeRequests.
|
|
655
|
+
- `mergeRequests.mergeMergeRequestAsync`
|
|
656
|
+
- `mergeRequests.mergeMergeRequestPoller`
|
|
646
657
|
- `mergeRequests.requestChangesMergeRequest`
|
|
647
658
|
- `mergeRequests.requestReview`
|
|
648
659
|
- `mergeRequests.updateMergeRequest`
|
|
@@ -650,28 +661,37 @@ Every namespace and method reachable from a ready `KeboolaApi` — the `api` hal
|
|
|
650
661
|
- `search.globalSearch`
|
|
651
662
|
- `search.searchTables`
|
|
652
663
|
- `snapshots.createSnapshotAsync`
|
|
664
|
+
- `snapshots.createSnapshotPoller`
|
|
653
665
|
- `snapshots.deleteSnapshotAsync`
|
|
666
|
+
- `snapshots.deleteSnapshotPoller`
|
|
654
667
|
- `snapshots.getSnapshot`
|
|
655
668
|
- `snapshots.getTableSnapshots`
|
|
656
669
|
- `stats.getRunIdStats`
|
|
657
670
|
- `tables.createAliasTable`
|
|
658
671
|
- `tables.createTableAsync`
|
|
659
672
|
- `tables.createTableDefinitionAsync`
|
|
673
|
+
- `tables.createTableDefinitionPoller`
|
|
674
|
+
- `tables.createTablePoller`
|
|
660
675
|
- `tables.deleteTable`
|
|
661
676
|
- `tables.deleteTableMetadata`
|
|
662
|
-
- `tables.
|
|
677
|
+
- `tables.deleteTableRowsAsync`
|
|
678
|
+
- `tables.deleteTableRowsPoller`
|
|
663
679
|
- `tables.deleteTables`
|
|
664
680
|
- `tables.exportAsync`
|
|
681
|
+
- `tables.exportPoller`
|
|
665
682
|
- `tables.getDataPreview`
|
|
666
683
|
- `tables.getTable`
|
|
667
684
|
- `tables.getTables`
|
|
668
685
|
- `tables.importAsync`
|
|
686
|
+
- `tables.importPoller`
|
|
669
687
|
- `tables.pullTableAsync`
|
|
688
|
+
- `tables.pullTablePoller`
|
|
670
689
|
- `tables.removeAliasTableFilter`
|
|
671
690
|
- `tables.saveTableMetadata`
|
|
672
691
|
- `tables.setAliasTableFilter`
|
|
673
692
|
- `tables.updateTable`
|
|
674
|
-
- `tables.
|
|
693
|
+
- `tables.updateTableDefinitionAsync`
|
|
694
|
+
- `tables.updateTableDefinitionPoller`
|
|
675
695
|
- `tokens.createToken`
|
|
676
696
|
- `tokens.deleteToken`
|
|
677
697
|
- `tokens.getTokenEvents`
|
|
@@ -687,6 +707,8 @@ Every namespace and method reachable from a ready `KeboolaApi` — the `api` hal
|
|
|
687
707
|
- `workspaces.deleteWorkspace`
|
|
688
708
|
- `workspaces.deleteWorkspaceAsync`
|
|
689
709
|
- `workspaces.deleteWorkspaceObjectsAsync`
|
|
710
|
+
- `workspaces.deleteWorkspaceObjectsPoller`
|
|
711
|
+
- `workspaces.deleteWorkspacePoller`
|
|
690
712
|
- `workspaces.deleteWorkspaces`
|
|
691
713
|
- `workspaces.getWorkspace`
|
|
692
714
|
- `workspaces.getWorkspaceObjects`
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,90 @@
|
|
|
1
1
|
# @keboola/api-client
|
|
2
2
|
|
|
3
|
+
## 48.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- - A `StorageAdapter` may answer with a promise, and may offer `withLock` for a critical section shared across documents. **Breaking:** `createPersistor` is `read` / `write` / `modify` / `remove`, plus `transaction(task)`, which hands `task` the same four verbs under the adapter's lock: every write resolves once it has landed and rejects when it could not, writes run in the order they were issued, and `read` waits for the ones in flight. `hydrate`, `persist`, `update`, `clear`, `flush` and `hasPersistedValue` are gone.
|
|
8
|
+
- **Breaking:** `session.auth.signOut` resolves once the sign-out is stored — await it before leaving the document.
|
|
9
|
+
- **Breaking:** `session.auth.signOut` takes one options object, `{ baseUrl?, retain? }`. With `retain`, the stack signs out but keeps its grant; `session.auth.restoreRetained(baseUrl)` signs it back in. `Stack.retained` holds the kept grant with its issue time.
|
|
10
|
+
- **Breaking:** `CredentialType` is renamed `GrantType`. `Grant` is what renews a credential and what persists; `Credential` is the grant with its access token.
|
|
11
|
+
|
|
12
|
+
- Remove `api.ai.feedback()` and the `FeedbackBody` type. The UI no longer sends 👍/👎 feedback on AI-generated content to the AI service.
|
|
13
|
+
|
|
14
|
+
### Minor Changes
|
|
15
|
+
|
|
16
|
+
- Kai saves a personal note right away by default (AI-4061). The chat shows "Remembered: …" with Undo and Edit; Kai settings → Memory switches back to asking before each save. Company notes still go through approval and a project admin's review. `api.kaiAgent.updateUserMemory(id, content)` edits a note, and user settings carry `memorySaveMode` (`auto` | `ask`).
|
|
17
|
+
|
|
18
|
+
- `Workspace` carries `lastActivityAt`, the last observed use, and `warnAt`, when retention will warn the owner (both ISO 8601, `null` or absent otherwise).
|
|
19
|
+
|
|
20
|
+
- `api.storage.bucketSharing.sharingTargets()` lists the projects and users a bucket can be shared to (`GET /v2/storage/sharing-targets`), and `api.management.programmaticProjects.getClaim()` reads the parked agent-project claim (`GET /manage/programmatic-projects/claim`). Both come from the regenerated Storage and Manage schemas; the Storage regen also adds `lastActivityAt` and `warnAt` to workspaces (UT-5889)
|
|
21
|
+
|
|
22
|
+
### Patch Changes
|
|
23
|
+
|
|
24
|
+
- The `apps` (`/v2` App Deployments) types are generated from `apps.keboola.com`; the types are unchanged.
|
|
25
|
+
- `suspendApp` sleeps the app; the next visitor wakes it.
|
|
26
|
+
- `getDeployments` lists live deployments; `archived: true` lists the deleted ones instead.
|
|
27
|
+
|
|
28
|
+
- Regenerate the developerPortal, queryService, kaiAgent, componentsMcp, storage and management OpenAPI types against the live services (UT-5860)
|
|
29
|
+
|
|
30
|
+
- `kaiAgent` history types: a stored tool part's `approval.approved` is optional — a call whose approval card was shown keeps only the approval `id`.
|
|
31
|
+
|
|
32
|
+
- `canWriteSemanticLayer` admits the `share` project role, matching the metastore's role mapping (`admin`, `productionManager`, `share` get project-admin). A `share` member now gets the semantic-layer write actions in kbc-ui and Kai's semantic-layer write tools.
|
|
33
|
+
|
|
34
|
+
## 47.0.0
|
|
35
|
+
|
|
36
|
+
### Major Changes
|
|
37
|
+
|
|
38
|
+
- `collectByCursor` walks a cursor-paginated collection (`data` / `meta` / `links` envelope) to the end by following `links.next`; `nextCursorOf` reads the `page[after]` cursor off such a link. `auth.me.getAllOrganizations` and `auth.me.getAllProjects` use it to return the caller's full collections behind the `/v1/auth/me` previews.
|
|
39
|
+
- **Breaking:** `collect` is renamed `collectByOffset`. Replace the import; the options and behaviour are unchanged.
|
|
40
|
+
|
|
41
|
+
- - **Breaking:** the `static` credential kind is removed. A bearer session holds a `token` or a `cookie` credential, both of which renew; a persisted session carries only the grant that restores it, never an access token.
|
|
42
|
+
- A persisted credential of a kind the build does not know restores that stack signed out instead of discarding the whole stored session.
|
|
43
|
+
- **Breaking:** `BearerCredentialEntry` is renamed `CredentialEntry` and `CredentialMode` is renamed `CredentialType`; a bearer is the only kind there is, and the type is the credential's own `type`.
|
|
44
|
+
|
|
45
|
+
- The bearer client renews whichever rotating credential it holds: a `token` credential by its refresh token, a `cookie` credential by its session id. One client signs in with either kind, and a persisted grant of either kind is restored through its own channel.
|
|
46
|
+
- **Breaking:** `KeboolaOptions.credentials` is removed; there is no client-wide credential mode. Drop the option.
|
|
47
|
+
- **Breaking:** `session.auth.adoptInjected` is removed; call `session.auth.replace` with the injected credential.
|
|
48
|
+
- **Breaking:** `KeboolaErrorType.CredentialKindMismatch` is removed; nothing throws it.
|
|
49
|
+
|
|
50
|
+
- Every storage method that enqueues a job has an `*Poller` twin that waits for it, in the shape `branches.createDevBranchPoller` already had: it takes the same input plus `StorageJobPollOptions` and returns the job's `Poller`, lazy until `start()` or `wait()`: `start()` resolves the `PollResult`, `wait()` the succeeded job (throws the poll's failure when the wait did not finish, a refused enqueue included, and `StorageJobError` when the job ended `error`), `subscribe` watches it, `stop` cancels it. A client `poller` takes one options object, `{ init, interval, … }`, where `init` is the job or the enqueue that yields it. The `branches` pair returns the same. `storage.poller` stays, as the one wait on a job the `*Poller` methods are built on, the same way `queue.poller` and `queryService.poller` are. `tableSnapshotDelete` and `devBranchMerge` join `JobOperation`, and the `aliasCreate` job's `results` is the alias `Table`, as the backend returns it.
|
|
51
|
+
- **Breaking:** `createStorageSdk` and `sdk.storage` are removed; they only wrapped the poller. Each method maps onto a client `*Poller` (`sdk.storage.createTableDefinition` → `storage.tables.createTableDefinitionPoller`, `sdk.storage.importFromFile` → `storage.tables.importPoller`, `sdk.storage.exportToFile` → `storage.tables.exportPoller`, `sdk.storage.createBucketListing` → `storage.bucketListings.createListingPoller`, and so on). Where the SDK threw, `.wait()` the `*Poller`.
|
|
52
|
+
- **Breaking:** the job-enqueueing methods without the `Async` suffix are renamed: `tables.deleteTableRows` → `tables.deleteTableRowsAsync`, `tables.updateTableDefinition` → `tables.updateTableDefinitionAsync`, `configurationWorkspaces.createConfigurationWorkspaceJob` → `configurationWorkspaces.createConfigurationWorkspaceAsync`, `mergeRequests.mergeMergeRequest` → `mergeRequests.mergeMergeRequestAsync`.
|
|
53
|
+
- **Breaking:** `createQueryServiceSdk().waitForJob` and `QueryJobTimeoutError` are removed. `queryService.poller` is the one wait on a query job; `executeQuery` is built on it, takes the poller's `QueryJobPollOptions` (`timeout` replaces `maxWaitTime`, with the same 5-minute default; the 500 ms interval stays) and throws the poll's failure when the wait did not finish.
|
|
54
|
+
- `queue.poller` and `queryService.poller` wait the same way, throwing `QueueJobError` / `QueryJobError` for a job that ended failed. A poller's `wait(onFailure)` now hands the mapper the error as its second argument.
|
|
55
|
+
- **Breaking:** `poller` and `poll` require `pollKey`, a key or a function of `init`, so every poll is named in the registry; `pollFn` and `until` no longer receive the key, `pollFn` reads `init`.
|
|
56
|
+
- **Breaking:** `poll()` is removed; `poller(options).start()` resolves the `PollResult` it did, `poller(options).wait()` what its `unwrap` did.
|
|
57
|
+
- `queue.poller` and `queryService.poller` retry a transient status read, a 5xx, 429 or network failure, up to five times in a row, as `storage.poller` does.
|
|
58
|
+
|
|
59
|
+
- Storage client types derive from Connection's OpenAPI spec (regenerated storage, management, oauth and kaiAgent schemas). Hand-rolled shapes remain only where the spec has a gap, each tracked on DMD-1942.
|
|
60
|
+
- **Breaking:** token, trigger and snapshot ids are numbers; callers pass `Number(id)`. `saveColumnMetadata` and `deleteColumnMetadata` take the spec's `id` (a string) instead of `columnId`.
|
|
61
|
+
- **Breaking:** `getMergeRequest({ id, include })` replaces `getMergeRequest(id)` and `getMergeRequestWithActivityLog(id)`; `getRunIdStats({ runId })`, `deleteScheduledTask({ taskId })` and the snapshot methods take the spec's parameter names (`id`, `snapshotId`).
|
|
62
|
+
- **Breaking:** `AdminRole` is the spec's enum and `admin.role` is nullable; `Workspace.name` is nullable and `deactivateAt` is always present.
|
|
63
|
+
- `include` / `exclude` query parameters type the result they are called with (`OpenapiIncludeQueryType`, `OpenapiExcludeQueryType`, `WithIncludes`, `WithExcludes`); buckets, tables, components, shared buckets, configuration versions, merge requests, search and stack info use them.
|
|
64
|
+
- api-fixtures bodies follow the regenerated types.
|
|
65
|
+
|
|
66
|
+
### Minor Changes
|
|
67
|
+
|
|
68
|
+
- Adds the `componentsMcp` service client (`api.componentsMcp`, `@keboola/api-client/componentsMcp`), resolved from the stack's `components-mcp` service index entry: `getConnectors` and `setConnectorCredentials` for Kai's connector credential form. Storage-token strategy only: the service does not accept `Authorization` yet.
|
|
69
|
+
|
|
70
|
+
- Adds `oauth.getOrganizationConnections()` (`GET /organization-credentials/connections`): the GitHub connections (`accountLogin`, `host`) of the project's organization, readable with any project member's Storage token. Exports the `OrganizationConnection` type from `@keboola/api-client/oauth/types`.
|
|
71
|
+
|
|
72
|
+
- Adds `onExpired` to `KeboolaOptions`: called once per sign-in when a live credential's refresh is refused and the stack signs out, never for a `signOut()` the caller made or a stored session a restore found dead. An app wires its leave-the-document reaction there instead of subscribing to the session table.
|
|
73
|
+
|
|
74
|
+
- `Workspace` carries `deleteAt`, the ISO 8601 timestamp when retention deletes a deactivated workspace (`null` or absent otherwise).
|
|
75
|
+
|
|
76
|
+
- Storage `bucketListings`: add `getListingSubscriptions({ branchId, bucketId })`, the consumers currently subscribing to a bucket exposure. It returns `null` when the bucket has no exposure. The method is declared by hand on the generic client until the route reaches the generated schema. The storage client also exports `StorageGenericFetchClient`.
|
|
77
|
+
|
|
78
|
+
- `management.storageBackends.getPolicyTagEnablementGuide` fetches the BigQuery policy-tag enablement guide (`GET /manage/storage-backend/{id}/policy-tags/enablement-guide`) as Markdown or Terraform. `resourceScopes` and `probeTags` go out as `resourceScopes[]` / `probeTags[]`. `StorageBackend` gains an optional `policyTagsEnabled`.
|
|
79
|
+
|
|
80
|
+
- Management `storageBackends`: the result of `createBigqueryStorageBackend` is exported as `StorageBackendBigquery`.
|
|
81
|
+
|
|
82
|
+
- Management `storageBackends`: `createBigqueryServerSideStorageBackend` (`POST /manage/storage-backend/bigquery/server-side`) with its `CreateBigqueryServerSideStorageBackendBody`; the BigQuery create/update results are typed `StorageBackendBigquery`, which gains an optional `isEnabled`.
|
|
83
|
+
|
|
84
|
+
### Patch Changes
|
|
85
|
+
|
|
86
|
+
- The Developer Portal client sends `@` and `+` in a path parameter unencoded, so inviting a developer, accepting an invitation and the email-keyed auth calls pass apps-api's email validation. apps-api does not decode path parameters, so `%40` failed with `Parameter email in uri must be valid email address`. The other clients keep `encodeURIComponent`.
|
|
87
|
+
|
|
3
88
|
## 46.0.0
|
|
4
89
|
|
|
5
90
|
### Major Changes
|