Skip to content

feat(providers): add Astraflow (UCloud) OpenAI-compatible provider - #5964

Closed
diegosouzapw wants to merge 1 commit into
release/v3.8.44from
feat/port-pr-1127-astraflow
Closed

diegosouzapw wants to merge 1 commit into
release/v3.8.44from
feat/port-pr-1127-astraflow

Conversation

@diegosouzapw

Copy link
Copy Markdown
Owner

Summary

  • Adds Astraflow (UCloud) as an OpenAI-compatible, BYOK API-key provider pair: astraflow (global) and astraflow-cn (China), following the existing minimax/minimax-cn global+CN pattern.
  • Both entries use passthroughModels: true with an empty seed model list (no fixed catalog; matches the vendor's "OpenAI-compatible platform" positioning without hardcoding a specific model count).
  • Auth: bearer API key, format: "openai", executor: "default".

Base URL note

Base URLs are the vendor's inference domains (resolved behind UCloud's own edge WAF, *.uewaf.com), not the astraflow.ucloud-global.com / astraflow.ucloud.cn marketing sites:

  • Global: https://api-us-ca.umodelverse.ai/v1/chat/completions
  • China: https://api.modelverse.cn/v1/chat/completions

Both domains resolve via DNS to UCloud WAF infrastructure, which is a strong signal they are legitimate UCloud-operated endpoints. Direct HTTP validation could not be completed from this sandbox (no outbound network egress to arbitrary hosts). Best-effort — verify at first use.

Attribution

Thanks to @ucloudnb666

Changes

  • src/shared/constants/providers/apikey/gateways.ts — astraflow + astraflow-cn gateway metadata (color #0052D9, websites).
  • open-sse/config/providers/registry/astraflow/index.ts + open-sse/config/providers/registry/astraflow-cn/index.ts — registry entries.
  • open-sse/config/providers/index.ts — wires both entries into the registry map.
  • src/shared/constants/config.ts — PROVIDER_ENDPOINTS display entries for both.
  • CHANGELOG.md — [3.8.44] New Features entry.
  • tests/unit/astraflow-provider.test.ts — new test file.

Test plan

  • node --import tsx/esm scripts/check/check-provider-consistency.ts → OK (173 REGISTRY entries, 245 canonical providers, 0 exceptions)
  • node --import tsx/esm --test tests/unit/astraflow-provider.test.ts → 5/5 passing
  • npm run typecheck:core → clean
  • npm run check:cycles → OK, no cycles

Adds Astraflow (UCloud/UModelVerse) as an OpenAI-compatible, BYOK
API-key provider pair: `astraflow` (global) and `astraflow-cn`
(China). Both use passthrough model resolution (no fixed catalog),
bearer API-key auth, and mirror the existing minimax/minimax-cn
global+CN pair pattern.

Base URLs point at the vendor's inference domains (behind UCloud's
edge WAF), not the astraflow.ucloud-global.com / astraflow.ucloud.cn
marketing sites:
- global: https://api-us-ca.umodelverse.ai/v1/chat/completions
- china:  https://api.modelverse.cn/v1/chat/completions

Co-authored-by: ucloudnb666 <k8sxtest@ucloud.cn>
Inspired-by: decolua/9router#1127
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@diegosouzapw

Copy link
Copy Markdown
Owner Author

Closing: Astraflow (astraflow/astraflow-cn) was previously added (PR #2486) and deliberately removed (PR #3054, 2026-06-02) as a dead/unreachable provider — its API endpoints returned 000/404/empty on HTTP probe. Re-verification during this port also got HTTP 404 on the inference paths. Re-adding a provider that was intentionally removed for being non-functional would be a regression. Reopen only with a live confirmation (working key hitting /v1/chat/completions) that the endpoints are back up.

@diegosouzapw
diegosouzapw deleted the feat/port-pr-1127-astraflow branch July 3, 2026 04:58
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