コンテンツにスキップ

Hosted Connect Session

Hosted Connect は、顧客が自分のWallet source、provider key、Local Connector、許可モデル、上限を選び、アプリに委任するための画面です。アプリは connectUrl へredirectし、戻ってきた execution scope を保存します。

import { createVelaClientFromEnvironment } from "@vel4ai/sdk";
declare const process: { env: Record<string, string | undefined> };
declare function getCustomerTenantId(req: Request): Promise<string>;
export async function POST(req: Request): Promise<Response> {
const client = createVelaClientFromEnvironment({ env: process.env });
const customerTenantId = await getCustomerTenantId(req);
const session = await client.createConnectSession({
customerTenantId,
returnUrl: "https://your-app.example.com/settings/ai/connected",
});
return Response.redirect(session.connectUrl, 303);
}
保存する値理由
app workspace / tenant idアプリ内の所有境界
customerTenantIdVela上の顧客境界
delegationId実行時に使う委任
任意の表示名やconnected statesettings UIで説明するため

Velaにアプリのbusiness identifierを選ばせません。どのworkspaceがどのVela delegationを使うかはアプリが所有します。

チャット、要約、分類など用途が複数ある場合は、Hosted Connect時点で必要なModel Slotを渡すと、顧客は何を許可するか判断しやすくなります。

import { createLockedModelSlot } from "@vel4ai/sdk";
declare const client: import("@vel4ai/sdk").VelaClient;
declare const customerTenantId: string;
export function createChatConnectSession(returnUrl: string) {
return client.createConnectSession({
customerTenantId,
returnUrl,
modelSlot: createLockedModelSlot("openai/gpt-4o-mini", {
slotId: "chat",
label: "チャット応答",
}),
});
}