Skip to main content

Licensing

Fire Arrow Server requires a valid license to start and continue running. This page covers how licensing works, how to configure it, and what to expect when a license nears expiration.

Production Licenses

For production and non-production deployments (staging, QA, etc.), you need a license from Evoleen. Contact your Evoleen representative to obtain a license for your deployment.

A license is tied to:

  • A deployment ID that identifies your specific deployment
  • A runtime environment (production or non-production)
  • An expiration date

Configuration

Configure your license in application.yaml under the fire-arrow.license key:

File-Based License

Store the license as a file and reference its path:

fire-arrow:
license:
source: file
path: "/etc/fire-arrow/license.key"
deployment-id: "my-deployment-prod"
runtime-environment: prod

Inline License

Embed the license string directly in configuration (useful for container deployments where mounting files is inconvenient):

fire-arrow:
license:
source: inline
content: "${FIRE_ARROW_LICENSE_CONTENT}"
deployment-id: "my-deployment-prod"
runtime-environment: prod

Configuration Properties

PropertyDescriptionValues
sourceHow the license is providedfile or inline
pathPath to the license fileFile path (when source: file)
contentLicense stringLicense content (when source: inline)
deployment-idIdentifies this deploymentString matching your license
runtime-environmentDeployment tierprod or nonprod

Environment Variable Overrides

All license properties can be set via environment variables, which is the recommended approach for production:

YAML PathEnvironment Variable
fire-arrow.license.sourceFIRE_ARROW_LICENSE_SOURCE
fire-arrow.license.pathFIRE_ARROW_LICENSE_PATH
fire-arrow.license.contentFIRE_ARROW_LICENSE_CONTENT
fire-arrow.license.deployment-idFIRE_ARROW_LICENSE_DEPLOYMENT_ID
fire-arrow.license.runtime-environmentFIRE_ARROW_LICENSE_RUNTIME_ENVIRONMENT

Example Docker deployment:

docker run -d \
-e FIRE_ARROW_LICENSE_SOURCE=inline \
-e FIRE_ARROW_LICENSE_CONTENT="your-license-string" \
-e FIRE_ARROW_LICENSE_DEPLOYMENT_ID="my-deployment-prod" \
-e FIRE_ARROW_LICENSE_RUNTIME_ENVIRONMENT=prod \
fire-arrow-server:latest

License Expiration

Fire Arrow Server monitors the license continuously. When the license expires:

  1. The server enters a 5-minute drain period -- existing in-flight requests are allowed to complete, but new requests receive an error response
  2. After the drain period, the server shuts down gracefully

This ensures no abrupt interruption to active operations while preventing continued use without a valid license.

Plan Ahead

Monitor your license expiration date and renew before it expires. The server's readiness probe includes a license health check, so your monitoring system can alert you when the license is nearing expiration.

Health Checks

License status is included in the server's readiness probe at /actuator/health:

curl http://localhost:8080/actuator/health

When the license is valid, the health check includes:

{
"status": "UP",
"components": {
"license": {
"status": "UP"
}
}
}

If the license is expired or missing, the readiness probe reports DOWN, which causes orchestrators like Kubernetes to stop routing traffic to the instance.

Renewing a License

File-Based License

Replace the license file at the configured path. Fire Arrow Server detects the change and loads the new license without requiring a restart.

Inline License

Update the license content in your configuration or environment variable and restart the server.

Troubleshooting

SymptomLikely CauseResolution
Server fails to start with license errorMissing or invalid license configurationVerify source, path/content, and deployment-id
Server starts but shuts down after 5 minutesExpired licenseObtain a renewed license from Evoleen
Readiness probe reports DOWN for licenseLicense approaching or past expirationCheck expiration date and renew
deployment-id mismatch errorConfiguration doesn't match the issued licenseEnsure deployment-id matches exactly