协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
hex-sdk-patterns【开发与工程】Apply production-ready Hex SDK patterns for TypeScript and Python. Use when implementing Hex integrations, refactoring SDK usage, or establishing team coding standards for Hex. Trigger with phrases like "hex SDK patterns", "hex best practices", "hex code patterns", "idiomatic hex".
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: hex-sdk-patterns description: 'Apply production-ready Hex SDK patterns for TypeScript and Python.
Use when implementing Hex integrations, refactoring SDK usage,
or establishing team coding standards for Hex.
Trigger with phrases like "hex SDK patterns", "hex best practices",
"hex code patterns", "idiomatic hex".
' allowed-tools: Read, Write, Edit version: 1.6.0 license: MIT author: Jeremy Longshore jeremy@intentsolutions.io tags:
Production patterns for Hex API: typed client, pipeline orchestration, retry logic, and Python integration.
async function runWithRetry(client: HexClient, projectId: string, params: Record<string, any>, maxRetries = 2) {
for (let i = 0; i <= maxRetries; i++) {
try {
const { runId } = await client.runProject(projectId, params);
const result = await pollUntilComplete(client, projectId, runId);
return result;
} catch (err: any) {
if (i === maxRetries || !err.message.includes('429')) throw err;
await new Promise(r => setTimeout(r, 30000)); // Wait 30s on rate limit
}
}
}
# pip install hextoolkit
from hextoolkit import HexAPI
hex_api = HexAPI(token=os.environ['HEX_API_TOKEN'])
# List projects
projects = hex_api.list_projects()
# Run project
run = hex_api.run_project('project-id', input_params={'date': '2025-01-01'})
# Poll for completion
status = hex_api.get_run_status('project-id', run['runId'])
# Using the hex-inc/airflow-provider-hex package
from airflow_provider_hex.operators.hex import HexRunProjectOperator
run_task = HexRunProjectOperator(
task_id='run_hex_project',
project_id='your-project-id',
input_params={'date': '{{ ds }}'},
hex_conn_id='hex_default',
wait_for_completion=True,
timeout=600,
)
Produce an SDK receipt with client revision, environment, opaque project/run IDs, parameter schema revision, execution state, aggregate result checks, and rollback/cancel reference. Do not include API tokens, SQL, cell output, or workspace data.
Classify authentication, authorization, validation, quota, timeout, and terminal-run failures separately. Do not retry a write-like project run without idempotency, broaden scope to bypass a denial, or log notebook output for diagnosis.
sdk=v3; env=sandbox; project=proj-opaque-11; params=r4; run=succeeded; row_count=within-range; cancel=not-needed is a safe SDK execution receipt.
Apply patterns in hex-core-workflow-a.