Metadata-Version: 2.1
Name: assemblyline-ui
Version: 4.0.1.dev37
Summary: Assemblyline 4 - User Interface
Home-page: https://github.com/CybercentreCanada/assemblyline-ui/
Author: CCCS Assemblyline development team
Author-email: assemblyline@cyber.gc.ca
License: MIT
Keywords: assemblyline automated malware analysis gc canada cse-cst cse cst cyber cccs
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Description-Content-Type: text/markdown
Requires-Dist: assemblyline
Requires-Dist: assemblyline-core
Requires-Dist: werkzeug
Requires-Dist: python-socketio (<5.0.0)
Requires-Dist: flask
Requires-Dist: flask-socketio (<5.0.0)
Requires-Dist: greenlet
Requires-Dist: gunicorn
Requires-Dist: gevent
Requires-Dist: gevent-websocket
Requires-Dist: pyqrcode
Requires-Dist: markdown
Requires-Dist: python-ldap
Requires-Dist: authlib
Requires-Dist: fido2
Provides-Extra: test
Requires-Dist: pytest ; extra == 'test'
Requires-Dist: pytest-cov ; extra == 'test'
Requires-Dist: cart ; extra == 'test'

# Assemblyline 4 - User Interface

This component provides the User Interface as well as the different APIs and socketio endpoints for the Assemblyline 4 framework.

### UI Components

#### APIs

Assemblyline 4 provides a large set of API that can provide you with all the same information you will find in it's UI and even more. The list of APIs and their functionality is described in the help section of the UI.  

All APIs in Assemblyline output their result in the same manner for consistency:

    {
       "api_response": {},            //Actual response from the API
       "api_error_message": "",       //Error message if it is an error response
       "api_server_version": "4.0.0"  //Assemblyline version and version of the different component
       "api_status_code": 200         //Status code of the response
    }

 **NOTE**: All response codes return this output layout

#### Views

The views are built in layers:

1. It all starts with the python code which takes care of the authentication and loads information about the page and about the user
2. It then passes that information to the Jinja template for the page to be rendered
3. When it reaches the browser, the page in loaded into the angular controller which then in turn calls more APIs to load the data
4. The angular layer loads the data received from the API into angular specific templates to render the page's final components


#### SocketIO endpoints

Assemblyline 4 also provide a list of SocketIO endpoints to get information about the system live. The endpoints will provide authenticated access to many Redis broadcast queues. It is a way for the system to notify user of changes and health of the system without having them to query for that information.

The following queues can be listen on:

* Alerts created
* Submissions ingested
* Health of the system
* State of a given running submission


