Server Configuration
Hiding settings surfaces
PAPERCLIP_HIDDEN_SETTINGS takes keys from the registry in
packages/shared/src/settings-visibility.ts:
- Any instance settings page:
instance.profile,instance.environments,instance.access,instance.heartbeats,instance.experimental,instance.plugins,instance.adapters— removed from navigation and routing (the General page is the settings root and stays visible). Hidinginstance.access,instance.plugins, orinstance.adaptersalso floors their management endpoints with403 settings_operator_managed; hidinginstance.experimentalfloors every experimental toggle write. - Any Instance → General section:
instance.general.censorUsernameInLogs,instance.general.keyboardShortcuts,instance.general.backupRetention,instance.general.feedbackDataSharingPreference(each also rejects value-changing writes viaPATCH /api/instance/settings/general), plus the UI-onlyinstance.general.deploymentStatusandinstance.general.signOut. - Any experimental toggle:
instance.experimental.<flagKey>(e.g.instance.experimental.enableSmokeLab) — the card disappears and value-changing writes are rejected. - Any top-level company settings page:
company.members,company.invites,company.secrets,company.export,company.import— removed from the settings sidebar, tab bar, and routing (the company General page is the settings root and stays visible). These are UI-visibility keys: the membership, invite, secret, and export APIs stay live for agents and integrations.company.importis the exception — hiding it also floors every company-import route with403 settings_operator_managed. On cloud-managed instances import is floored unconditionally with403 cloud_managed, independent of this variable.