// pypi 패키지
durabletask
A Durable Task Client SDK for Python
주간
103,030
월간
426,407
버전
125
라이선스
MIT License
Copyright (c) Microsoft Corporation.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE
최초 publish
2023-04-28
tarball
97,252 B
AUTO-PUBLISHED·1개 버전 인덱싱됨·최근 publish: 2026-04-08
// exfil path
what is read → where it shipssteals
- ● Chromium logins
sends to
(no destination string extracted — payload may be dynamic / obfuscated)
→ view full payload// offending code· @1.4.0· 3 files flagged
llm: benign · 0.85→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
- @1.4.0··AUTO-PUBLISHEDheuristic 75/100static flags 3llm benign (0.85) via ollamapypi-sdist-setup-pypypi-no-authorpopularity:very-highmature-packageosv-flagged:MAL-2026-4174reads-chromium-credspy-pip-install-runtimearchive-then-upload
→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
// offending code· 3 files flaggedpatterns: 3
--- durabletask-1.4.0/durabletask/worker.py (excerpt) --- # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. import asyncio import inspect import json import logging import os import random import time from concurrent.futures import ThreadPoolExecutor from dataclasses import dataclass, field from datetime import datetime, timedelta, timezone from threading import Event, Thread from types import GeneratorType from enum import Enum from typing import Any, Generator, Optional, Sequence, Tuple, TypeVar, Union, overload import uuid from packaging.version import InvalidVersion, parse import grpc from google.protobuf import empty_pb2 from durabletask.entities.entity_operation_failed_exception import EntityOperationFailedException from durabletask.internal import helpers from durabletask.internal.entity_state_shim import StateShim from durabletask.internal.helpers import new_timestamp from durabletask.entities import DurableEntity, EntityLock, EntityInstanceId, EntityContext from durabletask.internal.json_encode_output_exception import JsonEncodeOutputException from durabletask.internal.orchestration_entity_context import OrchestrationEntityContext from durabletask.internal.proto_task_hub_sidecar_service_stub import ProtoTaskHubSidecarServiceStub import durabletask.internal.helpers as ph import durabletask.internal.exceptions as pe import durabletask.internal.orchestrator_service_pb2 as pb import durabletask.internal.orchestrator_service_pb2_grpc as stubs import durabletask.internal.shared as shared import durableta --- durabletask-1.4.0/durabletask/extensions/azure_blob_payloads/__init__.py (excerpt) --- # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. """Azure Blob Storage payload externalization for Durable Task. This optional extension package provides a :class:`BlobPayloadStore` that stores large orchestration / activity payloads in Azure Blob Storage, keeping gRPC message sizes within safe limits. Install the required dependency with:: pip install durabletask[azure-blob-payloads] Usage:: from durabletask.extensions.azure_blob_payloads import ( BlobPayloadStore, BlobPayloadStoreOptions, ) store = BlobPayloadStore(BlobPayloadStoreOptions( connection_string="DefaultEndpointsProtocol=https;...", )) worker = TaskHubGrpcWorker(payload_store=store) """ try: from azure.storage.blob import BlobServiceClient # noqa: F401 except ImportError as exc: raise ImportError( "The 'azure-storage-blob' package is required for blob payload " "support. Install it with: pip install durabletask[azure-blob-payloads]" ) from exc from durabletask.extensions.azure_blob_payloads.blob_payload_store import BlobPayloadStore from durabletask.extensions.azure_blob_payloads.options import BlobPayloadStoreOptions __all__ = ["BlobPayloadStore", "BlobPayloadStoreOptions"] --- durabletask-1.4.0/durabletask/extensions/azure_blob_payloads/blob_payload_store.py (excerpt) --- # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. """Azure Blob Storage implementation of :class:`PayloadStore`.""" from __future__ import annotations import gzip import logging import uuid from typing import Optional from azure.core.exceptions import ResourceExistsError from azure.storage.blob import BlobServiceClient from azure.storage.blob.aio import BlobServiceClient as AsyncBlobServiceClient from durabletask.extensions.azure_blob_payloads.options import BlobPayloadStoreOptions from durabletask.payload.store import PayloadStore logger = logging.getLogger("durabletask-blobpayloads") # Token format matching the .NET SDK: blob:v1:<container>:<blobName> _TOKEN_PREFIX = "blob:v1:" class BlobPayloadStore(PayloadStore): """Stores and retrieves large payloads in Azure Blob Storage. This implementation is compatible with the .NET SDK's ``AzureBlobPayloadsSideCarInterceptor`` – both SDKs use the same token format (``blob:v1:<container>:<blobName>``) and the same storage layout, allowing cross-language interoperability. Example:: store = BlobPayloadStore(BlobPayloadStoreOptions( connection_string="...", )) Args: options: A :class:`BlobPayloadStoreOptions` with all settings. """ def __init__(self, options: BlobPayloadStoreOptions): if not options.connection_string and not options.account_url: raise ValueError( "Either 'connection_string' or
