Skip to content

License key activation should support instance ID for idempotency #2169

@RobertWi

Description

@RobertWi

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...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions