@rudderhq/server 0.7.10 → 0.7.12
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/bootstrap/register-api-routes.d.ts.map +1 -1
- package/dist/bootstrap/register-api-routes.js +1 -1
- package/dist/bootstrap/register-api-routes.js.map +1 -1
- package/dist/bootstrap/types.d.ts +7 -0
- package/dist/bootstrap/types.d.ts.map +1 -1
- package/dist/index.js +18 -3
- package/dist/index.js.map +1 -1
- package/dist/routes/agents.management-routes.d.ts.map +1 -1
- package/dist/routes/agents.management-routes.js +2 -0
- package/dist/routes/agents.management-routes.js.map +1 -1
- package/dist/routes/chats.d.ts +2 -1
- package/dist/routes/chats.d.ts.map +1 -1
- package/dist/routes/chats.js +356 -7
- package/dist/routes/chats.js.map +1 -1
- package/dist/routes/chats.stream-routes.d.ts.map +1 -1
- package/dist/routes/chats.stream-routes.js +55 -3
- package/dist/routes/chats.stream-routes.js.map +1 -1
- package/dist/routes/goals.d.ts.map +1 -1
- package/dist/routes/goals.js +68 -7
- package/dist/routes/goals.js.map +1 -1
- package/dist/routes/issues.mutations.d.ts.map +1 -1
- package/dist/routes/issues.mutations.js +3 -0
- package/dist/routes/issues.mutations.js.map +1 -1
- package/dist/routes/orgs.d.ts.map +1 -1
- package/dist/routes/orgs.js +22 -1
- package/dist/routes/orgs.js.map +1 -1
- package/dist/routes/run-intelligence.d.ts.map +1 -1
- package/dist/routes/run-intelligence.js +9 -0
- package/dist/routes/run-intelligence.js.map +1 -1
- package/dist/services/agent-instructions.d.ts +1 -0
- package/dist/services/agent-instructions.d.ts.map +1 -1
- package/dist/services/agent-instructions.js +124 -6
- package/dist/services/agent-instructions.js.map +1 -1
- package/dist/services/agent-run-context.d.ts.map +1 -1
- package/dist/services/agent-run-context.js +15 -0
- package/dist/services/agent-run-context.js.map +1 -1
- package/dist/services/agent-startup-context.d.ts +5 -1
- package/dist/services/agent-startup-context.d.ts.map +1 -1
- package/dist/services/agent-startup-context.js +67 -14
- package/dist/services/agent-startup-context.js.map +1 -1
- package/dist/services/agents.d.ts +218 -0
- package/dist/services/agents.d.ts.map +1 -1
- package/dist/services/automations.d.ts.map +1 -1
- package/dist/services/automations.js +3 -0
- package/dist/services/automations.js.map +1 -1
- package/dist/services/chat-agent-runs.d.ts +47 -1
- package/dist/services/chat-agent-runs.d.ts.map +1 -1
- package/dist/services/chat-agent-runs.js +91 -1
- package/dist/services/chat-agent-runs.js.map +1 -1
- package/dist/services/chat-assistant.d.ts.map +1 -1
- package/dist/services/chat-assistant.helpers.d.ts +12 -3
- package/dist/services/chat-assistant.helpers.d.ts.map +1 -1
- package/dist/services/chat-assistant.helpers.js +3 -0
- package/dist/services/chat-assistant.helpers.js.map +1 -1
- package/dist/services/chat-assistant.js +65 -19
- package/dist/services/chat-assistant.js.map +1 -1
- package/dist/services/chat-generation-protocol.d.ts +119 -0
- package/dist/services/chat-generation-protocol.d.ts.map +1 -1
- package/dist/services/chat-generation-protocol.js +65 -0
- package/dist/services/chat-generation-protocol.js.map +1 -1
- package/dist/services/chats.constants.d.ts +1 -1
- package/dist/services/chats.constants.d.ts.map +1 -1
- package/dist/services/chats.constants.js +1 -0
- package/dist/services/chats.constants.js.map +1 -1
- package/dist/services/chats.d.ts +213 -0
- package/dist/services/chats.d.ts.map +1 -1
- package/dist/services/chats.js +46 -1
- package/dist/services/chats.js.map +1 -1
- package/dist/services/goals.d.ts +133 -5
- package/dist/services/goals.d.ts.map +1 -1
- package/dist/services/goals.js +260 -3
- package/dist/services/goals.js.map +1 -1
- package/dist/services/heartbeat-run-reference.d.ts.map +1 -1
- package/dist/services/heartbeat-run-reference.js +11 -5
- package/dist/services/heartbeat-run-reference.js.map +1 -1
- package/dist/services/index.d.ts +2 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +2 -1
- package/dist/services/index.js.map +1 -1
- package/dist/services/integrations/feishu/runtime.d.ts +8 -0
- package/dist/services/integrations/feishu/runtime.d.ts.map +1 -1
- package/dist/services/integrations/feishu/runtime.js +124 -1
- package/dist/services/integrations/feishu/runtime.js.map +1 -1
- package/dist/services/issues.d.ts.map +1 -1
- package/dist/services/issues.helpers.d.ts +8 -0
- package/dist/services/issues.helpers.d.ts.map +1 -1
- package/dist/services/issues.helpers.js +17 -1
- package/dist/services/issues.helpers.js.map +1 -1
- package/dist/services/issues.js +108 -15
- package/dist/services/issues.js.map +1 -1
- package/dist/services/messenger.d.ts.map +1 -1
- package/dist/services/messenger.js +12 -3
- package/dist/services/messenger.js.map +1 -1
- package/dist/services/organization-members.d.ts +27 -0
- package/dist/services/organization-members.d.ts.map +1 -0
- package/dist/services/organization-members.js +169 -0
- package/dist/services/organization-members.js.map +1 -0
- package/dist/services/organization-workspace-browser.d.ts.map +1 -1
- package/dist/services/organization-workspace-browser.js +44 -10
- package/dist/services/organization-workspace-browser.js.map +1 -1
- package/dist/services/product-intelligence.d.ts.map +1 -1
- package/dist/services/product-intelligence.js +4 -0
- package/dist/services/product-intelligence.js.map +1 -1
- package/dist/services/projects.d.ts +1 -4
- package/dist/services/projects.d.ts.map +1 -1
- package/dist/services/projects.js +27 -2
- package/dist/services/projects.js.map +1 -1
- package/dist/services/rudder-plugin-catalog.d.ts +1 -1
- package/dist/services/rudder-plugin-catalog.d.ts.map +1 -1
- package/dist/services/rudder-plugin-catalog.js +281 -15
- package/dist/services/rudder-plugin-catalog.js.map +1 -1
- package/dist/services/rudder-plugin-catalog.test.js +55 -0
- package/dist/services/rudder-plugin-catalog.test.js.map +1 -1
- package/dist/services/run-intelligence.d.ts.map +1 -1
- package/dist/services/run-intelligence.js +2 -1
- package/dist/services/run-intelligence.js.map +1 -1
- package/dist/services/run-log-store.d.ts +3 -0
- package/dist/services/run-log-store.d.ts.map +1 -1
- package/dist/services/run-log-store.js +124 -18
- package/dist/services/run-log-store.js.map +1 -1
- package/dist/services/runtime-kernel/assignment-run-guardrail.d.ts +80 -23
- package/dist/services/runtime-kernel/assignment-run-guardrail.d.ts.map +1 -1
- package/dist/services/runtime-kernel/assignment-run-guardrail.js +230 -5
- package/dist/services/runtime-kernel/assignment-run-guardrail.js.map +1 -1
- package/dist/services/runtime-kernel/assignment-run-guardrail.test.js +122 -2
- package/dist/services/runtime-kernel/assignment-run-guardrail.test.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat-attempt-ledger.d.ts +124 -0
- package/dist/services/runtime-kernel/heartbeat-attempt-ledger.d.ts.map +1 -0
- package/dist/services/runtime-kernel/heartbeat-attempt-ledger.js +108 -0
- package/dist/services/runtime-kernel/heartbeat-attempt-ledger.js.map +1 -0
- package/dist/services/runtime-kernel/heartbeat.core.d.ts +111 -0
- package/dist/services/runtime-kernel/heartbeat.core.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.core.js +13 -0
- package/dist/services/runtime-kernel/heartbeat.core.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.d.ts +34 -0
- package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.execute.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.execute.js +312 -16
- package/dist/services/runtime-kernel/heartbeat.execute.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.js +205 -8
- package/dist/services/runtime-kernel/heartbeat.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.sessions.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.sessions.js +15 -3
- package/dist/services/runtime-kernel/heartbeat.sessions.js.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.terminal.d.ts +48 -0
- package/dist/services/runtime-kernel/heartbeat.terminal.d.ts.map +1 -1
- package/dist/services/runtime-kernel/heartbeat.wakeup.js +1 -1
- package/dist/services/runtime-kernel/heartbeat.wakeup.js.map +1 -1
- package/dist/services/runtime-kernel/model-fallback.d.ts +4 -0
- package/dist/services/runtime-kernel/model-fallback.d.ts.map +1 -1
- package/dist/services/runtime-kernel/model-fallback.js +25 -4
- package/dist/services/runtime-kernel/model-fallback.js.map +1 -1
- package/dist/services/workspace-backup-v2.d.ts +20 -0
- package/dist/services/workspace-backup-v2.d.ts.map +1 -1
- package/dist/services/workspace-backup-v2.js +155 -23
- package/dist/services/workspace-backup-v2.js.map +1 -1
- package/dist/services/workspace-backup-v2.test.js +34 -2
- package/dist/services/workspace-backup-v2.test.js.map +1 -1
- package/dist/services/workspace-backups.d.ts +0 -1
- package/dist/services/workspace-backups.d.ts.map +1 -1
- package/dist/services/workspace-backups.js +18 -19
- package/dist/services/workspace-backups.js.map +1 -1
- package/dist/services/workspace-manifest-native.d.ts +10 -0
- package/dist/services/workspace-manifest-native.d.ts.map +1 -0
- package/dist/services/workspace-manifest-native.js +219 -0
- package/dist/services/workspace-manifest-native.js.map +1 -0
- package/dist/services/workspace-restore-reconciliation.d.ts +11 -0
- package/dist/services/workspace-restore-reconciliation.d.ts.map +1 -0
- package/dist/services/workspace-restore-reconciliation.js +165 -0
- package/dist/services/workspace-restore-reconciliation.js.map +1 -0
- package/package.json +14 -14
- package/resources/bundled-skills/rudder-docs/references/api-reference.md +8 -0
- package/resources/bundled-skills/rudder-docs/references/cli-reference.md +14 -8
- package/skills/rudder-docs/references/api-reference.md +8 -0
- package/skills/rudder-docs/references/cli-reference.md +14 -8
- package/ui-dist/assets/LibraryLiveSurface-tCWxJKp5.js +1 -0
- package/ui-dist/assets/{abnfDiagram-VRR7QNED-CG3j5RmW.js → abnfDiagram-VRR7QNED-BcCms-hs.js} +1 -1
- package/ui-dist/assets/{addon-fit-D07m_e8_.js → addon-fit-CH3xNHN4.js} +1 -1
- package/ui-dist/assets/{arc-B2RI9_Dw.js → arc-h5W-EkRK.js} +1 -1
- package/ui-dist/assets/{architectureDiagram-ZJ3FMSHR-C5v1tMZi.js → architectureDiagram-ZJ3FMSHR-Bdehm1PB.js} +1 -1
- package/ui-dist/assets/{blockDiagram-677ZJIJ3-CgcSNhl8.js → blockDiagram-677ZJIJ3-BJ3W91Su.js} +1 -1
- package/ui-dist/assets/{c4Diagram-LMCZKHZV-B7qmWb0f.js → c4Diagram-LMCZKHZV-Bnft_fRy.js} +1 -1
- package/ui-dist/assets/channel-G6qIOCiV.js +1 -0
- package/ui-dist/assets/{chunk-2Q5K7J3B-cNlq0MJR.js → chunk-2Q5K7J3B-w1SF0tSk.js} +1 -1
- package/ui-dist/assets/{chunk-32BRIVSS-rcxFQzYk.js → chunk-32BRIVSS-C1UzXTFZ.js} +1 -1
- package/ui-dist/assets/{chunk-5VM5RSS4-9PSO_t10.js → chunk-5VM5RSS4-COVI3rNd.js} +1 -1
- package/ui-dist/assets/{chunk-EX3LRPZG-BlOFcT4O.js → chunk-EX3LRPZG-DxQOLy7z.js} +1 -1
- package/ui-dist/assets/{chunk-JWPE2WC7-B2Jgd3wO.js → chunk-JWPE2WC7-KTwmElcL.js} +1 -1
- package/ui-dist/assets/{chunk-MOJQB5TN-CaAqG9fp.js → chunk-MOJQB5TN-BynL4lzA.js} +1 -1
- package/ui-dist/assets/{chunk-RYQCIY6F-BDI7azm6.js → chunk-RYQCIY6F-CJksBfuJ.js} +1 -1
- package/ui-dist/assets/{chunk-V7JOEXUC-B-P0KC6p.js → chunk-V7JOEXUC-C_zED5WJ.js} +1 -1
- package/ui-dist/assets/{chunk-VR4S4FIN-CMfw-kF9.js → chunk-VR4S4FIN-BHDtMeiT.js} +1 -1
- package/ui-dist/assets/{chunk-XXDRQBXY-BBVqU1YP.js → chunk-XXDRQBXY-C0VvJgte.js} +1 -1
- package/ui-dist/assets/classDiagram-OUVF2IWQ-D15_PFCL.js +1 -0
- package/ui-dist/assets/classDiagram-v2-EOCWNBFH-D15_PFCL.js +1 -0
- package/ui-dist/assets/{cose-bilkent-JH36ORCC-B_hARQDI.js → cose-bilkent-JH36ORCC-DsTTzpP7.js} +1 -1
- package/ui-dist/assets/{cynefin-VYW2F7L2-CTcM0j1n.js → cynefin-VYW2F7L2-BfULw90s.js} +1 -1
- package/ui-dist/assets/{cynefinDiagram-TSTJHNR4-CL7MmdPn.js → cynefinDiagram-TSTJHNR4-BukSzKVC.js} +1 -1
- package/ui-dist/assets/{dagre-VKFMJZFB-mhGwmtXN.js → dagre-VKFMJZFB-BbZY_Ipf.js} +1 -1
- package/ui-dist/assets/{diagram-FQU43EPY-BMjw7iEL.js → diagram-FQU43EPY-BTYIYn2p.js} +1 -1
- package/ui-dist/assets/{diagram-G47NLZAW-BsTpJwdG.js → diagram-G47NLZAW-CikY_FKi.js} +1 -1
- package/ui-dist/assets/{diagram-NH7WQ7WH-Ne5TlLrd.js → diagram-NH7WQ7WH-BfZ7AlT8.js} +1 -1
- package/ui-dist/assets/{diagram-OA4YK3LP-YVpFkzL5.js → diagram-OA4YK3LP-f5AikxJj.js} +1 -1
- package/ui-dist/assets/{diagram-WEI45ONY-B5uEnE3n.js → diagram-WEI45ONY-BCbG5yas.js} +1 -1
- package/ui-dist/assets/{ebnfDiagram-CCIWWBDH-i74y0Dqq.js → ebnfDiagram-CCIWWBDH-DT-3mJLY.js} +1 -1
- package/ui-dist/assets/{erDiagram-Q63AITRT-46MUSamZ.js → erDiagram-Q63AITRT-BsfOhDfe.js} +1 -1
- package/ui-dist/assets/{flowDiagram-23GEKE2U-C9jQx1Z9.js → flowDiagram-23GEKE2U-BfaeQCsg.js} +1 -1
- package/ui-dist/assets/{ganttDiagram-NO4QXBWP-BHoVYgnd.js → ganttDiagram-NO4QXBWP-CgPQruVz.js} +1 -1
- package/ui-dist/assets/{gitGraphDiagram-IHSO6WYX-BxCaqc4K.js → gitGraphDiagram-IHSO6WYX-CNrBFzjY.js} +1 -1
- package/ui-dist/assets/{graph-7yEA7MiX.js → graph-QqDTzUUJ.js} +1 -1
- package/ui-dist/assets/{index-55mSol35.js → index-2ZQZC89T.js} +1 -1
- package/ui-dist/assets/{index-Y9EFmtGV.js → index-2cYcOpZB.js} +1 -1
- package/ui-dist/assets/{index-Bk4h2xgb.js → index-BAt16m_U.js} +1 -1
- package/ui-dist/assets/{index-SnNVv85r.js → index-BY8xCKIE.js} +1 -1
- package/ui-dist/assets/{index-Bbr_dltJ.js → index-Befy20DN.js} +1 -1
- package/ui-dist/assets/{index-2l0f_0un.js → index-BfAP3xNl.js} +1 -1
- package/ui-dist/assets/{index-Cr_0vHJF.js → index-BogOyxlk.js} +1 -1
- package/ui-dist/assets/{index-BM2yCFug.js → index-BuIyK71w.js} +562 -557
- package/ui-dist/assets/{index-8SjcJx20.js → index-CQ92CxVC.js} +1 -1
- package/ui-dist/assets/{index-BMbspMfV.js → index-CQFwlD-o.js} +1 -1
- package/ui-dist/assets/{index-DEDA9JuC.js → index-Cu4qo_D7.js} +1 -1
- package/ui-dist/assets/index-DRuC5g8V.css +32 -0
- package/ui-dist/assets/{index-BYHrPlW0.js → index-DZ4gAeDM.js} +1 -1
- package/ui-dist/assets/{index-zsia7wHf.js → index-Dc_DUpPj.js} +1 -1
- package/ui-dist/assets/{index-CTe7L-bN.js → index-Dqv46mWS.js} +1 -1
- package/ui-dist/assets/{index-sorUqxO4.js → index-sFJMMyA3.js} +1 -1
- package/ui-dist/assets/{infoDiagram-FWYZ7A6U-tKN_HUk-.js → infoDiagram-FWYZ7A6U-BJHuaNA9.js} +1 -1
- package/ui-dist/assets/{ishikawaDiagram-FXEZZL3T-z7MJkWMv.js → ishikawaDiagram-FXEZZL3T-CmsA1Knp.js} +1 -1
- package/ui-dist/assets/{journeyDiagram-5HDEW3XC-CY9IRx-1.js → journeyDiagram-5HDEW3XC-iV_Nt9d4.js} +1 -1
- package/ui-dist/assets/{kanban-definition-HUTT4EX6-R6xzFCHM.js → kanban-definition-HUTT4EX6-D45s70Ny.js} +1 -1
- package/ui-dist/assets/{layout-BQx6ln2a.js → layout-DDC-iOzY.js} +1 -1
- package/ui-dist/assets/{linear-CH-dQ7Bg.js → linear-DCTJ7Pq3.js} +1 -1
- package/ui-dist/assets/{map-DmEHxVn2.js → map-RGy5k616.js} +1 -1
- package/ui-dist/assets/{mermaid.core-8TMqfMCO.js → mermaid.core-6MH04cvi.js} +4 -4
- package/ui-dist/assets/{mindmap-definition-LN4V7U3C-ClYlc1ss.js → mindmap-definition-LN4V7U3C-CA2LFmda.js} +1 -1
- package/ui-dist/assets/{pegDiagram-2B236MQR-DuQPcIJk.js → pegDiagram-2B236MQR-DDsUr2du.js} +1 -1
- package/ui-dist/assets/{pieDiagram-ENE6RG2P-Bc1fELpd.js → pieDiagram-ENE6RG2P-D7jEL8xK.js} +1 -1
- package/ui-dist/assets/{quadrantDiagram-ABIIQ3AL-DS9-N5ZO.js → quadrantDiagram-ABIIQ3AL-BsJxgVLb.js} +1 -1
- package/ui-dist/assets/{railroadDiagram-RFXS5EU6-BBAeUuch.js → railroadDiagram-RFXS5EU6-CBI457f6.js} +1 -1
- package/ui-dist/assets/{requirementDiagram-TGXJPOKE-BmDkrDi3.js → requirementDiagram-TGXJPOKE-_GAc0NOO.js} +1 -1
- package/ui-dist/assets/{sankeyDiagram-HTMAVEWB-APPAQqTz.js → sankeyDiagram-HTMAVEWB-DNIaj5hu.js} +1 -1
- package/ui-dist/assets/{sequenceDiagram-DBY2YBRQ-B9G01Gl-.js → sequenceDiagram-DBY2YBRQ-BHDZs2dc.js} +1 -1
- package/ui-dist/assets/{sizeCapture-X5ZJPWSS-BYjnDqoI.js → sizeCapture-X5ZJPWSS-DwKT6aTP.js} +1 -1
- package/ui-dist/assets/{stateDiagram-2N3HPSRC-BQkWPBAj.js → stateDiagram-2N3HPSRC-D2hDsltG.js} +1 -1
- package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-CMTeJdkk.js +1 -0
- package/ui-dist/assets/{swimlanes-5IMT3BWC-Cacv4UUq.js → swimlanes-5IMT3BWC-BV8xA0iq.js} +2 -2
- package/ui-dist/assets/swimlanesDiagram-G3AALYLV-ChF8QLeM.js +8 -0
- package/ui-dist/assets/{timeline-definition-FHXFAJF6-COt3U2Pi.js → timeline-definition-FHXFAJF6-BPJMubhV.js} +1 -1
- package/ui-dist/assets/{vennDiagram-L72KCM5P-C7eLlxvT.js → vennDiagram-L72KCM5P-CY76J0Px.js} +1 -1
- package/ui-dist/assets/{wardleyDiagram-EHGQE667-Bufv0x60.js → wardleyDiagram-EHGQE667-pmNWLdE_.js} +1 -1
- package/ui-dist/assets/{xterm-BuWLsUNc.js → xterm-UByodpzD.js} +1 -1
- package/ui-dist/assets/{xychartDiagram-FW5EYKEG-9RQAf_Zw.js → xychartDiagram-FW5EYKEG-BWZC7gWV.js} +1 -1
- package/ui-dist/index.html +2 -2
- package/ui-dist/assets/LibraryLiveSurface-YMhPWwag.js +0 -1
- package/ui-dist/assets/channel-Cbzk2971.js +0 -1
- package/ui-dist/assets/classDiagram-OUVF2IWQ-hBDf22nr.js +0 -1
- package/ui-dist/assets/classDiagram-v2-EOCWNBFH-hBDf22nr.js +0 -1
- package/ui-dist/assets/index-B_CDj4oF.css +0 -32
- package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-BucPPlgK.js +0 -1
- package/ui-dist/assets/swimlanesDiagram-G3AALYLV-DPpGouCd.js +0 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-fallback.js","sourceRoot":"","sources":["../../../src/services/runtime-kernel/model-fallback.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAE1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,GAC9B,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"model-fallback.js","sourceRoot":"","sources":["../../../src/services/runtime-kernel/model-fallback.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type RudderNativeDiagnostic } from "@rudderhq/shared";
|
|
1
2
|
/**
|
|
2
3
|
* Node comparator for the v2 backup contract. The archive reader deliberately
|
|
3
4
|
* supports only the uncompressed ZIP dialect emitted by this module. That
|
|
@@ -52,6 +53,7 @@ export type WorkspaceBackupV2NativeDiagnostic = {
|
|
|
52
53
|
code: string;
|
|
53
54
|
detail: string;
|
|
54
55
|
fallbackAllowed: boolean;
|
|
56
|
+
native: RudderNativeDiagnostic;
|
|
55
57
|
};
|
|
56
58
|
type PublicationOps = {
|
|
57
59
|
link(source: string, destination: string): Promise<void>;
|
|
@@ -84,6 +86,14 @@ export type WorkspaceBackupV2ArchiveIndex = {
|
|
|
84
86
|
manifestEntry: WorkspaceBackupV2ArchiveEntry;
|
|
85
87
|
entries: Map<string, WorkspaceBackupV2ArchiveEntry>;
|
|
86
88
|
};
|
|
89
|
+
export type WorkspaceBackupV2ReadPayload = {
|
|
90
|
+
manifest: WorkspaceBackupV2Manifest;
|
|
91
|
+
native: boolean;
|
|
92
|
+
archiveSize: number;
|
|
93
|
+
index?: WorkspaceBackupV2ArchiveIndex;
|
|
94
|
+
rootPath: string;
|
|
95
|
+
fallbackWarning?: string;
|
|
96
|
+
};
|
|
87
97
|
export declare function assertSafeWorkspaceBackupV2Path(value: string): string;
|
|
88
98
|
export declare function walkWorkspaceBackupV2(rootPath: string): Promise<WorkspaceBackupV2Walk>;
|
|
89
99
|
export declare function createWorkspaceBackupV2(input: {
|
|
@@ -108,12 +118,22 @@ export declare function createWorkspaceBackupV2File(input: {
|
|
|
108
118
|
publicationOps?: PublicationOps;
|
|
109
119
|
}): Promise<WorkspaceBackupV2FileArtifact>;
|
|
110
120
|
export declare function resolveNativeArchiveBinary(): string;
|
|
121
|
+
export declare function inspectWorkspaceBackupV2FileNative(filePath: string): Promise<{
|
|
122
|
+
manifest: WorkspaceBackupV2Manifest;
|
|
123
|
+
archiveSize: number;
|
|
124
|
+
}>;
|
|
125
|
+
export declare function readWorkspaceBackupV2FileNative(filePath: string, relativePath: string, rootPath?: string): Promise<Buffer>;
|
|
126
|
+
export declare function inspectWorkspaceBackupV2ForService(filePath: string, orgId: string, expectedArchiveSha256?: string | null): Promise<WorkspaceBackupV2ReadPayload>;
|
|
127
|
+
export declare function isWorkspaceBackupV2FeatureEnabled(): boolean;
|
|
128
|
+
export declare function isWorkspaceBackupV2NativeEnabled(): boolean;
|
|
129
|
+
export declare function readWorkspaceBackupV2EntryForService(filePath: string, rootPath: string, relativePath: string): Promise<Buffer>;
|
|
111
130
|
export declare function createWorkspaceBackupV2Native(input: {
|
|
112
131
|
rootPath: string;
|
|
113
132
|
orgId: string;
|
|
114
133
|
instanceId: string;
|
|
115
134
|
artifactPath: string;
|
|
116
135
|
createdAt?: Date;
|
|
136
|
+
onNativeStart?: () => void | Promise<void>;
|
|
117
137
|
beforePublish?: () => Promise<void>;
|
|
118
138
|
publicationOps?: PublicationOps;
|
|
119
139
|
}): Promise<WorkspaceBackupV2NativeArtifact>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-backup-v2.d.ts","sourceRoot":"","sources":["../../src/services/workspace-backup-v2.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workspace-backup-v2.d.ts","sourceRoot":"","sources":["../../src/services/workspace-backup-v2.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { resolveNativeCommand } from "@rudderhq/agent-runtime-utils";
|
|
2
|
+
import { createRudderNativeDiagnostic, resolveRudderNativeCapability, resolveRudderNativeTarget } from "@rudderhq/shared";
|
|
1
3
|
import { execFile } from "node:child_process";
|
|
2
4
|
import crypto from "node:crypto";
|
|
3
5
|
import { existsSync } from "node:fs";
|
|
@@ -308,7 +310,8 @@ export async function createWorkspaceBackupV2File(input) {
|
|
|
308
310
|
await write(end);
|
|
309
311
|
if (offset + directory.length + end.length > WORKSPACE_BACKUP_V2_MAX_ARCHIVE_BYTES)
|
|
310
312
|
throw new Error("v2 backup archive exceeds the bounded archive limit");
|
|
311
|
-
|
|
313
|
+
if (process.platform !== "win32")
|
|
314
|
+
await handle.sync();
|
|
312
315
|
const archiveSha256 = archiveHash.digest("hex");
|
|
313
316
|
await handle.close();
|
|
314
317
|
await input.beforePublish?.();
|
|
@@ -325,7 +328,8 @@ export async function createWorkspaceBackupV2File(input) {
|
|
|
325
328
|
async function syncParent(filePath) {
|
|
326
329
|
const parent = await fs.open(path.dirname(filePath), "r");
|
|
327
330
|
try {
|
|
328
|
-
|
|
331
|
+
if (process.platform !== "win32")
|
|
332
|
+
await parent.sync();
|
|
329
333
|
}
|
|
330
334
|
finally {
|
|
331
335
|
await parent.close();
|
|
@@ -387,16 +391,18 @@ function nativeDiagnostic(category, code, detail, fallbackAllowed = category !==
|
|
|
387
391
|
code: boundedDiagnosticDetail(code),
|
|
388
392
|
detail: boundedDiagnosticDetail(detail),
|
|
389
393
|
fallbackAllowed,
|
|
394
|
+
native: createRudderNativeDiagnostic({
|
|
395
|
+
capability: "workspace-backup",
|
|
396
|
+
target: resolveRudderNativeTarget(),
|
|
397
|
+
binaryVersion: "unavailable",
|
|
398
|
+
protocolVersion: String(NATIVE_PROTOCOL_VERSION),
|
|
399
|
+
effectiveEngine: "rust",
|
|
400
|
+
fallbackCode: boundedDiagnosticDetail(code),
|
|
401
|
+
}),
|
|
390
402
|
});
|
|
391
403
|
}
|
|
392
404
|
function nativeTarget() {
|
|
393
|
-
|
|
394
|
-
return process.arch === "arm64" ? "aarch64-apple-darwin" : process.arch === "x64" ? "x86_64-apple-darwin" : null;
|
|
395
|
-
if (process.platform === "linux")
|
|
396
|
-
return process.arch === "arm64" ? "aarch64-unknown-linux-gnu" : process.arch === "x64" ? "x86_64-unknown-linux-gnu" : null;
|
|
397
|
-
if (process.platform === "win32")
|
|
398
|
-
return process.arch === "arm64" ? "aarch64-pc-windows-msvc" : process.arch === "x64" ? "x86_64-pc-windows-msvc" : null;
|
|
399
|
-
return null;
|
|
405
|
+
return resolveRudderNativeTarget();
|
|
400
406
|
}
|
|
401
407
|
export function resolveNativeArchiveBinary() {
|
|
402
408
|
const configured = process.env.RUDDER_NATIVE_ARCHIVE_PATH?.trim();
|
|
@@ -436,7 +442,8 @@ async function sha256FileBounded(filePath) {
|
|
|
436
442
|
async function runNativeArchive(binary, args, timeoutMs = Number(process.env.RUDDER_NATIVE_ARCHIVE_TIMEOUT_MS) || 30_000) {
|
|
437
443
|
let result;
|
|
438
444
|
try {
|
|
439
|
-
|
|
445
|
+
const command = resolveNativeCommand(binary, args);
|
|
446
|
+
result = await execFileAsync(command.command, command.args, {
|
|
440
447
|
encoding: "utf8",
|
|
441
448
|
timeout: timeoutMs,
|
|
442
449
|
maxBuffer: NATIVE_OUTPUT_LIMIT_BYTES,
|
|
@@ -458,8 +465,8 @@ async function runNativeArchive(binary, args, timeoutMs = Number(process.env.RUD
|
|
|
458
465
|
try {
|
|
459
466
|
const parsed = JSON.parse(lines[0]);
|
|
460
467
|
if (parsed && typeof parsed === "object" && typeof parsed.errorCode === "string") {
|
|
461
|
-
const
|
|
462
|
-
throw nativeDiagnostic(
|
|
468
|
+
const accepted = parsed.accepted === true;
|
|
469
|
+
throw nativeDiagnostic("process", parsed.errorCode, stderr || `exit ${String(maybe.code ?? "unknown")}`, !accepted);
|
|
463
470
|
}
|
|
464
471
|
}
|
|
465
472
|
catch (parsedError) {
|
|
@@ -485,6 +492,130 @@ async function runNativeArchive(binary, args, timeoutMs = Number(process.env.RUD
|
|
|
485
492
|
throw nativeDiagnostic("protocol", "malformed_envelope", typeof parsed);
|
|
486
493
|
return parsed;
|
|
487
494
|
}
|
|
495
|
+
async function ensureNativeArchiveCapability(capability) {
|
|
496
|
+
const response = await runNativeArchive(resolveNativeArchiveBinary(), ["archive", "capabilities"]);
|
|
497
|
+
if (response.ok !== true || response.protocolVersion !== NATIVE_PROTOCOL_VERSION || !Array.isArray(response.capabilities) || !response.capabilities.includes(capability)) {
|
|
498
|
+
throw nativeDiagnostic("capability", `${capability.replaceAll(".", "_")}_unavailable`, JSON.stringify(response.capabilities));
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
function parseNativeManifest(response) {
|
|
502
|
+
if (response.ok !== true || response.operation !== "inspectManifest" || response.protocolVersion !== NATIVE_PROTOCOL_VERSION || typeof response.manifestBase64 !== "string") {
|
|
503
|
+
throw nativeDiagnostic("protocol", "inspect_manifest_envelope_mismatch", JSON.stringify({ operation: response.operation, protocolVersion: response.protocolVersion }));
|
|
504
|
+
}
|
|
505
|
+
let bytes;
|
|
506
|
+
try {
|
|
507
|
+
bytes = Buffer.from(response.manifestBase64, "base64");
|
|
508
|
+
}
|
|
509
|
+
catch (error) {
|
|
510
|
+
throw nativeDiagnostic("integrity", "manifest_base64_invalid", error);
|
|
511
|
+
}
|
|
512
|
+
const manifest = parseManifest(bytes);
|
|
513
|
+
if (typeof response.sha256 === "string" && response.sha256 !== sha256(bytes)) {
|
|
514
|
+
throw nativeDiagnostic("integrity", "manifest_hash_mismatch", "native manifest hash differs from payload");
|
|
515
|
+
}
|
|
516
|
+
return manifest;
|
|
517
|
+
}
|
|
518
|
+
export async function inspectWorkspaceBackupV2FileNative(filePath) {
|
|
519
|
+
await ensureNativeArchiveCapability("archive.inspectManifest");
|
|
520
|
+
const response = await runNativeArchive(resolveNativeArchiveBinary(), [
|
|
521
|
+
"archive", "inspect-manifest", path.resolve(filePath),
|
|
522
|
+
String(WORKSPACE_BACKUP_V2_MAX_ARCHIVE_BYTES),
|
|
523
|
+
String(WORKSPACE_BACKUP_V2_MAX_FILE_BYTES),
|
|
524
|
+
]);
|
|
525
|
+
const manifest = parseNativeManifest(response);
|
|
526
|
+
// Native inspection reads only the manifest entry. Independently validate
|
|
527
|
+
// the central directory before accepting it so unlisted entries cannot pass
|
|
528
|
+
// through the native path.
|
|
529
|
+
let nodeInspection;
|
|
530
|
+
try {
|
|
531
|
+
nodeInspection = await inspectWorkspaceBackupV2File(filePath);
|
|
532
|
+
}
|
|
533
|
+
catch (error) {
|
|
534
|
+
throw nativeDiagnostic("integrity", "archive_manifest_entry_mismatch", error instanceof Error ? error.message : error);
|
|
535
|
+
}
|
|
536
|
+
if (JSON.stringify(nodeInspection.manifest) !== JSON.stringify(manifest)) {
|
|
537
|
+
throw nativeDiagnostic("integrity", "native_manifest_archive_mismatch", "native and archive manifests differ");
|
|
538
|
+
}
|
|
539
|
+
const archiveStat = await fs.stat(filePath);
|
|
540
|
+
if (!archiveStat.isFile() || !Number.isSafeInteger(response.byteSize) || Number(response.byteSize) <= 0) {
|
|
541
|
+
throw nativeDiagnostic("integrity", "inspect_manifest_size_invalid", response.byteSize);
|
|
542
|
+
}
|
|
543
|
+
return { manifest, archiveSize: archiveStat.size };
|
|
544
|
+
}
|
|
545
|
+
export async function readWorkspaceBackupV2FileNative(filePath, relativePath, rootPath) {
|
|
546
|
+
const normalized = assertSafeWorkspaceBackupV2Path(relativePath);
|
|
547
|
+
const archiveEntry = rootPath ? `${rootSegment(rootPath)}/${normalized}` : normalized;
|
|
548
|
+
await ensureNativeArchiveCapability("archive.extractFile");
|
|
549
|
+
const staging = await fs.mkdtemp(path.join(path.dirname(path.resolve(filePath)), ".rudder-native-extract-"));
|
|
550
|
+
const output = path.join(staging, "entry");
|
|
551
|
+
try {
|
|
552
|
+
const response = await runNativeArchive(resolveNativeArchiveBinary(), [
|
|
553
|
+
"archive", "extract-file", path.resolve(filePath), archiveEntry, output,
|
|
554
|
+
String(WORKSPACE_BACKUP_V2_MAX_ARCHIVE_BYTES),
|
|
555
|
+
String(WORKSPACE_BACKUP_V2_MAX_FILE_BYTES),
|
|
556
|
+
]);
|
|
557
|
+
if (response.ok !== true || response.operation !== "extractFile" || response.protocolVersion !== NATIVE_PROTOCOL_VERSION || response.accepted !== true) {
|
|
558
|
+
throw nativeDiagnostic("protocol", "extract_file_envelope_mismatch", JSON.stringify({ operation: response.operation, protocolVersion: response.protocolVersion, accepted: response.accepted }), response.accepted !== true);
|
|
559
|
+
}
|
|
560
|
+
const data = await fs.readFile(output);
|
|
561
|
+
if (!Number.isSafeInteger(response.byteSize) || Number(response.byteSize) !== data.byteLength || typeof response.sha256 !== "string" || response.sha256 !== sha256(data)) {
|
|
562
|
+
throw nativeDiagnostic("integrity", "extracted_file_mismatch", normalized, false);
|
|
563
|
+
}
|
|
564
|
+
return data;
|
|
565
|
+
}
|
|
566
|
+
finally {
|
|
567
|
+
await fs.rm(staging, { recursive: true, force: true });
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
export async function inspectWorkspaceBackupV2ForService(filePath, orgId, expectedArchiveSha256) {
|
|
571
|
+
const policy = resolveRudderNativeCapability({ capability: "workspace-backup", env: process.env, legacyToggleEnvs: ["RUDDER_WORKSPACE_BACKUP_V2_NATIVE"] });
|
|
572
|
+
let fallbackWarning;
|
|
573
|
+
if (policy.enabled) {
|
|
574
|
+
try {
|
|
575
|
+
const inspected = await inspectWorkspaceBackupV2FileNative(filePath);
|
|
576
|
+
if (expectedArchiveSha256 && await sha256FileBounded(filePath) !== expectedArchiveSha256)
|
|
577
|
+
throw new Error("Workspace backup artifact checksum does not match the recorded backup metadata");
|
|
578
|
+
if (inspected.manifest.identity.orgId !== orgId)
|
|
579
|
+
throw new Error("organization identity mismatch");
|
|
580
|
+
return { ...inspected, native: true, rootPath: inspected.manifest.identity.rootPath };
|
|
581
|
+
}
|
|
582
|
+
catch (error) {
|
|
583
|
+
const diagnostic = workspaceBackupV2NativeDiagnostic(error);
|
|
584
|
+
if (!policy.fallbackAllowed || !diagnostic.fallbackAllowed)
|
|
585
|
+
throw error;
|
|
586
|
+
fallbackWarning = formatWorkspaceBackupV2NativeFallback(error);
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
const index = await inspectWorkspaceBackupV2File(filePath);
|
|
590
|
+
if (expectedArchiveSha256 && await sha256FileBounded(filePath) !== expectedArchiveSha256)
|
|
591
|
+
throw new Error("Workspace backup artifact checksum does not match the recorded backup metadata");
|
|
592
|
+
if (index.manifest.identity.orgId !== orgId)
|
|
593
|
+
throw new Error("organization identity mismatch");
|
|
594
|
+
return { manifest: index.manifest, native: false, archiveSize: index.archiveSize, index, rootPath: index.manifest.identity.rootPath, fallbackWarning };
|
|
595
|
+
}
|
|
596
|
+
export function isWorkspaceBackupV2FeatureEnabled() {
|
|
597
|
+
const explicit = process.env.RUDDER_WORKSPACE_BACKUP_V2_ENABLED?.trim().toLowerCase();
|
|
598
|
+
return !["0", "false", "no", "off"].includes(explicit ?? "");
|
|
599
|
+
}
|
|
600
|
+
export function isWorkspaceBackupV2NativeEnabled() {
|
|
601
|
+
return isWorkspaceBackupV2FeatureEnabled()
|
|
602
|
+
&& resolveRudderNativeCapability({ capability: "workspace-backup", env: process.env, legacyToggleEnvs: ["RUDDER_WORKSPACE_BACKUP_V2_NATIVE"] }).enabled;
|
|
603
|
+
}
|
|
604
|
+
export async function readWorkspaceBackupV2EntryForService(filePath, rootPath, relativePath) {
|
|
605
|
+
const policy = resolveRudderNativeCapability({ capability: "workspace-backup", env: process.env, legacyToggleEnvs: ["RUDDER_WORKSPACE_BACKUP_V2_NATIVE"] });
|
|
606
|
+
if (policy.enabled) {
|
|
607
|
+
try {
|
|
608
|
+
return await readWorkspaceBackupV2FileNative(filePath, relativePath, rootPath);
|
|
609
|
+
}
|
|
610
|
+
catch (error) {
|
|
611
|
+
const diagnostic = workspaceBackupV2NativeDiagnostic(error);
|
|
612
|
+
if (!policy.fallbackAllowed || !diagnostic.fallbackAllowed)
|
|
613
|
+
throw error;
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
const index = await inspectWorkspaceBackupV2File(filePath);
|
|
617
|
+
return readWorkspaceBackupV2File(filePath, index, relativePath);
|
|
618
|
+
}
|
|
488
619
|
function requireNativeString(value, label) {
|
|
489
620
|
if (typeof value !== "string" || !/^[a-f0-9]{64}$/.test(value))
|
|
490
621
|
throw nativeDiagnostic("integrity", `invalid_${label.replaceAll(" ", "_")}`, value);
|
|
@@ -501,11 +632,20 @@ export async function createWorkspaceBackupV2Native(input) {
|
|
|
501
632
|
treeSha256: walked.treeSha256,
|
|
502
633
|
warnings: walked.warnings,
|
|
503
634
|
};
|
|
635
|
+
const binary = resolveNativeArchiveBinary();
|
|
636
|
+
const capabilities = await runNativeArchive(binary, ["archive", "capabilities"]);
|
|
637
|
+
if (capabilities.ok !== true || !Array.isArray(capabilities.capabilities) || !capabilities.capabilities.includes("archive.create")) {
|
|
638
|
+
throw nativeDiagnostic("capability", "create_unavailable", JSON.stringify(capabilities.capabilities));
|
|
639
|
+
}
|
|
640
|
+
if (capabilities.protocolVersion !== NATIVE_PROTOCOL_VERSION) {
|
|
641
|
+
throw nativeDiagnostic("protocol", "version_mismatch", `${String(capabilities.protocolVersion)} != ${NATIVE_PROTOCOL_VERSION}`);
|
|
642
|
+
}
|
|
504
643
|
const staging = await fs.mkdtemp(path.join(path.dirname(input.artifactPath), ".rudder-native-archive-"));
|
|
505
644
|
const manifestPath = path.join(staging, "manifest-v2.json");
|
|
506
645
|
const planPath = path.join(staging, "create-plan.json");
|
|
507
646
|
const nativeOutput = path.join(staging, "archive.zip");
|
|
508
647
|
try {
|
|
648
|
+
await input.onNativeStart?.();
|
|
509
649
|
await fs.writeFile(manifestPath, JSON.stringify(manifest), { mode: 0o600 });
|
|
510
650
|
const entries = [
|
|
511
651
|
{ kind: "directory", archivePath: `${rootSegment(input.rootPath)}/` },
|
|
@@ -519,14 +659,6 @@ export async function createWorkspaceBackupV2Native(input) {
|
|
|
519
659
|
treeSha256: manifest.treeSha256,
|
|
520
660
|
entries,
|
|
521
661
|
}), { mode: 0o600 });
|
|
522
|
-
const binary = resolveNativeArchiveBinary();
|
|
523
|
-
const capabilities = await runNativeArchive(binary, ["archive", "capabilities"]);
|
|
524
|
-
if (capabilities.ok !== true || !Array.isArray(capabilities.capabilities) || !capabilities.capabilities.includes("archive.create")) {
|
|
525
|
-
throw nativeDiagnostic("capability", "create_unavailable", JSON.stringify(capabilities.capabilities));
|
|
526
|
-
}
|
|
527
|
-
if (capabilities.protocolVersion !== NATIVE_PROTOCOL_VERSION) {
|
|
528
|
-
throw nativeDiagnostic("protocol", "version_mismatch", `${String(capabilities.protocolVersion)} != ${NATIVE_PROTOCOL_VERSION}`);
|
|
529
|
-
}
|
|
530
662
|
const response = await runNativeArchive(binary, [
|
|
531
663
|
"archive", "create", planPath, nativeOutput,
|
|
532
664
|
String(WORKSPACE_BACKUP_V2_MAX_ARCHIVE_BYTES),
|
|
@@ -556,9 +688,9 @@ export async function createWorkspaceBackupV2Native(input) {
|
|
|
556
688
|
}
|
|
557
689
|
await input.beforePublish?.();
|
|
558
690
|
await publishNoReplace(nativeOutput, input.artifactPath, input.publicationOps);
|
|
559
|
-
let
|
|
691
|
+
let inspected;
|
|
560
692
|
try {
|
|
561
|
-
|
|
693
|
+
inspected = await inspectWorkspaceBackupV2FileNative(input.artifactPath);
|
|
562
694
|
}
|
|
563
695
|
catch (error) {
|
|
564
696
|
try {
|
|
@@ -571,7 +703,7 @@ export async function createWorkspaceBackupV2Native(input) {
|
|
|
571
703
|
}
|
|
572
704
|
throw nativeDiagnostic("integrity", "published_archive_invalid", error instanceof Error ? error.message : error);
|
|
573
705
|
}
|
|
574
|
-
if (
|
|
706
|
+
if (inspected.manifest.identity.orgId !== input.orgId || inspected.manifest.identity.instanceId !== input.instanceId || inspected.manifest.treeSha256 !== manifest.treeSha256) {
|
|
575
707
|
try {
|
|
576
708
|
await removePublishedForFallback(input.artifactPath, input.publicationOps);
|
|
577
709
|
}
|