kitsune
kitsune copied to clipboard
Support for the `indexable` property
Mastodon recently introduced opt-in full-text search. The opt-in part is controlled via the indexable
property.
Now that we have a de-facto standard property on actors for this, we should expose the same functionality with Kitsune.
Control indexability via an indexable
property defaulting to false
.
Some questions to be answered:
How should we handle objects without indexable
property? (indexable: undefined
)
For example, in case of Misskey instances, they do not send indexable nor respect indexable property. They index all public Notes. Due to its behavior, I guess it is okay to treat Misskey Object as implicitly indexable, but the old Mastodon instances makes it a little complicated.
Should we let admins choose default behavior or forces default behavior? (for example, treat indexable: undefined as not indexable)
How should we handle objects without
indexable
property? (indexable: undefined
)
For reference, FEP-5feb (Search indexing consent for actors) specifies that:
A missing
indexable
attribute SHOULD be handled asindexable: false
.
Though I'd argue that this might br biased toward Mastodon's historical implementation (well, introducing a per-actor search consent when we already have per-post audience targeting mechanism of Activity Streams itself feels to me like a convenience for Mastodon, but I digress).
As a prior art, a Mastodon fork named Fedibird treats notes from Misskey instances as "indexable" by default (https://github.com/fedibird/mastodon/commit/b313f9dafc5b42a276a8749f1c2a83ba21d5f897), while assuming indexable: false
for other server implementations. The handling of notes from Misskey instances in search is discussed at https://github.com/misskey-dev/misskey/issues/11399 (in Japanese. The gist is that, it seems to be the maintainer's intention to treat Misskey notes as if they are from an actor with "indexable": true
).