Skip to content

Aliyun fc provider - #483

Closed
lgxxabc wants to merge 4 commits into
computesdk:masterfrom
lgxxabc:aliyun-fc-provider
Closed

lgxxabc wants to merge 4 commits into
computesdk:masterfrom
lgxxabc:aliyun-fc-provider

Conversation

@lgxxabc

@lgxxabc lgxxabc commented Sep 30, 2026 •

Copy link
Copy Markdown

Devin Review

@open-cla

open-cla Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Contributor License Agreement

All contributors are covered by a CLA.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 3 potential issues.

2 flags not posted on this PR by your GitHub settings — view them in Devin Review. (Configure)

Devin Review

Comment thread package.json
Comment on lines +164 to +177
"@computesdk/anchorbrowser": "^0.2.10",
"@computesdk/archil": "^0.4.14",
"@computesdk/arker": "^0.1.7",
"@computesdk/beam": "^0.3.7",
"@computesdk/blaxel": "^1.6.24",
"@computesdk/browserbase": "^0.3.14",
"@computesdk/browseruse": "^0.2.12",
"@computesdk/cloud-run": "^0.1.11",
"@computesdk/cloudflare": "^2.0.0",
"@computesdk/codesandbox": "^1.5.55",
"@computesdk/collimate": "^0.1.5",
"@computesdk/createos-sandbox": "^0.1.11",
"@computesdk/daytona": "^1.7.36",
"@computesdk/declaw": "0.2.12",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Frozen installs block every benchmark run

With the downgraded specifiers, pnpm install --frozen-lockfile rejects the unchanged lockfile. The FC workflow and existing benchmark workflows stop before running any providers.

Learn more

The lockfile's root importer still records the previous specifiers, including @computesdk/declaw: 0.2.13, while the manifest now pins 0.2.12. The new install step and the existing install step both request a frozen lockfile. pnpm rejects a manifest whose dependency specifiers disagree with that lockfile, so no benchmark runs.

Example: The manifest requests @computesdk/declaw version 0.2.12, but the root lockfile importer still requests 0.2.13. A manual FC workflow dispatch fails during dependency installation rather than reaching sandbox creation.

Recommended fix: Restore the original dependency ranges if these downgrades were unintended, or regenerate and commit pnpm-lock.yaml for every changed range. Verify both workflows with pnpm install --frozen-lockfile.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

Comment on lines +66 to +67
--iterations ${{ github.event.inputs.iterations }} \
--concurrency ${{ github.event.inputs.concurrency }} \

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟥 Dispatch inputs execute shell commands

A dispatcher can embed shell syntax in iterations or concurrency. Direct interpolation executes it on the benchmark runner with the gateway and platform secrets available.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

Comment on lines +60 to +64
const response = await fetch(gatewayUrl(options.gatewayUrl, path), {
method: 'POST',
headers,
body: JSON.stringify(body),
});

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟨 Gateway credentials accepted over plaintext HTTP

When gatewayUrl uses HTTP, gatewayRequest sends its bearer secret without encryption. Network observers can capture the secret and impersonate the benchmark client.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

@superagent-security superagent-security Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Superagent found 1 security concern(s).

runs-on: ${{ github.event.inputs.runner_label || 'ubuntu-latest' }}
timeout-minutes: 30
steps:
- uses: actions/checkout@v4

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: Secret-bearing workflow uses mutable action tags without an explicit token permission boundary

New workflow runs mutable actions while exposing FC gateway secrets and leaves token permissions/checkout credentials at defaults.

Pin actions to SHAs, set least-privilege permissions, and disable checkout credential persistence.

AI prompt
Check if this security scanner issue is valid. If so, understand the root cause and fix it. If appropriate, update or add tests. Keep the change focused and preserve intended behavior.

<file name=".github/workflows/fc-benchmark.yml">
<violation number="1" location=".github/workflows/fc-benchmark.yml:36">
<priority>P1</priority>
<title>Secret-bearing workflow uses mutable action tags without an explicit token permission boundary</title>
<evidence>The new workflow checks out code with `actions/checkout@v4` at line 36 and later uses `pnpm/action-setup@v4`, `actions/setup-node@v4`, and `actions/upload-artifact@v4` by mutable tags. The same job exposes `BENCHMARKS_PLATFORM_API_KEY`, `ALIYUN_FC_GATEWAY_URL`, `ALIYUN_FC_GATEWAY_SECRET`, and `ALIYUN_FC_REGION` to the benchmark at lines 59-62, while the workflow declares no `permissions:` block and checkout does not disable credential persistence. A compromised or retagged action can therefore execute in this job's secret-bearing context and access the newly introduced gateway credentials and default GITHUB_TOKEN.</evidence>
<recommendation>Pin every `uses:` reference to the intended full commit SHA with a version comment, add a workflow-level `permissions: {}` (or the minimum required permissions), and set `persist-credentials: false` on checkout unless a later step demonstrably needs Git credentials. Keep secrets scoped only to the benchmark step.</recommendation>
</violation>
</file>

@lgxxabc lgxxabc closed this Sep 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant