Skip to content

Licence

AHEGAO Kit is distributed under the Elastic License 2.0 (ELv2) or under a commercial licence. The full text of ELv2 is in LICENSE at the root of the repository; what requires a contract and why is in COMMERCIAL-LICENSE.md.

The source is open to read, change and run — but this is not open source in the OSI sense, and the difference matters. Below, in plain words.

What you may do, for free, without asking

  • download, study, change, build and distribute it;
  • run it in your own infrastructure, including production — you never pay for the fact of running it;
  • write your own kits, drivers and patches and keep them to yourself;
  • work in a closed network: no calls to a licence server, no registration, no internet.

The three things you may not do

ELv2 has exactly three limitations, and they are licence terms, not technical measures:

  1. You may not provide the product to third parties as a hosted or managed service — hosting, a managed service, "we will set up AHEGAO Kit for you and run it". Serving your own infrastructure any way you like is fine; selling access to this product as a service is not.
  2. You may not move, change, disable or circumvent the licence-key check, nor remove or obscure functionality that the key protects.
  3. You may not alter, remove or obscure the licensing, copyright or other notices. Every source file carries the ELv2 notice; that is a requirement of this clause, not decoration.

Everything else is permitted. If your case does not fall under these three points, you do not need a contract.

Two different things: the licence, and the free level

The licence permits self-hosted production use without limit. It says nothing about how much the software agrees to do without a key — that is a separate matter.

The free level is the absence of a key, not a special key. It has numeric limits, declared in one place per side: each kit in its manifest, the core in one table. The exact grid is a pre-release decision; at the time of writing the manifests say:

Free With a key
Core one user; sites not capped; storages of every kind, S3 buckets included; alerts to every channel; one map, with everything on it; one agent per kit installed more users — a team; on-call rotas and escalation lines; more maps; more agents
Network Map Kit networks and hosts declared but not capped yet; export nothing yet — the kit is whole on the free level
PostgreSQL Kit backup and verification by restoring; targets not capped nothing yet — the kit is whole on the free level
Nexus OSS Kit clean-up and cadences2 of them, which is what one registry needs: a cleanup and the compaction that frees the disk; 1 registry, 1 rule more cadences, rules and registries; protected lists

The kits say it themselves when a key is missing, for example: "copying on a cadence is a paid feature of this kit. Copying by hand works on the free level — the button on each project — and a key is what makes it happen without anybody remembering".

The barrier is meant to be inconvenient, not insurmountable: nobody stops you from running a thousand free installations instead of one paid one — a thousand squats against one payment. The point is that the honest path is cheaper than the dishonest one. That is exactly why the second prohibition exists: the free-level limit is protected by the licence, not hidden in the code. The key check is in the source in the open, one function, no obfuscation — technically removable, legally not.

Why not AGPL

The first version of the licensing document proposed AGPL-3.0 with dual licensing, and that was wrong in the main point: AGPL does not forbid running a competing hosted service on this code. It only requires publishing the changes. That is why it protected neither MongoDB nor Elastic from cloud providers — both eventually moved to their own licences.

The other side of the choice is named plainly: AHEGAO Kit is not open source by the OSI definition, will not appear in Debian or Fedora repositories, and some of the audience will walk past on principle. That is a deliberate price for the product's only hosting being its author's.

The licence key

  • A signed token (Ed25519), verified offline against the public key in the build. There are no calls to a licence server.
  • Issued to an organisation, and kits are licensed one by one: buying a kit's paid level adds it to the key with its features, limits and its own expiry; another kit is added to the same key later without reinstalling anything. A kit with no entry in the key runs at the free level rather than switching off.
  • The key carries the name of the organisation it was issued to, and that name is always visible in the interface: a shared key is a shared name.
  • When the key expires, the platform does not stop. Data stays readable, export keeps working, and scheduled jobs — including backups — continue. Only creating new things beyond the free level is refused; existing over-limit entities are neither disabled nor deleted. A backup stopped because of an expired key is data loss, and there is no such behaviour here.
  • The platform warns about an approaching expiry in advance, in the interface and in the notification channels.

Commercial licence

Needed in two cases:

  • you want to provide AHEGAO Kit to third parties as a service — a separate agreement is required, and it is possible;
  • you need the capabilities of the paid levels — they are unlocked by a key.

Support and agreed response times are a separate agreement, not part of the key. If AHEGAO Kit is useful to you and you do not need the paid capabilities, a paid level can be taken simply as support: the product is made by one person, and this is the only source it is financed from.

To obtain one, write to license@adminguide.online with the organisation, the kits you need, and the expected number of installations.

The Overview screen of every installation shows: "AHEGAO Kit is distributed under the Elastic License 2.0. The source of this version:" followed by the repository address and the build version. The specification says this is not an obligation ELv2 imposes — but the code is open, and whoever sees the platform must be able to reach its code and the exact version of the build. The link is not a setting and cannot be switched off.

Contributions and the CLA

Every accepted change is accompanied by a Contributor Licence Agreement: the contributor keeps authorship and grants the copyright holder a non-exclusive right to license the contribution under any terms — ELv2, the commercial licence, and any future open-source licence. In practice it is one line in the commit message; CONTRIBUTING.md has the wording and the reason: the first change accepted without a CLA takes away the project's right to dispose of that code, for good.

Third-party components

Listed in NOTICE, with their licences preserved: Cytoscape.js, cytoscape-edgehandles and Lodash (MIT, vendored in the repository); FastAPI, Starlette, Pydantic, uvicorn, httpx, psycopg 3, PostgreSQL and Python at run time. psycopg is LGPL-3: it may be used from a program under any terms as long as the library itself is unmodified and pluggable as a separate dependency — which is why it is installed from PyPI and never patched or vendored.

The copyright holder is Artur Sagutdinov.