ChargeLink Native

Licensing

ChargeLink Native is licensed by product variant, role, protocol and test package. The license is an offline JSON file (extension .cllic) whose entitlement strings gate protected commands. Your commercial order and the issued file are authoritative; this page explains the mechanics.

Product variants

Package IDDisplay nameIntended userEntitlementsRestrictions
starter-evse-runtimeChargeLink Native EVSE RuntimeEVSE/OCPP platform team needing a native CCS runtime and operator diagnosticsbase.runtime, role.evse, protocol.iso15118-20, protocol.iec61851, support.standardNo ATS/conformance bundle, no HIL entitlement, no certification claim
dual-lab-simulationChargeLink Native EVSE + EVCC Lab SimulationLab and demo teams running paired simulationsbase.runtime, role.evse, role.evcc, role.dual_lab, protocol.iso15118-20, protocol.iso15118-2, protocol.din70121, support.bundle.exportSimulation evidence is not certification; live hardware requires the HIL package
conformance-supportChargeLink Native ATS/Conformance SupportTeams preparing evidence for accredited conformance testingbase.runtime, ats.registry, ats.campaign, ats.replay, exi.evidence, support.conformanceNo ISO certification; no standards text
enterprise-multiprotocolChargeLink Native Enterprise MultiprotocolProduct teams packaging all native protocol surfacesroles, ISO 15118-20/-2, DIN 70121, protocol.dc-can, support.enterprise and the further protocol entitlements listed by the installed buildAn entitlement enables only what the installed build implements (see Capability Boundaries); no certification claim

List the variants and their entitlements from the installed build with chargelink --json package license-packages. Conformance packages add their own entitlements (for example package.iso15118_2.evse, test.iso15118_2.evse, protocol.ccs.classic); see the Test Package Catalog.

License file

{
  "schema_version": "chargelink-native-license-v1",
  "license_id": "CLN-...",
  "customer_id": "<CUSTOMER_ID>",
  "product": "chargelink-native",
  "valid_from": "2026-01-01",
  "valid_until": "2027-12-31",
  "entitlements": ["base.runtime", "role.evse", "protocol.iso15118-20", "..."],
  "offline_signature": "sha256:<64 hex>",
  "machine_binding": "<optional>",
  "support_level": "standard"
}

Verification checks the schema version, the product and the offline signature over the license fields. Tampering with any field, including the entitlement list, invalidates the file. valid_from, valid_until and machine_binding are recorded and included in the signature but are not compared with the clock or the machine at runtime; entitlement gating is by the entitlement list.

Lifecycle

$CL   = 'C:\ChargeLink\0.5.0-rc2\pc1\bin\chargelink.exe'
$Data = 'C:\ChargeLinkData'
$License = "$Data\licenses\customer.cllic"

chargelink --runtime-root "$Data\runtime" --artifact-root "$Data\artifacts" --json license verify --file $License        # check without activating
chargelink --runtime-root "$Data\runtime" --artifact-root "$Data\artifacts" --json license activate --file $License      # copy to C:\ChargeLinkData\licenses\active_license.cllic + activation_record.json
chargelink --runtime-root "$Data\runtime" --artifact-root "$Data\artifacts" --json license status                        # verified | invalid | not_activated, with the active path
chargelink --runtime-root "$Data\runtime" --artifact-root "$Data\artifacts" --json license entitlements                  # active entitlements (CL-LICENSE-001 when none is active)
chargelink --runtime-root "$Data\runtime" --artifact-root "$Data\artifacts" --json --license $License conformance packages list    # use a file for one command without activating
chargelink --runtime-root "$Data\runtime" --artifact-root "$Data\artifacts" --json license deactivate                    # delete the active copy and record before moving to another PC

The active license lives in <parent of runtime root>\licenses. If license status reports not_activated on a machine that was activated, you are using a different runtime root. Keep the original file you received; deactivation deletes only the copy.

Offline request

chargelink --runtime-root "$Data\runtime" --artifact-root "$Data\artifacts" --json license request-offline --customer-id '<CUSTOMER_ID>' `
  --entitlement base.runtime --entitlement role.evse --entitlement role.evcc `
  --output "$Data\licenses\offline-request.json"

The request (chargelink-native-offline-request-v1) carries a request ID, the requested entitlements, OS, architecture and a machine fingerprint (a hash of OS, architecture and computer name). Send it to your ChargeLink contact; you receive a .cllic file to activate. There is no online activation service, and license codes typed into an installer wizard (license wizard-check) are validated for format only; they are exchanged for a license file through the same commercial process.

What the license does and does not do

  • It enables product functionality: roles, protocol lanes, licensed packages and support-bundle export.
  • It does not represent accredited certification, standards-body approval or a support SLA by itself; the SLA is in your agreement.
  • Core commands (dry-run, profiles, loopback, deterministic simulation, the gRPC server) work without a license; protected package execution and commercial gates require it.

Editions in the enterprise plane

The gRPC EnterpriseService defines editions engineering, professional, enterprise and factory with feature sets and limits (remote agents, factory stations). They describe the deterministic enterprise reference model and are listed with ListEditions; the customer entitlement is always the license file.