[{"data":1,"prerenderedAt":134},["ShallowReactive",2],{"project-10858062":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":32,"aspects":33,"strip":35,"post_text":29,"what":37,"said":47,"maker_in_thread":69,"shape":74,"grid":78,"attempts":94,"same_week":95,"maker_shows":126,"maker_hidden":127,"reader_version":128,"card":129},"10858062","Nigit","Expose Shell Scripts as HTTP API","title","Show HN: Nigit – Expose Shell Scripts as HTTP API","https:\u002F\u002Fgithub.com\u002Flukasmartinelli\u002Fnigit","github.com","morgenkaffee",1452176904,2016,19,6,1233,2264,55,"shown","dev_tools","shell script api wrapper","cli",[24,25,26,27],"shell scripts","http api","rest api","command line","quiet",null,{"positive":31,"neutral":31,"mixed":31,"critical":32},0,2,{"privacy":34},{"positive":31,"critical":32},[36,31,36,31,31,31],1,{"problem":38,"audience":29,"pricing":29,"motivation":29,"time_to_build":29,"stack":44,"openness":45,"stage":46,"team_size":46},{"value":39,"source":40,"evidence":41},"Turning existing shell scripts into HTTP APIs","inferred",[42],{"id":43},"post",[],"open_source","unknown",{"praise":48,"objections":57,"requests":66,"questions":67,"alternatives":68},[49],{"value":50,"source":51,"evidence":52},"Handy for wrapping old programs","commenter",[53],{"id":54,"by":55,"text":56},"10858148","wink","While it's nice and handy I'd be cautious to let that run anywhere else than localhost. To sanitize\u002Fwhitelist this kind of input as in json -> go -> shell.. I'm giving up, I'm…",[58],{"value":59,"source":51,"evidence":60},"Unsafe to expose beyond localhost because of input sanitization risk",[61,62],{"id":54,"by":55,"text":56},{"id":63,"by":64,"text":65},"10864019","throwaway7767","A coworker once set up a bash-based shell wrapper to provide customers with restricted access to the monitoring system. The monitoring system was written as CGI programs in C,…",[],[],[],{"comments":36,"answered":31,"key":70},[71],{"id":72,"text":73},"10858218","Completely agree! One approach is to run it in a Docker container and access it from your other micro services and never expose it to the public. This is still handy because you…",{"commenters":15,"max_depth":75,"maker_replies":36,"first_comment_mins":76,"lifespan_hours":77},3,18,20,[79,81,83,84,88,91],[54,31,36,80,55,31],"project\u002Fcritical\u002Fprivacy",[72,31,31,82,11,36],"maker\u002Fneutral\u002Fprivacy",[63,31,36,80,64,31],[85,36,31,86,87,31],"10858219","other\u002Fneutral\u002Fnone","dozzie",[89,36,31,86,90,31],"10859400","wanda",[92,36,31,86,93,31],"10859942","leesalminen",[],[96,101,106,111,116,121],{"id":97,"name":98,"points":99,"category":100},"10872143","gradient.quasi.ink",448,"creative",{"id":102,"name":103,"points":104,"category":105},"10896901","awk-raycaster",350,"games",{"id":107,"name":108,"points":109,"category":110},"10890531","2Sli.de",244,"productivity",{"id":112,"name":113,"points":114,"category":115},"10869046","Charme",167,"consumer_social",{"id":117,"name":118,"points":119,"category":120},"10897121","Patchwork",122,"security_privacy",{"id":122,"name":123,"points":124,"category":125},"10887071","Libconcurrent",91,"languages",7,false,"v2",{"id":130,"name":5,"line":6,"ai":127,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":131,"maker":11,"domain":10,"tier":19,"attempts":31,"strip":132,"url":9,"mix":133,"praise":50,"objection":59,"sub":21},10858062,[24,25,26,27],"101000",[31,31,31,32],1793990935779]