Skip to content

Commit 277b39c

Browse files
adnan-kamiligitbook-bot
authored andcommitted
GITBOOK-456: No subject
1 parent 38ae341 commit 277b39c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+557
-606
lines changed

README.md

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,30 @@
11
# Welcome to Cryptlex!
22

3-
Cryptlex lets you license your software apps effortlessly. You can easily generate license keys using our [REST API](https://api.cryptlex.com/v3/docs) or through the [dashboard](https://app.cryptlex.com/) and validate the license keys in your software apps using [LexActivator](https://docs.cryptlex.com/node-locked-licenses/overview) \(Cryptlex client library\).
3+
Cryptlex lets you license your software apps effortlessly. You can easily generate license keys using our [REST API](https://api.cryptlex.com/v3/docs) or through the [admin portal](https://app.cryptlex.com) and validate the license keys in your software apps using [LexActivator](https://docs.cryptlex.com/node-locked-licenses/overview) (Cryptlex client library). 
44

5-
The license keys can't be shared by your customers because they are node-locked \(locked to the machine where they are activated\), hence preventing casual piracy.
5+
The license keys can't be shared by your customers because they are node-locked (locked to the machine where they are activated), hence preventing casual piracy.
66

77
## Quick start
88

99
The complete process of adding licensing to your software app has three steps:
1010

1111
### Step 1. Add a product in Cryptlex
1212

13-
Log in to the Cryptlex [dashboard](https://app.cryptlex.com/). Click the "Products" link in the sidebar and add your first product. You will need to create a default [license policy](https://docs.cryptlex.com/license-management/license-policies) too for the product. After creating the product select the "Licenses" link in the products table and create your first license key.
13+
Log in to the Cryptlex [admin portal](https://app.cryptlex.com). Click the `Home -> Products` link in the sidebar and add your first product. You will need to create a default [license template](license-management/license-templates.md) too for the product. After creating the product click the `Licenses` link in the sidebar and create your first license.
1414

1515
### Step 2. Adding LexActivator to your software app
1616

17-
LexActivator is the Cryptlex client library which you will use to add licensing to your product. Using this library you can easily validate the license key in your software app. It is a shared library available for all the major platforms - Windows, macOS, and Linux. The library can be used with almost all programming languages. To learn more refer to:
17+
LexActivator is the Cryptlex client library which you will use to add licensing to your product. Using this library you can easily validate the license key in your software app. It is a shared library available for all the major platforms - Windows, macOS and Linux. The library can be used with almost all programming languages. To learn more refer to:
1818

19-
{% page-ref page="node-locked-licenses/using-lexactivator/" %}
19+
{% content-ref url="node-locked-licenses/using-lexactivator/" %}
20+
[using-lexactivator](node-locked-licenses/using-lexactivator/)
21+
{% endcontent-ref %}
2022

2123
### Step 3. Using Cryptlex Web API to automate the order process
2224

23-
You can use the [web API](https://api.cryptlex.com/v3/docs) to automate your order processes by generating new license keys when an order is processed through your payment processor. The web API can be used with any payment processor to generate license keys when an order is processed. To learn more refer to:
24-
25-
{% page-ref page="web-integration/" %}
26-
25+
You can use the [web API](https://api.cryptlex.com/v3/docs) to automate your order processes by generating new licenses when an order is processed through your payment processor. The web API can be used with any payment processor to generate licenses when an order is processed. To learn more refer to:
2726

27+
{% content-ref url="web-integration/" %}
28+
[web-integration](web-integration/)
29+
{% endcontent-ref %}
2830

SUMMARY.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* [Overview](getting-started/overview.md)
66
* [Licensing Models](getting-started/licensing-models.md)
77
* [License Management](license-management/README.md)
8-
* [License Policies](license-management/license-policies.md)
8+
* [License Templates](license-management/license-templates.md)
99
* [Implementing License Models](license-management/implementing-license-models.md)
1010
* [Custom License Fields](license-management/custom-license-fields.md)
1111
* [Meter Attributes](license-management/meter-attributes.md)
@@ -35,7 +35,7 @@
3535
* [Node Locked Licenses](node-locked-licenses/README.md)
3636
* [Overview](node-locked-licenses/overview.md)
3737
* [Using LexActivator](node-locked-licenses/using-lexactivator/README.md)
38-
* [Using LexActivator with C, C++ & Objective C](node-locked-licenses/using-lexactivator/using-lexactivator-with-c-c++-and-objective-c.md)
38+
* [Using LexActivator with C, C++ and Objective C](node-locked-licenses/using-lexactivator/using-lexactivator-with-c-c++-and-objective-c.md)
3939
* [Using LexActivator with C#](node-locked-licenses/using-lexactivator/using-lexactivator-with-csharp.md)
4040
* [Using LexActivator with VB.NET](node-locked-licenses/using-lexactivator/using-lexactivator-with-vb.net.md)
4141
* [Using LexActivator with Java](node-locked-licenses/using-lexactivator/using-lexactivator-with-java.md)

automated-emails.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Automated emails can be used to automatically send emails to your customers when
1717

1818
## Creating an automated email
1919

20-
You can easily create an automated email through the dashboard. Go to the [automated emails](https://app.cryptlex.com/automated-emails) section in the dashboard and click the add button. An automated email form with the following fields will popup: 
20+
You can easily create an automated email through the admin portal. Go to the `Developer -> Automated Emails` section in the admin portal and click the add button. An automated email form with the following fields will popup: 
2121

2222
{% hint style="info" %}
2323
After creating the automated email, make sure you link it with the product.
@@ -131,20 +131,19 @@ For other supported filters please refer to the following:
131131

132132
## Sending test emails
133133

134-
After you have created the automated email, click the automated email in the automated emails table. On the automated email page, you will find a **`Send Test Email`** button on the right top. You can use this to test your automated email by providing the sample data.
134+
After you have created the automated email, click the **`Send Test Email`** option in the actions menu in the table. You can use this to test your automated email.
135135

136136
## Verifying email domain
137137

138-
In order for Cryptlex to send emails on your behalf using your **From Email** address, you must verify that you own the domain. This is done by adding a Sending Domain in Cryptlex and verifying the DNS records shown in the Sending Domain.
138+
For Cryptlex to send emails on your behalf using your **From Email** address, you must verify that you own the domain. This is done by adding a Sending Domain in Cryptlex and verifying the DNS records shown in the Sending Domain.
139139

140-
If you don’t add the domain verification records, Cryptlex sends emails using **[email protected]** email address. If you want to give your customers a white-label experience, hiding all Cryptlex branding, you must add and verify the sending domain.
140+
If you don’t add the domain verification records, Cryptlex sends emails using `noreply@cryptlex-mail.com` email address. If you want to give your customers a white-label experience, hiding all Cryptlex branding, you must add and verify the sending domain.
141141

142142
### **To verify that a domain belongs to you**
143143

144-
1. On the automated emails page in the dashboard, click on the **`Sending Domains`** button.
145-
2. On the Sending Domains page click on the **`Add`** button to add your domain.
146-
3. Verify the domain by adding the required TXT and CNAME DNS entries. 
147-
4. After you have added the CNAME and TXT records, click the **`Verify`** button to confirm that all of your records are now valid.
144+
1. On the `Settings -> Customizations` page in the admin portal, click on the **`Add`** button in the `Email Sending Domain` section to add your domain.
145+
2. Verify the domain by adding the required TXT and CNAME DNS entries. 
146+
3. After you have added the CNAME and TXT records, click the **`Verify`** button to confirm that all of your records are now valid.
148147

149148
After your domain is verified, leave the CNAME and TXT records in place.
150149

feature-management/creating-product-versions.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,22 @@
11
# Creating Product Versions
22

3-
## Using the Dashboard
3+
## Using the Admin Portal
44

5-
After you have created a `Product`, within your Product Page, there is a button labelled Product Versions which will lead you to a page where you can create `Product Versions` for that particular `Product`. Before creating `Product Versions`, you must create `Feature Flags` by navigating via the following route:
5+
After creating a product, follow these steps to create product versions:
66

7-
> (Dashboard Home > Products > ProductA > Product Versions > Feature Flags)
7+
### 1. Create feature flags:
88

9-
The values of each flag can then be set when creating `Product Versions`. `Feature Flags` created later will automatically reflect in all `Product Versions` with no data and are disabled by default. You can then update your product versions and set the value of the feature flag as required.
9+
• Navigate to the Feature Flags page by going to `Features -> Feature Flags` in the sidebar.
10+
11+
• Create all necessary feature flags for your product.
12+
13+
### 2. Create product versions:
14+
15+
• Navigate to the Product Versions page by going to `Features -> Product Versions` in the sidebar.
16+
17+
• Create product versions for your product.
18+
19+
The values of each feature flag can be set when creating product versions. Any feature flags created later will automatically appear in all product versions but will be disabled by default. You can then update your product versions and set the value of each feature flag as required.
1020

1121
## Accessing feature flags in your application
1222

floating-licenses/on-premise-floating-licenses/lexfloatserver.md

Lines changed: 72 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ LexFloatServer has [`VS2015 runtime`](https://www.microsoft.com/en-in/download/d
1212

1313
LexFloatServer can be downloaded from the downloads page in the dashboard. Simply login to your Cryptlex account and download LexFloatServer binary for Windows, macOS or Linux:
1414

15-
*[Download LexFloatServer for Windows](https://app.cryptlex.com/downloads)
16-
* [​Download LexFloatServer for macOS](https://app.cryptlex.com/downloads)
17-
*[Download LexFloatServer for Linux](https://app.cryptlex.com/downloads)
15+
*[Download LexFloatServer for Windows](https://app.cryptlex.com/developer/sdk-downloads)
16+
* [​Download LexFloatServer for macOS](https://app.cryptlex.com/developer/sdk-downloads)
17+
*[Download LexFloatServer for Linux](https://app.cryptlex.com/developer/sdk-downloads)
1818

1919
## Configuring the LexFloatServer
2020

@@ -84,97 +84,94 @@ LexFloatServer exposes a few API endpoints which can also be used to activate th
8484

8585
Send a POST request to the **/api/server/activate** API endpoint with a JSON request body containing the license key and optionally the activation metadata.
8686

87-
{% swagger baseUrl="http://localhost:8090" path="/api/server/activate" method="post" summary="Activate server" %}
88-
{% swagger-description %}
87+
## Activate server
8988

90-
{% endswagger-description %}
89+
<mark style="color:green;">`POST`</mark> `http://localhost:8090/api/server/activate`
9190

92-
{% swagger-parameter in="body" name="licenseKey" type="string" %}
93-
License key to activate the server.
94-
{% endswagger-parameter %}
91+
#### Request Body
9592

96-
{% swagger-parameter in="body" name="metadata" type="array" %}
97-
Activation metadata.
98-
{% endswagger-parameter %}
93+
| Name | Type | Description |
94+
| ---------- | ------ | ----------------------------------- |
95+
| licenseKey | string | License key to activate the server. |
96+
| metadata | array | Activation metadata. |
9997

100-
{% swagger-response status="200" description="" %}
98+
{% tabs %}
99+
{% tab title="200 " %}
101100
```javascript
102101
{
103102
"message": "Server license activation successful!",
104103
"code": "SERVER_LICENSE_ACTIVATED"
105104
}
106105
```
107-
{% endswagger-response %}
106+
{% endtab %}
108107

109-
{% swagger-response status="400" description="" %}
108+
{% tab title="400 " %}
110109
```javascript
111110
{
112111
"message": "Server license activation failed!",
113112
"code": "SERVER_INVALID_LICENSE_KEY"
114113
}
115114
```
116-
{% endswagger-response %}
117-
{% endswagger %}
115+
{% endtab %}
116+
{% endtabs %}
118117

119118
#### Offline activation
120119

121120
Send a POST request to the **/api/server/offline-activation-request** API endpoint with a JSON request body containing the license key and optionally the activation metadata.
122121

123-
{% swagger baseUrl="http://localhost:8090" path="/api/server/offline-activation-request" method="post" summary="Generate offline activation request" %}
124-
{% swagger-description %}
122+
## Generate offline activation request
125123

126-
{% endswagger-description %}
124+
<mark style="color:green;">`POST`</mark> `http://localhost:8090/api/server/offline-activation-request`
127125

128-
{% swagger-parameter in="body" name="licenseKey" type="string" %}
129-
License key to activate the server.
130-
{% endswagger-parameter %}
126+
#### Request Body
131127

132-
{% swagger-parameter in="body" name="metadata" type="array" %}
133-
Activation metadata.
134-
{% endswagger-parameter %}
128+
| Name | Type | Description |
129+
| ---------- | ------ | ----------------------------------- |
130+
| licenseKey | string | License key to activate the server. |
131+
| metadata | array | Activation metadata. |
135132

136-
{% swagger-response status="200" description="" %}
133+
{% tabs %}
134+
{% tab title="200 " %}
137135
```javascript
138136
{
139137
"offlineRequest": "U7l69tNy8..."
140138
}
141139
```
142-
{% endswagger-response %}
143-
{% endswagger %}
140+
{% endtab %}
141+
{% endtabs %}
144142

145143
After generating the offline response from the admin dashboard, send a POST request to the **/api/server/offline-activate** API endpoint with a JSON request body containing the license key and the offline response.
146144

147-
{% swagger baseUrl="http://localhost:8090" path="/api/server/offline-activate" method="post" summary="Activate server offline" %}
148-
{% swagger-description %}
145+
## Activate server offline
149146

150-
{% endswagger-description %}
147+
<mark style="color:green;">`POST`</mark> `http://localhost:8090/api/server/offline-activate`
151148

152-
{% swagger-parameter in="body" name="licenseKey" type="string" %}
153-
License key to activate the server.
154-
{% endswagger-parameter %}
149+
#### Request Body
155150

156-
{% swagger-parameter in="body" name="offlineResponse" type="string" %}
157-
Offline activation response.
158-
{% endswagger-parameter %}
151+
| Name | Type | Description |
152+
| --------------- | ------ | ----------------------------------- |
153+
| licenseKey | string | License key to activate the server. |
154+
| offlineResponse | string | Offline activation response. |
159155

160-
{% swagger-response status="200" description="" %}
156+
{% tabs %}
157+
{% tab title="200 " %}
161158
```javascript
162159
{
163160
"message": "Server offline license activation successful!",
164161
"code": "SERVER_LICENSE_ACTIVATED"
165162
}
166163
```
167-
{% endswagger-response %}
164+
{% endtab %}
168165

169-
{% swagger-response status="400" description="" %}
166+
{% tab title="400 " %}
170167
```javascript
171168
{
172169
"message": "Server offline license activation failed!",
173170
"code": "SERVER_INVALID_LICENSE_KEY"
174171

175172
```
176-
{% endswagger-response %}
177-
{% endswagger %}
173+
{% endtab %}
174+
{% endtabs %}
178175
179176
## Installing LexFloatServer on Windows
180177
@@ -264,12 +261,14 @@ lexfloatserver -u --service-name com.mycompany.myfloatingserver
264261
265262
LexFloatServer exposes a stats API endpoint that can be used to get the current stats of the server.
266263
267-
{% swagger baseUrl="http://localhost:8090" path="/api/server/stats" method="get" summary="Gets the server stats" %}
268-
{% swagger-description %}
264+
## Gets the server stats
265+
266+
<mark style="color:blue;">`GET`</mark> `http://localhost:8090/api/server/stats`
267+
269268
Gets the current server stats
270-
{% endswagger-description %}
271269

272-
{% swagger-response status="200" description="" %}
270+
{% tabs %}
271+
{% tab title="200 " %}
273272
```javascript
274273
{
275274
"leaseDuration": 1800,
@@ -282,19 +281,21 @@ Gets the current server stats
282281
"serverSyncGracePeriodExpiryDate": 1580739313
283282
}
284283
```
285-
{% endswagger-response %}
286-
{% endswagger %}
284+
{% endtab %}
285+
{% endtabs %}
287286

288287
## Getting server license info
289288

290289
LexFloatServer exposes a license info API endpoint that can be used to get the information related to the license used to activate the LexFloatServer.
291290

292-
{% swagger method="get" path="/api/server/license-info" baseUrl="http://localhost:8090" summary="Gets the license info" %}
293-
{% swagger-description %}
291+
## Gets the license info
292+
293+
<mark style="color:blue;">`GET`</mark> `http://localhost:8090/api/server/license-info`
294+
294295
Gets the license info of the license used to activate the LexFloatServer
295-
{% endswagger-description %}
296296

297-
{% swagger-response status="200: OK" description="" %}
297+
{% tabs %}
298+
{% tab title="200: OK " %}
298299
```javascript
299300
{
300301
"key": "280D2B-B48A03-406BBC-2EEE4A-C20FB3-749630",
@@ -315,19 +316,21 @@ Gets the license info of the license used to activate the LexFloatServer
315316
"organization": null
316317
}
317318
```
318-
{% endswagger-response %}
319-
{% endswagger %}
319+
{% endtab %}
320+
{% endtabs %}
320321

321322
## Getting the list of floating licenses
322323

323324
LexFloatServer exposes a floating-licenses API endpoint that can be used to get the leased floating licenses.
324325

325-
{% swagger baseUrl="http://localhost:8090" path="/api/floating-licenses" method="get" summary="Gets the list of floating licenses" %}
326-
{% swagger-description %}
326+
## Gets the list of floating licenses
327+
328+
<mark style="color:blue;">`GET`</mark> `http://localhost:8090/api/floating-licenses`
329+
327330
Gets the current server stats
328-
{% endswagger-description %}
329331

330-
{% swagger-response status="200" description="" %}
332+
{% tabs %}
333+
{% tab title="200 " %}
331334
```javascript
332335
[
333336
{
@@ -349,19 +352,21 @@ Gets the current server stats
349352
}
350353
]
351354
```
352-
{% endswagger-response %}
353-
{% endswagger %}
355+
{% endtab %}
356+
{% endtabs %}
354357

355358
## Getting server license meter attributes
356359

357360
LexFloatServer exposes a license meter attributes API endpoint that can be used to get the list of all the meter attributes of the license used to activate the LexFloatServer.
358361

359-
{% swagger method="get" path="/api/server/license-meter-attributes" baseUrl="http://localhost:8090" summary="Gets the list of license meter attributes" %}
360-
{% swagger-description %}
362+
## Gets the list of license meter attributes
363+
364+
<mark style="color:blue;">`GET`</mark> `http://localhost:8090/api/server/license-meter-attributes`
365+
361366
Gets the list of meter attributes of the license used to activate the LexFloatServer
362-
{% endswagger-description %}
363367

364-
{% swagger-response status="200: OK" description="" %}
368+
{% tabs %}
369+
{% tab title="200: OK " %}
365370
<pre class="language-javascript"><code class="lang-javascript">[
366371
{
367372
"id": "string",
@@ -372,5 +377,5 @@ Gets the list of meter attributes of the license used to activate the LexFloatSe
372377
}
373378
]
374379
</code></pre>
375-
{% endswagger-response %}
376-
{% endswagger %}
380+
{% endtab %}
381+
{% endtabs %}

0 commit comments

Comments
 (0)