@keboola/api-client 51.0.0 → 53.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 +74 -9
- package/API-SURFACE.md +4 -10
- package/CHANGELOG.md +43 -0
- package/README.md +3 -3
- package/dist/{ManagementSessionMintError-DNMbYauw.js → ManagementSessionMintError-BMHDcEqV.js} +2 -2
- package/dist/{ManagementSessionMintError-DNMbYauw.js.map → ManagementSessionMintError-BMHDcEqV.js.map} +1 -1
- package/dist/{ManagementSessionMintError-ByOulHQH.cjs → ManagementSessionMintError-Bc9bc7Ai.cjs} +2 -2
- package/dist/{ManagementSessionMintError-ByOulHQH.cjs.map → ManagementSessionMintError-Bc9bc7Ai.cjs.map} +1 -1
- package/dist/RowLevelSecurityError-CObFqj3E.js +33 -0
- package/dist/RowLevelSecurityError-CObFqj3E.js.map +1 -0
- package/dist/RowLevelSecurityError-RK_NhhAx.cjs +56 -0
- package/dist/RowLevelSecurityError-RK_NhhAx.cjs.map +1 -0
- package/dist/{adminRoles-FFyl7Dyx.d.cts → adminRoles-BTKVwEy8.d.cts} +2 -2
- package/dist/{adminRoles-DAwl657q.d.ts → adminRoles-Cm513r1G.d.ts} +2 -2
- package/dist/ai/index.cjs +2 -2
- package/dist/ai/index.d.cts +2 -2
- package/dist/ai/index.d.ts +2 -2
- package/dist/ai/index.js +2 -2
- package/dist/ai/types.d.cts +1 -1
- package/dist/ai/types.d.ts +1 -1
- package/dist/apps/index.cjs +3 -234
- package/dist/apps/index.d.cts +3 -221
- package/dist/apps/index.d.ts +3 -221
- package/dist/apps/index.js +1 -234
- package/dist/apps/types.d.cts +1 -2
- package/dist/apps/types.d.ts +1 -2
- package/dist/apps-BN7fWtSm.js +361 -0
- package/dist/apps-BN7fWtSm.js.map +1 -0
- package/dist/apps-C1x5IKNQ.cjs +376 -0
- package/dist/apps-C1x5IKNQ.cjs.map +1 -0
- 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 +1 -1
- package/dist/auth/types.d.ts +1 -1
- package/dist/{auth-CvB4MukT.cjs → auth-AehUDNRK.cjs} +2 -2
- package/dist/{auth-CvB4MukT.cjs.map → auth-AehUDNRK.cjs.map} +1 -1
- package/dist/{auth-DYfQMQCs.js → auth-ZBQWCJPM.js} +2 -2
- package/dist/{auth-DYfQMQCs.js.map → auth-ZBQWCJPM.js.map} +1 -1
- package/dist/{authClient-oB5ydxWp.js → authClient-BM4L8XEN.js} +5 -5
- package/dist/{authClient-oB5ydxWp.js.map → authClient-BM4L8XEN.js.map} +1 -1
- package/dist/{authClient-DcKBpMcU.cjs → authClient-DspK50e7.cjs} +5 -5
- package/dist/{authClient-DcKBpMcU.cjs.map → authClient-DspK50e7.cjs.map} +1 -1
- package/dist/{authClient-Df3U4q_6.d.cts → authClient-NBi0pqD5.d.cts} +4 -4
- package/dist/{authClient-JtMVJWXY.d.ts → authClient-ij_Rm2Yn.d.ts} +4 -4
- 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/{componentId-b_qBbJEM.js → componentId-DZP1rBix.js} +54 -2
- package/dist/componentId-DZP1rBix.js.map +1 -0
- package/dist/{componentId-C8ZTXXDo.cjs → componentId-olp0tltf.cjs} +54 -2
- package/dist/componentId-olp0tltf.cjs.map +1 -0
- package/dist/componentsMcp/index.cjs +1 -1
- package/dist/componentsMcp/index.d.cts +1 -1
- package/dist/componentsMcp/index.d.ts +1 -1
- package/dist/componentsMcp/index.js +1 -1
- package/dist/componentsMcp/types.d.cts +1 -1
- package/dist/componentsMcp/types.d.ts +1 -1
- package/dist/{componentsMcp-BrB4js6b.js → componentsMcp-CAmrCpzV.js} +3 -3
- package/dist/{componentsMcp-BrB4js6b.js.map → componentsMcp-CAmrCpzV.js.map} +1 -1
- package/dist/{componentsMcp-BaHy5iLr.cjs → componentsMcp-DXu-0Qt-.cjs} +3 -3
- package/dist/{componentsMcp-BaHy5iLr.cjs.map → componentsMcp-DXu-0Qt-.cjs.map} +1 -1
- package/dist/constants/index.cjs +4 -3
- package/dist/constants/index.d.cts +3 -3
- package/dist/constants/index.d.ts +3 -3
- package/dist/constants/index.js +3 -2
- package/dist/{constants-BMSHGwOR.js → constants-DLPkpnGv.js} +5 -32
- package/dist/constants-DLPkpnGv.js.map +1 -0
- package/dist/{constants-DhFQWQgy.cjs → constants-Day8CU5i.cjs} +4 -37
- package/dist/constants-Day8CU5i.cjs.map +1 -0
- package/dist/{createFetchClient-DEkUH662.cjs → createFetchClient-CDKSkd7i.cjs} +19 -1
- package/dist/{createFetchClient-DlGCbltR.js.map → createFetchClient-CDKSkd7i.cjs.map} +1 -1
- package/dist/{createFetchClient-DlGCbltR.js → createFetchClient-Dc_ZMuq7.js} +8 -2
- package/dist/createFetchClient-Dc_ZMuq7.js.map +1 -0
- package/dist/{createGenericFetchClient-wGxemBwR.js → createGenericFetchClient-Ba4E4T-Y.js} +2 -2
- package/dist/{createGenericFetchClient-wGxemBwR.js.map → createGenericFetchClient-Ba4E4T-Y.js.map} +1 -1
- package/dist/{createGenericFetchClient-2oU-PXVo.cjs → createGenericFetchClient-BuYzzV_D.cjs} +2 -2
- package/dist/{createGenericFetchClient-2oU-PXVo.cjs.map → createGenericFetchClient-BuYzzV_D.cjs.map} +1 -1
- package/dist/{createOpenapiFetchClient-Bhz62MUE.js → createOpenapiFetchClient-DSk29o_s.js} +2 -2
- package/dist/{createOpenapiFetchClient-Bhz62MUE.js.map → createOpenapiFetchClient-DSk29o_s.js.map} +1 -1
- package/dist/{createOpenapiFetchClient-DL9w7vU-.cjs → createOpenapiFetchClient-dkssExkU.cjs} +2 -2
- package/dist/{createOpenapiFetchClient-DL9w7vU-.cjs.map → createOpenapiFetchClient-dkssExkU.cjs.map} +1 -1
- package/dist/dataScience/index.cjs +60 -4
- package/dist/dataScience/index.cjs.map +1 -0
- package/dist/dataScience/index.d.cts +105 -3
- package/dist/dataScience/index.d.ts +105 -3
- package/dist/dataScience/index.js +60 -3
- package/dist/dataScience/index.js.map +1 -0
- package/dist/dataScience/types.d.cts +2 -3
- package/dist/dataScience/types.d.ts +2 -3
- 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-BfRxYrWj.cjs → developerPortalClient-BcK9F-Fs.cjs} +3 -3
- package/dist/{developerPortalClient-BfRxYrWj.cjs.map → developerPortalClient-BcK9F-Fs.cjs.map} +1 -1
- package/dist/{developerPortalClient-D9XOYwWF.js → developerPortalClient-CzCJ5sE3.js} +3 -3
- package/dist/{developerPortalClient-D9XOYwWF.js.map → developerPortalClient-CzCJ5sE3.js.map} +1 -1
- package/dist/domain/permissions/index.d.cts +1 -1
- package/dist/domain/permissions/index.d.ts +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-CABlFMQX.cjs → import-DHq6q3Fm.cjs} +3 -3
- package/dist/{import-CABlFMQX.cjs.map → import-DHq6q3Fm.cjs.map} +1 -1
- package/dist/{import-CT1Ce5Rp.js → import-DxN6CJzJ.js} +3 -3
- package/dist/{import-CT1Ce5Rp.js.map → import-DxN6CJzJ.js.map} +1 -1
- package/dist/{index-xX8-Stoq.d.cts → index-8QhOqFLY.d.cts} +4 -4
- package/dist/{index-DIPMzH--.d.ts → index-B0prazAi.d.cts} +13 -4
- package/dist/index-B8K-Bbdq.d.cts +220 -0
- package/dist/{index-DQagqTVa.d.cts → index-BGE3eZfd.d.cts} +3 -3
- package/dist/{index-C1ndNdrN.d.cts → index-BL7uXOiY.d.cts} +3 -3
- package/dist/{index-DjSthn8d.d.ts → index-BNwo-zaJ.d.cts} +56 -2
- package/dist/{index-qJ2IjXIM.d.cts → index-BUKMdbKh.d.cts} +76 -151
- package/dist/{index-DVBQgFg0.d.ts → index-BVe4S2CK.d.ts} +4 -4
- package/dist/{index-CbSh3KFw.d.cts → index-BXgjPlZN.d.cts} +4 -4
- package/dist/{index-BfAcp7O2.d.ts → index-BoKrc8wy.d.ts} +3 -3
- package/dist/{index-BsT_cBJd.d.ts → index-BxgHNJ3Q.d.ts} +76 -151
- package/dist/{index-lTrNMlj6.d.ts → index-CEDjFidH.d.ts} +3 -3
- package/dist/{index-DgGpQsAT.d.cts → index-CNJBmCHM.d.cts} +4 -4
- package/dist/index-CQNwp6wX.d.ts +220 -0
- package/dist/{index-CuI8OI9E.d.ts → index-CZvBjQvl.d.ts} +4 -4
- package/dist/{index-Day1Yr5s.d.ts → index-CdeWTy8t.d.ts} +4 -4
- package/dist/{index-AA3MRfRn.d.cts → index-CwUurckF.d.ts} +56 -2
- package/dist/{index-Db266tLz.d.cts → index-D0Gnp2QM.d.ts} +13 -4
- package/dist/{index-m9-mN8Gg.d.ts → index-DLWMm1-T.d.ts} +4 -4
- package/dist/{index-BDPxm9qu.d.ts → index-DTGOEke4.d.ts} +3 -3
- package/dist/{index-D1mduJne.d.cts → index-FrsEkDvX.d.cts} +7 -2
- package/dist/{index-D1mduJne.d.ts → index-FrsEkDvX.d.ts} +7 -2
- package/dist/{index-xhzuWloV.d.cts → index-d9zxFmNI.d.cts} +4 -4
- package/dist/{index-z-2okomN.d.cts → index-iFCann29.d.cts} +3 -3
- package/dist/index.cjs +47 -40
- 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 +39 -34
- package/dist/index.js.map +1 -1
- package/dist/{isLoginPageRedirect-CoUxJi2x.cjs → isLoginPageRedirect-DUmsOC2o.cjs} +2 -2
- package/dist/{isLoginPageRedirect-CoUxJi2x.cjs.map → isLoginPageRedirect-DUmsOC2o.cjs.map} +1 -1
- package/dist/{isLoginPageRedirect-D-lqF_kZ.js → isLoginPageRedirect-lbeVmeB2.js} +2 -2
- package/dist/{isLoginPageRedirect-D-lqF_kZ.js.map → isLoginPageRedirect-lbeVmeB2.js.map} +1 -1
- package/dist/kaiAgent/index.cjs +1 -1
- package/dist/kaiAgent/index.d.cts +2 -2
- package/dist/kaiAgent/index.d.ts +2 -2
- 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-CYU1Uda8.js → kaiAgent-D0MoKqXe.js} +5 -5
- package/dist/{kaiAgent-CYU1Uda8.js.map → kaiAgent-D0MoKqXe.js.map} +1 -1
- package/dist/{kaiAgent-CDhg0MAw.cjs → kaiAgent-De2T6G4G.cjs} +5 -5
- package/dist/{kaiAgent-CDhg0MAw.cjs.map → kaiAgent-De2T6G4G.cjs.map} +1 -1
- package/dist/{kaiMemory-oir_qCo_.js → kaiMemory-B1wIwH8Y.js} +2 -2
- package/dist/{kaiMemory-oir_qCo_.js.map → kaiMemory-B1wIwH8Y.js.map} +1 -1
- package/dist/{kaiMemory-CkLQfJXD.cjs → kaiMemory-DZ6hXni_.cjs} +2 -2
- package/dist/{kaiMemory-CkLQfJXD.cjs.map → kaiMemory-DZ6hXni_.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-BcGHyxAP.js → management-CmgsWmf0.js} +20 -6
- package/dist/management-CmgsWmf0.js.map +1 -0
- package/dist/{management-BEGOEQxM.cjs → management-Drs5G-hf.cjs} +20 -6
- package/dist/management-Drs5G-hf.cjs.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-DeRQ2VIv.cjs → metastore-CV4DUDxP.cjs} +4 -4
- package/dist/{metastore-DeRQ2VIv.cjs.map → metastore-CV4DUDxP.cjs.map} +1 -1
- package/dist/{metastore-CGsgxjng.js → metastore-CkqFnEfu.js} +4 -4
- package/dist/{metastore-CGsgxjng.js.map → metastore-CkqFnEfu.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-8zaJWcyU.js → middleware-DxGv7DG8.js} +2 -2
- package/dist/{middleware-8zaJWcyU.js.map → middleware-DxGv7DG8.js.map} +1 -1
- package/dist/{middleware-B9RNuLfD.cjs → middleware-vIaPDtQI.cjs} +2 -2
- package/dist/{middleware-B9RNuLfD.cjs.map → middleware-vIaPDtQI.cjs.map} +1 -1
- 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 +2 -2
- package/dist/oauth/index.d.ts +2 -2
- package/dist/oauth/index.js +1 -1
- package/dist/oauth/types.d.cts +1 -1
- package/dist/oauth/types.d.ts +1 -1
- package/dist/{oauth-B5Biqz21.cjs → oauth-CSBChWuf.cjs} +5 -5
- package/dist/{oauth-B5Biqz21.cjs.map → oauth-CSBChWuf.cjs.map} +1 -1
- package/dist/{oauth-ByCdISsV.js → oauth-DOveZKUv.js} +5 -5
- package/dist/{oauth-ByCdISsV.js.map → oauth-DOveZKUv.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-UHZGFmmG.d.cts → project-BGk9CtOq.d.cts} +3 -3
- package/dist/{project-iBm4cIIR.d.ts → project-DS0HOV3M.d.ts} +3 -3
- package/dist/queryService/index.cjs +1 -1
- package/dist/queryService/index.d.cts +2 -2
- package/dist/queryService/index.d.ts +2 -2
- package/dist/queryService/index.js +1 -1
- package/dist/queryService/types.d.cts +1 -1
- package/dist/queryService/types.d.ts +1 -1
- package/dist/queryService-C3BQ6GKW.cjs +214 -0
- package/dist/queryService-C3BQ6GKW.cjs.map +1 -0
- package/dist/queryService-DQHtHy2-.js +209 -0
- package/dist/queryService-DQHtHy2-.js.map +1 -0
- package/dist/queue/index.cjs +1 -1
- package/dist/queue/index.d.cts +3 -3
- package/dist/queue/index.d.ts +3 -3
- 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-BiIs9fX4.js → queue-6cywDnA-.js} +5 -5
- package/dist/{queue-BiIs9fX4.js.map → queue-6cywDnA-.js.map} +1 -1
- package/dist/{queue-CBi9Q8vp.cjs → queue-J2uXzXR9.cjs} +5 -5
- package/dist/{queue-CBi9Q8vp.cjs.map → queue-J2uXzXR9.cjs.map} +1 -1
- package/dist/readJwtClaims-CMZ3cNC_.js +28 -0
- package/dist/readJwtClaims-CMZ3cNC_.js.map +1 -0
- package/dist/readJwtClaims-SVJgo04x.cjs +33 -0
- package/dist/readJwtClaims-SVJgo04x.cjs.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 +3 -3
- package/dist/sdk/configurations/index.cjs.map +1 -1
- package/dist/sdk/configurations/index.d.cts +4 -4
- package/dist/sdk/configurations/index.d.ts +4 -4
- package/dist/sdk/configurations/index.js +3 -3
- package/dist/sdk/configurations/index.js.map +1 -1
- package/dist/sdk/dataAppServer/index.cjs +266 -0
- package/dist/sdk/dataAppServer/index.cjs.map +1 -0
- package/dist/sdk/dataAppServer/index.d.cts +55 -0
- package/dist/sdk/dataAppServer/index.d.ts +55 -0
- package/dist/sdk/dataAppServer/index.js +264 -0
- package/dist/sdk/dataAppServer/index.js.map +1 -0
- package/dist/sdk/developerPortal/index.cjs +6 -18
- package/dist/sdk/developerPortal/index.cjs.map +1 -1
- package/dist/sdk/developerPortal/index.d.cts +3 -3
- package/dist/sdk/developerPortal/index.d.ts +3 -3
- package/dist/sdk/developerPortal/index.js +6 -18
- package/dist/sdk/developerPortal/index.js.map +1 -1
- 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.d.cts +1 -1
- package/dist/sdk/queryService/index.d.ts +1 -1
- package/dist/sdk/semanticLayer/index.cjs +1 -1
- package/dist/sdk/semanticLayer/index.d.cts +6 -1
- package/dist/sdk/semanticLayer/index.d.ts +6 -1
- package/dist/sdk/semanticLayer/index.js +1 -1
- package/dist/sdk/semanticLayer/types.d.cts +1 -1
- package/dist/sdk/semanticLayer/types.d.ts +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/{semanticLayer-BdPW_wLo.js → semanticLayer-CfjDnmsY.js} +16 -1
- package/dist/semanticLayer-CfjDnmsY.js.map +1 -0
- package/dist/{semanticLayer-djom-J78.cjs → semanticLayer-D8D_3hk-.cjs} +16 -1
- package/dist/semanticLayer-D8D_3hk-.cjs.map +1 -0
- package/dist/serviceIds-Bg1pWiPE.cjs +37 -0
- package/dist/serviceIds-Bg1pWiPE.cjs.map +1 -0
- package/dist/serviceIds-RAVtP4nK.js +32 -0
- package/dist/serviceIds-RAVtP4nK.js.map +1 -0
- 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 +9 -7
- package/dist/storage/index.d.cts +4 -4
- package/dist/storage/index.d.ts +4 -4
- package/dist/storage/index.js +6 -6
- package/dist/storage/types.d.cts +5 -5
- package/dist/storage/types.d.ts +5 -5
- package/dist/{storage-BpOLWT6h.js → storage--2FvvLAw.js} +7 -7
- package/dist/{storage-BpOLWT6h.js.map → storage--2FvvLAw.js.map} +1 -1
- package/dist/{storage-KJ5Ki_ma.cjs → storage-BMrYlyLB.cjs} +7 -7
- package/dist/{storage-KJ5Ki_ma.cjs.map → storage-BMrYlyLB.cjs.map} +1 -1
- 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-BcX3jm2E.cjs → syncActions-DToUhyP3.cjs} +6 -6
- package/dist/{syncActions-BcX3jm2E.cjs.map → syncActions-DToUhyP3.cjs.map} +1 -1
- package/dist/{syncActions-giPLTfje.js → syncActions-DV_aObTQ.js} +6 -6
- package/dist/{syncActions-giPLTfje.js.map → syncActions-DV_aObTQ.js.map} +1 -1
- package/dist/telemetry/index.cjs +3 -3
- package/dist/telemetry/index.d.cts +2 -2
- package/dist/telemetry/index.d.ts +2 -2
- package/dist/telemetry/index.js +3 -3
- package/dist/telemetry/types.d.cts +1 -1
- package/dist/telemetry/types.d.ts +1 -1
- package/dist/{transientRetries-BKqmb85B.js → transientRetries-BORv47mH.js} +2 -2
- package/dist/{transientRetries-BKqmb85B.js.map → transientRetries-BORv47mH.js.map} +1 -1
- package/dist/{transientRetries-CM7rAEXQ.cjs → transientRetries-CBorl4Ue.cjs} +2 -2
- package/dist/{transientRetries-CM7rAEXQ.cjs.map → transientRetries-CBorl4Ue.cjs.map} +1 -1
- package/dist/{types-BWMOK6eL.d.cts → types-B4Vwz45w.d.cts} +2 -2
- package/dist/{types-Dryq2GGE.d.cts → types-B4ezB18r.d.cts} +2 -2
- package/dist/{types-Bdl7EFMc.d.ts → types-B6JcEPEu.d.ts} +2 -2
- package/dist/{types-eFi8xJIM.d.cts → types-B6f6LpZ_.d.cts} +2 -2
- package/dist/{types-C9okze_R.d.ts → types-BD0B1KQ6.d.ts} +3 -26
- package/dist/{types-DeyXJzWz.d.cts → types-BEw98Dd2.d.cts} +2 -2
- package/dist/{types-1IBnjBVJ.d.cts → types-BVJmcoqA.d.cts} +2 -2
- package/dist/{types-B1qe1etN.d.cts → types-BljDxuWG.d.cts} +3 -3
- package/dist/{types-BiDdBXSm.d.ts → types-Bp8G9yta.d.ts} +2 -2
- package/dist/{types-PZzNANiS.d.cts → types-Bv2Ds1hL.d.cts} +2 -2
- package/dist/{types-D-tJt0hQ.d.cts → types-BynQKst1.d.cts} +2 -2
- package/dist/{types-BuclMPeY.d.cts → types-C5B3Pfob.d.cts} +2 -2
- package/dist/{types-DNgazFnF.d.cts → types-CIlBSV99.d.cts} +2 -2
- package/dist/{types-DschSZHf.d.cts → types-CKdNf_2k.d.cts} +3 -3
- package/dist/{types-Du5o-tud.d.ts → types-CQYyULrw.d.ts} +2 -2
- package/dist/{types-BrEVh0WE.d.cts → types-CRC4lbPw.d.cts} +8 -4
- package/dist/{types-CxEJ77m3.d.cts → types-CSE8bHiq.d.cts} +3 -3
- package/dist/{types-DRCttnIN.d.ts → types-CTYTMXXj.d.ts} +2 -2
- package/dist/{types-6T04_qUf.d.ts → types-CepTvkfm.d.ts} +2 -2
- package/dist/{types-DHMxPJZq.d.cts → types-Cf0WE6qK.d.cts} +2 -2
- package/dist/{types-DwbTiyhZ.d.cts → types-ChOJ-Az7.d.cts} +2 -2
- package/dist/{types-wYrC2boT.d.ts → types-Cr6WA6CN.d.ts} +2 -2
- package/dist/{types-B0e-no6u.d.ts → types-CsRfoHQw.d.cts} +192 -3
- package/dist/{types-D6lre27s.d.ts → types-CsVRsObb.d.ts} +2 -2
- package/dist/{types-CcGp6O3B.d.cts → types-D-ufoskb.d.cts} +2 -2
- package/dist/{types-LconaX98.d.cts → types-D2hhEGem.d.cts} +2 -2
- package/dist/{types-inG9y3dP.d.ts → types-D5bxXqEU.d.ts} +2 -2
- package/dist/{types-BE8abIig.d.cts → types-DKKHKj19.d.cts} +2 -2
- package/dist/{types-CPWjRdnj.d.cts → types-DNldEa7i.d.ts} +192 -3
- package/dist/{types-E8tzafsk.d.cts → types-DNwIMEuB.d.cts} +3 -26
- package/dist/{types-DtOfhDzz.d.ts → types-DSWIIMdv.d.ts} +3 -3
- package/dist/{types-Bat0SIZA.d.cts → types-DU8aPTFW.d.cts} +2 -2
- package/dist/{types-B8k1DqlU.d.ts → types-DX1Dz0xK.d.ts} +2 -2
- package/dist/{types-ZZwdKCBl.d.ts → types-DbthI3r-.d.ts} +2 -2
- package/dist/{types-B3ri-iiC.d.ts → types-DjSjUKUl.d.ts} +2 -2
- package/dist/{types-YpOm4yXE.d.cts → types-DjWubjvP.d.cts} +2 -2
- package/dist/{types-CRubbBcU.d.cts → types-Do3__S4Q.d.cts} +2 -2
- package/dist/{types-DKSUG2dZ.d.ts → types-DoSZQ1Bi.d.ts} +8 -4
- package/dist/{types-CWcdaq-K.d.ts → types-Dsf7CYmm.d.ts} +2 -2
- package/dist/{types--Rp5wvaz.d.ts → types-OHt0D_f2.d.ts} +2 -2
- package/dist/{types-Cr5lyI99.d.ts → types-Rrcx-8LM.d.ts} +2 -2
- package/dist/{types-DUpVIuk7.d.ts → types-Tg3euEN_.d.ts} +2 -2
- package/dist/{types-37vwxse4.d.cts → types-Y4e8GGa3.d.cts} +2 -2
- package/dist/{types-DJzTVMu1.d.ts → types-d5Bt8Mr3.d.ts} +2 -2
- package/dist/{types-jjOulnni.d.ts → types-dU3EA8gk.d.ts} +2 -2
- package/dist/{types-ir7T2a9a.d.ts → types-iU1Sc1IM.d.ts} +3 -3
- package/dist/{types-zPY-XGnM.d.ts → types-kGZQQcIK.d.ts} +2 -2
- package/dist/{types-xzt_2H63.d.ts → types-zlYUn0oi.d.ts} +3 -3
- package/dist/{validateConnectionStatus-DYwWeWVo.js → validateConnectionStatus-DV00sDmu.js} +3 -3
- package/dist/{validateConnectionStatus-DYwWeWVo.js.map → validateConnectionStatus-DV00sDmu.js.map} +1 -1
- package/dist/{validateConnectionStatus-BjemGI1e.cjs → validateConnectionStatus-ckaHcRx8.cjs} +3 -3
- package/dist/{validateConnectionStatus-BjemGI1e.cjs.map → validateConnectionStatus-ckaHcRx8.cjs.map} +1 -1
- package/dist/vault/index.cjs +4 -4
- package/dist/vault/index.d.cts +1 -1
- package/dist/vault/index.d.ts +1 -1
- package/dist/vault/index.js +4 -4
- package/dist/vault/types.d.cts +1 -1
- package/dist/vault/types.d.ts +1 -1
- package/package.json +15 -2
- package/surface/apps.md +3 -3
- package/surface/dataScience.md +2 -11
- package/surface/editor.md +5 -5
- package/surface/management.md +1 -0
- package/surface/queue.md +1 -1
- package/surface/sdk.md +2 -0
- package/dist/QueryJobError-Iq9O90Uh.js +0 -21
- package/dist/QueryJobError-Iq9O90Uh.js.map +0 -1
- package/dist/QueryJobError-Oy0fl4aw.cjs +0 -32
- package/dist/QueryJobError-Oy0fl4aw.cjs.map +0 -1
- package/dist/appLogs-CTvZAihm.d.ts +0 -8
- package/dist/appLogs-CnLNMH7M.d.cts +0 -8
- package/dist/appLogs-CoAWQGxs.cjs +0 -152
- package/dist/appLogs-CoAWQGxs.cjs.map +0 -1
- package/dist/appLogs-DFcPwVk8.js +0 -131
- package/dist/appLogs-DFcPwVk8.js.map +0 -1
- package/dist/apps/index.cjs.map +0 -1
- package/dist/apps/index.js.map +0 -1
- package/dist/componentId-C8ZTXXDo.cjs.map +0 -1
- package/dist/componentId-b_qBbJEM.js.map +0 -1
- package/dist/constants-BMSHGwOR.js.map +0 -1
- package/dist/constants-DhFQWQgy.cjs.map +0 -1
- package/dist/createFetchClient-DEkUH662.cjs.map +0 -1
- package/dist/dataScience-CXmkEOAi.js +0 -118
- package/dist/dataScience-CXmkEOAi.js.map +0 -1
- package/dist/dataScience-CufjHPSd.cjs +0 -123
- package/dist/dataScience-CufjHPSd.cjs.map +0 -1
- package/dist/index-BZDxWvZW.d.ts +0 -214
- package/dist/index-ClIV2Lch.d.cts +0 -214
- package/dist/management-BEGOEQxM.cjs.map +0 -1
- package/dist/management-BcGHyxAP.js.map +0 -1
- package/dist/queryService-Cg-eMysa.cjs +0 -126
- package/dist/queryService-Cg-eMysa.cjs.map +0 -1
- package/dist/queryService-x8kq8Z2-.js +0 -121
- package/dist/queryService-x8kq8Z2-.js.map +0 -1
- package/dist/semanticLayer-BdPW_wLo.js.map +0 -1
- package/dist/semanticLayer-djom-J78.cjs.map +0 -1
package/AGENTS.md
CHANGED
|
@@ -39,7 +39,7 @@ const { data } = useQuery({
|
|
|
39
39
|
**Scripts / CLIs / non-React.** Create one directly — pick the smallest that covers you:
|
|
40
40
|
|
|
41
41
|
- **`createStorageClient`** — Storage-only. Needs only `baseUrl` + `token`, skipping the stack-info round-trip. Start here when in doubt; upgrading later is mechanical, downgrading is not. (React apps still get their client via `ProjectApiProvider` + `useProjectApi()` — see above; this section is about the non-React/single-service case.)
|
|
42
|
-
- **`createLegacyKeboola` / `createKeboola`** — full SDK across all stack services. `createLegacyKeboola` returns `{ api, session }` and `createKeboola` returns `{ session, getStackApi, getProjectApi }`; drive the `session` to ready, then use the product surface. Bootstrap (`getStackInfo`, to discover services against the actual stack) runs while the storage build resolves, after which `api.stack` is synchronous. The verified token and the dev branches are the consumer's to fetch (`api.storage.tokens.verify()`, `api.storage.branches.getDevBranches()`) and derive with `createProject` / `
|
|
42
|
+
- **`createLegacyKeboola` / `createKeboola`** — full SDK across all stack services. `createLegacyKeboola` returns `{ api, session }` and `createKeboola` returns `{ session, getStackApi, getProjectApi }`; drive the `session` to ready, then use the product surface. Bootstrap (`getStackInfo`, to discover services against the actual stack) runs while the storage build resolves, after which `api.stack` is synchronous. The verified token and the dev branches are the consumer's to fetch (`api.storage.tokens.verify()`, `api.storage.branches.getDevBranches()`) and derive with `createProject` / `createBranchRefs` — kbc-ui holds them in TanStack queries (`useProject` reads the token). Every stack service — including `metastore` — is resolved from the stack's advertised service URLs. See the lifecycle section below for the per-flow `session` verbs. The token-less public clients `createAssetsClient` / `createStatusClient` are **not** part of this — import them directly from `@keboola/api-client/assets` and `@keboola/api-client/status`.
|
|
43
43
|
|
|
44
44
|
**`clients/` also holds clients for third-party APIs the platform talks to directly** (`microsoftGraph` today): a vendor API is still HTTP that must run through the shared fetch client, its middleware chain and its error guards, so it gets a client here rather than a hand-rolled `fetch` in the consuming app. They differ from stack clients in three ways, and a new one should follow the same rules: **never** registered in `createServiceClients.ts` (they are not stack services, so they must not appear on `api.*`), they default their own `baseUrl` (a vendor's host and version prefix are part of its API contract, not something we discover or configure), and they carry no `healthCheck` (we don't own the service's liveness). Consumers construct them directly from the sub-path, like the token-less clients above.
|
|
45
45
|
|
|
@@ -253,8 +253,73 @@ Import paths:
|
|
|
253
253
|
| `@keboola/api-client/sdk/tag` | Tag SDK (composes multiple clients) |
|
|
254
254
|
| `@keboola/api-client/sdk/developerPortal` | Developer Portal SDK (client + its session) |
|
|
255
255
|
| `@keboola/api-client/sdk/configurations` | Core configuration SDK |
|
|
256
|
+
| `@keboola/api-client/sdk/dataAppServer` | Data app server: Query Service per signed-in user (Node only) |
|
|
256
257
|
| `@keboola/api-client/domain/permissions` | Permission primitives |
|
|
257
258
|
|
|
259
|
+
### Query Service credentials
|
|
260
|
+
|
|
261
|
+
`createQueryServiceClient` takes `auth` as a credential or as a provider. It sends these headers:
|
|
262
|
+
|
|
263
|
+
| Credential | Headers sent |
|
|
264
|
+
| ------------------------------------------------- | ----------------------------------------------- |
|
|
265
|
+
| `{ type: 'sapi-token', token }` | `X-StorageApi-Token` |
|
|
266
|
+
| `{ type: 'bearer', token, projectId }` | `Authorization: Bearer …`, `X-KBC-ProjectId` |
|
|
267
|
+
| `{ type: 'app-user-token', token, storageToken }` | `X-Kbc-App-User-Token` and `X-StorageApi-Token` |
|
|
268
|
+
|
|
269
|
+
```ts
|
|
270
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
271
|
+
import { readFileSync } from 'node:fs';
|
|
272
|
+
|
|
273
|
+
// Static token
|
|
274
|
+
createQueryServiceClient({ baseUrl, auth: { type: 'sapi-token', token } });
|
|
275
|
+
|
|
276
|
+
// Rotating token: re-read the token file before every request
|
|
277
|
+
const storageToken = () => readFileSync(process.env.STORAGE_API_TOKEN_PATH!, 'utf8').trim();
|
|
278
|
+
createQueryServiceClient({ baseUrl, auth: { type: 'sapi-token', token: storageToken } });
|
|
279
|
+
|
|
280
|
+
// Request-scoped: the signed-in user when there is one, the app otherwise.
|
|
281
|
+
// A middleware runs each request inside `requestUser.run(req.get('X-Kbc-App-User-Token'), next)`.
|
|
282
|
+
const requestUser = new AsyncLocalStorage<string | undefined>();
|
|
283
|
+
createQueryServiceClient({
|
|
284
|
+
baseUrl,
|
|
285
|
+
auth: () => {
|
|
286
|
+
const userToken = requestUser.getStore();
|
|
287
|
+
return userToken
|
|
288
|
+
? { type: 'app-user-token', token: userToken, storageToken }
|
|
289
|
+
: { type: 'sapi-token', token: storageToken };
|
|
290
|
+
},
|
|
291
|
+
});
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
- Every token field is a value or a callback (`TokenSource`, sync or async). A provider (`QueryServiceCredentialProvider`) picks the credential. Both are resolved before every request, retries included.
|
|
295
|
+
- A provider for a client shared between users reads request-scoped state, such as an `AsyncLocalStorage`. A variable shared between requests sends one user's token with another user's submit, poll or results call.
|
|
296
|
+
- A provider or a token callback: every token is checked before each request (empty, spaces, non-ASCII → `ValidationError`, nothing sent), and so is a `bearer` project id. The request carries only that credential's headers; any other credential header is removed.
|
|
297
|
+
- A credential with only string tokens is sent as fixed default headers, as `createAuthHeaders` does; a header that a middleware sets still goes out. Its `app-user-token` tokens are checked when the client is created; `sapi-token` / `bearer` strings are not.
|
|
298
|
+
- Types: `QueryServiceCredential`, `QueryServiceCredentialProvider`, `AppUserTokenAuth`, `TokenSource` from `@keboola/api-client/queryService`. The app user token is a Query Service credential only, and it always travels with the app's Storage token.
|
|
299
|
+
- The app user token works on any workspace; row-level security is a separate matter (`RowLevelSecurityError`).
|
|
300
|
+
- `healthCheck` sends no credential. `middlewares` is optional here (default `[]`).
|
|
301
|
+
|
|
302
|
+
### Data app server (`sdk/dataAppServer`)
|
|
303
|
+
|
|
304
|
+
A data app's Node server uses `initializeApp` from `@keboola/api-client/sdk/dataAppServer` instead of wiring the provider above itself.
|
|
305
|
+
|
|
306
|
+
```ts
|
|
307
|
+
import { initializeApp } from '@keboola/api-client/sdk/dataAppServer';
|
|
308
|
+
|
|
309
|
+
const kbc = initializeApp();
|
|
310
|
+
app.use(kbc.server.expressMiddleware()); // first: keeps each request's signed-in user
|
|
311
|
+
app.get('/api/sales', async (_req, res) => {
|
|
312
|
+
res.json(
|
|
313
|
+
await kbc.workspace?.runQuery('SELECT region, SUM(amount) AS total FROM sales GROUP BY 1'),
|
|
314
|
+
);
|
|
315
|
+
});
|
|
316
|
+
app.use(kbc.server.expressErrorHandler()); // last: a row-level security refusal answers 403
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
- Node only: no other entry imports it (`__tests__/buildOutput.test.ts`), so browser bundles stay free of `node:` modules.
|
|
320
|
+
- Query inside a user request: elsewhere (startup, timers) only the app's Storage token goes out, which a governed workspace refuses.
|
|
321
|
+
- Key a server-side cache by `kbc.server.currentUserKey()`, never share one cached result between users.
|
|
322
|
+
|
|
258
323
|
## Consumption Hierarchy
|
|
259
324
|
|
|
260
325
|
When implementing an action that talks to a Keboola API, pick the highest layer that already covers it:
|
|
@@ -272,10 +337,10 @@ When a caller writes a component configuration on a user's behalf — an agent-g
|
|
|
272
337
|
2. **Encrypt** — hands every `#`-prefixed secret field to the encryption service (a remote call) and writes back the ciphertext, so a **plaintext secret is never sent to Storage**.
|
|
273
338
|
3. **Write** — only then calls Storage.
|
|
274
339
|
|
|
275
|
-
`createConfigurationSdk` (`@keboola/api-client/sdk/configurations`) takes the storage and encryption clients plus the project context the permission guard reads — the verified token as `createProject` builds it, and the
|
|
340
|
+
`createConfigurationSdk` (`@keboola/api-client/sdk/configurations`) takes the storage and encryption clients plus the project context the permission guard reads — the verified token as `createProject` builds it, and the branch refs as `createBranchRefs` builds them. It is not on `api.sdk`: the token is the consumer's to fetch.
|
|
276
341
|
|
|
277
342
|
```ts
|
|
278
|
-
import {
|
|
343
|
+
import { createBranchRefs, createLegacyKeboola, createProject } from '@keboola/api-client';
|
|
279
344
|
import { createConfigurationSdk } from '@keboola/api-client/sdk/configurations';
|
|
280
345
|
|
|
281
346
|
const { api, session } = createLegacyKeboola({ baseUrl });
|
|
@@ -289,7 +354,7 @@ const configuration = createConfigurationSdk({
|
|
|
289
354
|
encryptionClient: api.encryption,
|
|
290
355
|
context: {
|
|
291
356
|
project: createProject({ sapiToken: token }),
|
|
292
|
-
|
|
357
|
+
branchRefs: createBranchRefs({ devBranches }),
|
|
293
358
|
},
|
|
294
359
|
});
|
|
295
360
|
|
|
@@ -317,7 +382,7 @@ Two boundaries to know before relying on it:
|
|
|
317
382
|
```ts
|
|
318
383
|
// PREFERRED — tree-shakes correctly
|
|
319
384
|
import type { Table, Bucket } from '@keboola/api-client/storage/types';
|
|
320
|
-
import type {
|
|
385
|
+
import type { App } from '@keboola/api-client/apps/types';
|
|
321
386
|
|
|
322
387
|
// ACCEPTABLE for runtime values / error guards (no type-only equivalent)
|
|
323
388
|
import { isApiError, isAbortError, isFetchClientError } from '@keboola/api-client';
|
|
@@ -342,7 +407,7 @@ import { skipToken } from '@tanstack/react-query';
|
|
|
342
407
|
|
|
343
408
|
queryOptions({
|
|
344
409
|
queryKey: sandboxesApiKey.getSandbox(id ?? ''),
|
|
345
|
-
queryFn: !id ? skipToken : async ({ signal }) => api.dataScience.
|
|
410
|
+
queryFn: !id ? skipToken : async ({ signal }) => api.dataScience.getSandbox(id, signal),
|
|
346
411
|
});
|
|
347
412
|
```
|
|
348
413
|
|
|
@@ -394,9 +459,10 @@ Error classes the SDK can throw — branch on these instead of a catch-all `unkn
|
|
|
394
459
|
| `UserError` | `@keboola/api-client` | You want to surface `err.message` verbatim — already phrased for users |
|
|
395
460
|
| `ServiceUnavailableError` | `@keboola/api-client` | A namespace was accessed on a stack that doesn't host it — hide the feature |
|
|
396
461
|
| `ManagementClientAuthError` | `@keboola/api-client` | Session expired (management redirected to login) — global re-login UX |
|
|
462
|
+
| `RowLevelSecurityError` | `@keboola/api-client` | Row-level security refused the query for the caller — show "no access" |
|
|
397
463
|
| `PermissionDeniedError` | `@keboola/api-client/domain/permissions` | A client-side `assertCan*` refused before any HTTP round-trip |
|
|
398
464
|
|
|
399
|
-
There is **no** `ServerError` class — server-originated failures surface as `ApiError`; discriminate 5xx from 4xx via `err.response.status` inside `isApiError(err)`. `ManagementClientAuthError`
|
|
465
|
+
There is **no** `ServerError` class — server-originated failures surface as `ApiError`; discriminate 5xx from 4xx via `err.response.status` inside `isApiError(err)`. `ManagementClientAuthError` and `RowLevelSecurityError` extend `ApiError`, so check `isManagementClientAuthError` / `isRowLevelSecurityError` first.
|
|
400
466
|
|
|
401
467
|
Canonical try/catch — order guards most-specific first:
|
|
402
468
|
|
|
@@ -503,7 +569,7 @@ api.stream.* api.omnisearch.* api.apps.*
|
|
|
503
569
|
api.sdk.tag.* api.sdk.storage.*
|
|
504
570
|
```
|
|
505
571
|
|
|
506
|
-
`api.apps` is the data-apps `/v2` App Deployments surface (apps + deployments); `api.dataScience` is the same service's `/v1` surface, which
|
|
572
|
+
`api.apps` is the data-apps `/v2` App Deployments surface (apps + deployments); `api.dataScience` is the same service's `/v1` surface, which owns workspaces (`/sandboxes`, `/runtimes`, `keboola.sandboxes` apps) and what `/v2` lacks — the dev-mode preview link.
|
|
507
573
|
|
|
508
574
|
**`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:
|
|
509
575
|
|
|
@@ -676,7 +742,6 @@ const getBuckets = async <const I extends readonly BucketInclude[] = []>(
|
|
|
676
742
|
- **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.
|
|
677
743
|
- **`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.
|
|
678
744
|
- **Never** a `getXWithY` sibling method, a hand-typed `include?: 'foo'[]` without a map, or a conditional key made required on the base type.
|
|
679
|
-
- **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.
|
|
680
745
|
|
|
681
746
|
### A method that returns a job ends in `Async`
|
|
682
747
|
|
package/API-SURFACE.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Every namespace and method reachable from a ready `ProjectApi` — one project's api (`createKeboola(...).getProjectApi(id)` / `createLegacyKeboola(...).api`, or `useProjectApi()`). Generated from the TypeScript type checker — see `scripts/gen-surface.mjs`.
|
|
6
6
|
|
|
7
|
-
26 top-level namespaces,
|
|
7
|
+
26 top-level namespaces, 704 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
|
|
|
@@ -127,22 +127,13 @@ Every namespace and method reachable from a ready `ProjectApi` — one project's
|
|
|
127
127
|
|
|
128
128
|
## [`api.dataScience`](./surface/dataScience.md)
|
|
129
129
|
|
|
130
|
-
- `createApp`
|
|
131
130
|
- `createAppPreviewLink`
|
|
132
|
-
- `deleteApp`
|
|
133
131
|
- `deleteSandbox`
|
|
134
132
|
- `getApp`
|
|
135
|
-
- `getAppLogsDownload`
|
|
136
|
-
- `getAppLogsTail`
|
|
137
|
-
- `getAppPassword`
|
|
138
|
-
- `getAppRun`
|
|
139
|
-
- `getAppRuns`
|
|
140
133
|
- `getApps`
|
|
141
134
|
- `getRuntimes`
|
|
142
135
|
- `getSandbox`
|
|
143
136
|
- `healthCheck`
|
|
144
|
-
- `patchApp`
|
|
145
|
-
- `resetAppPassword`
|
|
146
137
|
|
|
147
138
|
## [`api.editor`](./surface/editor.md)
|
|
148
139
|
|
|
@@ -242,6 +233,7 @@ Every namespace and method reachable from a ready `ProjectApi` — one project's
|
|
|
242
233
|
- `fileStorage.createFileStorageGcs`
|
|
243
234
|
- `fileStorage.createFileStorageS3`
|
|
244
235
|
- `fileStorage.deleteFileStorage`
|
|
236
|
+
- `fileStorage.getFileStorageProjects`
|
|
245
237
|
- `fileStorage.getFileStoragesAbs`
|
|
246
238
|
- `fileStorage.getFileStoragesGcs`
|
|
247
239
|
- `fileStorage.getFileStoragesS3`
|
|
@@ -474,6 +466,8 @@ Every namespace and method reachable from a ready `ProjectApi` — one project's
|
|
|
474
466
|
- `semanticLayer.deleteObject`
|
|
475
467
|
- `semanticLayer.findObjectsByName`
|
|
476
468
|
- `semanticLayer.getModel`
|
|
469
|
+
- `semanticLayer.listAllObjects`
|
|
470
|
+
- `semanticLayer.listAllObjectsWithUnreadable`
|
|
477
471
|
- `semanticLayer.listModelChildren`
|
|
478
472
|
- `semanticLayer.listModels`
|
|
479
473
|
- `semanticLayer.listMyPendingScopeElevationRequests`
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,48 @@
|
|
|
1
1
|
# @keboola/api-client
|
|
2
2
|
|
|
3
|
+
## 53.0.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- `@keboola/api-client/sdk/dataAppServer` sets up a data app's Node server: `initializeApp()` reads what the platform provides, sends each request's signed-in user to Query Service with the app's Storage token, and gives `workspace.runQuery(sql)` (typed records), Express middleware and an error handler that answers a row-level security refusal with 403, and `server.currentUser()` / `currentUserKey()` for per-user caches.
|
|
8
|
+
|
|
9
|
+
- `sdk.semanticLayer.listAllObjects(objectType)` lists every object of one child type the project can read, across all models, in one request.
|
|
10
|
+
|
|
11
|
+
- `ComponentId` in `constants` names every component the apps refer to by id: it gains the transformations, the processors, the platform components (`FLOW`, `ORCHESTRATOR`, `STORAGE`, `VARIABLES`, …) and the remaining extractors and writers kbc-ui named in its own constants
|
|
12
|
+
|
|
13
|
+
- `ProjectFeature.RowLevelSecurity` names the `row-level-security` project feature. In projects with it, a data app's advanced settings turn row-level security on with the RLS policies it should run under.
|
|
14
|
+
|
|
15
|
+
- `management.fileStorage.getFileStorageProjects` pages through the projects that use a file storage of any provider, cursor-paginated via `page[limit]` / `page[after]`. New types: `FileStorageProjectsQuery`, `FileStorageProjectsPage`, `FileStorageProject`.
|
|
16
|
+
|
|
17
|
+
- `semanticLayer.listAllObjectsWithUnreadable` lists one child object type across every model, with a ref for each object that does not parse, so a summary can say what it couldn't read (AI-3703)
|
|
18
|
+
|
|
19
|
+
## 52.0.0
|
|
20
|
+
|
|
21
|
+
### Major Changes
|
|
22
|
+
|
|
23
|
+
- `api.dataScience` keeps only what the `/v2` App Deployments API (`api.apps`) does not cover: workspace apps (`getApp`, `getApps`), `createAppPreviewLink`, runtimes and sandboxes.
|
|
24
|
+
- **Breaking:** `api.dataScience.createApp`, `patchApp`, `deleteApp`, `getAppPassword`, `resetAppPassword`, `getAppRuns`, `getAppRun`, `getAppLogsTail` and `getAppLogsDownload` are gone — `api.apps` has each of them.
|
|
25
|
+
- **Breaking:** `@keboola/api-client/dataScience/types` no longer exports `CreateDataAppBody`, `DeleteDataAppPath`, `PatchDataAppPath`, `PatchDataAppBody`, `GetDataAppPasswordPath`, `ResetDataAppPasswordPath`, `GetDataAppRunsPath`, `GetDataAppRunsQuery`, `GetDataAppRunPath`, `RawAppRun`, `DataAppRun`, `GetDataAppLogsDownloadPath`, `GetDataAppLogsTailPath`, `GetDataAppLogsTailQuery` or `LogEntry`; `LogEntry` comes from `@keboola/api-client/apps/types`.
|
|
26
|
+
- **Breaking:** `parseLogLines` is exported from `@keboola/api-client/apps` (and the package root), no longer from `@keboola/api-client/dataScience`.
|
|
27
|
+
|
|
28
|
+
- `createDefaultBranch` is now `createBranchRefs`: it reads a branch ref — the `default` alias or a branch id — against the project's default branch.
|
|
29
|
+
- **Breaking:** `createDefaultBranch` and the `DefaultBranch` type are renamed `createBranchRefs` and `BranchRefs`; `id` and `name` are now `defaultId` and `defaultName`.
|
|
30
|
+
- **Breaking:** `createConfigurationSdk`'s `context.defaultBranch` is now `context.branchRefs`.
|
|
31
|
+
- `resolve(ref)` gives the id a ref points to: `default`, or no ref, is the default branch; an id is itself.
|
|
32
|
+
|
|
33
|
+
### Minor Changes
|
|
34
|
+
|
|
35
|
+
- `ProjectFeature.DataAppsDisabled` (`data-apps-disabled`): the project feature under which no app can be created.
|
|
36
|
+
|
|
37
|
+
- `createQueryServiceClient` takes `auth` as a credential or as a provider (`QueryServiceCredentialProvider`, from `@keboola/api-client/queryService`), and accepts the new `{ type: 'app-user-token', token, storageToken }` credential, which sends `X-Kbc-App-User-Token` together with the app's `X-StorageApi-Token`. Every token field is a value or a callback (`TokenSource`), so a rotating token is read again before every request and retry; each resolved token is checked before sending. A request carries exactly the chosen credential's headers; credentials with only string tokens are sent as fixed headers, exactly as before; `middlewares` is optional for this client. Independently, a Query Service row-level security refusal now rejects with `RowLevelSecurityError` (extends `ApiError`, guard `isRowLevelSecurityError`), and `X-Kbc-App-User-Token` is redacted from errors and logs like the other credential headers (AJDA-3620)
|
|
38
|
+
|
|
39
|
+
- `StorageBackend` carries the optional `policyTagCapability` (`PolicyTagCapability`) of a BigQuery backend detail: the stored policy-tag state, coordinates and last verification, or `null` when never configured.
|
|
40
|
+
|
|
41
|
+
### Patch Changes
|
|
42
|
+
|
|
43
|
+
- A fixed `{ type: 'app-user-token', token, storageToken }` credential with an empty or malformed token makes `createQueryServiceClient` throw `ValidationError`, as the same credential from a provider already does before each request (AJDA-3620)
|
|
44
|
+
- `sapi-token` / `bearer` strings in a fixed credential are still sent unchecked.
|
|
45
|
+
|
|
3
46
|
## 51.0.0
|
|
4
47
|
|
|
5
48
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -171,7 +171,7 @@ src/
|
|
|
171
171
|
storage/ # Storage API (buckets, tables, files, branches, ...)
|
|
172
172
|
management/ # Management API (projects, features, users)
|
|
173
173
|
vault/ # Vault secrets
|
|
174
|
-
dataScience/ #
|
|
174
|
+
dataScience/ # Workspace apps, sandboxes, runtimes, preview links
|
|
175
175
|
editor/ # SQL sessions, queries
|
|
176
176
|
encryption/ # Value/secret encryption
|
|
177
177
|
oauth/ # OAuth credentials
|
|
@@ -219,7 +219,7 @@ Clients backed by OpenAPI specs are marked with (OpenAPI); the rest use the gene
|
|
|
219
219
|
| `api.management` | Management API | `projects.*`, `features.*`, `users.*` |
|
|
220
220
|
| `api.vault` | Vault (OpenAPI) | `getVariables()`, `createVariable()`, `deleteVariable()`, `getVariablesByBranchId()`, `getProjectWideVariables()` |
|
|
221
221
|
| `api.oauth` | OAuth | `getCredentials()`, `getCredential()`, `createCredential()`, `deleteCredential()` |
|
|
222
|
-
| `api.dataScience` | Data Science (OpenAPI) | `getApps()`, `getApp()`, `
|
|
222
|
+
| `api.dataScience` | Data Science (OpenAPI) | `getApps()`, `getApp()`, `createAppPreviewLink()`, `getRuntimes()`, `getSandbox()`, `deleteSandbox()` |
|
|
223
223
|
| `api.editor` | SQL Editor (OpenAPI) | `createSession()`, `getSession()`, `getSessions()`, `getSessionSchema()`, `createQueryJob()`, `tablePreview()`, `tableDefinition()`, `load()`, `unload()` |
|
|
224
224
|
| `api.encryption` | Encryption | `encrypt()`, `encryptSecrets()` |
|
|
225
225
|
| `api.chat` | Kai Assistant (OpenAPI) | `getHistory()`, `getChat()`, `createChat()`, `deleteChat()`, `getVotes()`, `submitVote()`, `getUsage()`, `getSuggestions()`, `getAgentSettings()`, `getToolsList()` |
|
|
@@ -510,7 +510,7 @@ Tests are co-located `*.test.ts` files run by Vitest. There are two complementar
|
|
|
510
510
|
|
|
511
511
|
- **Injected `fetchFn` (`createFetchClient({ fetchFn: vi.fn() })`)** — for pure transport/composition tests where you assert on the `Request` object itself or on middleware ordering, and standing up MSW handlers adds no value. Reference tests: `fetchClient/createFetchClient/createFetchClient.test.ts`, `fetchClient/createFetchClient/middlewareOrdering.test.ts`, `clients/storage/storageTokenMiddleware.test.ts`.
|
|
512
512
|
|
|
513
|
-
- **`expectTypeOf` type tests** —
|
|
513
|
+
- **`expectTypeOf` type tests** — only for a computed type rule every generated client depends on, never to restate a return shape; enforced by `tsc` (the `type-check` task), not the runtime. Reference: `fetchClient/types.test.ts`.
|
|
514
514
|
|
|
515
515
|
Publish-time export-shape validation stays in `build:check` via `attw` — orthogonal to the above.
|
|
516
516
|
|
package/dist/{ManagementSessionMintError-DNMbYauw.js → ManagementSessionMintError-BMHDcEqV.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as ApiError } from "./createFetchClient-
|
|
1
|
+
import { p as ApiError } from "./createFetchClient-Dc_ZMuq7.js";
|
|
2
2
|
// src/errors/ManagementClientAuthError.ts
|
|
3
3
|
var ManagementClientAuthError = class extends ApiError {
|
|
4
4
|
title;
|
|
@@ -31,4 +31,4 @@ var ManagementSessionMintError = class extends ManagementClientAuthError {
|
|
|
31
31
|
};
|
|
32
32
|
export { ManagementClientAuthError as n, ManagementSessionMintError as t };
|
|
33
33
|
|
|
34
|
-
//# sourceMappingURL=ManagementSessionMintError-
|
|
34
|
+
//# sourceMappingURL=ManagementSessionMintError-BMHDcEqV.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManagementSessionMintError-
|
|
1
|
+
{"version":3,"file":"ManagementSessionMintError-BMHDcEqV.js","names":[],"sources":["../src/errors/ManagementClientAuthError.ts","../src/errors/ManagementSessionMintError.ts"],"sourcesContent":["import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nimport { ApiError } from './ApiError';\n\nexport class ManagementClientAuthError extends ApiError {\n title: string;\n message: string;\n constructor(title: string, message: string, res: ApiResponse) {\n super(res);\n this.name = 'ManagementClientAuthError';\n this.title = title;\n this.message = message;\n }\n}\n","import { ManagementClientAuthError } from './ManagementClientAuthError';\n\n/**\n * The Manage client has no credential of its own and could not mint a session token from the\n * login cookie.\n *\n * - Only the legacy (SAPI) entry point mints; a bearer client never raises it.\n * - The login page in place of the token: the session expired, or there is no cookie (off the\n * stack host).\n */\nexport class ManagementSessionMintError extends ManagementClientAuthError {\n constructor({ title, message, response, request, data }: ManagementClientAuthError) {\n super(title, message, { response, request, data });\n this.name = 'ManagementSessionMintError';\n }\n}\n"],"mappings":";;AAIA,IAAa,4BAAb,cAA+C,SAAS;CACtD;CACA;CACA,YAAY,OAAe,SAAiB,KAAkB;EAC5D,MAAM,GAAG;EACT,KAAK,OAAO;EACZ,KAAK,QAAQ;EACb,KAAK,UAAU;CACjB;AACF;;;;;;;;;;ACHA,IAAa,6BAAb,cAAgD,0BAA0B;CACxE,YAAY,EAAE,OAAO,SAAS,UAAU,SAAS,QAAmC;EAClF,MAAM,OAAO,SAAS;GAAE;GAAU;GAAS;EAAK,CAAC;EACjD,KAAK,OAAO;CACd;AACF"}
|
package/dist/{ManagementSessionMintError-ByOulHQH.cjs → ManagementSessionMintError-Bc9bc7Ai.cjs}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_createFetchClient = require("./createFetchClient-
|
|
1
|
+
const require_createFetchClient = require("./createFetchClient-CDKSkd7i.cjs");
|
|
2
2
|
// src/errors/ManagementClientAuthError.ts
|
|
3
3
|
var ManagementClientAuthError = class extends require_createFetchClient.ApiError {
|
|
4
4
|
title;
|
|
@@ -42,4 +42,4 @@ Object.defineProperty(exports, "ManagementSessionMintError", {
|
|
|
42
42
|
}
|
|
43
43
|
});
|
|
44
44
|
|
|
45
|
-
//# sourceMappingURL=ManagementSessionMintError-
|
|
45
|
+
//# sourceMappingURL=ManagementSessionMintError-Bc9bc7Ai.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManagementSessionMintError-
|
|
1
|
+
{"version":3,"file":"ManagementSessionMintError-Bc9bc7Ai.cjs","names":["ApiError"],"sources":["../src/errors/ManagementClientAuthError.ts","../src/errors/ManagementSessionMintError.ts"],"sourcesContent":["import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nimport { ApiError } from './ApiError';\n\nexport class ManagementClientAuthError extends ApiError {\n title: string;\n message: string;\n constructor(title: string, message: string, res: ApiResponse) {\n super(res);\n this.name = 'ManagementClientAuthError';\n this.title = title;\n this.message = message;\n }\n}\n","import { ManagementClientAuthError } from './ManagementClientAuthError';\n\n/**\n * The Manage client has no credential of its own and could not mint a session token from the\n * login cookie.\n *\n * - Only the legacy (SAPI) entry point mints; a bearer client never raises it.\n * - The login page in place of the token: the session expired, or there is no cookie (off the\n * stack host).\n */\nexport class ManagementSessionMintError extends ManagementClientAuthError {\n constructor({ title, message, response, request, data }: ManagementClientAuthError) {\n super(title, message, { response, request, data });\n this.name = 'ManagementSessionMintError';\n }\n}\n"],"mappings":";;AAIA,IAAa,4BAAb,cAA+CA,0BAAAA,SAAS;CACtD;CACA;CACA,YAAY,OAAe,SAAiB,KAAkB;EAC5D,MAAM,GAAG;EACT,KAAK,OAAO;EACZ,KAAK,QAAQ;EACb,KAAK,UAAU;CACjB;AACF;;;;;;;;;;ACHA,IAAa,6BAAb,cAAgD,0BAA0B;CACxE,YAAY,EAAE,OAAO,SAAS,UAAU,SAAS,QAAmC;EAClF,MAAM,OAAO,SAAS;GAAE;GAAU;GAAS;EAAK,CAAC;EACjD,KAAK,OAAO;CACd;AACF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { p as ApiError } from "./createFetchClient-Dc_ZMuq7.js";
|
|
2
|
+
// src/errors/QueryJobError.ts
|
|
3
|
+
/**
|
|
4
|
+
* A query job that reached the API's terminal `failed` state — the submit/poll round-trip
|
|
5
|
+
* succeeded, the job itself did not. Distinct from {@link ApiError}, which is an HTTP-level failure
|
|
6
|
+
* of the submit/poll/results requests themselves.
|
|
7
|
+
*/
|
|
8
|
+
var QueryJobError = class QueryJobError extends Error {
|
|
9
|
+
queryJobId;
|
|
10
|
+
failedStatements;
|
|
11
|
+
constructor(message, queryJobId, { failedStatements }) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.name = "QueryJobError";
|
|
14
|
+
this.queryJobId = queryJobId;
|
|
15
|
+
this.failedStatements = failedStatements;
|
|
16
|
+
Object.setPrototypeOf(this, QueryJobError.prototype);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const isQueryJobError = (error) => error instanceof QueryJobError;
|
|
20
|
+
// src/errors/RowLevelSecurityError.ts
|
|
21
|
+
const exceptionOf = (data) => typeof data === "object" && data !== null && "exception" in data && typeof data.exception === "string" ? data.exception : void 0;
|
|
22
|
+
/** Query Service refused a query on a governed workspace for the identity it was sent with. */
|
|
23
|
+
var RowLevelSecurityError = class extends ApiError {
|
|
24
|
+
constructor(res) {
|
|
25
|
+
super(res);
|
|
26
|
+
this.name = "RowLevelSecurityError";
|
|
27
|
+
this.message = exceptionOf(res.data) ?? this.message;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const isRowLevelSecurityError = (error) => error instanceof RowLevelSecurityError;
|
|
31
|
+
export { isQueryJobError as i, isRowLevelSecurityError as n, QueryJobError as r, RowLevelSecurityError as t };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=RowLevelSecurityError-CObFqj3E.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RowLevelSecurityError-CObFqj3E.js","names":[],"sources":["../src/errors/QueryJobError.ts","../src/errors/RowLevelSecurityError.ts"],"sourcesContent":["type FailedStatement = {\n id: string;\n error?: string;\n};\n\ntype QueryJobErrorOptions = {\n failedStatements: FailedStatement[];\n};\n\n/**\n * A query job that reached the API's terminal `failed` state — the submit/poll round-trip\n * succeeded, the job itself did not. Distinct from {@link ApiError}, which is an HTTP-level failure\n * of the submit/poll/results requests themselves.\n */\nexport class QueryJobError extends Error {\n queryJobId: string;\n failedStatements: FailedStatement[];\n\n constructor(message: string, queryJobId: string, { failedStatements }: QueryJobErrorOptions) {\n super(message);\n this.name = 'QueryJobError';\n this.queryJobId = queryJobId;\n this.failedStatements = failedStatements;\n Object.setPrototypeOf(this, QueryJobError.prototype);\n }\n}\n\nexport const isQueryJobError = (error: unknown): error is QueryJobError =>\n error instanceof QueryJobError;\n","import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nimport { ApiError } from './ApiError';\n\nconst exceptionOf = (data: unknown) =>\n typeof data === 'object' &&\n data !== null &&\n 'exception' in data &&\n typeof data.exception === 'string'\n ? data.exception\n : undefined;\n\n/** Query Service refused a query on a governed workspace for the identity it was sent with. */\nexport class RowLevelSecurityError extends ApiError {\n constructor(res: ApiResponse) {\n super(res);\n this.name = 'RowLevelSecurityError';\n this.message = exceptionOf(res.data) ?? this.message;\n }\n}\n\nexport const isRowLevelSecurityError = (error: unknown): error is RowLevelSecurityError =>\n error instanceof RowLevelSecurityError;\n"],"mappings":";;;;;;;AAcA,IAAa,gBAAb,MAAa,sBAAsB,MAAM;CACvC;CACA;CAEA,YAAY,SAAiB,YAAoB,EAAE,oBAA0C;EAC3F,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,aAAa;EAClB,KAAK,mBAAmB;EACxB,OAAO,eAAe,MAAM,cAAc,SAAS;CACrD;AACF;AAEA,MAAa,mBAAmB,UAC9B,iBAAiB;;ACxBnB,MAAM,eAAe,SACnB,OAAO,SAAS,YAChB,SAAS,QACT,eAAe,QACf,OAAO,KAAK,cAAc,WACtB,KAAK,YACL,KAAA;;AAGN,IAAa,wBAAb,cAA2C,SAAS;CAClD,YAAY,KAAkB;EAC5B,MAAM,GAAG;EACT,KAAK,OAAO;EACZ,KAAK,UAAU,YAAY,IAAI,IAAI,KAAK,KAAK;CAC/C;AACF;AAEA,MAAa,2BAA2B,UACtC,iBAAiB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
const require_createFetchClient = require("./createFetchClient-CDKSkd7i.cjs");
|
|
2
|
+
// src/errors/QueryJobError.ts
|
|
3
|
+
/**
|
|
4
|
+
* A query job that reached the API's terminal `failed` state — the submit/poll round-trip
|
|
5
|
+
* succeeded, the job itself did not. Distinct from {@link ApiError}, which is an HTTP-level failure
|
|
6
|
+
* of the submit/poll/results requests themselves.
|
|
7
|
+
*/
|
|
8
|
+
var QueryJobError = class QueryJobError extends Error {
|
|
9
|
+
queryJobId;
|
|
10
|
+
failedStatements;
|
|
11
|
+
constructor(message, queryJobId, { failedStatements }) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.name = "QueryJobError";
|
|
14
|
+
this.queryJobId = queryJobId;
|
|
15
|
+
this.failedStatements = failedStatements;
|
|
16
|
+
Object.setPrototypeOf(this, QueryJobError.prototype);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const isQueryJobError = (error) => error instanceof QueryJobError;
|
|
20
|
+
// src/errors/RowLevelSecurityError.ts
|
|
21
|
+
const exceptionOf = (data) => typeof data === "object" && data !== null && "exception" in data && typeof data.exception === "string" ? data.exception : void 0;
|
|
22
|
+
/** Query Service refused a query on a governed workspace for the identity it was sent with. */
|
|
23
|
+
var RowLevelSecurityError = class extends require_createFetchClient.ApiError {
|
|
24
|
+
constructor(res) {
|
|
25
|
+
super(res);
|
|
26
|
+
this.name = "RowLevelSecurityError";
|
|
27
|
+
this.message = exceptionOf(res.data) ?? this.message;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
const isRowLevelSecurityError = (error) => error instanceof RowLevelSecurityError;
|
|
31
|
+
Object.defineProperty(exports, "QueryJobError", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function() {
|
|
34
|
+
return QueryJobError;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
Object.defineProperty(exports, "RowLevelSecurityError", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
get: function() {
|
|
40
|
+
return RowLevelSecurityError;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(exports, "isQueryJobError", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function() {
|
|
46
|
+
return isQueryJobError;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
Object.defineProperty(exports, "isRowLevelSecurityError", {
|
|
50
|
+
enumerable: true,
|
|
51
|
+
get: function() {
|
|
52
|
+
return isRowLevelSecurityError;
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=RowLevelSecurityError-RK_NhhAx.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RowLevelSecurityError-RK_NhhAx.cjs","names":["ApiError"],"sources":["../src/errors/QueryJobError.ts","../src/errors/RowLevelSecurityError.ts"],"sourcesContent":["type FailedStatement = {\n id: string;\n error?: string;\n};\n\ntype QueryJobErrorOptions = {\n failedStatements: FailedStatement[];\n};\n\n/**\n * A query job that reached the API's terminal `failed` state — the submit/poll round-trip\n * succeeded, the job itself did not. Distinct from {@link ApiError}, which is an HTTP-level failure\n * of the submit/poll/results requests themselves.\n */\nexport class QueryJobError extends Error {\n queryJobId: string;\n failedStatements: FailedStatement[];\n\n constructor(message: string, queryJobId: string, { failedStatements }: QueryJobErrorOptions) {\n super(message);\n this.name = 'QueryJobError';\n this.queryJobId = queryJobId;\n this.failedStatements = failedStatements;\n Object.setPrototypeOf(this, QueryJobError.prototype);\n }\n}\n\nexport const isQueryJobError = (error: unknown): error is QueryJobError =>\n error instanceof QueryJobError;\n","import type { ApiResponse } from '../fetchClient/createFetchClient/types';\n\nimport { ApiError } from './ApiError';\n\nconst exceptionOf = (data: unknown) =>\n typeof data === 'object' &&\n data !== null &&\n 'exception' in data &&\n typeof data.exception === 'string'\n ? data.exception\n : undefined;\n\n/** Query Service refused a query on a governed workspace for the identity it was sent with. */\nexport class RowLevelSecurityError extends ApiError {\n constructor(res: ApiResponse) {\n super(res);\n this.name = 'RowLevelSecurityError';\n this.message = exceptionOf(res.data) ?? this.message;\n }\n}\n\nexport const isRowLevelSecurityError = (error: unknown): error is RowLevelSecurityError =>\n error instanceof RowLevelSecurityError;\n"],"mappings":";;;;;;;AAcA,IAAa,gBAAb,MAAa,sBAAsB,MAAM;CACvC;CACA;CAEA,YAAY,SAAiB,YAAoB,EAAE,oBAA0C;EAC3F,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,aAAa;EAClB,KAAK,mBAAmB;EACxB,OAAO,eAAe,MAAM,cAAc,SAAS;CACrD;AACF;AAEA,MAAa,mBAAmB,UAC9B,iBAAiB;;ACxBnB,MAAM,eAAe,SACnB,OAAO,SAAS,YAChB,SAAS,QACT,eAAe,QACf,OAAO,KAAK,cAAc,WACtB,KAAK,YACL,KAAA;;AAGN,IAAa,wBAAb,cAA2CA,0BAAAA,SAAS;CAClD,YAAY,KAAkB;EAC5B,MAAM,GAAG;EACT,KAAK,OAAO;EACZ,KAAK,UAAU,YAAY,IAAI,IAAI,KAAK,KAAK;CAC/C;AACF;AAEA,MAAa,2BAA2B,UACtC,iBAAiB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Lr as paths, l as OpenapiReturnType } from "./index-
|
|
1
|
+
import { Lr as paths, l as OpenapiReturnType } from "./index-FrsEkDvX.cjs";
|
|
2
2
|
type SpecAdminRole = NonNullable<NonNullable<OpenapiReturnType<paths['/v2/storage/tokens/verify']['get']>['admin']>['role']>;
|
|
3
3
|
declare const AdminRole: {
|
|
4
4
|
readonly Admin: 'admin';
|
|
@@ -11,4 +11,4 @@ declare const AdminRole: {
|
|
|
11
11
|
};
|
|
12
12
|
type AdminRole = SpecAdminRole;
|
|
13
13
|
export { AdminRole as t };
|
|
14
|
-
//# sourceMappingURL=adminRoles-
|
|
14
|
+
//# sourceMappingURL=adminRoles-BTKVwEy8.d.cts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Lr as paths, l as OpenapiReturnType } from "./index-
|
|
1
|
+
import { Lr as paths, l as OpenapiReturnType } from "./index-FrsEkDvX.js";
|
|
2
2
|
type SpecAdminRole = NonNullable<NonNullable<OpenapiReturnType<paths['/v2/storage/tokens/verify']['get']>['admin']>['role']>;
|
|
3
3
|
declare const AdminRole: {
|
|
4
4
|
readonly Admin: 'admin';
|
|
@@ -11,4 +11,4 @@ declare const AdminRole: {
|
|
|
11
11
|
};
|
|
12
12
|
type AdminRole = SpecAdminRole;
|
|
13
13
|
export { AdminRole as t };
|
|
14
|
-
//# sourceMappingURL=adminRoles-
|
|
14
|
+
//# sourceMappingURL=adminRoles-Cm513r1G.d.ts.map
|
package/dist/ai/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_createOpenapiFetchClient = require("../createOpenapiFetchClient-
|
|
3
|
-
const require_auth = require("../auth-
|
|
2
|
+
const require_createOpenapiFetchClient = require("../createOpenapiFetchClient-dkssExkU.cjs");
|
|
3
|
+
const require_auth = require("../auth-AehUDNRK.cjs");
|
|
4
4
|
// src/clients/ai/aiClient.ts
|
|
5
5
|
const createAiClient = ({ baseUrl, middlewares, auth }) => {
|
|
6
6
|
const client = require_createOpenapiFetchClient.createOpenapiFetchClient({
|
package/dist/ai/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as DescribeConfigurationVersionBody, d as SuggestComponentBody, f as components, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, r as DescribeConfigurationBody, s as DocsQuestionBody } from "../types-
|
|
2
|
-
import { n as ClientInitOptions } from "../types-
|
|
1
|
+
import { a as DescribeConfigurationVersionBody, d as SuggestComponentBody, f as components, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, r as DescribeConfigurationBody, s as DocsQuestionBody } from "../types-DKKHKj19.cjs";
|
|
2
|
+
import { n as ClientInitOptions } from "../types-B4ezB18r.cjs";
|
|
3
3
|
declare const createAiClient: ({ baseUrl, middlewares, auth }: ClientInitOptions) => {
|
|
4
4
|
healthCheck: (signal?: AbortSignal) => Promise<{
|
|
5
5
|
status: 'ok';
|
package/dist/ai/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as DescribeConfigurationVersionBody, d as SuggestComponentBody, f as components, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, r as DescribeConfigurationBody, s as DocsQuestionBody } from "../types-
|
|
2
|
-
import { n as ClientInitOptions } from "../types-
|
|
1
|
+
import { a as DescribeConfigurationVersionBody, d as SuggestComponentBody, f as components, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, r as DescribeConfigurationBody, s as DocsQuestionBody } from "../types-D5bxXqEU.js";
|
|
2
|
+
import { n as ClientInitOptions } from "../types-Tg3euEN_.js";
|
|
3
3
|
declare const createAiClient: ({ baseUrl, middlewares, auth }: ClientInitOptions) => {
|
|
4
4
|
healthCheck: (signal?: AbortSignal) => Promise<{
|
|
5
5
|
status: 'ok';
|
package/dist/ai/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as createOpenapiFetchClient } from "../createOpenapiFetchClient-
|
|
2
|
-
import { t as createAuthHeaders } from "../auth-
|
|
1
|
+
import { t as createOpenapiFetchClient } from "../createOpenapiFetchClient-DSk29o_s.js";
|
|
2
|
+
import { t as createAuthHeaders } from "../auth-ZBQWCJPM.js";
|
|
3
3
|
// src/clients/ai/aiClient.ts
|
|
4
4
|
const createAiClient = ({ baseUrl, middlewares, auth }) => {
|
|
5
5
|
const client = createOpenapiFetchClient({
|
package/dist/ai/types.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as ObjectDescription } from "../types-
|
|
1
|
+
import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as ObjectDescription } from "../types-DKKHKj19.cjs";
|
|
2
2
|
export { ComponentDocsDetail, ComponentSuggestion, DescribeConfigurationBody, DescribeConfigurationMergeBody, DescribeConfigurationVersionBody, DocsAnswer, DocsQuestionBody, ErrorExplanation, ExplainErrorBody, ObjectDescription, SuggestComponentBody };
|
package/dist/ai/types.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as ObjectDescription } from "../types-
|
|
1
|
+
import { a as DescribeConfigurationVersionBody, c as ErrorExplanation, d as SuggestComponentBody, i as DescribeConfigurationMergeBody, l as ExplainErrorBody, n as ComponentSuggestion, o as DocsAnswer, r as DescribeConfigurationBody, s as DocsQuestionBody, t as ComponentDocsDetail, u as ObjectDescription } from "../types-D5bxXqEU.js";
|
|
2
2
|
export { ComponentDocsDetail, ComponentSuggestion, DescribeConfigurationBody, DescribeConfigurationMergeBody, DescribeConfigurationVersionBody, DocsAnswer, DocsQuestionBody, ErrorExplanation, ExplainErrorBody, ObjectDescription, SuggestComponentBody };
|