License Management Guide
Scope
This document describes how to generate fingerprints, install and replace licenses, and diagnose common licensing issues for the Raptor SDK and the Raptor Server.
Concepts
- License file
A file distributed by Vantor that grants the right to use the SDK or server on a specific machine or set of machines. Depending on the license, different features may be enabled. - Fingerprint
A device identifier generated on the target machine and sent to Vantor when requesting a license. It is represented as an opaque string; its internal structure is private and may change between versions. Treat it only as a token.
Generating a fingerprint
C++ Raptor SDK
To generate a fingerprint directly from the SDK, call:
raptor::Context::generateFingerprint()
Notes:
- Returns
std::optional<std::string>. - On success, the string identifies the current machine for licensing purposes.
- The value is opaque; do not parse, modify, or validate it yourself.
- If the SDK cannot determine a valid machine identifier on this platform, the
function returns
std::nullopt.
Recommended workflow
- Build a small provisioning tool that calls
raptor::Context::generateFingerprint(). - Run it on the target system and capture the returned string.
- Provide that string to Vantor when requesting a license.
- Store the license file you receive at a stable location on the target system.
Raptor Server
When using the Raptor Server, the server can expose the fingerprint through its status API:
- The
GetStatusResponsemessage includes afingerprint_b64field that, when present, contains the server's fingerprint. - Use this value in the same way as the C++ SDK fingerprint when requesting a license for the server.
Installing and replacing a license
Place the license file at a stable, readable path on the target machine and point the application at it:
- C++ SDK — set
raptor::Config::licensePathbefore constructingraptor::Context, or set thelicensePathfield in the JSON consumed byraptor::parseConfigFromJson(). - Raptor Server — set the
licensefield in the server's deployment configuration.
To replace an existing license (renewal, added features, machine change), overwrite the file at the configured path — or update the path — and then restart the consumer:
- C++ applications: destroy existing
raptor::Contextinstances and construct new ones, or restart the process. - Raptor Server: restart the server process.
If the license was reissued for a different fingerprint, request a new license against the current machine's fingerprint first (see Generating a fingerprint).
Troubleshooting
Initialization errors
If you encounter an exception related to licensing, the message typically indicates the cause. Common messages and actions:
- "License file not found or invalid path"
- Check that the path in
licensePathexists and is readable by the application.
- Check that the path in
- "Invalid license"
- The file is present but not a valid Raptor Guide license. Verify that the correct file was installed.
- "Expired license"
- The license has passed its expiration date. Request an updated license.
- "License ApplicationId does not match Raptor Guide"
- The license targets a different product. Install a license specifically issued for Raptor Guide.
- Fingerprint-related messages (for example, fingerprint mismatch or invalid fingerprint data)
- Ensure that the license was issued for the fingerprint of the current machine.
- Regenerate the fingerprint on this machine and request a new license if necessary.
Runtime "InvalidLicense" results
If updatePose() or updatePosition() returns PoseEstimationError::InvalidLicense:
- There is a problem with the license (for example, expired or missing required features).
- Check the license expiry and the licensed feature set, and install an updated license if needed.
For detailed integration steps and configuration examples, see:
- SDK Integration Guide integration_guide.md - SDK integration and configuration
- Service Integration guide service_integration_guide.md - Raptor Server integration