Skip to main content

Application Filters

The ApplicationFilters service manages application filter definitions in Strata Cloud Manager, enabling you to organize and filter applications based on categories, risk levels, and security behaviors.

Class Overview

The ApplicationFilters class provides CRUD operations for application filter objects. It is accessed through the client.application_filter attribute on an initialized Scm instance.

from scm.client import Scm

client = Scm(
client_id="your_client_id",
client_secret="your_client_secret",
tsg_id="your_tsg_id"
)

# Access the ApplicationFilters service
app_filters = client.application_filter

Key Attributes

AttributeTypeRequiredDescription
namestrYesName of filter (max 31 chars)
idUUIDYes*Unique identifier (*response only)
categoryList[str]NoList of application categories
sub_categoryList[str]NoList of application subcategories
technologyList[str]NoList of application technologies
riskList[int]NoList of risk levels (1-5)
evasiveboolNoFilter evasive applications
used_by_malwareboolNoFilter malware-associated apps
transfers_filesboolNoFilter file-transferring apps
has_known_vulnerabilitiesboolNoFilter apps with vulnerabilities
tunnels_other_appsboolNoFilter tunneling applications
prone_to_misuseboolNoFilter misuse-prone applications
pervasiveboolNoFilter pervasive applications
is_saasboolNoFilter SaaS applications
new_appidboolNoFilter new applications
excessive_bandwidth_useboolNoFilter apps using excessive bandwidth
saas_riskList[str]NoFilter by SaaS risk levels
saas_certificationsList[str]NoFilter by SaaS certifications
excludeList[str]NoList of applications to exclude
tagList[str]NoTags associated with the filter
folderstrYes**Folder location (**one container required)
snippetstrYes**Snippet location (**one container required)

* Exactly one of folder, snippet, or device is required.

Methods

List Application Filters

Retrieves a list of application filter objects with optional filtering.

filters = client.application_filter.list(
folder="Texas",
category=["business-systems"],
risk=[4, 5]
)

for f in filters:
print(f"Name: {f.name}, Categories: {f.category}, Risk: {f.risk}")

Fetch an Application Filter

Retrieves a single application filter by name and container.

filter_obj = client.application_filter.fetch(
name="high-risk-apps",
folder="Texas"
)
print(f"Found filter: {filter_obj.name}")

Create an Application Filter

Creates a new application filter definition.

new_filter = client.application_filter.create({
"name": "high-risk-apps",
"category": ["business-systems", "collaboration"],
"risk": [4, 5],
"folder": "Texas",
"has_known_vulnerabilities": True,
"used_by_malware": True
})

Update an Application Filter

Updates an existing application filter.

existing = client.application_filter.fetch(name="high-risk-apps", folder="Texas")
existing.risk = [3, 4, 5]
existing.prone_to_misuse = True

updated = client.application_filter.update(existing)

Delete an Application Filter

Deletes an application filter by ID.

client.application_filter.delete("123e4567-e89b-12d3-a456-426655440000")

Use Cases

Creating Security-Focused Filters

Define filters targeting applications with specific security characteristics.

from scm.client import Scm

client = Scm(
client_id="your_client_id",
client_secret="your_client_secret",
tsg_id="your_tsg_id"
)

# Filter for high-risk vulnerable applications
client.application_filter.create({
"name": "vulnerable-high-risk",
"risk": [4, 5],
"folder": "Texas",
"has_known_vulnerabilities": True,
"used_by_malware": True
})

# Filter for SaaS applications
client.application_filter.create({
"name": "saas-apps",
"folder": "Texas",
"is_saas": True,
"saas_risk": ["high", "medium"],
"saas_certifications": ["soc2", "iso27001"]
})

Advanced List Filtering

Use exact match and exclusions to narrow results.

# Only filters defined exactly in 'Texas'
exact_filters = client.application_filter.list(
folder="Texas",
exact_match=True
)

# Combine exact match with exclusions
combined = client.application_filter.list(
folder="Texas",
exact_match=True,
exclude_folders=["All"],
exclude_snippets=["default"]
)

for f in combined:
print(f"Filter: {f.name} in {f.folder}")

Error Handling

from scm.client import Scm
from scm.exceptions import (
InvalidObjectError,
MissingQueryParameterError,
NameNotUniqueError,
ObjectNotPresentError,
ReferenceNotZeroError
)

client = Scm(
client_id="your_client_id",
client_secret="your_client_secret",
tsg_id="your_tsg_id"
)

try:
new_filter = client.application_filter.create({
"name": "test-filter",
"category": ["business-systems"],
"risk": [4, 5],
"folder": "Texas",
"has_known_vulnerabilities": True
})
except InvalidObjectError as e:
print(f"Invalid filter data: {e.message}")
except NameNotUniqueError as e:
print(f"Filter name already exists: {e.message}")
except ObjectNotPresentError as e:
print(f"Filter not found: {e.message}")
except ReferenceNotZeroError as e:
print(f"Filter still in use: {e.message}")
except MissingQueryParameterError as e:
print(f"Missing parameter: {e.message}")