πŸ“Œ License Management

This guide explains how Control Core licensing works and how to manage your license connection to ensure uninterrupted access to all features.

πŸ“Œ Overview

Control Core uses a license-based system to manage subscriptions and enable advanced features. A connection to the Control Core License Server is required for policy testing and production deployment.

πŸ“Œ Understanding License Requirements

What Requires License Connection

Certain features require an active connection to the License Server:

  • Policy Testing: Testing policies before deployment
  • Production Promotion: Promoting policies from Sandbox to Production
  • Subscription Verification: Keeping your subscription status up-to-date

What Works Without License Connection

You can use these features without License Server connection:

  • Create and edit policies
  • View policies and templates
  • Manage users and roles
  • Configure settings
  • View audit logs and dashboards

Note: While you can create policies without a license connection, you cannot test them or deploy them to production until the License Server is configured.

πŸ“Œ Subscription Plans

Control Core offers different subscription tiers:

Kickstart Plan

  • Duration: 30-day zero-cost pilot
  • Features: All features available during trial period
  • Trial Management: Trial expiration tracked automatically
  • After Trial: Upgrade required to continue production deployment

Custom Plan

  • Deployment: Self-hosted with full control
  • Features: All features available
  • License: Managed by License Server
  • Use Case: Production deployments, enterprise requirements

πŸ“Œ Setting Up License Connection

Step 1: Access Telemetry Settings

  1. Log in to Control Core admin console
  2. Navigate to Settings β†’ General
  3. Click on the Telemetry tab

Step 2: Configure License Admin URL

  1. Enter the License Admin URL provided by Control Core

    • Default: https://business-admin.controlcore.io
    • Contact support if you need a different URL
  2. This is the endpoint where your Control Plane connects for license verification

Step 3: Enter API Key

  1. Enter your API Key in the API Key field

    • Provided by Control Core during setup
    • Used for secure authentication
    • Stored encrypted in the database
  2. Click Show to reveal the API key if it's already configured

Step 4: Test Connection

  1. Click Test License Admin URL Connection button
  2. Wait for the connection test to complete
  3. Review the result:
    • Success: Connection is working correctly
    • Failed: Check URL and API key, verify network connectivity

Step 5: Save Configuration

  1. Click Save to store your configuration
  2. Configuration is saved immediately
  3. License verification will begin automatically

πŸ“Œ License Tokens & Bouncer Activation

Once your Control Plane is connected to the License Server, Control Core automatically manages all required cryptographic material:

  • License Tokens: The Control Plane maintains a signed license token that proves your subscription tier. Tokens refresh automaticallyβ€”no manual download is required. If the Control Plane cannot refresh a token, the UI will warn you before license-gated actions pause.
  • Bouncer Activation: Each Control Plane issues activation keys to its paired bouncers. When the Control Plane loses its license token, those bouncers will enter a safe β€œinactive” state until the connection is restored.
  • What You Need To Do: Keep the License Admin URL/API key configured and allow outbound HTTPS access. There are no additional keys or certificates for you to manage.

πŸ‘οΈ Telemetry Authenticity & Replay Protection

Telemetry that feeds billing and license compliance is now cryptographically signed:

  • Every payload includes a unique nonce, timestamp, and HMAC-SHA256 signature.
  • The License Server validates signatures and rejects replayed payloads within a five-minute window.
  • This ensures license counts, bouncer totals, and usage-based billing cannot be tampered with in transit.

No extra configuration is required, but make sure your Control Plane clock remains accurate so timestamps stay within the acceptance window.

πŸ‘οΈ Monthly Bouncer Licensing Telemetry

Control Core sends a dedicated monthly licensing payload from your Control Plane to the License Server (business-admin.controlcore.io) for perpetual-license reconciliation.

  • Cadence: Monthly (1st day of month, 2:00 AM UTC by default).
  • Window: Previous calendar month (period_start and period_end).
  • Minimal fields: customer_id, period_start, period_end, bouncer_count, plus transmission metadata.
  • Security: HMAC signature + nonce + timestamp headers are mandatory and replay-protected.

This monthly payload is intentionally minimal and focused on deployed bouncer count to keep billing telemetry simple and auditable.

πŸ“Œ Understanding License Status

Checking License Status

You can check your license status in several ways:

  1. Subscription Page: Navigate to Settings β†’ General β†’ Subscription tab

    • View current subscription tier
    • Check trial expiration date (if on Kickstart plan)
    • See license connection status
  2. Telemetry Health: Navigate to Settings β†’ General β†’ Telemetry tab

    • View connection status
    • Check last successful transmission
    • Review recent errors
  3. Feature Access: If policy testing or production promotion is disabled, check the error message for license status

License Status Indicators

  • Connected: License Server connection active, all features available
  • Not Connected: License Server not configured, policy testing/production promotion disabled
  • Trial Expired: Trial period ended, upgrade required for production deployment
  • Connection Error: License Server connection failed, check configuration

πŸ“Œ Feature Access

Policy Testing

Requirement: Active License Server connection

How to Enable:

  1. Configure License Server connection (see above)
  2. Test connection to verify it's working
  3. Policy testing will be automatically enabled

If Disabled:

  • Error message: "Connect to Control Core License Server in General Settings (Telemetry tab) to enable policy testing"
  • Solution: Configure License Server connection

Production Promotion

Requirement: Active License Server connection + valid subscription

How to Enable:

  1. Configure License Server connection
  2. Verify subscription tier is active
  3. For Kickstart plan, ensure trial hasn't expired
  4. Production promotion will be automatically enabled

If Disabled:

  • Check License Server connection status
  • Verify subscription tier is active
  • For Kickstart plan, check trial expiration date
  • Contact support if issues persist

πŸ“Œ Trial Management

Understanding Trial Periods

Kickstart Plan:

  • 30-day trial period from signup
  • All features available during trial
  • Trial expiration date displayed on Subscription page
  • After expiration, upgrade required for production deployment

Trial Status

  • Active: Trial is active, all features available
  • Expiring Soon: 7 days or less remaining (warnings appear)
  • Expired: Trial ended, production promotion disabled

Extending Trial

To extend your trial period:

  1. Contact support@controlcore.io
  2. Request trial extension
  3. License Server will update trial end date automatically

πŸ€– Bouncer Pair Licensing

Understanding Bouncer Pairs

A bouncer pair consists of:

  • One Control Plane instance
  • One bouncer serving both Sandbox and Production environments

License Allocation

  • First Pair: Included free with all plans
  • Additional Pairs: Require additional licensing
  • Tracking: Telemetry automatically tracks bouncer pairs for license verification

Viewing Bouncer Pair Count

  1. Navigate to Settings β†’ General β†’ Telemetry
  2. View Current Period Data Preview
  3. Check bouncer pair information in telemetry data

πŸ› οΈ Troubleshooting

Cannot Test Policies

Symptoms:

  • Policy testing button is disabled
  • Error message about License Server connection

Solutions:

  1. Navigate to Settings β†’ General β†’ Telemetry
  2. Verify License Admin URL is configured
  3. Verify API Key is entered
  4. Click Test Connection to verify connectivity
  5. Save configuration if changes were made

Cannot Promote to Production

Symptoms:

  • Promote button is disabled
  • Error message about license requirements

Solutions:

  1. Verify License Server connection is configured and active
  2. Check subscription tier on Subscription page
  3. For Kickstart plan, verify trial hasn't expired
  4. Test License Server connection
  5. Contact support if subscription status is incorrect

License Server Connection Fails

Symptoms:

  • Connection test returns failure
  • Telemetry health shows "unhealthy" status

Solutions:

  1. Verify URL: Check License Admin URL is correct (no typos)
  2. Verify API Key: Ensure API key is correct and not expired
  3. Check Network: Verify firewall allows outbound HTTPS to License Server
  4. Test Connectivity: Try accessing License Server URL from your network
  5. Review Logs: Check backend logs for detailed error messages
  6. Contact Support: If issue persists, contact support@controlcore.io

Trial Expired Message

Symptoms:

  • "Trial period has expired" message appears
  • Production promotion is disabled

Solutions:

  1. Check trial expiration date on Subscription page
  2. Contact support@controlcore.io to:
    • Request trial extension
    • Upgrade to Custom plan
    • Verify subscription status

Subscription Tier Not Updating

Symptoms:

  • Subscription tier doesn't match License Server
  • Tier changes don't reflect in Control Plane

Solutions:

  1. Verify License Server connection is active
  2. Check telemetry transmission is working (view transmission history)
  3. License Server webhook should update tier automatically
  4. Contact support if tier doesn't sync after 24 hours

πŸ“Œ License Health Alerts

Control Core now categorizes license connectivity into three states:

  • Healthy: License token and telemetry are current, all bouncers are activated.
  • Warning: Token is close to expiring, telemetry is delayed, or some bouncers need to refresh activation. Review your telemetry configuration and network egress.
  • Critical: License token expired or telemetry has been offline beyond the grace window. Policy testing and promotion pause until the License Server connection is restored.

You can view the current status in Settings β†’ General β†’ Telemetry. The Control Core team monitors the same data through the Business Admin console and will reach out if a warning escalates.

Usage-based licenses (for example, extra bouncer pairs) are tallied through telemetry. When an additional charge is due:

  1. Control Core Support emails a secure Stripe payment link referencing the billing month (for example, Manual billing for 2025-11).
  2. The link always points to https://pay.stripe.com and can be opened in any browser.
  3. If you require a PO or clarification, reply to the emailβ€”there is no need to resend telemetry because the data is already stored on the License Server.

This process eliminates PDF invoices while keeping the workflow auditable for both teams.

πŸ“Œ Best Practices

Maintaining License Connection

  1. Monitor Connection Status: Regularly check telemetry health status
  2. Review Transmission History: Check for transmission failures
  3. Test Connection Periodically: Verify connectivity after network changes
  4. Keep API Keys Updated: Rotate API keys before expiration

Trial Management

  1. Track Trial Expiration: Monitor trial days remaining
  2. Plan Ahead: Request extension or upgrade before trial expires
  3. Understand Limits: Know what features require active subscription

Security

  1. Protect API Keys: Never share API keys publicly
  2. Use HTTPS: Always use HTTPS for License Server connection
  3. Enable Encryption: Enable data encryption for telemetry transmission
  4. Enable Anonymization: Enable PII anonymization for compliance

πŸ“ž Support

For license-related issues or questions:

  • Email: support@controlcore.io
  • Documentation: See related guides above
  • Troubleshooting: Check troubleshooting section in this guide