refactor: rename MCP oauth-only setting to enforceMcpOauth

This commit is contained in:
Philipinho
2026-08-26 13:45:28 +01:00
parent 278d318771
commit 214a73b6a0
6 changed files with 22 additions and 22 deletions
@@ -708,9 +708,9 @@
"MCP is only available in the Docmost enterprise edition. Contact sales@docmost.com.": "MCP is only available in the Docmost enterprise edition. Contact sales@docmost.com.",
"MCP Server URL": "MCP Server URL",
"Connect AI assistants with your Docmost account via OAuth.": "Connect AI assistants with your Docmost account via OAuth.",
"Require OAuth": "Require OAuth",
"Enforce OAuth": "Enforce OAuth",
"AI assistants must connect with a Docmost account via OAuth. API keys cannot be used with the MCP server.": "AI assistants must connect with a Docmost account via OAuth. API keys cannot be used with the MCP server.",
"Toggle require OAuth for MCP": "Toggle require OAuth for MCP",
"Toggle enforce OAuth for MCP": "Toggle enforce OAuth for MCP",
"Supported tools": "Supported tools",
"MCP server URL:": "MCP server URL:",
"Learn more": "Learn more",
@@ -111,7 +111,7 @@ export default function McpSettings() {
{t("Connect AI assistants with your Docmost account via OAuth.")}
</Text>
<McpOauthOnlySetting />
<McpEnforceOauthSetting />
<div>
<Text size="sm" fw={500} mt="md" mb={4}>
@@ -156,17 +156,17 @@ export default function McpSettings() {
);
}
function McpOauthOnlySetting() {
function McpEnforceOauthSetting() {
const { t } = useTranslation();
const [workspace, setWorkspace] = useAtom(workspaceAtom);
const [checked, setChecked] = useState(workspace?.settings?.ai?.mcpOauthOnly);
const [checked, setChecked] = useState(workspace?.settings?.ai?.enforceMcpOauth);
const hasAccess = useHasFeature(Feature.MCP_CONTROLS);
const upgradeLabel = useUpgradeLabel();
const handleChange = async (event: React.ChangeEvent<HTMLInputElement>) => {
const value = event.currentTarget.checked;
try {
const updatedWorkspace = await updateWorkspace({ mcpOauthOnly: value });
const updatedWorkspace = await updateWorkspace({ enforceMcpOauth: value });
setChecked(value);
setWorkspace(updatedWorkspace);
} catch (err) {
@@ -182,7 +182,7 @@ function McpOauthOnlySetting() {
<div>
<Group gap="xs" align="center">
<Text size="sm" fw={500}>
{t("Require OAuth")}
{t("Enforce OAuth")}
</Text>
{!hasAccess && (
<Badge variant="light" size="sm" radius="sm">
@@ -202,7 +202,7 @@ function McpOauthOnlySetting() {
defaultChecked={checked}
onChange={handleChange}
disabled={!hasAccess}
aria-label={t("Toggle require OAuth for MCP")}
aria-label={t("Toggle enforce OAuth for MCP")}
/>
</Tooltip>
</Group>
@@ -27,7 +27,7 @@ export interface IWorkspace {
mcpEnabled?: boolean;
aiChatReadOnly?: boolean;
aiChatWorkspaceKnowledgeOnly?: boolean;
mcpOauthOnly?: boolean;
enforceMcpOauth?: boolean;
trashRetentionDays?: number;
restrictApiToAdmins?: boolean;
allowMemberTemplates?: boolean;
@@ -53,7 +53,7 @@ export interface IWorkspaceAiSettings {
search?: boolean;
generative?: boolean;
mcp?: boolean;
mcpOauthOnly?: boolean;
enforceMcpOauth?: boolean;
chat?: boolean;
chatReadOnly?: boolean;
chatWorkspaceKnowledgeOnly?: boolean;
@@ -79,5 +79,5 @@ export class UpdateWorkspaceDto extends PartialType(CreateWorkspaceDto) {
@IsOptional()
@IsBoolean()
mcpOauthOnly: boolean;
enforceMcpOauth: boolean;
}
@@ -337,7 +337,7 @@ export class WorkspaceService {
typeof updateWorkspaceDto.allowPersonalSpaces !== 'undefined' ||
typeof updateWorkspaceDto.aiChatReadOnly !== 'undefined' ||
typeof updateWorkspaceDto.aiChatWorkspaceKnowledgeOnly !== 'undefined' ||
typeof updateWorkspaceDto.mcpOauthOnly !== 'undefined'
typeof updateWorkspaceDto.enforceMcpOauth !== 'undefined'
) {
const ws = await this.db
.selectFrom('workspaces')
@@ -392,7 +392,7 @@ export class WorkspaceService {
}
}
if (typeof updateWorkspaceDto.mcpOauthOnly !== 'undefined') {
if (typeof updateWorkspaceDto.enforceMcpOauth !== 'undefined') {
if (
!this.licenseCheckService.hasFeature(
ws.licenseKey,
@@ -574,16 +574,16 @@ export class WorkspaceService {
);
}
if (typeof updateWorkspaceDto.mcpOauthOnly !== 'undefined') {
const prev = settingsBefore?.ai?.mcpOauthOnly ?? false;
if (prev !== updateWorkspaceDto.mcpOauthOnly) {
before.mcpOauthOnly = prev;
after.mcpOauthOnly = updateWorkspaceDto.mcpOauthOnly;
if (typeof updateWorkspaceDto.enforceMcpOauth !== 'undefined') {
const prev = settingsBefore?.ai?.enforceMcpOauth ?? false;
if (prev !== updateWorkspaceDto.enforceMcpOauth) {
before.enforceMcpOauth = prev;
after.enforceMcpOauth = updateWorkspaceDto.enforceMcpOauth;
}
await this.workspaceRepo.updateAiSettings(
workspaceId,
'mcpOauthOnly',
updateWorkspaceDto.mcpOauthOnly,
'enforceMcpOauth',
updateWorkspaceDto.enforceMcpOauth,
trx,
);
}
@@ -627,7 +627,7 @@ export class WorkspaceService {
delete updateWorkspaceDto.defaultPageEditMode;
delete updateWorkspaceDto.aiChatReadOnly;
delete updateWorkspaceDto.aiChatWorkspaceKnowledgeOnly;
delete updateWorkspaceDto.mcpOauthOnly;
delete updateWorkspaceDto.enforceMcpOauth;
await this.workspaceRepo.updateWorkspace(
updateWorkspaceDto,