Loading this video will connect you to YouTube (Google LLC, USA) and transmit your IP address. By clicking play you consent to this transfer. See our privacy policy.
A fresh SENAITE installation looks emptier than it is. There are no sample types, no methods, no analysis services, no clients. The workflow engine works, the audit trail records, the API responds. But there is nothing to click around because nothing has been configured.
The demo data profile fixes this. One command from inside the container, and the system fills with realistic laboratory content you can use to evaluate the product, train new users, or prototype a workflow.
What demo data contains
senaite.lims ships a built-in installation profile called
senaite.lims:demo. Running it once populates:
- Clients. A handful of realistic lab customers.
- Contacts. People who belong to those clients.
- Sample types. Water, soil, wastewater, blood, urine, and a few others.
- Methods. Reference methods with documentation links.
- Analysis services. Several dozen services, with units, uncertainties, calculations, and instrument associations.
- Instruments. Stub records you can wire to real ASTM/HL7 later.
- Sample points. Sampling locations for environmental samples.
It is not production data. It is enough data to make every screen in SENAITE show something meaningful.
Prerequisite: a running SENAITE
You need a running instance. If you do not have one,
start with the 5-minute Docker run.
The example below assumes the container name senaite and that
your SENAITE listens on port 8080.
Apply the profile via the UI
The simplest path. Log into SENAITE as the Zope admin, then:
- Click your name in the top right and choose Site Setup.
- Open Add-ons.
- Find SENAITE LIMS DEMO.
- Click Install.
Wait twenty to forty seconds. The page refreshes and the install
profile applies. Navigate back to /senaite and you will find
clients, sample types, and analysis services where there were
none.
Apply the profile via the command line
If you are scripting environments, the same install runs from
zopectl run:
docker exec -it senaite bin/instance run -O senaite \
src/senaite.lims/scripts/install.py
The container needs to be running. The script imports the
senaite.lims:demo profile against the SENAITE site object and
commits the transaction.
For your own provisioning scripts, the underlying Python is just:
from Products.GenericSetup.tool import SetupTool
setup = portal.portal_setup
setup.runAllImportStepsFromProfile("profile-senaite.lims:demo")
import transaction
transaction.commit()
That is the entire mechanism. The demo profile is a normal Plone
GenericSetup profile that lives inside the senaite.lims package.
What to do next
With demo data in place, three useful walk-throughs:
- Register a sample. Clients > pick one > Add Sample. Add a few analysis services. Submit.
- Open the worksheet view. Worksheets > Add. Drag samples in. Print the worksheet for the analyst.
- Enter and verify results. Open the sample, type in results, submit, verify, publish. Watch the audit trail capture every step.
When the demo has shown you what SENAITE feels like with content in it, the next question is usually “what does this look like with our data, our methods, our workflow.” That is what the 3-day workshop is for: we drop your real data into a configured system and you leave on Friday with a VM you can take home.
Removing demo data
The demo profile is additive. The only way to fully remove it is
to start from a fresh ZODB. For local Docker evaluation, the
easiest path is to stop the container (--rm deletes the volume)
and re-run.
For production-leaning installs where you want a clean state, see the Ubuntu install guide, which provisions a fresh Data.fs you can keep or wipe at will.