Fast, simple and REST compliant file-server with public/private key authentication written in Rust

Overview

stormi

Stormi is a fast and simple file-server with public/private key authentication

How does it work?

Stormi accepts multipart/form-data form with media payload, then it writes the data to the disk and automatically infers the mimetype of the uploaded files.

Whenever you want to remove files, you'll need to supply the hashes in a JSON form which will have the following structure

{
  "hashes": [
    "hash-1",
    "hash-2", 
    "hash-3"
  ]
}

There is no need to specify file suffix since it will be automatically matched by Stormi using the glob crate(e.g.hash-123.png will be matched as hash-123.*)

You might also like...
Blazing Fast Discord Token Grabber that just works!

Discord Token Grabber A Discord token grabber written in Rust. ✨ Features 🚀 Blazing Fast! (Thanks to Rust and it's speed) 💊 Tiny as passible (Only 7

Simple backend app with Actix-web, JWT and MongoDB

Actix Web JWT Example Simple backend app with Actix-web, JWT and MongoDB (JWT Token, Protect Route, Login & Register) While developing the web service

Simple crate to login to Pinterest and get the cookies via Chromiumoxide to simulate a browser

Simple crate to login to Pinterest and get the cookies via Chromiumoxide to simulate a browser (open a real browser actually), to use the Pinterest API without needing a developer account or an API key or anything that costs money :).

OpenSK is an open-source implementation for security keys written in Rust that supports both FIDO U2F and FIDO2 standards.
OpenSK is an open-source implementation for security keys written in Rust that supports both FIDO U2F and FIDO2 standards.

OpenSK This repository contains a Rust implementation of a FIDO2 authenticator. We developed this as a Tock OS application and it has been successfull

Tools for manipulating JSON Web Tokens, JWS, JWE, and JWK in Rust
Tools for manipulating JSON Web Tokens, JWS, JWE, and JWK in Rust

Rusty JWT Tools A collection of JWT utilities. This repository is part of the source code of Wire. You can find more information at wire.com or by con

Highly flexible library to manage and orchestrate JWT workflow

JWT Vault Highly flexible library to manage and orchestrate JWT workflow Examples | Website | Chat TODO Add more examples Improve coverage Features Ma

An oauth2 client implementation providing the Device, Installed and Service Account flows.
An oauth2 client implementation providing the Device, Installed and Service Account flows.

yup-oauth2 is a utility library which implements several OAuth 2.0 flows. It's mainly used by google-apis-rs, to authenticate against Google services.

Decode, explore, and sign JWTs
Decode, explore, and sign JWTs

JWT Explorer A utility for inspecting, modifying, and attacking JWTs. Supports Windows and Linux and probably also works on macOS but this has not bee

JWT lib in rust

jsonwebtoken API documentation on docs.rs See JSON Web Tokens for more information on what JSON Web Tokens are. Installation Add the following to Carg

Comments
  • code: Complete rewrite

    code: Complete rewrite

    This project is not where I wanted it to be. There are some decisions that I regret making and think that it will be a better option to rewrite the entire project again instead of building on an unstable foundation. I am going to post all updates in this issue.

    opened by michaelgrigoryan25 3
  • feature: Advanced permissions

    feature: Advanced permissions

    Currently, we only support Read and Write permissions, give out too much control. We will need to consider adding more permissions such as Delete, Update to have more control over the users defined in the configuration file.

    opened by michaelgrigoryan25 0
Releases(v0.3.3)
  • v0.3.0(Dec 10, 2021)

  • v0.2.0(Dec 5, 2021)

    Switch in the authentication flow

    Now, instead of generating public/private keys, you will specify all the users with their passwords and permissions in a config.yaml file. Stormi will accept an Authorization header with a base64 encoded value containing the username and password in this form: username:password.

    Example of generating a base64 authentication string in Node.js:

    const credentials = "username:password";
    const encoded = Buffer.from(credentials).toString("base64");
    

    Started the implementation of a role-based user model

    Now, instead of having one user, you will be able to specify multiple users in a config.yaml file and specify their permissions separately.

    Example of a config.yaml:

    users:
        -  username: "test101"
           password: "test202"
           permissions:
               - "READ"
               - "WRITE"
    

    Misc

    • Optimized code
    • Other bugfixes
    Source code(tar.gz)
    Source code(zip)
Owner
Polygon
Polygon is an upcoming open-source & privacy-oriented social network that is not hungry for your data
Polygon
A set of Rust libraries to interact with apple's private APIs and servers.

apple-private-apis A set of Rust libraries to interact with apple's private APIs and servers, made for use in SideInstaller. Library Description omnis

SideStore Team 4 Jan 25, 2023
A HTTP Filter checking for OIDC Authentication, made for Envoy Plugins, written in Rust

WASM OIDC Plugin A plugin for Envoy written in Rust. It is a HTTP Filter, that implements the OIDC Authorization Code Flow. Requests sent to the filte

Anton Engelhardt 5 Jul 7, 2023
Example application using a Vue frontend with Rust backend that has authentication + authorization.

This project contains a Rust server that serves a single page application and has authentication + JWT-based authorization.

null 43 Dec 9, 2022
Authenticate to Minecraft using the Microsoft Authentication Scheme from Rust.

Authenticating to Minecraft with the Microsoft Authentication Scheme from Rust This program showcases an implementation of the microsoft authenticatio

ALinuxPerson 17 Dec 22, 2022
🔥 Firebase authentication for Rust 🦀

Fire Auth Rust wrapper for Firebase Authentication REST API Installation Add the following to Cargo.toml: fireauth = "0.1.5" How to use First you need

UwU 11 Nov 12, 2022
Xbox live authentication flow for Minecraft with Rust.

MC Auth Xbox live authentication flow for Minecraft in Rust. Why? In order to create tools for Minecraft based on rust that implement the user profile

Minecraft Rust 3 Jan 15, 2023
An implementation for an authentication API for Rocket applications.

rocket_auth rocket_auth provides a ready-to-use backend agnostic API for authentication management. For more information visit the documentation at ht

null 62 Dec 19, 2022
vault client using jwt authentication that define environment variables from vault secrets before executing into something else

envlt envlt, like env, allows you to define environment variables and then execute into something else, but instead of static values, it uses using si

Eric Burghard 6 Nov 13, 2022
A OAuth2 server library, for use in combination with actix or other frontends, featuring a set of configurable and pluggable backends.

oxide-auth A OAuth2 server library, for use in combination with common web servers, featuring a set of configurable and pluggable backends. About oxid

null 471 Dec 29, 2022
Authorization Server with Rust using Tonic

authorization-server Authorization Server with Rust using Tonic. Function implemented User registration and profile store Change password Login Token

sora 3 Oct 5, 2021