Files
greptimedb/licenses/README.md
dennis zhuang e89d591cb4 chore: declare GreptimeDB Enterprise License for enterprise-gated sources (#8364)
* chore: declare GreptimeDB Enterprise License for enterprise-gated sources

The `enterprise`-feature-gated sources (triggers, mito2 extension) were
excluded from the Apache-2.0 header check but carried no license of their
own. Declare a separate GreptimeDB Enterprise License and enforce it.

- Add LICENSE-ENTERPRISE (open-core split; core stays Apache-2.0).
- Add an Enterprise License header to each enterprise source file.
- Add licenserc-enterprise.toml and a second hawkeye step in CI to enforce
  the Enterprise header on exactly those files.
- Cross-reference the two complementary file lists; document the layout in
  licenses/README.md and the README License section.

Signed-off-by: Dennis Zhuang <killme2008@gmail.com>

* chore: reference per-customer Enterprise Agreement instead of a terms URL

There is no public enterprise-terms page; each customer signs an individually
negotiated agreement. Point the license at a "separate written commercial
agreement with GrepTime Inc." and direct readers to the existing contact page.

Signed-off-by: Dennis Zhuang <killme2008@gmail.com>

---------

Signed-off-by: Dennis Zhuang <killme2008@gmail.com>
2026-06-26 06:31:02 +00:00

37 lines
1.6 KiB
Markdown

# Licensing
GreptimeDB is an open-core project with a dual-license layout.
| Scope | License | Where it's declared |
| --- | --- | --- |
| Core (default build) | Apache-2.0 | [`/LICENSE`](../LICENSE); per-file Apache header enforced by [`/licenserc.toml`](../licenserc.toml) |
| Enterprise features | GreptimeDB Enterprise License | [`/LICENSE-ENTERPRISE`](../LICENSE-ENTERPRISE); per-file Enterprise header enforced by [`/licenserc-enterprise.toml`](../licenserc-enterprise.toml) |
Enterprise sources are gated behind the `enterprise` Cargo feature and are **not**
compiled into the default open-source build. Each one carries an explicit
Enterprise License header generated from [`enterprise-header.txt`](enterprise-header.txt).
## How it's enforced
CI (`license-header-check` in `.github/workflows/develop.yml`) runs
[hawkeye](https://github.com/korandoru/hawkeye) twice:
1. Default config — applies the Apache-2.0 header to all sources, **excluding**
the enterprise files.
2. `licenserc-enterprise.toml` — applies the Enterprise header to **only** the
enterprise files.
The two file lists are complementary and must stay in sync:
- `licenserc.toml` `excludes` — the `# enterprise` block.
- `licenserc-enterprise.toml` `includes`.
## Adding a new enterprise file
1. Add its path to **both** lists above.
2. Apply the header: `hawkeye format --config licenserc-enterprise.toml`.
3. Verify: `hawkeye check --config licenserc-enterprise.toml`.
Do not put an Apache-2.0 header on an enterprise file, and do not leave an
enterprise file without a header — CI fails in both cases.