Wiki¶
The wiki is the built-in knowledge base: work instructions, process descriptions, equipment know-how and onboarding material live where the equipment and calibrations live.
Structure¶
| Element | Description |
|---|---|
| Categories | Group articles in the tree. Categories are language-specific. |
| Articles | One page per language; translations of the same article belong together. |
| Blocks | The editor works with blocks: heading, paragraph, list, to-do, quote, callout, code, table, image. |
| Revisions | Every save creates a new revision. Earlier versions stay readable. |
| Media | Images and attachments belong to the article and travel with it. |
Width of the page overview¶
A drag handle sits between the page overview and the article — the slim bar in the gap. Use it to shift how much room each side gets: wider when a deeply nested category tree would otherwise wrap, narrower once the article is what matters. The width you set is remembered and applies the next time you open the wiki. It works without a mouse too: tab to the handle, then Left/Right arrow (with Shift for larger steps) or Home/End for the narrowest and widest setting. How far the handle travels is bounded by the available space — tree and article both keep a minimum width.
On phones and small tablets¶
On wide screens the category tree sits to the left of the article. Below a window width of 768 px the article gets the full width and the tree opens via the Pages button in the header; it closes again as soon as a page is picked.
In the editor, the handle (⋮) next to a block leads to every block action on touch devices — insert paragraph, move, duplicate, delete and convert. The handles for adding and removing table rows and columns are permanently visible there instead of appearing on mouse hover.
Permissions¶
| Operation | Grants |
|---|---|
wiki_view |
Read articles |
wiki_edit |
Create and edit articles, upload media |
wiki_delete |
Delete articles |
wiki_category_view / _edit / _delete |
Read, maintain and delete categories |
wiki_export |
Download the complete wiki as a package |
wiki_import |
Import a wiki package |
Export and import are separate rights
wiki_export and wiki_import are deliberately not a gradation of
wiki_edit. Export carries the entire knowledge base out of the system as
a file, import writes foreign content into it — both are a different
decision from "may change a page". Neither operation is assigned to any
role automatically on update; whoever needs them gets them in role
management.
Exporting the whole wiki¶
The Export button in the top right downloads the complete wiki as a ZIP
package (calserver.wiki-package):
wiki-export-2026-09-11.zip
├── manifest.json sha256 checksums per entry
├── wiki.json categories, articles, all language variants, content
└── media/ the uploaded images and attachments
Images and attachments travel with it: an exported wiki stays complete even when articles carry screenshots or instructions as files.
The package suits a move to another installation, an additional backup alongside the database dump, and handover to a second installation.
Importing a wiki¶
The Import button opens the dialog. What gets imported is a package
file: a ZIP from an export, a package from the download page (see below), or
a single wiki.json.
Plus the question of what happens to pages that already exist:
| Mode | Behaviour |
|---|---|
| Keep existing pages (default) | An article that already exists is left untouched. Running the same import twice changes nothing the second time. |
| Overwrite existing pages | The package content is written as a new revision. The previous version stays in the history and remains available. |
After the import the dialog reports what actually happened: categories created, pages created, updated and skipped, media taken over, plus any warnings.
Matching by article ID
Articles are matched by their general_page_id, not by title. A renamed
article is still the same article; a freshly typed article with the same
title is a different one.
The manifest is verified
A ZIP is only read when every file matches the checksum recorded in
manifest.json and no unlisted file rides along. A package altered after
the fact is rejected — that is what makes packages from a download page
trustworthy in the first place. To edit the content, upload the extracted
wiki.json on its own.
Downloading templates¶
Ready-made wiki templates are available on the download page of the templates repository under the category Wiki-Vorlagen — the same page that serves the report packages and test plans.
Why not bundled with the product
A wiki template is editorial content: it changes when the standard or the wording changes, not when calServer ships a new version. Bundling it would mean cutting a release for a text fix. Through the templates repository a revised version is available immediately, and the import stays the same.
ISO/IEC 17025 template (two variants)¶
There are two packages carrying the same manual text. They differ in whether the implementation in calServer is part of the manual:
| Package | Chapters | Fits when |
|---|---|---|
wiki-iso-17025.zip |
14 (QMH-00 to QMH-13) | the manual should stay tool-neutral |
wiki-iso-17025-calserver.zip |
15 (plus QMH-14) | calServer is the authoritative record and gets shown in the audit |
Importing both leaves you with 29 articles describing the same manual twice — the article IDs differ, so the import does not recognise them as the same. Pick one variant.
Tool-neutral version¶
The package wiki-iso-17025.zip contains a starter template for the quality
manual of a calibration laboratory, structured after ISO/IEC 17025:2017: 14
chapters (QMH-00 to QMH-13), each in German and English, one category per
language. It is the manual text itself rather than an outline of the standard:
every lab-specific detail is a placeholder in square brackets ([Lab name],
[accreditation registration number], [interval]), and each chapter opens
with a callout listing what to replace and what to decide.
| Chapter | Content | Clause |
|---|---|---|
| QMH-00 | Cover page, placeholders, chapter overview, document control | 8.3, 8.4 |
| QMH-01 | Scope and accreditation scope | 1, 5 |
| QMH-02 | Impartiality and confidentiality | 4.1, 4.2 |
| QMH-03 | Organisation and responsibilities | 5 |
| QMH-04 | Personnel and competence | 6.2 |
| QMH-05 | Facilities and environmental conditions | 6.3 |
| QMH-06 | Equipment and reference standards | 6.4 |
| QMH-07 | Metrological traceability and externally provided services | 6.5, 6.6 |
| QMH-08 | Order handling and calibration procedures | 7.1, 7.2, 7.4 |
| QMH-09 | Evaluation of measurement uncertainty | 7.6 |
| QMH-10 | Ensuring the validity of results | 7.7 |
| QMH-11 | Calibration certificates and conformity statements | 7.8 |
| QMH-12 | Complaints, nonconforming work and corrective actions | 7.9, 7.10, 8.7 |
| QMH-13 | Risks and opportunities, internal audits, management review | 8.5, 8.8, 8.9 |
The tables carry the structure — document header, accreditation scope, role matrix, traceability plan, uncertainty budget, retention periods. Their rows are examples and get overwritten before release. Where a chapter describes a record that is created in calServer (reference standards, due dates, calibration certificates, complaints), it names the module.
A starter template, not a finished quality manual
The texts are a starting point. Before release, replace the placeholders, overwrite the example rows with your own data, remove chapters that do not apply and say why, and add references to your own procedures. A template adopted unchanged proves nothing to an accreditation body — and leftover placeholders stand out in an audit.
Version with calServer implementation¶
wiki-iso-17025-calserver.zip carries the same manual text but closes every
chapter with three additional sections:
| Section | Question it answers |
|---|---|
| Implementation in calServer | Where does the requirement land, and what evidence is produced there? With module, menu path and operation. |
| Evidence in the audit | What does an assessment ask, what answers it, and where in the product does that live? |
| Limits | What calServer does not do here — as a task list that stays open until the lab has settled the point elsewhere. |
On top of that comes QMH-14 as a worksheet: a coverage matrix across all clauses rating how far calServer carries each chapter (largely, partly, little), the five widest gaps, and a gap list to tick off. The chapter also states what a usable report about a missing function has to contain.
The limits sections are the actual point of this variant. They say, for example, that a competence matrix is not a data object, that the target range for environmental conditions is printed rather than checked, that no GUM uncertainty budget is computed, and that releasing a certificate deliberately does not check the accreditation scope.
The rating applies to one release
QMH-14 rates calServer V2 as shipped, not your installation with its licensed modules. Review the page after an update — otherwise the manual claims gaps that no longer exist, or hides new ones.
Several chapters point to configuration packages from the same downloads page (status models, ticket management, category tree, certificate template). Together they produce an installation in which the described evidence actually arises.
Existing installations¶
The template does not arrive automatically with an update — and it does not need to, because it can be fetched at any point in time. After updating to a version with this feature:
- The operations
wiki_exportandwiki_importare available in role management (the migration adds them to the catalogue). - Assign
wiki_importto the relevant role. - Download
wiki-iso-17025.zipfrom the download page. - In the wiki click Import, choose the file, leave the mode at Keep existing pages and import.
A second run is harmless: articles that already exist are skipped. To adopt a later revision, use Overwrite existing pages — the previous texts remain available as a revision.
Command line¶
For initial setup, migration or support access there is the same route without granting rights:
# Import a package from disk (idempotent)
docker exec calserver-api-v2 php artisan wiki:import /path/wiki-iso-17025.zip
# Overwrite existing pages with a new revision
docker exec calserver-api-v2 php artisan wiki:import /path/wiki-iso-17025.zip --mode=overwrite
# Attribute the revisions to a specific user (default: first superadmin)
docker exec calserver-api-v2 php artisan wiki:import /path/wiki-iso-17025.zip --user=<uID>
API¶
| Method | Endpoint | Right |
|---|---|---|
GET |
/api/v2/wiki/export |
wiki_export |
POST |
/api/v2/wiki/import |
wiki_import |
Export optionally accepts ?language=de and ?category_id=3. Import expects
an uploaded file (file) plus an optional mode (skip or overwrite).
Format¶
The package format is calserver.wiki-package (version 1); the document inside
is calserver.wiki. The machine-readable manifest schema lives at
wiki-package.schema.json.
Contributors will find the rules in the templates repository
calhelp/calServer-reports
(robots.md, section 0.4).
Background on the format decision: ADR 2026-09-11 (German).