Replayed scenarios
Each scenario was replayed on a lumnik hub: the manifests, commands and results shown are the replay's own. The data is synthetic.
84 scenarios. 70 run on lumnik Open. Try lumnik Open →
Repair an export
Broken accents, dates, amounts, half-filled columns: the repair is declared at the door.
- Open
A CRM export with broken accents and wrong emails
Take over the old CRM's contacts with a repaired name, an international phone and a valid email, and name those that cannot be reached.
Open the scenario → - Open
A delivery date each warehouse works out differently
Promise the customer the date their warehouse can keep: one calculation rule, set per warehouse (country, lead time, closed days).
Open the scenario → - Open
AS/400: the customer over its credit limit, read in EBCDIC
Read an IBM i customer master in its French EBCDIC, and be told when a customer's outstanding balance exceeds its credit limit.
Open the scenario → - Open
An application inventory with hand-typed URLs
Split each URL into server, port and environment, to know what runs on a server and what is still in staging.
Open the scenario → - Open
Every line of the Excel export gets its region and its client back
Read an Excel report with merged cells as a table, one row per sale.
Open the scenario → - Open
Every order says which version of the rule computed it
Know, months later, which shipping rule computed each order.
Open the scenario → - Open
Firebird (Delphi): refused over JDBC, read through its export
Read a Delphi application's Firebird database, and be told when an article falls under its reorder threshold.
Open the scenario → - Open
HPLC report: the impurity over its limit, read from the instrument's export
Read the injection reports an HPLC exports, units glued and decimal commas, and be told when an impurity exceeds its specification.
Open the scenario → - Open
High-resolution mass spectrometry: the QC drifts to 3.84 ppm, the samples after it know
Read the QC export of an LC-HRMS screening without losing a decimal, and flag every sample acquired after a QC outside its mass tolerance.
Open the scenario → - Open
Lotus Notes: quality complaints read through the Domino Data Service
Read a Notes view without touching the database, check the view's count, and be told of a critical complaint nobody has taken on.
Open the scenario → - Open
One order status spelled fourteen ways
Count orders by status whatever the spelling, and be told of a new spelling.
Open the scenario → - Open
One row per item to pick with model colour and size
Turn a marketplace export into one row per item, to pick the stock.
Open the scenario → - Open
Progress OpenEdge: the 1999 order that must not become 2099
Read a Progress ERP's EXPORT files, two-digit years included, and be told when a dormant customer is reactivated.
Open the scenario → - Open
Progress, FoxPro, Access: three dinosaurs, one machine register
Read three workshops' machine registers as their old databases export them, without touching a file, and bring them together in one register.
Open the scenario → - Open
SOAP WCF and WS-Security: the password rotated, the Fault says so
Read a WCF service protected by a UsernameToken, survive the rotation of its password, and be told when an order is confirmed past its promised date.
Open the scenario → - Open
Struts 1 without an API: the screen's CSV export, read as it comes out
Read a Struts 1 application whose only output is its screen's CSV export, and be told when a customer return has waited for a part for more than 30 days.
Open the scenario → - Open
The supplier file goes to EDI in ASCII with a stable id
Send EDI the suppliers in the form it requires, with an id that does not change.
Open the scenario → - Open
The wrong bar code caught at import
Catch wrong bar codes at import.
Open the scenario → - Open
Three systems, one receipt date: the 00:30 batch and the plant's day
Fuse into one entity a batch's arrival date as the LIMS, the ERP and the carrier give it, and keep in dispute only the real disagreements.
Open the scenario → - Open
WinDev: the client export with real dates and a real Active flag
Read the client file a WinDev application exports, and turn it into columns a question can use.
Open the scenario →
Read an old format
EDI, EDIFACT, IDoc, CFONB, spool print, log, SOAP: each format is read as it is.
- Open
A CFONB statement with the sign hidden in the last digit
Read the CFONB 120 bank statement as a table: every movement signed, tied to its statement, with its payer and invoice.
Open the scenario → - Open
An EDIFACT ORDERS message read again order line by order line
Read an EDIFACT order segment by segment, then line by line, with no EDI tool.
Open the scenario → - Open
Every line of a SAP ORDERS05 IDoc gets its customer order back
Read a SAP customer's order IDocs, one row per order line, with no middleware.
Open the scenario → - Open
Failed orders hidden in the logs
Tie each error in the application log to its order, its customer and its current status, to know which customers to call back.
Open the scenario → - Open
Four EDI files for a single order line
Merge the four flows to know whether each line is ordered, confirmed or delivered, and be alerted when a confirmed date passes without delivery.
Open the scenario → - Open
The CRM's SOAP desk read service by service with nothing read twice
Read an old CRM's SOAP services, each as it reads, without hammering it.
Open the scenario → - Open
The aged balance trapped in a print file
Turn a paginated accounting print file into receivables per invoice, keeping the right client across page breaks and dropping headers and totals.
Open the scenario → - Open
The order lines of a flat EDI file read at their place
Read the order lines of a fixed-width EDI file as columns, with no mapping tool.
Open the scenario →
Merge the sources
Several sources become one record. Disagreements stay visible.
- Open
An established customer does not switch records in silence
See when a CRM contact starts pointing at another customer, instead of moving it in silence.
Open the scenario → - Open
One customer in two systems with no shared id
Match ERP customers and CRM contacts, without ever merging by chance.
Open the scenario → - Pro
One product record joins PostgreSQL and Oracle with nothing migrated
Show a complete product record when the product lives in PostgreSQL and its category in Oracle, without touching either database.
Open the scenario → - Open
Two systems and one member each one rules its own fields
Show each field of a member from the system that rules it, without hiding a disagreement.
Open the scenario →
Lose nothing in silence
Every line is counted. An unreadable line is set aside, with its reason.
- Open
A Spring app behind a proxy keeps each product under its SKU
Read a home-grown Spring Data REST application's whole stock, page by page, and keep each product under its SKU, whatever host it is reached through.
Open the scenario → - Open
A ticket closed in Gitea stays open in the hub if only open ones are read
Follow a Gitea forge's open tickets, paged by its Link header, without keeping open a ticket support has closed.
Open the scenario → - Open
An invoice with an unreadable amount waits for its fix at the source
Never write an invoice without an amount, and follow each set-aside line until it is fixed.
Open the scenario → - Open
An old Spring MVC app returns the whole list at once and one line reads it
Read the vets of Spring PetClinic, a Spring MVC app from before Spring Boot, without touching its code.
Open the scenario → - Open
An old app behind a login: lumnik logs in like a user
Read the vets of Spring PetClinic, protected by the Tomcat server's login, without touching the app.
Open the scenario → - Open
An order changed during the read is not lost
Read only what changed each night, without losing what changes during the read.
Open the scenario → - Open
An unreadable line of the export does not pass in silence
Never write or remove half a catalogue when one of its lines is unreadable.
Open the scenario → - Open
Drupal: the whole site read through JSON:API in one line
Read every article of a Drupal site through its JSON:API module, without writing the paging.
Open the scenario → - Open
FastAPI: 130 deliveries read in one line
Read every delivery of an in-house FastAPI service through its API, without asking its team for an export.
Open the scenario → - Open
Micronaut: the stores' parts read in three requests
Read every spare part of a Micronaut service through its API, even while the stores work in it.
Open the scenario → - Open
NestJS: a ticket deleted mid-read no longer costs its neighbour
Read every ticket of a NestJS service through its API, even while the support team works in it.
Open the scenario → - Open
NetBox: the whole network inventory read with a read-only token
Read every device of a NetBox, the network team's source of truth, each night, with a read-only token.
Open the scenario → - Open
One unexpected value in 500 as a dead letter and the other 499 written
Keep one unexpected line from stopping the other 499, and keep it visible.
Open the scenario → - Open
Paperless-ngx: a list that moves while it is read is read again
Read every correspondent of a Paperless-ngx archive through its API, even while someone works in it.
Open the scenario → - Open
PrestaShop: the XML catalogue read in one line
Read every product of a PrestaShop 8 shop through its Webservice, in XML, as it answers.
Open the scenario → - Open
Sequelize: the service announces 260 orders for 130
Read every order of a Node service through its API without believing a wrong total.
Open the scenario → - Open
Spring Slice: an article deleted mid-read lands on no page
Read every article of a Spring Boot catalogue through its API, and know when one may be missing.
Open the scenario → - Open
Spring changes its page JSON and one line follows
Read a Spring Boot app's whole catalogue, page after page, before and after the team changes how its Pages are serialized.
Open the scenario → - Open
Stripe: every customer read without writing the pagination
Read every customer of a Stripe account, page after page, without writing the paging.
Open the scenario → - Open
The SaaS behind OAuth2 read without losing a page
Read an OAuth2-protected SaaS without losing a page, and say why when access is refused.
Open the scenario → - Open
The carrier wants its cursor in a header or the run fails
Read every tracking event of a carrier whose API expects the page cursor in a request header.
Open the scenario → - Open
The carrier's SFTP drop read every night with nothing taken on trust
Read the carrier's file every night, file it away, and refuse a server whose key changed.
Open the scenario → - Open
The partner's API loses a page and the run does not lie
Never let a run call itself complete when the source served fewer rows than it declares.
Open the scenario → - Open
WordPress announces 46 articles and serves 31: the run fails
Read every article of a WordPress site, and refuse a partial read when a plugin hides some without changing the count.
Open the scenario →
Alert and decide
What changes, or sleeps past the declared threshold, becomes a decision or an alert.
- Open
A changed bank account the SIEM never sees
Let the SIEM see a supplier's IBAN change, without the IBAN showing in the inbox.
Open the scenario → - Open
A critical incident is left without a technician
Warn the maintenance manager as soon as a critical incident has no technician.
Open the scenario → - Pro
An open freezer door and a silent sensor
Be alerted when a freezer door stays open past one minute, with the laboratory and the owner.
Open the scenario → - Open
An unapproved hotfix in k8s prod stops the pipeline
Block a release when a pod runs a version the release board did not approve, with an exit code a CI understands.
Open the scenario → - Open
Auditing how long orders stay in each status
Know how long each order stays in each status, and which ones stop moving.
Open the scenario → - Open
Expired calibrations: the results measured on an out-of-date instrument
Flag every lab result measured outside its instrument's calibration validity (ISO 17025), from the register and the LIMS as they export.
Open the scenario → - Open
HL7 v2: the analyser result above its range, flagged or not
Read the HL7 v2 messages two analysers drop for the LIMS, and be told when a result is above its reference range.
Open the scenario → - Pro
Lyon draws 18.7 kW at night and only its owner is alerted
Be alerted when a closed site draws more than its night threshold, without alerting the sites where that load is normal.
Open the scenario → - Pro
Oracle and BLOB: the drawing refused, the view that weighs it, the PDF lost overnight
Read a PLM's drawing register on Oracle without reading the drawings themselves, and know the same morning that a released drawing lost its file.
Open the scenario → - Open
SAP OData v2: the 48,000 EUR order left unprocessed
Read SAP's sales orders through the OData v2 Gateway, then be told when a large order stays unprocessed.
Open the scenario → - Open
SENAITE: Fleming's plate waiting to be verified
Be told when a SENAITE LIMS result goes over its limit, then when nobody verifies it.
Open the scenario → - Open
The SMTP relay changed its password: three cold-room alerts do not leave, the on-call desk knows
Mail a cold room's temperature excursions, know the same day that a mail did not leave and why, then send it again without a duplicate.
Open the scenario → - Pro
The freezer probe reads 6.8 °C in the middle of the night
Be alerted as soon as an independent HACCP probe sees a freezer above -18 °C, even when the refrigeration controller says nothing.
Open the scenario → - Pro
The €240,000 deal that confirms itself during dinner
Tell the sales engineer on their phone as soon as the CRM marks a deal ready to confirm, with the line, the parts and the catalogue at hand, and have one tap on Traiter move the CRM and send the customer email.
Open the scenario →
Serve the teams
One app per team, an API, SQL, exports: the data serves where people work.
- Open
40,000 items browsed page by page in the PWA
Browse a whole catalogue in the PWA without ever loading more than 50 rows at a time.
Open the scenario → - Open
A claim form's lists come from the CRM without exposing its GraphQL
Feed a form's lists from a GraphQL CRM without the browser depending on the CRM's schema.
Open the scenario → - Open
A frozen ERP feeds a real Grafana dashboard
Give management an up-to-date sales dashboard from the exports of an ERP nobody touches any more.
Open the scenario → - Open
A technician sees only the maintenance app
Give each business line its app on the same hub, without a technician being able to read purchasing's data.
Open the scenario → - Pro
Search 40,000 items with facets in the PWA
Find an item by its words or the start of its reference, and narrow by category, in the PWA.
Open the scenario → - Open
The CMMS is switched off and the hub still returns the same bytes
Switch off a replaced CMMS without losing its thirty years of work orders or its compliance reads.
Open the scenario → - Open
The catalogue leaves for the partner in the partner's format
Deliver the product catalogue to a partner in the format it imposes, with no conversion code.
Open the scenario → - Pro
Two customers write to the same table and each reads only their own rows
Host two customers on one hub without either being able to read, count or open the other's data.
Open the scenario →
Ask your data
The answer shows its query. With no data to answer, it abstains.
- Pro
And SUP-004? Ask answers the follow-up as the whole question
Let a buyer chain questions without retyping them, showing each time the question understood.
Open the scenario → - Pro
Ask refuses a margin with no cost and a best supplier with no criterion
Let a purchasing director question their orders in their own words, without being handed a figure the data does not hold.
Open the scenario → - Pro
Question 40,000 items in French and see the SQL
Let a user question the catalogue in their own words, without learning the columns or writing SQL.
Open the scenario → - Pro
The AI switched off for an audit: switched off is not absent
Switch the hub's AI off without changing edition or losing data, keep reading the sources, and know what to redo when it is switched back on.
Open the scenario → - Pro
k8s forgot its events and lumnik still knows who crashed last night
Ask which deployments crashed in a loop after Kubernetes erased their events, and get the list kubectl gave during the incident.
Open the scenario → - Pro
k9s says Running while the cluster burns: which pod first?
Ask your Kubernetes cluster which pods to handle first, and get the list ordered by the on-call rule, checked against kubectl.
Open the scenario →