A minimalist REST API wrapper for python's subprocess API.
Project description
Flask-Shell2HTTP
A minimalist Flask extension that serves as a REST API wrapper for python's subprocess API.
- Convert any command-line tool into a REST API service.
- Execute pre-defined shell commands asynchronously and securely via flask's endpoints.
- Designed for development, prototyping or remote control.
Inspired by the work of awesome folks over at msoap/shell2http.
Use Cases
- Set a script that runs on a succesful POST request to an endpoint of your choice. See Example code.
- Map a base command to an endpoint and pass dynamic arguments to it. See Example code.
- Can also process multiple uploaded files in one command. See Example code.
- This is useful for internal docker-to-docker communications if you have different binaries distributed in micro-containers. See real-life example.
- Currently, all commands are run asynchronously (default timeout is 3600 seconds), so result is not available directly. An option may be provided for this in future release.
Note: This extension is primarily meant for executing long-running shell commands/scripts (like nmap, code-analysis' tools) in background from an HTTP request and getting the result at a later time.
Documentation / Quick Start
Read the Quickstart from the documentation to get started!
Why?
This was initially made to integrate various command-line tools easily with IntelOwl.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Flask-Shell2HTTP-1.3.0.tar.gz
(7.7 kB
view hashes)
Built Distribution
Close
Hashes for Flask_Shell2HTTP-1.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 970a289d0a86cfe305d2f120d69c90fbf2cac7a17f13859f445b2af368116834 |
|
MD5 | 2f44e163572186fb29047406642d9919 |
|
BLAKE2b-256 | 2ad4507a84401329dcea8798830e1e2cdbc2744432f7f337a546239b7695bdd7 |