- trusted-keys.json: the public key from keygen (k20261001). The hub and
every agent built from now on verify licenses with it; no
TrustedKeys configuration is needed any more.
- The test that required an empty key file now checks what it was
guarding against: every embedded key must be keygen output (id
k<yyyyMMdd>, P-256 public key), never a test key.
- Agent: default Hub:Url https://hub.sqlinsight.seosoft.dk/ (was
hub.seosoft.dk, which does not exist).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- SQLInsight.Licensing: ECDSA P-256 signed documents (SQLI1.payload.sig),
licenses with plan, expiry, instance count and key id for rotation;
30-day grace; invalid or missing licenses are states, never errors,
and never stop monitoring (a license only adds hub sync and support)
- Trusted public keys are embedded; the source ships with none, so a
published key can never mint licenses. The vendor adds its own.
- tools/SQLInsight.LicenseTool: keygen, issue, verify
- *.private.pem ignored by git
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E3EExwndy8Z22EK2Qpt6BK