License key activation should support instance ID for idempotency #429

Closed
opened 2026-04-05 17:09:47 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @RobertWi on 12/25/2025

Describe the Bug

Problem:
Pangolin EE introduces recently features beyond the CE version that I want to use in my personal setup. However, when obtaining a Pangolin EE license via app.pangolin.net, each activation generates a unique instance ID. This makes the license non-transferable between server recreations, breaking infrastructure-as-code workflows where servers are routinely destroyed and recreated as in my personal use setup (e.g., Terraform destroy/apply).

Current Behaviour:

  • License activation binds to a generated instance ID
  • When server is recreated, new instance ID is generated
  • Error: "License key has already been activated with a different instance name"
  • Manual intervention required to request a license

Desired Behaviour

  • Instance ID parameter - Allow specifying a fixed instance ID during activation
  • Instance ID override - Environment variable or config to set instance ID

For example
Instance ID parameter

POST /api/v1/license/activate
{
  "licenseKey": "xxx",
  "instanceId": "pangolin-prod-001"  # Optional fixed ID
}

Instance ID override
PANGOLIN_INSTANCE_ID=pangolin-prod-001

Environment

  • OS Type & Version: (e.g., Ubuntu 24.04)
  • Pangolin version: ee-postgresql-1.14.1
  • Gerbil version: gerbil:1.3.0
  • Traefik version: 3.6.5
  • Newt version: 1.8.0

To Reproduce

POST /api/v1/license/activate
Activated license key, instance ID: {"instanceId":"46c66b9e-5ecd-46c3-9825-f4c3062c9459"}
Checking license status...
POST /api/v1/license/recheck
Checking license status...

Expected Behavior

POST /api/v1/license/activate
Activated license key, instance ID: {"instanceId":"46c66b9e-5ecd-46c3-9825-f4c3062c9459","user-Instanceid¨:¨pangolin-prod-001¨}
POST /api/v1/license/recheck
Checking license status...

*Originally created by @RobertWi on 12/25/2025* ### Describe the Bug **Problem:** Pangolin EE introduces recently features beyond the CE version that I want to use in my personal setup. However, when obtaining a Pangolin EE license via app.pangolin.net, each activation generates a unique instance ID. This makes the license non-transferable between server recreations, breaking infrastructure-as-code workflows where servers are routinely destroyed and recreated as in my personal use setup (e.g., Terraform destroy/apply). **Current Behaviour:** - License activation binds to a generated instance ID - When server is recreated, new instance ID is generated - Error: "License key has already been activated with a different instance name" - Manual intervention required to request a license - **Desired Behaviour** - Instance ID parameter - Allow specifying a fixed instance ID during activation - Instance ID override - Environment variable or config to set instance ID For example Instance ID parameter ``` POST /api/v1/license/activate { "licenseKey": "xxx", "instanceId": "pangolin-prod-001" # Optional fixed ID } ``` Instance ID override `PANGOLIN_INSTANCE_ID=pangolin-prod-001` ### Environment - OS Type & Version: (e.g., Ubuntu 24.04) - Pangolin version: ee-postgresql-1.14.1 - Gerbil version: gerbil:1.3.0 - Traefik version: 3.6.5 - Newt version: 1.8.0 ### To Reproduce POST /api/v1/license/activate Activated license key, instance ID: {"instanceId":"46c66b9e-5ecd-46c3-9825-f4c3062c9459"} Checking license status... POST /api/v1/license/recheck Checking license status... ### Expected Behavior POST /api/v1/license/activate Activated license key, instance ID: {"instanceId":"46c66b9e-5ecd-46c3-9825-f4c3062c9459","user-Instanceid¨:¨pangolin-prod-001¨} POST /api/v1/license/recheck Checking license status...
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/pangolin#429