Administer
License & plans
DataSquares uses offline cryptographic licensing for private-server deployments. License files are verified on-premise or in private clouds using public-key cryptography embedded directly into the binary — eliminating phone-home requirements, external telemetry, or network calls.
Licensing is managed under Admin → Deployment license (/admin/license) and is restricted to workspace administrators.
Deployment modes
Section titled “Deployment modes”The API reads one environment variable, DEPLOYMENT_MODE, to decide which posture an instance runs:
| Mode | Where | What it means |
|---|---|---|
saas (default) |
The hosted service | The license engine is inert. Entitlements come from plan grants and billing. PUT /api/license answers 409 LICENSE_NOT_APPLICABLE, the migration upgrade-block never fires, and the Deployment license tab is hidden. |
selfhost |
A private-server install | Everything on this page: pasted license → LICENSE_FILE → 30-day evaluation, the state ladder, read-only mode after an evaluation ends, and the upgrade-block on expired enterprise licenses. |
Any other value refuses to boot, so a typo cannot silently disarm licensing on a private server. The self-host
installer writes DEPLOYMENT_MODE=selfhost into .env.api; the hosted service leaves it at the default.
Applying a license
Section titled “Applying a license”In Admin → License & Plans:
- Open your
license.jsonfile and copy its full JSON content. - Paste the JSON text into the Apply a license input area.
- Click Verify & apply.
The system cryptographically verifies the file against built-in trusted signer keys before storing it. If the signature or structure is invalid, an explicit error message is displayed (e.g. “Signature does not verify against any trusted signer key”).
Upon successful validation:
- Entitlements update instantly without restarting the application server.
- Degraded status banners clear immediately.
- The action is logged to the Audit Log.
Alternative provisioning methods
Section titled “Alternative provisioning methods”- Container Environment Variable: Mount the license file to the container and set
LICENSE_FILE=/path/to/license.json. - Automated REST API: Call
PUT /api/licensewith{ "file": "<json_string>" }using an administrative API key.
License status & metrics
Section titled “License status & metrics”The status card reports real-time licensing telemetry:
| Property | Details |
|---|---|
| Licensee | Organization name registered in the license certificate. |
| Edition | enterprise (cryptographically signed) or eval (built-in evaluation). |
| Role | production, staging, or dr (staging and disaster recovery environments do not consume core quotas). |
| Licensed Cores | Number of CPU cores authorized under the enterprise agreement. |
| Measured Cores | Physical/virtual CPU allocation measured via cgroup-v2 / OS host hardware metrics. |
| Expiration Date | License expiration timestamp. |
| Maintenance End | End date of the active software maintenance and upgrade window. |
License lifecycle states
Section titled “License lifecycle states”| Status Badge | State Code | Description & Impact |
|---|---|---|
| Licensed | ok |
Active and fully compliant. |
| Evaluation | eval |
30-day built-in trial period with days remaining. |
| Expiring soon | expiring_soon |
Under 30 days until expiration. Normal operation, no UI banners. |
| Over core limit | over_cores |
Host core count exceeds licensed allocation. Informational banner; never causes abrupt outages. |
| Grace period | grace |
Expired within the last 30 days. Full operation continues with notification banner. |
| Expired | expired |
Expired over 30 days ago. Running system continues operating; database migrations/upgrades are paused. |
| Evaluation ended | eval_expired |
30-day trial concluded. System enters fail-safe read-only mode. |
Read-only mode (Evaluation expiration)
Section titled “Read-only mode (Evaluation expiration)”When an unmanaged evaluation expires (eval_expired), the instance enters a protected read-only state:
- Read Operations & Viewing: All dashboards, paginated reports, model schemas, and charts remain accessible.
- Query Execution: SQL editor queries, data previewing, and metric queries execute normally.
- Exporting: PDF, Excel, PowerPoint, CSV, and image exports function without restriction — your data is never locked.
- Authentication: User logins, SSO redirection, MFA authentication, and password management remain active.
- License Application: The license activation form remains accessible to restore editing capabilities immediately.
Write operations (creating/editing dashboards, models, sources, or users) are safely paused with a descriptive 403 notification until a license is applied.
Product entitlements & usage cards
Section titled “Product entitlements & usage cards”The Product Plan Cards — under the Deployment license tab on a private server, and on the hosted service each product’s block in the Pipelines & Warehouse sheet on Admin → Billing — show this month’s usage of each product against its plan:
- Pipelines: execution hours used against the workspace’s allowance, with execution time, runs, rows moved and data moved this month. The allowance is the plan’s monthly hours plus any hours DataSquares has added to the workspace: added hours are a one-time balance that lasts twelve months, to the end of the month it ends in, and each month uses its own hours first, then the added hours that end soonest. An execution hour is one hour of one run on one standard slot: each run counts at least a minute, and a large run, which reserves two slots, counts double. Once the allowance is used up, new runs and backfills are refused until the next month begins or more hours are added — unless use past the allowance is billed: on the hosted service runs then continue and the extra hours go on the next invoice, under the workspace’s usage limit (Seats & billing). At the usage limit, new runs are refused again, saying the limit is reached with no amount; runs already going finish.
- Warehouse: peak storage this month against the plan’s allowance, with what is stored now and the number of managed datasets. The warehouse also meters each workspace’s query hours: a query hour is one hour of warehouse CPU time, read from the warehouse’s own query log. Loading and refreshing data does not count as query time. Each Warehouse size includes query hours a month; past them queries keep running at a lower priority, and the extra hours go on the next invoice. A larger size also gets a larger share of the warehouse when it is busy (see Seats & billing). Once the storage allowance is used up, new imports, refreshes and pipeline runs that load into the warehouse are refused until a dataset is removed or storage is added — unless use past the allowance is billed: on the hosted service they then continue and the storage above the allowance goes on the next invoice, until the workspace’s usage limit is reached and they are refused again. A load already running finishes, and reads and dashboards keep working.
Seats and AI credits are on Seats & billing.
Walkthrough: when a product is not in your plan
Section titled “Walkthrough: when a product is not in your plan”On a workspace whose plan does not include Pipelines or Warehouse, opening the product shows a panel that names where to add it, not an error.
Open Pipelines on a workspace whose plan does not include it. Instead of an error, a panel says "This feature isn't part of your plan" and names where to add it.

Warehouse behaves the same way. The rest of the app keeps working.

Choose the link in the panel (an admin can follow it) to open Billing, Plans, where products are added to the workspace.

Related
Section titled “Related”- Users, roles & invites — administrator access controls.
- Workspace settings & operations — tenant configuration and audit logs.
- Compute & workers — worker fleet provisioning and hardware sizing.