Email or username:

Password:

Forgot your password?
dansup

ActivityPub Filter System

Inspired by Pleroma (MRF) and Cloudflare (WAF), this new @pixelfed feature will help improve safety and moderation by empowering admins with fine-grained tools like these.

Better yet, you will be able to easily import/export rules and I'm working on a FEP so other projects can add support using a common vocab.

Available soon ✨

#activityPub #safety #pixelfed #filterSystem

15 comments
Emelia πŸ‘ΈπŸ»

@dansup @pixelfed

I would be pretty surprised if this didn't come with some significant performance issues (probably somewhat fixable) β€” also wondering if you've looked at something like SQRL language & runtime?

You'll also likely want a warning about the scunthorpe problem & to just move matching activities to a manual approval queue (rather than dropping completely)

Emelia πŸ‘ΈπŸ»

@dansup @pixelfed

E.g., a system like this if used to, say, detect slurs, wouldn't really understand reclaimed slurs or vernacular context, so could actually add harm or restrictions to marginalised users speech or reach.

dansup

@thisismissem @pixelfed I agree, I'm not sure this is the best approach in that case, but it could be useful in cases where spam domains are used.

Perhaps we could discuss on Matrix or Discord further?

Emelia πŸ‘ΈπŸ»

@dansup @pixelfed

I'd probably go with building a feature specifically designed for mitigating spam or malicious URLs, over a more generalised system for something like that.

Especially because those rules / actions might need to be taken in some sort of adaptive approach.

But still, being able to preview and see what the filter catches or doesn't is still important.

:PUA: Shlee fucked around and

@thisismissem @dansup @pixelfed It's not a great idea on it's own.. more of a defense in depth thing

but I'd imagine we could have a risk score with metadata

{score: 5, keywords:abusive:3, trigger: norelationship:2}

:PUA: Shlee fucked around and

@thisismissem @dansup @pixelfed I could think of a bunch of risks

trigger:limitedinstance:2
trigger:newaccount:2

etc etc.... having one risk isn't enough to push it over the edge to a filter.

edit: if 5 is a threshold (people can move it up/down as required per account) but receiving a toot with a slur from a friend on a non-limited instance would be fine... so mutuals can swear away

Emelia πŸ‘ΈπŸ»

@shlee @dansup @pixelfed

The more data that you want to provide the decision making process, the more expensive it becomes to execute, and the more likely you are to need to maintain some form of state.

e.g., rolling windows for types of activities, that's a whole bunch of state that needs to be stored temporarily.

Emelia πŸ‘ΈπŸ»

@shlee @dansup @pixelfed

That is to say, the more data to evaluate & more state to consider/store, the slower the rules become to execute, potentially requiring asynchronous instead of synchronous processing

dansup

@thisismissem @pixelfed Yeah, that is a valid concern, the approach I'm taking is to efficiently cache the rules and invoke them early in the request lifecycle.

The sooner we can invalidate activities in the inbox req lifecycle, the better IMO

mkj

@dansup Interesting! Out of curiosity: what fields are matchable? (The one that says "Server Domain" in the screenshot.)

dansup

@mkj TBD, still working that out!

Is there any fields you'd like to see included specifically?

mkj

@dansup Nothing I can think of right off the bat, to be honest.

I use Mastodon not Pixelfed myself, and the thing I dislike most about *user-facing* post filtering there is probably that I can't combine criteria (say: hide posts that contain "this" *and* "that" but not just one or the other); but that looks like it would be out of scope for this particular feature.

Go Up