Skip to main content

Python application

Network Flows Visualization

This project is a web application that processes and visualizes network flow data from CSV files exported from Azure Migrate Dependency analysis. The goal is to provide a user-friendly interface for analyzing network flows, filter the content and prepare migration plans.

Features

  • CSV Upload: Upload CSV files containing network flow data from Azure Migrate Dependency analysis.
  • Data Processing: Extract and process data from the uploaded CSV files.
  • Visualization: Visualize the network flows using interactive graphs.
  • Filtering: Filter the data based on various criteria such as IP addresses, ports, and VLANs.
  • CSV Download: Download the filtered data as a CSV file.
  • VLANs: Support for optional VLANs data columns in the CSV file and flow grouping.
  • Non RFC1918 IPs: Regroup and filter non-RFC1918 IP addresses.

How to Use

  1. Upload CSV File:

    • Navigate to the upload page.
    • Upload a CSV file containing network flow data.
    • The CSV file should have the following columns:
      • Source server name
      • Source IP
      • Source application
      • Source process
      • Destination server name
      • Destination IP
      • Destination application
      • Destination process
      • Destination port
      • Source VLAN (optional)
      • Destination VLAN (optional)
  2. View and Filter Data:

    • After uploading, you will be redirected to the visualization page.
    • Use the filters to narrow down the data based on source IP, destination IP, port, and VLANs.
    • The data will be displayed in a table and as an interactive graph.
  3. Graph Interaction:

    • Click on a connection to get some information about the flow statistics.
  4. Filter and group Non-RFC1918 IPs:

    • Use the "Group Non-RFC1918" button to group non-RFC1918 IP addresses.
    • Table will be updated to simplify the search and filtering.
    • This enables to focus on Internet-bound traffic.
  5. Download Filtered Data:

    • Click the "Download CSV" button to download the filtered data as a CSV file.

Optional VLANs data

To help with the filtering, you can add optional VLANs data columns to the CSV file.

The columns should be named Source VLAN and Destination VLAN.

These columns are not part of the original CSV file exported from Azure Migrate Dependency analysis.

The application will use this data to help filter and grouping resources in the visualization.

Running the Application

From source

  1. Install the required Python packages:

    pip install .
    python az_migrate_dep_visu/app.py
    
  2. Open the application in a web browser: http://localhost:5000

Using Docker

  1. Build the Docker image:

    docker build -t az-migrate-dep-visu .
    
  2. Run the Docker container:

    docker run -p 5000:5000 az-migrate-dep-visu
    
  3. Open the application in a web browser: http://localhost:5000

From PyPi

  1. To install the package, use pip:

    pip install az-migrate-dep-visu
    
  2. To run the application:

    az-mdv
    # `az-mdv` is a script alias to az_migrate_dep_visu.app
    
  3. Open the application in a web browser: http://localhost:5000

From Terraform & Azure (Container App)

Please refer to the Terraform deployment guide for instructions on how to deploy the application on Azure using Terraform and Azure Container Apps.

Configuration

The application can be configured using environment variables:

  • FLASK_BIND_ALL (default: false): Set to true to bind the Flask application to all network interfaces (0.0.0.0).
  • FLASK_DEBUG (default: true): Set to true to enable debug mode in Flask.

Contributing

Contributions are welcome! If you have suggestions for improvements or find bugs, please open an issue or submit a pull request.

Running Tests

To run the tests, use the following command:

pytest

Example

Screenshot of the application with a filtered applied

Metadata

Release files for az-migrate-dep-visu 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for az-migrate-dep-visu 0.1.3
File Size Uploaded Provenance Actions
az_migrate_dep_visu-0.1.3.tar.gz 109.3 kB Without provenance Details for az_migrate_dep_visu-0.1.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for az-migrate-dep-visu 0.1.3
File Interpreter ABI Platform Actions
az_migrate_dep_visu-0.1.3-py3-none-any.whl Python 3 none any Details for az_migrate_dep_visu-0.1.3-py3-none-any.whl

Total release size: 215.7 kB

Release files / az_migrate_dep_visu-0.1.3.tar.gz

Download URL az_migrate_dep_visu-0.1.3.tar.gz
Size 109.3 kB
Tags Source
SHA-256 checksum
How to use checksums
8fa336695438d2a38be85effdf5fba54d0ceaf61ee2e48b3f9e7a9474404e18a
BLAKE2b-256 checksum
How to use checksums
e16dd40bc7336ba58b94f360595ce2d19e6a5345ab49f73ac476eb3aacf54b07
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

Release files / az_migrate_dep_visu-0.1.3-py3-none-any.whl

Download URL az_migrate_dep_visu-0.1.3-py3-none-any.whl
Size 106.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a57241156d726bd4b73f0455e40bc65802afab6ea89b3266c23164ba828de53f
BLAKE2b-256 checksum
How to use checksums
8c969312adf925fb297473887d6d0475d18ae30fa26b66c38daba21b1314f3c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

Security for az-migrate-dep-visu 0.1.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page