Files
open-connector/wrangler.example.jsonc
l1shen b969ec0b4e feat: add cloud project OAuth and remote execution (#627)
## Summary

Add OOMOL cloud OAuth as a provider authorization source. Users can save
an encrypted project API key, select a cloud provider configuration,
authorize named connections, and run their actions and proxy requests
through SaaS. Existing connections retain their source when the provider
default changes, and third-party credentials remain in SaaS.

- Implement project discovery, OAuth request synchronization, remote
execution, and persistent cleanup of disconnected cloud accounts. Add
SQLite, PostgreSQL, and D1 migrations and storage support, with instance
reset and maintenance tooling.
- Add Console project and authorization settings, localized errors,
disconnect notifications, and styled OAuth completion pages that close
after successful authorization. Align local development callback origins
and proxy routes.
- Improve safe request diagnostics and retry transient project
health-check failures once. Execution requests are not automatically
replayed.
- Group storage implementations by database backend, share guarded HTTP
requests with Marketplace, update Zod to 4.6.5, and load provider icons
from the public catalog.
- Document setup, maintenance, and the manual acceptance checklist.

## Validation

- `npm run fix-check` passed.
- `npm run build:web` passed.
- Latest focused regression run: 346 tests passed across 33 files
covering Console, SaaS project/client/routes, OAuth completion, and
guarded HTTP requests.
- Earlier implementation validation included the broader runtime/storage
suites and a real PostgreSQL integration run. Full deployed
action/proxy, cleanup recovery, and D1 maintenance acceptance remain
documented manual checks; they are not claimed as completed by the unit
tests.

## Deployment notes

Apply migrations `0014_saas_project` and `0015_saas_cleanup_runtime`,
configure encryption and an explicit `OOMOL_CONNECT_ORIGIN`, and enable
the relevant cleanup scheduling. The remote SaaS deployment must support
the project OAuth and remote execution APIs described in
`docs/saas-oauth.md`.
2026-09-30 13:25:49 +08:00

51 lines
1.6 KiB
JSON

{
"$schema": "node_modules/wrangler/config-schema.json",
"name": "open-connector",
"main": "src/server/cloudflare.ts",
"compatibility_date": "2026-07-02",
"compatibility_flags": ["nodejs_compat"],
"cache": {
"enabled": true,
},
"assets": {
"directory": "dist/web",
"binding": "ASSETS",
"not_found_handling": "single-page-application",
"run_worker_first": ["/api/*", "/v1/*", "/mcp*", "/oauth/*", "/docs", "/docs/*", "/openapi.json", "/health"],
},
"triggers": { "crons": ["* * * * *"] },
"observability": {
"enabled": true,
"logs": {
"enabled": true,
"invocation_logs": true,
"persist": true,
},
},
"d1_databases": [
{
"binding": "DB",
"database_name": "open-connector",
"database_id": "<your-d1-database-id>",
"migrations_dir": "migrations",
},
],
// Transit-file storage — enable EXACTLY ONE of Option A or Option B.
// Both use the binding name TRANSIT_FILES; Wrangler rejects two bindings with the
// same name, so switching to Option B means commenting out Option A's block below.
//
// Option A: R2 backend (default). Comment out this whole block to use Option B.
"r2_buckets": [
{
"binding": "TRANSIT_FILES",
"bucket_name": "<your-bucket-name>",
},
],
// Option B: KV backend (no credit card required; max file size 25 MiB).
// To use it: comment out the r2_buckets block above, then uncomment all three lines below.
// "kv_namespaces": [
// { "binding": "TRANSIT_FILES", "id": "<your-kv-namespace-id>" },
// ],
// "vars": { "TRANSIT_FILES_BACKEND": "kv" },
}