Heilt einig i det om slow restarts og Clojure. REPL er verkeleg godt å ha, for både utforskning, testing og debugging.
Korleis løyser folk her det om tenesta kun er tilgjengeleg over HTTP(S)? Eg har laga REPL-over-http for yada/aleph dersom folk er interessert. Enkel løysing utan websockets eller anna saker. Sikkert treig, men den gjer (for meg) jobben iallefall. Har aldri fått skikkeleg til/passer dårleg med Cursive(?) nrepl/drawbridge.
Litt usikker på hva du egentlig spør om, men jeg har mekka meg noen små dustefunksjoner i user
ns’et vårt som gjør at jeg kan kjøre http-requester mot den lokalt kjørende applikasjonen i replet:
user> (wget (pp-ctx "<mailto:admin@ardoq.com|admin@ardoq.com>") (str "/api/component" (core/gen-id!)))
Execution error (ExceptionInfo) at slingshot.support/stack-trace (support.clj:201).
clj-http: status 404
user>
tilsvarende for put, post, patch og delete.
ooh, må prøve å logge inn med <mailto:admin@ardoq.com|admin@ardoq.com> og pw richhickey1234!
Gjerne. Det er mulig folka på HackerOne ikke har prøvd akkurat den kombinasjonen.
Ikkje heilt det eg tenkte på nei.. Kanskje enklare å forklare casen: ein har ikkje ssh-tilgang inn der backenden køyrer. Ei heller andre porter, utanom port 80 (som ligg bak https). Korleis gjer ein nREPL inn på den backenden då? Eg lagde ein lokal TCP proxy som lytter på localhost port xyz og vidaresender det den mottek med bruk av POST på https://some-gateway/some-backend/nrepl med authorization header. I tillegg poller proxyen https://some-gateway/some-backend/nrepl regelmessig og sender tilbake det den får. Lokalt kan eg då nREPLe til localhost xyz og alt verkar som ein vanlig TCP-connection. Her er lokal proxy: https://github.com/ivarref/nrepl-proxy/blob/main/src/ivarref/nrepl_proxy.clj#L148 Og remote backend endpoint handler (for yada): https://github.com/ivarref/nrepl-proxy/blob/main/backend/src/ivarref/nrepl_server_web_handler.clj#L29
Gjev det meining?
Yepp
Mener å huske at denne gjorde noe tilsvarende…
Eller så var greia at nrepl aksess over http var noe man kunne gjøre.
Ser ikkje heilt at den gjer det same.. Men drawbridge gjer ein del av det same: https://github.com/nrepl/drawbridge
Jeg har brukt drawbridge og det funka, til slutt. Du må få riktig kombinasjon av versjoner og konfig :) Så kan du alltid prøve #nrepl...