Files
openclaw/src/gateway/server/plugin-route-runtime-scopes.ts
Pavan Kumar Gondhi 6517c700de fix(nostr): require operator.admin scope for profile mutation routes [AI] (#63553)
* 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
2026-04-10 16:38:41 +05:30

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);
}