Follow

@50htz ahh I figured it out! My delivery queue was clogged up with redelivery attempts to a now-defunct test Immer and the default timeout settings meant it was pausing the whole delivery process for 2 minutes waiting for a response from the dead server each time. I lowered the timeout and it caught up. Now you should be able to see that we're friends if you go to immers.space/u/acenovo (from the same browser where you were logged in)

Β· Β· 1 Β· 1 Β· 1

@datatitian
So, the friends tab? Is that a mutual relationship?

Does the web service use content negotiation (so the same IRI can serve HTML and JSON depending on the HTTP headers)?

@50htz yes and yes! Friend relationships between Immers accounts are always mutual (via a complicated dance of automated replies to follow-back / un-followback) and manually approved.

And yep content negotation + history api fallback for front-end routing makes it super easy to use the IRI for both purposes. The Apex library catches anything with the @activitypub accept header and the rest falls through to this simple command that sends it to the front-end github.com/immers-space/immers

AP C2S on Immers 

@datatitian @activitypub
This looks like the OAuth2 endpoint (from auth.js):

`https://${domain}/o/immer`

Is that correct? (Also LMK if Immers uses the OAuth2 endpoint description defined by Activity Pub and I'll use that instead of hard coding the path)

Also, I see scopes are marked TODO. Until scopes are implemented, what should I request for a scope in my client?

AP C2S on Immers 

@50htz @activitypub `https://${domain}/o/immer` is just a standard 'Place' object that defines the immer. You can discover OAuth2 endpoints from the actor object per spec under `endpoints.oauthAuthorizationEndpoint`. Scopes were recently completed, but it lookes like I missed a comment! See release notes with instructions on what to request and link to definitions github.com/immers-space/immers

AP C2S on Immers 

@50htz @activitypub and for an example client, our Hubs one is a better example than the web interface because it handles scope and remote users github.com/immers-space/hubs/b - however I plan in the very near future to extract this into a reusable client library

AP C2S on Immers 

@datatitian @activitypub
I found the 9 scopes, but not the 4 roles (yet). I have a thing to finish up this weekend, but I'll set up a test instance on my dev laptop and see if I can authorize with Curl when I'm done

The client library will be great for my daughter's project. My existing code bases generate output files then call bash scripts to activate notification or push mechanisms, so Curl πŸ€“

AP C2S on Immers 

@datatitian
Sweet! I'll let you know when I'm working on the install

AP C2S on Immers 

@datatitian
The docker instructions were easy enough. The only gotcha is that it requires a newer docker-compose than what's in native repos. There's no correlation between version numbers among docker components, and no obvious references. Since changing the package source is, umm, nontrivial, it would be useful to indicate a tested version in the requirements

But, yeah. I've got an immer running in a container on my dev laptop. I just need to do a little search-fu to find the IP address of the container, then I can start poking at it to see how what I need to do to start interacting with it πŸ‘

AP C2S on Immers 

@50htz that's great feedback. Thanks!

AP C2S on Immers 

@50htz the docker container is in production mode by default, which means it will try to provision a LetsEncrypt cert as soon as it gets a request. For local dev, a docker-compose.override.yml and a self-signed cert will be necessary. Here's an example gist.github.com/wmurphyrd/0b1d

Sign in to participate in the conversation
social.coop

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!