mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-18 08:34:46 +00:00
* fix: address issue * fix: address review feedback * fix: address review feedback * fix: finalize issue changes * fix: address PR review feedback * fix: address review-pr skill feedback * fix: address PR review feedback * fix: address review-pr skill feedback * fix: address PR review feedback * fix: address PR review feedback * fix: address PR review feedback * fix: address PR review feedback * docs: add changelog entry for PR merge
30 lines
984 B
TypeScript
30 lines
984 B
TypeScript
import type { IncomingMessage } from "node:http";
|
|
import {
|
|
getHeader,
|
|
resolveTrustedHttpOperatorScopes,
|
|
type AuthorizedGatewayHttpRequest,
|
|
} from "../http-utils.js";
|
|
import { CLI_DEFAULT_OPERATOR_SCOPES, WRITE_SCOPE } from "../method-scopes.js";
|
|
|
|
export type PluginRouteRuntimeScopeSurface = "write-default" | "trusted-operator";
|
|
|
|
export function resolvePluginRouteRuntimeOperatorScopes(
|
|
req: IncomingMessage,
|
|
requestAuth: AuthorizedGatewayHttpRequest,
|
|
surface: PluginRouteRuntimeScopeSurface = "write-default",
|
|
): string[] {
|
|
if (surface === "trusted-operator") {
|
|
if (!requestAuth.trustDeclaredOperatorScopes) {
|
|
return [...CLI_DEFAULT_OPERATOR_SCOPES];
|
|
}
|
|
return resolveTrustedHttpOperatorScopes(req, requestAuth);
|
|
}
|
|
if (requestAuth.authMethod !== "trusted-proxy") {
|
|
return [WRITE_SCOPE];
|
|
}
|
|
if (getHeader(req, "x-openclaw-scopes") === undefined) {
|
|
return [WRITE_SCOPE];
|
|
}
|
|
return resolveTrustedHttpOperatorScopes(req, requestAuth);
|
|
}
|