Skip to Content
ConfigurationRuntime Settings (Admin UI)

Runtime Settings (Admin UI)

Most of what a facility admin changes day to day lives in the database, in the SiteSettings singleton row, and is edited through the Admin UI. No file editing, no restart.

Two things make this more subtle than “the UI is the settings screen”:

  • The database is the lowest-priority configuration source. If the same setting is pinned in settings.json or an environment variable, the UI field still saves — and the pinned value keeps winning.
  • For several features the database is the only source that is read. ENA credentials, file discovery rules, access policy and module settings are read from SiteSettings directly, so the Admin UI is authoritative for them regardless of what the config file says.

Both behaviours are explained in Configuration Sources & Priority.

Where the settings live

All admin screens sit under the sidebar Settings group. The sub-items, in sidebar order:

Sidebar itemRouteOwns
Sequencing Order Form/admin/form-builderOrder form fields, post-submission instructions, deletion of submitted orders, user assembly downloads
Study Forms / Define Studies/admin/study-form-builder or /admin/study-definitionsStudy form fields and groups (the label depends on whether the dynamic-studies module is enabled)
MIxS Checklists/admin/mixs-checklistsWhich MIxS checklists are offered
Modules/admin/modulesOptional module on/off switches and their settings
Sequencers/admin/sequencing-techSequencing technology, device and kit registry
MinKNOW Stream/admin/minknow-streamLive ONT ingest configuration
Infrastructure/admin/data-computeHub for Data Storage and Pipeline Runtime, plus Import settings.json
Background Workers/admin/background-workersWorker status and controls
Accounts/admin/admin-accountsAdministrator accounts and Access & Sharing
Data Upload/admin/enaENA Configuration (Webin credentials, test mode)
Pipelines/admin/settings/pipelinesWhich pipelines are enabled and their per-pipeline configuration
Notifications/admin/settings/notificationsNotification channels and events
Info/admin/settingsPlatform Info — diagnostics, software updates, telemetry toggle, sequencing order notes

Every one of these requires a FACILITY_ADMIN session. The underlying APIs return 401 for anyone else.

Setting-by-setting

Site identity and branding

These columns exist on the SiteSettings row, but there is no admin form for them. Site name and contact email are set through the config file or a hosted install profile; the remaining branding columns are seeded with defaults and are not part of the supported configuration surface.

FieldSiteSettings columnHow it is set
Site NamesiteNamesite.name in settings.json, an install profile, or the seed default SeqDesk
Contact EmailcontactEmailsite.contactEmail in settings.json or an install profile
Data Base PathdataBasePathsite.dataBasePath, or Settings → Infrastructure → Data Storage
Primary ColorprimaryColorSeed default #3b82f6; no UI, not profile-managed
Secondary ColorsecondaryColorSeed default #1e40af; no UI, not profile-managed
Logo URLlogoUrlNo UI, not profile-managed
Favicon URLfaviconUrlNo UI, not profile-managed
Help TexthelpTextNo UI, not profile-managed

Access and sharing

SettingScreenStored as
Department SharingAccounts → Access & SharingextraSettings.departmentSharing
User Assembly DownloadsAccounts → Access & SharingextraSettings.allowUserAssemblyDownload
Allow Deletion of Submitted Sequencing OrdersSequencing Order FormextraSettings.allowDeleteSubmittedOrders
Post-Submission InstructionsSequencing Order FormSiteSettings.postSubmissionInstructions
Sequencing Order notesInfo (Platform Info)extraSettings.orderNotesEnabled

Two of these deserve a second thought before you flip them:

  • Department Sharing lets everyone in a department view and edit each other’s sequencing orders, not just view them. Appropriate for a single shared lab; wrong for a facility serving unrelated groups.
  • Allow Deletion of Submitted Sequencing Orders lets facility admins delete orders after submission. It exists for testing. Leave it off in production — deletion is not recoverable from within SeqDesk.

Turning Sequencing Order notes off hides the shared markdown notepad on sequencing order pages and disables the notes API, so it is a real switch rather than a cosmetic one.

ENA configuration

Found under sidebar Settings → Data Upload (/admin/ena, titled “ENA Configuration”):

SettingStored asNotes
ENA UsernameSiteSettings.enaUsername
ENA PasswordSiteSettings.enaPasswordEncrypted at rest with AES-256-GCM, keyed from SEQDESK_ENCRYPTION_KEY or NEXTAUTH_SECRET
ENA Test ModeSiteSettings.enaTestModeDefault true; submissions go to the ENA test service until you turn it off

This screen is authoritative: ENA submissions read these columns, not the resolved configuration. Putting a Webin password in settings.json neither works at runtime nor is safe. See ENA Credentials.

Rotating NEXTAUTH_SECRET without a separate SEQDESK_ENCRYPTION_KEY makes the stored ENA password undecryptable — re-enter it on this screen afterwards.

Infrastructure

Settings → Infrastructure (/admin/data-compute) is a hub with two detail screens and a JSON import.

ScreenRouteStored as
Data Storage/admin/data-storageSiteSettings.dataBasePath and extraSettings.sequencingFiles (extensions, scan depth, ignore patterns, auto-assign)
Pipeline Runtime/admin/pipeline-runtimeextraSettings.pipelineExecution (execution mode, SLURM queue/cores/memory/time limit/options, Conda path and environment, Nextflow profile, run and database directories, weblog URL and secret)
Import settings.jsonon the hub pageApplies a settings.json into the database in one step

Pipeline Runtime is the only supported place to set extra sbatch options: a pipelines.execution.slurm.options value in a config file is discarded by the executor. Everything else on that screen loses to a config-file or environment value for the same key.

Import settings.json applies the site, access, auth, ena, sequencingFiles, sequencingTech, telemetry, notifications, moduleSettings, modules, pipelines and forms blocks of a settings file into the database. It deliberately ignores install-only and secret blocks (bootstrap, runtime, privatePipelines, installer preset paths such as orderFormSettings) and warns rather than applying them. It is the supported way to push install-time sections into an already-running install without re-running the installer.

See Data Storage and Pipeline Runtime.

Modules

Found under sidebar Settings → Modules (/admin/modules). The modulesConfig column stores which optional modules are on:

Module IDNameDefaultHas settings
mixs-metadataMIxS Metadataon
ena-sample-fieldsENA Sample Fieldson
ai-validationAI Field Validationon
funding-infoExternal Funding & Grantsoff
billing-infoCost Center & PSPoffyes
sequencing-techSequencing Technologyoffyes
dynamic-studiesDynamic Study Definitionsoff
account-validationAccount Validationoffyes
notificationsEmail Notificationsoffyes

Module settings are stored separately from the on/off switch: extraSettings.accountValidationSettings and extraSettings.billingSettings, which correspond to moduleSettings.account-validation and moduleSettings.billing-info in the config file. Module changes may require a page refresh to take effect, because the enabled-module set is read once when the client loads.

Enabling a module is not the same as configuring it. Account Validation enabled with an empty allowedDomains and the default enforceValidation: true blocks every new registration; set the domains at the same time. Email Notifications enabled without notifications.enabled and a relay token dispatches nothing.

Other extraSettings keys

SettingScreenKey
Study form fields and groupsStudy FormsextraSettings.studyFormFields, extraSettings.studyFormGroups
Sequencing technology configSequencersextraSettings.sequencingTechConfig
TelemetryInfo (Platform Info)extraSettings.telemetry
Install-profile pipeline allowlistapplied by profile/importextraSettings.installProfilePipelineAllowlist

Platform Info

Settings → Info (/admin/settings) is titled Platform Info. It is primarily a diagnostics view rather than a settings form. It shows:

  • Diagnostics Snapshot, Health Overview and Diagnostics Shortcuts
  • Feature Flags — the module and capability state the server is running with
  • Demo data — seeding controls for the bundled example dataset
  • Software Updates — running, installed and latest versions, and the update and rollback controls (see Automatic Updates)
  • Detected Tool Versions
  • Configuration Sources — the resolved configuration and where each value came from

It also carries two real toggles that have no better home: Sequencing Order notes and SeqDesk telemetry.

How quickly a change applies

ChangeTakes effect
Anything read straight from SiteSettings (ENA, access policy, file discovery, modules)On the next request, though module state may need a page refresh
Anything read through the resolved configuration (pipeline execution, notifications, telemetry, data base path)Within 60 seconds — the resolution cache TTL. Saving clears the cache for the process that handled the request; other processes wait for their own TTL.
runtime.* values (DATABASE_URL, DIRECT_URL, NEXTAUTH_URL, NEXTAUTH_SECRET)Only after a restart — they are copied into process.env once at startup
app.portOnly after a restart, and only via the generated start scripts

Checking which source is winning

If a UI field will not stick, check what the resolver thinks:

GET /api/admin/config/status

Look up the dotted path in sources. database means the Admin UI is in charge. env or file means your change is being overridden and you need to remove the pin — or accept it. default means nothing has ever set it.

The same information is on the Platform Info page under Configuration Sources.

Secrets are masked in the /api/admin/config/status response. ena.password, notifications.relayToken, and the runtime secrets (nextAuthSecret, anthropicApiKey, adminSecret, blobReadWriteToken) are returned as ******** when set. A masked value tells you a secret is present, not what it is. The endpoint is restricted to FACILITY_ADMIN sessions.