Skip to content

Feat(api/watcher): /events endpoint with aggregation across all homeservers. #524

@SHAcollision

Description

@SHAcollision

For the needs of the Moderation service and other apps. Nexus could replicate the /events endpoint of the homeserver, with the exact same API, but aggregating across all homeservers it tracks.

Example /v0/events/?reverse=false&limit=14

PUT pubky://dsfbr4knnzjgzj617dihte3xtzk8u7egazgx7cwzxyxdn14qnheo/pub/pubky.app/profile.json
PUT pubky://dsfbr4knnzjgzj617dihte3xtzk8u7egazgx7cwzxyxdn14qnheo/pub/pubky.app/blobs/W8V7598CBDP2SG1JAY7R1SR37W
PUT pubky://dsfbr4knnzjgzj617dihte3xtzk8u7egazgx7cwzxyxdn14qnheo/pub/pubky.app/files/0032W205HHRD0
PUT pubky://dsfbr4knnzjgzj617dihte3xtzk8u7egazgx7cwzxyxdn14qnheo/pub/pubky.app/profile.json
PUT pubky://dsfbr4knnzjgzj617dihte3xtzk8u7egazgx7cwzxyxdn14qnheo/pub/pubky.app/last_read
PUT pubky://dsfbr4knnzjgzj617dihte3xtzk8u7egazgx7cwzxyxdn14qnheo/pub/pubky.app/last_read
PUT pubky://dsfbr4knnzjgzj617dihte3xtzk8u7egazgx7cwzxyxdn14qnheo/pub/pubky.app/blobs/W8V7598CBDP2SG1JAY7R1SR37W
PUT pubky://dsfbr4knnzjgzj617dihte3xtzk8u7egazgx7cwzxyxdn14qnheo/pub/pubky.app/files/0032W24EYQ3M0
PUT pubky://dsfbr4knnzjgzj617dihte3xtzk8u7egazgx7cwzxyxdn14qnheo/pub/pubky.app/profile.json
PUT pubky://dsfbr4knnzjgzj617dihte3xtzk8u7egazgx7cwzxyxdn14qnheo/pub/pubky.app/last_read
PUT pubky://ujikizdojcuwn3m7nfypzt1xwiz8t68rqr9qbdbagmgotwd1duho/pub/pubky.app/blobs/W8V7598CBDP2SG1JAY7R1SR37W
PUT pubky://ujikizdojcuwn3m7nfypzt1xwiz8t68rqr9qbdbagmgotwd1duho/pub/pubky.app/files/0032W24NPGW00
PUT pubky://ujikizdojcuwn3m7nfypzt1xwiz8t68rqr9qbdbagmgotwd1duho/pub/pubky.app/profile.json
DEL pubky://ujikizdojcuwn3m7nfypzt1xwiz8t68rqr9qbdbagmgotwd1duho/pub/pubky.app/settings
cursor: 0032W24REPR5W

The implementation consist of a new Redis SortedSet where we write down timestamp and PUT/DEL pubky://{pubky}/object (to be crockford32 encoded as in the example above).

Metadata

Metadata

Assignees

No one assigned

    Labels

    ⚠️ moderationContent safety rules, enforcement and reporting🌐 serviceNexus API endpoint related👀 watcherNexus indexer related operations📈 enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions