simonv3 has quit [Quit: Connection closed for inactivity]
home_ has joined #sandstorm
gopar has joined #sandstorm
jacksingleton has quit [Ping timeout: 240 seconds]
neynah has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
simonv3 has joined #sandstorm
jacksingleton has joined #sandstorm
home_ has quit [Ping timeout: 255 seconds]
<ocdtrekkie> paulproteus: I love your commit messages on your branch, lol.
<ocdtrekkie> "omg listen" and "also sad" :D
jadewang has quit [Remote host closed the connection]
neynah has joined #sandstorm
simonv3 has quit [Quit: Connection closed for inactivity]
isd has joined #sandstorm
jadewang has joined #sandstorm
home_ has joined #sandstorm
jadewang has quit [Remote host closed the connection]
neynah has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
bb010g has joined #sandstorm
mcpherrin has joined #sandstorm
home_ has quit [Quit: Leaving]
jadewang has joined #sandstorm
gopar has quit [Remote host closed the connection]
home has joined #sandstorm
jacksingleton has quit [Ping timeout: 265 seconds]
isd has quit [Quit: Leaving.]
<paulproteus> ocdtrekkie: Glad you like it. (-:
<paulproteus> Naturally this will all be squashed away.
home has quit [Ping timeout: 256 seconds]
mnutt__ has quit [Quit: mnutt__]
jadewang has quit [Remote host closed the connection]
paroneayea has quit [Ping timeout: 255 seconds]
ecloud_wfh is now known as ecloud
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 250 seconds]
warren has quit [Ping timeout: 246 seconds]
warren has joined #sandstorm
ckocagil has joined #sandstorm
<ckocagil> Hello Sandstorm
dlitz has quit [Ping timeout: 252 seconds]
dlitz has joined #sandstorm
mort___ has joined #sandstorm
mort___ has quit [Read error: Connection reset by peer]
mort___1 has joined #sandstorm
mort___ has joined #sandstorm
mort___1 has quit [Ping timeout: 260 seconds]
losvedir has joined #sandstorm
<dwrensha> hello ckocagil
<ckocagil> dwrensha: ah, you're the perfect person for my question! how does git-http-backend work inside sandstorm?
<ckocagil> the docs mention additional steps to access the exposed HTTP API
<dwrensha> there are a few pieces... First, the GitWeb app is running nginx with this config: https://github.com/dwrensha/gitweb-sandstorm/blob/master/.sandstorm/etc/nginx/nginx.conf
<dwrensha> then, it uses a currently-undocumented Sandstorm feature called "offer templates" to generate secrete URLs to put in copy/paste instructions for the user
<dwrensha> then the user copy and pastes those instructs to set up Git on their end
<dwrensha> what part specifically are you wondering about?
mort___ has quit [Quit: Leaving.]
losvedir has quit [Quit: losvedir]
<ckocagil> sorry I had to go afk
<ckocagil> dwrensha: how does the user pull from or push to this repo? doesn't accessing the http API require tokens?
<dwrensha> the app generates tokens and displays them to the user with "offer templates"
<dwrensha> for GitWeb, the offer template text looks like:
<dwrensha> echo url=https://sbpwbajz:Zrp2UdCmXugYnKKByJsR09TdQ8vhi9dBDc0AjgYYK3x@sandstorm-api.dwrensha.ws/ | git -c credential.helper=store credential approve
<dwrensha> git clone -c credential.helper=store https://sbpwbajz@sandstorm-api.dwrensha.ws/ repo_sbpwbajz_RENAME_ME
<dwrensha> in that case, "Zrp2UdCmXugYnKKByJsR09TdQ8vhi9dBDc0AjgYYK3x" is the token
amyers has joined #sandstorm
amyers has quit [Remote host closed the connection]
amyers has joined #sandstorm
<ckocagil> dwrensha: how does $API_TOKEN get filled?
<dwrensha> We're calling Sandstorm's postMessage API...
<dwrensha> sadly, I think the best documentation for it right now is the source code: https://github.com/sandstorm-io/sandstorm/blob/6a7c1598280dcafae153a7601c37c885b029ad2b/shell/shared/grain.js#L1099-L1161
mort___ has joined #sandstorm
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 265 seconds]
paroneayea has joined #sandstorm
mort___1 has joined #sandstorm
mort___1 has left #sandstorm [#sandstorm]
mort___ has quit [Ping timeout: 265 seconds]
xet7 has joined #sandstorm
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 250 seconds]
amyers has quit [Remote host closed the connection]
mort___ has joined #sandstorm
mort___ has quit [Ping timeout: 252 seconds]
home has joined #sandstorm
mort___ has joined #sandstorm
home has quit [Ping timeout: 244 seconds]
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 264 seconds]
mnutt__ has joined #sandstorm
simonv3 has joined #sandstorm
mort___ has quit [Quit: Leaving.]
xet7 has quit [Read error: Connection reset by peer]
xet7 has joined #sandstorm
xet7 has quit [Client Quit]
xet7 has joined #sandstorm
mort___ has joined #sandstorm
bb010g has quit [Quit: Connection closed for inactivity]
neynah has joined #sandstorm
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 246 seconds]
mort___ has quit [Quit: Leaving.]
neynah has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
gopar has joined #sandstorm
NOTevil has joined #sandstorm
gopar has quit [Remote host closed the connection]
bb010g has joined #sandstorm
jadewang has joined #sandstorm
<paroneayea> okay! paulproteus suggested I ask more things in here rather than in backchannels :)
<paroneayea> so to recap
<paroneayea> <paroneayea> paulproteus: I'm basically curious about what methods you're using in sandstorm to provide object capabilities
<paroneayea> <paulproteus> (1) Isolation (2) pass in all capabilities as Cap'n Proto remote objects (3) write shims so the weirdness of (2) is less obvious
<paroneayea> <paulproteus> "hope that helps" : P
<paroneayea> so next question:
<paroneayea> do you sign them?
<paroneayea> I assume that if they're being transmitted beyond a single process which has control over the datastructure a-la eros "vat" capabilities, some sort of signature mechanism would be required!
<paroneayea> I'm asking partly because I'm working on a network model and "how to produce" capabilities for that is not super well answered, though http://www.eros-os.org/pipermail/e-lang/1999-November/003020.html seems to indicate "probably yes"
neynah has joined #sandstorm
<paroneayea> http://erights.org/elib/capability/ode/ode-protocol.html and http://erights.org/elib/capability/ode/ode-pki.html maybe are useful in pointing in that direction as well
<dwrensha> paroneayea: who would sign a capability, and what goal would the signing serve?
<paroneayea> dwrensha: so I'm not very knowledgable on the subject, but from my reading
<paroneayea> capabilities are supposed to be unforgeable; in a single memory-safe process, pointers within a datastructure are often considered good enough, as in Rees's lambda calculus version with Scheme, it's the procedures made available in the environment that are a basic stand-in, and I think E does similar things with its "vats"
<paroneayea> but what if you have an actor model type setup
<paroneayea> and you want to be able to provide access to invoking certain procedures via capabilities mixed with some message passing mechanism
<paroneayea> or any other process where having a pointer just doesn't make sense because that boundary is lost
<paroneayea> and there isn't a "shared kernel" there to provide it
<dwrensha> I think our answer is: within a single Sandstorm server setup, the network/capnproto infrastructure is trusted
<paroneayea> over the network, to make it unforgeable, the only way I can think of it is to have the local actor/object have its own key that it can sign with
<paroneayea> dwrensha: aha, so with sandstorm, it doesn't cross servers
<paroneayea> dwrensha: you can see how when I'm looking at something that crosses servers with federation work, I'd need to figure out how to implement the unforgeability elsewhere
<dwrensha> as of now, not really
<paroneayea> I know from paulproteus' mentions that capabilities are used in some places, I figured maybe you all had looked into a good solution :)
<paroneayea> dwrensha: thanks!
<paroneayea> dwrensha: aha :)
<paroneayea> dwrensha: thanks for taking the time to explain!
<dwrensha> I think the plan is to eventually specify a protocol to make ApiTokenOwner.internet sturdyrefs unforgeable
<dwrensha> but right now we don't support them
* paulproteus waves
<paroneayea> hi paulproteus !
<paulproteus> paroneayea: One thing that I don't know that dwrensha has mentioned is that our API Tokens aka WebKeys are also capabilities.
<paroneayea> paulproteus: oh? how are they constructed, and what do they map to?
<paroneayea> paulproteus: are you taking a different approach than oauth2.0 bearer tokens?
<paulproteus> They're random and there's no signatures, "just" a Bearer Token-style thing, and their hash is stored in our database.
<paroneayea> ah.
<paroneayea> those are kinda capabilities I guess :)
<paroneayea> I guess they are!
<paroneayea> I've had a hard time reconciling whether bearer tokens are capability systems or not.
<paulproteus> paroneayea: You might want to read the comments in the file that dwrensha linked to, fwiw.
<paulproteus> I ean
<paulproteus> s/ean/mean/
<paroneayea> reading
<paroneayea> thanks paulproteus, dwrensha !
<paulproteus> These keys fwiw are bound to a specific permission level and are bound to a specific API path of the app.
<paulproteus> paroneayea: You might enjoy the way the Git app works in Sandstorm (or you might find it appallingly weird).
<paulproteus> Use the demo server to create a private git repo with GitWeb and you'll be confronted with an "offer template." We use this mechanism to hide the actual API token from the app, so if it doesn't know it, it can't leak it.
<paulproteus> Couldn't send UDP sandcats ping { [Error: getaddrinfo ESRCH] code: 'ESRCH', errno: 'ESRCH', syscall: 'getaddrinfo' }
<paulproteus> events.js:72
<paulproteus> throw er; // Unhandled 'error' event
<paulproteus> ^
<paulproteus> I wonder what I have done to deserve this on my laptop's Sandstorm self-install. )-:
<paulproteus> Error: getaddrinfo ESRCH
<paulproteus> (answer: switch wifi network I guess)
simonv3 has quit [Quit: Connection closed for inactivity]
NOTevil has quit [Quit: Leaving]
NOTevil has joined #sandstorm
jadewang has quit [Remote host closed the connection]
jadewang has joined #sandstorm
neynah has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
larjona has joined #sandstorm
neynah has joined #sandstorm
neynah has quit [Client Quit]
neynah has joined #sandstorm
gopar has joined #sandstorm
larjona has quit [Read error: Connection reset by peer]
isd has joined #sandstorm
isd has quit [Ping timeout: 250 seconds]
isd has joined #sandstorm
gopar has quit [Remote host closed the connection]
NOTevil has quit [Quit: Leaving]
isd has quit [Ping timeout: 252 seconds]
<dwrensha> today I learned that I can do `CAPNP_SKIP_FUZZ_TEST=yes`
isd has joined #sandstorm
larjona has joined #sandstorm
geofft has quit [Read error: Connection reset by peer]
geofft has joined #sandstorm
neynah has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
bb010g has quit [Quit: Connection closed for inactivity]
kentonv has quit [Ping timeout: 240 seconds]
jadewang has quit [Ping timeout: 260 seconds]
kentonv has joined #sandstorm
jadewang has joined #sandstorm
mnutt__ has quit [Quit: mnutt__]
gopar has joined #sandstorm
isd has quit [Read error: Connection reset by peer]
mnutt__ has joined #sandstorm
isd has joined #sandstorm
xet7 has quit [Read error: Connection reset by peer]
xet7 has joined #sandstorm
mnutt__ has quit [Quit: mnutt__]
isd has quit [Quit: Leaving.]
xet7 has quit [Remote host closed the connection]
isd has joined #sandstorm