shorten random string for secret value (#3263)

This commit is contained in:
LawyZheng
2025-08-22 01:23:26 +08:00
committed by GitHub
parent 38e45e2aba
commit 988416829f
4 changed files with 24 additions and 26 deletions

View File

@@ -1,6 +1,4 @@
import json
import os
import random
import string
from datetime import UTC, datetime
from typing import Any
@@ -58,6 +56,7 @@ from skyvern.schemas.workflows import (
WorkflowStatus,
)
from skyvern.utils.prompt_engine import load_prompt_with_elements
from skyvern.utils.strings import generate_random_string
from skyvern.webeye.browser_factory import BrowserState
from skyvern.webeye.scraper.scraper import ScrapedPage, scrape_website
from skyvern.webeye.utils.page import SkyvernFrame
@@ -1045,7 +1044,7 @@ async def _generate_loop_task(
artifact_type=ArtifactType.SCREENSHOT_LLM,
data=screenshot,
)
loop_random_string = _generate_random_string()
loop_random_string = generate_random_string()
label = f"extraction_task_for_loop_{loop_random_string}"
loop_values_key = f"loop_values_{loop_random_string}"
extraction_block_yaml = ExtractionBlockYAML(
@@ -1145,7 +1144,7 @@ async def _generate_loop_task(
)
app.WORKFLOW_CONTEXT_MANAGER.add_context_parameter(workflow_run_id, url_value_context_parameter)
task_in_loop_label = f"task_in_loop_{_generate_random_string()}"
task_in_loop_label = f"task_in_loop_{generate_random_string()}"
context = skyvern_context.ensure_context()
task_in_loop_metadata_prompt = prompt_engine.load_prompt(
"task_v2_generate_task_block",
@@ -1215,7 +1214,7 @@ async def _generate_loop_task(
# use the output parameter of the extraction block to create the for loop block
for_loop_yaml = ForLoopBlockYAML(
label=f"loop_{_generate_random_string()}",
label=f"loop_{generate_random_string()}",
loop_over_parameter_key=loop_for_context_parameter.key,
loop_blocks=[block_yaml],
)
@@ -1273,7 +1272,7 @@ async def _generate_extraction_task(
# create OutputParameter for the data_extraction block
data_schema: dict[str, Any] | list | None = generate_extraction_task_response.get("schema")
label = f"data_extraction_{_generate_random_string()}"
label = f"data_extraction_{generate_random_string()}"
url: str | None = None
if not task_history:
# data extraction is the very first block
@@ -1312,7 +1311,7 @@ async def _generate_navigation_task(
totp_identifier: str | None = None,
) -> tuple[NavigationBlock, list[BLOCK_YAML_TYPES], list[PARAMETER_YAML_TYPES]]:
LOG.info("Generating navigation task", navigation_goal=navigation_goal, original_url=original_url)
label = f"navigation_{_generate_random_string()}"
label = f"navigation_{generate_random_string()}"
navigation_block_yaml = NavigationBlockYAML(
label=label,
url=original_url,
@@ -1346,7 +1345,7 @@ async def _generate_goto_url_task(
) -> tuple[UrlBlock, list[BLOCK_YAML_TYPES], list[PARAMETER_YAML_TYPES]]:
LOG.info("Generating goto url task", url=url)
# create OutputParameter for the data_extraction block
label = f"goto_url_{_generate_random_string()}"
label = f"goto_url_{generate_random_string()}"
url_block_yaml = UrlBlockYAML(
label=label,
@@ -1368,12 +1367,6 @@ async def _generate_goto_url_task(
)
def _generate_random_string(length: int = 5) -> str:
# Use the current timestamp as the seed
random.seed(os.urandom(16))
return "".join(random.choices(RANDOM_STRING_POOL, k=length))
async def get_thought_timelines(*, task_v2_id: str, organization_id: str) -> list[WorkflowRunTimeline]:
thoughts = await app.DATABASE.get_thoughts(
task_v2_id=task_v2_id,