Skip to main content

Project Settings

Many settings are also available at the Project level, allowing them to be configured for specific tenants on the server rather than globally. Only Super Admin users are allowed to edit Project settings.

Additional details are available in the full Project resource schema.

SettingDescriptionDefault
superAdminUsers belonging to a Project with this flag are granted Super Admin access to the server. Multiple Projects can have this set.false
checkReferencesOnWriteIf true, the the server will reject any create or write operations to FHIR resources with a reference to a resource that does not exist.false
featuresA list of optional features that are enabled for the project. Possible values are listed below.
defaultPatientAccessPolicyThe default AccessPolicy applied to all Patient Users invited to this Project. This is required to enable open patient registration.
linkAdditional Projects whose contents should be accessible to users in the current Project.
defaultProfileResource profiles that will be added to resources written in the Project that do not specify a profile directly. This enables automatic custom resource validation.
settingArbitrary key-value pairs available to anyone in the Project, can be set by Project Admins.
secretKey-value pairs similar to setting, that can only be read by Project Admins. These can be used to pass secrets to Bots
systemSettingServer settings related to the Project: visible to anyone, but can only be set by Super Admins.
systemSecretKey-value pairs that can only be accessed by Super Admins.

Project feature flags

Medplum server exposes settings to control access to specific features on a per-Project basis. The available features are:

FeatureDescription
botsProject is allowed to create and run Bots
cronCan run Bots periodically on CRON timers
emailBots in this project can send emails
google-auth-requiredGoogle authentication is the only method allowed
graphql-introspectionAllows potentially-expensive GraphQL schema introspection queries
terminologyEnable full standards-compliant implementation for the ValueSet/$expand operation
websocket-subscriptionsAllows setting up a Subscription over Websockets
reference-lookupsUses dedicated lookup tables for faster chained search
transaction-bundlesUse strong database transaction isolation for transaction Bundles

Project system settings

The supported options that can be specified by a Super Admin in Project.systemSetting:

systemSettingTypeDescriptionDefault
authRateLimitintegerThe maximum requests per minute allowed for authentication endpoints per IP address160
graphqlBatchedSearchSizeintegerFor some GraphQL nested searches, the maximum number of searches to batch per SQL query0
graphqlMaxDepthintegerThe maximum allowed depth of a GraphQL query12
graphqlMaxSearchesintegerThe maximum number of searches allowed in a GraphQL querynone
legacyFhirJsonResponseFormatbooleanIf true, plain JSON formatting is incorrectly used instead of FHIR JSON for some responses with content type application/fhir+jsonfalse
rateLimitintegerThe maximum requests per minute allowed per IP address60000
searchOnReaderbooleanIf true, FHIR search requests (except in batch requests) are served by the reader database pool if availablefalse