Justin Thomas 馃洝 · @justin
309 followers · 607 posts · Server ser.endipito.us

In about 16 commands, I demonstrate installing , creating a new identity, responding to an external Follow request, sending a new Note ("Status" in Mastodon parlance), and then deleting everything from the remote server.

Everything in SofaPub is done from the command-line. I describe a couple of steps taken from the Serendipitous web interface to facilitate the interaction.

Network/DNS configuration (with TLS) is in place prior to this sequence.

gitlab.com/-/snippets/3596125

#sofapub #activitypub

Last updated 1 year ago

Justin Thomas 馃洝 · @justin
309 followers · 607 posts · Server ser.endipito.us

v0.1.6 is up. Both Notes and Actors can be deleted now.

Deleting your Actor record:

sofapub client delete --inbox infosec.exchange/inbox

Deleting a Note record:

sofapub client delete --inbox infosec.exchange/inbox --id sofa.jdt.dev/objects/c3324e8a-

Side note: Mastodon transforms the URL-like IDs to links. Bear in mind that the examples in all my posts included the "https://" at the beginning of the IDs.

#sofapub #activitypub

Last updated 1 year ago

Justin Thomas 馃洝 · @justin
309 followers · 607 posts · Server ser.endipito.us

Published version 0.1.5 of which adds Accept and Create templates that can be used like:

```
sofapub client accept \
--id infosec.exchange/4474e616-ecc0 \
--actor infosec.exchange/users/jdt \
--inbox infosec.exchange/inbox
```

```
echo "This is a test, please ignore." | sofapub client note \
--inbox infosec.exchange/inbox
```

`client note` can also be used with `--content` instead of `stdin` to provide the Note content. Notes are public-only.

`cargo install sofapub`

#sofapub #activitypub

Last updated 1 year ago

Justin Thomas 馃洝 · @justin
309 followers · 607 posts · Server ser.endipito.us

Updated to v0.1.4. The only change is a fix to the template copying logic that I broke in v0.1.3.

I'm using the `rust-embed` crate to embed the template files in the binary which are then moved to the local filesystem by the setup command to facilitate experimentation. I needed to change the way that I was using that crate for it to be effective.

`cargo install sofapub` to update.

gitlab.com/justindthomas/sofap

#sofapub #activitypub

Last updated 1 year ago

Justin Thomas 馃洝 · @justin
309 followers · 607 posts · Server ser.endipito.us

Published SofaPub v0.1.3 this morning. Added a "delete" client command to allow you to remove your profile from a remote server.

With the current code architecture, I'm finding it trivial to add new messages like this. (It took me 20 minutes this morning.)

gitlab.com/justindthomas/sofap

`cargo install sofapub` to update.

#sofapub #activitypub

Last updated 1 year ago

Justin Thomas 馃洝 · @justin
309 followers · 607 posts · Server ser.endipito.us

Published version 0.1.1 of SofaPub with a couple of interesting changes:

- Added "client" functionality to streamline some common uses. The first commands I've built here are for Follow and Undo. Check out the attached screenshots.
- Added templating using minijinja. Templates are kept in ~/.sofapub/templates and are user-adjustable.

Update with `cargo install sofapub`

README is out-of-date. I'll correct that shortly.

#sofapub #activitypub

Last updated 1 year ago

Justin Thomas 馃洝 · @justin
309 followers · 607 posts · Server ser.endipito.us

Successfully sent a message from my local server to myself at infosec.exchange. The command I used was:

cat ./hello_world.json | sofapub post infosec.exchange/inbox

The JSON file is just an ActivityPub Create message I created by hand in Emacs.

Also uploaded sofapub to crates.io. You can install it with `cargo install sofapub` and run the executable right away. I'll update the documentation shortly to align with that usage.

#sofapub #rust #activitypub

Last updated 1 year ago

Justin Thomas 馃洝 · @justin
309 followers · 607 posts · Server ser.endipito.us

Watching Captain America on the sofa with my family (working our way through the MCU) and added documentation to demonstrating one use (lightweight interaction with secured instances). This `sofapub_get` tool is something I've wanted for quite a while. It should make understanding what other folks are building much easier.

gitlab.com/justindthomas/sofap

#sofapub #activitypub #rust #fediverse

Last updated 1 year ago

Justin Thomas 馃洝 · @justin
309 followers · 607 posts · Server ser.endipito.us

update: In addition to the basic discovery functioning (i.e., you can query your SofaPub user from a Mastodon server and find it), POST messages to the inbox are now captured. An example is in the README.

gitlab.com/justindthomas/sofap

Also added some commentary there on how I envision the sending, receiving, and storage of data operating.

#sofapub

Last updated 1 year ago