splunk-soar-sdk 3.3.2__py3-none-any.whl → 3.5.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- soar_sdk/abstract.py +7 -6
- soar_sdk/action_results.py +7 -7
- soar_sdk/actions_manager.py +6 -6
- soar_sdk/apis/artifact.py +3 -3
- soar_sdk/apis/container.py +2 -2
- soar_sdk/apis/utils.py +3 -2
- soar_sdk/apis/vault.py +1 -0
- soar_sdk/app.py +24 -27
- soar_sdk/app_cli_runner.py +7 -6
- soar_sdk/app_client.py +3 -4
- soar_sdk/asset.py +7 -9
- soar_sdk/asset_state.py +1 -2
- soar_sdk/async_utils.py +1 -2
- soar_sdk/cli/cli.py +2 -2
- soar_sdk/cli/init/cli.py +5 -5
- soar_sdk/cli/manifests/deserializers.py +4 -3
- soar_sdk/cli/manifests/processors.py +2 -2
- soar_sdk/cli/manifests/serializers.py +4 -4
- soar_sdk/cli/package/cli.py +14 -14
- soar_sdk/cli/package/utils.py +3 -2
- soar_sdk/cli/path_utils.py +1 -1
- soar_sdk/code_renderers/action_renderer.py +5 -4
- soar_sdk/code_renderers/app_renderer.py +1 -1
- soar_sdk/code_renderers/asset_renderer.py +1 -1
- soar_sdk/code_renderers/renderer.py +2 -2
- soar_sdk/compat.py +2 -1
- soar_sdk/decorators/__init__.py +3 -3
- soar_sdk/decorators/action.py +7 -11
- soar_sdk/decorators/make_request.py +9 -11
- soar_sdk/decorators/on_es_poll.py +7 -10
- soar_sdk/decorators/on_poll.py +7 -11
- soar_sdk/decorators/test_connectivity.py +5 -6
- soar_sdk/decorators/view_handler.py +6 -7
- soar_sdk/decorators/webhook.py +3 -5
- soar_sdk/extras/__init__.py +0 -0
- soar_sdk/extras/email/__init__.py +9 -0
- soar_sdk/extras/email/processor.py +1171 -0
- soar_sdk/extras/email/rfc5322.py +335 -0
- soar_sdk/extras/email/utils.py +178 -0
- soar_sdk/input_spec.py +4 -3
- soar_sdk/logging.py +5 -4
- soar_sdk/meta/actions.py +3 -3
- soar_sdk/meta/dependencies.py +6 -9
- soar_sdk/meta/webhooks.py +2 -1
- soar_sdk/models/__init__.py +1 -1
- soar_sdk/models/artifact.py +1 -0
- soar_sdk/models/attachment_input.py +1 -1
- soar_sdk/models/container.py +2 -1
- soar_sdk/models/finding.py +2 -1
- soar_sdk/models/vault_attachment.py +1 -0
- soar_sdk/models/view.py +2 -0
- soar_sdk/params.py +12 -5
- soar_sdk/shims/phantom/action_result.py +1 -1
- soar_sdk/shims/phantom/app.py +1 -1
- soar_sdk/shims/phantom/base_connector.py +3 -4
- soar_sdk/shims/phantom/connector_result.py +0 -1
- soar_sdk/shims/phantom/install_info.py +1 -1
- soar_sdk/shims/phantom/ph_ipc.py +2 -1
- soar_sdk/shims/phantom/vault.py +8 -6
- soar_sdk/shims/phantom_common/app_interface/app_interface.py +1 -0
- soar_sdk/types.py +1 -1
- soar_sdk/views/component_registry.py +0 -1
- soar_sdk/views/template_filters.py +4 -4
- soar_sdk/views/template_renderer.py +3 -2
- soar_sdk/views/view_parser.py +8 -6
- soar_sdk/webhooks/models.py +3 -3
- soar_sdk/webhooks/routing.py +3 -4
- {splunk_soar_sdk-3.3.2.dist-info → splunk_soar_sdk-3.5.0.dist-info}/METADATA +3 -1
- splunk_soar_sdk-3.5.0.dist-info/RECORD +115 -0
- splunk_soar_sdk-3.3.2.dist-info/RECORD +0 -110
- {splunk_soar_sdk-3.3.2.dist-info → splunk_soar_sdk-3.5.0.dist-info}/WHEEL +0 -0
- {splunk_soar_sdk-3.3.2.dist-info → splunk_soar_sdk-3.5.0.dist-info}/entry_points.txt +0 -0
- {splunk_soar_sdk-3.3.2.dist-info → splunk_soar_sdk-3.5.0.dist-info}/licenses/LICENSE +0 -0
soar_sdk/abstract.py
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
from abc import abstractmethod
|
|
2
|
+
from collections.abc import AsyncIterable, Iterable, Mapping
|
|
2
3
|
from typing import Any, Generic, TypeVar
|
|
3
|
-
from collections.abc import Mapping, Iterable, AsyncIterable
|
|
4
4
|
|
|
5
|
-
from soar_sdk.apis.vault import Vault
|
|
6
|
-
from soar_sdk.apis.artifact import Artifact
|
|
7
|
-
from soar_sdk.apis.container import Container
|
|
8
|
-
from soar_sdk.action_results import ActionOutput
|
|
9
5
|
import httpx
|
|
10
|
-
from pydantic.dataclasses import dataclass
|
|
11
6
|
from pydantic import field_validator
|
|
7
|
+
from pydantic.dataclasses import dataclass
|
|
8
|
+
|
|
9
|
+
from soar_sdk.action_results import ActionOutput
|
|
10
|
+
from soar_sdk.apis.artifact import Artifact
|
|
11
|
+
from soar_sdk.apis.container import Container
|
|
12
|
+
from soar_sdk.apis.vault import Vault
|
|
12
13
|
|
|
13
14
|
JSONType = dict[str, Any] | list[Any] | str | int | float | bool | None
|
|
14
15
|
SummaryType = TypeVar("SummaryType", bound=ActionOutput)
|
soar_sdk/action_results.py
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
from typing import Union, get_origin, get_args, Any
|
|
2
|
-
from collections.abc import Iterator
|
|
3
|
-
from typing_extensions import TypedDict
|
|
4
|
-
from typing import NotRequired
|
|
5
|
-
from pydantic import BaseModel, Field, ConfigDict
|
|
6
1
|
import itertools
|
|
7
2
|
import types
|
|
3
|
+
from collections.abc import Iterator
|
|
4
|
+
from typing import Any, NotRequired, Union, get_args, get_origin
|
|
5
|
+
|
|
6
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
7
|
+
from typing_extensions import TypedDict
|
|
8
8
|
|
|
9
9
|
from soar_sdk.compat import remove_when_soar_newer_than
|
|
10
|
-
from soar_sdk.shims.phantom.action_result import ActionResult as PhantomActionResult
|
|
11
|
-
from soar_sdk.meta.datatypes import as_datatype
|
|
12
10
|
from soar_sdk.field_utils import parse_json_schema_extra
|
|
11
|
+
from soar_sdk.meta.datatypes import as_datatype
|
|
12
|
+
from soar_sdk.shims.phantom.action_result import ActionResult as PhantomActionResult
|
|
13
13
|
|
|
14
14
|
remove_when_soar_newer_than(
|
|
15
15
|
"7.0.0", "NotRequired from typing_extensions is in typing in Python 3.11+"
|
soar_sdk/actions_manager.py
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
from typing import Any
|
|
2
1
|
import os
|
|
3
2
|
from pathlib import Path
|
|
3
|
+
from typing import Any
|
|
4
|
+
|
|
5
|
+
from pydantic import ValidationError
|
|
4
6
|
|
|
5
7
|
from soar_sdk.compat import remove_when_soar_newer_than
|
|
6
8
|
from soar_sdk.input_spec import InputSpecification
|
|
7
|
-
from soar_sdk.
|
|
8
|
-
|
|
9
|
+
from soar_sdk.logging import getLogger
|
|
9
10
|
from soar_sdk.meta.actions import ActionMeta
|
|
10
|
-
from soar_sdk.types import Action
|
|
11
|
-
from pydantic import ValidationError
|
|
12
11
|
from soar_sdk.shims.phantom.action_result import ActionResult as PhantomActionResult
|
|
12
|
+
from soar_sdk.shims.phantom.base_connector import BaseConnector
|
|
13
13
|
from soar_sdk.shims.phantom.install_info import is_onprem_broker_install
|
|
14
|
-
from soar_sdk.
|
|
14
|
+
from soar_sdk.types import Action
|
|
15
15
|
|
|
16
16
|
logger = getLogger()
|
|
17
17
|
|
soar_sdk/apis/artifact.py
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import json
|
|
2
2
|
from typing import TYPE_CHECKING
|
|
3
3
|
|
|
4
|
-
from soar_sdk.exceptions import ActionFailure, SoarAPIError
|
|
5
|
-
from soar_sdk.shims.phantom.json_keys import json_keys as ph_jsons
|
|
6
|
-
from soar_sdk.shims.phantom.consts import consts as ph_consts
|
|
7
4
|
from soar_sdk.apis.utils import is_client_authenticated
|
|
5
|
+
from soar_sdk.exceptions import ActionFailure, SoarAPIError
|
|
8
6
|
from soar_sdk.logging import getLogger
|
|
7
|
+
from soar_sdk.shims.phantom.consts import consts as ph_consts
|
|
8
|
+
from soar_sdk.shims.phantom.json_keys import json_keys as ph_jsons
|
|
9
9
|
|
|
10
10
|
if TYPE_CHECKING:
|
|
11
11
|
from soar_sdk.abstract import SOARClient
|
soar_sdk/apis/container.py
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import json
|
|
2
2
|
from typing import TYPE_CHECKING
|
|
3
3
|
|
|
4
|
-
from soar_sdk.
|
|
4
|
+
from soar_sdk.apis.utils import is_client_authenticated
|
|
5
5
|
from soar_sdk.exceptions import ActionFailure, SoarAPIError
|
|
6
6
|
from soar_sdk.logging import getLogger
|
|
7
|
-
from soar_sdk.
|
|
7
|
+
from soar_sdk.shims.phantom.json_keys import json_keys as ph_jsons
|
|
8
8
|
|
|
9
9
|
if TYPE_CHECKING:
|
|
10
10
|
from soar_sdk.abstract import SOARClient
|
soar_sdk/apis/utils.py
CHANGED
soar_sdk/apis/vault.py
CHANGED
soar_sdk/app.py
CHANGED
|
@@ -1,48 +1,45 @@
|
|
|
1
1
|
import importlib.util
|
|
2
2
|
import inspect
|
|
3
3
|
import json
|
|
4
|
-
from pathlib import Path
|
|
5
4
|
import sys
|
|
5
|
+
import uuid
|
|
6
|
+
from collections.abc import Callable, Iterator
|
|
7
|
+
from pathlib import Path
|
|
6
8
|
from typing import Any
|
|
7
|
-
from collections.abc import Callable
|
|
8
|
-
from collections.abc import Iterator
|
|
9
9
|
from zoneinfo import ZoneInfo
|
|
10
10
|
|
|
11
|
+
from soar_sdk.abstract import SOARClient, SOARClientAuth
|
|
12
|
+
from soar_sdk.action_results import ActionOutput, ActionResult
|
|
13
|
+
from soar_sdk.actions_manager import ActionsManager
|
|
14
|
+
from soar_sdk.app_cli_runner import AppCliRunner
|
|
15
|
+
from soar_sdk.app_client import AppClient
|
|
11
16
|
from soar_sdk.asset import BaseAsset
|
|
12
|
-
from soar_sdk.
|
|
17
|
+
from soar_sdk.asset_state import AssetState
|
|
13
18
|
from soar_sdk.compat import (
|
|
14
19
|
MIN_PHANTOM_VERSION,
|
|
15
20
|
PythonVersion,
|
|
16
21
|
)
|
|
22
|
+
from soar_sdk.decorators import (
|
|
23
|
+
ActionDecorator,
|
|
24
|
+
ConnectivityTestDecorator,
|
|
25
|
+
MakeRequestDecorator,
|
|
26
|
+
OnESPollDecorator,
|
|
27
|
+
OnPollDecorator,
|
|
28
|
+
ViewHandlerDecorator,
|
|
29
|
+
WebhookDecorator,
|
|
30
|
+
)
|
|
31
|
+
from soar_sdk.exceptions import ActionRegistrationError
|
|
32
|
+
from soar_sdk.input_spec import InputSpecification
|
|
33
|
+
from soar_sdk.logging import getLogger
|
|
34
|
+
from soar_sdk.meta.webhooks import WebhookMeta
|
|
35
|
+
from soar_sdk.params import Params
|
|
17
36
|
from soar_sdk.shims.phantom_common.app_interface.app_interface import SoarRestClient
|
|
18
37
|
from soar_sdk.shims.phantom_common.encryption.encryption_manager_factory import (
|
|
19
38
|
platform_encryption_backend,
|
|
20
39
|
)
|
|
21
|
-
from soar_sdk.abstract import SOARClient, SOARClientAuth
|
|
22
|
-
from soar_sdk.action_results import ActionResult
|
|
23
|
-
from soar_sdk.actions_manager import ActionsManager
|
|
24
|
-
from soar_sdk.app_cli_runner import AppCliRunner
|
|
25
|
-
from soar_sdk.meta.webhooks import WebhookMeta
|
|
26
|
-
from soar_sdk.params import Params
|
|
27
|
-
from soar_sdk.app_client import AppClient
|
|
28
|
-
from soar_sdk.action_results import ActionOutput
|
|
29
|
-
from soar_sdk.logging import getLogger
|
|
30
40
|
from soar_sdk.types import Action
|
|
31
|
-
from soar_sdk.webhooks.routing import Router
|
|
32
41
|
from soar_sdk.webhooks.models import WebhookRequest, WebhookResponse
|
|
33
|
-
from soar_sdk.
|
|
34
|
-
from soar_sdk.asset_state import AssetState
|
|
35
|
-
|
|
36
|
-
import uuid
|
|
37
|
-
from soar_sdk.decorators import (
|
|
38
|
-
ConnectivityTestDecorator,
|
|
39
|
-
ActionDecorator,
|
|
40
|
-
ViewHandlerDecorator,
|
|
41
|
-
OnPollDecorator,
|
|
42
|
-
OnESPollDecorator,
|
|
43
|
-
WebhookDecorator,
|
|
44
|
-
MakeRequestDecorator,
|
|
45
|
-
)
|
|
42
|
+
from soar_sdk.webhooks.routing import Router
|
|
46
43
|
|
|
47
44
|
|
|
48
45
|
def is_valid_uuid(value: str) -> bool:
|
soar_sdk/app_cli_runner.py
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
import argparse
|
|
2
2
|
import inspect
|
|
3
3
|
import json
|
|
4
|
-
|
|
4
|
+
import os
|
|
5
5
|
import typing
|
|
6
|
+
from pathlib import Path
|
|
6
7
|
from typing import Any
|
|
7
|
-
import
|
|
8
|
+
from urllib.parse import parse_qs, urlparse
|
|
9
|
+
|
|
8
10
|
from pydantic import ValidationError
|
|
9
|
-
from urllib.parse import urlparse, parse_qs
|
|
10
11
|
|
|
12
|
+
from soar_sdk.abstract import SOARClientAuth
|
|
11
13
|
from soar_sdk.input_spec import ActionParameter, AppConfig, InputSpecification, SoarAuth
|
|
14
|
+
from soar_sdk.logging import PhantomLogger
|
|
15
|
+
from soar_sdk.shims.phantom_common.app_interface.app_interface import SoarRestClient
|
|
12
16
|
from soar_sdk.shims.phantom_common.encryption.encryption_manager_factory import (
|
|
13
17
|
platform_encryption_backend,
|
|
14
18
|
)
|
|
15
19
|
from soar_sdk.types import Action
|
|
16
20
|
from soar_sdk.webhooks.models import WebhookRequest
|
|
17
|
-
from soar_sdk.logging import PhantomLogger
|
|
18
|
-
from soar_sdk.shims.phantom_common.app_interface.app_interface import SoarRestClient
|
|
19
|
-
from soar_sdk.abstract import SOARClientAuth
|
|
20
21
|
|
|
21
22
|
if typing.TYPE_CHECKING:
|
|
22
23
|
from .app import App
|
soar_sdk/app_client.py
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
from dataclasses import dataclass
|
|
2
|
-
from typing import Any, TYPE_CHECKING
|
|
3
1
|
from collections.abc import Mapping
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
from typing import TYPE_CHECKING, Any
|
|
4
4
|
|
|
5
5
|
import httpx
|
|
6
6
|
|
|
7
|
+
from soar_sdk.abstract import SOARClient, SOARClientAuth, SummaryType
|
|
7
8
|
from soar_sdk.apis.artifact import Artifact
|
|
8
9
|
from soar_sdk.apis.container import Container
|
|
9
10
|
from soar_sdk.apis.vault import Vault
|
|
10
11
|
|
|
11
|
-
from soar_sdk.abstract import SOARClient, SOARClientAuth, SummaryType
|
|
12
|
-
|
|
13
12
|
if TYPE_CHECKING:
|
|
14
13
|
pass
|
|
15
14
|
|
soar_sdk/asset.py
CHANGED
|
@@ -1,18 +1,16 @@
|
|
|
1
|
-
from typing import Any
|
|
1
|
+
from typing import Any, NotRequired
|
|
2
2
|
from zoneinfo import ZoneInfo
|
|
3
|
-
from pydantic import BaseModel, model_validator, ConfigDict, Field
|
|
4
|
-
from pydantic_core import PydanticUndefined
|
|
5
3
|
|
|
4
|
+
from pydantic import BaseModel, ConfigDict, Field, model_validator
|
|
5
|
+
from pydantic_core import PydanticUndefined
|
|
6
6
|
from typing_extensions import TypedDict
|
|
7
|
-
from typing import NotRequired
|
|
8
|
-
|
|
9
7
|
|
|
10
|
-
from soar_sdk.compat import remove_when_soar_newer_than
|
|
11
|
-
from soar_sdk.meta.datatypes import as_datatype
|
|
12
|
-
from soar_sdk.input_spec import AppConfig
|
|
13
|
-
from soar_sdk.field_utils import parse_json_schema_extra
|
|
14
8
|
from soar_sdk.asset_state import AssetState
|
|
9
|
+
from soar_sdk.compat import remove_when_soar_newer_than
|
|
15
10
|
from soar_sdk.exceptions import AppContextRequired
|
|
11
|
+
from soar_sdk.field_utils import parse_json_schema_extra
|
|
12
|
+
from soar_sdk.input_spec import AppConfig
|
|
13
|
+
from soar_sdk.meta.datatypes import as_datatype
|
|
16
14
|
|
|
17
15
|
remove_when_soar_newer_than(
|
|
18
16
|
"7.0.0", "NotRequired from typing_extensions is in typing in Python 3.11+"
|
soar_sdk/asset_state.py
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import json
|
|
2
|
-
from collections.abc import
|
|
2
|
+
from collections.abc import Iterator, MutableMapping
|
|
3
3
|
|
|
4
4
|
from soar_sdk.shims.phantom.base_connector import BaseConnector
|
|
5
5
|
from soar_sdk.shims.phantom.encryption_helper import encryption_helper
|
|
6
6
|
|
|
7
|
-
|
|
8
7
|
AssetStateKeyType = str
|
|
9
8
|
AssetStateValueType = str | bool | int | float | None
|
|
10
9
|
AssetStateType = dict[AssetStateKeyType, AssetStateValueType]
|
soar_sdk/async_utils.py
CHANGED
soar_sdk/cli/cli.py
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import typer
|
|
2
2
|
|
|
3
3
|
from soar_sdk import __version__
|
|
4
|
-
from soar_sdk.
|
|
4
|
+
from soar_sdk.cli.init.cli import convert, init
|
|
5
5
|
from soar_sdk.cli.manifests.cli import manifests
|
|
6
6
|
from soar_sdk.cli.package.cli import package
|
|
7
|
-
from soar_sdk.cli.init.cli import init, convert
|
|
8
7
|
from soar_sdk.cli.test.cli import test
|
|
8
|
+
from soar_sdk.paths import SDK_ROOT
|
|
9
9
|
|
|
10
10
|
CONTEXT_SETTINGS = {"help_option_names": ["-h", "--help"]}
|
|
11
11
|
HELP = """A command-line tool for helping with SOAR Apps development"""
|
soar_sdk/cli/init/cli.py
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
import ast
|
|
2
2
|
import datetime
|
|
3
3
|
import json
|
|
4
4
|
import os
|
|
5
|
-
from pathlib import Path
|
|
6
5
|
import re
|
|
7
6
|
import shutil
|
|
8
7
|
import subprocess
|
|
9
8
|
import uuid
|
|
10
|
-
import
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
from typing import Annotated, cast
|
|
11
11
|
|
|
12
12
|
import typer
|
|
13
|
-
from rich.console import Console
|
|
14
|
-
from rich.panel import Panel
|
|
15
13
|
from rich import print as rprint
|
|
14
|
+
from rich.console import Console
|
|
16
15
|
from rich.markup import escape as rescape
|
|
16
|
+
from rich.panel import Panel
|
|
17
17
|
|
|
18
18
|
from soar_sdk.cli.manifests.deserializers import AppMetaDeserializer
|
|
19
19
|
from soar_sdk.cli.utils import normalize_field_name
|
|
@@ -2,15 +2,16 @@ import dataclasses
|
|
|
2
2
|
import json
|
|
3
3
|
from pathlib import Path
|
|
4
4
|
from typing import Any, NamedTuple, TypeVar, cast
|
|
5
|
+
|
|
5
6
|
import pydantic
|
|
6
7
|
|
|
7
|
-
from soar_sdk.action_results import ActionOutput,
|
|
8
|
-
from soar_sdk.cli.utils import
|
|
8
|
+
from soar_sdk.action_results import ActionOutput, OutputField, OutputFieldSpecification
|
|
9
|
+
from soar_sdk.cli.utils import NormalizationResult, normalize_field_name
|
|
9
10
|
from soar_sdk.compat import remove_when_soar_newer_than
|
|
10
11
|
from soar_sdk.meta.actions import ActionMeta
|
|
11
12
|
from soar_sdk.meta.app import AppMeta
|
|
12
|
-
from soar_sdk.params import Params, Param
|
|
13
13
|
from soar_sdk.meta.datatypes import to_python_type
|
|
14
|
+
from soar_sdk.params import Param, Params
|
|
14
15
|
|
|
15
16
|
|
|
16
17
|
class DeserializedAppMeta(NamedTuple):
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import importlib
|
|
2
2
|
import json
|
|
3
|
-
import
|
|
4
|
-
from datetime import datetime, UTC
|
|
3
|
+
from datetime import UTC, datetime
|
|
5
4
|
from pathlib import Path
|
|
6
5
|
from pprint import pprint
|
|
7
6
|
|
|
7
|
+
import toml
|
|
8
8
|
from packaging.specifiers import SpecifierSet
|
|
9
9
|
|
|
10
10
|
from soar_sdk.app import App
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
import itertools
|
|
2
2
|
from collections.abc import Iterator
|
|
3
3
|
from logging import getLogger
|
|
4
|
-
import
|
|
4
|
+
from typing import Any
|
|
5
5
|
|
|
6
|
-
from soar_sdk.meta.datatypes import as_datatype
|
|
7
|
-
from soar_sdk.params import Params
|
|
8
6
|
from soar_sdk.action_results import ActionOutput, OutputFieldSpecification
|
|
9
7
|
from soar_sdk.field_utils import parse_json_schema_extra
|
|
8
|
+
from soar_sdk.meta.datatypes import as_datatype
|
|
9
|
+
from soar_sdk.params import Params
|
|
10
10
|
|
|
11
11
|
logger = getLogger(__name__)
|
|
12
12
|
|
soar_sdk/cli/package/cli.py
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
+
import asyncio
|
|
1
2
|
import contextlib
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
import typer
|
|
5
|
-
|
|
3
|
+
import json
|
|
4
|
+
import os
|
|
6
5
|
import tarfile
|
|
6
|
+
import time
|
|
7
|
+
from datetime import timedelta
|
|
7
8
|
from io import BytesIO
|
|
8
|
-
import
|
|
9
|
+
from itertools import chain
|
|
9
10
|
from pathlib import Path
|
|
10
|
-
import asyncio
|
|
11
|
-
import time
|
|
12
11
|
from typing import Annotated
|
|
13
|
-
|
|
12
|
+
|
|
13
|
+
import httpx
|
|
14
|
+
import humanize
|
|
15
|
+
import typer
|
|
14
16
|
from rich.console import Console
|
|
15
17
|
from rich.panel import Panel
|
|
18
|
+
from tqdm import tqdm
|
|
16
19
|
|
|
17
20
|
from soar_sdk.cli.manifests.processors import ManifestProcessor
|
|
18
|
-
from soar_sdk.meta.dependencies import DependencyWheel
|
|
19
|
-
from soar_sdk.cli.path_utils import context_directory
|
|
20
21
|
from soar_sdk.cli.package.utils import phantom_get_login_session, phantom_install_app
|
|
21
|
-
from soar_sdk.
|
|
22
|
-
from
|
|
23
|
-
import
|
|
24
|
-
import httpx
|
|
22
|
+
from soar_sdk.cli.path_utils import context_directory
|
|
23
|
+
from soar_sdk.meta.dependencies import DependencyWheel
|
|
24
|
+
from soar_sdk.paths import APP_TEMPLATES, SDK_TEMPLATES
|
|
25
25
|
|
|
26
26
|
package = typer.Typer()
|
|
27
27
|
console = Console() # For printing lots of pretty colors and stuff
|
soar_sdk/cli/package/utils.py
CHANGED
soar_sdk/cli/path_utils.py
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
from typing import ClassVar
|
|
2
|
-
from collections.abc import Iterator
|
|
3
|
-
import typing
|
|
4
1
|
import ast
|
|
2
|
+
import typing
|
|
3
|
+
from collections.abc import Iterator
|
|
4
|
+
from typing import ClassVar
|
|
5
|
+
|
|
5
6
|
from pydantic_core import PydanticUndefined
|
|
6
7
|
|
|
7
8
|
from soar_sdk.action_results import ActionOutput
|
|
8
9
|
from soar_sdk.cli.utils import normalize_field_name
|
|
9
10
|
from soar_sdk.code_renderers.renderer import AstRenderer
|
|
11
|
+
from soar_sdk.field_utils import parse_json_schema_extra
|
|
10
12
|
from soar_sdk.meta.actions import ActionMeta
|
|
11
13
|
from soar_sdk.params import Params
|
|
12
|
-
from soar_sdk.field_utils import parse_json_schema_extra
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
class ActionRenderer(AstRenderer[ActionMeta]):
|
soar_sdk/compat.py
CHANGED
soar_sdk/decorators/__init__.py
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"""This module provides class-based decorators for SOAR app development."""
|
|
2
2
|
|
|
3
3
|
from .action import ActionDecorator
|
|
4
|
+
from .make_request import MakeRequestDecorator
|
|
5
|
+
from .on_es_poll import OnESPollDecorator
|
|
6
|
+
from .on_poll import OnPollDecorator
|
|
4
7
|
from .test_connectivity import ConnectivityTestDecorator
|
|
5
8
|
from .view_handler import ViewHandlerDecorator
|
|
6
|
-
from .on_poll import OnPollDecorator
|
|
7
|
-
from .on_es_poll import OnESPollDecorator
|
|
8
9
|
from .webhook import WebhookDecorator
|
|
9
|
-
from .make_request import MakeRequestDecorator
|
|
10
10
|
|
|
11
11
|
__all__ = [
|
|
12
12
|
"ActionDecorator",
|
soar_sdk/decorators/action.py
CHANGED
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
import inspect
|
|
2
|
+
import traceback
|
|
3
|
+
from collections.abc import AsyncGenerator, Callable, Iterator
|
|
2
4
|
from functools import wraps
|
|
3
|
-
from
|
|
4
|
-
from typing import Any, get_args, get_origin
|
|
5
|
-
from collections.abc import Callable
|
|
6
|
-
from collections.abc import AsyncGenerator
|
|
5
|
+
from typing import TYPE_CHECKING, Any, get_args, get_origin
|
|
7
6
|
|
|
8
7
|
from soar_sdk.abstract import SOARClient
|
|
9
|
-
from soar_sdk.action_results import
|
|
10
|
-
from soar_sdk.
|
|
8
|
+
from soar_sdk.action_results import ActionOutput, ActionResult
|
|
9
|
+
from soar_sdk.async_utils import run_async_if_needed
|
|
10
|
+
from soar_sdk.exceptions import ActionFailure
|
|
11
11
|
from soar_sdk.meta.actions import ActionMeta
|
|
12
|
+
from soar_sdk.params import Params
|
|
12
13
|
from soar_sdk.types import Action, action_protocol
|
|
13
|
-
from soar_sdk.exceptions import ActionFailure
|
|
14
|
-
from soar_sdk.async_utils import run_async_if_needed
|
|
15
|
-
import traceback
|
|
16
|
-
|
|
17
|
-
from typing import TYPE_CHECKING
|
|
18
14
|
|
|
19
15
|
if TYPE_CHECKING:
|
|
20
16
|
from soar_sdk.app import App
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
import inspect
|
|
2
|
+
import traceback
|
|
3
|
+
from collections.abc import Callable
|
|
4
|
+
from functools import wraps
|
|
5
|
+
from typing import TYPE_CHECKING, Any
|
|
2
6
|
|
|
3
7
|
from soar_sdk.abstract import SOARClient
|
|
4
|
-
from soar_sdk.action_results import ActionResult
|
|
5
|
-
from soar_sdk.params import MakeRequestParams
|
|
6
|
-
from soar_sdk.meta.actions import ActionMeta
|
|
7
|
-
from soar_sdk.action_results import ActionOutput, MakeRequestOutput
|
|
8
|
-
from soar_sdk.types import Action, action_protocol
|
|
9
|
-
from soar_sdk.exceptions import ActionFailure
|
|
8
|
+
from soar_sdk.action_results import ActionOutput, ActionResult, MakeRequestOutput
|
|
10
9
|
from soar_sdk.async_utils import run_async_if_needed
|
|
10
|
+
from soar_sdk.exceptions import ActionFailure
|
|
11
11
|
from soar_sdk.logging import getLogger
|
|
12
|
-
from
|
|
13
|
-
import
|
|
14
|
-
|
|
15
|
-
from typing import TYPE_CHECKING, Any
|
|
16
|
-
from collections.abc import Callable
|
|
12
|
+
from soar_sdk.meta.actions import ActionMeta
|
|
13
|
+
from soar_sdk.params import MakeRequestParams
|
|
14
|
+
from soar_sdk.types import Action, action_protocol
|
|
17
15
|
|
|
18
16
|
if TYPE_CHECKING:
|
|
19
17
|
from soar_sdk.app import App
|
|
@@ -1,22 +1,19 @@
|
|
|
1
1
|
import inspect
|
|
2
|
+
from collections.abc import Callable, Iterator
|
|
2
3
|
from functools import wraps
|
|
3
|
-
from typing import Any
|
|
4
|
-
from collections.abc import Callable
|
|
5
|
-
from collections.abc import Iterator
|
|
4
|
+
from typing import TYPE_CHECKING, Any
|
|
6
5
|
|
|
7
6
|
from soar_sdk.abstract import SOARClient
|
|
8
7
|
from soar_sdk.action_results import ActionResult
|
|
9
|
-
from soar_sdk.params import OnESPollParams
|
|
10
|
-
from soar_sdk.meta.actions import ActionMeta
|
|
11
|
-
from soar_sdk.types import Action, action_protocol
|
|
12
|
-
from soar_sdk.exceptions import ActionFailure
|
|
13
8
|
from soar_sdk.async_utils import run_async_if_needed
|
|
9
|
+
from soar_sdk.exceptions import ActionFailure
|
|
14
10
|
from soar_sdk.logging import getLogger
|
|
15
|
-
from soar_sdk.
|
|
11
|
+
from soar_sdk.meta.actions import ActionMeta
|
|
16
12
|
from soar_sdk.models.attachment_input import AttachmentInput
|
|
17
13
|
from soar_sdk.models.container import Container
|
|
18
|
-
|
|
19
|
-
from
|
|
14
|
+
from soar_sdk.models.finding import Finding
|
|
15
|
+
from soar_sdk.params import OnESPollParams
|
|
16
|
+
from soar_sdk.types import Action, action_protocol
|
|
20
17
|
|
|
21
18
|
if TYPE_CHECKING:
|
|
22
19
|
from soar_sdk.app import App
|
soar_sdk/decorators/on_poll.py
CHANGED
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
import inspect
|
|
2
|
+
from collections.abc import Callable, Iterator
|
|
2
3
|
from functools import wraps
|
|
3
|
-
from typing import Any
|
|
4
|
-
from collections.abc import Callable
|
|
5
|
-
from collections.abc import Iterator
|
|
4
|
+
from typing import TYPE_CHECKING, Any
|
|
6
5
|
|
|
7
6
|
from soar_sdk.abstract import SOARClient
|
|
8
7
|
from soar_sdk.action_results import ActionResult
|
|
9
|
-
from soar_sdk.params import OnPollParams
|
|
10
|
-
from soar_sdk.meta.actions import ActionMeta
|
|
11
|
-
from soar_sdk.types import Action, action_protocol
|
|
12
|
-
from soar_sdk.exceptions import ActionFailure
|
|
13
8
|
from soar_sdk.async_utils import run_async_if_needed
|
|
9
|
+
from soar_sdk.exceptions import ActionFailure
|
|
14
10
|
from soar_sdk.logging import getLogger
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
from
|
|
11
|
+
from soar_sdk.meta.actions import ActionMeta
|
|
12
|
+
from soar_sdk.params import OnPollParams
|
|
13
|
+
from soar_sdk.types import Action, action_protocol
|
|
18
14
|
|
|
19
15
|
if TYPE_CHECKING:
|
|
20
16
|
from soar_sdk.app import App
|
|
@@ -75,8 +71,8 @@ class OnPollDecorator:
|
|
|
75
71
|
**kwargs: Any, # noqa: ANN401
|
|
76
72
|
) -> bool:
|
|
77
73
|
# Lazy imports to avoid circular dependencies
|
|
78
|
-
from soar_sdk.models.container import Container
|
|
79
74
|
from soar_sdk.models.artifact import Artifact
|
|
75
|
+
from soar_sdk.models.container import Container
|
|
80
76
|
|
|
81
77
|
try:
|
|
82
78
|
# Validate poll params
|