ActivityPub but serverless. A pre-requisite for Massless Mastodon.
Current design goals
- SAM/Lambda
- Probably Python
- Easy to customize and deploy
I'm not sure if this is a good idea or not, but I figured I'd start a GitHub Repo for this.
- ActivityStreams Documentation
- ActivityPub Documentation
- Oauth2 Documentation
- Verifiable Credential Data Integrity for Linked-Data Signatures
- Mastodon Source
Each action in a serverless environment is handled by a single function.
ActivityPub/ActivityStreams support through Go ActivityPub
Currently designed for AWS. GCP and Azure TBA
- CloudFormation/SAM
- Serverless application build/deployment
- Route53
- DNS Management
- Lambda
- Handle functions internal and external
- Handle Auth and Key Verification
- Handle Cache Management
- API Gateway
- Handle HTTP requests
- Route to Lambda/S3
- Handle invalid/unauthorized Requests
- DynamoDB
- Store User Data
- Store Inbox/Outbox data (with favorites, shares attached)
- Store Federated Data (cached users, federated public posts)
- S3
- Store and Share Static Content (SPA, icons)
- Store and Share media content (images, videos, etc.)
- Cognito
- Manage User/authentication
- SQS
- Manage Inbox/Outbox queue management
- Rekognition for automoderation of media
- Comprehend for flagging potentially sensitive/inflamatory posts
Signing objects is required to validate they were sent by the person claiming to send them. Some federation platforms, like Mastodon, manage the ActivityPub pub/priv key generation. This relies on a secondary authentication to guarantee users registered with the server to validate who they are.
- User Registration Keygen
- Signing objects
- Signature Validation