The External link checker verifies external links in Dawiso object texts, such as descriptions, definitions, and other rich-text attributes. Those texts accumulate links to pages outside Dawiso, and the pages move or disappear without the catalogue noticing. The checker reports the results back to Dawiso, where a Broken external links widget on your dashboard shows which addresses no longer work and which objects still point at them.
Run it in your own infrastructure
The checker is a separate deliverable: a container on Linux, or a scheduled task on Windows, that you deploy and run in your own infrastructure. Dawiso neither starts it nor schedules it, and there is no setting inside Dawiso that turns it on.
That is deliberate: Dawiso’s own environment reaches neither the public internet nor your intranet, so a check run from there would report almost every link as broken. Running it from inside your network is what makes the results meaningful.
After deployment nothing is verified yet. The Broken external links widget is empty until your first run of the checker finishes. That is the expected state, not a fault to report. It fills in after each subsequent run.
How often it runs is your decision: the checker runs once and exits, so your own task scheduler sets the cadence.
Before the first run
To scope the first run correctly, decide the following before you start it.
Choose which account it acts as
The checker signs in as a machine identity, an OAuth2 client bound to one Dawiso account. Register the client and bind it as described in Machine identity for services.
The bound account is the only thing that limits the scan. That account’s space permissions decide which texts the checker reads and which findings it can write:
- An account with the admin role scans the whole instance.
- An account with an ordinary role scans only the spaces it can read. Content outside those spaces never reaches the checker, and nothing in its output indicates that anything was skipped.
Choose the account for the scope you actually want, and bind a non-admin account when a first run should stay bounded.
Set which hosts count as internal
Set scan.internalHosts to your own domains: your intranet, and Dawiso itself. An address on one of those hosts (subdomains included) is reported without being fetched. It keeps its referenced flag and whatever result was previously stored. This way, the checker never manufactures a broken link out of a page it was never going to reach.
Loopback and private-range addresses (127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 169.254.0.0/16, localhost, and the IPv6 equivalents) are skipped by default, without being listed. scan.internalHosts is for the internal hosts that have real names, which no default can guess.
Anything you leave off that list, and that is not a private address, is requested from the machine running the checker, inside your network. An intranet address that someone pasted into an object’s description becomes a real HTTP request, with the outcome written back into Dawiso as a link result.
Choose where the cursor is stored
scan.stateFile records how far the last run got. The cursor belongs to one Dawiso instance, so give each environment its own file. A file shared between, say, a test and a production instance silently skips everything up to the stored position. Deleting the file forces a full run.
Run the external link checker
Run the checker in two modes, in this order:
- Recheck: Re-verifies only the addresses Dawiso already records. It reads no text and moves no referenced flag, so on an instance that has never been scanned it finds nothing and changes nothing. This makes it a safe first run: it still proves the credentials, the connection, and the run reporting.
- Incremental: The full run. With no state file present it walks every text the bound account can read. On later runs it picks up from the cursor and reads only what changed.
The process exits with a status code that tells you what happened:
| Exit code | Meaning |
|---|---|
0 | The run finished. |
1 | The run failed. |
2 | The configuration is unusable. Every problem is listed at once, and nothing is contacted. |
Each run keeps a detailed local log on your server. Dawiso receives aggregate counts only, on the background-task record for the run. Per-link failures never leave your infrastructure.
Check what a run changes in Dawiso
A run changes three things in Dawiso, regardless of scan mode:
- One background-task record per run, which you can open from the task list.
- One recorded row per object + attribute + address, created or updated (including for addresses that are reachable), so each one carries a check date.
- Addresses that are no longer in a text lose their referenced flag.
Nothing is deleted, and no object text is ever modified.
Read the results
Add the Broken external links widget to a dashboard (see Add a widget). Its default view shows the addresses that are not working and still referenced, the ones worth acting on, newest check first. Each row carries:
- The object and the attribute the link sits in
- The address and its result
- The date it was last checked
- Its referenced status
- Its reachable status
Other filters open up the rest:
| Filter | Value | Shows |
|---|---|---|
| Reachable | Yes | Addresses that are fine. |
| Referenced | No | Addresses recorded earlier and since removed from their text. They keep their last result and check date rather than disappearing. |
| Space | — | Narrows the widget to links found in objects within the selected space. |
Clicking the object name opens the object; clicking the address opens the target in a new tab.