IsoFind Editions and Modules

This page replaces the five vertical editions plan. Splitting the product into five specialised binaries was dropped: a user's scope cannot be guessed from their job title, and five installers to maintain for a single codebase cost more than they returned. IsoFind now ships as two binaries, and the licence decides what opens.

IsoFind covers a wide spectrum, from hydrogeochemistry to environmental tracers, from petroleum geology to raw material traceability. Nobody uses all of it. Rather than freezing business divisions into separate versions, the software is built around a catalogue of modules: the binary carries them, the licence opens them, and the interface adjusts to what is actually available.

Two binaries

One repository, one codebase, two build profiles. These are the only two profiles that produce an executable; everything else in the editions.toml file describes modules and offers, not pieces of software.

Binary What it carries Audience
IsoFind Pro The whole catalogue is compiled into the binary. What opens then depends on the licence. Consultancies, reference laboratories, industry
IsoFind Essential A reduced scope compiled in. Modules left out are not in the binary at all, and no licence can open them. Teaching, evaluation, restricted-use workstations
The difference between the two is real, not just commercial. On Essential, a module left out is not merely closed: its Python code is not in the executable and its pages are not served. The installation is lighter and the exposed surface smaller, which matters on a machine isolated from the network.

What a module is

A module is the unit of the catalogue. It declares what it brings: its Python modules, its third-party packages, its data folders and its pages. The catalogue holds around sixty of them, and a manifest written at build time fixes what the binary carries.

At runtime that manifest is authoritative on both sides. The server refuses the route of a page whose module is not open, and the interface removes the matching entry from the sidebar. The two checks are independent: the second makes the interface honest, the first makes the closure effective.

What a module declares Effect
Python modulesCompiled into the binary, or explicitly left out at build time.
Third-party packagesBundled only if an open module depends on them.
Data foldersReference databases, templates, resources belonging to the module.
PagesTemplates served by the server. A page whose module is closed returns a 404.

What the licence opens

On Pro, everything is compiled but nothing opens by default beyond what the edition grants. The licence file carries a list of modules; when it is absent, nothing opens. That list is then cross-checked against what the binary actually carries: a line added by hand to the file at best opens a menu onto code that is not there, and the server refuses the route anyway.

The principle is refusal by default. A manifest that does not say what it carries opens nothing rather than everything; an empty list is still a list and is authoritative. Every ambiguous case resolves towards closure.

The offers

Modules are not sold one by one. They are gathered into offers, which are lists of modules carried by the licence. An offer is not a piece of software: it is not downloaded, it is added to an existing licence.

Offer Domain Status
IsoStrataBoreholes, stratigraphic layers, vadose and saturated flowAvailable
IsoPetrusPetroleum geochemistry, PAHs, BTEX, biomarkersAvailable
IsoSupplySupply chains, origin attribution for raw materialsAvailable
IsoStreamFlux tracking and temporal monitoringPlanned
IsoDefDefence and forensic usePlanned

Offers marked as planned can appear on a licence issued ahead of time. That is a legitimate move, but it is made knowingly: until the matching modules are in the catalogue, the licence names them without opening anything.

Seeing what is open on your machine

Edit Preferences Modules

This section only appears if your licence or an installed add-on opens modules beyond those of your edition. Modules are grouped by the offer that opened them, and each group as well as each module carries a switch that shows or hides its pages in the sidebar.

An offer only forms a group when it is entirely open. Modules that no open offer claims are filed under the add-on that brings them, or under "À la carte": a licence can name modules without going through an offer, and saying so is better than forcing them under an offer you did not buy.

These switches hide pages, they do not close modules. Routes stay served, and the current page is never hidden. What a module grants is decided at startup from the licence, and no interface setting can contradict it.

See also preferences configuration for the detail of that window, and the Diagnostic section which reports the state of the machine's dependencies.

Add-ons

The whole catalogue is compiled into Pro, but that will not hold indefinitely. Some modules are heavy, others sensitive, and there is no reason to ship them to everyone. Those will be distributed separately, as installable add-ons.

Point How it works
DescriptorA file declares the add-on's identifier, its version, the modules it brings, its pages and its contributions.
SignatureThe same key infrastructure as extensions, and it covers the files, not only the descriptor.
LicenceAn installed add-on opens nothing by itself: the licence still has to name its modules.
LoadingOrder-independent: an add-on never depends on when it loads relative to the others.
Heavy computationAn add-on can bring its own computation process, launched and relayed by the IsoFind server.

The first planned add-on is Kinos, the reactive isotope transport engine. It is the textbook case of something that should not ship by default: heavy, specialised, and useful to a minority of installations.

No add-on is distributed to date. The mechanism is in place and tested, but the catalogue stays entirely compiled into Pro as long as no module justifies moving out of it.

The ISOF format does not depend on any of this

An ISOF file opens for reading whatever the binary and the modules of the machine opening it. Data that a closed module would have interpreted stays in the file and stays readable; what is missing is the interpretation tool, not the data.

Situation Behaviour
Signed ISOF opened on a machine with no laboratory certificateFull reading, signature verified and shown. Signing needs a certificate, verifying does not.
ISOF carrying a simulation, opened without the matching moduleSamples and measurements read normally, the simulation volume is flagged and not rendered.
ISOF produced by Pro, opened in EssentialFull reading. Missing views are flagged with their reason rather than hidden.
Export from a machine with a reduced scopeWhat was not produced is not written. The file stays valid, it is simply less rich.

What depends on no edition

The product's guarantees are not negotiated per module. They hold everywhere, including on a machine with the smallest scope.

  • Offline operation: no edition needs an internet connection to work.
  • Data sovereignty: files stay on the machine, nothing is sent back.
  • Licences verified locally, with no network call.
  • A common ISOF format, portable between binaries and across major versions.
  • The Python isof library published on PyPI: reading and verification available as open source, independently of any licence.

Roadmap

The milestones below are indicative and non-contractual. The order depends on feedback from use more than on a calendar.

Subject Milestone Content
IsoFind Pro and EssentialShippingBoth binaries, full catalogue on the Pro side
IsoStream and IsoDef offersShort to medium termModules still to write, licences already issuable
First add-onMedium termKinos, the reactive isotope transport engine
Third-party add-onsNot plannedThe mechanism allows it; who signs a third-party add-on is still an open question

Contributing

A business need that falls into none of the offers is a useful signal. The split into modules is not frozen, and an offer is made of lists rather than code: adding a grouping costs little, provided the demand is clear and the separation between modules holds.

The usual channels stay open: the site contact form, the published addresses, and the public repository for technical matters.

Going further