@keboola/api-client 5.0.0 → 6.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/dist/ai/index.cjs +4 -4
- package/dist/ai/index.d.cts +23 -1
- package/dist/ai/index.d.ts +23 -1
- package/dist/ai/index.js +3 -3
- package/dist/ai/types.d.cts +1 -1
- package/dist/ai/types.d.ts +1 -1
- package/dist/assets/index.cjs +4 -4
- package/dist/assets/index.js +3 -3
- package/dist/chat/index.cjs +4 -4
- package/dist/chat/index.js +3 -3
- package/dist/{chunk-7JOV7PXU.js → chunk-2Q75RQ3X.js} +4 -4
- package/dist/{chunk-7JOV7PXU.js.map → chunk-2Q75RQ3X.js.map} +1 -1
- package/dist/{chunk-7PPUK4HS.js → chunk-4HORTOGH.js} +4 -4
- package/dist/{chunk-7PPUK4HS.js.map → chunk-4HORTOGH.js.map} +1 -1
- package/dist/chunk-4KJRGFNV.cjs +54 -0
- package/dist/chunk-4KJRGFNV.cjs.map +1 -0
- package/dist/{chunk-T7UDL2KI.cjs → chunk-4S3EKVQT.cjs} +9 -9
- package/dist/{chunk-T7UDL2KI.cjs.map → chunk-4S3EKVQT.cjs.map} +1 -1
- package/dist/{chunk-4FU45NEU.js → chunk-54N7LIDM.js} +5 -5
- package/dist/chunk-54N7LIDM.js.map +1 -0
- package/dist/{chunk-WOGG723K.cjs → chunk-5XKPYMQL.cjs} +8 -5
- package/dist/chunk-5XKPYMQL.cjs.map +1 -0
- package/dist/{chunk-S7HIK7XY.js → chunk-5YTV36EI.js} +4 -4
- package/dist/{chunk-S7HIK7XY.js.map → chunk-5YTV36EI.js.map} +1 -1
- package/dist/{chunk-XRHAE4SD.js → chunk-6S4JS7OJ.js} +3 -3
- package/dist/{chunk-XRHAE4SD.js.map → chunk-6S4JS7OJ.js.map} +1 -1
- package/dist/{chunk-DOUFVJJF.cjs → chunk-AK4ZHM77.cjs} +6 -6
- package/dist/{chunk-DOUFVJJF.cjs.map → chunk-AK4ZHM77.cjs.map} +1 -1
- package/dist/chunk-BBRS2HLH.cjs +46 -0
- package/dist/chunk-BBRS2HLH.cjs.map +1 -0
- package/dist/chunk-BZO2GTJP.js +44 -0
- package/dist/chunk-BZO2GTJP.js.map +1 -0
- package/dist/{chunk-AB6LHU2Z.cjs → chunk-CFRR7QPR.cjs} +12 -12
- package/dist/chunk-CFRR7QPR.cjs.map +1 -0
- package/dist/{chunk-XHQZ4TF7.cjs → chunk-CONUMVLZ.cjs} +7 -7
- package/dist/{chunk-XHQZ4TF7.cjs.map → chunk-CONUMVLZ.cjs.map} +1 -1
- package/dist/{chunk-XI6R76X3.js → chunk-D2SWTZFS.js} +3 -3
- package/dist/{chunk-XI6R76X3.js.map → chunk-D2SWTZFS.js.map} +1 -1
- package/dist/{chunk-5XADEX3R.js → chunk-EEG7YZUY.js} +4 -4
- package/dist/{chunk-5XADEX3R.js.map → chunk-EEG7YZUY.js.map} +1 -1
- package/dist/{chunk-KT4MFNBC.cjs → chunk-FB3E7VS6.cjs} +6 -6
- package/dist/{chunk-KT4MFNBC.cjs.map → chunk-FB3E7VS6.cjs.map} +1 -1
- package/dist/{chunk-OJJ3QLZP.js → chunk-H5DZOHH7.js} +4 -4
- package/dist/{chunk-OJJ3QLZP.js.map → chunk-H5DZOHH7.js.map} +1 -1
- package/dist/{chunk-3CIPWA33.cjs → chunk-IDYRJ4K3.cjs} +4 -4
- package/dist/{chunk-3CIPWA33.cjs.map → chunk-IDYRJ4K3.cjs.map} +1 -1
- package/dist/{chunk-UT3GUUCO.js → chunk-J5JUQRPD.js} +4 -4
- package/dist/{chunk-UT3GUUCO.js.map → chunk-J5JUQRPD.js.map} +1 -1
- package/dist/{chunk-P4CQFG3X.cjs → chunk-J7EQLDUU.cjs} +9 -9
- package/dist/{chunk-P4CQFG3X.cjs.map → chunk-J7EQLDUU.cjs.map} +1 -1
- package/dist/{chunk-MUQ7TAWH.js → chunk-JDFNUP4M.js} +5 -5
- package/dist/{chunk-MUQ7TAWH.js.map → chunk-JDFNUP4M.js.map} +1 -1
- package/dist/{chunk-KKZP4DUR.cjs → chunk-KCGEV4ZA.cjs} +6 -6
- package/dist/{chunk-KKZP4DUR.cjs.map → chunk-KCGEV4ZA.cjs.map} +1 -1
- package/dist/chunk-MQ554O4E.js +52 -0
- package/dist/chunk-MQ554O4E.js.map +1 -0
- package/dist/chunk-MRHQJNWF.cjs +8 -0
- package/dist/chunk-MRHQJNWF.cjs.map +1 -0
- package/dist/chunk-MSI6FVGG.js +6 -0
- package/dist/chunk-MSI6FVGG.js.map +1 -0
- package/dist/{chunk-2NLVV2MF.js → chunk-N37PZ2MB.js} +3 -3
- package/dist/{chunk-2NLVV2MF.js.map → chunk-N37PZ2MB.js.map} +1 -1
- package/dist/{chunk-V32CB5U2.cjs → chunk-NFGQHJVB.cjs} +6 -6
- package/dist/{chunk-V32CB5U2.cjs.map → chunk-NFGQHJVB.cjs.map} +1 -1
- package/dist/{chunk-RF64RAHW.cjs → chunk-OVGB3W3A.cjs} +19 -7
- package/dist/chunk-OVGB3W3A.cjs.map +1 -0
- package/dist/{chunk-VZROPAWL.cjs → chunk-PWA6XFXA.cjs} +6 -6
- package/dist/{chunk-VZROPAWL.cjs.map → chunk-PWA6XFXA.cjs.map} +1 -1
- package/dist/{chunk-4NUA46VD.js → chunk-QEQAZPWM.js} +4 -4
- package/dist/{chunk-4NUA46VD.js.map → chunk-QEQAZPWM.js.map} +1 -1
- package/dist/chunk-R7MQGDLC.cjs +61 -0
- package/dist/chunk-R7MQGDLC.cjs.map +1 -0
- package/dist/{chunk-7UQVB2SQ.cjs → chunk-RPKKOIYG.cjs} +7 -7
- package/dist/{chunk-7UQVB2SQ.cjs.map → chunk-RPKKOIYG.cjs.map} +1 -1
- package/dist/{chunk-2EWL5BAZ.cjs → chunk-S4PI2LUQ.cjs} +4 -4
- package/dist/{chunk-2EWL5BAZ.cjs.map → chunk-S4PI2LUQ.cjs.map} +1 -1
- package/dist/chunk-SI5TFV5M.js +54 -0
- package/dist/chunk-SI5TFV5M.js.map +1 -0
- package/dist/chunk-TD2PFSP6.js +248 -0
- package/dist/chunk-TD2PFSP6.js.map +1 -0
- package/dist/{chunk-OAQGC32L.cjs → chunk-TWP7DBSZ.cjs} +14 -14
- package/dist/{chunk-OAQGC32L.cjs.map → chunk-TWP7DBSZ.cjs.map} +1 -1
- package/dist/{chunk-CFR2CKM6.cjs → chunk-TXDMA4CT.cjs} +6 -6
- package/dist/{chunk-CFR2CKM6.cjs.map → chunk-TXDMA4CT.cjs.map} +1 -1
- package/dist/chunk-UYZTOVYS.cjs +252 -0
- package/dist/chunk-UYZTOVYS.cjs.map +1 -0
- package/dist/{chunk-4IBEYSSA.js → chunk-V2MQG3FZ.js} +17 -5
- package/dist/chunk-V2MQG3FZ.js.map +1 -0
- package/dist/{chunk-JKXQFEY7.js → chunk-VFZVLZC6.js} +4 -4
- package/dist/{chunk-JKXQFEY7.js.map → chunk-VFZVLZC6.js.map} +1 -1
- package/dist/chunk-VKHQ6BWE.cjs +30 -0
- package/dist/{chunk-GOC5UODV.cjs.map → chunk-VKHQ6BWE.cjs.map} +1 -1
- package/dist/{chunk-2CTHLPTU.js → chunk-VUVBYSYM.js} +4 -4
- package/dist/{chunk-2CTHLPTU.js.map → chunk-VUVBYSYM.js.map} +1 -1
- package/dist/{chunk-DGWPC6VR.cjs → chunk-W3AFDHXQ.cjs} +7 -7
- package/dist/{chunk-DGWPC6VR.cjs.map → chunk-W3AFDHXQ.cjs.map} +1 -1
- package/dist/{chunk-65YXOZDQ.js → chunk-WILFTDTS.js} +7 -4
- package/dist/chunk-WILFTDTS.js.map +1 -0
- package/dist/{chunk-RPNL672Y.cjs → chunk-XLFQJDYZ.cjs} +4 -4
- package/dist/{chunk-RPNL672Y.cjs.map → chunk-XLFQJDYZ.cjs.map} +1 -1
- package/dist/{chunk-Y3RILILK.js → chunk-Y26EBVMH.js} +4 -4
- package/dist/{chunk-Y3RILILK.js.map → chunk-Y26EBVMH.js.map} +1 -1
- package/dist/{chunk-WLS43HX4.cjs → chunk-YGAWVMHH.cjs} +6 -6
- package/dist/{chunk-WLS43HX4.cjs.map → chunk-YGAWVMHH.cjs.map} +1 -1
- package/dist/{chunk-EDDRN2CO.js → chunk-YIWAUNKU.js} +4 -4
- package/dist/{chunk-EDDRN2CO.js.map → chunk-YIWAUNKU.js.map} +1 -1
- package/dist/{chunk-6DPZQRNC.js → chunk-YLK5KBXD.js} +4 -4
- package/dist/{chunk-6DPZQRNC.js.map → chunk-YLK5KBXD.js.map} +1 -1
- package/dist/{chunk-YH52X52J.js → chunk-ZPSPCPDQ.js} +4 -4
- package/dist/{chunk-YH52X52J.js.map → chunk-ZPSPCPDQ.js.map} +1 -1
- package/dist/dataScience/index.cjs +6 -5
- package/dist/dataScience/index.js +4 -3
- package/dist/domain/permissions/index.cjs +5 -5
- package/dist/domain/permissions/index.d.cts +2 -2
- package/dist/domain/permissions/index.d.ts +2 -2
- package/dist/domain/permissions/index.js +1 -1
- package/dist/editor/index.cjs +4 -4
- package/dist/editor/index.js +3 -3
- package/dist/encryption/index.cjs +4 -4
- package/dist/encryption/index.d.cts +4 -1
- package/dist/encryption/index.d.ts +4 -1
- package/dist/encryption/index.js +3 -3
- package/dist/encryption/types.d.cts +62 -3
- package/dist/encryption/types.d.ts +62 -3
- package/dist/import/index.cjs +4 -4
- package/dist/import/index.js +3 -3
- package/dist/{index-KHRrA2IR.d.cts → index-DzhQuag5.d.cts} +4 -4
- package/dist/{index-BEE_qeId.d.ts → index-G9ZyDi7K.d.ts} +4 -4
- package/dist/index.cjs +133 -83
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2982 -15
- package/dist/index.d.ts +2982 -15
- package/dist/index.js +71 -32
- package/dist/index.js.map +1 -1
- package/dist/management/index.cjs +6 -6
- package/dist/management/index.js +4 -4
- package/dist/metastore/index.cjs +4 -4
- package/dist/metastore/index.js +3 -3
- package/dist/notifications/index.cjs +14 -0
- package/dist/notifications/index.cjs.map +1 -0
- package/dist/notifications/index.d.cts +46 -0
- package/dist/notifications/index.d.ts +46 -0
- package/dist/notifications/index.js +5 -0
- package/dist/notifications/index.js.map +1 -0
- package/dist/notifications/types.cjs +4 -0
- package/dist/notifications/types.cjs.map +1 -0
- package/dist/notifications/types.d.cts +2 -0
- package/dist/notifications/types.d.ts +2 -0
- package/dist/notifications/types.js +3 -0
- package/dist/notifications/types.js.map +1 -0
- package/dist/oauth/index.cjs +4 -4
- package/dist/oauth/index.js +3 -3
- package/dist/{project-C4K5Dzoy.d.cts → project-C_m_tOgy.d.cts} +1 -1
- package/dist/{project-COwNmNoc.d.ts → project-DQLliCsX.d.ts} +1 -1
- package/dist/queryService/index.cjs +4 -4
- package/dist/queryService/index.js +3 -3
- package/dist/queue/index.cjs +4 -4
- package/dist/queue/index.js +3 -3
- package/dist/registry-Xwk-vCjf.d.cts +417 -0
- package/dist/registry-Xwk-vCjf.d.ts +417 -0
- package/dist/scheduler/index.cjs +14 -0
- package/dist/scheduler/index.cjs.map +1 -0
- package/dist/scheduler/index.d.cts +75 -0
- package/dist/scheduler/index.d.ts +75 -0
- package/dist/scheduler/index.js +5 -0
- package/dist/scheduler/index.js.map +1 -0
- package/dist/scheduler/types.cjs +4 -0
- package/dist/scheduler/types.cjs.map +1 -0
- package/dist/scheduler/types.d.cts +372 -0
- package/dist/scheduler/types.d.ts +372 -0
- package/dist/scheduler/types.js +3 -0
- package/dist/scheduler/types.js.map +1 -0
- package/dist/sdk/configurations/index.cjs +8 -8
- package/dist/sdk/configurations/index.cjs.map +1 -1
- package/dist/sdk/configurations/index.d.cts +1256 -10
- package/dist/sdk/configurations/index.d.ts +1256 -10
- package/dist/sdk/configurations/index.js +3 -9
- package/dist/sdk/configurations/index.js.map +1 -1
- package/dist/sdk/storage/index.d.cts +3 -3
- package/dist/sdk/storage/index.d.ts +3 -3
- package/dist/sdk/vault/index.d.cts +2 -1
- package/dist/sdk/vault/index.d.ts +2 -1
- package/dist/status/index.cjs +4 -4
- package/dist/status/index.js +3 -3
- package/dist/storage/index.cjs +4 -4
- package/dist/storage/index.d.cts +2 -2
- package/dist/storage/index.d.ts +2 -2
- package/dist/storage/index.js +3 -3
- package/dist/storage/types.d.cts +17 -17
- package/dist/storage/types.d.ts +17 -17
- package/dist/{storageSdk--0Hh4UCE.d.ts → storageSdk-TDISOoqX.d.ts} +1 -1
- package/dist/{storageSdk-DJz6WcW3.d.cts → storageSdk-VlBWkuF3.d.cts} +1 -1
- package/dist/stream/index.cjs +4 -4
- package/dist/stream/index.js +3 -3
- package/dist/syncActions/index.cjs +4 -4
- package/dist/syncActions/index.js +3 -3
- package/dist/telemetry/index.cjs +4 -4
- package/dist/telemetry/index.js +3 -3
- package/dist/{types-Dfw6a58i.d.ts → types-BG8yQyYt.d.ts} +3 -2
- package/dist/types-BVldT2vs.d.cts +404 -0
- package/dist/types-CS8MYc2k.d.ts +404 -0
- package/dist/{types-Brx8PoEB.d.cts → types-CfEvz7zi.d.cts} +2 -1
- package/dist/{types-DiC2wKsx.d.cts → types-CvHPHNH0.d.cts} +4 -1
- package/dist/{types-DFbHRDdR.d.ts → types-D3Kkh6yW.d.ts} +4 -1
- package/dist/{types-DcL25GqY.d.cts → types-DJbXfC2q.d.cts} +3 -2
- package/dist/{types-D4CDCW-Y.d.ts → types-sxxmo6h9.d.ts} +2 -1
- package/dist/vault/index.cjs +4 -4
- package/dist/vault/index.js +3 -3
- package/dist/verify/index.cjs +4 -4
- package/dist/verify/index.d.cts +1 -1
- package/dist/verify/index.d.ts +1 -1
- package/dist/verify/index.js +3 -3
- package/package.json +53 -1
- package/dist/chunk-4FU45NEU.js.map +0 -1
- package/dist/chunk-4I6TJWBG.cjs +0 -38
- package/dist/chunk-4I6TJWBG.cjs.map +0 -1
- package/dist/chunk-4IBEYSSA.js.map +0 -1
- package/dist/chunk-65YXOZDQ.js.map +0 -1
- package/dist/chunk-AB6LHU2Z.cjs.map +0 -1
- package/dist/chunk-FL54VJ35.js +0 -32
- package/dist/chunk-FL54VJ35.js.map +0 -1
- package/dist/chunk-GOC5UODV.cjs +0 -30
- package/dist/chunk-RF64RAHW.cjs.map +0 -1
- package/dist/chunk-WOGG723K.cjs.map +0 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/constants.ts
|
|
4
|
+
var KeboolaHttpHeader = {
|
|
5
|
+
STORAGE_API_TOKEN: "X-StorageApi-Token",
|
|
6
|
+
MANAGEMENT_API_TOKEN: "X-Kbc-Manageapitoken",
|
|
7
|
+
STORAGE_API_URL: "x-storageapi-url"
|
|
8
|
+
};
|
|
9
|
+
var HttpStatus = {
|
|
10
|
+
NO_CONTENT: 204,
|
|
11
|
+
BAD_REQUEST: 400,
|
|
12
|
+
UNPROCESSABLE_ENTITY: 422,
|
|
13
|
+
INTERNAL_SERVER_ERROR: 500,
|
|
14
|
+
BAD_GATEWAY: 502,
|
|
15
|
+
SERVICE_UNAVAILABLE: 503,
|
|
16
|
+
GATEWAY_TIMEOUT: 504
|
|
17
|
+
};
|
|
18
|
+
var ENCRYPTED_VALUE_PREFIX = "KBC::";
|
|
19
|
+
var AdminRoles = {
|
|
20
|
+
ADMIN: "admin",
|
|
21
|
+
SHARE: "share",
|
|
22
|
+
PRODUCTION_MANAGER: "productionManager",
|
|
23
|
+
DEVELOPER: "developer",
|
|
24
|
+
REVIEWER: "reviewer"
|
|
25
|
+
};
|
|
26
|
+
var ProjectFeatures = {
|
|
27
|
+
DISABLE_LEGACY_BUCKET_PREFIX: "disable-legacy-bucket-prefix",
|
|
28
|
+
SOX_PROTECTED_DEFAULT_BRANCH: "protected-default-branch",
|
|
29
|
+
STORAGE_BRANCHES: "storage-branches"
|
|
30
|
+
};
|
|
31
|
+
var ComponentId = {
|
|
32
|
+
WR_DB_MYSQL: "keboola.wr-db-mysql",
|
|
33
|
+
WR_DB_PGSQL: "keboola.wr-db-pgsql",
|
|
34
|
+
WR_DB_ORACLE: "keboola.wr-db-oracle",
|
|
35
|
+
WR_DB_SNOWFLAKE: "keboola.wr-db-snowflake",
|
|
36
|
+
WR_DB_SNOWFLAKE_GCS: "keboola.wr-db-snowflake-gcs",
|
|
37
|
+
WR_DB_SNOWFLAKE_GCS_S3: "keboola.wr-db-snowflake-gcs-s3",
|
|
38
|
+
WR_SNOWFLAKE_BLOB_STORAGE: "keboola.wr-snowflake-blob-storage",
|
|
39
|
+
WR_LOOKER_V2: "keboola.wr-looker-v2",
|
|
40
|
+
APP_DATA_GATEWAY: "keboola.app-data-gateway",
|
|
41
|
+
WR_SYNAPSE: "keboola.wr-synapse",
|
|
42
|
+
WR_REDSHIFT: "keboola.wr-redshift-v2",
|
|
43
|
+
WR_DB_MSSQL: "keboola.wr-db-mssql-v2",
|
|
44
|
+
WR_DB_HIVE: "keboola.wr-db-hive",
|
|
45
|
+
WR_DB_IMPALA: "keboola.wr-db-impala",
|
|
46
|
+
WR_PAIRITY: "kds-team.wr-pairity",
|
|
47
|
+
WR_EXASOL: "kds-team.wr-exasol",
|
|
48
|
+
WR_FIREBOLT: "kds-team.wr-firebolt",
|
|
49
|
+
WR_HIVE_CSAS: "kds-team.wr-hive-csas",
|
|
50
|
+
WR_THOUGHTSPOT: "keboola.wr-thoughtspot",
|
|
51
|
+
WR_SISENSE: "keboola.wr-sisense"
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
exports.AdminRoles = AdminRoles;
|
|
55
|
+
exports.ComponentId = ComponentId;
|
|
56
|
+
exports.ENCRYPTED_VALUE_PREFIX = ENCRYPTED_VALUE_PREFIX;
|
|
57
|
+
exports.HttpStatus = HttpStatus;
|
|
58
|
+
exports.KeboolaHttpHeader = KeboolaHttpHeader;
|
|
59
|
+
exports.ProjectFeatures = ProjectFeatures;
|
|
60
|
+
//# sourceMappingURL=chunk-R7MQGDLC.cjs.map
|
|
61
|
+
//# sourceMappingURL=chunk-R7MQGDLC.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAO,IAAM,iBAAA,GAAoB;AAAA,EAC/B,iBAAA,EAAmB,oBAAA;AAAA,EACnB,oBAAA,EAAsB,sBAAA;AAAA,EACtB,eAAA,EAAiB;AACnB;AAEO,IAAM,UAAA,GAAa;AAAA,EACxB,UAAA,EAAY,GAAA;AAAA,EACZ,WAAA,EAAa,GAAA;AAAA,EACb,oBAAA,EAAsB,GAAA;AAAA,EACtB,qBAAA,EAAuB,GAAA;AAAA,EACvB,WAAA,EAAa,GAAA;AAAA,EACb,mBAAA,EAAqB,GAAA;AAAA,EACrB,eAAA,EAAiB;AACnB;AAEO,IAAM,sBAAA,GAAyB;AAO/B,IAAM,UAAA,GAAa;AAAA,EACxB,KAAA,EAAO,OAAA;AAAA,EACP,KAAA,EAAO,OAAA;AAAA,EACP,kBAAA,EAAoB,mBAAA;AAAA,EACpB,SAAA,EAAW,WAAA;AAAA,EACX,QAAA,EAAU;AACZ;AAEO,IAAM,eAAA,GAAkB;AAAA,EAC7B,4BAAA,EAA8B,8BAAA;AAAA,EAC9B,4BAAA,EAA8B,0BAAA;AAAA,EAC9B,gBAAA,EAAkB;AACpB;AAEO,IAAM,WAAA,GAAc;AAAA,EACzB,WAAA,EAAa,qBAAA;AAAA,EACb,WAAA,EAAa,qBAAA;AAAA,EACb,YAAA,EAAc,sBAAA;AAAA,EACd,eAAA,EAAiB,yBAAA;AAAA,EACjB,mBAAA,EAAqB,6BAAA;AAAA,EACrB,sBAAA,EAAwB,gCAAA;AAAA,EACxB,yBAAA,EAA2B,mCAAA;AAAA,EAC3B,YAAA,EAAc,sBAAA;AAAA,EACd,gBAAA,EAAkB,0BAAA;AAAA,EAClB,UAAA,EAAY,oBAAA;AAAA,EACZ,WAAA,EAAa,wBAAA;AAAA,EACb,WAAA,EAAa,wBAAA;AAAA,EACb,UAAA,EAAY,oBAAA;AAAA,EACZ,YAAA,EAAc,sBAAA;AAAA,EACd,UAAA,EAAY,qBAAA;AAAA,EACZ,SAAA,EAAW,oBAAA;AAAA,EACX,WAAA,EAAa,sBAAA;AAAA,EACb,YAAA,EAAc,uBAAA;AAAA,EACd,cAAA,EAAgB,wBAAA;AAAA,EAChB,UAAA,EAAY;AACd","file":"chunk-R7MQGDLC.cjs","sourcesContent":["export const KeboolaHttpHeader = {\n STORAGE_API_TOKEN: 'X-StorageApi-Token',\n MANAGEMENT_API_TOKEN: 'X-Kbc-Manageapitoken',\n STORAGE_API_URL: 'x-storageapi-url',\n};\n\nexport const HttpStatus = {\n NO_CONTENT: 204,\n BAD_REQUEST: 400,\n UNPROCESSABLE_ENTITY: 422,\n INTERNAL_SERVER_ERROR: 500,\n BAD_GATEWAY: 502,\n SERVICE_UNAVAILABLE: 503,\n GATEWAY_TIMEOUT: 504,\n} as const;\n\nexport const ENCRYPTED_VALUE_PREFIX = 'KBC::';\n\nexport const Backends = {\n SNOWFLAKE: 'snowflake',\n BIGQUERY: 'bigquery',\n} as const;\n\nexport const AdminRoles = {\n ADMIN: 'admin',\n SHARE: 'share',\n PRODUCTION_MANAGER: 'productionManager',\n DEVELOPER: 'developer',\n REVIEWER: 'reviewer',\n} as const;\n\nexport const ProjectFeatures = {\n DISABLE_LEGACY_BUCKET_PREFIX: 'disable-legacy-bucket-prefix',\n SOX_PROTECTED_DEFAULT_BRANCH: 'protected-default-branch',\n STORAGE_BRANCHES: 'storage-branches',\n} as const;\n\nexport const ComponentId = {\n WR_DB_MYSQL: 'keboola.wr-db-mysql',\n WR_DB_PGSQL: 'keboola.wr-db-pgsql',\n WR_DB_ORACLE: 'keboola.wr-db-oracle',\n WR_DB_SNOWFLAKE: 'keboola.wr-db-snowflake',\n WR_DB_SNOWFLAKE_GCS: 'keboola.wr-db-snowflake-gcs',\n WR_DB_SNOWFLAKE_GCS_S3: 'keboola.wr-db-snowflake-gcs-s3',\n WR_SNOWFLAKE_BLOB_STORAGE: 'keboola.wr-snowflake-blob-storage',\n WR_LOOKER_V2: 'keboola.wr-looker-v2',\n APP_DATA_GATEWAY: 'keboola.app-data-gateway',\n WR_SYNAPSE: 'keboola.wr-synapse',\n WR_REDSHIFT: 'keboola.wr-redshift-v2',\n WR_DB_MSSQL: 'keboola.wr-db-mssql-v2',\n WR_DB_HIVE: 'keboola.wr-db-hive',\n WR_DB_IMPALA: 'keboola.wr-db-impala',\n WR_PAIRITY: 'kds-team.wr-pairity',\n WR_EXASOL: 'kds-team.wr-exasol',\n WR_FIREBOLT: 'kds-team.wr-firebolt',\n WR_HIVE_CSAS: 'kds-team.wr-hive-csas',\n WR_THOUGHTSPOT: 'keboola.wr-thoughtspot',\n WR_SISENSE: 'keboola.wr-sisense',\n} as const;\n\nexport type ComponentId = (typeof ComponentId)[keyof typeof ComponentId];\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkIDYRJ4K3_cjs = require('./chunk-IDYRJ4K3.cjs');
|
|
4
|
+
var chunkR7MQGDLC_cjs = require('./chunk-R7MQGDLC.cjs');
|
|
5
5
|
|
|
6
6
|
// src/errors/UserError.ts
|
|
7
7
|
var UserError = class extends Error {
|
|
@@ -12,10 +12,10 @@ var UserError = class extends Error {
|
|
|
12
12
|
|
|
13
13
|
// src/clients/vault/vaultClient.ts
|
|
14
14
|
var createVaultClient = ({ baseUrl, middlewares, token }) => {
|
|
15
|
-
const client =
|
|
15
|
+
const client = chunkIDYRJ4K3_cjs.createOpenapiFetchClient({
|
|
16
16
|
baseUrl,
|
|
17
17
|
middlewares,
|
|
18
|
-
headers: { [
|
|
18
|
+
headers: { [chunkR7MQGDLC_cjs.KeboolaHttpHeader.STORAGE_API_TOKEN]: token }
|
|
19
19
|
});
|
|
20
20
|
const getVariables = async (query, signal) => {
|
|
21
21
|
const { data } = await client.get(
|
|
@@ -37,7 +37,7 @@ var createVaultClient = ({ baseUrl, middlewares, token }) => {
|
|
|
37
37
|
);
|
|
38
38
|
};
|
|
39
39
|
const createVariable = async (body, signal) => {
|
|
40
|
-
if (body.flags.includes("encrypted") && !body.value.startsWith(
|
|
40
|
+
if (body.flags.includes("encrypted") && !body.value.startsWith(chunkR7MQGDLC_cjs.ENCRYPTED_VALUE_PREFIX)) {
|
|
41
41
|
throw new UserError("Encryption of a value failed. Please contact our support.");
|
|
42
42
|
}
|
|
43
43
|
const { data } = await client.post("/variables", { body }, { signal });
|
|
@@ -65,5 +65,5 @@ var createVaultClient = ({ baseUrl, middlewares, token }) => {
|
|
|
65
65
|
|
|
66
66
|
exports.UserError = UserError;
|
|
67
67
|
exports.createVaultClient = createVaultClient;
|
|
68
|
-
//# sourceMappingURL=chunk-
|
|
69
|
-
//# sourceMappingURL=chunk-
|
|
68
|
+
//# sourceMappingURL=chunk-RPKKOIYG.cjs.map
|
|
69
|
+
//# sourceMappingURL=chunk-RPKKOIYG.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/errors/UserError.ts","../src/clients/vault/vaultClient.ts"],"names":["createOpenapiFetchClient","KeboolaHttpHeader","ENCRYPTED_VALUE_PREFIX"],"mappings":";;;;;;AAAO,IAAM,SAAA,GAAN,cAAwB,KAAA,CAAM;AAAA,EACnC,YAAY,OAAA,EAAiB;AAC3B,IAAA,KAAA,CAAM,OAAO,CAAA;AAAA,EACf;AACF;;;ACUO,IAAM,oBAAoB,CAAC,EAAE,OAAA,EAAS,WAAA,EAAa,OAAM,KAAyB;AACvF,EAAA,MAAM,SAASA,0CAAA,CAAgC;AAAA,IAC7C,OAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAS,EAAE,CAACC,mCAAA,CAAkB,iBAAiB,GAAG,KAAA;AAAM,GACzD,CAAA;AAED,EAAA,MAAM,YAAA,GAAe,OAAO,KAAA,EAA0B,MAAA,KAAyB;AAC7E,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,GAAA;AAAA,MAC5B,YAAA;AAAA,MACA,EAAE,KAAA,EAAM;AAAA,MACR;AAAA,QACE;AAAA;AACF,KACF;AAEA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,OAAO,IAAA,EAAkC,MAAA,KAAyB;AACvF,IAAA,MAAM,MAAA,CAAO,MAAA;AAAA,MACX,mBAAA;AAAA,MACA;AAAA,QACE,IAAA,EAAM,EAAE,IAAA;AAAK,OACf;AAAA,MACA,EAAE,MAAA;AAAO,KACX;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,OAAO,IAAA,EAA0B,MAAA,KAAyB;AAC/E,IAAA,IAAI,IAAA,CAAK,KAAA,CAAM,QAAA,CAAS,WAAW,CAAA,IAAK,CAAC,IAAA,CAAK,KAAA,CAAM,UAAA,CAAWC,wCAAsB,CAAA,EAAG;AACtF,MAAA,MAAM,IAAI,UAAU,2DAA2D,CAAA;AAAA,IACjF;AACA,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,IAAA,CAAK,YAAA,EAAc,EAAE,IAAA,EAAK,EAAG,EAAE,MAAA,EAAQ,CAAA;AACrE,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,sBAAA,GAAyB,OAC7B,QAAA,EACA,MAAA,KACG;AACH,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,GAAA;AAAA,MAC5B,qCAAA;AAAA,MACA;AAAA,QACE,IAAA,EAAM,EAAE,QAAA;AAAS,OACnB;AAAA,MACA,EAAE,MAAA;AAAO,KACX;AACA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,uBAAA,GAA0B,CAAC,MAAA,KAAyB,sBAAA,CAAuB,QAAQ,MAAM,CAAA;AAE/F,EAAA,OAAO;AAAA,IACL,cAAA;AAAA,IACA,cAAA;AAAA,IACA,uBAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF;AACF","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/errors/UserError.ts","../src/clients/vault/vaultClient.ts"],"names":["createOpenapiFetchClient","KeboolaHttpHeader","ENCRYPTED_VALUE_PREFIX"],"mappings":";;;;;;AAAO,IAAM,SAAA,GAAN,cAAwB,KAAA,CAAM;AAAA,EACnC,YAAY,OAAA,EAAiB;AAC3B,IAAA,KAAA,CAAM,OAAO,CAAA;AAAA,EACf;AACF;;;ACUO,IAAM,oBAAoB,CAAC,EAAE,OAAA,EAAS,WAAA,EAAa,OAAM,KAAyB;AACvF,EAAA,MAAM,SAASA,0CAAA,CAAgC;AAAA,IAC7C,OAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAS,EAAE,CAACC,mCAAA,CAAkB,iBAAiB,GAAG,KAAA;AAAM,GACzD,CAAA;AAED,EAAA,MAAM,YAAA,GAAe,OAAO,KAAA,EAA0B,MAAA,KAAyB;AAC7E,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,GAAA;AAAA,MAC5B,YAAA;AAAA,MACA,EAAE,KAAA,EAAM;AAAA,MACR;AAAA,QACE;AAAA;AACF,KACF;AAEA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,OAAO,IAAA,EAAkC,MAAA,KAAyB;AACvF,IAAA,MAAM,MAAA,CAAO,MAAA;AAAA,MACX,mBAAA;AAAA,MACA;AAAA,QACE,IAAA,EAAM,EAAE,IAAA;AAAK,OACf;AAAA,MACA,EAAE,MAAA;AAAO,KACX;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,OAAO,IAAA,EAA0B,MAAA,KAAyB;AAC/E,IAAA,IAAI,IAAA,CAAK,KAAA,CAAM,QAAA,CAAS,WAAW,CAAA,IAAK,CAAC,IAAA,CAAK,KAAA,CAAM,UAAA,CAAWC,wCAAsB,CAAA,EAAG;AACtF,MAAA,MAAM,IAAI,UAAU,2DAA2D,CAAA;AAAA,IACjF;AACA,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,IAAA,CAAK,YAAA,EAAc,EAAE,IAAA,EAAK,EAAG,EAAE,MAAA,EAAQ,CAAA;AACrE,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,sBAAA,GAAyB,OAC7B,QAAA,EACA,MAAA,KACG;AACH,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,GAAA;AAAA,MAC5B,qCAAA;AAAA,MACA;AAAA,QACE,IAAA,EAAM,EAAE,QAAA;AAAS,OACnB;AAAA,MACA,EAAE,MAAA;AAAO,KACX;AACA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,uBAAA,GAA0B,CAAC,MAAA,KAAyB,sBAAA,CAAuB,QAAQ,MAAM,CAAA;AAE/F,EAAA,OAAO;AAAA,IACL,cAAA;AAAA,IACA,cAAA;AAAA,IACA,uBAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF;AACF","file":"chunk-RPKKOIYG.cjs","sourcesContent":["export class UserError extends Error {\n constructor(message: string) {\n super(message);\n }\n}\n","import { ENCRYPTED_VALUE_PREFIX, KeboolaHttpHeader } from '../../constants';\nimport { UserError } from '../../errors';\nimport { createOpenapiFetchClient } from '../../fetchClient';\nimport type { ClientInitOptions } from '../types';\n\nimport type { paths } from './__generated__/schema';\nimport type {\n CreateVariableBody,\n DeleteVariablePath,\n GetVariablesByBranchId,\n GetVariablesQuery,\n VariableWithHash,\n} from './types';\n\nexport const createVaultClient = ({ baseUrl, middlewares, token }: ClientInitOptions) => {\n const client = createOpenapiFetchClient<paths>({\n baseUrl,\n middlewares,\n headers: { [KeboolaHttpHeader.STORAGE_API_TOKEN]: token },\n });\n\n const getVariables = async (query: GetVariablesQuery, signal?: AbortSignal) => {\n const { data } = await client.get(\n '/variables',\n { query },\n {\n signal,\n },\n );\n\n return data as VariableWithHash[];\n };\n\n const deleteVariable = async (hash: DeleteVariablePath['hash'], signal?: AbortSignal) => {\n await client.delete(\n '/variables/{hash}',\n {\n path: { hash },\n },\n { signal },\n );\n };\n\n const createVariable = async (body: CreateVariableBody, signal?: AbortSignal) => {\n if (body.flags.includes('encrypted') && !body.value.startsWith(ENCRYPTED_VALUE_PREFIX)) {\n throw new UserError('Encryption of a value failed. Please contact our support.');\n }\n const { data } = await client.post('/variables', { body }, { signal });\n return data;\n };\n\n const getVariablesByBranchId = async (\n branchId: GetVariablesByBranchId['branchId'],\n signal?: AbortSignal,\n ) => {\n const { data } = await client.get(\n '/variables/scoped/branch/{branchId}',\n {\n path: { branchId },\n },\n { signal },\n );\n return data as VariableWithHash[];\n };\n\n const getProjectWideVariables = (signal?: AbortSignal) => getVariablesByBranchId('null', signal);\n\n return {\n createVariable,\n deleteVariable,\n getProjectWideVariables,\n getVariables,\n getVariablesByBranchId,\n };\n};\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkIDYRJ4K3_cjs = require('./chunk-IDYRJ4K3.cjs');
|
|
4
4
|
|
|
5
5
|
// src/clients/status/statusClient.ts
|
|
6
6
|
var createStatusClient = ({ baseUrl, middlewares }) => {
|
|
7
|
-
const client =
|
|
7
|
+
const client = chunkIDYRJ4K3_cjs.createGenericFetchClient({
|
|
8
8
|
baseUrl,
|
|
9
9
|
middlewares
|
|
10
10
|
});
|
|
@@ -18,5 +18,5 @@ var createStatusClient = ({ baseUrl, middlewares }) => {
|
|
|
18
18
|
};
|
|
19
19
|
|
|
20
20
|
exports.createStatusClient = createStatusClient;
|
|
21
|
-
//# sourceMappingURL=chunk-
|
|
22
|
-
//# sourceMappingURL=chunk-
|
|
21
|
+
//# sourceMappingURL=chunk-S4PI2LUQ.cjs.map
|
|
22
|
+
//# sourceMappingURL=chunk-S4PI2LUQ.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/clients/status/statusClient.ts"],"names":["createGenericFetchClient"],"mappings":";;;;;AAKO,IAAM,kBAAA,GAAqB,CAAC,EAAE,OAAA,EAAS,aAAY,KAAwC;AAChG,EAAA,MAAM,SAASA,0CAAA,CAAyB;AAAA,IACtC,OAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,UAAA,GAAa,OAAO,MAAA,KAAyB;AACjD,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,GAAA,CAAmB,eAAA,EAAiB,EAAC,EAAG,EAAE,MAAA,EAAQ,CAAA;AAChF,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,OAAO;AAAA,IACL;AAAA,GACF;AACF","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/clients/status/statusClient.ts"],"names":["createGenericFetchClient"],"mappings":";;;;;AAKO,IAAM,kBAAA,GAAqB,CAAC,EAAE,OAAA,EAAS,aAAY,KAAwC;AAChG,EAAA,MAAM,SAASA,0CAAA,CAAyB;AAAA,IACtC,OAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,UAAA,GAAa,OAAO,MAAA,KAAyB;AACjD,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,MAAA,CAAO,GAAA,CAAmB,eAAA,EAAiB,EAAC,EAAG,EAAE,MAAA,EAAQ,CAAA;AAChF,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,OAAO;AAAA,IACL;AAAA,GACF;AACF","file":"chunk-S4PI2LUQ.cjs","sourcesContent":["import { createGenericFetchClient } from '../../fetchClient';\nimport type { ClientInitOptions } from '../types';\n\nimport type { StatusSummary } from './types';\n\nexport const createStatusClient = ({ baseUrl, middlewares }: Omit<ClientInitOptions, 'token'>) => {\n const client = createGenericFetchClient({\n baseUrl,\n middlewares,\n });\n\n const getSummary = async (signal?: AbortSignal) => {\n const { data } = await client.get<StatusSummary>('/summary.json', {}, { signal });\n return data;\n };\n\n return {\n getSummary,\n };\n};\n"]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// src/constants.ts
|
|
2
|
+
var KeboolaHttpHeader = {
|
|
3
|
+
STORAGE_API_TOKEN: "X-StorageApi-Token",
|
|
4
|
+
MANAGEMENT_API_TOKEN: "X-Kbc-Manageapitoken",
|
|
5
|
+
STORAGE_API_URL: "x-storageapi-url"
|
|
6
|
+
};
|
|
7
|
+
var HttpStatus = {
|
|
8
|
+
NO_CONTENT: 204,
|
|
9
|
+
BAD_REQUEST: 400,
|
|
10
|
+
UNPROCESSABLE_ENTITY: 422,
|
|
11
|
+
INTERNAL_SERVER_ERROR: 500,
|
|
12
|
+
BAD_GATEWAY: 502,
|
|
13
|
+
SERVICE_UNAVAILABLE: 503,
|
|
14
|
+
GATEWAY_TIMEOUT: 504
|
|
15
|
+
};
|
|
16
|
+
var ENCRYPTED_VALUE_PREFIX = "KBC::";
|
|
17
|
+
var AdminRoles = {
|
|
18
|
+
ADMIN: "admin",
|
|
19
|
+
SHARE: "share",
|
|
20
|
+
PRODUCTION_MANAGER: "productionManager",
|
|
21
|
+
DEVELOPER: "developer",
|
|
22
|
+
REVIEWER: "reviewer"
|
|
23
|
+
};
|
|
24
|
+
var ProjectFeatures = {
|
|
25
|
+
DISABLE_LEGACY_BUCKET_PREFIX: "disable-legacy-bucket-prefix",
|
|
26
|
+
SOX_PROTECTED_DEFAULT_BRANCH: "protected-default-branch",
|
|
27
|
+
STORAGE_BRANCHES: "storage-branches"
|
|
28
|
+
};
|
|
29
|
+
var ComponentId = {
|
|
30
|
+
WR_DB_MYSQL: "keboola.wr-db-mysql",
|
|
31
|
+
WR_DB_PGSQL: "keboola.wr-db-pgsql",
|
|
32
|
+
WR_DB_ORACLE: "keboola.wr-db-oracle",
|
|
33
|
+
WR_DB_SNOWFLAKE: "keboola.wr-db-snowflake",
|
|
34
|
+
WR_DB_SNOWFLAKE_GCS: "keboola.wr-db-snowflake-gcs",
|
|
35
|
+
WR_DB_SNOWFLAKE_GCS_S3: "keboola.wr-db-snowflake-gcs-s3",
|
|
36
|
+
WR_SNOWFLAKE_BLOB_STORAGE: "keboola.wr-snowflake-blob-storage",
|
|
37
|
+
WR_LOOKER_V2: "keboola.wr-looker-v2",
|
|
38
|
+
APP_DATA_GATEWAY: "keboola.app-data-gateway",
|
|
39
|
+
WR_SYNAPSE: "keboola.wr-synapse",
|
|
40
|
+
WR_REDSHIFT: "keboola.wr-redshift-v2",
|
|
41
|
+
WR_DB_MSSQL: "keboola.wr-db-mssql-v2",
|
|
42
|
+
WR_DB_HIVE: "keboola.wr-db-hive",
|
|
43
|
+
WR_DB_IMPALA: "keboola.wr-db-impala",
|
|
44
|
+
WR_PAIRITY: "kds-team.wr-pairity",
|
|
45
|
+
WR_EXASOL: "kds-team.wr-exasol",
|
|
46
|
+
WR_FIREBOLT: "kds-team.wr-firebolt",
|
|
47
|
+
WR_HIVE_CSAS: "kds-team.wr-hive-csas",
|
|
48
|
+
WR_THOUGHTSPOT: "keboola.wr-thoughtspot",
|
|
49
|
+
WR_SISENSE: "keboola.wr-sisense"
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export { AdminRoles, ComponentId, ENCRYPTED_VALUE_PREFIX, HttpStatus, KeboolaHttpHeader, ProjectFeatures };
|
|
53
|
+
//# sourceMappingURL=chunk-SI5TFV5M.js.map
|
|
54
|
+
//# sourceMappingURL=chunk-SI5TFV5M.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/constants.ts"],"names":[],"mappings":";AAAO,IAAM,iBAAA,GAAoB;AAAA,EAC/B,iBAAA,EAAmB,oBAAA;AAAA,EACnB,oBAAA,EAAsB,sBAAA;AAAA,EACtB,eAAA,EAAiB;AACnB;AAEO,IAAM,UAAA,GAAa;AAAA,EACxB,UAAA,EAAY,GAAA;AAAA,EACZ,WAAA,EAAa,GAAA;AAAA,EACb,oBAAA,EAAsB,GAAA;AAAA,EACtB,qBAAA,EAAuB,GAAA;AAAA,EACvB,WAAA,EAAa,GAAA;AAAA,EACb,mBAAA,EAAqB,GAAA;AAAA,EACrB,eAAA,EAAiB;AACnB;AAEO,IAAM,sBAAA,GAAyB;AAO/B,IAAM,UAAA,GAAa;AAAA,EACxB,KAAA,EAAO,OAAA;AAAA,EACP,KAAA,EAAO,OAAA;AAAA,EACP,kBAAA,EAAoB,mBAAA;AAAA,EACpB,SAAA,EAAW,WAAA;AAAA,EACX,QAAA,EAAU;AACZ;AAEO,IAAM,eAAA,GAAkB;AAAA,EAC7B,4BAAA,EAA8B,8BAAA;AAAA,EAC9B,4BAAA,EAA8B,0BAAA;AAAA,EAC9B,gBAAA,EAAkB;AACpB;AAEO,IAAM,WAAA,GAAc;AAAA,EACzB,WAAA,EAAa,qBAAA;AAAA,EACb,WAAA,EAAa,qBAAA;AAAA,EACb,YAAA,EAAc,sBAAA;AAAA,EACd,eAAA,EAAiB,yBAAA;AAAA,EACjB,mBAAA,EAAqB,6BAAA;AAAA,EACrB,sBAAA,EAAwB,gCAAA;AAAA,EACxB,yBAAA,EAA2B,mCAAA;AAAA,EAC3B,YAAA,EAAc,sBAAA;AAAA,EACd,gBAAA,EAAkB,0BAAA;AAAA,EAClB,UAAA,EAAY,oBAAA;AAAA,EACZ,WAAA,EAAa,wBAAA;AAAA,EACb,WAAA,EAAa,wBAAA;AAAA,EACb,UAAA,EAAY,oBAAA;AAAA,EACZ,YAAA,EAAc,sBAAA;AAAA,EACd,UAAA,EAAY,qBAAA;AAAA,EACZ,SAAA,EAAW,oBAAA;AAAA,EACX,WAAA,EAAa,sBAAA;AAAA,EACb,YAAA,EAAc,uBAAA;AAAA,EACd,cAAA,EAAgB,wBAAA;AAAA,EAChB,UAAA,EAAY;AACd","file":"chunk-SI5TFV5M.js","sourcesContent":["export const KeboolaHttpHeader = {\n STORAGE_API_TOKEN: 'X-StorageApi-Token',\n MANAGEMENT_API_TOKEN: 'X-Kbc-Manageapitoken',\n STORAGE_API_URL: 'x-storageapi-url',\n};\n\nexport const HttpStatus = {\n NO_CONTENT: 204,\n BAD_REQUEST: 400,\n UNPROCESSABLE_ENTITY: 422,\n INTERNAL_SERVER_ERROR: 500,\n BAD_GATEWAY: 502,\n SERVICE_UNAVAILABLE: 503,\n GATEWAY_TIMEOUT: 504,\n} as const;\n\nexport const ENCRYPTED_VALUE_PREFIX = 'KBC::';\n\nexport const Backends = {\n SNOWFLAKE: 'snowflake',\n BIGQUERY: 'bigquery',\n} as const;\n\nexport const AdminRoles = {\n ADMIN: 'admin',\n SHARE: 'share',\n PRODUCTION_MANAGER: 'productionManager',\n DEVELOPER: 'developer',\n REVIEWER: 'reviewer',\n} as const;\n\nexport const ProjectFeatures = {\n DISABLE_LEGACY_BUCKET_PREFIX: 'disable-legacy-bucket-prefix',\n SOX_PROTECTED_DEFAULT_BRANCH: 'protected-default-branch',\n STORAGE_BRANCHES: 'storage-branches',\n} as const;\n\nexport const ComponentId = {\n WR_DB_MYSQL: 'keboola.wr-db-mysql',\n WR_DB_PGSQL: 'keboola.wr-db-pgsql',\n WR_DB_ORACLE: 'keboola.wr-db-oracle',\n WR_DB_SNOWFLAKE: 'keboola.wr-db-snowflake',\n WR_DB_SNOWFLAKE_GCS: 'keboola.wr-db-snowflake-gcs',\n WR_DB_SNOWFLAKE_GCS_S3: 'keboola.wr-db-snowflake-gcs-s3',\n WR_SNOWFLAKE_BLOB_STORAGE: 'keboola.wr-snowflake-blob-storage',\n WR_LOOKER_V2: 'keboola.wr-looker-v2',\n APP_DATA_GATEWAY: 'keboola.app-data-gateway',\n WR_SYNAPSE: 'keboola.wr-synapse',\n WR_REDSHIFT: 'keboola.wr-redshift-v2',\n WR_DB_MSSQL: 'keboola.wr-db-mssql-v2',\n WR_DB_HIVE: 'keboola.wr-db-hive',\n WR_DB_IMPALA: 'keboola.wr-db-impala',\n WR_PAIRITY: 'kds-team.wr-pairity',\n WR_EXASOL: 'kds-team.wr-exasol',\n WR_FIREBOLT: 'kds-team.wr-firebolt',\n WR_HIVE_CSAS: 'kds-team.wr-hive-csas',\n WR_THOUGHTSPOT: 'keboola.wr-thoughtspot',\n WR_SISENSE: 'keboola.wr-sisense',\n} as const;\n\nexport type ComponentId = (typeof ComponentId)[keyof typeof ComponentId];\n"]}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import { isPlainObject } from './chunk-MSI6FVGG.js';
|
|
2
|
+
import { ComponentId } from './chunk-SI5TFV5M.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
|
|
5
|
+
// src/utils/isEmptyDeep.ts
|
|
6
|
+
var isEmptyDeep = (value) => {
|
|
7
|
+
if (value == null) return true;
|
|
8
|
+
if (Array.isArray(value)) return value.every(isEmptyDeep);
|
|
9
|
+
if (isPlainObject(value)) return Object.values(value).every(isEmptyDeep);
|
|
10
|
+
return false;
|
|
11
|
+
};
|
|
12
|
+
var unwrap = (schema) => schema instanceof z.ZodOptional || schema instanceof z.ZodNullable || schema instanceof z.ZodDefault ? unwrap(schema.unwrap()) : schema;
|
|
13
|
+
var schemaGuidedMerge = (schema, base, patch) => {
|
|
14
|
+
const node = unwrap(schema);
|
|
15
|
+
if (!(node instanceof z.ZodObject) || !isPlainObject(base)) return patch;
|
|
16
|
+
const out = { ...base };
|
|
17
|
+
for (const [key, value] of Object.entries(patch)) {
|
|
18
|
+
if (value === void 0) continue;
|
|
19
|
+
const child = node.shape[key];
|
|
20
|
+
const current = out[key];
|
|
21
|
+
out[key] = child && isPlainObject(current) && isPlainObject(value) ? schemaGuidedMerge(child, current, value) : value;
|
|
22
|
+
}
|
|
23
|
+
return out;
|
|
24
|
+
};
|
|
25
|
+
var appDataGatewaySchema = z.object({
|
|
26
|
+
parameters: z.object({
|
|
27
|
+
db: z.object({
|
|
28
|
+
workspaceId: z.number()
|
|
29
|
+
})
|
|
30
|
+
})
|
|
31
|
+
});
|
|
32
|
+
var dbConnectionSchema = z.object({
|
|
33
|
+
host: z.string().describe("Hostname"),
|
|
34
|
+
port: z.number().describe("Port"),
|
|
35
|
+
user: z.string().describe("Username"),
|
|
36
|
+
"#password": z.string().describe("Password"),
|
|
37
|
+
database: z.string().describe("Database Name")
|
|
38
|
+
});
|
|
39
|
+
var sshTunnelSchema = z.object({
|
|
40
|
+
enabled: z.boolean(),
|
|
41
|
+
sshHost: z.string().optional(),
|
|
42
|
+
user: z.string().optional(),
|
|
43
|
+
sshPort: z.number().optional(),
|
|
44
|
+
/** FTP passive-mode port range (e.g. `10000:10005`); only relevant to FTP extractors. */
|
|
45
|
+
passivePortRange: z.string().optional(),
|
|
46
|
+
keys: z.object({
|
|
47
|
+
public: z.string().optional(),
|
|
48
|
+
"#private": z.string().optional()
|
|
49
|
+
}).optional()
|
|
50
|
+
});
|
|
51
|
+
var sslSchema = z.object({
|
|
52
|
+
enabled: z.boolean(),
|
|
53
|
+
cert: z.string().optional(),
|
|
54
|
+
"#key": z.string().optional(),
|
|
55
|
+
ca: z.string().optional(),
|
|
56
|
+
cipher: z.string().optional(),
|
|
57
|
+
verifyServerCert: z.boolean().optional()
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
// src/sdks/configurations/schemas/wrDb.ts
|
|
61
|
+
var dbConfig = (db) => z.object({ parameters: z.object({ db }) });
|
|
62
|
+
var wrDbMysqlSchema = dbConfig(
|
|
63
|
+
dbConnectionSchema.extend({ ssh: sshTunnelSchema.optional(), ssl: sslSchema.optional() })
|
|
64
|
+
);
|
|
65
|
+
var wrDbPgsqlSchema = dbConfig(
|
|
66
|
+
dbConnectionSchema.extend({ schema: z.string(), ssh: sshTunnelSchema.optional() })
|
|
67
|
+
);
|
|
68
|
+
var wrDbOracleSchema = dbConfig(
|
|
69
|
+
dbConnectionSchema.extend({ schema: z.string().optional(), ssh: sshTunnelSchema.optional() })
|
|
70
|
+
);
|
|
71
|
+
var wrSynapseSchema = dbConfig(
|
|
72
|
+
dbConnectionSchema.extend({ schema: z.string().optional() })
|
|
73
|
+
);
|
|
74
|
+
var wrRedshiftSchema = dbConfig(
|
|
75
|
+
dbConnectionSchema.extend({ schema: z.string(), ssh: sshTunnelSchema.optional() })
|
|
76
|
+
);
|
|
77
|
+
var wrDbMssqlSchema = dbConfig(
|
|
78
|
+
dbConnectionSchema.extend({
|
|
79
|
+
instance: z.string().optional(),
|
|
80
|
+
tdsVersion: z.enum(["7.0", "7.1", "7.2", "7.3", "7.4"]),
|
|
81
|
+
ssh: sshTunnelSchema.optional()
|
|
82
|
+
})
|
|
83
|
+
);
|
|
84
|
+
var wrDbHiveSchema = dbConfig(
|
|
85
|
+
dbConnectionSchema.extend({ ssh: sshTunnelSchema.optional(), ssl: sslSchema.optional() })
|
|
86
|
+
);
|
|
87
|
+
var wrDbImpalaSchema = dbConfig(
|
|
88
|
+
dbConnectionSchema.extend({ auth_mech: z.number(), ssh: sshTunnelSchema.optional() })
|
|
89
|
+
);
|
|
90
|
+
var wrExasolSchema = dbConfig(
|
|
91
|
+
z.object({
|
|
92
|
+
host: z.string(),
|
|
93
|
+
port: z.number(),
|
|
94
|
+
user: z.string(),
|
|
95
|
+
"#password": z.string(),
|
|
96
|
+
"#refresh_token": z.string().optional(),
|
|
97
|
+
schema: z.string()
|
|
98
|
+
})
|
|
99
|
+
);
|
|
100
|
+
var wrFireboltSchema = dbConfig(
|
|
101
|
+
z.object({
|
|
102
|
+
user: z.string(),
|
|
103
|
+
"#password": z.string(),
|
|
104
|
+
database: z.string(),
|
|
105
|
+
aws_api_key_id: z.string(),
|
|
106
|
+
"#aws_api_key_secret": z.string(),
|
|
107
|
+
staging_bucket: z.string(),
|
|
108
|
+
engine_name: z.string().optional()
|
|
109
|
+
})
|
|
110
|
+
);
|
|
111
|
+
var wrHiveCsasSchema = dbConfig(
|
|
112
|
+
dbConnectionSchema.extend({
|
|
113
|
+
kinitPrincipal: z.string(),
|
|
114
|
+
servicePrincipal: z.string(),
|
|
115
|
+
config: z.string(),
|
|
116
|
+
"#keytab": z.string(),
|
|
117
|
+
ssh: sshTunnelSchema.optional()
|
|
118
|
+
})
|
|
119
|
+
);
|
|
120
|
+
var wrThoughtspotSchema = dbConfig(
|
|
121
|
+
dbConnectionSchema.extend({
|
|
122
|
+
schema: z.string().optional(),
|
|
123
|
+
sshUser: z.string(),
|
|
124
|
+
"#sshPassword": z.string()
|
|
125
|
+
})
|
|
126
|
+
);
|
|
127
|
+
var wrSisenseSchema = dbConfig(
|
|
128
|
+
z.object({
|
|
129
|
+
host: z.string(),
|
|
130
|
+
port: z.number(),
|
|
131
|
+
username: z.string(),
|
|
132
|
+
"#password": z.string(),
|
|
133
|
+
database: z.string()
|
|
134
|
+
})
|
|
135
|
+
);
|
|
136
|
+
var snowflakeCommon = dbConnectionSchema.omit({ "#password": true }).extend({ schema: z.string(), warehouse: z.string().optional() });
|
|
137
|
+
var forbidden = z.undefined().optional();
|
|
138
|
+
var wrDbSnowflakeSchema = z.object({
|
|
139
|
+
parameters: z.object({
|
|
140
|
+
db: z.union([
|
|
141
|
+
snowflakeCommon.extend({ "#password": z.string(), "#privateKey": forbidden }),
|
|
142
|
+
snowflakeCommon.extend({ "#privateKey": z.string(), "#password": forbidden })
|
|
143
|
+
])
|
|
144
|
+
})
|
|
145
|
+
});
|
|
146
|
+
var partialize = (schema) => {
|
|
147
|
+
if (schema instanceof z.ZodObject) return deepPartial(schema);
|
|
148
|
+
if (schema instanceof z.ZodUnion) {
|
|
149
|
+
const options = schema.options.map(partialize);
|
|
150
|
+
return z.union(options);
|
|
151
|
+
}
|
|
152
|
+
return schema;
|
|
153
|
+
};
|
|
154
|
+
var deepPartial = (schema) => {
|
|
155
|
+
const shape = {};
|
|
156
|
+
for (const [key, value] of Object.entries(schema.shape)) {
|
|
157
|
+
const field = value;
|
|
158
|
+
const inner = field instanceof z.ZodOptional ? field.unwrap() : field;
|
|
159
|
+
shape[key] = partialize(inner);
|
|
160
|
+
}
|
|
161
|
+
return z.object(shape).partial();
|
|
162
|
+
};
|
|
163
|
+
var createRegistry = () => {
|
|
164
|
+
const map = /* @__PURE__ */ new Map();
|
|
165
|
+
const registry2 = {
|
|
166
|
+
add(componentId, schema) {
|
|
167
|
+
map.set(componentId, schema);
|
|
168
|
+
return registry2;
|
|
169
|
+
},
|
|
170
|
+
get(componentId) {
|
|
171
|
+
const schema = map.get(componentId);
|
|
172
|
+
if (!schema) throw new Error(`No configuration registered for component "${componentId}".`);
|
|
173
|
+
return { schema, inputSchema: deepPartial(schema) };
|
|
174
|
+
},
|
|
175
|
+
has: (componentId) => map.has(componentId)
|
|
176
|
+
};
|
|
177
|
+
return registry2;
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
// src/sdks/configurations/registry.ts
|
|
181
|
+
var registry = createRegistry().add(ComponentId.WR_DB_MYSQL, wrDbMysqlSchema).add(ComponentId.WR_DB_PGSQL, wrDbPgsqlSchema).add(ComponentId.WR_PAIRITY, wrDbPgsqlSchema).add(ComponentId.WR_DB_ORACLE, wrDbOracleSchema).add(ComponentId.WR_DB_SNOWFLAKE, wrDbSnowflakeSchema).add(ComponentId.WR_DB_SNOWFLAKE_GCS, wrDbSnowflakeSchema).add(ComponentId.WR_DB_SNOWFLAKE_GCS_S3, wrDbSnowflakeSchema).add(ComponentId.WR_SNOWFLAKE_BLOB_STORAGE, wrDbSnowflakeSchema).add(ComponentId.WR_LOOKER_V2, wrDbSnowflakeSchema).add(ComponentId.APP_DATA_GATEWAY, appDataGatewaySchema).add(ComponentId.WR_SYNAPSE, wrSynapseSchema).add(ComponentId.WR_REDSHIFT, wrRedshiftSchema).add(ComponentId.WR_DB_MSSQL, wrDbMssqlSchema).add(ComponentId.WR_DB_HIVE, wrDbHiveSchema).add(ComponentId.WR_HIVE_CSAS, wrHiveCsasSchema).add(ComponentId.WR_DB_IMPALA, wrDbImpalaSchema).add(ComponentId.WR_EXASOL, wrExasolSchema).add(ComponentId.WR_FIREBOLT, wrFireboltSchema).add(ComponentId.WR_THOUGHTSPOT, wrThoughtspotSchema).add(ComponentId.WR_SISENSE, wrSisenseSchema);
|
|
182
|
+
|
|
183
|
+
// src/sdks/configurations/configurationsSdk.ts
|
|
184
|
+
var toConfigResult = (data, schema) => {
|
|
185
|
+
const result = schema.safeParse(data.configuration);
|
|
186
|
+
return {
|
|
187
|
+
data,
|
|
188
|
+
runnable: result.success,
|
|
189
|
+
error: result.error
|
|
190
|
+
};
|
|
191
|
+
};
|
|
192
|
+
var createConfigurationSdk = ({ storageClient, encryptionClient, context }) => {
|
|
193
|
+
const _encrypt = async (componentId, data) => {
|
|
194
|
+
if (isEmptyDeep(data)) return data;
|
|
195
|
+
return encryptionClient.encryptScopedSecrets({
|
|
196
|
+
scope: "ProjectSecure",
|
|
197
|
+
componentId,
|
|
198
|
+
projectId: context.project.sapiToken.owner.id,
|
|
199
|
+
data
|
|
200
|
+
});
|
|
201
|
+
};
|
|
202
|
+
const getConfiguration = async (path) => {
|
|
203
|
+
const data = await storageClient.componentsAndConfigurations.getConfiguration(path);
|
|
204
|
+
const def = registry.get(path.componentId);
|
|
205
|
+
return toConfigResult(data, def.schema);
|
|
206
|
+
};
|
|
207
|
+
const createConfiguration = async (input) => {
|
|
208
|
+
const { componentId, branchId, configuration, ...rest } = input;
|
|
209
|
+
const def = registry.get(componentId);
|
|
210
|
+
const validated = def.inputSchema.parse(configuration);
|
|
211
|
+
const encrypted = await _encrypt(componentId, validated);
|
|
212
|
+
const data = await storageClient.componentsAndConfigurations.createConfiguration({
|
|
213
|
+
...rest,
|
|
214
|
+
branchId,
|
|
215
|
+
componentId,
|
|
216
|
+
configuration: encrypted
|
|
217
|
+
});
|
|
218
|
+
return toConfigResult(data, def.schema);
|
|
219
|
+
};
|
|
220
|
+
const updateConfiguration = async (input) => {
|
|
221
|
+
const { componentId, branchId, configId, configuration, mode = "merge", ...rest } = input;
|
|
222
|
+
const def = registry.get(componentId);
|
|
223
|
+
const validated = def.inputSchema.parse(configuration);
|
|
224
|
+
const encrypted = await _encrypt(componentId, validated);
|
|
225
|
+
let newConfiguration = encrypted;
|
|
226
|
+
if (mode === "merge") {
|
|
227
|
+
const original = await storageClient.componentsAndConfigurations.getConfiguration({
|
|
228
|
+
componentId,
|
|
229
|
+
branchId,
|
|
230
|
+
configId
|
|
231
|
+
});
|
|
232
|
+
newConfiguration = schemaGuidedMerge(def.schema, original.configuration ?? {}, encrypted);
|
|
233
|
+
}
|
|
234
|
+
const data = await storageClient.componentsAndConfigurations.updateConfiguration({
|
|
235
|
+
...rest,
|
|
236
|
+
branchId,
|
|
237
|
+
componentId,
|
|
238
|
+
configId,
|
|
239
|
+
configuration: newConfiguration
|
|
240
|
+
});
|
|
241
|
+
return toConfigResult(data, def.schema);
|
|
242
|
+
};
|
|
243
|
+
return { getConfiguration, createConfiguration, updateConfiguration };
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
export { createConfigurationSdk, isEmptyDeep, schemaGuidedMerge };
|
|
247
|
+
//# sourceMappingURL=chunk-TD2PFSP6.js.map
|
|
248
|
+
//# sourceMappingURL=chunk-TD2PFSP6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/isEmptyDeep.ts","../src/utils/schemaGuidedMerge.ts","../src/sdks/configurations/schemas/appDataGatewaySchema.ts","../src/sdks/configurations/schemas/common/dbConnection.ts","../src/sdks/configurations/schemas/common/sshTunnelSchema.ts","../src/sdks/configurations/schemas/common/sslSchema.ts","../src/sdks/configurations/schemas/wrDb.ts","../src/sdks/configurations/schemas/wrDbSnowflakeSchema.ts","../src/sdks/configurations/createRegistry/createRegistry.ts","../src/sdks/configurations/registry.ts","../src/sdks/configurations/configurationsSdk.ts"],"names":["z","registry"],"mappings":"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","file":"chunk-TD2PFSP6.js","sourcesContent":["import { isPlainObject } from './isPlainObject';\n\n/**\n * Is `value` \"deeply empty\" — i.e. carries no leaf data? `null`/`undefined`, `{}`, `[]`, and\n * nested structures whose every leaf is itself empty (e.g. `{ parameters: {} }`) are empty.\n * Any present primitive (string, number, boolean — including `''`) counts as content.\n *\n * Used to skip a pointless encryption round-trip when a validated configuration has nothing\n * to encrypt.\n */\nexport const isEmptyDeep = (value: unknown): boolean => {\n if (value == null) return true;\n if (Array.isArray(value)) return value.every(isEmptyDeep);\n if (isPlainObject(value)) return Object.values(value).every(isEmptyDeep);\n return false;\n};\n","import { z } from 'zod';\n\nimport { isPlainObject } from './isPlainObject';\n\n/** Strip optional/nullable/default wrappers to reach the structural schema node. */\nconst unwrap = (schema: z.core.$ZodType): z.core.$ZodType =>\n schema instanceof z.ZodOptional ||\n schema instanceof z.ZodNullable ||\n schema instanceof z.ZodDefault\n ? unwrap(schema.unwrap())\n : schema;\n\n/**\n * Merge `patch` into `base`, guided by `schema`: descend only through object schemas, merging\n * key-by-key. At every non-object node — a `z.union` (e.g. Snowflake's password|keypair auth),\n * an array, or a primitive — the patch REPLACES the base wholesale. That replace is what lets an\n * update *delete* keys the additive `deepMerge` cannot: switching a credential union to the other\n * variant drops the abandoned variant's secret, because the entire union subtree is swapped.\n *\n * Consequence: a union (or array) subtree is all-or-nothing — the caller must send the complete\n * block, since a partial patch replaces (and so loses) the omitted siblings.\n *\n * Object keys present only in `base` (e.g. `storage`, `processors`, anything the schema omits) are\n * preserved at every level; `undefined` patch values are skipped. Assumes `patch` is already\n * schema-validated (so every object-valued patch key has a matching schema node). Pure — neither\n * argument is mutated.\n */\nexport const schemaGuidedMerge = <T extends Record<string, unknown>>(\n schema: z.core.$ZodType,\n base: T,\n patch: Record<string, unknown>,\n): T => {\n const node = unwrap(schema);\n if (!(node instanceof z.ZodObject) || !isPlainObject(base)) return patch as T;\n\n const out: Record<string, unknown> = { ...base };\n for (const [key, value] of Object.entries(patch)) {\n if (value === undefined) continue;\n const child = node.shape[key];\n const current = out[key];\n out[key] =\n child && isPlainObject(current) && isPlainObject(value)\n ? schemaGuidedMerge(child, current, value)\n : value;\n }\n\n return out as T;\n};\n","import { z } from 'zod';\n\n/**\n * `keboola.app-data-gateway` — the Data Gateway provisions and manages its own Snowflake\n * workspace, so the config carries no credentials: just the id of the workspace it runs\n * against, stored at `parameters.db.workspaceId`.\n */\nexport const appDataGatewaySchema = z.object({\n parameters: z.object({\n db: z.object({\n workspaceId: z.number(),\n }),\n }),\n});\n","import { z } from 'zod';\n\n/**\n * The credential fields shared by virtually every DB writer, stored at `parameters.db`.\n * Components extend this with driver-specific fields (`schema`, `warehouse`, `ssh`, …) and\n * override where they differ (e.g. Snowflake makes `#password` optional). Secret leaves use\n * the `#` prefix the encryption service recognizes.\n */\nexport const dbConnectionSchema = z.object({\n host: z.string().describe('Hostname'),\n port: z.number().describe('Port'),\n user: z.string().describe('Username'),\n '#password': z.string().describe('Password'),\n database: z.string().describe('Database Name'),\n});\n","import { z } from 'zod';\n\nexport const sshTunnelSchema = z.object({\n enabled: z.boolean(),\n sshHost: z.string().optional(),\n user: z.string().optional(),\n sshPort: z.number().optional(),\n /** FTP passive-mode port range (e.g. `10000:10005`); only relevant to FTP extractors. */\n passivePortRange: z.string().optional(),\n keys: z\n .object({\n public: z.string().optional(),\n '#private': z.string().optional(),\n })\n .optional(),\n});\n","import { z } from 'zod';\n\n/** SSL options nested at `parameters.db.ssl` (drivers that support it, e.g. MySQL, Hive). */\nexport const sslSchema = z.object({\n enabled: z.boolean(),\n cert: z.string().optional(),\n '#key': z.string().optional(),\n ca: z.string().optional(),\n cipher: z.string().optional(),\n verifyServerCert: z.boolean().optional(),\n});\n","import { z } from 'zod';\n\nimport { dbConnectionSchema, sshTunnelSchema, sslSchema } from './common';\n\n/** Wrap a `parameters.db` credential schema into the full component config shape. */\nconst dbConfig = <Db extends z.ZodType>(db: Db) => z.object({ parameters: z.object({ db }) });\n\n/** `keboola.wr-db-mysql` — host/port/user/#password/database, optional SSH + SSL tunnels. */\nexport const wrDbMysqlSchema = dbConfig(\n dbConnectionSchema.extend({ ssh: sshTunnelSchema.optional(), ssl: sslSchema.optional() }),\n);\n\n/** `keboola.wr-db-pgsql` — adds a required `schema`, optional SSH. */\nexport const wrDbPgsqlSchema = dbConfig(\n dbConnectionSchema.extend({ schema: z.string(), ssh: sshTunnelSchema.optional() }),\n);\n\n/** `keboola.wr-db-oracle` — optional `schema`, optional SSH. */\nexport const wrDbOracleSchema = dbConfig(\n dbConnectionSchema.extend({ schema: z.string().optional(), ssh: sshTunnelSchema.optional() }),\n);\n\n/** `keboola.wr-synapse` — optional `schema` (defaults to `dbo` in the UI). */\nexport const wrSynapseSchema = dbConfig(\n dbConnectionSchema.extend({ schema: z.string().optional() }),\n);\n\n/** `keboola.wr-redshift-v2` — required `schema`, optional SSH. */\nexport const wrRedshiftSchema = dbConfig(\n dbConnectionSchema.extend({ schema: z.string(), ssh: sshTunnelSchema.optional() }),\n);\n\n/** `keboola.wr-db-mssql-v2` — optional `instance`, required `tdsVersion`, optional SSH. */\nexport const wrDbMssqlSchema = dbConfig(\n dbConnectionSchema.extend({\n instance: z.string().optional(),\n tdsVersion: z.enum(['7.0', '7.1', '7.2', '7.3', '7.4']),\n ssh: sshTunnelSchema.optional(),\n }),\n);\n\n/** `keboola.wr-db-hive` — optional SSH + SSL tunnels. */\nexport const wrDbHiveSchema = dbConfig(\n dbConnectionSchema.extend({ ssh: sshTunnelSchema.optional(), ssl: sslSchema.optional() }),\n);\n\n/** `keboola.wr-db-impala` — adds `auth_mech`, optional SSH. */\nexport const wrDbImpalaSchema = dbConfig(\n dbConnectionSchema.extend({ auth_mech: z.number(), ssh: sshTunnelSchema.optional() }),\n);\n\n// ── Divergent shapes (don't fit the shared db-connection base) ───────────────────────────\n\n/** `kds-team.wr-exasol` — no `database`; SaaS personal-access-token alongside the password. */\nexport const wrExasolSchema = dbConfig(\n z.object({\n host: z.string(),\n port: z.number(),\n user: z.string(),\n '#password': z.string(),\n '#refresh_token': z.string().optional(),\n schema: z.string(),\n }),\n);\n\n/** `kds-team.wr-firebolt` — no host/port; engine + AWS staging credentials. */\nexport const wrFireboltSchema = dbConfig(\n z.object({\n user: z.string(),\n '#password': z.string(),\n database: z.string(),\n aws_api_key_id: z.string(),\n '#aws_api_key_secret': z.string(),\n staging_bucket: z.string(),\n engine_name: z.string().optional(),\n }),\n);\n\n/** `kds-team.wr-hive-csas` — Hive base + Kerberos auth. */\nexport const wrHiveCsasSchema = dbConfig(\n dbConnectionSchema.extend({\n kinitPrincipal: z.string(),\n servicePrincipal: z.string(),\n config: z.string(),\n '#keytab': z.string(),\n ssh: sshTunnelSchema.optional(),\n }),\n);\n\n/** `keboola.wr-thoughtspot` — SSH tunnel creds carried as top-level fields, not nested. */\nexport const wrThoughtspotSchema = dbConfig(\n dbConnectionSchema.extend({\n schema: z.string().optional(),\n sshUser: z.string(),\n '#sshPassword': z.string(),\n }),\n);\n\n/** `keboola.wr-sisense` — uses `username` (not `user`). */\nexport const wrSisenseSchema = dbConfig(\n z.object({\n host: z.string(),\n port: z.number(),\n username: z.string(),\n '#password': z.string(),\n database: z.string(),\n }),\n);\n","import { z } from 'zod';\n\nimport { dbConnectionSchema } from './common';\n\n/**\n * `keboola.wr-db-snowflake` — auth is a union: password OR key-pair (exactly one). The common\n * fields (host/port/user/database/schema/warehouse) are shared; each variant requires its own\n * secret and *forbids the other* (`z.undefined()`), so a config carrying both — or neither —\n * is rejected at runtime and at the type level. Without the `forbidden` half, the variants\n * would be open objects: the extra key is excess (TS allows it) and stripped (Zod accepts it).\n */\nconst snowflakeCommon = dbConnectionSchema\n .omit({ '#password': true })\n .extend({ schema: z.string(), warehouse: z.string().optional() });\n\nconst forbidden = z.undefined().optional();\n\nexport const wrDbSnowflakeSchema = z.object({\n parameters: z.object({\n db: z.union([\n snowflakeCommon.extend({ '#password': z.string(), '#privateKey': forbidden }),\n snowflakeCommon.extend({ '#privateKey': z.string(), '#password': forbidden }),\n ]),\n }),\n});\n","import { z } from 'zod';\n\n/** Deep-partial any schema: objects → keys optional (recursing), unions → each member\n * deep-partialed, anything else left as-is. Lets a union schema (e.g. Snowflake's\n * password | key-pair auth) still produce a partial input schema. */\nconst partialize = (schema: z.ZodType): z.ZodType => {\n if (schema instanceof z.ZodObject) return deepPartial(schema);\n if (schema instanceof z.ZodUnion) {\n const options = (schema.options as z.ZodType[]).map(partialize);\n return z.union(options as [z.ZodType, z.ZodType, ...z.ZodType[]]);\n }\n return schema;\n};\n\nconst deepPartial = (schema: z.ZodObject): z.ZodObject => {\n const shape: Record<string, z.ZodType> = {};\n for (const [key, value] of Object.entries(schema.shape)) {\n const field = value as z.ZodType;\n const inner = field instanceof z.ZodOptional ? (field.unwrap() as z.ZodType) : field;\n shape[key] = partialize(inner);\n }\n return z.object(shape).partial();\n};\n\nexport type Registry<M extends Record<string, z.ZodObject>> = {\n add: <const Id extends string, Schema extends z.ZodObject>(\n componentId: Id,\n schema: Schema,\n ) => Registry<M & Record<Id, Schema>>;\n get: <Id extends keyof M>(\n componentId: Id,\n ) => {\n /** The component's complete runnable schema (precise per id). */\n schema: M[Id];\n /** Its deep-partial — the accepted create/update input. Loose `z.ZodObject` (the precise\n * partial type isn't worth deriving; callers get input typing from `schema` via `z.input`). */\n inputSchema: z.ZodObject;\n };\n has: (componentId: string) => boolean;\n};\n\n/** Extracts the registered component-id union from a registry instance type. */\nexport type InferComponentId<R> = R extends Registry<infer M> ? keyof M & string : never;\n\nexport const createRegistry = (): Registry<Record<never, never>> => {\n const map = new Map<string, z.ZodObject>();\n\n const registry = {\n add(componentId: string, schema: z.ZodObject) {\n map.set(componentId, schema);\n return registry;\n },\n get(componentId: string) {\n const schema = map.get(componentId);\n if (!schema) throw new Error(`No configuration registered for component \"${componentId}\".`);\n return { schema, inputSchema: deepPartial(schema) };\n },\n has: (componentId: string) => map.has(componentId),\n };\n\n return registry as unknown as Registry<Record<never, never>>;\n};\n","import { ComponentId } from '../../constants';\n\nimport { appDataGatewaySchema } from './schemas/appDataGatewaySchema';\nimport {\n wrDbHiveSchema,\n wrDbImpalaSchema,\n wrDbMssqlSchema,\n wrDbMysqlSchema,\n wrDbOracleSchema,\n wrDbPgsqlSchema,\n wrExasolSchema,\n wrFireboltSchema,\n wrHiveCsasSchema,\n wrRedshiftSchema,\n wrSisenseSchema,\n wrSynapseSchema,\n wrThoughtspotSchema,\n} from './schemas/wrDb';\nimport { wrDbSnowflakeSchema } from './schemas/wrDbSnowflakeSchema';\nimport { createRegistry, type GetRegisteredId } from './createRegistry';\n\nexport const registry = createRegistry()\n .add(ComponentId.WR_DB_MYSQL, wrDbMysqlSchema)\n .add(ComponentId.WR_DB_PGSQL, wrDbPgsqlSchema)\n .add(ComponentId.WR_PAIRITY, wrDbPgsqlSchema) // pgsql variant\n .add(ComponentId.WR_DB_ORACLE, wrDbOracleSchema)\n .add(ComponentId.WR_DB_SNOWFLAKE, wrDbSnowflakeSchema)\n .add(ComponentId.WR_DB_SNOWFLAKE_GCS, wrDbSnowflakeSchema)\n .add(ComponentId.WR_DB_SNOWFLAKE_GCS_S3, wrDbSnowflakeSchema)\n .add(ComponentId.WR_SNOWFLAKE_BLOB_STORAGE, wrDbSnowflakeSchema)\n .add(ComponentId.WR_LOOKER_V2, wrDbSnowflakeSchema) // legacy snowflake\n .add(ComponentId.APP_DATA_GATEWAY, appDataGatewaySchema) // snowflake-provisioned\n .add(ComponentId.WR_SYNAPSE, wrSynapseSchema)\n .add(ComponentId.WR_REDSHIFT, wrRedshiftSchema)\n .add(ComponentId.WR_DB_MSSQL, wrDbMssqlSchema)\n .add(ComponentId.WR_DB_HIVE, wrDbHiveSchema)\n .add(ComponentId.WR_HIVE_CSAS, wrHiveCsasSchema)\n .add(ComponentId.WR_DB_IMPALA, wrDbImpalaSchema)\n .add(ComponentId.WR_EXASOL, wrExasolSchema)\n .add(ComponentId.WR_FIREBOLT, wrFireboltSchema)\n .add(ComponentId.WR_THOUGHTSPOT, wrThoughtspotSchema)\n .add(ComponentId.WR_SISENSE, wrSisenseSchema);\n\nexport type RegisteredComponentId = GetRegisteredId<typeof registry>;\n","import type { z } from 'zod';\n\nimport type { createEncryptionClient } from '../../clients/encryption/encryptionClient';\nimport type * as storage from '../../clients/storage';\nimport type {\n BaseComponentConfig,\n ConfigurationPath,\n CreateConfigurationInput,\n UpdateConfigurationInput,\n} from '../../clients/storage/types';\nimport type { createDefaultBranch } from '../../domain/defaultBranch';\nimport type { Project } from '../../domain/project';\nimport { isEmptyDeep } from '../../utils/isEmptyDeep';\nimport { schemaGuidedMerge } from '../../utils/schemaGuidedMerge';\n\nimport { type RegisteredComponentId, registry } from './registry';\n\ntype ConfigurationSdkContext = {\n project: Project;\n defaultBranch: ReturnType<typeof createDefaultBranch>;\n};\n\ntype Options = {\n storageClient: ReturnType<typeof storage.createStorageClient>;\n encryptionClient: ReturnType<typeof createEncryptionClient>;\n context: ConfigurationSdkContext;\n};\n\ntype DeepPartial<T> = T extends object ? { [K in keyof T]?: DeepPartial<T[K]> } : T;\n\ntype ConfigurationSchema<ComponentId extends RegisteredComponentId> = z.input<\n ReturnType<typeof registry.get<ComponentId>>['schema']\n>;\n\ntype TypedConfiguration<ComponentId extends RegisteredComponentId> = {\n componentId: ComponentId;\n configuration: DeepPartial<ConfigurationSchema<ComponentId>>;\n};\n\n/**\n * How an update writes the patch against the stored configuration:\n * - `'merge'` (default) — schema-guided deep merge: object fields patch individually, while a\n * credential union or array subtree is replaced wholesale (so switching auth variants deletes\n * the abandoned secret). Untouched leaves and out-of-schema keys are preserved. Reads the\n * current config first to merge onto.\n * - `'replace'` — store exactly what the caller sends (after validation + encryption); no read,\n * no merge. Completeness is on the caller — any field or sibling key (e.g. `storage`) it omits\n * is gone.\n */\ntype UpdateMode = 'merge' | 'replace';\n\nconst toConfigResult = <ComponentId extends RegisteredComponentId>(\n data: BaseComponentConfig,\n schema: z.ZodType,\n) => {\n const result = schema.safeParse(data.configuration);\n\n return {\n data: data as BaseComponentConfig<ConfigurationSchema<ComponentId>>,\n runnable: result.success,\n error: result.error,\n };\n};\n\nexport const createConfigurationSdk = ({ storageClient, encryptionClient, context }: Options) => {\n const _encrypt = async (\n componentId: RegisteredComponentId,\n data: Record<string, unknown>,\n ): Promise<Record<string, unknown>> => {\n if (isEmptyDeep(data)) return data;\n\n return encryptionClient.encryptScopedSecrets({\n scope: 'ProjectSecure',\n componentId,\n projectId: context.project.sapiToken.owner.id,\n data,\n });\n };\n\n const getConfiguration = async <ComponentId extends RegisteredComponentId>(\n path: ConfigurationPath<ComponentId>,\n ) => {\n const data = await storageClient.componentsAndConfigurations.getConfiguration(path);\n const def = registry.get(path.componentId);\n\n return toConfigResult<ComponentId>(data, def.schema);\n };\n\n const createConfiguration = async <ComponentId extends RegisteredComponentId>(\n input: Omit<CreateConfigurationInput<ComponentId>, 'componentId' | 'configuration'> &\n TypedConfiguration<ComponentId>,\n ) => {\n const { componentId, branchId, configuration, ...rest } = input;\n const def = registry.get(componentId);\n const validated = def.inputSchema.parse(configuration);\n const encrypted = await _encrypt(componentId, validated);\n\n const data = await storageClient.componentsAndConfigurations.createConfiguration({\n ...rest,\n branchId,\n componentId,\n configuration: encrypted,\n });\n\n return toConfigResult<ComponentId>(data, def.schema);\n };\n\n const updateConfiguration = async <ComponentId extends RegisteredComponentId>(\n input: Omit<UpdateConfigurationInput<ComponentId>, 'componentId' | 'configuration'> &\n TypedConfiguration<ComponentId> & { mode?: UpdateMode },\n ) => {\n const { componentId, branchId, configId, configuration, mode = 'merge', ...rest } = input;\n const def = registry.get(componentId);\n\n const validated = def.inputSchema.parse(configuration);\n const encrypted = await _encrypt(componentId, validated);\n\n let newConfiguration: Record<string, unknown> = encrypted;\n if (mode === 'merge') {\n const original = await storageClient.componentsAndConfigurations.getConfiguration({\n componentId,\n branchId,\n configId,\n });\n newConfiguration = schemaGuidedMerge(def.schema, original.configuration ?? {}, encrypted);\n }\n\n const data = await storageClient.componentsAndConfigurations.updateConfiguration({\n ...rest,\n branchId,\n componentId,\n configId,\n configuration: newConfiguration,\n });\n\n return toConfigResult<ComponentId>(data, def.schema);\n };\n\n return { getConfiguration, createConfiguration, updateConfiguration };\n};\n"]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
3
|
+
var chunkVKHQ6BWE_cjs = require('./chunk-VKHQ6BWE.cjs');
|
|
4
|
+
var chunkIDYRJ4K3_cjs = require('./chunk-IDYRJ4K3.cjs');
|
|
5
|
+
var chunkR7MQGDLC_cjs = require('./chunk-R7MQGDLC.cjs');
|
|
6
6
|
|
|
7
7
|
// src/errors/ManagementClientAuthError.ts
|
|
8
|
-
var ManagementClientAuthError = class extends
|
|
8
|
+
var ManagementClientAuthError = class extends chunkIDYRJ4K3_cjs.ApiError {
|
|
9
9
|
title;
|
|
10
10
|
message;
|
|
11
11
|
constructor(title, message, res) {
|
|
@@ -19,9 +19,9 @@ var ManagementClientAuthError = class extends chunk3CIPWA33_cjs.ApiError {
|
|
|
19
19
|
var TOKEN_CACHE_TTL_MS = 6e4;
|
|
20
20
|
var isManagementClientAuthError = (error) => error instanceof ManagementClientAuthError;
|
|
21
21
|
var createAuth = (baseUrl) => {
|
|
22
|
-
const fetchClient =
|
|
22
|
+
const fetchClient = chunkIDYRJ4K3_cjs.createGenericFetchClient({ baseUrl });
|
|
23
23
|
const createCurrentUserSessionToken = async (accessToken) => {
|
|
24
|
-
const headers = new Headers({ [
|
|
24
|
+
const headers = new Headers({ [chunkR7MQGDLC_cjs.KeboolaHttpHeader.MANAGEMENT_API_TOKEN]: accessToken });
|
|
25
25
|
const { data } = await fetchClient.post(
|
|
26
26
|
"/manage/current-user/session-token",
|
|
27
27
|
{},
|
|
@@ -37,14 +37,14 @@ var createAuth = (baseUrl) => {
|
|
|
37
37
|
// transform valid response, to invalid and throw custom error
|
|
38
38
|
validateStatus: (apiResponse) => {
|
|
39
39
|
const { response } = apiResponse;
|
|
40
|
-
const isTextContent = response.headers.get(
|
|
40
|
+
const isTextContent = response.headers.get(chunkIDYRJ4K3_cjs.HttpHeader.CONTENT_TYPE)?.includes(chunkIDYRJ4K3_cjs.HttpContentType.TEXT_HTML);
|
|
41
41
|
if (isTextContent)
|
|
42
42
|
return new ManagementClientAuthError(
|
|
43
43
|
"Your session expired",
|
|
44
44
|
"You will be logged out automatically.",
|
|
45
45
|
apiResponse
|
|
46
46
|
);
|
|
47
|
-
return
|
|
47
|
+
return chunkIDYRJ4K3_cjs.defaultValidateStatus(apiResponse);
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
);
|
|
@@ -60,7 +60,7 @@ var createAuthMiddleware = ({
|
|
|
60
60
|
baseUrl
|
|
61
61
|
}) => {
|
|
62
62
|
const auth = createAuth(baseUrl);
|
|
63
|
-
const verify =
|
|
63
|
+
const verify = chunkVKHQ6BWE_cjs.createVerifyClient();
|
|
64
64
|
let token = accessToken;
|
|
65
65
|
let tokenValidUntil = 0;
|
|
66
66
|
let inflightAuth = null;
|
|
@@ -89,7 +89,7 @@ var createAuthMiddleware = ({
|
|
|
89
89
|
});
|
|
90
90
|
}
|
|
91
91
|
const validToken = await inflightAuth;
|
|
92
|
-
request.request.headers.set(
|
|
92
|
+
request.request.headers.set(chunkR7MQGDLC_cjs.KeboolaHttpHeader.MANAGEMENT_API_TOKEN, validToken);
|
|
93
93
|
return next(request);
|
|
94
94
|
};
|
|
95
95
|
};
|
|
@@ -772,11 +772,11 @@ var createManagementClient = ({
|
|
|
772
772
|
authMiddleware
|
|
773
773
|
// 👈 beware order of middlewares always matter
|
|
774
774
|
];
|
|
775
|
-
const client =
|
|
775
|
+
const client = chunkIDYRJ4K3_cjs.createGenericFetchClient({
|
|
776
776
|
baseUrl,
|
|
777
777
|
middlewares: allMiddlewares
|
|
778
778
|
});
|
|
779
|
-
const openApiClient =
|
|
779
|
+
const openApiClient = chunkIDYRJ4K3_cjs.createOpenapiFetchClient({
|
|
780
780
|
baseUrl,
|
|
781
781
|
middlewares: allMiddlewares
|
|
782
782
|
});
|
|
@@ -798,5 +798,5 @@ var createManagementClient = ({
|
|
|
798
798
|
exports.ManagementClientAuthError = ManagementClientAuthError;
|
|
799
799
|
exports.createManagementClient = createManagementClient;
|
|
800
800
|
exports.isManagementClientAuthError = isManagementClientAuthError;
|
|
801
|
-
//# sourceMappingURL=chunk-
|
|
802
|
-
//# sourceMappingURL=chunk-
|
|
801
|
+
//# sourceMappingURL=chunk-TWP7DBSZ.cjs.map
|
|
802
|
+
//# sourceMappingURL=chunk-TWP7DBSZ.cjs.map
|