License Portal

AegisGate uses a client-side license validation system powered by ECDSA P-256 cryptographic signatures. No remote API calls are required for license checks — all validation happens locally on your infrastructure.

How Licenses Work

Every AegisGate license key is a base64-encoded JSON structure containing:

FieldDescription
license_idUnique license identifier (UUID)
tierLicense tier: community, developer, professional, or enterprise
customerCustomer identifier
issued_atRFC3339 timestamp
expires_atRFC3339 timestamp or "never" for perpetual licenses
featuresOptional feature flags array
signatureECDSA P-256 signature covering all other fields

Activation

Docker

docker run -d \
  -p 8080:8080 -p 8081:8081 -p 8443:8443 \
  -e AEGISGATE_LICENSE_KEY="base64-encoded-license-key" \
  ghcr.io/aegisgatesecurity/aegisgate-platform:latest

Binary

./aegisgate-platform \
  --license-key "base64-encoded-license-key" \
  --proxy-port 8080 \
  --mcp-port 8081 \
  --dashboard-port 8443

Configuration File

# aegisgate.yaml
license_key: "base64-encoded-license-key"
proxy_port: 8080
mcp_port: 8081
dashboard_port: 8443

Grace Period

If a license expires or fails validation:

  • A 7-day grace period is automatically applied
  • During grace, all features continue to work
  • A warning banner appears in the dashboard
  • After grace period expires, the platform falls back to Community tier

Generating License Keys

License keys are generated using the licensegen CLI tool:

# Generate a Professional tier license for 365 days
licensegen generate \
  --customer "Acme Corp" \
  --tier professional \
  --duration 365d \
  --key secrets/aegisgate-private.pem \
  --output license.key

# Generate a perpetual Enterprise license
licensegen generate \
  --customer "MegaCorp Inc" \
  --tier enterprise \
  --duration never \
  --key secrets/aegisgate-private.pem \
  --max-servers 10 \
  --max-users 500

License Generation Flags

FlagDescriptionDefault
--customerCustomer name or identifier (required)
--tierLicense tier: community, developer, professional, enterpriseprofessional
--durationLicense duration (e.g., 30d, 365d, never)365d
--keyPath to ECDSA P-256 private key PEM file (required)
--outputOutput file path (default: stdout)stdout
--featuresComma-separated feature overrides
--max-serversMaximum servers (0 = unlimited)0
--max-usersMaximum users (0 = unlimited)0

Validation Response

When the platform validates a license, the following JSON is returned:

{
  "valid": true,
  "license_id": "550e8400-e29b-41d4-a716-446655440000",
  "tier": "professional",
  "customer": "Acme Corp",
  "issued_at": "2026-04-15T10:30:00Z",
  "expires_at": "2027-04-15T10:30:00Z",
  "features": ["sso", "rbac", "compliance"],
  "grace_period": false
}

Tier Feature Matrix

FeatureCommunityDeveloperProfessionalEnterprise
API Rate Limit120 RPM1,000 RPM10,000 RPMUnlimited
MCP Rate Limit60 RPM500 RPM5,000 RPMUnlimited
Max Users525100Unlimited
SSO (OIDC/SAML)
RBAC
Compliance ReportsBasicAdvancedFull
Audit Log Retention7 days30 days90 days1 year

Troubleshooting

License Not Recognized

# Check license status via API
curl -s http://localhost:8443/api/v1/license | jq .

Expired License

If your license has expired, AegisGate will:

  1. Enter a 7-day grace period with full functionality
  2. Display a warning in the dashboard and logs
  3. After the grace period, fall back to Community tier

Contact sales@aegisgatesecurity.io to renew or upgrade your license.

Key Format Errors

License keys must be valid base64-encoded JSON with an ECDSA P-256 signature. Common errors:

  • invalid base64: Key is corrupted or truncated
  • invalid signature: Key was tampered with or generated with a different key pair
  • expired license: The expires_at date has passed (grace period applies)