@keboola/api-client 49.0.0 → 51.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 +109 -95
- package/API-SURFACE.md +13 -31
- package/CHANGELOG.md +54 -0
- package/README.md +33 -29
- package/dist/{ManagementSessionMintError-Cu9beG7j.cjs → ManagementSessionMintError-ByOulHQH.cjs} +4 -6
- package/dist/{ManagementSessionMintError-Cu9beG7j.cjs.map → ManagementSessionMintError-ByOulHQH.cjs.map} +1 -1
- package/dist/{ManagementSessionMintError-4Pkn5Oob.js → ManagementSessionMintError-DNMbYauw.js} +4 -6
- package/dist/{ManagementSessionMintError-4Pkn5Oob.js.map → ManagementSessionMintError-DNMbYauw.js.map} +1 -1
- package/dist/{QueryJobError-ZZZ043Nm.js → QueryJobError-Iq9O90Uh.js} +2 -3
- package/dist/{QueryJobError-ZZZ043Nm.js.map → QueryJobError-Iq9O90Uh.js.map} +1 -1
- package/dist/{QueryJobError-irGiP5zh.cjs → QueryJobError-Oy0fl4aw.cjs} +2 -3
- package/dist/{QueryJobError-irGiP5zh.cjs.map → QueryJobError-Oy0fl4aw.cjs.map} +1 -1
- package/dist/{QueueJobError-8bThS_Mc.js → QueueJobError-BJNUINXW.js} +2 -3
- package/dist/{QueueJobError-8bThS_Mc.js.map → QueueJobError-BJNUINXW.js.map} +1 -1
- package/dist/{QueueJobError-6qSEizWo.cjs → QueueJobError-DruZK3tc.cjs} +2 -3
- package/dist/{QueueJobError-6qSEizWo.cjs.map → QueueJobError-DruZK3tc.cjs.map} +1 -1
- package/dist/{SyncActionError-CoZFsdUk.js → SyncActionError-DuGcDbkd.js} +2 -3
- package/dist/{SyncActionError-CoZFsdUk.js.map → SyncActionError-DuGcDbkd.js.map} +1 -1
- package/dist/{SyncActionError-BG0zwchi.cjs → SyncActionError-mbpVg63X.cjs} +2 -3
- package/dist/{SyncActionError-BG0zwchi.cjs.map → SyncActionError-mbpVg63X.cjs.map} +1 -1
- package/dist/{UserError-By_Zckmc.js → UserError-BxoOJJ_u.js} +2 -3
- package/dist/{UserError-By_Zckmc.js.map → UserError-BxoOJJ_u.js.map} +1 -1
- package/dist/{UserError-CSGO1qII.cjs → UserError-D4P9Tbhf.cjs} +2 -3
- package/dist/{UserError-CSGO1qII.cjs.map → UserError-D4P9Tbhf.cjs.map} +1 -1
- package/dist/{ValidationError-D65QU0uq.cjs → ValidationError-BXcFX4nD.cjs} +2 -3
- package/dist/{ValidationError-D65QU0uq.cjs.map → ValidationError-BXcFX4nD.cjs.map} +1 -1
- package/dist/{ValidationError-DjhtNMfZ.js → ValidationError-BsdFDGY2.js} +2 -3
- package/dist/{ValidationError-DjhtNMfZ.js.map → ValidationError-BsdFDGY2.js.map} +1 -1
- package/dist/{configurations-CL0ouUMa.js → admin-CbMOsfgs.js} +5 -53
- package/dist/admin-CbMOsfgs.js.map +1 -0
- package/dist/{configurations-D9J3jh3g.cjs → admin-Di-MmGFP.cjs} +4 -124
- package/dist/admin-Di-MmGFP.cjs.map +1 -0
- package/dist/{adminRoles-BX1gk3At.d.ts → adminRoles-DAwl657q.d.ts} +2 -4
- package/dist/{adminRoles-CO7J5qAy.cjs → adminRoles-DnFpO_2W.cjs} +2 -3
- package/dist/{adminRoles-CO7J5qAy.cjs.map → adminRoles-DnFpO_2W.cjs.map} +1 -1
- package/dist/{adminRoles-BbxFgfX-.d.cts → adminRoles-FFyl7Dyx.d.cts} +2 -4
- package/dist/{adminRoles-B40yBcmq.js → adminRoles-asa-MhDD.js} +2 -3
- package/dist/{adminRoles-B40yBcmq.js.map → adminRoles-asa-MhDD.js.map} +1 -1
- package/dist/ai/index.cjs +3 -4
- package/dist/ai/index.d.cts +2 -4
- package/dist/ai/index.d.ts +2 -4
- package/dist/ai/index.js +3 -4
- package/dist/ai/types.d.cts +1 -1
- package/dist/ai/types.d.ts +1 -1
- package/dist/{appLogs-DI2Y4imY.d.ts → appLogs-CTvZAihm.d.ts} +2 -4
- package/dist/{appLogs-IhRA3xyv.d.cts → appLogs-CnLNMH7M.d.cts} +2 -4
- package/dist/{appLogs-Cix2KWra.cjs → appLogs-CoAWQGxs.cjs} +5 -6
- package/dist/{appLogs-Cix2KWra.cjs.map → appLogs-CoAWQGxs.cjs.map} +1 -1
- package/dist/{appLogs-KslK7qHr.js → appLogs-DFcPwVk8.js} +4 -5
- package/dist/{appLogs-KslK7qHr.js.map → appLogs-DFcPwVk8.js.map} +1 -1
- package/dist/apps/index.cjs +28 -5
- package/dist/apps/index.cjs.map +1 -1
- package/dist/apps/index.d.cts +22 -5
- package/dist/apps/index.d.ts +22 -5
- package/dist/apps/index.js +28 -5
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/types.d.cts +3 -3
- package/dist/apps/types.d.ts +3 -3
- package/dist/assets/index.cjs +2 -3
- package/dist/assets/index.d.cts +1 -3
- package/dist/assets/index.d.ts +1 -3
- package/dist/assets/index.js +2 -3
- package/dist/assets/schema.cjs +2 -3
- package/dist/assets/schema.d.cts +0 -2
- package/dist/assets/schema.d.ts +0 -2
- package/dist/assets/schema.js +1 -2
- 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 -2
- package/dist/auth/types.d.cts +1 -1
- package/dist/auth/types.d.ts +1 -1
- package/dist/{auth-C8Pjl0Mu.cjs → auth-CvB4MukT.cjs} +3 -4
- package/dist/{auth-C8Pjl0Mu.cjs.map → auth-CvB4MukT.cjs.map} +1 -1
- package/dist/{auth-4coY1uwo.js → auth-DYfQMQCs.js} +3 -4
- package/dist/{auth-4coY1uwo.js.map → auth-DYfQMQCs.js.map} +1 -1
- package/dist/{authClient-DfkKlc-2.cjs → authClient-DcKBpMcU.cjs} +66 -85
- package/dist/{authClient-DfkKlc-2.cjs.map → authClient-DcKBpMcU.cjs.map} +1 -1
- package/dist/{authClient-6Aau_4Zt.d.ts → authClient-Df3U4q_6.d.cts} +4 -16
- package/dist/{authClient-B3P6WtWW.d.cts → authClient-JtMVJWXY.d.ts} +4 -16
- package/dist/{authClient-2e8ZmzSP.js → authClient-oB5ydxWp.js} +66 -85
- package/dist/{authClient-2e8ZmzSP.js.map → authClient-oB5ydxWp.js.map} +1 -1
- package/dist/{backends-DKBz5OxE.d.ts → backends-BHotIdL0.d.cts} +1 -3
- package/dist/{backends-DKBz5OxE.d.cts → backends-BHotIdL0.d.ts} +1 -3
- package/dist/billing/index.cjs +3 -4
- package/dist/billing/index.d.cts +1 -3
- package/dist/billing/index.d.ts +1 -3
- package/dist/billing/index.js +3 -4
- package/dist/billing/types.d.cts +1 -5
- package/dist/billing/types.d.ts +1 -5
- package/dist/chat/index.cjs +4 -5
- package/dist/chat/index.d.cts +3 -5
- package/dist/chat/index.d.ts +3 -5
- package/dist/chat/index.js +4 -5
- package/dist/chat/suggestions.cjs +1 -2
- package/dist/chat/suggestions.d.cts +1 -1
- package/dist/chat/suggestions.d.ts +1 -1
- package/dist/chat/suggestions.js +1 -2
- package/dist/chat/types.cjs +1 -2
- package/dist/chat/types.d.cts +1 -1
- package/dist/chat/types.d.ts +1 -1
- package/dist/chat/types.js +1 -2
- package/dist/{collectByOffset-DQsqtmJg.cjs → collectByOffset-DgxJ3zT9.cjs} +3 -4
- package/dist/{collectByOffset-DQsqtmJg.cjs.map → collectByOffset-DgxJ3zT9.cjs.map} +1 -1
- package/dist/{collectByOffset-2XzJqmvr.js → collectByOffset-i8Tdoze7.js} +3 -4
- package/dist/{collectByOffset-2XzJqmvr.js.map → collectByOffset-i8Tdoze7.js.map} +1 -1
- package/dist/{componentId-D4jp6a13.cjs → componentId-C8ZTXXDo.cjs} +2 -3
- package/dist/{componentId-D4jp6a13.cjs.map → componentId-C8ZTXXDo.cjs.map} +1 -1
- package/dist/{componentId-DmHwHG5V.js → componentId-b_qBbJEM.js} +2 -3
- package/dist/{componentId-DmHwHG5V.js.map → componentId-b_qBbJEM.js.map} +1 -1
- 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 -2
- package/dist/componentsMcp/types.d.cts +1 -1
- package/dist/componentsMcp/types.d.ts +1 -1
- package/dist/{componentsMcp-pG-PcQrg.cjs → componentsMcp-BaHy5iLr.cjs} +5 -7
- package/dist/{componentsMcp-pG-PcQrg.cjs.map → componentsMcp-BaHy5iLr.cjs.map} +1 -1
- package/dist/{componentsMcp-CHobIsuU.js → componentsMcp-BrB4js6b.js} +5 -7
- package/dist/{componentsMcp-CHobIsuU.js.map → componentsMcp-BrB4js6b.js.map} +1 -1
- package/dist/{concurrent-BacWxPwi.js → concurrent-BtsT10Xe.js} +2 -3
- package/dist/{concurrent-BacWxPwi.js.map → concurrent-BtsT10Xe.js.map} +1 -1
- package/dist/{concurrent-CdVfR1N5.cjs → concurrent-DnTV_ppY.cjs} +2 -3
- package/dist/{concurrent-CdVfR1N5.cjs.map → concurrent-DnTV_ppY.cjs.map} +1 -1
- package/dist/configurations-Cd6Nsox-.js +49 -0
- package/dist/configurations-Cd6Nsox-.js.map +1 -0
- package/dist/configurations-WI8H4zLk.cjs +120 -0
- package/dist/configurations-WI8H4zLk.cjs.map +1 -0
- package/dist/constants/index.cjs +3 -3
- package/dist/constants/index.d.cts +4 -4
- package/dist/constants/index.d.ts +4 -4
- package/dist/constants/index.js +3 -3
- package/dist/{constants-VpSwBtCb.js → constants-BMSHGwOR.js} +46 -52
- package/dist/constants-BMSHGwOR.js.map +1 -0
- package/dist/{constants-DErcRkWl.cjs → constants-DhFQWQgy.cjs} +45 -51
- package/dist/constants-DhFQWQgy.cjs.map +1 -0
- package/dist/{createAbortError-RendOpo7.cjs → createAbortError-Dzc9yObN.cjs} +2 -3
- package/dist/{createAbortError-RendOpo7.cjs.map → createAbortError-Dzc9yObN.cjs.map} +1 -1
- package/dist/{createAbortError-BxupOt-6.js → createAbortError-c6ekCpRy.js} +2 -3
- package/dist/{createAbortError-BxupOt-6.js.map → createAbortError-c6ekCpRy.js.map} +1 -1
- package/dist/{createFetchClient-lZ_93Yrb.cjs → createFetchClient-DEkUH662.cjs} +6 -10
- package/dist/{createFetchClient-lZ_93Yrb.cjs.map → createFetchClient-DEkUH662.cjs.map} +1 -1
- package/dist/{createFetchClient-CkHdS_IG.js → createFetchClient-DlGCbltR.js} +5 -9
- package/dist/{createFetchClient-CkHdS_IG.js.map → createFetchClient-DlGCbltR.js.map} +1 -1
- package/dist/{createGenericFetchClient-MOx97wi-.cjs → createGenericFetchClient-2oU-PXVo.cjs} +3 -4
- package/dist/{createGenericFetchClient-MOx97wi-.cjs.map → createGenericFetchClient-2oU-PXVo.cjs.map} +1 -1
- package/dist/createGenericFetchClient-wGxemBwR.js +6 -0
- package/dist/{createGenericFetchClient-CQdNcPC3.js.map → createGenericFetchClient-wGxemBwR.js.map} +1 -1
- package/dist/createOpenapiFetchClient-Bhz62MUE.js +6 -0
- package/dist/{createOpenapiFetchClient-DXiMv9WL.js.map → createOpenapiFetchClient-Bhz62MUE.js.map} +1 -1
- package/dist/{createOpenapiFetchClient-DHYo_k3t.cjs → createOpenapiFetchClient-DL9w7vU-.cjs} +3 -4
- package/dist/{createOpenapiFetchClient-DHYo_k3t.cjs.map → createOpenapiFetchClient-DL9w7vU-.cjs.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-AwPMeGfz.js → dataScience-CXmkEOAi.js} +7 -9
- package/dist/{dataScience-AwPMeGfz.js.map → dataScience-CXmkEOAi.js.map} +1 -1
- package/dist/{dataScience-BjS1p8WO.cjs → dataScience-CufjHPSd.cjs} +7 -9
- package/dist/{dataScience-BjS1p8WO.cjs.map → dataScience-CufjHPSd.cjs.map} +1 -1
- package/dist/{dedupe-OSnnst2u.cjs → dedupe-Bf0gl9TJ.cjs} +2 -3
- package/dist/{dedupe-OSnnst2u.cjs.map → dedupe-Bf0gl9TJ.cjs.map} +1 -1
- package/dist/{dedupe-Cky1gSUu.js → dedupe-Bu0d2i_w.js} +2 -3
- package/dist/{dedupe-Cky1gSUu.js.map → dedupe-Bu0d2i_w.js.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 -2
- package/dist/developerPortal/types.d.cts +1 -1
- package/dist/developerPortal/types.d.ts +1 -1
- package/dist/{developerPortalClient-DUerKw-7.cjs → developerPortalClient-BfRxYrWj.cjs} +9 -15
- package/dist/{developerPortalClient-DUerKw-7.cjs.map → developerPortalClient-BfRxYrWj.cjs.map} +1 -1
- package/dist/{developerPortalClient-Bb2suezr.js → developerPortalClient-D9XOYwWF.js} +9 -15
- package/dist/{developerPortalClient-Bb2suezr.js.map → developerPortalClient-D9XOYwWF.js.map} +1 -1
- package/dist/domain/permissions/index.cjs +18 -17
- package/dist/domain/permissions/index.d.cts +1 -11
- package/dist/domain/permissions/index.d.ts +1 -11
- package/dist/domain/permissions/index.js +3 -2
- package/dist/domain/storageTable/index.cjs +403 -9
- package/dist/domain/storageTable/index.cjs.map +1 -0
- package/dist/domain/storageTable/index.d.cts +189 -2
- package/dist/domain/storageTable/index.d.ts +189 -2
- package/dist/domain/storageTable/index.js +395 -1
- package/dist/domain/storageTable/index.js.map +1 -0
- package/dist/editor/index.cjs +3 -4
- package/dist/editor/index.d.cts +2 -4
- package/dist/editor/index.d.ts +2 -4
- package/dist/editor/index.js +3 -4
- package/dist/editor/types.d.cts +1 -1
- package/dist/editor/types.d.ts +1 -1
- package/dist/{emitter-dLF1Fyfg.d.ts → emitter-raKkIqRp.d.cts} +1 -3
- package/dist/{emitter-dLF1Fyfg.d.cts → emitter-raKkIqRp.d.ts} +1 -3
- package/dist/encryption/index.cjs +2 -3
- package/dist/encryption/index.d.cts +1 -1
- package/dist/encryption/index.d.ts +1 -1
- package/dist/encryption/index.js +2 -3
- package/dist/encryption/types.d.cts +1 -1
- package/dist/encryption/types.d.ts +1 -1
- package/dist/generateUUID-DE9sNyJF.js +5 -0
- package/dist/{generateUUID-Dr8l-aoc.js.map → generateUUID-DE9sNyJF.js.map} +1 -1
- package/dist/{generateUUID-C6qKBPIv.cjs → generateUUID-DbSTmvVP.cjs} +2 -3
- package/dist/{generateUUID-C6qKBPIv.cjs.map → generateUUID-DbSTmvVP.cjs.map} +1 -1
- package/dist/import/index.cjs +1 -1
- package/dist/import/index.d.cts +3 -5
- package/dist/import/index.d.ts +3 -5
- package/dist/import/index.js +1 -2
- package/dist/{import-BahNYv91.cjs → import-CABlFMQX.cjs} +6 -9
- package/dist/{import-BahNYv91.cjs.map → import-CABlFMQX.cjs.map} +1 -1
- package/dist/{import-FWy_wQZ1.js → import-CT1Ce5Rp.js} +6 -9
- package/dist/{import-FWy_wQZ1.js.map → import-CT1Ce5Rp.js.map} +1 -1
- package/dist/index-24GpnYhn.d.cts +150 -0
- package/dist/{index-BT88-GpA.d.ts → index-AA3MRfRn.d.cts} +4 -16
- package/dist/{index-C6oPUTWZ.d.ts → index-BDPxm9qu.d.ts} +3 -7
- package/dist/index-BUZ-vTRt.d.ts +150 -0
- package/dist/{index-XcnkRVb0.d.ts → index-BZDxWvZW.d.ts} +5 -7
- package/dist/index-BfAcp7O2.d.ts +10 -0
- package/dist/index-BsT_cBJd.d.ts +15117 -0
- package/dist/index-C1ndNdrN.d.cts +10 -0
- package/dist/{index-BiZR9BjN.d.ts → index-CbSh3KFw.d.cts} +4 -12
- package/dist/{index-BM_fXKq5.d.cts → index-ClIV2Lch.d.cts} +5 -7
- package/dist/{index-DReKz9Zt.d.ts → index-CuI8OI9E.d.ts} +4 -13
- package/dist/{index-BPMr8PQJ.d.ts → index-D1mduJne.d.cts} +2 -52
- package/dist/{index-CL4iKFic.d.cts → index-D1mduJne.d.ts} +1 -51
- package/dist/{index-DorowSay.d.ts → index-DIPMzH--.d.ts} +5 -9
- package/dist/{index-CbZQCDkD.d.cts → index-DQagqTVa.d.cts} +3 -7
- package/dist/{index-dgu6udMy.d.ts → index-DVBQgFg0.d.ts} +4 -6
- package/dist/{index-CrrHvDiX.d.cts → index-Day1Yr5s.d.ts} +8 -7
- package/dist/{index-Dkb8CynB.d.cts → index-Db266tLz.d.cts} +5 -9
- package/dist/{index-BVjhAkXW.d.cts → index-DgGpQsAT.d.cts} +4 -6
- package/dist/{index-PqJGDHHl.d.cts → index-DjSthn8d.d.ts} +4 -16
- package/dist/{index-DhZTIejy.d.ts → index-lTrNMlj6.d.ts} +3 -5
- package/dist/{index-DYNVbgm8.d.cts → index-m9-mN8Gg.d.ts} +4 -12
- package/dist/index-qJ2IjXIM.d.cts +15117 -0
- package/dist/{index-CtQl-Iqw.d.cts → index-xX8-Stoq.d.cts} +4 -13
- package/dist/{index-D6JMbJ9b.d.ts → index-xhzuWloV.d.cts} +8 -7
- package/dist/{index-DGKCTQkb.d.cts → index-z-2okomN.d.cts} +3 -5
- package/dist/index.cjs +433 -1055
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -8
- package/dist/index.d.ts +9 -8
- package/dist/index.js +429 -1052
- package/dist/index.js.map +1 -1
- package/dist/{isLoginPageRedirect-r0Opgc1n.cjs → isLoginPageRedirect-CoUxJi2x.cjs} +3 -4
- package/dist/{isLoginPageRedirect-r0Opgc1n.cjs.map → isLoginPageRedirect-CoUxJi2x.cjs.map} +1 -1
- package/dist/{isLoginPageRedirect-B4QKSiSa.js → isLoginPageRedirect-D-lqF_kZ.js} +3 -4
- package/dist/{isLoginPageRedirect-B4QKSiSa.js.map → isLoginPageRedirect-D-lqF_kZ.js.map} +1 -1
- package/dist/{isPlainObject-LYW-03uB.js → isPlainObject-BxsT8_t2.js} +2 -3
- package/dist/{isPlainObject-LYW-03uB.js.map → isPlainObject-BxsT8_t2.js.map} +1 -1
- package/dist/{isPlainObject-BB3iy87C.cjs → isPlainObject-CcvQt0qB.cjs} +2 -3
- package/dist/{isPlainObject-BB3iy87C.cjs.map → isPlainObject-CcvQt0qB.cjs.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 -2
- package/dist/kaiAgent/types.d.cts +1 -1
- package/dist/kaiAgent/types.d.ts +1 -1
- package/dist/{kaiAgent-N2qbUFZm.cjs → kaiAgent-CDhg0MAw.cjs} +16 -7
- package/dist/kaiAgent-CDhg0MAw.cjs.map +1 -0
- package/dist/{kaiAgent-CYvrS8oZ.js → kaiAgent-CYU1Uda8.js} +16 -7
- package/dist/kaiAgent-CYU1Uda8.js.map +1 -0
- package/dist/{kaiMemory-Qch09f-m.cjs → kaiMemory-CkLQfJXD.cjs} +6 -9
- package/dist/{kaiMemory-Qch09f-m.cjs.map → kaiMemory-CkLQfJXD.cjs.map} +1 -1
- package/dist/{kaiMemory-C9di17bd.js → kaiMemory-oir_qCo_.js} +6 -9
- package/dist/{kaiMemory-C9di17bd.js.map → kaiMemory-oir_qCo_.js.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 -2
- package/dist/management/types.cjs +1 -2
- package/dist/management/types.d.cts +2 -2
- package/dist/management/types.d.ts +2 -2
- package/dist/management/types.js +1 -2
- package/dist/{management-B1o6RpKF.cjs → management-BEGOEQxM.cjs} +26 -45
- package/dist/management-BEGOEQxM.cjs.map +1 -0
- package/dist/{management-C9w3DNhs.js → management-BcGHyxAP.js} +26 -45
- package/dist/management-BcGHyxAP.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 -2
- package/dist/metastore/types.d.cts +1 -1
- package/dist/metastore/types.d.ts +1 -1
- package/dist/{metastore-Ywq08DBz.js → metastore-CGsgxjng.js} +7 -10
- package/dist/{metastore-Ywq08DBz.js.map → metastore-CGsgxjng.js.map} +1 -1
- package/dist/{metastore-BXHg33ku.cjs → metastore-DeRQ2VIv.cjs} +7 -10
- package/dist/{metastore-BXHg33ku.cjs.map → metastore-DeRQ2VIv.cjs.map} +1 -1
- package/dist/microsoftGraph/index.cjs +5 -8
- package/dist/microsoftGraph/index.cjs.map +1 -1
- package/dist/microsoftGraph/index.d.cts +3 -7
- package/dist/microsoftGraph/index.d.ts +3 -7
- package/dist/microsoftGraph/index.js +5 -8
- package/dist/microsoftGraph/index.js.map +1 -1
- package/dist/microsoftGraph/types.d.cts +2 -4
- package/dist/microsoftGraph/types.d.ts +2 -4
- package/dist/{middleware-GOfx8Apu.js → middleware-8zaJWcyU.js} +3 -5
- package/dist/middleware-8zaJWcyU.js.map +1 -0
- package/dist/{middleware-CEP6uu_D.cjs → middleware-B9RNuLfD.cjs} +3 -5
- package/dist/middleware-B9RNuLfD.cjs.map +1 -0
- package/dist/notifications/index.cjs +5 -6
- package/dist/notifications/index.d.cts +2 -4
- package/dist/notifications/index.d.ts +2 -4
- package/dist/notifications/index.js +5 -6
- 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 -4
- package/dist/oauth/index.d.ts +2 -4
- package/dist/oauth/index.js +1 -2
- package/dist/oauth/types.d.cts +1 -1
- package/dist/oauth/types.d.ts +1 -1
- package/dist/{oauth-DKZPuUlt.cjs → oauth-B5Biqz21.cjs} +7 -9
- package/dist/{oauth-DKZPuUlt.cjs.map → oauth-B5Biqz21.cjs.map} +1 -1
- package/dist/{oauth-GXmZ9agP.js → oauth-ByCdISsV.js} +7 -9
- package/dist/{oauth-GXmZ9agP.js.map → oauth-ByCdISsV.js.map} +1 -1
- package/dist/omnisearch/index.cjs +3 -4
- package/dist/omnisearch/index.d.cts +2 -4
- package/dist/omnisearch/index.d.ts +2 -4
- package/dist/omnisearch/index.js +3 -4
- package/dist/omnisearch/types.d.cts +1 -1
- package/dist/omnisearch/types.d.ts +1 -1
- package/dist/{project-ClH22nzH.js → project-DmuC0bMK.js} +6 -9
- package/dist/{project-ClH22nzH.js.map → project-DmuC0bMK.js.map} +1 -1
- package/dist/{project-Rh4nXiWh.cjs → project-Onf-IcPW.cjs} +9 -12
- package/dist/{project-Rh4nXiWh.cjs.map → project-Onf-IcPW.cjs.map} +1 -1
- package/dist/{project-DTfBtIJs.d.ts → project-UHZGFmmG.d.cts} +5 -9
- package/dist/{project-vOnvjo80.d.cts → project-iBm4cIIR.d.ts} +5 -9
- 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 -2
- package/dist/queryService/types.d.cts +1 -1
- package/dist/queryService/types.d.ts +1 -1
- package/dist/{queryService-CzK53q94.cjs → queryService-Cg-eMysa.cjs} +9 -11
- package/dist/{queryService-CzK53q94.cjs.map → queryService-Cg-eMysa.cjs.map} +1 -1
- package/dist/{queryService-C-pZha5p.js → queryService-x8kq8Z2-.js} +9 -11
- package/dist/{queryService-C-pZha5p.js.map → queryService-x8kq8Z2-.js.map} +1 -1
- package/dist/queue/index.cjs +1 -1
- package/dist/queue/index.d.cts +4 -5
- package/dist/queue/index.d.ts +4 -5
- package/dist/queue/index.js +1 -2
- package/dist/queue/types.d.cts +1 -1
- package/dist/queue/types.d.ts +1 -1
- package/dist/{queue-D6-x4OGF.js → queue-BiIs9fX4.js} +9 -11
- package/dist/{queue-D6-x4OGF.js.map → queue-BiIs9fX4.js.map} +1 -1
- package/dist/{queue-BJvDWriM.cjs → queue-CBi9Q8vp.cjs} +9 -11
- package/dist/{queue-BJvDWriM.cjs.map → queue-CBi9Q8vp.cjs.map} +1 -1
- package/dist/{rolldown-runtime-VH7oDXx4.cjs → rolldown-runtime-CmQyd0Gu.cjs} +1 -2
- package/dist/scheduler/index.cjs +5 -6
- package/dist/scheduler/index.d.cts +2 -4
- package/dist/scheduler/index.d.ts +2 -4
- package/dist/scheduler/index.js +5 -6
- package/dist/scheduler/types.d.cts +1 -1
- package/dist/scheduler/types.d.ts +1 -1
- package/dist/{schema-BUyMwQnM.d.cts → schema-DLmBEgPM.d.cts} +1 -3
- package/dist/{schema-BUyMwQnM.d.ts → schema-DLmBEgPM.d.ts} +1 -3
- package/dist/schemaGuidedMerge-C8CqrNGe.cjs +55 -0
- package/dist/schemaGuidedMerge-C8CqrNGe.cjs.map +1 -0
- package/dist/schemaGuidedMerge-DFNqj9Nz.js +44 -0
- package/dist/schemaGuidedMerge-DFNqj9Nz.js.map +1 -0
- package/dist/sdk/configurations/index.cjs +634 -2
- package/dist/sdk/configurations/index.cjs.map +1 -0
- package/dist/sdk/configurations/index.d.cts +1030 -4
- package/dist/sdk/configurations/index.d.ts +1030 -4
- package/dist/sdk/configurations/index.js +633 -1
- package/dist/sdk/configurations/index.js.map +1 -0
- package/dist/sdk/developerPortal/index.cjs +9 -13
- package/dist/sdk/developerPortal/index.cjs.map +1 -1
- package/dist/sdk/developerPortal/index.d.cts +4 -6
- package/dist/sdk/developerPortal/index.d.ts +4 -6
- package/dist/sdk/developerPortal/index.js +9 -13
- 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 -3
- package/dist/sdk/kaiMemory/index.d.ts +1 -3
- package/dist/sdk/kaiMemory/index.js +1 -2
- package/dist/sdk/kaiMemory/types.d.cts +1 -1
- package/dist/sdk/kaiMemory/types.d.ts +1 -1
- package/dist/sdk/queryService/index.cjs +3 -4
- package/dist/sdk/queryService/index.d.cts +1 -1
- package/dist/sdk/queryService/index.d.ts +1 -1
- package/dist/sdk/queryService/index.js +3 -4
- package/dist/sdk/semanticLayer/index.cjs +1 -1
- package/dist/sdk/semanticLayer/index.d.cts +1 -7
- package/dist/sdk/semanticLayer/index.d.ts +1 -7
- package/dist/sdk/semanticLayer/index.js +1 -2
- package/dist/sdk/semanticLayer/types.d.cts +1 -1
- package/dist/sdk/semanticLayer/types.d.ts +1 -1
- package/dist/sdk/storage/index.cjs +3 -6
- package/dist/sdk/storage/index.cjs.map +1 -1
- package/dist/sdk/storage/index.d.cts +0 -6
- package/dist/sdk/storage/index.d.ts +0 -6
- package/dist/sdk/storage/index.js +3 -6
- package/dist/sdk/storage/index.js.map +1 -1
- package/dist/sdk/tag/index.cjs +1 -1
- package/dist/sdk/tag/index.d.cts +3 -5
- package/dist/sdk/tag/index.d.ts +3 -5
- package/dist/sdk/tag/index.js +1 -2
- package/dist/sdk/tag/types.d.cts +1 -1
- package/dist/sdk/tag/types.d.ts +1 -1
- package/dist/sdk/vault/index.cjs +3 -5
- package/dist/sdk/vault/index.cjs.map +1 -1
- package/dist/sdk/vault/index.d.cts +1 -1
- package/dist/sdk/vault/index.d.ts +1 -1
- package/dist/sdk/vault/index.js +3 -5
- package/dist/sdk/vault/index.js.map +1 -1
- package/dist/{semanticLayer-DvjS_nzo.js → semanticLayer-BdPW_wLo.js} +9 -14
- package/dist/{semanticLayer-DvjS_nzo.js.map → semanticLayer-BdPW_wLo.js.map} +1 -1
- package/dist/{semanticLayer-7BejcMj_.cjs → semanticLayer-djom-J78.cjs} +9 -14
- package/dist/{semanticLayer-7BejcMj_.cjs.map → semanticLayer-djom-J78.cjs.map} +1 -1
- package/dist/status/index.cjs +2 -3
- package/dist/status/index.d.cts +1 -3
- package/dist/status/index.d.ts +1 -3
- package/dist/status/index.js +2 -3
- package/dist/status/types.d.cts +0 -2
- package/dist/status/types.d.ts +0 -2
- package/dist/storage/index.cjs +9 -9
- package/dist/storage/index.d.cts +3 -2
- package/dist/storage/index.d.ts +3 -2
- package/dist/storage/index.js +9 -9
- package/dist/storage/types.d.cts +6 -6
- package/dist/storage/types.d.ts +6 -6
- package/dist/{storage-CChfKlrb.js → storage-BpOLWT6h.js} +54 -89
- package/dist/{storage-CChfKlrb.js.map → storage-BpOLWT6h.js.map} +1 -1
- package/dist/{storage-Ci9gXgcw.cjs → storage-KJ5Ki_ma.cjs} +53 -88
- package/dist/{storage-Ci9gXgcw.cjs.map → storage-KJ5Ki_ma.cjs.map} +1 -1
- package/dist/{store-xS-Cu_VS.cjs → store-2OyH1XOP.cjs} +3 -5
- package/dist/{store-xS-Cu_VS.cjs.map → store-2OyH1XOP.cjs.map} +1 -1
- package/dist/{store-C9FQCHGe.js → store-HP0zRcLz.js} +3 -5
- package/dist/{store-C9FQCHGe.js.map → store-HP0zRcLz.js.map} +1 -1
- package/dist/stream/index.cjs +4 -5
- package/dist/stream/index.d.cts +2 -4
- package/dist/stream/index.d.ts +2 -4
- package/dist/stream/index.js +4 -5
- package/dist/stream/types.d.cts +1 -1
- package/dist/stream/types.d.ts +1 -1
- package/dist/{suggestions-BH3x7xU7.d.ts → suggestions-xhIjrlvi.d.cts} +1 -3
- package/dist/{suggestions-BH3x7xU7.d.cts → suggestions-xhIjrlvi.d.ts} +1 -3
- 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 -2
- package/dist/syncActions/types.d.cts +2 -2
- package/dist/syncActions/types.d.ts +2 -2
- package/dist/{syncActions-C1rE4R3f.cjs → syncActions-BcX3jm2E.cjs} +74 -187
- package/dist/syncActions-BcX3jm2E.cjs.map +1 -0
- package/dist/{syncActions-DM8vP7p3.js → syncActions-giPLTfje.js} +73 -186
- package/dist/syncActions-giPLTfje.js.map +1 -0
- package/dist/{tag-DHS_soa7.cjs → tag-A5z4tJn1.cjs} +5 -7
- package/dist/{tag-DHS_soa7.cjs.map → tag-A5z4tJn1.cjs.map} +1 -1
- package/dist/{tag-hh-1nhNr.js → tag-BwjbG3tT.js} +5 -7
- package/dist/{tag-hh-1nhNr.js.map → tag-BwjbG3tT.js.map} +1 -1
- package/dist/telemetry/index.cjs +4 -5
- package/dist/telemetry/index.d.cts +2 -4
- package/dist/telemetry/index.d.ts +2 -4
- package/dist/telemetry/index.js +4 -5
- package/dist/telemetry/types.d.cts +1 -1
- package/dist/telemetry/types.d.ts +1 -1
- package/dist/{transientRetries-B4iusp69.js → transientRetries-BKqmb85B.js} +13 -22
- package/dist/{transientRetries-B4iusp69.js.map → transientRetries-BKqmb85B.js.map} +1 -1
- package/dist/{transientRetries-DdJfH9QK.cjs → transientRetries-CM7rAEXQ.cjs} +13 -22
- package/dist/{transientRetries-DdJfH9QK.cjs.map → transientRetries-CM7rAEXQ.cjs.map} +1 -1
- package/dist/{types-DODAZKEm.d.ts → types--Rp5wvaz.d.ts} +2 -6
- package/dist/{types-JZ0Bdlpk.d.cts → types-1IBnjBVJ.d.cts} +2 -6
- package/dist/{types-BZ--6pIt.d.ts → types-37vwxse4.d.cts} +2 -6
- package/dist/{types-RogkWzOu.d.ts → types-6T04_qUf.d.ts} +2 -6
- package/dist/{types-TmrPVMhy.d.cts → types-B0e-no6u.d.ts} +18 -38
- package/dist/{types-ptynVnkv.d.cts → types-B1qe1etN.d.cts} +3 -7
- package/dist/{types-BXybSjn-.d.ts → types-B3ri-iiC.d.ts} +2 -26
- package/dist/{types-Duurgaqk.d.cts → types-B8k1DqlU.d.ts} +129 -10
- package/dist/{types-BOT6TgOS.d.ts → types-BE8abIig.d.cts} +2 -6
- package/dist/{types-BrpIEj_N.d.ts → types-BWMOK6eL.d.cts} +2 -6
- package/dist/{types-D53zBV25.d.ts → types-Bat0SIZA.d.cts} +16 -97
- package/dist/{types-Dy6EdWPG.d.ts → types-Bdl7EFMc.d.ts} +2 -6
- package/dist/{types-_zKX6JmD.d.ts → types-BiDdBXSm.d.ts} +2 -8
- package/dist/{types-dn6MHur3.d.cts → types-BrEVh0WE.d.cts} +253 -10
- package/dist/{types-BnmsuDfH.d.cts → types-BuclMPeY.d.cts} +2 -26
- package/dist/{types-302-NBaU.d.ts → types-C9okze_R.d.ts} +3 -7
- package/dist/{types-BT5e9TSQ.d.ts → types-CPWjRdnj.d.cts} +18 -38
- package/dist/{types-C614wC5h.d.cts → types-CRubbBcU.d.cts} +2 -6
- package/dist/{types-DlhNay1n.d.ts → types-CWcdaq-K.d.ts} +2 -6
- package/dist/{types-D9ZKJYZk.d.ts → types-CcGp6O3B.d.cts} +3 -7
- package/dist/{types-45O2dU2w.d.ts → types-Cr5lyI99.d.ts} +2 -6
- package/dist/{types-CY8X39qv.d.cts → types-CxEJ77m3.d.cts} +3 -7
- package/dist/{types-DmzSFOhK.d.cts → types-D-tJt0hQ.d.cts} +2 -6
- package/dist/{types-BjwbzqJd.d.ts → types-D6lre27s.d.ts} +2 -8
- package/dist/{types-0R9-osUJ.d.ts → types-DHMxPJZq.d.cts} +2 -6
- package/dist/{types-jN2KmMet.d.cts → types-DJzTVMu1.d.ts} +2 -6
- package/dist/{types-CfXqFz2e.d.ts → types-DKSUG2dZ.d.ts} +253 -10
- package/dist/{types-CpJhWBmH.d.cts → types-DNgazFnF.d.cts} +2 -8
- package/dist/{types-DjadPty5.d.ts → types-DRCttnIN.d.ts} +2 -6
- package/dist/{types-CeqZuOEC.d.ts → types-DUpVIuk7.d.ts} +2 -6
- package/dist/{types-DqOxIujY.d.ts → types-DeyXJzWz.d.cts} +2 -6
- package/dist/{types-O6XM48J8.d.cts → types-Dryq2GGE.d.cts} +2 -6
- package/dist/{types-CjNl7O7f.d.cts → types-DschSZHf.d.cts} +3 -5
- package/dist/{types-BUirSne-.d.ts → types-DtOfhDzz.d.ts} +3 -5
- package/dist/{types-CkJxMoTk.d.cts → types-Du5o-tud.d.ts} +16 -97
- package/dist/{types-ChLWY8aU.d.cts → types-DwbTiyhZ.d.cts} +2 -6
- package/dist/{types-HmK8iKp5.d.cts → types-E8tzafsk.d.cts} +3 -7
- package/dist/{types-DpbrGDRf.d.cts → types-LconaX98.d.cts} +2 -6
- package/dist/{types-tdIo5FpR.d.ts → types-PZzNANiS.d.cts} +129 -10
- package/dist/{types-CTS2NSIb.d.cts → types-YpOm4yXE.d.cts} +2 -8
- package/dist/{types-DbXV0g8U.d.cts → types-ZZwdKCBl.d.ts} +2 -6
- package/dist/{types-jfPoUlO8.d.cts → types-eFi8xJIM.d.cts} +2 -6
- package/dist/{types-DV7K07oX.d.cts → types-inG9y3dP.d.ts} +2 -6
- package/dist/{types-BM6rri7-.d.ts → types-ir7T2a9a.d.ts} +3 -7
- package/dist/{types-BAsYMltG.d.cts → types-jjOulnni.d.ts} +2 -6
- package/dist/{types-vvw_H7wp.d.cts → types-wYrC2boT.d.ts} +3 -7
- package/dist/{types-BWzt1ju_.d.ts → types-xzt_2H63.d.ts} +3 -7
- package/dist/{types-D2Pb_4FA.d.cts → types-zPY-XGnM.d.ts} +2 -6
- package/dist/{validateConnectionStatus-BalWEyRk.cjs → validateConnectionStatus-BjemGI1e.cjs} +5 -7
- package/dist/{validateConnectionStatus-BalWEyRk.cjs.map → validateConnectionStatus-BjemGI1e.cjs.map} +1 -1
- package/dist/{validateConnectionStatus-DyrYpn0G.js → validateConnectionStatus-DYwWeWVo.js} +5 -7
- package/dist/{validateConnectionStatus-DyrYpn0G.js.map → validateConnectionStatus-DYwWeWVo.js.map} +1 -1
- package/dist/vault/index.cjs +7 -8
- package/dist/vault/index.d.cts +1 -1
- package/dist/vault/index.d.ts +1 -1
- package/dist/vault/index.js +7 -8
- package/dist/vault/types.d.cts +1 -1
- package/dist/vault/types.d.ts +1 -1
- package/package.json +7 -7
- package/surface/apps.md +12 -10
- package/surface/chat.md +1 -1
- package/surface/dataScience.md +1 -1
- package/surface/editor.md +5 -5
- package/surface/kaiAgent.md +5 -4
- package/surface/management.md +1 -1
- package/surface/queue.md +3 -3
- package/surface/sdk.md +0 -6
- package/surface/stack.md +11 -0
- package/surface/storage.md +2 -2
- package/surface/stream.md +6 -6
- package/surface/syncActions.md +1 -2
- package/dist/configurations-B44z6BSO.js +0 -718
- package/dist/configurations-B44z6BSO.js.map +0 -1
- package/dist/configurations-CL0ouUMa.js.map +0 -1
- package/dist/configurations-D9J3jh3g.cjs.map +0 -1
- package/dist/configurations-Dkxsa3Uf.cjs +0 -735
- package/dist/configurations-Dkxsa3Uf.cjs.map +0 -1
- package/dist/constants-DErcRkWl.cjs.map +0 -1
- package/dist/constants-VpSwBtCb.js.map +0 -1
- package/dist/createGenericFetchClient-CQdNcPC3.js +0 -7
- package/dist/createOpenapiFetchClient-DXiMv9WL.js +0 -7
- package/dist/generateUUID-Dr8l-aoc.js +0 -6
- package/dist/index-Be2dNJ_N.d.cts +0 -23582
- package/dist/index-BfqkgPGI.d.cts +0 -34
- package/dist/index-BfqkgPGI.d.ts +0 -34
- package/dist/index-fMoM8SeH.d.cts +0 -199
- package/dist/index-fMoM8SeH.d.ts +0 -199
- package/dist/index-uGRdAORl.d.ts +0 -23582
- package/dist/kaiAgent-CYvrS8oZ.js.map +0 -1
- package/dist/kaiAgent-N2qbUFZm.cjs.map +0 -1
- package/dist/management-B1o6RpKF.cjs.map +0 -1
- package/dist/management-C9w3DNhs.js.map +0 -1
- package/dist/middleware-CEP6uu_D.cjs.map +0 -1
- package/dist/middleware-GOfx8Apu.js.map +0 -1
- package/dist/storageTable-BNOR2FCh.cjs +0 -442
- package/dist/storageTable-BNOR2FCh.cjs.map +0 -1
- package/dist/storageTable-BldTNyEk.js +0 -395
- package/dist/storageTable-BldTNyEk.js.map +0 -1
- package/dist/syncActions-C1rE4R3f.cjs.map +0 -1
- package/dist/syncActions-DM8vP7p3.js.map +0 -1
- package/surface/context.md +0 -40
|
@@ -1,3 +1,635 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const
|
|
3
|
-
|
|
2
|
+
const require_schemaGuidedMerge = require("../../schemaGuidedMerge-C8CqrNGe.cjs");
|
|
3
|
+
const require_componentId = require("../../componentId-C8ZTXXDo.cjs");
|
|
4
|
+
const require_configurations = require("../../configurations-WI8H4zLk.cjs");
|
|
5
|
+
let zod = require("zod");
|
|
6
|
+
// src/sdks/configurations/schemas/appDataGatewaySchema.ts
|
|
7
|
+
/**
|
|
8
|
+
* `keboola.app-data-gateway` — the Data Gateway provisions and manages its own Snowflake
|
|
9
|
+
* workspace, so the config carries no credentials: just the id of the workspace it runs
|
|
10
|
+
* against, stored at `parameters.db.workspaceId`.
|
|
11
|
+
*/
|
|
12
|
+
const appDataGatewaySchema = zod.z.object({ parameters: zod.z.object({ db: zod.z.object({ workspaceId: zod.z.number() }) }) });
|
|
13
|
+
// src/sdks/configurations/schemas/common/dbConfig.ts
|
|
14
|
+
/** Wrap a `parameters.db` credential schema into the full component config shape. */
|
|
15
|
+
const dbConfig = (db) => zod.z.object({ parameters: zod.z.object({ db }) });
|
|
16
|
+
// src/sdks/configurations/schemas/common/dbConnection.ts
|
|
17
|
+
/**
|
|
18
|
+
* The credential fields shared by virtually every DB writer, stored at `parameters.db`.
|
|
19
|
+
* Components extend this with driver-specific fields (`schema`, `warehouse`, `ssh`, …) and
|
|
20
|
+
* override where they differ (e.g. Snowflake makes `#password` optional). Secret leaves use
|
|
21
|
+
* the `#` prefix the encryption service recognizes.
|
|
22
|
+
*/
|
|
23
|
+
const dbConnectionSchema = zod.z.object({
|
|
24
|
+
host: zod.z.string().describe("Hostname"),
|
|
25
|
+
port: zod.z.number().describe("Port"),
|
|
26
|
+
user: zod.z.string().describe("Username"),
|
|
27
|
+
"#password": zod.z.string().describe("Password"),
|
|
28
|
+
database: zod.z.string().describe("Database Name")
|
|
29
|
+
});
|
|
30
|
+
// src/sdks/configurations/schemas/common/forbidden.ts
|
|
31
|
+
/**
|
|
32
|
+
* Marks a field as "must be absent" in one arm of a mutually-exclusive union: `z.undefined()`
|
|
33
|
+
* rejects any value while `.optional()` lets the key be omitted entirely. Pairing it with a
|
|
34
|
+
* required field in the sibling arm (e.g. `#password` XOR `#privateKey`) is what makes an
|
|
35
|
+
* "exactly one of" union reject configs that set both keys — or neither — at runtime and in
|
|
36
|
+
* the inferred type. Without it the arms would be open objects that silently strip the extra key.
|
|
37
|
+
*/
|
|
38
|
+
const forbidden = zod.z.undefined().optional();
|
|
39
|
+
// src/sdks/configurations/schemas/common/oauthAuthorization.ts
|
|
40
|
+
/**
|
|
41
|
+
* The OAuth credential reference components store under a top-level `authorization` key. `id`
|
|
42
|
+
* points at the vault-stored credential; `version` is the OAuth-API version (3 on modern stacks).
|
|
43
|
+
* Shared by every OAuth-backed component (Google family, Facebook, …).
|
|
44
|
+
*/
|
|
45
|
+
const oauthAuthorizationSchema = zod.z.object({ oauth_api: zod.z.object({
|
|
46
|
+
id: zod.z.string(),
|
|
47
|
+
version: zod.z.number().optional()
|
|
48
|
+
}) });
|
|
49
|
+
// src/sdks/configurations/schemas/common/sshTunnelSchema.ts
|
|
50
|
+
const sshTunnelSchema = zod.z.object({
|
|
51
|
+
enabled: zod.z.boolean(),
|
|
52
|
+
sshHost: zod.z.string().optional(),
|
|
53
|
+
user: zod.z.string().optional(),
|
|
54
|
+
sshPort: zod.z.number().optional(),
|
|
55
|
+
/** FTP passive-mode port range (e.g. `10000:10005`); only relevant to FTP extractors. */
|
|
56
|
+
passivePortRange: zod.z.string().optional(),
|
|
57
|
+
keys: zod.z.object({
|
|
58
|
+
public: zod.z.string().optional(),
|
|
59
|
+
"#private": zod.z.string().optional()
|
|
60
|
+
}).optional()
|
|
61
|
+
});
|
|
62
|
+
// src/sdks/configurations/schemas/common/sslSchema.ts
|
|
63
|
+
/** SSL options nested at `parameters.db.ssl` (drivers that support it, e.g. MySQL, Hive). */
|
|
64
|
+
const sslSchema = zod.z.object({
|
|
65
|
+
enabled: zod.z.boolean(),
|
|
66
|
+
cert: zod.z.string().optional(),
|
|
67
|
+
"#key": zod.z.string().optional(),
|
|
68
|
+
ca: zod.z.string().optional(),
|
|
69
|
+
cipher: zod.z.string().optional(),
|
|
70
|
+
verifyServerCert: zod.z.boolean().optional()
|
|
71
|
+
});
|
|
72
|
+
// src/sdks/configurations/schemas/appSnowflakeDwhManagerSchema.ts
|
|
73
|
+
/**
|
|
74
|
+
* `keboola.app-snowflake-dwh-manager` — master Snowflake connection. Auth is a password OR a
|
|
75
|
+
* key-pair (exactly one). The common fields are shared; each variant requires its own secret and
|
|
76
|
+
* *forbids the other* (`forbidden`), so a config carrying both — or neither — is rejected at
|
|
77
|
+
* runtime and at the type level, matching the `wr-db-snowflake` XOR pattern.
|
|
78
|
+
*/
|
|
79
|
+
const dwhMasterBase = zod.z.object({
|
|
80
|
+
master_host: zod.z.string(),
|
|
81
|
+
master_user: zod.z.string(),
|
|
82
|
+
master_database: zod.z.string(),
|
|
83
|
+
warehouse: zod.z.string()
|
|
84
|
+
});
|
|
85
|
+
const appSnowflakeDwhManagerSchema = zod.z.object({ parameters: zod.z.union([dwhMasterBase.extend({
|
|
86
|
+
"#master_password": zod.z.string(),
|
|
87
|
+
"#master_private_key": forbidden
|
|
88
|
+
}), dwhMasterBase.extend({
|
|
89
|
+
"#master_private_key": zod.z.string(),
|
|
90
|
+
"#master_password": forbidden
|
|
91
|
+
})]) });
|
|
92
|
+
// src/sdks/configurations/schemas/ex/exAwsS3Schema.ts
|
|
93
|
+
/** Access-key credentials — forbids the IAM-role fields so the variants stay exclusive. */
|
|
94
|
+
const awsCredentialsAuth = zod.z.object({
|
|
95
|
+
loginType: zod.z.literal("credentials"),
|
|
96
|
+
accessKeyId: zod.z.string(),
|
|
97
|
+
"#secretAccessKey": zod.z.string(),
|
|
98
|
+
accountId: forbidden,
|
|
99
|
+
roleName: forbidden
|
|
100
|
+
}).loose();
|
|
101
|
+
/** IAM-role auth — forbids the access-key fields so the variants stay exclusive. */
|
|
102
|
+
const awsRoleAuth = zod.z.object({
|
|
103
|
+
loginType: zod.z.literal("role"),
|
|
104
|
+
accountId: zod.z.string(),
|
|
105
|
+
roleName: zod.z.string(),
|
|
106
|
+
accessKeyId: forbidden,
|
|
107
|
+
"#secretAccessKey": forbidden
|
|
108
|
+
}).loose();
|
|
109
|
+
/**
|
|
110
|
+
* `keboola.ex-aws-s3` — access-key credentials OR IAM-role auth (exactly one). `loginType` is the
|
|
111
|
+
* discriminant, and each arm *forbids the other* variant's fields (`z.undefined()`) so a config
|
|
112
|
+
* mixing both — e.g. credentials + a stale `roleName` — is rejected rather than silently stripped.
|
|
113
|
+
* The outer object is `.loose()` so top-level component-managed keys (`storage`, `processors`)
|
|
114
|
+
* pass through.
|
|
115
|
+
*/
|
|
116
|
+
const exAwsS3Schema = zod.z.object({ parameters: zod.z.union([awsCredentialsAuth, awsRoleAuth]) }).loose();
|
|
117
|
+
// src/sdks/configurations/schemas/ex/exAzureBlobStorageSchema.ts
|
|
118
|
+
/**
|
|
119
|
+
* `kds-team.ex-azure-blob-storage-v2` — account name + key + container. Both levels are `.loose()`:
|
|
120
|
+
* the connection block is validated, but component-managed `parameters` and top-level keys
|
|
121
|
+
* (`storage`, `processors`) pass through rather than being stripped on create/update.
|
|
122
|
+
*/
|
|
123
|
+
const exAzureBlobSchema = zod.z.object({ parameters: zod.z.object({
|
|
124
|
+
account_name: zod.z.string(),
|
|
125
|
+
"#account_key": zod.z.string(),
|
|
126
|
+
container_name: zod.z.string()
|
|
127
|
+
}).loose() }).loose();
|
|
128
|
+
// src/sdks/configurations/schemas/ex/exAzureDataLakeSchema.ts
|
|
129
|
+
/**
|
|
130
|
+
* `kds-team.ex-azure-data-lake-gen2` — like Blob, but a `file_system` instead of a container. Both
|
|
131
|
+
* levels are `.loose()`: the connection block is validated, but component-managed `parameters` and
|
|
132
|
+
* top-level keys (`storage`, `processors`) pass through rather than being stripped on create/update.
|
|
133
|
+
*/
|
|
134
|
+
const exAzureDataLakeSchema = zod.z.object({ parameters: zod.z.object({
|
|
135
|
+
account_name: zod.z.string(),
|
|
136
|
+
"#account_key": zod.z.string(),
|
|
137
|
+
file_system: zod.z.string()
|
|
138
|
+
}).loose() }).loose();
|
|
139
|
+
// src/sdks/configurations/schemas/ex/exFtpSchema.ts
|
|
140
|
+
/** Connection fields shared by both auth variants. */
|
|
141
|
+
const ftpConnection = zod.z.object({
|
|
142
|
+
host: zod.z.string(),
|
|
143
|
+
port: zod.z.number(),
|
|
144
|
+
connectionType: zod.z.enum([
|
|
145
|
+
"FTP",
|
|
146
|
+
"FTPS",
|
|
147
|
+
"SFTP"
|
|
148
|
+
]),
|
|
149
|
+
username: zod.z.string(),
|
|
150
|
+
ignorePassiveAddress: zod.z.boolean().optional(),
|
|
151
|
+
ssh: sshTunnelSchema.optional(),
|
|
152
|
+
path: zod.z.string().optional(),
|
|
153
|
+
onlyNewFiles: zod.z.boolean().optional()
|
|
154
|
+
});
|
|
155
|
+
/** Password auth — forbids the private key so the variants stay exclusive. */
|
|
156
|
+
const ftpPasswordAuth = ftpConnection.extend({
|
|
157
|
+
"#password": zod.z.string(),
|
|
158
|
+
"#privateKey": forbidden
|
|
159
|
+
}).loose();
|
|
160
|
+
/** Private-key auth — forbids the password so the variants stay exclusive. */
|
|
161
|
+
const ftpPrivateKeyAuth = ftpConnection.extend({
|
|
162
|
+
"#privateKey": zod.z.string(),
|
|
163
|
+
"#password": forbidden
|
|
164
|
+
}).loose();
|
|
165
|
+
/**
|
|
166
|
+
* `keboola.ex-ftp` / `keboola.ex-ftp-csas` — FTP/FTPS/SFTP server connection. Auth is a password
|
|
167
|
+
* OR a private key (exactly one): each variant requires its secret and *forbids the other*
|
|
168
|
+
* (`z.undefined()`), so a config with both — or neither — is rejected, and switching variants via
|
|
169
|
+
* an update drops the abandoned secret (the whole `parameters` union subtree is replaced wholesale
|
|
170
|
+
* by `schemaGuidedMerge`, so a partial patch must carry the complete connection block). The outer
|
|
171
|
+
* object is `.loose()` so top-level component-managed keys (`storage`, `processors`) pass through.
|
|
172
|
+
*/
|
|
173
|
+
const exFtpSchema = zod.z.object({ parameters: zod.z.union([ftpPasswordAuth, ftpPrivateKeyAuth]) }).loose();
|
|
174
|
+
// src/sdks/configurations/schemas/ex/exHttpSchema.ts
|
|
175
|
+
/**
|
|
176
|
+
* `keboola.ex-http` — only the connection block is stable here. The request/job definitions are
|
|
177
|
+
* component-managed and left unvalidated, so both levels are `.loose()`: extra `parameters` keys
|
|
178
|
+
* and top-level keys (`storage`, `processors`) pass through `schema`/`inputSchema` unchanged rather
|
|
179
|
+
* than being stripped on create/update.
|
|
180
|
+
*/
|
|
181
|
+
const exHttpSchema = zod.z.object({ parameters: zod.z.object({
|
|
182
|
+
baseUrl: zod.z.string(),
|
|
183
|
+
maxRedirects: zod.z.number().optional()
|
|
184
|
+
}).loose() }).loose();
|
|
185
|
+
// src/sdks/configurations/schemas/exDb/exDbDefaultSchema.ts
|
|
186
|
+
/**
|
|
187
|
+
* Default extractor credentials with an optional SSH tunnel, for the generic SSH-only drivers.
|
|
188
|
+
*
|
|
189
|
+
* - Keep in sync with kbc-ui's `hasSshTunnel` / `hasSsl` (`ex-db-generic/helpers.ts`).
|
|
190
|
+
* - SSL-capable, tunnel-less and extra-field drivers get their own schema.
|
|
191
|
+
*/
|
|
192
|
+
const exDbDefaultSchema = dbConfig(dbConnectionSchema.extend({ ssh: sshTunnelSchema.optional() }));
|
|
193
|
+
// src/sdks/configurations/schemas/exDb/exDbPgsqlSchema.ts
|
|
194
|
+
/** `keboola.ex-db-pgsql` — generic credentials that also accept SSL. */
|
|
195
|
+
const exDbPgsqlSchema = dbConfig(dbConnectionSchema.extend({
|
|
196
|
+
ssh: sshTunnelSchema.optional(),
|
|
197
|
+
ssl: sslSchema.optional()
|
|
198
|
+
}));
|
|
199
|
+
// src/sdks/configurations/schemas/exDb/exDbProgressSchema.ts
|
|
200
|
+
/** `kds-team.ex-progress-db` — generic credentials, no SSH tunnel or SSL. */
|
|
201
|
+
const exDbProgressSchema = dbConfig(dbConnectionSchema);
|
|
202
|
+
// src/sdks/configurations/schemas/exDb/exDbMysqlSchema.ts
|
|
203
|
+
/** `keboola.ex-db-mysql` — `database` optional + transaction-isolation / network-compression. */
|
|
204
|
+
const exDbMysqlSchema = dbConfig(dbConnectionSchema.extend({
|
|
205
|
+
database: zod.z.string().optional(),
|
|
206
|
+
transactionIsolationLevel: zod.z.enum([
|
|
207
|
+
"REPEATABLE READ",
|
|
208
|
+
"READ COMMITTED",
|
|
209
|
+
"READ UNCOMMITTED",
|
|
210
|
+
"SERIALIZABLE"
|
|
211
|
+
]).optional(),
|
|
212
|
+
networkCompression: zod.z.boolean().optional(),
|
|
213
|
+
ssh: sshTunnelSchema.optional(),
|
|
214
|
+
ssl: sslSchema.optional()
|
|
215
|
+
}));
|
|
216
|
+
// src/sdks/configurations/schemas/exDb/exDbMssqlSchema.ts
|
|
217
|
+
/** `keboola.ex-db-mssql` — `port` optional, otherwise the shared base. */
|
|
218
|
+
const exDbMssqlSchema = dbConfig(dbConnectionSchema.extend({
|
|
219
|
+
port: zod.z.number().optional(),
|
|
220
|
+
ssh: sshTunnelSchema.optional(),
|
|
221
|
+
ssl: sslSchema.optional()
|
|
222
|
+
}));
|
|
223
|
+
// src/sdks/configurations/schemas/exDb/exDbOracleSchema.ts
|
|
224
|
+
/** `keboola.ex-db-oracle` — host/port/database all optional (tnsnames is the alternative). */
|
|
225
|
+
const exDbOracleSchema = dbConfig(dbConnectionSchema.omit({
|
|
226
|
+
host: true,
|
|
227
|
+
port: true,
|
|
228
|
+
database: true
|
|
229
|
+
}).extend({
|
|
230
|
+
host: zod.z.string().optional(),
|
|
231
|
+
port: zod.z.number().optional(),
|
|
232
|
+
database: zod.z.string().optional(),
|
|
233
|
+
tnsnames: zod.z.string().optional(),
|
|
234
|
+
connectThrough: zod.z.boolean().optional(),
|
|
235
|
+
ssh: sshTunnelSchema.optional()
|
|
236
|
+
}));
|
|
237
|
+
// src/sdks/configurations/schemas/exDb/exDbFirebirdSchema.ts
|
|
238
|
+
/** `keboola.ex-db-firebird` — `dbname` + user/#password only (no host/port/database fields). */
|
|
239
|
+
const exDbFirebirdSchema = dbConfig(zod.z.object({
|
|
240
|
+
dbname: zod.z.string(),
|
|
241
|
+
user: zod.z.string(),
|
|
242
|
+
"#password": zod.z.string()
|
|
243
|
+
}));
|
|
244
|
+
// src/sdks/configurations/schemas/exDb/exTeradataSchema.ts
|
|
245
|
+
/** `keboola.ex-teradata` — shared base with optional `database`. */
|
|
246
|
+
const exTeradataSchema = dbConfig(dbConnectionSchema.extend({ database: zod.z.string().optional() }));
|
|
247
|
+
// src/sdks/configurations/schemas/exDb/exDbInformixSchema.ts
|
|
248
|
+
/** `keboola.ex-db-informix` — Informix server name + protocol + optional locale. */
|
|
249
|
+
const exDbInformixSchema = dbConfig(dbConnectionSchema.extend({
|
|
250
|
+
serverName: zod.z.string(),
|
|
251
|
+
protocol: zod.z.enum(["onsoctcp", "onsocssl"]),
|
|
252
|
+
dbLocale: zod.z.string().optional()
|
|
253
|
+
}));
|
|
254
|
+
// src/sdks/configurations/schemas/exDb/exDbSnowflakeSchema.ts
|
|
255
|
+
/**
|
|
256
|
+
* `keboola.ex-db-snowflake` — auth is a union: password OR key-pair (exactly one). The common
|
|
257
|
+
* fields (host/port/user/database + optional schema/warehouse) are shared; each variant requires
|
|
258
|
+
* its own secret and forbids the other, so a config carrying both — or neither — is rejected at
|
|
259
|
+
* runtime and at the type level.
|
|
260
|
+
*/
|
|
261
|
+
const snowflakeCommon$1 = dbConnectionSchema.omit({ "#password": true }).extend({
|
|
262
|
+
schema: zod.z.string().optional(),
|
|
263
|
+
warehouse: zod.z.string().optional()
|
|
264
|
+
});
|
|
265
|
+
const exDbSnowflakeSchema = dbConfig(zod.z.union([snowflakeCommon$1.extend({
|
|
266
|
+
"#password": zod.z.string(),
|
|
267
|
+
"#privateKey": forbidden
|
|
268
|
+
}), snowflakeCommon$1.extend({
|
|
269
|
+
"#privateKey": zod.z.string(),
|
|
270
|
+
"#password": forbidden
|
|
271
|
+
})]));
|
|
272
|
+
// src/sdks/configurations/schemas/exDb/exDbNetsuiteSchema.ts
|
|
273
|
+
/** `keboola.ex-db-netsuite` — SuiteAnalytics account/role + user/#password (no host/port/db). */
|
|
274
|
+
const exDbNetsuiteSchema = dbConfig(zod.z.object({
|
|
275
|
+
accountId: zod.z.string(),
|
|
276
|
+
roleId: zod.z.string(),
|
|
277
|
+
user: zod.z.string(),
|
|
278
|
+
"#password": zod.z.string()
|
|
279
|
+
}));
|
|
280
|
+
/** `kds-team.ex-netsuite` — Connect host/port + server data source + account/role. */
|
|
281
|
+
const exKdsNetsuiteSchema = dbConfig(zod.z.object({
|
|
282
|
+
host: zod.z.string(),
|
|
283
|
+
port: zod.z.number(),
|
|
284
|
+
server_data_source: zod.z.enum(["NetSuite.com", "NetSuite2.com"]),
|
|
285
|
+
account_id: zod.z.string(),
|
|
286
|
+
role_id: zod.z.string(),
|
|
287
|
+
user: zod.z.string(),
|
|
288
|
+
"#password": zod.z.string()
|
|
289
|
+
}));
|
|
290
|
+
// src/sdks/configurations/schemas/gooddataWriterSchema.ts
|
|
291
|
+
/**
|
|
292
|
+
* A single exported column. `type` is always present and drives which of the other fields the
|
|
293
|
+
* UI shows (and persists): `dataType`/`dataTypeSize` for the base types + LABEL, `reference` for
|
|
294
|
+
* LABEL/HYPERLINK, `schemaReference` for REFERENCE, `format`/`dateDimension` for DATE, and
|
|
295
|
+
* `sortLabel`/`sortOrder` + the `identifier*` fields for ATTRIBUTE. They're optional here since a
|
|
296
|
+
* given column only carries the subset relevant to its type. Mirrors the kbc-ui column adapter
|
|
297
|
+
* (`apps/kbc-ui/src/scripts/modules/gooddata-writer-v3/helpers/makeColumnDefinition.ts`).
|
|
298
|
+
*/
|
|
299
|
+
const gooddataColumn = zod.z.object({
|
|
300
|
+
type: zod.z.enum([
|
|
301
|
+
"ATTRIBUTE",
|
|
302
|
+
"CONNECTION_POINT",
|
|
303
|
+
"DATE",
|
|
304
|
+
"FACT",
|
|
305
|
+
"HYPERLINK",
|
|
306
|
+
"LABEL",
|
|
307
|
+
"REFERENCE",
|
|
308
|
+
"IGNORE"
|
|
309
|
+
]),
|
|
310
|
+
id: zod.z.string().optional(),
|
|
311
|
+
title: zod.z.string().optional(),
|
|
312
|
+
dataType: zod.z.enum([
|
|
313
|
+
"BIGINT",
|
|
314
|
+
"DATE",
|
|
315
|
+
"DECIMAL",
|
|
316
|
+
"INT",
|
|
317
|
+
"VARCHAR"
|
|
318
|
+
]).optional(),
|
|
319
|
+
dataTypeSize: zod.z.string().optional(),
|
|
320
|
+
reference: zod.z.string().optional(),
|
|
321
|
+
schemaReference: zod.z.string().optional(),
|
|
322
|
+
sortLabel: zod.z.string().optional(),
|
|
323
|
+
sortOrder: zod.z.enum(["ASC", "DESC"]).optional(),
|
|
324
|
+
format: zod.z.string().optional(),
|
|
325
|
+
dateDimension: zod.z.string().optional(),
|
|
326
|
+
identifier: zod.z.string().optional(),
|
|
327
|
+
identifierLabel: zod.z.string().optional(),
|
|
328
|
+
identifierSortLabel: zod.z.string().optional()
|
|
329
|
+
});
|
|
330
|
+
/** One exported table: a GoodData `title`, its `columns` keyed by source column name, and an
|
|
331
|
+
* optional `disabled` flag toggled when export is switched off. */
|
|
332
|
+
const gooddataTable = zod.z.object({
|
|
333
|
+
title: zod.z.string(),
|
|
334
|
+
disabled: zod.z.boolean().optional(),
|
|
335
|
+
identifier: zod.z.string().optional(),
|
|
336
|
+
columns: zod.z.record(zod.z.string(), gooddataColumn)
|
|
337
|
+
});
|
|
338
|
+
/** One date dimension; `template` selects the date-dimension template (`gooddata` / `keboola` /
|
|
339
|
+
* a custom template id). */
|
|
340
|
+
const gooddataDimension = zod.z.object({
|
|
341
|
+
template: zod.z.string(),
|
|
342
|
+
includeTime: zod.z.boolean().optional(),
|
|
343
|
+
identifier: zod.z.string().optional()
|
|
344
|
+
});
|
|
345
|
+
/**
|
|
346
|
+
* `keboola.gooddata-writer` — GoodData project + login credentials plus the exported model:
|
|
347
|
+
* `tables` (keyed by source table id) and `dimensions` (keyed by dimension name). Both are
|
|
348
|
+
* optional — a fresh config has credentials before any table/dimension is mapped — and must be
|
|
349
|
+
* declared: the registry validates create/update input with a deep-partial that strips keys
|
|
350
|
+
* absent from this shape, so an undeclared `tables`/`dimensions` payload would be dropped before
|
|
351
|
+
* it's stored.
|
|
352
|
+
*/
|
|
353
|
+
const gooddataWriterSchema = zod.z.object({ parameters: zod.z.object({
|
|
354
|
+
project: zod.z.object({
|
|
355
|
+
pid: zod.z.string(),
|
|
356
|
+
backendUrl: zod.z.string().optional()
|
|
357
|
+
}),
|
|
358
|
+
user: zod.z.object({
|
|
359
|
+
login: zod.z.string(),
|
|
360
|
+
"#password": zod.z.string()
|
|
361
|
+
}),
|
|
362
|
+
loadOnly: zod.z.boolean().optional(),
|
|
363
|
+
multiLoad: zod.z.boolean().optional(),
|
|
364
|
+
tables: zod.z.record(zod.z.string(), gooddataTable).optional(),
|
|
365
|
+
dimensions: zod.z.record(zod.z.string(), gooddataDimension).optional()
|
|
366
|
+
}) });
|
|
367
|
+
// src/sdks/configurations/schemas/googleAdsSchema.ts
|
|
368
|
+
/** `keboola.ex-google-ads` — OAuth credential reference + account selection. */
|
|
369
|
+
const exGoogleAdsSchema = zod.z.object({
|
|
370
|
+
authorization: oauthAuthorizationSchema,
|
|
371
|
+
parameters: zod.z.object({
|
|
372
|
+
customerId: zod.z.array(zod.z.string()),
|
|
373
|
+
onlyEnabledCustomers: zod.z.boolean().optional(),
|
|
374
|
+
continueOnFailure: zod.z.boolean().optional(),
|
|
375
|
+
getAccountChildren: zod.z.boolean().optional()
|
|
376
|
+
})
|
|
377
|
+
});
|
|
378
|
+
// src/sdks/configurations/schemas/schedulerSchema.ts
|
|
379
|
+
/**
|
|
380
|
+
* `keboola.scheduler` — drives a target component config on a cron schedule. Unlike the
|
|
381
|
+
* writer configs, scheduler state lives at the top level (no `parameters` wrapper):
|
|
382
|
+
* `schedule` holds the cron expression + timezone + enabled/disabled state, `target`
|
|
383
|
+
* identifies which component configuration to run.
|
|
384
|
+
*/
|
|
385
|
+
const schedulerSchema = zod.z.object({
|
|
386
|
+
schedule: zod.z.object({
|
|
387
|
+
cronTab: zod.z.string(),
|
|
388
|
+
timezone: zod.z.string().optional(),
|
|
389
|
+
state: zod.z.enum(["enabled", "disabled"])
|
|
390
|
+
}),
|
|
391
|
+
target: zod.z.object({
|
|
392
|
+
componentId: zod.z.string(),
|
|
393
|
+
configurationId: zod.z.string(),
|
|
394
|
+
mode: zod.z.literal("run")
|
|
395
|
+
})
|
|
396
|
+
});
|
|
397
|
+
// src/sdks/configurations/schemas/wrDb/wrDbDefaultSchema.ts
|
|
398
|
+
/**
|
|
399
|
+
* Default writer credentials — host/port/user/#password/database + optional SSH and SSL tunnels.
|
|
400
|
+
* Shared by the writers that add no extra fields (`keboola.wr-db-mysql`, `keboola.wr-db-hive`);
|
|
401
|
+
* writers that add or rename fields get their own schema.
|
|
402
|
+
*/
|
|
403
|
+
const wrDbDefaultSchema = dbConfig(dbConnectionSchema.extend({
|
|
404
|
+
ssh: sshTunnelSchema.optional(),
|
|
405
|
+
ssl: sslSchema.optional()
|
|
406
|
+
}));
|
|
407
|
+
// src/sdks/configurations/schemas/wrDb/wrDbPgsqlSchema.ts
|
|
408
|
+
/** `keboola.wr-db-pgsql` — adds a required `schema`, optional SSH. */
|
|
409
|
+
const wrDbPgsqlSchema = dbConfig(dbConnectionSchema.extend({
|
|
410
|
+
schema: zod.z.string(),
|
|
411
|
+
ssh: sshTunnelSchema.optional()
|
|
412
|
+
}));
|
|
413
|
+
// src/sdks/configurations/schemas/wrDb/wrDbOracleSchema.ts
|
|
414
|
+
/** `keboola.wr-db-oracle` — optional `schema`, optional SSH. */
|
|
415
|
+
const wrDbOracleSchema = dbConfig(dbConnectionSchema.extend({
|
|
416
|
+
schema: zod.z.string().optional(),
|
|
417
|
+
ssh: sshTunnelSchema.optional()
|
|
418
|
+
}));
|
|
419
|
+
// src/sdks/configurations/schemas/wrDb/wrSynapseSchema.ts
|
|
420
|
+
/** `keboola.wr-synapse` — optional `schema` (defaults to `dbo` in the UI). */
|
|
421
|
+
const wrSynapseSchema = dbConfig(dbConnectionSchema.extend({ schema: zod.z.string().optional() }));
|
|
422
|
+
// src/sdks/configurations/schemas/wrDb/wrRedshiftSchema.ts
|
|
423
|
+
/** `keboola.wr-redshift-v2` — required `schema`, optional SSH. */
|
|
424
|
+
const wrRedshiftSchema = dbConfig(dbConnectionSchema.extend({
|
|
425
|
+
schema: zod.z.string(),
|
|
426
|
+
ssh: sshTunnelSchema.optional()
|
|
427
|
+
}));
|
|
428
|
+
// src/sdks/configurations/schemas/wrDb/wrDbMssqlSchema.ts
|
|
429
|
+
/** `keboola.wr-db-mssql-v2` — optional `instance`, required `tdsVersion`, optional SSH. */
|
|
430
|
+
const wrDbMssqlSchema = dbConfig(dbConnectionSchema.extend({
|
|
431
|
+
instance: zod.z.string().optional(),
|
|
432
|
+
tdsVersion: zod.z.enum([
|
|
433
|
+
"7.0",
|
|
434
|
+
"7.1",
|
|
435
|
+
"7.2",
|
|
436
|
+
"7.3",
|
|
437
|
+
"7.4"
|
|
438
|
+
]),
|
|
439
|
+
ssh: sshTunnelSchema.optional()
|
|
440
|
+
}));
|
|
441
|
+
// src/sdks/configurations/schemas/wrDb/wrDbImpalaSchema.ts
|
|
442
|
+
/** `keboola.wr-db-impala` — adds `auth_mech`, optional SSH. */
|
|
443
|
+
const wrDbImpalaSchema = dbConfig(dbConnectionSchema.extend({
|
|
444
|
+
auth_mech: zod.z.number(),
|
|
445
|
+
ssh: sshTunnelSchema.optional()
|
|
446
|
+
}));
|
|
447
|
+
// src/sdks/configurations/schemas/wrDb/wrExasolSchema.ts
|
|
448
|
+
/**
|
|
449
|
+
* `kds-team.wr-exasol` — no `database`; auth is password OR SaaS personal-access-token
|
|
450
|
+
* (`#refresh_token`), at least one required (both may coexist). Mirrors kbc-ui's
|
|
451
|
+
* `apps/kbc-ui/src/scripts/modules/wr-db/templates/hasValidCredentials.ts`, which drops the
|
|
452
|
+
* `#password` requirement once a `#refresh_token` is present.
|
|
453
|
+
*/
|
|
454
|
+
const exasolBase = zod.z.object({
|
|
455
|
+
host: zod.z.string(),
|
|
456
|
+
port: zod.z.number(),
|
|
457
|
+
user: zod.z.string(),
|
|
458
|
+
schema: zod.z.string()
|
|
459
|
+
});
|
|
460
|
+
const wrExasolSchema = dbConfig(zod.z.union([exasolBase.extend({
|
|
461
|
+
"#password": zod.z.string(),
|
|
462
|
+
"#refresh_token": zod.z.string().optional()
|
|
463
|
+
}), exasolBase.extend({
|
|
464
|
+
"#refresh_token": zod.z.string(),
|
|
465
|
+
"#password": zod.z.string().optional()
|
|
466
|
+
})]));
|
|
467
|
+
// src/sdks/configurations/schemas/wrDb/wrFireboltSchema.ts
|
|
468
|
+
/** `kds-team.wr-firebolt` — no host/port; engine + AWS staging credentials. */
|
|
469
|
+
const wrFireboltSchema = dbConfig(zod.z.object({
|
|
470
|
+
user: zod.z.string(),
|
|
471
|
+
"#password": zod.z.string(),
|
|
472
|
+
database: zod.z.string(),
|
|
473
|
+
aws_api_key_id: zod.z.string(),
|
|
474
|
+
"#aws_api_key_secret": zod.z.string(),
|
|
475
|
+
staging_bucket: zod.z.string(),
|
|
476
|
+
engine_name: zod.z.string().optional()
|
|
477
|
+
}));
|
|
478
|
+
// src/sdks/configurations/schemas/wrDb/wrHiveCsasSchema.ts
|
|
479
|
+
/** `kds-team.wr-hive-csas` — Hive base + Kerberos auth. */
|
|
480
|
+
const wrHiveCsasSchema = dbConfig(dbConnectionSchema.extend({
|
|
481
|
+
kinitPrincipal: zod.z.string(),
|
|
482
|
+
servicePrincipal: zod.z.string(),
|
|
483
|
+
config: zod.z.string(),
|
|
484
|
+
"#keytab": zod.z.string(),
|
|
485
|
+
ssh: sshTunnelSchema.optional()
|
|
486
|
+
}));
|
|
487
|
+
// src/sdks/configurations/schemas/wrDb/wrThoughtspotSchema.ts
|
|
488
|
+
/** `keboola.wr-thoughtspot` — SSH tunnel creds carried as top-level fields, not nested. */
|
|
489
|
+
const wrThoughtspotSchema = dbConfig(dbConnectionSchema.extend({
|
|
490
|
+
schema: zod.z.string().optional(),
|
|
491
|
+
sshUser: zod.z.string(),
|
|
492
|
+
"#sshPassword": zod.z.string()
|
|
493
|
+
}));
|
|
494
|
+
// src/sdks/configurations/schemas/wrDb/wrSisenseSchema.ts
|
|
495
|
+
/** `keboola.wr-sisense` — uses `username` (not `user`). */
|
|
496
|
+
const wrSisenseSchema = dbConfig(zod.z.object({
|
|
497
|
+
host: zod.z.string(),
|
|
498
|
+
port: zod.z.number(),
|
|
499
|
+
username: zod.z.string(),
|
|
500
|
+
"#password": zod.z.string(),
|
|
501
|
+
database: zod.z.string()
|
|
502
|
+
}));
|
|
503
|
+
// src/sdks/configurations/schemas/wrDb/wrDbSnowflakeSchema.ts
|
|
504
|
+
/**
|
|
505
|
+
* `keboola.wr-db-snowflake` — auth is a union: password OR key-pair (exactly one). The common
|
|
506
|
+
* fields (host/port/user/database/schema/warehouse) are shared; each variant requires its own
|
|
507
|
+
* secret and *forbids the other* (`z.undefined()`), so a config carrying both — or neither —
|
|
508
|
+
* is rejected at runtime and at the type level. Without the `forbidden` half, the variants
|
|
509
|
+
* would be open objects: the extra key is excess (TS allows it) and stripped (Zod accepts it).
|
|
510
|
+
*/
|
|
511
|
+
const snowflakeCommon = dbConnectionSchema.omit({ "#password": true }).extend({
|
|
512
|
+
schema: zod.z.string(),
|
|
513
|
+
warehouse: zod.z.string().optional()
|
|
514
|
+
});
|
|
515
|
+
const wrDbSnowflakeSchema = dbConfig(zod.z.union([snowflakeCommon.extend({
|
|
516
|
+
"#password": zod.z.string(),
|
|
517
|
+
"#privateKey": forbidden
|
|
518
|
+
}), snowflakeCommon.extend({
|
|
519
|
+
"#privateKey": zod.z.string(),
|
|
520
|
+
"#password": forbidden
|
|
521
|
+
})]));
|
|
522
|
+
// src/sdks/configurations/createRegistry/createRegistry.ts
|
|
523
|
+
/** Deep-partial any schema: objects → keys optional (recursing), unions → each member
|
|
524
|
+
* deep-partialed, anything else left as-is. Lets a union schema (e.g. Snowflake's
|
|
525
|
+
* password | key-pair auth) still produce a partial input schema. */
|
|
526
|
+
const partialize = (schema) => {
|
|
527
|
+
if (schema instanceof zod.z.ZodObject) return deepPartial(schema);
|
|
528
|
+
if (schema instanceof zod.z.ZodUnion) {
|
|
529
|
+
const options = schema.options.map(partialize);
|
|
530
|
+
return zod.z.union(options);
|
|
531
|
+
}
|
|
532
|
+
return schema;
|
|
533
|
+
};
|
|
534
|
+
const deepPartial = (schema) => {
|
|
535
|
+
const shape = {};
|
|
536
|
+
for (const [key, value] of Object.entries(schema.shape)) {
|
|
537
|
+
const field = value;
|
|
538
|
+
const inner = field instanceof zod.z.ZodOptional ? field.unwrap() : field;
|
|
539
|
+
shape[key] = partialize(inner);
|
|
540
|
+
}
|
|
541
|
+
const partial = zod.z.object(shape).partial();
|
|
542
|
+
return schema.def.catchall ? partial.catchall(schema.def.catchall) : partial;
|
|
543
|
+
};
|
|
544
|
+
const createRegistry = () => {
|
|
545
|
+
const map = /* @__PURE__ */ new Map();
|
|
546
|
+
const registry = {
|
|
547
|
+
add(componentId, schema) {
|
|
548
|
+
map.set(componentId, schema);
|
|
549
|
+
return registry;
|
|
550
|
+
},
|
|
551
|
+
get(componentId) {
|
|
552
|
+
const schema = map.get(componentId);
|
|
553
|
+
if (!schema) throw new Error(`No configuration registered for component "${componentId}".`);
|
|
554
|
+
return {
|
|
555
|
+
schema,
|
|
556
|
+
inputSchema: deepPartial(schema)
|
|
557
|
+
};
|
|
558
|
+
},
|
|
559
|
+
has: (componentId) => map.has(componentId)
|
|
560
|
+
};
|
|
561
|
+
return registry;
|
|
562
|
+
};
|
|
563
|
+
// src/sdks/configurations/registry.ts
|
|
564
|
+
const registry = createRegistry().add(require_componentId.ComponentId.WR_DB_MYSQL, wrDbDefaultSchema).add(require_componentId.ComponentId.WR_DB_PGSQL, wrDbPgsqlSchema).add(require_componentId.ComponentId.WR_PAIRITY, wrDbPgsqlSchema).add(require_componentId.ComponentId.WR_DB_ORACLE, wrDbOracleSchema).add(require_componentId.ComponentId.WR_DB_SNOWFLAKE, wrDbSnowflakeSchema).add(require_componentId.ComponentId.WR_DB_SNOWFLAKE_GCS, wrDbSnowflakeSchema).add(require_componentId.ComponentId.WR_DB_SNOWFLAKE_GCS_S3, wrDbSnowflakeSchema).add(require_componentId.ComponentId.WR_SNOWFLAKE_BLOB_STORAGE, wrDbSnowflakeSchema).add(require_componentId.ComponentId.WR_LOOKER_V2, wrDbSnowflakeSchema).add(require_componentId.ComponentId.WR_SYNAPSE, wrSynapseSchema).add(require_componentId.ComponentId.WR_REDSHIFT, wrRedshiftSchema).add(require_componentId.ComponentId.WR_DB_MSSQL, wrDbMssqlSchema).add(require_componentId.ComponentId.WR_DB_HIVE, wrDbDefaultSchema).add(require_componentId.ComponentId.WR_DB_IMPALA, wrDbImpalaSchema).add(require_componentId.ComponentId.WR_HIVE_CSAS, wrHiveCsasSchema).add(require_componentId.ComponentId.WR_THOUGHTSPOT, wrThoughtspotSchema).add(require_componentId.ComponentId.WR_EXASOL, wrExasolSchema).add(require_componentId.ComponentId.WR_FIREBOLT, wrFireboltSchema).add(require_componentId.ComponentId.WR_SISENSE, wrSisenseSchema).add(require_componentId.ComponentId.APP_DATA_GATEWAY, appDataGatewaySchema).add(require_componentId.ComponentId.SCHEDULER, schedulerSchema).add(require_componentId.ComponentId.APP_SNOWFLAKE_DWH_MANAGER, appSnowflakeDwhManagerSchema).add(require_componentId.ComponentId.GOODDATA_WRITER, gooddataWriterSchema).add(require_componentId.ComponentId.EX_DB_REDSHIFT, exDbDefaultSchema).add(require_componentId.ComponentId.EX_DB_DB2, exDbDefaultSchema).add(require_componentId.ComponentId.EX_DB_DB2_BATA, exDbDefaultSchema).add(require_componentId.ComponentId.EX_DB_MSSQL_CDATA, exDbDefaultSchema).add(require_componentId.ComponentId.EX_DB_IMPALA, exDbDefaultSchema).add(require_componentId.ComponentId.EX_DB_HIVE, exDbDefaultSchema).add(require_componentId.ComponentId.EX_DB_HIVE_CSAS, exDbDefaultSchema).add(require_componentId.ComponentId.EX_DB_HIVE_CSAS_TEST, exDbDefaultSchema).add(require_componentId.ComponentId.EX_DB_PGSQL, exDbPgsqlSchema).add(require_componentId.ComponentId.EX_DB_MYSQL, exDbMysqlSchema).add(require_componentId.ComponentId.EX_DB_MSSQL, exDbMssqlSchema).add(require_componentId.ComponentId.EX_DB_ORACLE, exDbOracleSchema).add(require_componentId.ComponentId.EX_DB_SNOWFLAKE, exDbSnowflakeSchema).add(require_componentId.ComponentId.EX_DB_FIREBIRD, exDbFirebirdSchema).add(require_componentId.ComponentId.EX_DB_NETSUITE, exDbNetsuiteSchema).add(require_componentId.ComponentId.EX_DB_INFORMIX, exDbInformixSchema).add(require_componentId.ComponentId.EX_TERADATA, exTeradataSchema).add(require_componentId.ComponentId.KDS_EX_NETSUITE, exKdsNetsuiteSchema).add(require_componentId.ComponentId.KDS_EX_PROGRESS_DB, exDbProgressSchema).add(require_componentId.ComponentId.EX_GOOGLE_ADS, exGoogleAdsSchema).add(require_componentId.ComponentId.EX_HTTP, exHttpSchema).add(require_componentId.ComponentId.EX_FTP, exFtpSchema).add(require_componentId.ComponentId.EX_FTP_CSAS, exFtpSchema).add(require_componentId.ComponentId.EX_AWS_S3, exAwsS3Schema).add(require_componentId.ComponentId.KDS_EX_AZURE_BLOB_STORAGE_V2, exAzureBlobSchema).add(require_componentId.ComponentId.KDS_EX_AZURE_DATA_LAKE_GEN2, exAzureDataLakeSchema);
|
|
565
|
+
// src/sdks/configurations/configurationsSdk.ts
|
|
566
|
+
const toConfigResult = (data, schema) => {
|
|
567
|
+
const result = schema.safeParse(data.configuration);
|
|
568
|
+
return {
|
|
569
|
+
data,
|
|
570
|
+
runnable: result.success,
|
|
571
|
+
error: result.error
|
|
572
|
+
};
|
|
573
|
+
};
|
|
574
|
+
const createConfigurationSdk = ({ storageClient, encryptionClient, context }) => {
|
|
575
|
+
const _encrypt = async (componentId, data) => {
|
|
576
|
+
if (require_schemaGuidedMerge.isEmptyDeep(data)) return data;
|
|
577
|
+
return encryptionClient.encryptScopedSecrets({
|
|
578
|
+
scope: "ProjectSecure",
|
|
579
|
+
componentId,
|
|
580
|
+
projectId: context.project.sapiToken.owner.id,
|
|
581
|
+
data
|
|
582
|
+
});
|
|
583
|
+
};
|
|
584
|
+
const getConfiguration = async (path) => {
|
|
585
|
+
const data = await storageClient.configurations.getConfiguration(path);
|
|
586
|
+
const def = registry.get(path.componentId);
|
|
587
|
+
return toConfigResult(data, def.schema);
|
|
588
|
+
};
|
|
589
|
+
const createConfiguration = async (input) => {
|
|
590
|
+
const { componentId, branchId, configuration, ...rest } = input;
|
|
591
|
+
require_configurations.assertCanCreateConfiguration(context.project.sapiToken, { isDevModeActive: context.defaultBranch.isDev(branchId) });
|
|
592
|
+
const def = registry.get(componentId);
|
|
593
|
+
const validated = def.inputSchema.parse(configuration);
|
|
594
|
+
const encrypted = await _encrypt(componentId, validated);
|
|
595
|
+
const data = await storageClient.configurations.createConfiguration({
|
|
596
|
+
...rest,
|
|
597
|
+
branchId,
|
|
598
|
+
componentId,
|
|
599
|
+
configuration: encrypted
|
|
600
|
+
});
|
|
601
|
+
return toConfigResult(data, def.schema);
|
|
602
|
+
};
|
|
603
|
+
const updateConfiguration = async (input) => {
|
|
604
|
+
const { componentId, branchId, configId, configuration, mode = "merge", ...rest } = input;
|
|
605
|
+
require_configurations.assertCanUpdateConfiguration(context.project.sapiToken, { isDevModeActive: context.defaultBranch.isDev(branchId) });
|
|
606
|
+
const def = registry.get(componentId);
|
|
607
|
+
const validated = def.inputSchema.parse(configuration);
|
|
608
|
+
const encrypted = await _encrypt(componentId, validated);
|
|
609
|
+
let newConfiguration = encrypted;
|
|
610
|
+
if (mode === "merge") {
|
|
611
|
+
const original = await storageClient.configurations.getConfiguration({
|
|
612
|
+
componentId,
|
|
613
|
+
branchId,
|
|
614
|
+
configId
|
|
615
|
+
});
|
|
616
|
+
newConfiguration = require_schemaGuidedMerge.schemaGuidedMerge(def.schema, original.configuration ?? {}, encrypted);
|
|
617
|
+
}
|
|
618
|
+
const { configuration: data } = await storageClient.configurations.updateConfiguration({
|
|
619
|
+
...rest,
|
|
620
|
+
branchId,
|
|
621
|
+
componentId,
|
|
622
|
+
configId,
|
|
623
|
+
configuration: newConfiguration
|
|
624
|
+
});
|
|
625
|
+
return toConfigResult(data, def.schema);
|
|
626
|
+
};
|
|
627
|
+
return {
|
|
628
|
+
getConfiguration,
|
|
629
|
+
createConfiguration,
|
|
630
|
+
updateConfiguration
|
|
631
|
+
};
|
|
632
|
+
};
|
|
633
|
+
exports.createConfigurationSdk = createConfigurationSdk;
|
|
634
|
+
|
|
635
|
+
//# sourceMappingURL=index.cjs.map
|