{ "$type": "com.fedfork.exec.composition", "name": "socialweb.computer CI", "description": "A CI job on a VM rented for it on the socialweb.computer market: the requester rents it (bids judged by tangled-vouch and bid-payload), user-data and iroh-user-data make its cloud-init, cicd-workload runs the job's steps over process-mcp, and the requester releases it.", "parameters": [ { "key": "bidders", "label": "Bidder DIDs", "type": "array", "required": true, "description": "The bidders to ask, by DID." }, { "key": "cpus", "label": "vCPUs", "type": "integer", "minimum": 1, "maximum": 8, "values": { "default": 2 } }, { "key": "mem", "label": "Memory (GiB)", "type": "integer", "minimum": 1, "maximum": 32, "values": { "default": 4 } } ], "instances": [ { "name": "machine", "module": "requester", "pin": "dab378f88fffcb9e5aad849fd0008bb433f54cab59cce0648e64f345804ec0ae", "session": "requester", "input": { "bidders": { "$param": "bidders" }, "kind": "vm", "cpus": { "$param": "cpus" }, "mem": { "$param": "mem" }, "ssh_key": { "$host": "sshPublicKey" }, "shell": true, "iroh": true, "via": "iroh", "release": false, "poll_ms": 5000, "max_polls": 120, "reason": "a knotless run" } }, { "name": "user_data", "module": "user-data", "pin": "c605eb611ae1bcc61e287dd3c71a489b1622e6ff98930b244f40a31a9a73f435" }, { "name": "iroh_user_data", "module": "iroh-user-data", "pin": "5759ca46da97109fcc554bc6febed9c4d0af4f9f3271a6689be08a26309ef2a5" }, { "name": "vouch", "module": "policy-requester-tangled-vouch", "pin": "4ead1fb6855a5f84b6e5e1f61898424c0d25c6915376e7cea3978c6194f5ceb4" }, { "name": "payload", "module": "policy-bid-payload", "pin": "00d51f8bd99705b2cc573733c6fe408ba201192f5e377f272485768cbad58d65" }, { "name": "process", "module": "process-mcp", "pin": "dadc0da54d561aa16835a5657a77e14b440b20aca4f544c74839278245a1ad2c" }, { "name": "workload", "module": "cicd-workload", "pin": "0f0da3f308ca453319483ea25791507d43c7cb2d92b246b887888ed177bed91e" } ], "edges": [ { "from": "machine", "nsid": "com.publicdomainrelay.temp.market.evaluatePolicy", "to": "vouch", "reason": "the requester or its operator vouched for the bidder" }, { "from": "machine", "nsid": "com.publicdomainrelay.temp.market.evaluatePolicy", "to": "payload", "reason": "only free bids" }, { "from": "machine", "nsid": "computer.socialweb.vm.userData", "to": "user_data", "reason": "the VM's cloud-init: the guest agent's shell, iroh in front of sshd" }, { "from": "user_data", "nsid": "computer.socialweb.vm.irohUserData", "to": "iroh_user_data", "reason": "root ssh with the host's key, dumbpipe in front of sshd" }, { "from": "workload", "nsid": "computer.socialweb.cicd.process.start", "to": "process", "reason": "the job's start on the VM" }, { "from": "workload", "nsid": "computer.socialweb.cicd.process.write", "to": "process", "reason": "the job's write on the VM" }, { "from": "workload", "nsid": "computer.socialweb.cicd.process.read", "to": "process", "reason": "the job's read on the VM" } ], "exports": [ { "nsid": "computer.socialweb.vm.prepare", "instance": "machine", "entry": "bind_key" }, { "nsid": "computer.socialweb.vm.provision", "instance": "machine", "entry": "contract" }, { "nsid": "computer.socialweb.vm.release", "instance": "machine", "entry": "release" }, { "nsid": "computer.socialweb.cicd.workload.run", "instance": "workload", "entry": "run" } ], "limits": { "depth": 4, "calls": 100000 } }