You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Migrate gPTP Studio commercial entitlements to Permit - #27
Use Permit as the single commercial-entitlement engine for gPTP Studio and remove the product-local RSA/OpenSSL/hardware-fingerprint licensing stack.
Product behavior
keep Free / Pro / 14-day local Trial
keep fully offline paid entitlement verification
keep the existing ~/.gptp-studio/license.lic installed-license location
preserve the current activation/deactivation RPC surface
Architecture
Permit Protocol v1 + Ed25519 replaces the old RSA-2048/OpenSSL verifier
product entitlement signing keys remain separate from updater signing keys
default installation identity is random and privacy-preserving, not Linux machine-id / hardware fingerprinting
Pro actions are checked by feature id + immutable feature publication timestamp, so features_through actually enforces maintenance-window economics
the local 14-day Trial uses Permit local-trial state; it is nuisance resistance, not DRM
Operations
add scripts/issue-license.rkt for manual permanent/subscription issuance
add docs/permit-operations.md for key provisioning, renewal, optional installation binding, team-seat operational handling, and offline revocation limits
ship a fail-closed empty trust-store placeholder in source
Release refuses to build an official artifact until a valid production Permit trust store is committed
CI/Release install a pinned Permit commit
Cleanup
delete support/license.rkt
delete the legacy RSA public key
remove OpenSSL as a licensing runtime dependency
update pricing, EULA/notices, architecture and legacy vendor docs
Validation
A product-level gate test signs a real temporary Permit entitlement, proves an explicit engine-control right does not also unlock export, then verifies local Trial behavior.
Closing as superseded: main completed its own Permit migration on a different path (whole-edition pro entitlement + the commerce-driven updates_through window, offers gptp-studio-pro-perpetual / gptp-studio-pro-team-5) while this branch carried the earlier feature-policy (features_through) model. The two designs diverged and the branch has been conflicted with main since 2026-10-16.
The gaps here that were still valid against main's model have been salvaged into #32 (merged-into-release 0.3.0):
installation identity: generated/persisted ins_… id, threaded into verification and edition-entitled?, exposed through the typed GateInfo RPC and a copyable License-page row
permit local-trial for the 14-day trial (replacing main's date-based trial state), with legacy trial-started migration
the stale license.lic host copy
Not salvaged, deliberately: the per-feature feature-specs/features_through gating (superseded by the commerce edition + updates-window model), license.lic as the stored credential path (main keeps entitlement.permit.json), app/version.rkt (main's scripts/check-release-version.sh already enforces the version single source), and the manual issuance script (the vendor guide's raco permit issue + commerce path is authoritative).
Thanks for the groundwork — the installation-id and local-trial designs here shaped the salvage.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Goal
Use Permit as the single commercial-entitlement engine for gPTP Studio and remove the product-local RSA/OpenSSL/hardware-fingerprint licensing stack.
Product behavior
~/.gptp-studio/license.licinstalled-license locationArchitecture
features_throughactually enforces maintenance-window economicsOperations
scripts/issue-license.rktfor manual permanent/subscription issuancedocs/permit-operations.mdfor key provisioning, renewal, optional installation binding, team-seat operational handling, and offline revocation limitsCleanup
support/license.rktValidation
A product-level gate test signs a real temporary Permit entitlement, proves an explicit
engine-controlright does not also unlock export, then verifies local Trial behavior.Protocol v1 itself is unchanged.