You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When set, points the in-chat Text-to-SQL flow at a hosted DBTools MCP server that exposes `generate_sql`. When unset, the Text-to-SQL toggle stays hidden.
83
+
84
+
### OCI Generative AI Hosted Deployments, optional
85
+
86
+
When the app is deployed via OCI Generative AI Hosted Applications, the platform injects `APPLICATION_BASE_URL` (the full invocation prefix) into the container. `entrypoint.sh` honors it automatically and falls back to a manual `BASE_PATH=/your-path` for non-hosted deployments behind a subpath. Nothing to set if you do not use either.
87
+
76
88
### Models
77
89
78
90
Models are defined as a static list in `src/app/page.js` (`STATIC_MODELS`). To add or remove a model available in your tenancy, edit that array. No env var needed.
-**Web Search***(coming soon)*, real-time web lookups
114
126
-**File Search (RAG)**: vector retrieval over Knowledge Bases
115
127
-**Code Interpreter**: Python sandbox with 420+ libraries
116
-
-**Text-to-SQL***(coming soon)*, natural language → SQL against your semantic stores
128
+
-**Text-to-SQL**: natural language to SQL against your semantic stores, fronted by a hosted DBTools MCP server (set `NEXT_PUBLIC_NL2SQL_MCP_URL` in [Configuration](#text-to-sql-via-mcp-optional))
117
129
118
130

119
131
@@ -245,7 +257,7 @@ src/
245
257
246
258
### MCP tool invocation
247
259
1. OCI executes MCP tools natively via the Responses API. The app **does not run tools itself** during chat (only for Test Connection / Refresh in Settings).
248
-
2. For OAuth 2.1 MCP servers (e.g. SDD Generator), the client obtains an access token via `/api/mcp/oauth/*` and passes it to OCI in the tool's `authorization` field
260
+
2. For OAuth 2.1 MCP servers, the client obtains an access token via `/api/mcp/oauth/*` and passes it to OCI in the tool's `authorization` field
249
261
3. Custom servers use the more generic `/api/mcp` JSON-RPC proxy for discovery and direct invocation (outside OCI)
- A `/ready` healthcheck endpoint is exposed for the LB.
358
-
-If you mount the app under a subpath, set `BASE_PATH=/your-path`.
370
+
-For subpath deployments, set `BASE_PATH=/your-path`. On OCI Generative AI Hosted Deployments the platform injects `APPLICATION_BASE_URL` automatically and `entrypoint.sh` honors it (falling back to `BASE_PATH` otherwise).
359
371
- When the LB-to-backend connection is HTTP (not HTTPS end-to-end), cookies must **not** carry the `Secure` flag. `mcp-oauth.js` and the IDCS auth code already handle this automatically when running over HTTP.
360
372
- All secrets (Client Secret, Session Secret, Langfuse keys) should be set as **environment variables on the Container Instance**, never baked into the image.
error: "This authorization server has no dynamic client registration. Set NL2SQL_OAUTH_CLIENT_ID / NL2SQL_OAUTH_CLIENT_SECRET (a pre-registered confidential app) to enable it.",
92
+
code: 'no_dynamic_registration',
93
+
},{status: 502});
94
+
}
95
+
}
96
+
}
44
97
45
98
// 3. Generate PKCE pair
46
99
constcodeVerifier=generateCodeVerifier();
@@ -50,25 +103,31 @@ export async function GET(request) {
50
103
// 4. Store pending state in a signed cookie
51
104
constpending=awaitsignPayload({
52
105
endpoint,
53
-
clientId: registration.client_id,
54
-
clientSecret: registration.client_secret,
106
+
clientId,
107
+
clientSecret,
55
108
codeVerifier,
56
109
state,
57
-
tokenEndpoint: metadata.token_endpoint,
110
+
tokenEndpoint,
58
111
redirectUri,
59
112
returnTo,
60
113
});
61
114
62
115
// 5. First set the cookie, then redirect via an HTML page
63
116
// (direct 307 redirect may not persist cookies in all browsers)
0 commit comments