@transcend-io/cli 10.28.0 → 10.29.1
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 +81 -15
- package/dist/{app-DCY8E776.mjs → app-B9yoXd7q.mjs} +21 -21
- package/dist/app-B9yoXd7q.mjs.map +1 -0
- package/dist/{approvePrivacyRequests-80SV_94y.mjs → approvePrivacyRequests-DDT8Zjhc.mjs} +2 -2
- package/dist/{approvePrivacyRequests-80SV_94y.mjs.map → approvePrivacyRequests-DDT8Zjhc.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-2YDkSvtA.mjs → buildExamples-DLDlrgWE.mjs} +2 -2
- package/dist/{buildExamples-2YDkSvtA.mjs.map → buildExamples-DLDlrgWE.mjs.map} +1 -1
- package/dist/{buildXdiSyncEndpoint-B3zUrI16.mjs → buildXdiSyncEndpoint-uSDQEXT2.mjs} +2 -2
- package/dist/{buildXdiSyncEndpoint-B3zUrI16.mjs.map → buildXdiSyncEndpoint-uSDQEXT2.mjs.map} +1 -1
- package/dist/{bulkRestartRequests-BLb8OJmf.mjs → bulkRestartRequests-C4wyNZ65.mjs} +2 -2
- package/dist/{bulkRestartRequests-BLb8OJmf.mjs.map → bulkRestartRequests-C4wyNZ65.mjs.map} +1 -1
- package/dist/{bulkRetryEnrichers-BA9cboSe.mjs → bulkRetryEnrichers-VbIb-WIs.mjs} +2 -2
- package/dist/{bulkRetryEnrichers-BA9cboSe.mjs.map → bulkRetryEnrichers-VbIb-WIs.mjs.map} +1 -1
- package/dist/{cancelPrivacyRequests-BEyOBJ2r.mjs → cancelPrivacyRequests-Ds6HKabX.mjs} +2 -2
- package/dist/{cancelPrivacyRequests-BEyOBJ2r.mjs.map → cancelPrivacyRequests-Ds6HKabX.mjs.map} +1 -1
- package/dist/codecs-CTxFjCg4.mjs +2 -0
- package/dist/codecs-CTxFjCg4.mjs.map +1 -0
- package/dist/{collectCsvFilesOrExit-BqnmK63h.mjs → collectCsvFilesOrExit-B1VOVGWN.mjs} +1 -1
- package/dist/{collectCsvFilesOrExit-BqnmK63h.mjs.map → collectCsvFilesOrExit-B1VOVGWN.mjs.map} +1 -1
- package/dist/{collectParquetFilesOrExit-BiksFI-Q.mjs → collectParquetFilesOrExit-DVlv5ctt.mjs} +1 -1
- package/dist/{collectParquetFilesOrExit-BiksFI-Q.mjs.map → collectParquetFilesOrExit-DVlv5ctt.mjs.map} +1 -1
- package/dist/{command-eIenZMOx.mjs → command-BVK929yJ.mjs} +2 -2
- package/dist/{command-eIenZMOx.mjs.map → command-BVK929yJ.mjs.map} +1 -1
- package/dist/commands/admin/chunk-csv/worker.mjs +1 -1
- package/dist/commands/admin/parquet-to-csv/worker.mjs +1 -1
- package/dist/{consentManagersToBusinessEntities-O4KBox9u.mjs → consentManagersToBusinessEntities-CBJ81aGO.mjs} +1 -1
- package/dist/{consentManagersToBusinessEntities-O4KBox9u.mjs.map → consentManagersToBusinessEntities-CBJ81aGO.mjs.map} +1 -1
- package/dist/{constants-BpQ5awGp.mjs → constants-DXzsg2CQ.mjs} +2 -2
- package/dist/{constants-BpQ5awGp.mjs.map → constants-DXzsg2CQ.mjs.map} +1 -1
- package/dist/{constants-C1seVfCu.mjs → constants-D_HVDaOy.mjs} +1 -1
- package/dist/{constants-C1seVfCu.mjs.map → constants-D_HVDaOy.mjs.map} +1 -1
- package/dist/{constants-BG53Mbi9.mjs → constants-X60pMfSm.mjs} +2 -2
- package/dist/{constants-BG53Mbi9.mjs.map → constants-X60pMfSm.mjs.map} +1 -1
- package/dist/{context-CZYrQfAn.mjs → context-B33NT3ki.mjs} +1 -1
- package/dist/{context-CZYrQfAn.mjs.map → context-B33NT3ki.mjs.map} +1 -1
- package/dist/{createPoolingCommandUi-C39R_zo3.mjs → createPoolingCommandUi-Dr6Cmq63.mjs} +2 -2
- package/dist/{createPoolingCommandUi-C39R_zo3.mjs.map → createPoolingCommandUi-Dr6Cmq63.mjs.map} +1 -1
- package/dist/{dataFlowsToDataSilos-CLSHb1GA.mjs → dataFlowsToDataSilos-BF6fzWcm.mjs} +1 -1
- package/dist/{dataFlowsToDataSilos-CLSHb1GA.mjs.map → dataFlowsToDataSilos-BF6fzWcm.mjs.map} +1 -1
- package/dist/deno-runtime-DV52X8-P.mjs +2 -0
- package/dist/deno-runtime-DV52X8-P.mjs.map +1 -0
- package/dist/{done-input-validation-Cjk7a3jX.mjs → done-input-validation-BUz-aVC5.mjs} +1 -1
- package/dist/{done-input-validation-Cjk7a3jX.mjs.map → done-input-validation-BUz-aVC5.mjs.map} +1 -1
- package/dist/{downloadPrivacyRequestFiles-CLFgQItk.mjs → downloadPrivacyRequestFiles-BZjAtiKF.mjs} +2 -2
- package/dist/{downloadPrivacyRequestFiles-CLFgQItk.mjs.map → downloadPrivacyRequestFiles-BZjAtiKF.mjs.map} +1 -1
- package/dist/{extractClientError-C_6ly7Gw.mjs → extractClientError-HZ2U7yqV.mjs} +1 -1
- package/dist/{extractClientError-C_6ly7Gw.mjs.map → extractClientError-HZ2U7yqV.mjs.map} +1 -1
- package/dist/{fetchAllRequests-CEDKdq0c.mjs → fetchAllRequests-2TZr-LfT.mjs} +2 -2
- package/dist/{fetchAllRequests-CEDKdq0c.mjs.map → fetchAllRequests-2TZr-LfT.mjs.map} +1 -1
- package/dist/{formatPolicyBundleVersionSummary-CrFtcPwS.mjs → formatPolicyBundleVersionSummary-CJmMCLtJ.mjs} +1 -1
- package/dist/{formatPolicyBundleVersionSummary-CrFtcPwS.mjs.map → formatPolicyBundleVersionSummary-CJmMCLtJ.mjs.map} +1 -1
- package/dist/{fuzzyMatchColumns-OTsFJ21f.mjs → fuzzyMatchColumns-CQCzpjWC.mjs} +2 -2
- package/dist/{fuzzyMatchColumns-OTsFJ21f.mjs.map → fuzzyMatchColumns-CQCzpjWC.mjs.map} +1 -1
- package/dist/{generateCrossAccountApiKeys-D6O_Qm3Y.mjs → generateCrossAccountApiKeys-POFAc7bo.mjs} +2 -2
- package/dist/{generateCrossAccountApiKeys-D6O_Qm3Y.mjs.map → generateCrossAccountApiKeys-POFAc7bo.mjs.map} +1 -1
- package/dist/impl--JGnR3wp.mjs +3 -0
- package/dist/{impl-CzxvoiGW.mjs.map → impl--JGnR3wp.mjs.map} +1 -1
- package/dist/{impl-Drql0g72.mjs → impl-7UqkSO3x2.mjs} +2 -2
- package/dist/impl-7UqkSO3x2.mjs.map +1 -0
- package/dist/impl-B4BgGuF_.mjs +3 -0
- package/dist/impl-B4BgGuF_.mjs.map +1 -0
- package/dist/{impl-C50tdWlL2.mjs → impl-BDgc5PEC2.mjs} +2 -2
- package/dist/{impl-C50tdWlL2.mjs.map → impl-BDgc5PEC2.mjs.map} +1 -1
- package/dist/{impl-CXUJ1eRC.mjs → impl-BPoEH3Nf2.mjs} +2 -2
- package/dist/impl-BPoEH3Nf2.mjs.map +1 -0
- package/dist/impl-BPzANN8n.mjs +2 -0
- package/dist/{impl-C8BmxFQ2.mjs.map → impl-BPzANN8n.mjs.map} +1 -1
- package/dist/{impl-M3Eu4QjS.mjs → impl-BScGBm2o.mjs} +2 -2
- package/dist/{impl-M3Eu4QjS.mjs.map → impl-BScGBm2o.mjs.map} +1 -1
- package/dist/{impl-CE56-wQh.mjs → impl-BT0N2HwU.mjs} +2 -2
- package/dist/{impl-CE56-wQh.mjs.map → impl-BT0N2HwU.mjs.map} +1 -1
- package/dist/{impl-CDtUusmg.mjs → impl-BTff-yNX.mjs} +2 -2
- package/dist/{impl-CDtUusmg.mjs.map → impl-BTff-yNX.mjs.map} +1 -1
- package/dist/{impl-DXNcD7CZ.mjs → impl-BeHsB-Zk.mjs} +2 -2
- package/dist/{impl-DXNcD7CZ.mjs.map → impl-BeHsB-Zk.mjs.map} +1 -1
- package/dist/{impl-CQGeH47F.mjs → impl-Bg7zZ_F_.mjs} +2 -2
- package/dist/{impl-CQGeH47F.mjs.map → impl-Bg7zZ_F_.mjs.map} +1 -1
- package/dist/impl-Bguphgoc.mjs +2 -0
- package/dist/{impl-BsC1KVxS.mjs.map → impl-Bguphgoc.mjs.map} +1 -1
- package/dist/{impl-CWh9H7mL.mjs → impl-BkqQI3vZ.mjs} +2 -2
- package/dist/{impl-CWh9H7mL.mjs.map → impl-BkqQI3vZ.mjs.map} +1 -1
- package/dist/{impl-zZFaSmxd2.mjs → impl-BnvfuqEA2.mjs} +2 -2
- package/dist/{impl-zZFaSmxd2.mjs.map → impl-BnvfuqEA2.mjs.map} +1 -1
- package/dist/impl-C1xIUoJS.mjs +2 -0
- package/dist/impl-C1xIUoJS.mjs.map +1 -0
- package/dist/impl-C6HtWd1t.mjs +2 -0
- package/dist/{impl-BcJ019T2.mjs.map → impl-C6HtWd1t.mjs.map} +1 -1
- package/dist/impl-C8sWVJUG.mjs +2 -0
- package/dist/impl-C8sWVJUG.mjs.map +1 -0
- package/dist/{impl-KKrDTraf.mjs → impl-CE_nprLV.mjs} +2 -2
- package/dist/{impl-KKrDTraf.mjs.map → impl-CE_nprLV.mjs.map} +1 -1
- package/dist/{impl-CEmXPEq22.mjs → impl-CF0ts8Fz2.mjs} +2 -2
- package/dist/{impl-CEmXPEq22.mjs.map → impl-CF0ts8Fz2.mjs.map} +1 -1
- package/dist/impl-CMK8Qm_I2.mjs +303 -0
- package/dist/impl-CMK8Qm_I2.mjs.map +1 -0
- package/dist/{impl-BvNZqLrT.mjs → impl-CO4ZqlLV.mjs} +2 -2
- package/dist/{impl-BvNZqLrT.mjs.map → impl-CO4ZqlLV.mjs.map} +1 -1
- package/dist/{impl-DJLlcqSg.mjs → impl-COujMWgp.mjs} +2 -2
- package/dist/{impl-DJLlcqSg.mjs.map → impl-COujMWgp.mjs.map} +1 -1
- package/dist/{impl-Bs-drNBf.mjs → impl-CPSEzCc9.mjs} +2 -2
- package/dist/{impl-Bs-drNBf.mjs.map → impl-CPSEzCc9.mjs.map} +1 -1
- package/dist/{impl-Dib6Fff12.mjs → impl-CQtMFz1O.mjs} +2 -2
- package/dist/impl-CQtMFz1O.mjs.map +1 -0
- package/dist/{impl-B--lr5RJ2.mjs → impl-CSRal4Rj2.mjs} +2 -2
- package/dist/{impl-B--lr5RJ2.mjs.map → impl-CSRal4Rj2.mjs.map} +1 -1
- package/dist/{impl-DYf10-BD2.mjs → impl-CSmFd6iO2.mjs} +2 -2
- package/dist/{impl-DYf10-BD2.mjs.map → impl-CSmFd6iO2.mjs.map} +1 -1
- package/dist/{impl-B3_hrFPX.mjs → impl-CUOVJsRg.mjs} +2 -2
- package/dist/{impl-B3_hrFPX.mjs.map → impl-CUOVJsRg.mjs.map} +1 -1
- package/dist/{impl-BySmbxEt.mjs → impl-CUiYbk6G.mjs} +2 -2
- package/dist/{impl-BySmbxEt.mjs.map → impl-CUiYbk6G.mjs.map} +1 -1
- package/dist/{impl-BFJtKA2o2.mjs → impl-CfMrFWb_.mjs} +2 -2
- package/dist/impl-CfMrFWb_.mjs.map +1 -0
- package/dist/{impl-Cx3T0Iei.mjs → impl-CfvxD3RI.mjs} +2 -2
- package/dist/{impl-Cx3T0Iei.mjs.map → impl-CfvxD3RI.mjs.map} +1 -1
- package/dist/{impl-DHfYO9T52.mjs → impl-Cli2XRp02.mjs} +2 -2
- package/dist/{impl-DHfYO9T52.mjs.map → impl-Cli2XRp02.mjs.map} +1 -1
- package/dist/{impl-C5dzaDga2.mjs → impl-DInF5q00.mjs} +2 -2
- package/dist/impl-DInF5q00.mjs.map +1 -0
- package/dist/{impl-BWVe4VGF2.mjs → impl-DKNJFnFv2.mjs} +2 -2
- package/dist/{impl-BWVe4VGF2.mjs.map → impl-DKNJFnFv2.mjs.map} +1 -1
- package/dist/{impl-DOoR93T6.mjs → impl-DKepRc812.mjs} +2 -2
- package/dist/impl-DKepRc812.mjs.map +1 -0
- package/dist/{impl-CqF9xIIy.mjs → impl-DOuVyX0O.mjs} +2 -2
- package/dist/{impl-CqF9xIIy.mjs.map → impl-DOuVyX0O.mjs.map} +1 -1
- package/dist/{impl-DzNk41xd.mjs → impl-DPtx5iZO.mjs} +2 -2
- package/dist/{impl-DzNk41xd.mjs.map → impl-DPtx5iZO.mjs.map} +1 -1
- package/dist/{impl-BqrSLoig.mjs → impl-DRW2qfyk.mjs} +2 -2
- package/dist/{impl-BqrSLoig.mjs.map → impl-DRW2qfyk.mjs.map} +1 -1
- package/dist/{impl-syp5hclX.mjs → impl-DRpK-QLC.mjs} +2 -2
- package/dist/{impl-syp5hclX.mjs.map → impl-DRpK-QLC.mjs.map} +1 -1
- package/dist/{impl-DYwojWvN.mjs → impl-DVeGQCrr.mjs} +2 -2
- package/dist/{impl-DYwojWvN.mjs.map → impl-DVeGQCrr.mjs.map} +1 -1
- package/dist/{impl-DF8RGVlT.mjs → impl-DXRDWiB1.mjs} +2 -2
- package/dist/{impl-DF8RGVlT.mjs.map → impl-DXRDWiB1.mjs.map} +1 -1
- package/dist/{impl-CiYKuCHV.mjs → impl-DXowiNOz.mjs} +2 -2
- package/dist/{impl-CiYKuCHV.mjs.map → impl-DXowiNOz.mjs.map} +1 -1
- package/dist/{impl-DpuhHpuk.mjs → impl-DaH1_ZzK.mjs} +2 -2
- package/dist/{impl-DpuhHpuk.mjs.map → impl-DaH1_ZzK.mjs.map} +1 -1
- package/dist/{impl-DIPvFKiP.mjs → impl-DdIa0zla.mjs} +2 -2
- package/dist/{impl-DIPvFKiP.mjs.map → impl-DdIa0zla.mjs.map} +1 -1
- package/dist/{impl-Bq6g_xYv.mjs → impl-DkHzw1nR.mjs} +2 -2
- package/dist/{impl-Bq6g_xYv.mjs.map → impl-DkHzw1nR.mjs.map} +1 -1
- package/dist/{impl-DbZ1cYoR.mjs → impl-DqhZR11m.mjs} +2 -2
- package/dist/{impl-DbZ1cYoR.mjs.map → impl-DqhZR11m.mjs.map} +1 -1
- package/dist/{impl-VPBEqV0w2.mjs → impl-Dqqb0lVN.mjs} +2 -2
- package/dist/impl-Dqqb0lVN.mjs.map +1 -0
- package/dist/{impl-6m7GXUAe.mjs → impl-DryC3OJu.mjs} +2 -2
- package/dist/{impl-6m7GXUAe.mjs.map → impl-DryC3OJu.mjs.map} +1 -1
- package/dist/{impl-amV0wRWk.mjs → impl-Dv8ecMWN.mjs} +2 -2
- package/dist/{impl-amV0wRWk.mjs.map → impl-Dv8ecMWN.mjs.map} +1 -1
- package/dist/{impl-CfPXYgT42.mjs → impl-DzUTmaID2.mjs} +2 -2
- package/dist/{impl-CfPXYgT42.mjs.map → impl-DzUTmaID2.mjs.map} +1 -1
- package/dist/{impl-Dm-Fkr392.mjs → impl-IFoIxW9s.mjs} +2 -2
- package/dist/impl-IFoIxW9s.mjs.map +1 -0
- package/dist/{impl-BJlKQJdS2.mjs → impl-WxoE0bN_.mjs} +2 -2
- package/dist/impl-WxoE0bN_.mjs.map +1 -0
- package/dist/impl-Z8oWVENM.mjs +2 -0
- package/dist/impl-Z8oWVENM.mjs.map +1 -0
- package/dist/{impl-CHmjV-Pa.mjs → impl-Z_ZuLfFK.mjs} +2 -2
- package/dist/{impl-CHmjV-Pa.mjs.map → impl-Z_ZuLfFK.mjs.map} +1 -1
- package/dist/{impl-BwRcpAno.mjs → impl-_erU3Uzt2.mjs} +2 -2
- package/dist/impl-_erU3Uzt2.mjs.map +1 -0
- package/dist/{impl-m3QXCc6n.mjs → impl-a_Y8bnSn.mjs} +4 -4
- package/dist/impl-a_Y8bnSn.mjs.map +1 -0
- package/dist/{impl-BewF8tB6.mjs → impl-dXDmiiG6.mjs} +2 -2
- package/dist/{impl-BewF8tB6.mjs.map → impl-dXDmiiG6.mjs.map} +1 -1
- package/dist/{impl-BYGNx-8W2.mjs → impl-lcLJ4Wp-.mjs} +2 -2
- package/dist/impl-lcLJ4Wp-.mjs.map +1 -0
- package/dist/{impl-CTIWliTx.mjs → impl-nvYE0p_K.mjs} +2 -2
- package/dist/{impl-CTIWliTx.mjs.map → impl-nvYE0p_K.mjs.map} +1 -1
- package/dist/{impl-Dk6TZKrp2.mjs → impl-xKt-NwTT.mjs} +2 -2
- package/dist/impl-xKt-NwTT.mjs.map +1 -0
- package/dist/{impl-GHukPBnk.mjs → impl-ymZeayvp.mjs} +2 -2
- package/dist/{impl-GHukPBnk.mjs.map → impl-ymZeayvp.mjs.map} +1 -1
- package/dist/index.d.mts +12797 -1840
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +3 -3
- package/dist/index.mjs.map +1 -1
- package/dist/{initializeCliRuntime-802-P8MC.mjs → initializeCliRuntime-6wI_VIHV.mjs} +1 -1
- package/dist/{initializeCliRuntime-802-P8MC.mjs.map → initializeCliRuntime-6wI_VIHV.mjs.map} +1 -1
- package/dist/{inquirer-DkFTQU00.mjs → inquirer-BeaBetMO.mjs} +2 -2
- package/dist/{inquirer-DkFTQU00.mjs.map → inquirer-BeaBetMO.mjs.map} +1 -1
- package/dist/jsonc-D9dDWb1J.mjs +6 -0
- package/dist/jsonc-D9dDWb1J.mjs.map +1 -0
- package/dist/{listFiles-CWHAdKY-.mjs → listFiles-BdFUbX5x.mjs} +1 -1
- package/dist/{listFiles-CWHAdKY-.mjs.map → listFiles-BdFUbX5x.mjs.map} +1 -1
- package/dist/logger-zplFSeXU.mjs +2 -0
- package/dist/logger-zplFSeXU.mjs.map +1 -0
- package/dist/manifest-BNIpO_zW.mjs +2 -0
- package/dist/manifest-BNIpO_zW.mjs.map +1 -0
- package/dist/{mapConsentCsvRowsToInputs-MMPZwzrV.mjs → mapConsentCsvRowsToInputs-Dqb6WL4r.mjs} +1 -1
- package/dist/{mapConsentCsvRowsToInputs-MMPZwzrV.mjs.map → mapConsentCsvRowsToInputs-Dqb6WL4r.mjs.map} +1 -1
- package/dist/{markRequestDataSiloIdsCompleted-PKCcn5wQ.mjs → markRequestDataSiloIdsCompleted-2DHClQ32.mjs} +2 -2
- package/dist/{markRequestDataSiloIdsCompleted-PKCcn5wQ.mjs.map → markRequestDataSiloIdsCompleted-2DHClQ32.mjs.map} +1 -1
- package/dist/{markSilentPrivacyRequests-7l9I99pe.mjs → markSilentPrivacyRequests-BUYzKbhW.mjs} +2 -2
- package/dist/{markSilentPrivacyRequests-7l9I99pe.mjs.map → markSilentPrivacyRequests-BUYzKbhW.mjs.map} +1 -1
- package/dist/mergeTranscendInputs-DFQcbh8b.mjs +3 -0
- package/dist/mergeTranscendInputs-DFQcbh8b.mjs.map +1 -0
- package/dist/missing-manifest-DgcukXfg.mjs +2 -0
- package/dist/missing-manifest-DgcukXfg.mjs.map +1 -0
- package/dist/{module-graph-DBC7ZvyA.mjs → module-graph-Cb0g74Ft.mjs} +1 -1
- package/dist/{module-graph-DBC7ZvyA.mjs.map → module-graph-Cb0g74Ft.mjs.map} +1 -1
- package/dist/{notifyPrivacyRequestsAdditionalTime-BPIYuCov.mjs → notifyPrivacyRequestsAdditionalTime-G8IZ0Ooy.mjs} +2 -2
- package/dist/{notifyPrivacyRequestsAdditionalTime-BPIYuCov.mjs.map → notifyPrivacyRequestsAdditionalTime-G8IZ0Ooy.mjs.map} +1 -1
- package/dist/{parquetToCsvOneFile-CSVdrLvq.mjs → parquetToCsvOneFile-ChmPC6dL.mjs} +2 -2
- package/dist/{parquetToCsvOneFile-CSVdrLvq.mjs.map → parquetToCsvOneFile-ChmPC6dL.mjs.map} +1 -1
- package/dist/{parseAttributesFromString-C5-KGkPH.mjs → parseAttributesFromString-CO16oAlx.mjs} +2 -2
- package/dist/{parseAttributesFromString-C5-KGkPH.mjs.map → parseAttributesFromString-CO16oAlx.mjs.map} +1 -1
- package/dist/{parseVariablesFromString-Cr3x2uq3.mjs → parseVariablesFromString-BOSfQ4QF.mjs} +1 -1
- package/dist/{parseVariablesFromString-Cr3x2uq3.mjs.map → parseVariablesFromString-BOSfQ4QF.mjs.map} +1 -1
- package/dist/path-safety-D5Qwl40b.mjs +2 -0
- package/dist/path-safety-D5Qwl40b.mjs.map +1 -0
- package/dist/policy-bundle-manifest-D6dkbjNi.mjs +7 -0
- package/dist/policy-bundle-manifest-D6dkbjNi.mjs.map +1 -0
- package/dist/policy-runtime-BMKa-Upy.mjs +2 -0
- package/dist/policy-runtime-BMKa-Upy.mjs.map +1 -0
- package/dist/{printResult-esxW3HhT.mjs → printResult-CHe3nRN4.mjs} +5 -5
- package/dist/printResult-CHe3nRN4.mjs.map +1 -0
- package/dist/project-plan-apply-Dvndx455.mjs +3 -0
- package/dist/project-plan-apply-Dvndx455.mjs.map +1 -0
- package/dist/prompts-ClBXdELk.mjs +4 -0
- package/dist/prompts-ClBXdELk.mjs.map +1 -0
- package/dist/{pullAllDatapoints-H92qjLSx.mjs → pullAllDatapoints-uk5ggk6O.mjs} +2 -2
- package/dist/{pullAllDatapoints-H92qjLSx.mjs.map → pullAllDatapoints-uk5ggk6O.mjs.map} +1 -1
- package/dist/{pullChunkedCustomSiloOutstandingIdentifiers-BrDmPbvc.mjs → pullChunkedCustomSiloOutstandingIdentifiers-BxolFAfF.mjs} +2 -2
- package/dist/{pullChunkedCustomSiloOutstandingIdentifiers-BrDmPbvc.mjs.map → pullChunkedCustomSiloOutstandingIdentifiers-BxolFAfF.mjs.map} +1 -1
- package/dist/{pullConsentManagerMetrics-Cvex-gpd.mjs → pullConsentManagerMetrics-Dv5n1ZGp.mjs} +2 -2
- package/dist/{pullConsentManagerMetrics-Cvex-gpd.mjs.map → pullConsentManagerMetrics-Dv5n1ZGp.mjs.map} +1 -1
- package/dist/{pullManualEnrichmentIdentifiersToCsv-qjdNA75O.mjs → pullManualEnrichmentIdentifiersToCsv-DcLZeqF2.mjs} +2 -2
- package/dist/{pullManualEnrichmentIdentifiersToCsv-qjdNA75O.mjs.map → pullManualEnrichmentIdentifiersToCsv-DcLZeqF2.mjs.map} +1 -1
- package/dist/{pullTranscendConfiguration-CD7Frn8z.mjs → pullTranscendConfiguration-B63M3ild.mjs} +3 -3
- package/dist/{pullTranscendConfiguration-CD7Frn8z.mjs.map → pullTranscendConfiguration-B63M3ild.mjs.map} +1 -1
- package/dist/{pullUnstructuredSubDataPointRecommendations-Dmh_-r95.mjs → pullUnstructuredSubDataPointRecommendations-YTBzfkRZ.mjs} +2 -2
- package/dist/{pullUnstructuredSubDataPointRecommendations-Dmh_-r95.mjs.map → pullUnstructuredSubDataPointRecommendations-YTBzfkRZ.mjs.map} +1 -1
- package/dist/{pushCronIdentifiersFromCsv-DjeY7TtK.mjs → pushCronIdentifiersFromCsv-CVTCk6s3.mjs} +2 -2
- package/dist/{pushCronIdentifiersFromCsv-DjeY7TtK.mjs.map → pushCronIdentifiersFromCsv-CVTCk6s3.mjs.map} +1 -1
- package/dist/{pushManualEnrichmentIdentifiersFromCsv-BDtMo13j.mjs → pushManualEnrichmentIdentifiersFromCsv-BIkBbKfs.mjs} +2 -2
- package/dist/{pushManualEnrichmentIdentifiersFromCsv-BDtMo13j.mjs.map → pushManualEnrichmentIdentifiersFromCsv-BIkBbKfs.mjs.map} +1 -1
- package/dist/{readCsv-Cr_1t8F5.mjs → readCsv-DLg8pwjd.mjs} +1 -1
- package/dist/{readCsv-Cr_1t8F5.mjs.map → readCsv-DLg8pwjd.mjs.map} +1 -1
- package/dist/readTranscendYaml-BNn6-Ofi.mjs +4 -0
- package/dist/readTranscendYaml-BNn6-Ofi.mjs.map +1 -0
- package/dist/{removeUnverifiedRequestIdentifiers-B9uPApVR.mjs → removeUnverifiedRequestIdentifiers-CzEvT_WR.mjs} +2 -2
- package/dist/{removeUnverifiedRequestIdentifiers-B9uPApVR.mjs.map → removeUnverifiedRequestIdentifiers-CzEvT_WR.mjs.map} +1 -1
- package/dist/{renderTable-DKTZbMjY.mjs → renderTable-D68QasPc.mjs} +1 -1
- package/dist/{renderTable-DKTZbMjY.mjs.map → renderTable-D68QasPc.mjs.map} +1 -1
- package/dist/{request-B1yRTdG-.mjs → request-BiPv6jmP.mjs} +1 -1
- package/dist/{request-B1yRTdG-.mjs.map → request-BiPv6jmP.mjs.map} +1 -1
- package/dist/{resolveBundleIdByName-DuxWYrDF.mjs → resolveBundleIdByName-qXZBrUz_.mjs} +2 -2
- package/dist/{resolveBundleIdByName-DuxWYrDF.mjs.map → resolveBundleIdByName-qXZBrUz_.mjs.map} +1 -1
- package/dist/{resolvePolicyBundleVersion-DhXZKwb4.mjs → resolvePolicyBundleVersion-BG7XqBBP.mjs} +2 -2
- package/dist/{resolvePolicyBundleVersion-DhXZKwb4.mjs.map → resolvePolicyBundleVersion-BG7XqBBP.mjs.map} +1 -1
- package/dist/{retryRequestDataSilos-D9dBtbdl.mjs → retryRequestDataSilos-C2csdZmC.mjs} +2 -2
- package/dist/{retryRequestDataSilos-D9dBtbdl.mjs.map → retryRequestDataSilos-C2csdZmC.mjs.map} +1 -1
- package/dist/{run-captured-process-CpZBh0lG.mjs → run-captured-process-BXwWXuTh.mjs} +1 -1
- package/dist/{run-captured-process-CpZBh0lG.mjs.map → run-captured-process-BXwWXuTh.mjs.map} +1 -1
- package/dist/runOpa-CswzJxIs.mjs +2 -0
- package/dist/runOpa-CswzJxIs.mjs.map +1 -0
- package/dist/scaffold-model-BAbYTR0q.mjs +2 -0
- package/dist/scaffold-model-BAbYTR0q.mjs.map +1 -0
- package/dist/scaffold-planning-CNv83t_v.mjs +123 -0
- package/dist/scaffold-planning-CNv83t_v.mjs.map +1 -0
- package/dist/scaffold-templates-DzDGTZie.mjs +84 -0
- package/dist/scaffold-templates-DzDGTZie.mjs.map +1 -0
- package/dist/{skipPreflightJobs-Beia_iB6.mjs → skipPreflightJobs-CB_lGpri.mjs} +2 -2
- package/dist/{skipPreflightJobs-Beia_iB6.mjs.map → skipPreflightJobs-CB_lGpri.mjs.map} +1 -1
- package/dist/{skipRequestDataSilos-BSNLacnR.mjs → skipRequestDataSilos-Bf85wXUC.mjs} +2 -2
- package/dist/{skipRequestDataSilos-BSNLacnR.mjs.map → skipRequestDataSilos-Bf85wXUC.mjs.map} +1 -1
- package/dist/{streamPrivacyRequestsToCsv-Cksb9D49.mjs → streamPrivacyRequestsToCsv-CPwLKjTm.mjs} +2 -2
- package/dist/{streamPrivacyRequestsToCsv-Cksb9D49.mjs.map → streamPrivacyRequestsToCsv-CPwLKjTm.mjs.map} +1 -1
- package/dist/{syncCodePackages-DsC1tE8B.mjs → syncCodePackages-BHE2Tn1Q.mjs} +2 -2
- package/dist/{syncCodePackages-DsC1tE8B.mjs.map → syncCodePackages-BHE2Tn1Q.mjs.map} +1 -1
- package/dist/{updateConsentManagerVersionToLatest-CaEkTnlL.mjs → updateConsentManagerVersionToLatest-ikIE5dHp.mjs} +2 -2
- package/dist/{updateConsentManagerVersionToLatest-CaEkTnlL.mjs.map → updateConsentManagerVersionToLatest-ikIE5dHp.mjs.map} +1 -1
- package/dist/{uploadConsents-CNyuYx0o.mjs → uploadConsents-BrWpoV6_.mjs} +2 -2
- package/dist/{uploadConsents-CNyuYx0o.mjs.map → uploadConsents-BrWpoV6_.mjs.map} +1 -1
- package/dist/{uploadPrivacyRequestsFromCsv-BdTQOZnF.mjs → uploadPrivacyRequestsFromCsv-BuB0-XpH.mjs} +2 -2
- package/dist/{uploadPrivacyRequestsFromCsv-BdTQOZnF.mjs.map → uploadPrivacyRequestsFromCsv-BuB0-XpH.mjs.map} +1 -1
- package/dist/{validateTranscendAuth-CnHMn77m.mjs → validateTranscendAuth-D6Wr1cxY.mjs} +2 -2
- package/dist/{validateTranscendAuth-CnHMn77m.mjs.map → validateTranscendAuth-D6Wr1cxY.mjs.map} +1 -1
- package/dist/{writeCsv-D46aDkGf.mjs → writeCsv-D-2siSwE.mjs} +1 -1
- package/dist/{writeCsv-D46aDkGf.mjs.map → writeCsv-D-2siSwE.mjs.map} +1 -1
- package/package.json +8 -7
- package/dist/app-DCY8E776.mjs.map +0 -1
- package/dist/codecs-BsQFAFGT.mjs +0 -2
- package/dist/codecs-BsQFAFGT.mjs.map +0 -1
- package/dist/constants-BMAOvdcA.mjs +0 -2
- package/dist/constants-BMAOvdcA.mjs.map +0 -1
- package/dist/deno-runtime-QqwBDKXX.mjs +0 -2
- package/dist/deno-runtime-QqwBDKXX.mjs.map +0 -1
- package/dist/impl-BFJtKA2o2.mjs.map +0 -1
- package/dist/impl-BJlKQJdS2.mjs.map +0 -1
- package/dist/impl-BNPgYSBT.mjs +0 -3
- package/dist/impl-BNPgYSBT.mjs.map +0 -1
- package/dist/impl-BYGNx-8W2.mjs.map +0 -1
- package/dist/impl-BcJ019T2.mjs +0 -2
- package/dist/impl-BsC1KVxS.mjs +0 -2
- package/dist/impl-BwRcpAno.mjs.map +0 -1
- package/dist/impl-C5dzaDga2.mjs.map +0 -1
- package/dist/impl-C8BmxFQ2.mjs +0 -2
- package/dist/impl-CXUJ1eRC.mjs.map +0 -1
- package/dist/impl-CzxvoiGW.mjs +0 -3
- package/dist/impl-D-SQJc3t.mjs +0 -2
- package/dist/impl-D-SQJc3t.mjs.map +0 -1
- package/dist/impl-D23kJPAQ2.mjs +0 -3
- package/dist/impl-D23kJPAQ2.mjs.map +0 -1
- package/dist/impl-DOoR93T6.mjs.map +0 -1
- package/dist/impl-Dib6Fff12.mjs.map +0 -1
- package/dist/impl-Dk6TZKrp2.mjs.map +0 -1
- package/dist/impl-Dm-Fkr392.mjs.map +0 -1
- package/dist/impl-Drql0g72.mjs.map +0 -1
- package/dist/impl-FLj_mWLO.mjs +0 -2
- package/dist/impl-FLj_mWLO.mjs.map +0 -1
- package/dist/impl-VPBEqV0w2.mjs.map +0 -1
- package/dist/impl-m3QXCc6n.mjs.map +0 -1
- package/dist/logger-9T6vva73.mjs +0 -2
- package/dist/logger-9T6vva73.mjs.map +0 -1
- package/dist/manifest-DVuW_vvO.mjs +0 -2
- package/dist/manifest-DVuW_vvO.mjs.map +0 -1
- package/dist/mergeTranscendInputs-CWHXH0kF.mjs +0 -3
- package/dist/mergeTranscendInputs-CWHXH0kF.mjs.map +0 -1
- package/dist/missing-manifest-BKj1j-jg.mjs +0 -2
- package/dist/missing-manifest-BKj1j-jg.mjs.map +0 -1
- package/dist/printResult-esxW3HhT.mjs.map +0 -1
- package/dist/project-plan-apply-C2DfikVN.mjs +0 -3
- package/dist/project-plan-apply-C2DfikVN.mjs.map +0 -1
- package/dist/readTranscendYaml-STYnRzq-.mjs +0 -4
- package/dist/readTranscendYaml-STYnRzq-.mjs.map +0 -1
- package/dist/runOpa-CkKAwsvB.mjs +0 -2
- package/dist/runOpa-CkKAwsvB.mjs.map +0 -1
- package/dist/scaffold-planning-DMACXSnX.mjs +0 -121
- package/dist/scaffold-planning-DMACXSnX.mjs.map +0 -1
- package/dist/scaffold-templates-CsHM1y80.mjs +0 -84
- package/dist/scaffold-templates-CsHM1y80.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -65,6 +65,7 @@ A command line interface that allows you to programatically interact with the Tr
|
|
|
65
65
|
- [`transcend policy deactivate`](#transcend-policy-deactivate)
|
|
66
66
|
- [`transcend policy download`](#transcend-policy-download)
|
|
67
67
|
- [`transcend policy eval`](#transcend-policy-eval)
|
|
68
|
+
- [`transcend policy init`](#transcend-policy-init)
|
|
68
69
|
- [`transcend policy lint`](#transcend-policy-lint)
|
|
69
70
|
- [`transcend policy bundles`](#transcend-policy-bundles)
|
|
70
71
|
- [`transcend policy publish`](#transcend-policy-publish)
|
|
@@ -131,13 +132,13 @@ api-keys:
|
|
|
131
132
|
|
|
132
133
|
# Manage at: https://app.transcend.io/privacy-requests/identifiers
|
|
133
134
|
# See https://docs.transcend.io/docs/identity-enrichment
|
|
134
|
-
# Define
|
|
135
|
+
# Define preflight check webhooks that will be executed
|
|
135
136
|
# prior to privacy request workflows. Some examples may include:
|
|
136
137
|
# - identity enrichment: look up additional identifiers for that user.
|
|
137
138
|
# i.e. map an email address to a user ID
|
|
138
139
|
# - fraud check: auto-cancel requests if the user is flagged for fraudulent behavior
|
|
139
140
|
# - customer check: auto-cancel request for some custom business criteria
|
|
140
|
-
|
|
141
|
+
preflights:
|
|
141
142
|
- title: Basic Identity Enrichment
|
|
142
143
|
description: Enrich an email address to the userId and phone number
|
|
143
144
|
url: https://example.acme.com/transcend-enrichment-webhook
|
|
@@ -2545,12 +2546,12 @@ USAGE
|
|
|
2545
2546
|
transcend custom-functions new [--manifest value] [--name value] [--template general|dsr-datapoint|dsr-enricher|dsr-both] [--noInteractive] [--dryRun] [--yes] [--json] [<directory>]
|
|
2546
2547
|
transcend custom-functions new --help
|
|
2547
2548
|
|
|
2548
|
-
Adds a deterministic General or DSR
|
|
2549
|
+
Adds a deterministic starter for one of two Custom Function types: General functions triggered by Rules Automation, or DSR functions triggered by a Workflow step and supporting data point resolvers, preflight checks, or both.
|
|
2549
2550
|
|
|
2550
2551
|
FLAGS
|
|
2551
2552
|
[--manifest] Path to an existing transcend-functions.yml
|
|
2552
2553
|
[--name] Customer-visible Custom Function display name
|
|
2553
|
-
[--template]
|
|
2554
|
+
[--template] Function type and generated handler shape [general|dsr-datapoint|dsr-enricher|dsr-both]
|
|
2554
2555
|
[--noInteractive] Disable prompts and require every missing answer as a flag [default = false]
|
|
2555
2556
|
[--dryRun] Preview all changes without writing files [default = false]
|
|
2556
2557
|
[--yes] Skip only the final plan confirmation [default = false]
|
|
@@ -2571,7 +2572,7 @@ transcend custom-functions new ./transcend/custom-functions \
|
|
|
2571
2572
|
--yes
|
|
2572
2573
|
```
|
|
2573
2574
|
|
|
2574
|
-
Run `transcend custom-functions init` once before adding functions. The
|
|
2575
|
+
Run `transcend custom-functions init` once before adding functions. The interactive flow first asks for the Custom Function type: General functions are triggered by Rules Automation, while DSR functions are triggered by a step in a Workflow. General currently has one template, so selecting it continues immediately. Selecting DSR opens a second prompt: choose `dsr-datapoint` for a data point resolver, `dsr-enricher` for a preflight check, or `dsr-both` to support both. The `dsr-enricher` flag retains the API's technical export name, but the user-facing workflow is called preflight. Without a directory argument, `new` uses the initialized project at `transcend/custom-functions`. If that manifest is missing, it reports any other project manifest it discovers as an explicit suggestion.
|
|
2575
2576
|
|
|
2576
2577
|
Generated code contains only the selected handler exports and focused TODOs. Customer-specific API and mapping choices remain for the developer or the installed `transcend-custom-functions` skill. The final output includes a short, copyable AI handoff naming the generated source and validation command.
|
|
2577
2578
|
|
|
@@ -2901,7 +2902,7 @@ The API key permissions for this command vary based on the `resources` argument:
|
|
|
2901
2902
|
| `customFields` | `attributes` | Custom Field definitions that define extra metadata for each table in the Admin Dashboard. | View Global Attributes | [Custom Fields](https://app.transcend.io/infrastructure/attributes) |
|
|
2902
2903
|
| `templates` | `templates` | Email templates. Only template titles can be created and mapped to other resources. | View Email Templates | [DSR Automation -> Email Settings -> Templates](https://app.transcend.io/privacy-requests/email-settings/templates) |
|
|
2903
2904
|
| `dataSilos` | `data-silos` | The Data System (formerly "Data Silo") definitions. | View Data Map, View Data Subject Request Settings, View API Keys | [Data Inventory -> Data Systems](https://app.transcend.io/data-map/data-inventory/data-silos)<br>[Infrastructure -> Integrations](https://app.transcend.io/infrastructure/integrations) |
|
|
2904
|
-
| `enrichers` | `
|
|
2905
|
+
| `enrichers` | `preflights` | The Privacy Request preflight check configurations (formerly "enrichers"). | View Identity Verification Settings | [DSR Automation -> Identifiers](https://app.transcend.io/privacy-requests/identifiers) |
|
|
2905
2906
|
| `dataFlows` | `data-flows` | Consent Manager Data Flow definitions. | View Data Flows | [Consent Management -> Data Flows](https://app.transcend.io/consent-manager/data-flows/approved) |
|
|
2906
2907
|
| `businessEntities` | `business-entities` | The business entities in the Data Inventory. | View Data Inventory | [Data Inventory -> Business Entities](https://app.transcend.io/data-map/data-inventory/business-entities) |
|
|
2907
2908
|
| `processingActivities` | `processing-activities` | The processing activities in the Data Inventory. | View Data Inventory | [Data Inventory -> Processing Activities](https://app.transcend.io/data-map/data-inventory/processing-activities) |
|
|
@@ -3005,7 +3006,7 @@ transcend inventory pull --auth="$TRANSCEND_API_KEY" --resources=businessEntitie
|
|
|
3005
3006
|
transcend inventory pull --auth="$TRANSCEND_API_KEY" --resources=processingActivities
|
|
3006
3007
|
```
|
|
3007
3008
|
|
|
3008
|
-
**Pull
|
|
3009
|
+
**Pull preflight checks and identifiers (see [this example](./examples/preflights.yml))**
|
|
3009
3010
|
|
|
3010
3011
|
```sh
|
|
3011
3012
|
transcend inventory pull --auth="$TRANSCEND_API_KEY" --resources=enrichers,identifiers
|
|
@@ -3110,7 +3111,7 @@ The API key permissions for this command vary based on the resources declared as
|
|
|
3110
3111
|
| `customFields` | `attributes` | Custom Field definitions that define extra metadata for each table in the Admin Dashboard. | Manage Global Attributes | [Custom Fields](https://app.transcend.io/infrastructure/attributes) |
|
|
3111
3112
|
| `templates` | `templates` | Email templates. Only template titles can be created and mapped to other resources. | Manage Email Templates | [DSR Automation -> Email Settings -> Templates](https://app.transcend.io/privacy-requests/email-settings/templates) |
|
|
3112
3113
|
| `dataSilos` | `data-silos` | The Data System (formerly "Data Silo") definitions. | Manage Data Map, Connect Data Silos, View API Keys | [Data Inventory -> Data Systems](https://app.transcend.io/data-map/data-inventory/data-silos)<br>[Infrastructure -> Integrations](https://app.transcend.io/infrastructure/integrations) |
|
|
3113
|
-
| `enrichers` | `
|
|
3114
|
+
| `enrichers` | `preflights` | The Privacy Request preflight check configurations (formerly "enrichers"). | Manage Request Identity Verification | [DSR Automation -> Identifiers](https://app.transcend.io/privacy-requests/identifiers) |
|
|
3114
3115
|
| `dataFlows` | `data-flows` | Consent Manager Data Flow definitions. | Manage Data Flows | [Consent Management -> Data Flows](https://app.transcend.io/consent-manager/data-flows/approved) |
|
|
3115
3116
|
| `businessEntities` | `business-entities` | The business entities in the Data Inventory. | Manage Data Inventory | [Data Inventory -> Business Entities](https://app.transcend.io/data-map/data-inventory/business-entities) |
|
|
3116
3117
|
| `processingActivities` | `processing-activities` | The processing activities in the Data Inventory. | Manage Data Map | [Data Inventory -> Processing Activities](https://app.transcend.io/data-map/data-inventory/processing-activities) |
|
|
@@ -3307,7 +3308,7 @@ This command can fill out multiple variables in a YAML file like [./examples/mul
|
|
|
3307
3308
|
```yml
|
|
3308
3309
|
api-keys:
|
|
3309
3310
|
- title: Webhook Key
|
|
3310
|
-
|
|
3311
|
+
preflights:
|
|
3311
3312
|
- title: Basic Identity Enrichment
|
|
3312
3313
|
description: Enrich an email address to the userId and phone number
|
|
3313
3314
|
# The data silo webhook URL is the same in each environment,
|
|
@@ -4299,26 +4300,91 @@ FLAGS
|
|
|
4299
4300
|
transcend policy eval --pkg=data.transcend.decision --input=./fixtures/envelope.json --bundle=./policies
|
|
4300
4301
|
```
|
|
4301
4302
|
|
|
4303
|
+
### `transcend policy init`
|
|
4304
|
+
|
|
4305
|
+
```txt
|
|
4306
|
+
USAGE
|
|
4307
|
+
transcend policy init [--editor] [--skill] [--ci] [--noInteractive] [--dryRun] [--yes] [--json] [<directory>]
|
|
4308
|
+
transcend policy init --help
|
|
4309
|
+
|
|
4310
|
+
Probes OPA and Regal, previews one safe transactional plan, and creates a publishable fail-closed Rego v1 starter only in an empty target. Optional editor, Agent Skill, and validation-only CI setup preserve repository customization. No Transcend credentials are needed.
|
|
4311
|
+
|
|
4312
|
+
FLAGS
|
|
4313
|
+
[--editor/--noEditor] Merge strict target-scoped VS Code settings, extensions, and lint task
|
|
4314
|
+
[--skill/--noSkill] Install the canonical Policy Engine coding-agent skill
|
|
4315
|
+
[--ci/--noCi] Generate credential-free validation-only GitHub Actions
|
|
4316
|
+
[--noInteractive] Disable prompts and enable optional setup only through explicit flags [default = false]
|
|
4317
|
+
[--dryRun] Preview all changes without writing files [default = false]
|
|
4318
|
+
[--yes] Skip only the final plan confirmation [default = false]
|
|
4319
|
+
[--json] Emit one stable JSON result and imply non-interactive output [default = false]
|
|
4320
|
+
-h --help Print help information and exit
|
|
4321
|
+
|
|
4322
|
+
ARGUMENTS
|
|
4323
|
+
[directory] Policy project directory [default = transcend/policy]
|
|
4324
|
+
```
|
|
4325
|
+
|
|
4326
|
+
#### Create the safe default policy project
|
|
4327
|
+
|
|
4328
|
+
```sh
|
|
4329
|
+
transcend policy init
|
|
4330
|
+
```
|
|
4331
|
+
|
|
4332
|
+
This creates a publishable, fail-closed Rego v1 starter under `transcend/policy`. The example policy is disposable teaching material, not an application contract. Initialization checks local OPA and Regal versions and prints official installation guidance when they are missing or incompatible; it never installs tools or creates runtime-manager configuration.
|
|
4333
|
+
|
|
4334
|
+
The interactive checklist selects repository-level VS Code setup, the `transcend-policy-engine` Agent Skill, and credential-free validation-only GitHub Actions by default. VS Code setup recommends the official OPA extension, scopes bundle authoring and a default `policy: lint` task to the selected project, and configures strict Rego v1 formatting with Regal.
|
|
4335
|
+
|
|
4336
|
+
To give an agent the same policy guidance before initialization, install the standalone skill directly from this repository:
|
|
4337
|
+
|
|
4338
|
+
```sh
|
|
4339
|
+
npx skills add transcend-io/tools --skill transcend-policy-engine
|
|
4340
|
+
```
|
|
4341
|
+
|
|
4342
|
+
#### Preview or choose another directory
|
|
4343
|
+
|
|
4344
|
+
```sh
|
|
4345
|
+
transcend policy init ./policies --dryRun --json
|
|
4346
|
+
transcend policy init ./policies --editor --skill --ci --noInteractive --yes
|
|
4347
|
+
```
|
|
4348
|
+
|
|
4349
|
+
Non-interactive setup enables only the individual `--editor`, `--skill`, and `--ci` flags passed. There are no setup presets. The complete plan is applied transactionally. Existing or partially initialized policy targets are left unchanged with actionable warnings, including customized Rego, manifests, Regal configuration, README files, workflows, editor values and tasks, and managed skill content.
|
|
4350
|
+
|
|
4351
|
+
Generated CI pins OPA 1.13.1, Regal 0.42.0, immutable setup action commits, and the current Transcend CLI release. It runs only `transcend policy lint --noInteractive --json`; it never publishes or adds Transcend API credentials. After successful initialization, copyable one-line next steps and an AI handoff prompt identify the disposable example, repository-specific CI adaptation, and the final lint gate.
|
|
4352
|
+
|
|
4302
4353
|
### `transcend policy lint`
|
|
4303
4354
|
|
|
4304
4355
|
```txt
|
|
4305
4356
|
USAGE
|
|
4306
|
-
transcend policy lint
|
|
4357
|
+
transcend policy lint [--dir value] [--fix] [--noInteractive] [--json]
|
|
4307
4358
|
transcend policy lint --help
|
|
4308
4359
|
|
|
4309
|
-
|
|
4360
|
+
Validates manifest roots and package coverage, verifies OPA 1.x and Regal, checks or repairs OPA formatting, runs a production-only strict OPA check, treats Regal warnings as failures, and requires non-empty OPA tests. No Transcend API key is needed.
|
|
4310
4361
|
|
|
4311
4362
|
FLAGS
|
|
4312
|
-
--dir
|
|
4313
|
-
|
|
4363
|
+
[--dir] Directory containing the local policy project [default = transcend/policy]
|
|
4364
|
+
[--fix] Apply OPA formatting without running broad Regal fixes [default = false]
|
|
4365
|
+
[--noInteractive] Disable the optional formatting confirmation [default = false]
|
|
4366
|
+
[--json] Emit one stable JSON result and imply non-interactive behavior [default = false]
|
|
4367
|
+
-h --help Print help information and exit
|
|
4314
4368
|
```
|
|
4315
4369
|
|
|
4316
4370
|
#### Examples
|
|
4317
4371
|
|
|
4318
|
-
**
|
|
4372
|
+
**Verify the default local policy project**
|
|
4373
|
+
|
|
4374
|
+
```sh
|
|
4375
|
+
transcend policy lint
|
|
4376
|
+
```
|
|
4377
|
+
|
|
4378
|
+
**Verify and format a custom policy project**
|
|
4379
|
+
|
|
4380
|
+
```sh
|
|
4381
|
+
transcend policy lint --dir=./policies --fix
|
|
4382
|
+
```
|
|
4383
|
+
|
|
4384
|
+
**Run the verification gate in CI or an editor**
|
|
4319
4385
|
|
|
4320
4386
|
```sh
|
|
4321
|
-
transcend policy lint --
|
|
4387
|
+
transcend policy lint --noInteractive --json
|
|
4322
4388
|
```
|
|
4323
4389
|
|
|
4324
4390
|
### `transcend policy bundles`
|