Metadata-Version: 2.1
Name: RegScale-CLI
Version: 5.38.0
Summary: Command Line Interface (CLI) for bulk processing/loading data into RegScale
Home-page: https://github.com/RegScale/regscale-cli
Author: Travis Howerton
Author-email: thowerton@regscale.com
License: MIT
Platform: UNKNOWN
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >=3.9, <4
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: PyMuPDF (==1.21.0)
Requires-Dist: PyYAML (==6.0.1)
Requires-Dist: beautifulsoup4
Requires-Dist: boto3 (==1.26.119)
Requires-Dist: bs4
Requires-Dist: click (==8.1.3)
Requires-Dist: colorama (==0.4.5)
Requires-Dist: crowdstrike-falconpy (==1.2.15)
Requires-Dist: cryptography (>=42.0.4)
Requires-Dist: distro (==1.8.0)
Requires-Dist: docx (==0.2.4)
Requires-Dist: filelock (~=3.13.1)
Requires-Dist: fitz (==0.0.1.dev2)
Requires-Dist: frontend
Requires-Dist: google-api-python-client
Requires-Dist: google-cloud-asset (~=3.22)
Requires-Dist: google-cloud-securitycenter (~=1.25)
Requires-Dist: gql (~=3.5.0)
Requires-Dist: inflect
Requires-Dist: jira (==3.5.0)
Requires-Dist: jwcrypto (>=1.5.1)
Requires-Dist: lxml (==4.9.*)
Requires-Dist: markdown
Requires-Dist: matplotlib
Requires-Dist: msal (~=1.26.0)
Requires-Dist: nessus-file-reader
Requires-Dist: numpy (==1.23.3)
Requires-Dist: openpyxl
Requires-Dist: pandas
Requires-Dist: pdfplumber (==0.7.6)
Requires-Dist: pre-commit
Requires-Dist: psutil (==5.9.6)
Requires-Dist: pyTenable
Requires-Dist: pydantic (~=2.5)
Requires-Dist: pytest
Requires-Dist: python-docx
Requires-Dist: python-jwt (==4.0.0)
Requires-Dist: pyxnat (==1.5.*)
Requires-Dist: regscale-python-ssp
Requires-Dist: requests (>=2.31.0)
Requires-Dist: rich (==13.3.4)
Requires-Dist: setuptools
Requires-Dist: simple-salesforce
Requires-Dist: static
Requires-Dist: tools
Requires-Dist: wheel
Requires-Dist: xmltodict
Provides-Extra: airflow
Requires-Dist: PyMuPDF (==1.21.0) ; extra == 'airflow'
Requires-Dist: PyYAML (==6.0.1) ; extra == 'airflow'
Requires-Dist: apache-airflow-providers-common-sql ; extra == 'airflow'
Requires-Dist: apache-airflow-providers-postgres ; extra == 'airflow'
Requires-Dist: apache-airflow (>=2.8.4) ; extra == 'airflow'
Requires-Dist: beautifulsoup4 ; extra == 'airflow'
Requires-Dist: boto3 (==1.26.119) ; extra == 'airflow'
Requires-Dist: bs4 ; extra == 'airflow'
Requires-Dist: click (==8.1.3) ; extra == 'airflow'
Requires-Dist: colorama (==0.4.5) ; extra == 'airflow'
Requires-Dist: crowdstrike-falconpy (==1.2.15) ; extra == 'airflow'
Requires-Dist: cryptography (>=42.0.4) ; extra == 'airflow'
Requires-Dist: distro (==1.8.0) ; extra == 'airflow'
Requires-Dist: docx (==0.2.4) ; extra == 'airflow'
Requires-Dist: filelock (~=3.13.1) ; extra == 'airflow'
Requires-Dist: fitz (==0.0.1.dev2) ; extra == 'airflow'
Requires-Dist: flask ; extra == 'airflow'
Requires-Dist: flask-appbuilder ; extra == 'airflow'
Requires-Dist: frontend ; extra == 'airflow'
Requires-Dist: google-api-python-client ; extra == 'airflow'
Requires-Dist: google-cloud-asset (~=3.22) ; extra == 'airflow'
Requires-Dist: google-cloud-securitycenter (~=1.25) ; extra == 'airflow'
Requires-Dist: gql (~=3.5.0) ; extra == 'airflow'
Requires-Dist: inflect ; extra == 'airflow'
Requires-Dist: jinja2 ; extra == 'airflow'
Requires-Dist: jira (==3.5.0) ; extra == 'airflow'
Requires-Dist: jwcrypto (>=1.5.1) ; extra == 'airflow'
Requires-Dist: lxml (==4.9.*) ; extra == 'airflow'
Requires-Dist: markdown ; extra == 'airflow'
Requires-Dist: matplotlib ; extra == 'airflow'
Requires-Dist: msal (~=1.26.0) ; extra == 'airflow'
Requires-Dist: nessus-file-reader ; extra == 'airflow'
Requires-Dist: numpy (==1.23.3) ; extra == 'airflow'
Requires-Dist: openpyxl ; extra == 'airflow'
Requires-Dist: pandas ; extra == 'airflow'
Requires-Dist: pdfplumber (==0.7.6) ; extra == 'airflow'
Requires-Dist: pre-commit ; extra == 'airflow'
Requires-Dist: psutil (==5.9.6) ; extra == 'airflow'
Requires-Dist: psycopg2-binary ; extra == 'airflow'
Requires-Dist: pyTenable ; extra == 'airflow'
Requires-Dist: pydantic (~=2.5) ; extra == 'airflow'
Requires-Dist: pytest ; extra == 'airflow'
Requires-Dist: python-docx ; extra == 'airflow'
Requires-Dist: python-jwt (==4.0.0) ; extra == 'airflow'
Requires-Dist: pyxnat (==1.5.*) ; extra == 'airflow'
Requires-Dist: regscale-python-ssp ; extra == 'airflow'
Requires-Dist: requests (>=2.31.0) ; extra == 'airflow'
Requires-Dist: rich (==13.3.4) ; extra == 'airflow'
Requires-Dist: setuptools ; extra == 'airflow'
Requires-Dist: simple-salesforce ; extra == 'airflow'
Requires-Dist: static ; extra == 'airflow'
Requires-Dist: tools ; extra == 'airflow'
Requires-Dist: wheel ; extra == 'airflow'
Requires-Dist: xmltodict ; extra == 'airflow'
Provides-Extra: airflow-azure
Requires-Dist: PyMuPDF (==1.21.0) ; extra == 'airflow-azure'
Requires-Dist: PyYAML (==6.0.1) ; extra == 'airflow-azure'
Requires-Dist: apache-airflow-providers-common-sql ; extra == 'airflow-azure'
Requires-Dist: apache-airflow-providers-microsoft-azure ; extra == 'airflow-azure'
Requires-Dist: apache-airflow-providers-postgres ; extra == 'airflow-azure'
Requires-Dist: apache-airflow (>=2.8.4) ; extra == 'airflow-azure'
Requires-Dist: azure-storage-blob ; extra == 'airflow-azure'
Requires-Dist: beautifulsoup4 ; extra == 'airflow-azure'
Requires-Dist: boto3 (==1.26.119) ; extra == 'airflow-azure'
Requires-Dist: bs4 ; extra == 'airflow-azure'
Requires-Dist: click (==8.1.3) ; extra == 'airflow-azure'
Requires-Dist: colorama (==0.4.5) ; extra == 'airflow-azure'
Requires-Dist: crowdstrike-falconpy (==1.2.15) ; extra == 'airflow-azure'
Requires-Dist: cryptography (>=42.0.4) ; extra == 'airflow-azure'
Requires-Dist: distro (==1.8.0) ; extra == 'airflow-azure'
Requires-Dist: docx (==0.2.4) ; extra == 'airflow-azure'
Requires-Dist: filelock (~=3.13.1) ; extra == 'airflow-azure'
Requires-Dist: fitz (==0.0.1.dev2) ; extra == 'airflow-azure'
Requires-Dist: flask ; extra == 'airflow-azure'
Requires-Dist: flask-appbuilder ; extra == 'airflow-azure'
Requires-Dist: frontend ; extra == 'airflow-azure'
Requires-Dist: google-api-python-client ; extra == 'airflow-azure'
Requires-Dist: google-cloud-asset (~=3.22) ; extra == 'airflow-azure'
Requires-Dist: google-cloud-securitycenter (~=1.25) ; extra == 'airflow-azure'
Requires-Dist: gql (~=3.5.0) ; extra == 'airflow-azure'
Requires-Dist: inflect ; extra == 'airflow-azure'
Requires-Dist: jinja2 ; extra == 'airflow-azure'
Requires-Dist: jira (==3.5.0) ; extra == 'airflow-azure'
Requires-Dist: jwcrypto (>=1.5.1) ; extra == 'airflow-azure'
Requires-Dist: lxml (==4.9.*) ; extra == 'airflow-azure'
Requires-Dist: markdown ; extra == 'airflow-azure'
Requires-Dist: matplotlib ; extra == 'airflow-azure'
Requires-Dist: msal (~=1.26.0) ; extra == 'airflow-azure'
Requires-Dist: nessus-file-reader ; extra == 'airflow-azure'
Requires-Dist: numpy (==1.23.3) ; extra == 'airflow-azure'
Requires-Dist: openpyxl ; extra == 'airflow-azure'
Requires-Dist: pandas ; extra == 'airflow-azure'
Requires-Dist: pdfplumber (==0.7.6) ; extra == 'airflow-azure'
Requires-Dist: pendulum (==2.1.2) ; extra == 'airflow-azure'
Requires-Dist: pre-commit ; extra == 'airflow-azure'
Requires-Dist: psutil (==5.9.6) ; extra == 'airflow-azure'
Requires-Dist: psycopg2-binary ; extra == 'airflow-azure'
Requires-Dist: pyTenable ; extra == 'airflow-azure'
Requires-Dist: pydantic (~=2.5) ; extra == 'airflow-azure'
Requires-Dist: pytest ; extra == 'airflow-azure'
Requires-Dist: python-docx ; extra == 'airflow-azure'
Requires-Dist: python-jwt (==4.0.0) ; extra == 'airflow-azure'
Requires-Dist: pyxnat (==1.5.*) ; extra == 'airflow-azure'
Requires-Dist: regscale-python-ssp ; extra == 'airflow-azure'
Requires-Dist: requests (>=2.31.0) ; extra == 'airflow-azure'
Requires-Dist: rich (==13.3.4) ; extra == 'airflow-azure'
Requires-Dist: setuptools ; extra == 'airflow-azure'
Requires-Dist: simple-salesforce ; extra == 'airflow-azure'
Requires-Dist: static ; extra == 'airflow-azure'
Requires-Dist: tools ; extra == 'airflow-azure'
Requires-Dist: wheel ; extra == 'airflow-azure'
Requires-Dist: xmltodict ; extra == 'airflow-azure'
Provides-Extra: airflow-sqlserver
Requires-Dist: PyMuPDF (==1.21.0) ; extra == 'airflow-sqlserver'
Requires-Dist: PyYAML (==6.0.1) ; extra == 'airflow-sqlserver'
Requires-Dist: apache-airflow-providers-common-sql ; extra == 'airflow-sqlserver'
Requires-Dist: apache-airflow-providers-microsoft-mssql ; extra == 'airflow-sqlserver'
Requires-Dist: apache-airflow-providers-postgres ; extra == 'airflow-sqlserver'
Requires-Dist: apache-airflow (>=2.8.4) ; extra == 'airflow-sqlserver'
Requires-Dist: beautifulsoup4 ; extra == 'airflow-sqlserver'
Requires-Dist: boto3 (==1.26.119) ; extra == 'airflow-sqlserver'
Requires-Dist: bs4 ; extra == 'airflow-sqlserver'
Requires-Dist: click (==8.1.3) ; extra == 'airflow-sqlserver'
Requires-Dist: colorama (==0.4.5) ; extra == 'airflow-sqlserver'
Requires-Dist: crowdstrike-falconpy (==1.2.15) ; extra == 'airflow-sqlserver'
Requires-Dist: cryptography (>=42.0.4) ; extra == 'airflow-sqlserver'
Requires-Dist: distro (==1.8.0) ; extra == 'airflow-sqlserver'
Requires-Dist: docx (==0.2.4) ; extra == 'airflow-sqlserver'
Requires-Dist: filelock (~=3.13.1) ; extra == 'airflow-sqlserver'
Requires-Dist: fitz (==0.0.1.dev2) ; extra == 'airflow-sqlserver'
Requires-Dist: flask ; extra == 'airflow-sqlserver'
Requires-Dist: flask-appbuilder ; extra == 'airflow-sqlserver'
Requires-Dist: frontend ; extra == 'airflow-sqlserver'
Requires-Dist: google-api-python-client ; extra == 'airflow-sqlserver'
Requires-Dist: google-cloud-asset (~=3.22) ; extra == 'airflow-sqlserver'
Requires-Dist: google-cloud-securitycenter (~=1.25) ; extra == 'airflow-sqlserver'
Requires-Dist: gql (~=3.5.0) ; extra == 'airflow-sqlserver'
Requires-Dist: inflect ; extra == 'airflow-sqlserver'
Requires-Dist: jinja2 ; extra == 'airflow-sqlserver'
Requires-Dist: jira (==3.5.0) ; extra == 'airflow-sqlserver'
Requires-Dist: jwcrypto (>=1.5.1) ; extra == 'airflow-sqlserver'
Requires-Dist: lxml (==4.9.*) ; extra == 'airflow-sqlserver'
Requires-Dist: markdown ; extra == 'airflow-sqlserver'
Requires-Dist: matplotlib ; extra == 'airflow-sqlserver'
Requires-Dist: msal (~=1.26.0) ; extra == 'airflow-sqlserver'
Requires-Dist: nessus-file-reader ; extra == 'airflow-sqlserver'
Requires-Dist: numpy (==1.23.3) ; extra == 'airflow-sqlserver'
Requires-Dist: openpyxl ; extra == 'airflow-sqlserver'
Requires-Dist: pandas ; extra == 'airflow-sqlserver'
Requires-Dist: pdfplumber (==0.7.6) ; extra == 'airflow-sqlserver'
Requires-Dist: pre-commit ; extra == 'airflow-sqlserver'
Requires-Dist: psutil (==5.9.6) ; extra == 'airflow-sqlserver'
Requires-Dist: psycopg2-binary ; extra == 'airflow-sqlserver'
Requires-Dist: pyTenable ; extra == 'airflow-sqlserver'
Requires-Dist: pydantic (~=2.5) ; extra == 'airflow-sqlserver'
Requires-Dist: pymssql ; extra == 'airflow-sqlserver'
Requires-Dist: pyodbc ; extra == 'airflow-sqlserver'
Requires-Dist: pytest ; extra == 'airflow-sqlserver'
Requires-Dist: python-docx ; extra == 'airflow-sqlserver'
Requires-Dist: python-jwt (==4.0.0) ; extra == 'airflow-sqlserver'
Requires-Dist: pyxnat (==1.5.*) ; extra == 'airflow-sqlserver'
Requires-Dist: regscale-python-ssp ; extra == 'airflow-sqlserver'
Requires-Dist: requests (>=2.31.0) ; extra == 'airflow-sqlserver'
Requires-Dist: rich (==13.3.4) ; extra == 'airflow-sqlserver'
Requires-Dist: setuptools ; extra == 'airflow-sqlserver'
Requires-Dist: simple-salesforce ; extra == 'airflow-sqlserver'
Requires-Dist: static ; extra == 'airflow-sqlserver'
Requires-Dist: tools ; extra == 'airflow-sqlserver'
Requires-Dist: wheel ; extra == 'airflow-sqlserver'
Requires-Dist: xmltodict ; extra == 'airflow-sqlserver'
Provides-Extra: all
Requires-Dist: PyMuPDF (==1.21.0) ; extra == 'all'
Requires-Dist: PyYAML (==6.0.1) ; extra == 'all'
Requires-Dist: ansible ; extra == 'all'
Requires-Dist: apache-airflow-providers-common-sql ; extra == 'all'
Requires-Dist: apache-airflow-providers-postgres ; extra == 'all'
Requires-Dist: apache-airflow (>=2.8.4) ; extra == 'all'
Requires-Dist: beautifulsoup4 ; extra == 'all'
Requires-Dist: boto3 (==1.26.119) ; extra == 'all'
Requires-Dist: bs4 ; extra == 'all'
Requires-Dist: click (==8.1.3) ; extra == 'all'
Requires-Dist: colorama (==0.4.5) ; extra == 'all'
Requires-Dist: crowdstrike-falconpy (==1.2.15) ; extra == 'all'
Requires-Dist: cryptography (>=42.0.4) ; extra == 'all'
Requires-Dist: distro (==1.8.0) ; extra == 'all'
Requires-Dist: docx (==0.2.4) ; extra == 'all'
Requires-Dist: filelock (~=3.13.1) ; extra == 'all'
Requires-Dist: fitz (==0.0.1.dev2) ; extra == 'all'
Requires-Dist: flask ; extra == 'all'
Requires-Dist: flask-apispec ; extra == 'all'
Requires-Dist: flask-appbuilder ; extra == 'all'
Requires-Dist: flask-rebar ; extra == 'all'
Requires-Dist: flask-restx ; extra == 'all'
Requires-Dist: frontend ; extra == 'all'
Requires-Dist: google-api-python-client ; extra == 'all'
Requires-Dist: google-cloud-asset (~=3.22) ; extra == 'all'
Requires-Dist: google-cloud-securitycenter (~=1.25) ; extra == 'all'
Requires-Dist: gql (~=3.5.0) ; extra == 'all'
Requires-Dist: inflect ; extra == 'all'
Requires-Dist: jinja2 ; extra == 'all'
Requires-Dist: jira (==3.5.0) ; extra == 'all'
Requires-Dist: jwcrypto (>=1.5.1) ; extra == 'all'
Requires-Dist: lxml (==4.9.*) ; extra == 'all'
Requires-Dist: markdown ; extra == 'all'
Requires-Dist: matplotlib ; extra == 'all'
Requires-Dist: msal (~=1.26.0) ; extra == 'all'
Requires-Dist: nessus-file-reader ; extra == 'all'
Requires-Dist: numpy (==1.23.3) ; extra == 'all'
Requires-Dist: openpyxl ; extra == 'all'
Requires-Dist: pandas ; extra == 'all'
Requires-Dist: pdfplumber (==0.7.6) ; extra == 'all'
Requires-Dist: pre-commit ; extra == 'all'
Requires-Dist: psutil (==5.9.6) ; extra == 'all'
Requires-Dist: psycopg2-binary ; extra == 'all'
Requires-Dist: pyTenable ; extra == 'all'
Requires-Dist: pydantic (~=2.5) ; extra == 'all'
Requires-Dist: pytest ; extra == 'all'
Requires-Dist: python-docx ; extra == 'all'
Requires-Dist: python-jwt (==4.0.0) ; extra == 'all'
Requires-Dist: pyxnat (==1.5.*) ; extra == 'all'
Requires-Dist: regscale-python-ssp ; extra == 'all'
Requires-Dist: requests (>=2.31.0) ; extra == 'all'
Requires-Dist: rich (==13.3.4) ; extra == 'all'
Requires-Dist: setuptools ; extra == 'all'
Requires-Dist: simple-salesforce ; extra == 'all'
Requires-Dist: static ; extra == 'all'
Requires-Dist: tools ; extra == 'all'
Requires-Dist: werkzeug (>=2.3.8) ; extra == 'all'
Requires-Dist: wheel ; extra == 'all'
Requires-Dist: xmltodict ; extra == 'all'
Provides-Extra: ansible
Requires-Dist: PyMuPDF (==1.21.0) ; extra == 'ansible'
Requires-Dist: PyYAML (==6.0.1) ; extra == 'ansible'
Requires-Dist: ansible ; extra == 'ansible'
Requires-Dist: beautifulsoup4 ; extra == 'ansible'
Requires-Dist: boto3 (==1.26.119) ; extra == 'ansible'
Requires-Dist: bs4 ; extra == 'ansible'
Requires-Dist: click (==8.1.3) ; extra == 'ansible'
Requires-Dist: colorama (==0.4.5) ; extra == 'ansible'
Requires-Dist: crowdstrike-falconpy (==1.2.15) ; extra == 'ansible'
Requires-Dist: cryptography (>=42.0.4) ; extra == 'ansible'
Requires-Dist: distro (==1.8.0) ; extra == 'ansible'
Requires-Dist: docx (==0.2.4) ; extra == 'ansible'
Requires-Dist: filelock (~=3.13.1) ; extra == 'ansible'
Requires-Dist: fitz (==0.0.1.dev2) ; extra == 'ansible'
Requires-Dist: frontend ; extra == 'ansible'
Requires-Dist: google-api-python-client ; extra == 'ansible'
Requires-Dist: google-cloud-asset (~=3.22) ; extra == 'ansible'
Requires-Dist: google-cloud-securitycenter (~=1.25) ; extra == 'ansible'
Requires-Dist: gql (~=3.5.0) ; extra == 'ansible'
Requires-Dist: inflect ; extra == 'ansible'
Requires-Dist: jinja2 ; extra == 'ansible'
Requires-Dist: jira (==3.5.0) ; extra == 'ansible'
Requires-Dist: jwcrypto (>=1.5.1) ; extra == 'ansible'
Requires-Dist: lxml (==4.9.*) ; extra == 'ansible'
Requires-Dist: markdown ; extra == 'ansible'
Requires-Dist: matplotlib ; extra == 'ansible'
Requires-Dist: msal (~=1.26.0) ; extra == 'ansible'
Requires-Dist: nessus-file-reader ; extra == 'ansible'
Requires-Dist: numpy (==1.23.3) ; extra == 'ansible'
Requires-Dist: openpyxl ; extra == 'ansible'
Requires-Dist: pandas ; extra == 'ansible'
Requires-Dist: pdfplumber (==0.7.6) ; extra == 'ansible'
Requires-Dist: pre-commit ; extra == 'ansible'
Requires-Dist: psutil (==5.9.6) ; extra == 'ansible'
Requires-Dist: pyTenable ; extra == 'ansible'
Requires-Dist: pydantic (~=2.5) ; extra == 'ansible'
Requires-Dist: pytest ; extra == 'ansible'
Requires-Dist: python-docx ; extra == 'ansible'
Requires-Dist: python-jwt (==4.0.0) ; extra == 'ansible'
Requires-Dist: pyxnat (==1.5.*) ; extra == 'ansible'
Requires-Dist: regscale-python-ssp ; extra == 'ansible'
Requires-Dist: requests (>=2.31.0) ; extra == 'ansible'
Requires-Dist: rich (==13.3.4) ; extra == 'ansible'
Requires-Dist: setuptools ; extra == 'ansible'
Requires-Dist: simple-salesforce ; extra == 'ansible'
Requires-Dist: static ; extra == 'ansible'
Requires-Dist: tools ; extra == 'ansible'
Requires-Dist: wheel ; extra == 'ansible'
Requires-Dist: xmltodict ; extra == 'ansible'
Provides-Extra: dev
Requires-Dist: GitPython ; extra == 'dev'
Requires-Dist: PyMuPDF (==1.21.0) ; extra == 'dev'
Requires-Dist: PyYAML (==6.0.1) ; extra == 'dev'
Requires-Dist: beautifulsoup4 ; extra == 'dev'
Requires-Dist: black ; extra == 'dev'
Requires-Dist: boto3 (==1.26.119) ; extra == 'dev'
Requires-Dist: bs4 ; extra == 'dev'
Requires-Dist: click (==8.1.3) ; extra == 'dev'
Requires-Dist: colorama (==0.4.5) ; extra == 'dev'
Requires-Dist: coveralls ; extra == 'dev'
Requires-Dist: crowdstrike-falconpy (==1.2.15) ; extra == 'dev'
Requires-Dist: cryptography (>=42.0.4) ; extra == 'dev'
Requires-Dist: darglint ; extra == 'dev'
Requires-Dist: distro (==1.8.0) ; extra == 'dev'
Requires-Dist: docx (==0.2.4) ; extra == 'dev'
Requires-Dist: filelock (~=3.13.1) ; extra == 'dev'
Requires-Dist: fitz (==0.0.1.dev2) ; extra == 'dev'
Requires-Dist: flake8 ; extra == 'dev'
Requires-Dist: freezegun ; extra == 'dev'
Requires-Dist: frontend ; extra == 'dev'
Requires-Dist: google-api-python-client ; extra == 'dev'
Requires-Dist: google-cloud-asset (~=3.22) ; extra == 'dev'
Requires-Dist: google-cloud-securitycenter (~=1.25) ; extra == 'dev'
Requires-Dist: gql (~=3.5.0) ; extra == 'dev'
Requires-Dist: inflect ; extra == 'dev'
Requires-Dist: isort ; extra == 'dev'
Requires-Dist: jira (==3.5.0) ; extra == 'dev'
Requires-Dist: jwcrypto (>=1.5.1) ; extra == 'dev'
Requires-Dist: lxml-stubs ; extra == 'dev'
Requires-Dist: lxml (==4.9.*) ; extra == 'dev'
Requires-Dist: markdown ; extra == 'dev'
Requires-Dist: matplotlib ; extra == 'dev'
Requires-Dist: moto ; extra == 'dev'
Requires-Dist: msal (~=1.26.0) ; extra == 'dev'
Requires-Dist: mypy ; extra == 'dev'
Requires-Dist: nessus-file-reader ; extra == 'dev'
Requires-Dist: numpy (==1.23.3) ; extra == 'dev'
Requires-Dist: openpyxl ; extra == 'dev'
Requires-Dist: pandas ; extra == 'dev'
Requires-Dist: pandas-stubs ; extra == 'dev'
Requires-Dist: pdfplumber (==0.7.6) ; extra == 'dev'
Requires-Dist: pre-commit ; extra == 'dev'
Requires-Dist: psutil (==5.9.6) ; extra == 'dev'
Requires-Dist: pyTenable ; extra == 'dev'
Requires-Dist: pydantic (~=2.5) ; extra == 'dev'
Requires-Dist: pydoclint ; extra == 'dev'
Requires-Dist: pylint ; extra == 'dev'
Requires-Dist: pytest ; extra == 'dev'
Requires-Dist: pytest-cov ; extra == 'dev'
Requires-Dist: pytest-mock ; extra == 'dev'
Requires-Dist: pytest-xdist ; extra == 'dev'
Requires-Dist: pytest (>=5) ; extra == 'dev'
Requires-Dist: python-docx ; extra == 'dev'
Requires-Dist: python-jwt (==4.0.0) ; extra == 'dev'
Requires-Dist: pyxnat (==1.5.*) ; extra == 'dev'
Requires-Dist: radon ; extra == 'dev'
Requires-Dist: regscale-python-ssp ; extra == 'dev'
Requires-Dist: requests (>=2.31.0) ; extra == 'dev'
Requires-Dist: rich (==13.3.4) ; extra == 'dev'
Requires-Dist: setuptools ; extra == 'dev'
Requires-Dist: simple-salesforce ; extra == 'dev'
Requires-Dist: sphinx ; extra == 'dev'
Requires-Dist: sphinx-autodoc-typehints ; extra == 'dev'
Requires-Dist: sphinx-click ; extra == 'dev'
Requires-Dist: sphinx-rtd-theme ; extra == 'dev'
Requires-Dist: static ; extra == 'dev'
Requires-Dist: tools ; extra == 'dev'
Requires-Dist: types-python-dateutil ; extra == 'dev'
Requires-Dist: types-pyyaml ; extra == 'dev'
Requires-Dist: types-requests ; extra == 'dev'
Requires-Dist: watchdog ; extra == 'dev'
Requires-Dist: wheel ; extra == 'dev'
Requires-Dist: xmltodict ; extra == 'dev'
Provides-Extra: server
Requires-Dist: PyMuPDF (==1.21.0) ; extra == 'server'
Requires-Dist: PyYAML (==6.0.1) ; extra == 'server'
Requires-Dist: beautifulsoup4 ; extra == 'server'
Requires-Dist: boto3 (==1.26.119) ; extra == 'server'
Requires-Dist: bs4 ; extra == 'server'
Requires-Dist: click (==8.1.3) ; extra == 'server'
Requires-Dist: colorama (==0.4.5) ; extra == 'server'
Requires-Dist: crowdstrike-falconpy (==1.2.15) ; extra == 'server'
Requires-Dist: cryptography (>=42.0.4) ; extra == 'server'
Requires-Dist: distro (==1.8.0) ; extra == 'server'
Requires-Dist: docx (==0.2.4) ; extra == 'server'
Requires-Dist: filelock (~=3.13.1) ; extra == 'server'
Requires-Dist: fitz (==0.0.1.dev2) ; extra == 'server'
Requires-Dist: flask ; extra == 'server'
Requires-Dist: flask-apispec ; extra == 'server'
Requires-Dist: flask-appbuilder ; extra == 'server'
Requires-Dist: flask-rebar ; extra == 'server'
Requires-Dist: flask-restx ; extra == 'server'
Requires-Dist: frontend ; extra == 'server'
Requires-Dist: google-api-python-client ; extra == 'server'
Requires-Dist: google-cloud-asset (~=3.22) ; extra == 'server'
Requires-Dist: google-cloud-securitycenter (~=1.25) ; extra == 'server'
Requires-Dist: gql (~=3.5.0) ; extra == 'server'
Requires-Dist: inflect ; extra == 'server'
Requires-Dist: jira (==3.5.0) ; extra == 'server'
Requires-Dist: jwcrypto (>=1.5.1) ; extra == 'server'
Requires-Dist: lxml (==4.9.*) ; extra == 'server'
Requires-Dist: markdown ; extra == 'server'
Requires-Dist: matplotlib ; extra == 'server'
Requires-Dist: msal (~=1.26.0) ; extra == 'server'
Requires-Dist: nessus-file-reader ; extra == 'server'
Requires-Dist: numpy (==1.23.3) ; extra == 'server'
Requires-Dist: openpyxl ; extra == 'server'
Requires-Dist: pandas ; extra == 'server'
Requires-Dist: pdfplumber (==0.7.6) ; extra == 'server'
Requires-Dist: pre-commit ; extra == 'server'
Requires-Dist: psutil (==5.9.6) ; extra == 'server'
Requires-Dist: pyTenable ; extra == 'server'
Requires-Dist: pydantic (~=2.5) ; extra == 'server'
Requires-Dist: pytest ; extra == 'server'
Requires-Dist: python-docx ; extra == 'server'
Requires-Dist: python-jwt (==4.0.0) ; extra == 'server'
Requires-Dist: pyxnat (==1.5.*) ; extra == 'server'
Requires-Dist: regscale-python-ssp ; extra == 'server'
Requires-Dist: requests (>=2.31.0) ; extra == 'server'
Requires-Dist: rich (==13.3.4) ; extra == 'server'
Requires-Dist: setuptools ; extra == 'server'
Requires-Dist: simple-salesforce ; extra == 'server'
Requires-Dist: static ; extra == 'server'
Requires-Dist: tools ; extra == 'server'
Requires-Dist: werkzeug (>=2.3.8) ; extra == 'server'
Requires-Dist: wheel ; extra == 'server'
Requires-Dist: xmltodict ; extra == 'server'

# RegScale Command Line Interface (CLI)

This CLI application is for supporting advanced automation and bulk data processing related to the [RegScale Compliance Automation Platform](https://www.regscale.com).  This application is intended to run as a "side car" that be scheduled via CRON job or serverless function to perform sophisticated data processing.  The CLI includes multiple libraries for processing data, connecting to RegScale Application Programming Interfaces (APIs), and commercial integrations.  This software may be packaged and included in other commercial software to lower the level of effort associated with building RegScale integrations to other commercial tools.

See [full documentation on regscale.readme.io](https://regscale.readme.io/docs/overview).


## Installation

Create a virtual environment and install required Python libraries.

### Shell
```shell
# create and activate python virtual environment
python -m venv venv

# initialize environment
source venv/bin/activate

# upgrade pip
pip install --upgrade pip

# install RegScale CLI
pip install regscale-cli

# optional: install application with "server" packages
pip install "regscale-cli[server]"
```

### PowerShell
```PowerShell
# create and activate python virtual environment
python -m venv venv

# initialize environment
.\venv\Scripts\Activate.ps1

# upgrade pip
pip install --upgrade pip

# install RegScale CLI
pip install regscale-cli

# optional: install application with "server" packages
pip install "regscale-cli[server]"
```

## Initialization

Initialize your CLI environment with the `init` command:

```shell
# initialize RegScale CLI environment
regscale init
```

The CLI will generate a default init.yaml file and prompt you for RegScale domain and to log in:

```shell
Initializing your RegScale CLI environment...
Would you like to change your RegScale domain from https://regscale.yourcompany.com/? (Y/n): y

Please enter your RegScale domain.
Example: https://mydomain.regscale.com/
Domain: https://regscale.mycomapny.com
[2023/01/20 04:32;41] INFO     [2023/01/20 04:32;41] [INFO ]  Valid URL provided, regscale.py:349
                               init.yaml has been updated.                                       
Would you like to log in to your RegScale instance? (Y/n): y
Please enter your username: rross
Please enter your password:
```

## Leaving the Virtual Environment

When you are done working with the CLI, you can leave the virtual environment with the `deactivate` command. This will return you to your system's default Python environment and this will work on PowerShell or shell.


## Use Cases

- Sidecar for bulk processing compliance data such as vulnerability scans or continuous monitoring logs
- Processing and ingest of data such as National Institute of Standards and Technology (NIST) Open Security Control Assessment Language (OSCAL)
- Running CRON jobs to bulk-process data
- Managing users and identities from external sources
- Threat intelligence feeds

## Specific Integrations

- See the [RegScale Documentation](https://regscale.readme.io/docs/overview) for details.



