https://github.com/marinoandrea/samm
Fully containerized Static Asset Management Microservice (SAMM) for handling user-uploaded assets
https://github.com/marinoandrea/samm
container docker-image microservice staticfiles storage
Last synced: about 1 month ago
JSON representation
Fully containerized Static Asset Management Microservice (SAMM) for handling user-uploaded assets
- Host: GitHub
- URL: https://github.com/marinoandrea/samm
- Owner: marinoandrea
- Created: 2023-10-29T16:52:50.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-30T07:21:29.000Z (almost 2 years ago)
- Last Synced: 2025-01-24T08:43:53.911Z (over 1 year ago)
- Topics: container, docker-image, microservice, staticfiles, storage
- Language: TypeScript
- Homepage:
- Size: 49.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Static Asset Management Microservice (SAMM)
> [!WARNING]
> This is a Work In Progress (WIP), this software is not to be considered production-ready.
This repository contains the implementation for a plug-and-play microservice
that provides endpoints for basic static asset management. The microservice is
intended to be deployed privately within the ecosystem and should not be exposed
publicly as its authentication capabilities are based on a very simple JWT flow.
However, the user can easily override the authentication flow in order to
integrate their preferred approach.
## Functionalities
The microservice implements the following functionalities:
- **Asset Upload**: clients can upload base64 encoded assets to the service which
performs the following operations:
- Asset metadata is extracted from the file buffer
- Asset is scanned for malware and NSFW content
- Asset is optimized for storage (e.g. resize, compression)
- Asset is encrypted using a simple cypher
- Asset is uploaded to external storage provider (e.g. AWS S2)
- Metadata and asset path on external bucket are stored in the service
database
- **Asset Download**: TBD