Skip to content

OpenMF Set up

Swapnal Shahil edited this page Aug 14, 2021 · 1 revision

OpenMF Frontend

Installation

After cloning, create a virtual environment and install the requirements. For Linux and Mac users:

$ virtualenv venv
$ source venv/bin/activate
(venv) $ pip install -r requirements.txt

If you are on Windows, then use the following commands instead:

$ virtualenv venv
$ venv\Scripts\activate
(venv) $ pip install -r requirements.txt

Running

Step1: Change directory to React-Frontend

 (venv) $ cd React-Frontend

Step2: Install required dependencies

(venv) $ npm install

Step3: Run the react server:

(venv) $ npm start

And use localhost:3000 to browse.

OpenMF - Flask Backend

Update Enviornment Variables

To run the project you need to update the following ENVIRONMENT VARIABLES.

export FLASK_APP="api"
export FLASK_ENV="development or production or testing"
SECRET_KEY="your secret key"
MAIL_USERNAME="<Enter Mail User Name />"
MAIL_PASSWORD="<Enter Mail App Password />"
MAIL_SERVER="<Enter Mail Server />"
MAIL_PORT="<Enter Mail Port Number />"

Running the Flask Server

Step 1: Set up FLASK_APP (For Linux or Mac)

(venv) $ `export FLASK_APP=api`

(For Windows)

(venv) $ `set FLASK_APP=api`

Step 2: Now, Upgrade the Migrated Database, using the following command

(venv) $ flask db upgrade

Step 3:Start the backend server To run the server use the following command:

(venv) $ flask run

API Endpoints List

Endpoint                   Methods       Rule
-------------------------  ------------  ---------------------------------------
analytics.execute_query    POST          /analytics/query
auth.login_post            POST          /login
auth.logout                POST          /logout
case._get_file             POST          /case/get-file
case.case_tree             GET, POST     /case/case-tree
case.count                 GET           /case/count
case.deletecase            POST          /case/delete
case.extracted_cases       GET           /case/extracted-cases
case.filter                POST          /case/filter
case.getCase               GET           /case/get_case/<casename>
case.list                  GET           /case/list
case.openCase              GET           /case/open/<case_name>
case.openFile              GET           /case/list-files/<case_name>/<folder_name>/<file_name>
case.openFolder            GET           /case/list-files/<case_name>/<folder_name>
common.commonwordlist      POST          /common/<case1>/<case2>
common.mostcommonwordlist  POST          /common/words/<case1>/<case2>
data.bluetooth             GET           /data/<case_name>/bluetooth
data.browsers              GET           /data/<case_name>/browsers
data.location              GET           /data/<case_name>/location
data.media                 GET           /data/<case_name>/media
data.sms                   GET           /data/<case_name>/sms
extraction.extract         POST          /extraction/extract_data
extraction.list_devices    GET           /extraction/list_devices
keyword.customsearch       POST          /keyword/custom/search
keyword.search             POST          /keyword/search
keyword.searchfromCase     POST          /keyword/<case_name>/search
keyword.searchtags         POST          /keyword/search/tags
report.browserdata         POST          /report/browserdata
report.generalinfo         POST          /report/generalinfo
report.locationinfo        POST          /report/locations
static                     GET           /static/<path:filename>
task.assigned_tasks        GET           /task/assigned-tasks
task.completed_tasks       GET           /task/completed-tasks
task.create                POST          /task/create
task.delete                DELETE        /task/delete/<int:id>
task.edit_title            PUT           /task/edit-title
task.get_all_tasks         GET           /task/all-tasks
task.mark_complete         PUT           /task/mark-complete/<int:id>
task.todo_tasks            GET           /task/todo-tasks
user.add_users             POST          /user/add-user
user.all_users             GET           /user/all-users
user.create_user           POST          /user/create
user.delete                DELETE        /user/delete
user.deleteuser            DELETE, POST  /user/delete-user
user.extracted_cases       POST          /user/extracted-cases
user.getUser               GET           /user/getAdmin/<int:id>
user.get_extracted_cases   GET           /user/extractor/extracted-cases
user.get_extractor         GET           /user/getExtractor/<int:id>
user.get_management        GET           /user/getManagement/<int:id>
user.profile               GET           /user/profile
user.roleupdate            PUT           /user/role-update

Note: You can find the updated list of API endpoints using the following command

(venv) $ flask routes