@transcend-io/cli 10.25.5 → 10.26.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/README.md +264 -1
- package/dist/{app-DYoi_kYl.mjs → app-CZX6ZV6X.mjs} +38 -21
- package/dist/app-CZX6ZV6X.mjs.map +1 -0
- package/dist/{approvePrivacyRequests-D4ZfEesR.mjs → approvePrivacyRequests-D1S2AYud.mjs} +2 -2
- package/dist/{approvePrivacyRequests-D4ZfEesR.mjs.map → approvePrivacyRequests-D1S2AYud.mjs.map} +1 -1
- package/dist/bin/bash-complete.mjs +1 -1
- package/dist/bin/cli.mjs +1 -1
- package/dist/bin/deprecated-command.mjs +1 -1
- package/dist/{buildExamples-Cr6HGX4h.mjs → buildExamples-CnfZJ8MD.mjs} +2 -2
- package/dist/{buildExamples-Cr6HGX4h.mjs.map → buildExamples-CnfZJ8MD.mjs.map} +1 -1
- package/dist/{buildXdiSyncEndpoint-CXAYh3vF.mjs → buildXdiSyncEndpoint-B4l998cU.mjs} +2 -2
- package/dist/{buildXdiSyncEndpoint-CXAYh3vF.mjs.map → buildXdiSyncEndpoint-B4l998cU.mjs.map} +1 -1
- package/dist/{bulkRestartRequests-CSBPINdi.mjs → bulkRestartRequests-NAASQwvP.mjs} +2 -2
- package/dist/{bulkRestartRequests-CSBPINdi.mjs.map → bulkRestartRequests-NAASQwvP.mjs.map} +1 -1
- package/dist/{bulkRetryEnrichers-BPWSWNuC.mjs → bulkRetryEnrichers-BEEVKtCH.mjs} +2 -2
- package/dist/{bulkRetryEnrichers-BPWSWNuC.mjs.map → bulkRetryEnrichers-BEEVKtCH.mjs.map} +1 -1
- package/dist/{cancelPrivacyRequests-CyT7z4fs.mjs → cancelPrivacyRequests-DM3Zamqd.mjs} +2 -2
- package/dist/{cancelPrivacyRequests-CyT7z4fs.mjs.map → cancelPrivacyRequests-DM3Zamqd.mjs.map} +1 -1
- package/dist/codecs-DJFlZLGT.mjs +2 -0
- package/dist/codecs-DJFlZLGT.mjs.map +1 -0
- package/dist/{collectCsvFilesOrExit-C8-Pr9Hr.mjs → collectCsvFilesOrExit-BPo8Mjy7.mjs} +1 -1
- package/dist/{collectCsvFilesOrExit-C8-Pr9Hr.mjs.map → collectCsvFilesOrExit-BPo8Mjy7.mjs.map} +1 -1
- package/dist/{collectParquetFilesOrExit-DyZISY9X.mjs → collectParquetFilesOrExit-DVS9_OSv.mjs} +1 -1
- package/dist/{collectParquetFilesOrExit-DyZISY9X.mjs.map → collectParquetFilesOrExit-DVS9_OSv.mjs.map} +1 -1
- package/dist/{command-Cqlyn4cR.mjs → command-30CgpFvx.mjs} +2 -2
- package/dist/{command-Cqlyn4cR.mjs.map → command-30CgpFvx.mjs.map} +1 -1
- package/dist/commands/admin/parquet-to-csv/worker.mjs +1 -1
- package/dist/{consentManagersToBusinessEntities-DGzryQ3W.mjs → consentManagersToBusinessEntities-rf8_xu71.mjs} +1 -1
- package/dist/{consentManagersToBusinessEntities-DGzryQ3W.mjs.map → consentManagersToBusinessEntities-rf8_xu71.mjs.map} +1 -1
- package/dist/{constants-DNF09zFX.mjs → constants-BgCEW975.mjs} +2 -2
- package/dist/{constants-DNF09zFX.mjs.map → constants-BgCEW975.mjs.map} +1 -1
- package/dist/{constants-Ch1Lt8Wa.mjs → constants-CAOyAsNX.mjs} +2 -2
- package/dist/{constants-Ch1Lt8Wa.mjs.map → constants-CAOyAsNX.mjs.map} +1 -1
- package/dist/{createExtraKeyHandler-BbM9bElu.mjs → createExtraKeyHandler-DbWzaD4c.mjs} +2 -2
- package/dist/{createExtraKeyHandler-BbM9bElu.mjs.map → createExtraKeyHandler-DbWzaD4c.mjs.map} +1 -1
- package/dist/{dataFlowsToDataSilos-DRGrUosf.mjs → dataFlowsToDataSilos-DRuAfwIn.mjs} +1 -1
- package/dist/{dataFlowsToDataSilos-DRGrUosf.mjs.map → dataFlowsToDataSilos-DRuAfwIn.mjs.map} +1 -1
- package/dist/{done-input-validation-uqIgnJcw.mjs → done-input-validation-DL31vk7g.mjs} +1 -1
- package/dist/{done-input-validation-uqIgnJcw.mjs.map → done-input-validation-DL31vk7g.mjs.map} +1 -1
- package/dist/{downloadPrivacyRequestFiles-CaOdAuGW.mjs → downloadPrivacyRequestFiles-DSOTFVU6.mjs} +2 -2
- package/dist/{downloadPrivacyRequestFiles-CaOdAuGW.mjs.map → downloadPrivacyRequestFiles-DSOTFVU6.mjs.map} +1 -1
- package/dist/{generateCrossAccountApiKeys-JCZ444Xx.mjs → generateCrossAccountApiKeys-C3mCgp6X.mjs} +2 -2
- package/dist/{generateCrossAccountApiKeys-JCZ444Xx.mjs.map → generateCrossAccountApiKeys-C3mCgp6X.mjs.map} +1 -1
- package/dist/{impl-xNSHqJyt2.mjs → impl-1ueiw_XV2.mjs} +2 -2
- package/dist/{impl-xNSHqJyt2.mjs.map → impl-1ueiw_XV2.mjs.map} +1 -1
- package/dist/{impl-Ce4Ua3nx.mjs → impl-7pxeoDZg.mjs} +2 -2
- package/dist/{impl-Ce4Ua3nx.mjs.map → impl-7pxeoDZg.mjs.map} +1 -1
- package/dist/impl-8zmHCdih.mjs +2 -0
- package/dist/{impl-CxjrhJ-X.mjs.map → impl-8zmHCdih.mjs.map} +1 -1
- package/dist/{impl-m1WDTmQO.mjs → impl-B0fzc-Pd.mjs} +2 -2
- package/dist/{impl-m1WDTmQO.mjs.map → impl-B0fzc-Pd.mjs.map} +1 -1
- package/dist/{impl-DdjTOXMv.mjs → impl-B2eZGemA.mjs} +2 -2
- package/dist/{impl-DdjTOXMv.mjs.map → impl-B2eZGemA.mjs.map} +1 -1
- package/dist/{impl-BXjWAiAl2.mjs → impl-B2yCuG6f2.mjs} +2 -2
- package/dist/{impl-BXjWAiAl2.mjs.map → impl-B2yCuG6f2.mjs.map} +1 -1
- package/dist/{impl-CRH0V2nJ.mjs → impl-B6_4iGM2.mjs} +2 -2
- package/dist/{impl-CRH0V2nJ.mjs.map → impl-B6_4iGM2.mjs.map} +1 -1
- package/dist/{impl-BgkjL6_C.mjs → impl-B_1LPpGy.mjs} +2 -2
- package/dist/{impl-BgkjL6_C.mjs.map → impl-B_1LPpGy.mjs.map} +1 -1
- package/dist/{impl-DgyNLnJo2.mjs → impl-Bbtnhcy02.mjs} +2 -2
- package/dist/{impl-DgyNLnJo2.mjs.map → impl-Bbtnhcy02.mjs.map} +1 -1
- package/dist/{impl-Be2M3iuo.mjs → impl-BdG67mkj.mjs} +2 -2
- package/dist/{impl-Be2M3iuo.mjs.map → impl-BdG67mkj.mjs.map} +1 -1
- package/dist/{impl-5db-Jqms.mjs → impl-BdTWl0Xm.mjs} +2 -2
- package/dist/{impl-5db-Jqms.mjs.map → impl-BdTWl0Xm.mjs.map} +1 -1
- package/dist/{impl-C7Xp0Txd.mjs → impl-BmQR1Pae.mjs} +2 -2
- package/dist/{impl-C7Xp0Txd.mjs.map → impl-BmQR1Pae.mjs.map} +1 -1
- package/dist/{impl-BX76WSDL.mjs → impl-BnzPrDmM.mjs} +2 -2
- package/dist/{impl-BX76WSDL.mjs.map → impl-BnzPrDmM.mjs.map} +1 -1
- package/dist/{impl-Dp8o3Xpr.mjs → impl-BohgbWOH.mjs} +2 -2
- package/dist/{impl-Dp8o3Xpr.mjs.map → impl-BohgbWOH.mjs.map} +1 -1
- package/dist/{impl-CBIcjbfD.mjs → impl-BsPgb_kT.mjs} +2 -2
- package/dist/{impl-CBIcjbfD.mjs.map → impl-BsPgb_kT.mjs.map} +1 -1
- package/dist/{impl-BvLjryD7.mjs → impl-Bur_bNXN.mjs} +2 -2
- package/dist/{impl-BvLjryD7.mjs.map → impl-Bur_bNXN.mjs.map} +1 -1
- package/dist/{impl-NUMkBg7d.mjs → impl-BwuWn3TM.mjs} +2 -2
- package/dist/{impl-NUMkBg7d.mjs.map → impl-BwuWn3TM.mjs.map} +1 -1
- package/dist/{impl-B0AKcSoy.mjs → impl-BxQE7dL92.mjs} +2 -2
- package/dist/impl-BxQE7dL92.mjs.map +1 -0
- package/dist/impl-C2DDZ1EB2.mjs +2 -0
- package/dist/{impl-o0RdOoiZ2.mjs.map → impl-C2DDZ1EB2.mjs.map} +1 -1
- package/dist/{impl-BF9Ekyjn.mjs → impl-C3f_H_77.mjs} +2 -2
- package/dist/{impl-BF9Ekyjn.mjs.map → impl-C3f_H_77.mjs.map} +1 -1
- package/dist/{impl-DjOWgFlT.mjs → impl-C9KCLG7s2.mjs} +2 -2
- package/dist/impl-C9KCLG7s2.mjs.map +1 -0
- package/dist/{impl-C9Br_VrZ.mjs → impl-CWVX0Xnv.mjs} +2 -2
- package/dist/{impl-C9Br_VrZ.mjs.map → impl-CWVX0Xnv.mjs.map} +1 -1
- package/dist/impl-CWqtBcmr.mjs +2 -0
- package/dist/{impl-Bk6lPywf.mjs.map → impl-CWqtBcmr.mjs.map} +1 -1
- package/dist/{impl-BCEw1fsj.mjs → impl-CZG9gzzR.mjs} +2 -2
- package/dist/{impl-BCEw1fsj.mjs.map → impl-CZG9gzzR.mjs.map} +1 -1
- package/dist/{impl-CiaTPxwK.mjs → impl-Ca064LmU.mjs} +2 -2
- package/dist/{impl-CiaTPxwK.mjs.map → impl-Ca064LmU.mjs.map} +1 -1
- package/dist/{impl-CMqjJCoY2.mjs → impl-CdOwXtLY2.mjs} +2 -2
- package/dist/{impl-CMqjJCoY2.mjs.map → impl-CdOwXtLY2.mjs.map} +1 -1
- package/dist/{impl-B_4_7a-i.mjs → impl-Chska4J8.mjs} +2 -2
- package/dist/{impl-B_4_7a-i.mjs.map → impl-Chska4J8.mjs.map} +1 -1
- package/dist/{impl-Bgg6AZQS.mjs → impl-CkoQHhc8.mjs} +2 -2
- package/dist/{impl-Bgg6AZQS.mjs.map → impl-CkoQHhc8.mjs.map} +1 -1
- package/dist/impl-Cl3hf0Pd.mjs +2 -0
- package/dist/impl-Cl3hf0Pd.mjs.map +1 -0
- package/dist/{impl-D6rMK5Us.mjs → impl-CnrK11Gr2.mjs} +2 -2
- package/dist/impl-CnrK11Gr2.mjs.map +1 -0
- package/dist/{impl-Zjvt9J28.mjs → impl-D0-ioxpZ.mjs} +2 -2
- package/dist/{impl-Zjvt9J28.mjs.map → impl-D0-ioxpZ.mjs.map} +1 -1
- package/dist/impl-D5fmpaDf2.mjs +2 -0
- package/dist/{impl-tNN3yVw72.mjs.map → impl-D5fmpaDf2.mjs.map} +1 -1
- package/dist/impl-DBK5c6d0.mjs +2 -0
- package/dist/impl-DBK5c6d0.mjs.map +1 -0
- package/dist/{impl-rTqHhQ7X2.mjs → impl-DJHPOIQn2.mjs} +2 -2
- package/dist/{impl-rTqHhQ7X2.mjs.map → impl-DJHPOIQn2.mjs.map} +1 -1
- package/dist/{impl-DGQW5mVR.mjs → impl-DLWhxaMi.mjs} +2 -2
- package/dist/{impl-DGQW5mVR.mjs.map → impl-DLWhxaMi.mjs.map} +1 -1
- package/dist/{impl-iGEtfSgW2.mjs → impl-DLypyDZV2.mjs} +2 -2
- package/dist/{impl-iGEtfSgW2.mjs.map → impl-DLypyDZV2.mjs.map} +1 -1
- package/dist/{impl-CCMVpNez.mjs → impl-DNtaoKI9.mjs} +2 -2
- package/dist/{impl-CCMVpNez.mjs.map → impl-DNtaoKI9.mjs.map} +1 -1
- package/dist/{impl-X50_5E1x.mjs → impl-DOQk-mfA.mjs} +2 -2
- package/dist/{impl-X50_5E1x.mjs.map → impl-DOQk-mfA.mjs.map} +1 -1
- package/dist/{impl-DUxqEjMF.mjs → impl-DPC_ktM2.mjs} +2 -2
- package/dist/{impl-DUxqEjMF.mjs.map → impl-DPC_ktM2.mjs.map} +1 -1
- package/dist/{impl-BLCkTzS02.mjs → impl-DPmitBXR2.mjs} +2 -2
- package/dist/{impl-BLCkTzS02.mjs.map → impl-DPmitBXR2.mjs.map} +1 -1
- package/dist/{impl-DUS_D3PU2.mjs → impl-DRjvMMeU2.mjs} +2 -2
- package/dist/{impl-DUS_D3PU2.mjs.map → impl-DRjvMMeU2.mjs.map} +1 -1
- package/dist/{impl-Bbd2DHE82.mjs → impl-DSCuy4GU2.mjs} +2 -2
- package/dist/{impl-Bbd2DHE82.mjs.map → impl-DSCuy4GU2.mjs.map} +1 -1
- package/dist/{impl-Dv2AsuuH2.mjs → impl-D__B55Iu2.mjs} +2 -2
- package/dist/{impl-Dv2AsuuH2.mjs.map → impl-D__B55Iu2.mjs.map} +1 -1
- package/dist/{impl-2M02W7-p2.mjs → impl-Da1sv_hX2.mjs} +2 -2
- package/dist/{impl-2M02W7-p2.mjs.map → impl-Da1sv_hX2.mjs.map} +1 -1
- package/dist/{impl-fiK_rZ7c.mjs → impl-DmODS2cY.mjs} +2 -2
- package/dist/{impl-fiK_rZ7c.mjs.map → impl-DmODS2cY.mjs.map} +1 -1
- package/dist/{impl-D-0Z4tn72.mjs → impl-DmbT1vXM2.mjs} +2 -2
- package/dist/{impl-D-0Z4tn72.mjs.map → impl-DmbT1vXM2.mjs.map} +1 -1
- package/dist/{impl-D-JYZ74k.mjs → impl-DvSnW_IA.mjs} +2 -2
- package/dist/{impl-D-JYZ74k.mjs.map → impl-DvSnW_IA.mjs.map} +1 -1
- package/dist/{impl-D2WYmqZ0.mjs → impl-GeXGMn5G.mjs} +2 -2
- package/dist/{impl-D2WYmqZ0.mjs.map → impl-GeXGMn5G.mjs.map} +1 -1
- package/dist/{impl-C5QTz-js2.mjs → impl-YeYfan582.mjs} +2 -2
- package/dist/{impl-C5QTz-js2.mjs.map → impl-YeYfan582.mjs.map} +1 -1
- package/dist/{impl-iBottQJe.mjs → impl-_BPSoSwJ.mjs} +2 -2
- package/dist/{impl-iBottQJe.mjs.map → impl-_BPSoSwJ.mjs.map} +1 -1
- package/dist/{impl-CZWMK-kA2.mjs → impl-_nJfGV8K2.mjs} +2 -2
- package/dist/{impl-CZWMK-kA2.mjs.map → impl-_nJfGV8K2.mjs.map} +1 -1
- package/dist/{impl-D3qD4wsS.mjs → impl-xIb20rTt.mjs} +2 -2
- package/dist/{impl-D3qD4wsS.mjs.map → impl-xIb20rTt.mjs.map} +1 -1
- package/dist/{impl-BZbjA9x3.mjs → impl-y01BtY2r.mjs} +2 -2
- package/dist/{impl-BZbjA9x3.mjs.map → impl-y01BtY2r.mjs.map} +1 -1
- package/dist/{impl-BMaeLKTr.mjs → impl-yVmEK84l.mjs} +2 -2
- package/dist/{impl-BMaeLKTr.mjs.map → impl-yVmEK84l.mjs.map} +1 -1
- package/dist/{impl-CPN-_vdL2.mjs → impl-z5TV6Spz2.mjs} +2 -2
- package/dist/{impl-CPN-_vdL2.mjs.map → impl-z5TV6Spz2.mjs.map} +1 -1
- package/dist/index.d.mts +129 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +3 -3
- package/dist/index.mjs.map +1 -1
- package/dist/{listFiles-BPx3iDV6.mjs → listFiles-C5kubvdN.mjs} +1 -1
- package/dist/{listFiles-BPx3iDV6.mjs.map → listFiles-C5kubvdN.mjs.map} +1 -1
- package/dist/{markRequestDataSiloIdsCompleted-C7HAJehS.mjs → markRequestDataSiloIdsCompleted-CDV0Ppv2.mjs} +2 -2
- package/dist/{markRequestDataSiloIdsCompleted-C7HAJehS.mjs.map → markRequestDataSiloIdsCompleted-CDV0Ppv2.mjs.map} +1 -1
- package/dist/{markSilentPrivacyRequests-Ctu7drQy.mjs → markSilentPrivacyRequests-DXLiS2jH.mjs} +2 -2
- package/dist/{markSilentPrivacyRequests-Ctu7drQy.mjs.map → markSilentPrivacyRequests-DXLiS2jH.mjs.map} +1 -1
- package/dist/mergeTranscendInputs-DjPe49yR.mjs +3 -0
- package/dist/mergeTranscendInputs-DjPe49yR.mjs.map +1 -0
- package/dist/{notifyPrivacyRequestsAdditionalTime-Du7706Lb.mjs → notifyPrivacyRequestsAdditionalTime-DPp0MyfT.mjs} +2 -2
- package/dist/{notifyPrivacyRequestsAdditionalTime-Du7706Lb.mjs.map → notifyPrivacyRequestsAdditionalTime-DPp0MyfT.mjs.map} +1 -1
- package/dist/{parquetToCsvOneFile-13GirFzy.mjs → parquetToCsvOneFile-0O4iLz0t.mjs} +1 -1
- package/dist/{parquetToCsvOneFile-13GirFzy.mjs.map → parquetToCsvOneFile-0O4iLz0t.mjs.map} +1 -1
- package/dist/parseVariablesFromString-B4TUkJRF.mjs +2 -0
- package/dist/parseVariablesFromString-B4TUkJRF.mjs.map +1 -0
- package/dist/{pullAllDatapoints-Bvv9KRR5.mjs → pullAllDatapoints-DJno8LkB.mjs} +1 -1
- package/dist/{pullAllDatapoints-Bvv9KRR5.mjs.map → pullAllDatapoints-DJno8LkB.mjs.map} +1 -1
- package/dist/{pullChunkedCustomSiloOutstandingIdentifiers-D_TkvoKK.mjs → pullChunkedCustomSiloOutstandingIdentifiers-rKefgKKC.mjs} +2 -2
- package/dist/{pullChunkedCustomSiloOutstandingIdentifiers-D_TkvoKK.mjs.map → pullChunkedCustomSiloOutstandingIdentifiers-rKefgKKC.mjs.map} +1 -1
- package/dist/{pullConsentManagerMetrics-CR4WwUt6.mjs → pullConsentManagerMetrics-C41UhU8u.mjs} +1 -1
- package/dist/{pullConsentManagerMetrics-CR4WwUt6.mjs.map → pullConsentManagerMetrics-C41UhU8u.mjs.map} +1 -1
- package/dist/{pullManualEnrichmentIdentifiersToCsv-C_XrnqTo.mjs → pullManualEnrichmentIdentifiersToCsv-Cbk-7ztw.mjs} +2 -2
- package/dist/{pullManualEnrichmentIdentifiersToCsv-C_XrnqTo.mjs.map → pullManualEnrichmentIdentifiersToCsv-Cbk-7ztw.mjs.map} +1 -1
- package/dist/{pushCronIdentifiersFromCsv-hcTHlWyf.mjs → pushCronIdentifiersFromCsv-Dj-KEFpQ.mjs} +2 -2
- package/dist/{pushCronIdentifiersFromCsv-hcTHlWyf.mjs.map → pushCronIdentifiersFromCsv-Dj-KEFpQ.mjs.map} +1 -1
- package/dist/{pushManualEnrichmentIdentifiersFromCsv-5Dulzugh.mjs → pushManualEnrichmentIdentifiersFromCsv-CY4d1jQy.mjs} +2 -2
- package/dist/{pushManualEnrichmentIdentifiersFromCsv-5Dulzugh.mjs.map → pushManualEnrichmentIdentifiersFromCsv-CY4d1jQy.mjs.map} +1 -1
- package/dist/{readTranscendYaml-ceJQNB1O.mjs → readTranscendYaml-bL1qFPqv.mjs} +2 -2
- package/dist/{readTranscendYaml-ceJQNB1O.mjs.map → readTranscendYaml-bL1qFPqv.mjs.map} +1 -1
- package/dist/{removeUnverifiedRequestIdentifiers-D2tdogVl.mjs → removeUnverifiedRequestIdentifiers-BUJZoJD9.mjs} +2 -2
- package/dist/{removeUnverifiedRequestIdentifiers-D2tdogVl.mjs.map → removeUnverifiedRequestIdentifiers-BUJZoJD9.mjs.map} +1 -1
- package/dist/{retryRequestDataSilos-pQ4DekAX.mjs → retryRequestDataSilos-DATDTDin.mjs} +2 -2
- package/dist/{retryRequestDataSilos-pQ4DekAX.mjs.map → retryRequestDataSilos-DATDTDin.mjs.map} +1 -1
- package/dist/{skipPreflightJobs-BrBvyKxG.mjs → skipPreflightJobs-C1go-m8K.mjs} +2 -2
- package/dist/{skipPreflightJobs-BrBvyKxG.mjs.map → skipPreflightJobs-C1go-m8K.mjs.map} +1 -1
- package/dist/{skipRequestDataSilos-DrTtHtF5.mjs → skipRequestDataSilos-1ksexte3.mjs} +2 -2
- package/dist/{skipRequestDataSilos-DrTtHtF5.mjs.map → skipRequestDataSilos-1ksexte3.mjs.map} +1 -1
- package/dist/{streamPrivacyRequestsToCsv-zGxmk-9Z.mjs → streamPrivacyRequestsToCsv-7S52MmdS.mjs} +2 -2
- package/dist/{streamPrivacyRequestsToCsv-zGxmk-9Z.mjs.map → streamPrivacyRequestsToCsv-7S52MmdS.mjs.map} +1 -1
- package/dist/{updateConsentManagerVersionToLatest-Dg-j1SQt.mjs → updateConsentManagerVersionToLatest-CYGRh2Mf.mjs} +2 -2
- package/dist/{updateConsentManagerVersionToLatest-Dg-j1SQt.mjs.map → updateConsentManagerVersionToLatest-CYGRh2Mf.mjs.map} +1 -1
- package/dist/{uploadConsents-B3lvS6hQ.mjs → uploadConsents-DxzUYFP_.mjs} +2 -2
- package/dist/{uploadConsents-B3lvS6hQ.mjs.map → uploadConsents-DxzUYFP_.mjs.map} +1 -1
- package/dist/{uploadCookiesFromCsv-DmU8R-_E.mjs → uploadCookiesFromCsv-D33lINd-.mjs} +2 -2
- package/dist/{uploadCookiesFromCsv-DmU8R-_E.mjs.map → uploadCookiesFromCsv-D33lINd-.mjs.map} +1 -1
- package/dist/{uploadDataFlowsFromCsv-Ct0rye94.mjs → uploadDataFlowsFromCsv-0oDEouPJ.mjs} +2 -2
- package/dist/{uploadDataFlowsFromCsv-Ct0rye94.mjs.map → uploadDataFlowsFromCsv-0oDEouPJ.mjs.map} +1 -1
- package/dist/{uploadPrivacyRequestsFromCsv-BVi19fS8.mjs → uploadPrivacyRequestsFromCsv-CX7JRYjH.mjs} +2 -2
- package/dist/{uploadPrivacyRequestsFromCsv-BVi19fS8.mjs.map → uploadPrivacyRequestsFromCsv-CX7JRYjH.mjs.map} +1 -1
- package/dist/{validateTranscendAuth-Dl8UUCAQ.mjs → validateTranscendAuth-CAO5ktnu.mjs} +2 -2
- package/dist/{validateTranscendAuth-Dl8UUCAQ.mjs.map → validateTranscendAuth-CAO5ktnu.mjs.map} +1 -1
- package/dist/{writeCsv-BMVkiMHM.mjs → writeCsv-DMw5OmWp.mjs} +1 -1
- package/dist/{writeCsv-BMVkiMHM.mjs.map → writeCsv-DMw5OmWp.mjs.map} +1 -1
- package/package.json +5 -4
- package/dist/app-DYoi_kYl.mjs.map +0 -1
- package/dist/codecs-DRBjmo_R.mjs +0 -2
- package/dist/codecs-DRBjmo_R.mjs.map +0 -1
- package/dist/impl-B0AKcSoy.mjs.map +0 -1
- package/dist/impl-Bk6lPywf.mjs +0 -2
- package/dist/impl-CxjrhJ-X.mjs +0 -2
- package/dist/impl-D6rMK5Us.mjs.map +0 -1
- package/dist/impl-DjOWgFlT.mjs.map +0 -1
- package/dist/impl-o0RdOoiZ2.mjs +0 -2
- package/dist/impl-tNN3yVw72.mjs +0 -2
- package/dist/parseVariablesFromString-B2TB86Fo.mjs +0 -3
- package/dist/parseVariablesFromString-B2TB86Fo.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -10,6 +10,7 @@ A command line interface that allows you to programatically interact with the Tr
|
|
|
10
10
|
- [Changelog](#changelog)
|
|
11
11
|
- [Installation](#installation)
|
|
12
12
|
- [transcend.yml](#transcendyml)
|
|
13
|
+
- [Deletion dependencies](#deletion-dependencies)
|
|
13
14
|
- [Usage](#usage)
|
|
14
15
|
- [`transcend request approve`](#transcend-request-approve)
|
|
15
16
|
- [`transcend request upload`](#transcend-request-upload)
|
|
@@ -39,6 +40,8 @@ A command line interface that allows you to programatically interact with the Tr
|
|
|
39
40
|
- [`transcend consent upload-data-flows-from-csv`](#transcend-consent-upload-data-flows-from-csv)
|
|
40
41
|
- [`transcend consent upload-preferences`](#transcend-consent-upload-preferences)
|
|
41
42
|
- [`transcend consent delete-preference-records`](#transcend-consent-delete-preference-records)
|
|
43
|
+
- [`transcend custom-functions push`](#transcend-custom-functions-push)
|
|
44
|
+
- [`transcend custom-functions list`](#transcend-custom-functions-list)
|
|
42
45
|
- [`transcend inventory pull`](#transcend-inventory-pull)
|
|
43
46
|
- [`transcend inventory push`](#transcend-inventory-push)
|
|
44
47
|
- [`transcend inventory scan-packages`](#transcend-inventory-scan-packages)
|
|
@@ -168,7 +171,12 @@ data-silos:
|
|
|
168
171
|
- email
|
|
169
172
|
- userId
|
|
170
173
|
deletion-dependencies:
|
|
171
|
-
-
|
|
174
|
+
- titles:
|
|
175
|
+
- Identity Service
|
|
176
|
+
- workflow: GDPR Erasure
|
|
177
|
+
titles:
|
|
178
|
+
- Identity Service
|
|
179
|
+
- CRM Warehouse
|
|
172
180
|
owners:
|
|
173
181
|
- alice@transcend.io
|
|
174
182
|
datapoints:
|
|
@@ -192,6 +200,50 @@ data-silos:
|
|
|
192
200
|
description: The email address of the user
|
|
193
201
|
```
|
|
194
202
|
|
|
203
|
+
### Deletion dependencies
|
|
204
|
+
|
|
205
|
+
When an erasure request runs, `deletion-dependencies` holds off deleting from a data silo until the data silos it lists have finished deleting.
|
|
206
|
+
|
|
207
|
+
Use a list of objects: `{ titles }` for the global configuration, and `{ workflow, titles }` or `{ workflow, reset-to-global: true }` for each per-workflow override. Mixing titles and objects in the same list is not allowed:
|
|
208
|
+
|
|
209
|
+
```yaml
|
|
210
|
+
data-silos:
|
|
211
|
+
- title: Salesforce
|
|
212
|
+
integrationName: server
|
|
213
|
+
deletion-dependencies:
|
|
214
|
+
# Global configuration
|
|
215
|
+
- titles:
|
|
216
|
+
- Identity Service
|
|
217
|
+
# Overrides the global configuration for the "GDPR Erasure" workflow only
|
|
218
|
+
- workflow: GDPR Erasure
|
|
219
|
+
titles:
|
|
220
|
+
- Identity Service
|
|
221
|
+
- CRM Warehouse
|
|
222
|
+
# Runs with no dependencies at all in the "CCPA Delete" workflow
|
|
223
|
+
- workflow: CCPA Delete
|
|
224
|
+
titles: []
|
|
225
|
+
# Removes a previously configured override so the workflow uses the global configuration again
|
|
226
|
+
- workflow: Legacy Erasure
|
|
227
|
+
reset-to-global: true
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
**Legacy:** a bare list of titles is still accepted for global-only configuration:
|
|
231
|
+
|
|
232
|
+
```yaml
|
|
233
|
+
data-silos:
|
|
234
|
+
- title: Salesforce
|
|
235
|
+
integrationName: server
|
|
236
|
+
deletion-dependencies:
|
|
237
|
+
- Identity Service
|
|
238
|
+
- CRM Warehouse
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
`workflow` is the internal name of an erasure workflow, which you can find under [DSR Automation -> Workflows](https://app.transcend.io/privacy-requests/workflows). Overrides are only supported on erasure workflows, and the data silo and everything it depends on must already be part of that workflow.
|
|
242
|
+
|
|
243
|
+
A workflow that is not listed keeps whatever configuration it already has, so pushing a config that only lists global dependencies never removes existing overrides. Use `reset-to-global: true` to remove one.
|
|
244
|
+
|
|
245
|
+
Omitting `deletion-dependencies` entirely clears the global configuration, matching how the rest of `transcend.yml` treats omitted fields.
|
|
246
|
+
|
|
195
247
|
## Usage
|
|
196
248
|
|
|
197
249
|
<!-- COMMANDS_START -->
|
|
@@ -2427,6 +2479,217 @@ transcend consent delete-preference-records \
|
|
|
2427
2479
|
--timestamp=2025-08-26T00:00:00.000Z
|
|
2428
2480
|
```
|
|
2429
2481
|
|
|
2482
|
+
### `transcend custom-functions push`
|
|
2483
|
+
|
|
2484
|
+
```txt
|
|
2485
|
+
USAGE
|
|
2486
|
+
transcend custom-functions push (--auth value) [--sombraAuth value] [--transcendUrl value] [--file value] [--variables value] [--dryRun] [--promote] [--force] [--skipTests] [--updateManifest] [--sombraId value]
|
|
2487
|
+
transcend custom-functions push --help
|
|
2488
|
+
|
|
2489
|
+
Sync custom function source code from your repository to Transcend.
|
|
2490
|
+
|
|
2491
|
+
Given a manifest file mapping custom function names to TypeScript source files (plus execution context like allowed hosts, timeout, and environment variables), this command:
|
|
2492
|
+
|
|
2493
|
+
1. Signs each function's code and context against your Sombra gateway's customer ingress (pass --sombraAuth when self-hosting Sombra)
|
|
2494
|
+
2. Creates the DSR integration (data silo) for any new DSR function that does not specify a data-silo-id
|
|
2495
|
+
3. Test-runs the freshly signed code with each of the entry's test payloads, when defined (unless --skipTests) — DSR functions can cover both their default (DATA_POINT) and enricher (REQUEST_ENRICHER) exports. Any failing payload rolls back any integration created in step 2
|
|
2496
|
+
4. Creates any custom functions that do not exist yet (linking new DSR functions to their integration)
|
|
2497
|
+
5. Pushes a new code revision for any function whose code or context changed
|
|
2498
|
+
6. Promotes new revisions to active (unless --promote=false)
|
|
2499
|
+
|
|
2500
|
+
Metadata-only changes (description, or name for entries pinned by id) are updated in place without signing, testing, or pushing a new code revision. Environment variable values are encrypted at sign time and cannot be diffed — pass --force to re-push when only env values changed.
|
|
2501
|
+
|
|
2502
|
+
Functions with any failing test run are rejected — every failing payload's reason and execution logs are printed, nothing is pushed for that function, and the command exits 1. Functions without test payloads push as before, with a warning. Test runs require backend support for pre-signed code JWTs on the runCustomFunction mutation.
|
|
2503
|
+
|
|
2504
|
+
Functions whose code and context are unchanged are skipped, so this command is safe to run on every CI push.
|
|
2505
|
+
|
|
2506
|
+
Function code is invoked with a single argument of shape { payload, environment } — payload is the invocation JSON (free-form for GENERAL functions, the webhook notification shape for DSR functions) and environment is the manifest entry's env block. DSR functions may also export an enricher entry point.
|
|
2507
|
+
|
|
2508
|
+
FLAGS
|
|
2509
|
+
--auth The Transcend API key. Defaults to the TRANSCEND_API_KEY environment variable when set, so --auth may be omitted if it is exported. Requires scopes: "Manage Data Map"
|
|
2510
|
+
[--sombraAuth] The Sombra internal key, use for additional authentication when self-hosting Sombra
|
|
2511
|
+
[--transcendUrl] URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. Defaults to the TRANSCEND_API_URL environment variable when set, so --transcendUrl may be omitted if it is exported. [default = https://api.transcend.io]
|
|
2512
|
+
[--file] Path to the custom functions manifest YAML file [default = ./transcend-functions.yml]
|
|
2513
|
+
[--variables] The variables to template into the manifest file (e.g. secret env values). Comma-separated list of key:value pairs. [default = ""]
|
|
2514
|
+
[--dryRun] When true, report what would change without pushing anything [default = false]
|
|
2515
|
+
[--promote/--noPromote] When true, promote new revisions to active. Set to false to leave new revisions as drafts for review in the dashboard. [default = true]
|
|
2516
|
+
[--force] Push a new revision even when no changes are detected. Useful when only environment variable values changed, which cannot be diffed. [default = false]
|
|
2517
|
+
[--skipTests] Skip test runs entirely, pushing functions without executing their test-payload files. Tests also do not run on --dryRun (nothing is signed on dry runs). [default = false]
|
|
2518
|
+
[--updateManifest] After pushing, write the assigned custom function IDs back into the manifest file so future pushes match by ID instead of by name. Comments and <<parameters.x>> placeholders are preserved. [default = false]
|
|
2519
|
+
[--sombraId] Default Sombra gateway for functions whose manifest entry (or existing function) does not pin one. Each function is signed against the gateway it belongs to. Defaults to the primary Sombra of the organization.
|
|
2520
|
+
-h --help Print help information and exit
|
|
2521
|
+
```
|
|
2522
|
+
|
|
2523
|
+
#### Manifest file
|
|
2524
|
+
|
|
2525
|
+
The manifest maps custom function names to source files in your repository:
|
|
2526
|
+
|
|
2527
|
+
```yaml
|
|
2528
|
+
# transcend-functions.yml
|
|
2529
|
+
functions:
|
|
2530
|
+
- name: Score Lead
|
|
2531
|
+
code: ./functions/score-lead.ts
|
|
2532
|
+
description: Scores an inbound lead against the CRM
|
|
2533
|
+
test-payload: ./test-payloads/score-lead.json
|
|
2534
|
+
allowed-hosts:
|
|
2535
|
+
- api.example.com
|
|
2536
|
+
timeout-ms: 30000
|
|
2537
|
+
env:
|
|
2538
|
+
CRM_API_KEY: <<parameters.crmApiKey>>
|
|
2539
|
+
- name: DSR Lookup
|
|
2540
|
+
code: ./functions/dsr-lookup.ts
|
|
2541
|
+
type: DSR
|
|
2542
|
+
data-silo-id: 5a4b0f9c-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
|
2543
|
+
# DSR functions have two entry points — test both on every push
|
|
2544
|
+
test-payloads:
|
|
2545
|
+
- payload: ./test-payloads/dsr-lookup-access.json
|
|
2546
|
+
payload-type: DATA_POINT
|
|
2547
|
+
- payload: ./test-payloads/dsr-lookup-enricher.json
|
|
2548
|
+
payload-type: REQUEST_ENRICHER
|
|
2549
|
+
```
|
|
2550
|
+
|
|
2551
|
+
| Field | Required | Description |
|
|
2552
|
+
| --------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
2553
|
+
| `name` | Yes | Display name of the function. Used as the sync key when no `id` is set — renaming an id-less entry creates a new function. |
|
|
2554
|
+
| `code` | Yes | Path to the TypeScript source file, relative to the manifest. |
|
|
2555
|
+
| `id` | No | Custom function ID. When set, it becomes the sync key (allowing renames and disambiguating non-unique names). Find IDs via `transcend custom-functions list`, or let `--updateManifest` fill them in after a push. |
|
|
2556
|
+
| `description` | No | Description shown in the Transcend dashboard. |
|
|
2557
|
+
| `type` | No | `GENERAL` (default) or `DSR`. |
|
|
2558
|
+
| `data-silo-id` | DSR only | The data silo (DSR integration) the DSR function is attached to. When omitted for a **new** DSR function, the integration is created automatically (see below) and `--updateManifest` writes the assigned ID back. |
|
|
2559
|
+
| `sombra-id` | No | The Sombra gateway the function belongs to. Each function's code is signed against its own gateway; when omitted, the existing function's gateway (or `--sombraId`, or the primary Sombra) is used. An entry cannot move an existing function to a different gateway. |
|
|
2560
|
+
| `sombra-auth-env` | No | Name of the environment variable holding the internal key of the function's Sombra gateway (e.g. `SOMBRA_EU_INTERNAL_KEY`). The key itself never lives in the manifest — it is read from the environment at push time. Overrides `--sombraAuth` for this entry. |
|
|
2561
|
+
| `test-payloads` | No | List of test payloads to run the function with before pushing. Each item has a `payload` (path to a JSON file, relative to the manifest) and an optional `payload-type`. Every payload runs and all must pass, or the push is rejected. DSR functions should list one payload per export they implement: `DATA_POINT` (default) invokes the default export, `REQUEST_ENRICHER` invokes the `enricher` export. |
|
|
2562
|
+
| `test-payload` | No | Shorthand for a single-item `test-payloads` list: path to one JSON payload file. Pair with `test-payload-type` for DSR functions. Mutually exclusive with `test-payloads`. |
|
|
2563
|
+
| `allowed-hosts` | No | Hosts the function may make network requests to. |
|
|
2564
|
+
| `timeout-ms` | No | Execution timeout in milliseconds. |
|
|
2565
|
+
| `allow-third-party-imports` | No | Whether the function may import third party modules. |
|
|
2566
|
+
| `env` | No | Environment variables exposed to the function. Use `<<parameters.name>>` placeholders with the `--variables` flag to avoid committing secrets. |
|
|
2567
|
+
|
|
2568
|
+
Note: environment variable values are encrypted by Sombra and cannot be diffed. When only an env value changes, use `--force` to push a new revision.
|
|
2569
|
+
|
|
2570
|
+
Functions may belong to different Sombra gateways within one manifest; the command connects to each distinct gateway as needed. `--sombraAuth` provides the default internal key; when self-hosted gateways use _different_ internal keys, set `sombra-auth-env` per entry to the name of the environment variable holding that gateway's key:
|
|
2571
|
+
|
|
2572
|
+
```yaml
|
|
2573
|
+
functions:
|
|
2574
|
+
- name: US Function
|
|
2575
|
+
code: ./functions/us.ts
|
|
2576
|
+
# primary gateway, authenticated by --sombraAuth (if self-hosted)
|
|
2577
|
+
- name: EU Function
|
|
2578
|
+
code: ./functions/eu.ts
|
|
2579
|
+
sombra-id: 8c0b1f2a-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
|
2580
|
+
sombra-auth-env: SOMBRA_EU_INTERNAL_KEY
|
|
2581
|
+
```
|
|
2582
|
+
|
|
2583
|
+
#### How manifest entries are matched to existing functions
|
|
2584
|
+
|
|
2585
|
+
Each entry is resolved against the custom functions in your organization in this order:
|
|
2586
|
+
|
|
2587
|
+
1. **By `id`, when set.** The ID is the sync key: the matched function is updated, and `name` may be changed freely (it just renames the function). If no function with that ID exists, the push **fails** for that entry — a stale or mistyped ID never silently creates a duplicate. Remove the `id` to create a new function instead.
|
|
2588
|
+
2. **By exact `name`, when no `id` is set.**
|
|
2589
|
+
- Exactly one function with that name → it is updated.
|
|
2590
|
+
- No function with that name → a new one is created.
|
|
2591
|
+
- **More than one** function with that name → the push fails with an error listing the candidate IDs. Add the right `id` to the entry to disambiguate, or grab IDs from `transcend custom-functions list`.
|
|
2592
|
+
|
|
2593
|
+
Within the manifest itself, duplicate `id`s are always rejected, and duplicate `name`s are only allowed when every entry sharing the name has an `id`.
|
|
2594
|
+
|
|
2595
|
+
Because ID matching is strictly safer, prefer pinning IDs once functions exist: run `transcend custom-functions push --updateManifest` after the first push and the assigned IDs are written back into the manifest automatically (comments and `<<parameters.x>>` placeholders are preserved). For DSR functions, the assigned `data-silo-id` is written back the same way.
|
|
2596
|
+
|
|
2597
|
+
#### New DSR functions: the integration is created automatically
|
|
2598
|
+
|
|
2599
|
+
A **new** DSR entry (no `id`, no matching function by name) that omits `data-silo-id` gets its DSR integration created as part of the push:
|
|
2600
|
+
|
|
2601
|
+
1. A `customFunction`-catalog data silo is created, titled after the function, on the entry's Sombra gateway (`sombra-id`, else `--sombraId`, else the organization's primary Sombra). It starts `NOT_CONFIGURED` with nothing attached.
|
|
2602
|
+
2. The signed code is test-run against that silo (when test payloads are set) — DSR test payloads always get `extras.dataSilo` injected from the resolved silo, so payload files never need to hardcode silo IDs.
|
|
2603
|
+
3. On a passing test the custom function is created and linked to the silo (which becomes `Connected`). On a failing test the silo is **rolled back** (deleted) and the function is rejected.
|
|
2604
|
+
4. With `--updateManifest`, both the custom function `id` and the `data-silo-id` are written back into the manifest.
|
|
2605
|
+
|
|
2606
|
+
DSR entries that already pin a `data-silo-id` behave as before — the integration must exist and the function is attached to it.
|
|
2607
|
+
|
|
2608
|
+
#### Test-before-promote
|
|
2609
|
+
|
|
2610
|
+
Entries with test payloads (`test-payloads`, or the single-payload `test-payload` shorthand) are tested before anything is pushed:
|
|
2611
|
+
|
|
2612
|
+
1. The code and context are signed against the function's Sombra gateway.
|
|
2613
|
+
2. The signed code is executed as a test run with each payload JSON (via the `runCustomFunction` mutation — nothing is persisted). GENERAL functions run on the function's gateway; DSR functions run on the gateway of the function's data silo — `extras.dataSilo` is injected into every payload automatically from the entry's resolved silo, so payload files never need to hardcode silo IDs.
|
|
2614
|
+
3. **All payloads pass** (no error, exit code ≤ 0): the revision is pushed and promoted as usual.
|
|
2615
|
+
4. **Any payload fails**: the function is rejected — every failing payload's reason and logs are printed (all payloads run, so one push reports every failing case), nothing is pushed for that function, and the command exits 1.
|
|
2616
|
+
|
|
2617
|
+
DSR functions have two entry points — the default export (`DATA_POINT`) and the `enricher` export (`REQUEST_ENRICHER`) — so list one payload per export the function implements; a warning is printed when a DSR entry only covers one. Entries without test payloads push as before, with a warning. `--skipTests` bypasses testing entirely, and `--dryRun` never tests (nothing is signed on dry runs). Test runs require backend support for pre-signed code JWTs on the `runCustomFunction` mutation; on older backends the push fails with an upgrade hint — use `--skipTests` to bypass.
|
|
2618
|
+
|
|
2619
|
+
#### Examples
|
|
2620
|
+
|
|
2621
|
+
**Push all custom functions defined in ./transcend-functions.yml**
|
|
2622
|
+
|
|
2623
|
+
```sh
|
|
2624
|
+
transcend custom-functions push --auth="$TRANSCEND_API_KEY"
|
|
2625
|
+
```
|
|
2626
|
+
|
|
2627
|
+
**Preview changes without pushing anything**
|
|
2628
|
+
|
|
2629
|
+
```sh
|
|
2630
|
+
transcend custom-functions push --auth="$TRANSCEND_API_KEY" --dryRun
|
|
2631
|
+
```
|
|
2632
|
+
|
|
2633
|
+
**Use a manifest at a custom path with templated secrets**
|
|
2634
|
+
|
|
2635
|
+
```sh
|
|
2636
|
+
transcend custom-functions push \
|
|
2637
|
+
--auth="$TRANSCEND_API_KEY" \
|
|
2638
|
+
--file=./transcend/functions.yml \
|
|
2639
|
+
--variables=crmApiKey:example-secret-value
|
|
2640
|
+
```
|
|
2641
|
+
|
|
2642
|
+
**Push new revisions as drafts for review instead of promoting them**
|
|
2643
|
+
|
|
2644
|
+
```sh
|
|
2645
|
+
transcend custom-functions push --auth="$TRANSCEND_API_KEY" --promote=false
|
|
2646
|
+
```
|
|
2647
|
+
|
|
2648
|
+
**Record the assigned custom function IDs in the manifest so future pushes match by ID**
|
|
2649
|
+
|
|
2650
|
+
```sh
|
|
2651
|
+
transcend custom-functions push --auth="$TRANSCEND_API_KEY" --updateManifest
|
|
2652
|
+
```
|
|
2653
|
+
|
|
2654
|
+
**Force a new revision even when no code changes are detected (e.g. env value rotation)**
|
|
2655
|
+
|
|
2656
|
+
```sh
|
|
2657
|
+
transcend custom-functions push --auth="$TRANSCEND_API_KEY" --force
|
|
2658
|
+
```
|
|
2659
|
+
|
|
2660
|
+
**Push without running test payloads**
|
|
2661
|
+
|
|
2662
|
+
```sh
|
|
2663
|
+
transcend custom-functions push --auth="$TRANSCEND_API_KEY" --skipTests
|
|
2664
|
+
```
|
|
2665
|
+
|
|
2666
|
+
**With Sombra authentication, needed when self-hosting Sombra**
|
|
2667
|
+
|
|
2668
|
+
```sh
|
|
2669
|
+
transcend custom-functions push --auth="$TRANSCEND_API_KEY" --sombraAuth="$SOMBRA_INTERNAL_KEY"
|
|
2670
|
+
```
|
|
2671
|
+
|
|
2672
|
+
**Specifying the backend URL, needed for US hosted backend infrastructure**
|
|
2673
|
+
|
|
2674
|
+
```sh
|
|
2675
|
+
transcend custom-functions push --auth="$TRANSCEND_API_KEY" --transcendUrl=https://api.us.transcend.io
|
|
2676
|
+
```
|
|
2677
|
+
|
|
2678
|
+
### `transcend custom-functions list`
|
|
2679
|
+
|
|
2680
|
+
```txt
|
|
2681
|
+
USAGE
|
|
2682
|
+
transcend custom-functions list (--auth value) [--transcendUrl value]
|
|
2683
|
+
transcend custom-functions list --help
|
|
2684
|
+
|
|
2685
|
+
List all custom functions in the organization along with their lifecycle state, active version, and any pending draft version.
|
|
2686
|
+
|
|
2687
|
+
FLAGS
|
|
2688
|
+
--auth The Transcend API key. Defaults to the TRANSCEND_API_KEY environment variable when set, so --auth may be omitted if it is exported. Requires scopes: "View Data Map"
|
|
2689
|
+
[--transcendUrl] URL of the Transcend backend. Use https://api.us.transcend.io for US hosting. Defaults to the TRANSCEND_API_URL environment variable when set, so --transcendUrl may be omitted if it is exported. [default = https://api.transcend.io]
|
|
2690
|
+
-h --help Print help information and exit
|
|
2691
|
+
```
|
|
2692
|
+
|
|
2430
2693
|
### `transcend inventory pull`
|
|
2431
2694
|
|
|
2432
2695
|
```txt
|