mirror of
https://github.com/prowler-cloud/prowler.git
synced 2025-12-19 05:17:47 +00:00
315 lines
9.5 KiB
Python
315 lines
9.5 KiB
Python
from dash import dcc, html
|
|
|
|
|
|
def create_date_dropdown(assesment_times: list) -> html.Div:
|
|
"""
|
|
Dropdown to select the date of the last available scan for each account.
|
|
Args:
|
|
assesment_times (list): List of dates of the last available scan for each account.
|
|
Returns:
|
|
html.Div: Dropdown to select the date of the last available scan for each account.
|
|
"""
|
|
return html.Div(
|
|
[
|
|
html.Div(
|
|
[
|
|
html.Label(
|
|
"Assessment date (last available scan) ",
|
|
className="text-prowler-stone-900 font-bold text-sm",
|
|
),
|
|
html.Img(
|
|
id="info-file-over",
|
|
src="/assets/images/icons/help-black.png",
|
|
className="w-5",
|
|
title="The date of the last available scan for each account is displayed here. If you have not run prowler yet, the date will be empty.",
|
|
),
|
|
],
|
|
style={"display": "inline-flex"},
|
|
),
|
|
dcc.Dropdown(
|
|
id="report-date-filter",
|
|
options=[
|
|
{"label": account, "value": account} for account in assesment_times
|
|
],
|
|
value=assesment_times[0],
|
|
clearable=False,
|
|
multi=False,
|
|
style={"color": "#000000", "width": "100%"},
|
|
),
|
|
],
|
|
)
|
|
|
|
|
|
def create_date_dropdown_compliance(assesment_times: list) -> html.Div:
|
|
"""
|
|
Dropdown to select the date of the last available scan for each account.
|
|
Args:
|
|
assesment_times (list): List of dates of the last available scan for each account.
|
|
Returns:
|
|
html.Div: Dropdown to select the date of the last available scan for each account.
|
|
"""
|
|
return html.Div(
|
|
[
|
|
html.Label(
|
|
"Assesment Date:", className="text-prowler-stone-900 font-bold text-sm"
|
|
),
|
|
dcc.Dropdown(
|
|
id="date-filter-analytics",
|
|
options=[
|
|
{"label": account, "value": account} for account in assesment_times
|
|
],
|
|
value=assesment_times[0],
|
|
clearable=False,
|
|
multi=False,
|
|
style={"color": "#000000", "width": "100%"},
|
|
),
|
|
],
|
|
)
|
|
|
|
|
|
def create_region_dropdown(regions: list) -> html.Div:
|
|
"""
|
|
Dropdown to select the region of the account.
|
|
Args:
|
|
regions (list): List of regions of the account.
|
|
Returns:
|
|
html.Div: Dropdown to select the region of the account.
|
|
"""
|
|
return html.Div(
|
|
[
|
|
html.Label(
|
|
"Region / Location / Namespace :",
|
|
className="text-prowler-stone-900 font-bold text-sm",
|
|
),
|
|
dcc.Dropdown(
|
|
id="region-filter",
|
|
options=[{"label": region, "value": region} for region in regions],
|
|
value=["All"], # Initial selection is ALL
|
|
clearable=False,
|
|
multi=True,
|
|
style={"color": "#000000", "width": "100%"},
|
|
),
|
|
],
|
|
)
|
|
|
|
|
|
def create_region_dropdown_compliance(regions: list) -> html.Div:
|
|
"""
|
|
Dropdown to select the region of the account.
|
|
Args:
|
|
regions (list): List of regions of the account.
|
|
Returns:
|
|
html.Div: Dropdown to select the region of the account.
|
|
"""
|
|
return html.Div(
|
|
[
|
|
html.Label(
|
|
"Region / Location / Namespace :",
|
|
className="text-prowler-stone-900 font-bold text-sm",
|
|
),
|
|
dcc.Dropdown(
|
|
id="region-filter-compliance",
|
|
options=[{"label": region, "value": region} for region in regions],
|
|
value=["All"], # Initial selection is ALL
|
|
clearable=False,
|
|
multi=True,
|
|
style={"color": "#000000", "width": "100%"},
|
|
),
|
|
],
|
|
)
|
|
|
|
|
|
def create_account_dropdown(accounts: list) -> html.Div:
|
|
"""
|
|
Dropdown to select the account.
|
|
Args:
|
|
accounts (list): List of accounts.
|
|
Returns:
|
|
html.Div: Dropdown to select the account.
|
|
"""
|
|
return html.Div(
|
|
[
|
|
html.Label(
|
|
"Account / Subscription / Project / Cluster :",
|
|
className="text-prowler-stone-900 font-bold text-sm",
|
|
),
|
|
dcc.Dropdown(
|
|
id="cloud-account-filter",
|
|
options=[{"label": account, "value": account} for account in accounts],
|
|
value=["All"], # Initial selection is ALL
|
|
clearable=False,
|
|
multi=True,
|
|
style={"color": "#000000", "width": "100%"},
|
|
),
|
|
],
|
|
)
|
|
|
|
|
|
def create_account_dropdown_compliance(accounts: list) -> html.Div:
|
|
"""
|
|
Dropdown to select the account.
|
|
Args:
|
|
accounts (list): List of accounts.
|
|
Returns:
|
|
html.Div: Dropdown to select the account.
|
|
"""
|
|
return html.Div(
|
|
[
|
|
html.Label(
|
|
"Account / Subscription / Project / Cluster :",
|
|
className="text-prowler-stone-900 font-bold text-sm",
|
|
),
|
|
dcc.Dropdown(
|
|
id="cloud-account-filter-compliance",
|
|
options=[{"label": account, "value": account} for account in accounts],
|
|
value=["All"], # Initial selection is ALL
|
|
clearable=False,
|
|
multi=True,
|
|
style={"color": "#000000", "width": "100%"},
|
|
),
|
|
],
|
|
)
|
|
|
|
|
|
def create_compliance_dropdown(compliance: list) -> html.Div:
|
|
"""
|
|
Dropdown to select the compliance.
|
|
Args:
|
|
compliance (list): List of compliance.
|
|
Returns:
|
|
html.Div: Dropdown to select the compliance.
|
|
"""
|
|
return html.Div(
|
|
[
|
|
html.Label(
|
|
"Compliance:", className="text-prowler-stone-900 font-bold text-sm"
|
|
),
|
|
dcc.Dropdown(
|
|
id="report-compliance-filter",
|
|
options=[{"label": i, "value": i} for i in compliance],
|
|
value=compliance[0],
|
|
clearable=False,
|
|
style={"color": "#000000"},
|
|
),
|
|
],
|
|
)
|
|
|
|
|
|
def create_severity_dropdown(severity: list) -> html.Div:
|
|
"""
|
|
Dropdown to select the severity.
|
|
Args:
|
|
severity (list): List of severity.
|
|
Returns:
|
|
html.Div: Dropdown to select the severity.
|
|
"""
|
|
return html.Div(
|
|
[
|
|
html.Label(
|
|
"Severity:", className="text-prowler-stone-900 font-bold text-sm"
|
|
),
|
|
dcc.Dropdown(
|
|
id="severity-filter",
|
|
options=[{"label": i, "value": i} for i in severity],
|
|
value=["All"],
|
|
clearable=False,
|
|
multi=True,
|
|
style={"color": "#000000"},
|
|
),
|
|
],
|
|
)
|
|
|
|
|
|
def create_service_dropdown(services: list) -> html.Div:
|
|
"""
|
|
Dropdown to select the service.
|
|
Args:
|
|
services (list): List of services.
|
|
Returns:
|
|
html.Div: Dropdown to select the service.
|
|
"""
|
|
return html.Div(
|
|
[
|
|
html.Label(
|
|
"Service:", className="text-prowler-stone-900 font-bold text-sm"
|
|
),
|
|
dcc.Dropdown(
|
|
id="service-filter",
|
|
options=[{"label": i, "value": i} for i in services],
|
|
value=["All"],
|
|
clearable=False,
|
|
multi=True,
|
|
style={"color": "#000000"},
|
|
),
|
|
],
|
|
)
|
|
|
|
|
|
def create_provider_dropdown(providers: list) -> html.Div:
|
|
"""
|
|
Dropdown to select the provider.
|
|
Args:
|
|
providers (list): List of providers.
|
|
Returns:
|
|
html.Div: Dropdown to select the provider.
|
|
"""
|
|
return html.Div(
|
|
[
|
|
html.Label(
|
|
"Provider:", className="text-prowler-stone-900 font-bold text-sm"
|
|
),
|
|
dcc.Dropdown(
|
|
id="provider-filter",
|
|
options=[{"label": i, "value": i} for i in providers],
|
|
value=["All"],
|
|
clearable=False,
|
|
multi=True,
|
|
style={"color": "#000000"},
|
|
),
|
|
],
|
|
)
|
|
|
|
|
|
def create_status_dropdown(status: list) -> html.Div:
|
|
"""
|
|
Dropdown to select the status.
|
|
Args:
|
|
status (list): List of status.
|
|
Returns:
|
|
html.Div: Dropdown to select the status.
|
|
"""
|
|
return html.Div(
|
|
[
|
|
html.Label("Status:", className="text-prowler-stone-900 font-bold text-sm"),
|
|
dcc.Dropdown(
|
|
id="status-filter",
|
|
options=[{"label": i, "value": i} for i in status],
|
|
value=["All"],
|
|
clearable=False,
|
|
multi=True,
|
|
style={"color": "#000000"},
|
|
),
|
|
],
|
|
)
|
|
|
|
|
|
def create_table_row_dropdown(table_rows: list) -> html.Div:
|
|
"""
|
|
Dropdown to select the number of rows in the table.
|
|
Args:
|
|
table_rows (list): List of number of rows.
|
|
Returns:
|
|
html.Div: Dropdown to select the number of rows in the table.
|
|
"""
|
|
return html.Div(
|
|
[
|
|
dcc.Dropdown(
|
|
id="table-rows",
|
|
options=[{"label": i, "value": i} for i in table_rows],
|
|
value=table_rows[0],
|
|
clearable=False,
|
|
style={"color": "#000000", "margin-right": "10px"},
|
|
),
|
|
],
|
|
)
|