User Tools

Site Tools


internal.backup:crm:generator

License generator

This application generates and manages license keys for our products

Purpose

  • This project is meant to replace the existing license key generator AND to improve current licensing mechanism
  • License keys are used to control the usage of our product.
  • The application will generate commercial and test license keys.
  • The generated keys will be associated to pre-existing customers and prospects.
  • It will provide the ability to display and report generated licenses and license usage

License key generator

Description

  • This application will be developped in the cockpit source code base
  • The code must be modular, allowing to safely include or remove it from the application via maven
  • The availability of this application will be controlled by at least two factor:
    • If the application lib has been included in the cockpit package
    • If the application has been activated by superadmin via a specific mean, like a license key
  • When enabled, the application will be reachable from left menu, within a CRM section
  • The CRM section will contain all apps relative to CRM:
    • License generator
    • Customer accounts
    • Update server, etc…

Use cases

Manage customer

  • It must be possible to create/update customer accounts
  • A Customer accounts defines a company which will use our license and are defined the following:
    • Company name
    • A unique ID
    • Contact details for licensing
    • Contact details for upgrades
    • Other contact details (Name, email, role)
    • Open properties
    • Type: Customer/opportunity
    • API keys
      • A list of generated API keys allowing an account to retreive its license information (from Cockpit or collector)

Generate custom license keys

  • The generator will allow to generate license keys based on parameters such as
    • host IP
    • expiration date
    • system count
    • product type: NETWEAVER/HANA/BUSINESSOBJECTS/AGENT/DATADOG
    • mode: Expire (default)/Perpetual
  • Each license creation will be associated with:
    • A creation date
    • Creation user
    • Description
    • Usage type: Commercial/test
    • All fields are mandatory
  • A license must always be associated with an account
  • Licenses used for internal usage will use a specific internal flag

Quick generate test keys

  • It must be possible to quickly generate a license key with default parameters
  • Reflecting the most common use cases, some action button will help to fast track license creation using default parameters
    • Usage type: test
    • Duration quick choice between 15/30 days
    • Reason:
      • POC
      • POC extension
    • IP: *
    • License count: TBD

License table

  • It must be possible to list, sort and filter licenses by multiple filters
    • Account
    • Expiration
    • Days left
    • Creator
    • Usage
    • Type
    • filter by Open text (matching the whole object)
  • By example
    • List commercial licenses expiring in less than 60 days
    • List accounts with valid commercial licenses

License dashboard

  • The license dashboard allows to display license information through multiple tabs or views:
    • Current list of valid commercial licenses per account
    • List of expiring licenses (and maybe recently expired)
    • List of valid accounts (having a valid license)

Notification

  • An email notification mechanism must be implemented to notify when a license is going to expire.
  • This system will be configured with the following parameters:
    • Internal recipients
    • Remaining days Warning notification (To notify when a license is about to expire)
  • Once a day, the system will send an email listing all licenses which are about to expire or expired today
    • Account name, license type, license count, creator, creation date

Authorizations

  • authorization objects will be defined allowing to control user actions
    • Allow access to license generator
    • Allow license creation
    • Allow account create/update

License keys

  • The license key is an encrypted set of properties:
    • Customer account
    • IP
    • Expiration date
    • Type
    • Count
    • Mode

Licensing mechanism improvement

  • Renew cryptographic to latest standards.
    • latest algorithms.
    • stop using the old crypto libraries in back office.
  • Allow larger license payload.
    • Example: Can be achieved by using a symmetric key for content, and then ciphering the symmetric key via public/private key.
  • Enable the use of our “future” license server.
    • By registering customer API key, our product would fetch its license keys from our license server.
    • The application could also report its “usage” and we would be able to control it.
  • Create a new license model for the cockpit to avoid having to set individual licenses on each collector.
    • When a collector is connected to the cockpit, the cockpit would transfer a SAAS license allowing to monitor anything, but preventing to create any configuration on the collector.
/home/clients/8c48b436badcd3a0bdaaba8c59a54bf1/wiki-web/data/pages/internal.backup/crm/generator.txt · Last modified: 2024/05/17 15:35 (external edit)