ENA Credentials
To register studies and samples with the European Nucleotide Archive, SeqDesk authenticates against ENA’s Webin submission service with a single facility-wide account. There is no per-user or per-study credential: one Webin account speaks for the whole instance, so whoever holds facility-admin rights can submit under it.
The screen is Settings → Data Upload in the sidebar; the page itself is
headed ENA Configuration (/admin/ena).
Before you start
You need a Webin account from the
ENA Webin portal . Its identifier has
the form Webin-12345 — the literal prefix Webin- followed by digits only.
SeqDesk validates this with ^Webin-\d+$ in two places (on save and on connection
test), so a Webin identifier with anything else after the dash is rejected with
ENA username must be in format 'Webin-XXXXX' (e.g., Webin-12345)The SeqDesk server must also be able to reach wwwdev.ebi.ac.uk and
www.ebi.ac.uk over HTTPS. Compute nodes do not need this — only the
application host.
Configuring the account
Choose the submission server
The Submission server control is a Test/Production switch. Leave it on Test while you set things up. Switching to Production raises an inline warning, and the page header shows the active server at all times.
Enter the credentials
Fill in Webin username and Webin password. When a password is already stored the field shows the placeholder Saved password in use — leaving it empty keeps the stored one, and typing a new value replaces it.
Test the connection
Press Test connection. See below for exactly what this does.
Save
Press Save changes.
Save is blocked until the connection test passes. Whenever the username or password has been edited, Save changes stays disabled until Test connection has returned a success in the same session. Broker-mode and server changes on their own can be saved without a test. This is why credentials cannot be saved “to try later”.
What Test connection does
It is a real submission attempt, not a ping. SeqDesk POSTs to
<server>/ena/submit/drop-box/submit/ with HTTP basic auth and a minimal
SUBMISSION document whose only action is <VALIDATE/>, alongside a throwaway
PROJECT document. Nothing is registered.
| Outcome | Meaning |
|---|---|
Credentials verified with ENA Test server | ENA answered with a submission receipt, so authentication worked |
Invalid credentials - authentication failed | HTTP 401 from ENA |
Authentication failed - check your password | ENA’s body mentioned an authorisation problem |
Invalid username format. Expected "Webin-XXXXX"… | Rejected locally, before any network call |
ENA server returned: <status> | Something else — usually an outage or a blocked outbound connection |
A validation failure on the throwaway project still counts as success: the point is that ENA accepted the credentials well enough to validate at all.
Test versus production
| Mode | Server | Behaviour |
|---|---|---|
| Test (default) | wwwdev.ebi.ac.uk | Full validation, real accessions, but the records expire after 24 hours |
| Production | www.ebi.ac.uk | Permanent public records |
Test mode is stored as enaTestMode and defaults to true on a fresh install.
Both the settings screen and the study submission flow surface the active server
prominently, because a production registration cannot be undone — accessions are
permanent even if the record is later suppressed. Validate on the test server
first, every time.
Broker accounts
A regular Webin account submits under the affiliation held by ENA for that
account. A broker account submits on behalf of other institutes — the usual
situation for a service facility handling customer studies — and may set a
center_name per submission.
- Turn on Broker account only if ENA has actually granted your Webin account broker permissions.
- With broker mode on, Center name is required. The page refuses to save while it is empty and shows Enter the broker center name before saving.
- The value is written as
center_nameinto the submitted XML for studies and samples. Center names are free text on ENA’s side. - With broker mode off, no center name is sent and the field is disabled.
Broker mode and center name are stored under ena.brokerAccount and
ena.centerName, and can also be supplied through
SEQDESK_ENA_BROKER_ACCOUNT and SEQDESK_ENA_CENTER.
Upload readiness
The Upload Readiness panel at the top of the page summarises four checks before anyone tries to submit:
| Check | Green when |
|---|---|
| Credentials | A username is present and a password is stored or typed |
| Server | Test server is selected — production is flagged amber as a reminder, not an error |
| Account | Regular mode, or broker mode with a center name |
| Submissions | No failed, pending or partial submissions outstanding |
Below it, Submission History lists past registrations with their status
(PENDING, PARTIAL, ACCEPTED, ERROR, FAILED) so you can see whether an
earlier attempt left work half-finished.
Where the credentials live, and how they are protected
The username, the encrypted password and the test-mode flag are columns on the
single site-settings row. GET /api/admin/settings/ena never returns the
password — it returns hasPassword and configured booleans only.
Encryption at rest
The Webin password is encrypted before it is written to the database:
| Property | Value |
|---|---|
| Algorithm | AES-256-GCM |
| Key derivation | HKDF-SHA256 over the deployment secret |
| Stored format | enc:v1:<base64(salt ‖ iv ‖ tag ‖ ciphertext)> |
| Key material | SEQDESK_ENCRYPTION_KEY, else NEXTAUTH_SECRET, else AUTH_SECRET |
Two consequences worth planning for:
Rotating the deployment secret makes the stored password
unrecoverable. The key is derived from
SEQDESK_ENCRYPTION_KEY / NEXTAUTH_SECRET /
AUTH_SECRET. Change any of those and decryption fails; you must
re-enter and re-test the Webin password afterwards. Set
SEQDESK_ENCRYPTION_KEY explicitly if you want to rotate session
secrets independently of stored secrets.
- Values stored before encryption was introduced are read as plaintext. Any
value without the
enc:v1:prefix is passed through unchanged for backwards compatibility, and is upgraded to ciphertext the next time it is saved. If your instance predates this, re-save the password once to encrypt it. - With no key material at all, saving fails with
Cannot encrypt secret: no key material available. Set NEXTAUTH_SECRET (or SEQDESK_ENCRYPTION_KEY) in the environment.
Encryption protects a leaked database dump. It does not protect against someone with both the database and the environment — keep backups and environment files under the same access controls.
Clearing the credentials
Clear credentials appears once an account is configured. It removes the username and password from the instance after a confirmation dialog. Existing accessions on already-submitted studies are unaffected; only future submissions stop working.
Supplying credentials without the UI
The configuration loader accepts:
export SEQDESK_ENA_USERNAME="Webin-12345"
export SEQDESK_ENA_PASSWORD="your-password"
export SEQDESK_ENA_TEST_MODE="true"
export SEQDESK_ENA_CENTER="Your Center Name"
export SEQDESK_ENA_BROKER_ACCOUNT="false"and the equivalent block in settings.json:
{
"ena": {
"username": "Webin-12345",
"testMode": true,
"brokerAccount": false,
"centerName": "Your Center Name"
}
}Both submission paths — study/sample registration
(POST /api/admin/submissions) and the submg pipeline — read the
credentials from the database. Environment and file values
feed the configuration layer and are applied to the stored settings through
the install-profile and settings-import flows; they are not consulted
directly at submission time. If a submission reports missing credentials
while the environment variables are set, open Data Upload
and confirm the page shows Configured.
Never commit a Webin password to a config file in version control.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Save changes stays greyed out | The credentials were edited and not re-tested, or broker mode has no center name | Press Test connection, or fill in the center name |
ENA username must be in format 'Webin-XXXXX' | Non-numeric suffix or missing prefix | Use the identifier exactly as ENA issued it |
Invalid credentials - authentication failed | Wrong password, or the account has no submission rights on that server | Sign in to the Webin portal to confirm; test and production accounts are the same login |
ENA server returned: 503 | ENA maintenance, or outbound HTTPS blocked | Retry later; check the app host’s egress to ebi.ac.uk |
ENA credentials not configured. Please configure your Webin credentials in Admin > Data Upload > ENA Configuration. | A submission was attempted with no stored username or password | Configure and save them on this page |
| Test accessions vanished overnight | ENA test records expire after 24 hours | Expected; re-register on test, or move to production |
| Submissions worked, then failed after a redeploy | The deployment secret changed, so the stored password no longer decrypts | Re-enter the password, test, and save |
| Broker submissions carry no center name | Broker mode is off | Turn it on; the center name is only sent in broker mode |
See also
- ENA Submission — the researcher-facing submission workflow these credentials enable
- Study Workflow — marking a study ready before registration
- Environment Variables — the full
SEQDESK_ENA_*reference