flochai flochai Platform audit · summary ← flochai.com FR
Sample document. Nordvantage Logistics SA does not exist. Every name, figure, command output and date is invented, to show what a delivered flochai audit summary looks like. The fact patterns come from real engagements with figures shifted and names removed.
This document as a PDF

Typeset for A4, three pages. Leave an email and it is yours.

Download the summary (PDF)

Nordvantage Logistics SA

One-week platform audit, in summary. The full report runs to eleven sections, and every claim made here is evidenced there.

Review week 11–15 May 2026 · Report issued 20 May 2026 · Report version 1.0 · Check list 2026.1
Florian Chaillou · hello@flochai.com

1
High finding
notified same day
3 + 5
Medium and low
listed in full
€7,164
Per year attached
to nothing
3h 40m
Measured recovery
previously unknown
12/14
Plan items your
team can do alone

01The three that matter

  1. Your GitLab answers on a public address while running 16.9.1, against which three advisories describing authenticated remote code execution are published and unpatched. It holds six variables the production deploy job uses. Reading them is enough to deploy to production from outside your network. Half a day to close, and it does not depend on the upgrade. R-001 · High · notified by phone 12/05
  2. A backup restore works, and takes 3 hours 40 minutes. It worked, which is not a given. But the duration is a number nobody had, and your three runbooks carry three different assumptions about it. R-009 · Medium · measured on a disposable instance 13/05
  3. €597 a month buys nothing. Eleven disks attached to nothing, six unattached addresses, snapshots and images under no lifecycle policy, and health-check lines at 38% of log ingestion. Two hours to delete. §7 · from the billing export

02The register

IDFindingLevelEffortWho
R-001GitLab public and unpatched, holding deploy credentialsHighhalf-day + windowyour team
R-002Batched migration failing since 14/04, blocks the upgrade pathMediumdaysyour team
R-003bastion-ops: 34 pending security updates, kernel includedMediumhoursyour team
R-009Measured recovery 3h 40m; runbooks assume faster and disagreeMediumhoursyour team
R-004Floating image tags: a rollback cannot name a known-goodLowhalf-dayyour team
R-005Pod requests one copy-pasted block; on Autopilot that is the invoiceLowdaysflochai
R-006Logs have no shared destination; triage starts by finding themLowdaysflochai
R-007No environment exercises integrations off productionLowdaysyour team
R-008No agreed recovery point; three runbooks assume three thingsLowhoursyour team

Levels are derived, not chosen. Each entry states a consequence class and a trigger-evidence grade, and the level is a lookup of the two. To move an entry up I have to produce evidence that moves it a cell. I cannot type a level.

Two conditions were rejected. Both were on my list on Tuesday and both were killed by their own counter-argument. They are printed in the full report with the argument that killed them, because a register that only ever grows is a sales document.

flochai flochai Nordvantage · page 2 of 3

03What this costs you, and what it need not

Cost is not risk, so none of this is in the register. Every figure comes from the billing export, compared month over month across the three months to 30 April, with usage growth separated out. The platform cost €14,200 a month on average across that window.

Removable now, with no argument against it. Each is a resource attached to nothing, serving no request.

WhatPer monthPer year
11 persistent disks attached to nothing, 2.4 TB€310€3,720
6 reserved static addresses, none attached€33€396
1.8 TB of snapshots under no lifecycle policy€47€564
890 GB of container images under no cleanup policy€89€1,068
Health-check lines, 38% of ingested log volume€118€1,416
Total€597€7,164

That is 4.2% of the monthly bill and about two hours of work. It needs a decision from nobody.

Worth doing, but each needs a decision. The argument against each is stated in the full report rather than left for you to find.

WhatPer monthPer year
Staging serves no traffic for 128 of 168 hours a week€740€8,880
Cloud SQL one tier above what 90 days of CPU supports€310€3,720
No commitment against a steady-state floor of 62%€980€11,760
Total€2,030€24,360

Identified is not realised. €31,524 a year appears above. None of it is saved until someone does the work, and the second table costs engineering time to capture. Treat the first table as money and the second as a shortlist of decisions.

Two items are deliberately not costed: the Autopilot request sizing, where the direction is not uniform because two services need more, and the Kafka provisioning, where the floor set by partitions and retention has not been established. Quoting a saving before those are answered would be quoting a number I cannot defend.

flochai flochai Nordvantage · page 3 of 3

04What happens next

#First fourteen daysEffortWho
1Delete the unattached resources, add lifecycle and cleanup policies, drop health-check lines from ingestion2 hoursyour team
2Put GitLab behind IAP or the VPNhalf-day + windowyour team
3Patch bastion-ops, enable security-pocket unattended upgradeshoursyour team
4Run the leaver difference against the directory20 minyour team
5Write the recovery point objective against the measured 3h 40mhoursyour team + COO

The remaining nine items run to day 90 and are in the full report. Twelve of the fourteen route to your team, not to me. The two that do not name the capability rather than the company, so you can price hiring it against buying it.

05How I am paid, and what I did about it

This audit is a fixed fee and it credits against the first month if it becomes a retainer. That gives this document a standing incentive to make your platform look worse than it is, and you should read it knowing that.

What you can check yourself: every level is a lookup of two stated inputs, so a level cannot be typed. The register came out one High, three Medium, five Low. Two conditions were rejected and are printed with the argument that killed them. One finding was demoted during Thursday's call and says so in its own entry. Twelve of fourteen plan items route to your team.

Corrections are free for 30 days from 20 May 2026. Every register entry carries a command you can re-run alone, so an entry that returns the same answer in six months, with nothing having fired, means I was wrong about it, and you do not need me to see that.

flochai · Florian Chaillou · hello@flochai.com · Summary of the platform audit report issued 20 May 2026
This is a summary. Where it and the full report differ, the full report governs.