From e1b2d1f2d41fd103f55082e727ba5b9caa20bcf6 Mon Sep 17 00:00:00 2001 From: Simran Spiller Date: Tue, 2 Dec 2025 10:39:05 +0100 Subject: [PATCH] New license management using credentials to activate deployments or generate license keys --- .../3.12/develop/http-api/administration.md | 102 ++++++++++++++ .../javascript-api/@arangodb/db-object.md | 2 +- .../administration/license-management.md | 130 ++++++++++++++++-- .../version-3.12/api-changes-in-3-12.md | 9 ++ .../incompatible-changes-in-3-12.md | 17 +++ .../version-3.12/whats-new-in-3-12.md | 21 +++ .../4.0/develop/http-api/administration.md | 102 ++++++++++++++ .../javascript-api/@arangodb/db-object.md | 2 +- .../administration/license-management.md | 130 ++++++++++++++++-- .../version-3.12/api-changes-in-3-12.md | 9 ++ .../incompatible-changes-in-3-12.md | 17 +++ .../version-3.12/whats-new-in-3-12.md | 21 +++ site/content/data-platform/get-started.md | 26 ++-- 13 files changed, 554 insertions(+), 34 deletions(-) diff --git a/site/content/arangodb/3.12/develop/http-api/administration.md b/site/content/arangodb/3.12/develop/http-api/administration.md index 57effdb398..5c279b0d2b 100644 --- a/site/content/arangodb/3.12/develop/http-api/administration.md +++ b/site/content/arangodb/3.12/develop/http-api/administration.md @@ -1257,6 +1257,108 @@ x-content-type-options: nosniff ``` {{< /details >}} +### Get the deployment ID + +Introduced in: v3.12.6 + +```openapi +paths: + /_db/{database-name}/_admin/deployment/id: + get: + operationId: getDeploymentId + description: | + Get the unique identifier of this ArangoDB deployment. + parameters: + - name: database-name + in: path + required: true + example: _system + description: | + The name of a database. Which database you use doesn't matter as long + as the user account you authenticate with has at least read access + to this database. + schema: + type: string + responses: + '200': + description: | + The deployment ID has been retrieved successfully. + content: + application/json: + schema: + type: object + required: + - id + properties: + id: + description: | + The UUID that uniquely identifies the deployment. + type: string + format: uuid + '401': + description: | + The user account has insufficient permissions for the selected database. + content: + application/json: + schema: + type: object + required: + - error + - code + - errorNum + - errorMessage + properties: + error: + description: | + A flag indicating that an error occurred. + type: boolean + example: true + code: + description: | + The HTTP response status code. + type: integer + example: 401 + errorNum: + description: | + The ArangoDB error number for the error that occurred. + type: integer + errorMessage: + description: | + A descriptive error message. + type: string + tags: + - Administration +``` + +**Examples** + +{{< comment >}} +Example not generated because it the deployment ID would change on every run. +{{< /comment >}} + +```bash +curl --header 'accept: application/json' --dump - http://localhost:8529/_admin/deployment/id +``` + +{{< details summary="Show output" >}} +```bash +HTTP/1.1 200 OK +X-Arango-Queue-Time-Seconds: 0.000000 +Strict-Transport-Security: max-age=31536000 ; includeSubDomains +Expires: 0 +Pragma: no-cache +Cache-Control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0, max-age=0, s-maxage=0 +Content-Security-Policy: frame-ancestors 'self'; form-action 'self'; +X-Content-Type-Options: nosniff +Server: ArangoDB +Connection: Keep-Alive +Content-Type: application/json; charset=utf-8 +Content-Length: 45 + +{"id":"6172616e-676f-4000-0000-9396df268f7f"} +``` +{{< /details >}} + ## Shutdown ### Start the shutdown sequence diff --git a/site/content/arangodb/3.12/develop/javascript-api/@arangodb/db-object.md b/site/content/arangodb/3.12/develop/javascript-api/@arangodb/db-object.md index bcc82a55e1..d5bf818473 100644 --- a/site/content/arangodb/3.12/develop/javascript-api/@arangodb/db-object.md +++ b/site/content/arangodb/3.12/develop/javascript-api/@arangodb/db-object.md @@ -1282,4 +1282,4 @@ Sets a license. - `force` (boolean, _optional_): Whether to change the license even if it expires sooner than the current one. Default: `false`. -Also see [Apply a license](../../../operations/administration/license-management.md#apply-a-license). +Also see [Apply a license key](../../../operations/administration/license-management.md#apply-a-license-key). diff --git a/site/content/arangodb/3.12/operations/administration/license-management.md b/site/content/arangodb/3.12/operations/administration/license-management.md index ae55860b72..03b1ffd9b7 100644 --- a/site/content/arangodb/3.12/operations/administration/license-management.md +++ b/site/content/arangodb/3.12/operations/administration/license-management.md @@ -3,25 +3,134 @@ title: Enterprise Edition License Management menuTitle: License Management weight: 20 description: >- - How to apply a license and check the licensing status of an ArangoDB deployment + How to activate a deployment, obtain and apply a license key, and check the + licensing status of an ArangoDB deployment --- The Enterprise Edition of ArangoDB requires a license so that you can use ArangoDB for commercial purposes and have a dataset size over 100 GiB. See [ArangoDB Editions](../../features/_index.md#arangodb-editions) for details. -How to set a license key and to retrieve information about the current license -via different interfaces is described below. +There are different license management flows: -{{< info >}} -If you use the ArangoDB Kubernetes Operator (including the Data Platform), -check the [kube-arangodb documentation](https://arangodb.github.io/kube-arangodb/docs/how-to/set_license.html) -for more details on how to set a license key in a Kubernetes-managed deployment. -{{< /info >}} +- **Activate a deployment** (from v3.12.6 onward):\ + Customers receive license credentials composed of a client ID and a client secret. + You can use a command-line tool to activate deployments with these credentials, + either one-off or continuously. + + An activation is generally valid for two weeks and it is recommended to + renew the activation weekly. + + {{< info >}} + If you use the ArangoDB Kubernetes Operator (including the Data Platform), + check the [kube-arangodb documentation](https://arangodb.github.io/kube-arangodb/docs/how-to/set_license.html) + for more details on how to set a license key in a Kubernetes-managed deployment. + {{< /info >}} + +- **Apply a license key**:\ + Up to v3.12.5, customers received a license key directly and it was typically + valid for one year. From v3.12.6 onward, customers receive license credentials + instead. You can use a command-line tool to generate a license key using these + credentials, and the license key generally expires every two weeks. + + You can also activate a deployment instead of generating a license key, but + this requires an internet connection. For air-gapped environments for example, + the license key flow is required and the license key has a longer validity. + +How to activate a deployment or apply a license key to it, as well as how to +retrieve information about the current license via different interfaces is +described below. + +## Activate a deployment + +1. Download the Arango Data Platform CLI tool `arangodb_operator_platform` from + . + It is available for Linux, macOS, and Windows for the x86-64 as well as 64-bit ARM + architecture (e.g. `arangodb_operator_platform_linux_amd64`). + + It is recommended to rename the downloaded executable to + `arangodb_operator_platform` (with an `.exe` extension on Windows) and add it to + the `PATH` environment variable to make it available as a command in the system. + +2. Activate a deployment once using the Platform CLI tool. Point it to a running + ArangoDB deployment (running on `http://localhost:8529` in this example) and + supply the license credentials: + + ```sh + arangodb_operator_platform license activate --arango.endpoint http://localhost:8529 --license.client.id "your-corp" --license.client.secret "..." + ``` + + Unless authentication is disabled for the deployment, you need to additionally + supply either ArangoDB user credentials or a JWT session token and specify the + authentication method (case-sensitive): + + ```sh + # User credentials + arangodb_operator_platform license activate --arango.authentication Basic --arango.basic.username "root" --arango.basic.password "" ... + + # JWT session token + arangodb_operator_platform license activate --arango.authentication Token --arango.token "eyJh..." ... + ``` + +3. You can specify an activation interval to keep the Platform CLI tool running + and have it re-activate the deployment automatically, e.g. once a week: + + ```sh + arangodb_operator_platform license activate --license.interval 168h ... + ``` + +## Generate a license key + +1. Download the Arango Data Platform CLI tool `arangodb_operator_platform` from + . + It is available for Linux, macOS, and Windows for the x86-64 as well as 64-bit ARM + architecture (e.g. `arangodb_operator_platform_linux_amd64`). + + It is recommended to rename the downloaded executable to + `arangodb_operator_platform` (with an `.exe` extension on Windows) and add it to + the `PATH` environment variable to make it available as a command in the system. + +2. Create an inventory file using the Platform CLI tool. Point it to a running + ArangoDB deployment (running on `http://localhost:8529` in this example): + + ```sh + arangodb_operator_platform license inventory --arango.endpoint="http://localhost:8529" inventory.json + ``` + + Unless authentication is disabled for the deployment, you need to additionally + supply either ArangoDB user credentials or a JWT session token and specify the + authentication method (case-sensitive): + + ```sh + # User credentials + arangodb_operator_platform license inventory --arango.authentication Basic --arango.basic.username "root" --arango.basic.password "" ... + + # JWT session token + arangodb_operator_platform license inventory --arango.authentication Token --arango.token "eyJh..." ... + ``` + +3. Determine the ID of the ArangoDB deployment. You can find it in the inventory file + or call the [`GET /_admin/deployment/id` endpoint](../../develop/http-api/administration.md#get-the-deployment-id): + + ```sh + # User credentials + curl -uroot: http://localhost:8529/_admin/deployment/id + + # JWT session token + curl -H "Authorization: Bearer eyJh..." http://localhost:8529/_admin/deployment/id + + # Example result: + # {"id":"6172616e-676f-4000-0000-05c958168340"} + ``` + +4. Generate the license key using the deployment ID, the inventory file, and the + license credentials, and write it to a file: -## Apply a license + ```sh + arangodb_operator_platform license generate --deployment.id "6172616e-676f-4000-0000-05c958168340" --inventory inventory.json --license.client.id "your-corp" --license.client.secret "..." 2> license_key.txt + ``` -To use the Enterprise Edition, set the license key like so: +## Apply a license key {{< tabs "interfaces" >}} @@ -32,6 +141,7 @@ To use the Enterprise Edition, set the license key like so: 4. Expand the **PUT /_admin/license** sub-panel. 5. Click the **Try it out** button. 6. Paste the license key into the text area below the **Request body** label. + Make sure the key is wrapped in double quotes. 7. Make sure the license key is surrounded by double quote marks. 8. Click the **Execute** button. 9. Scroll down to **Server response** to check the result. diff --git a/site/content/arangodb/3.12/release-notes/version-3.12/api-changes-in-3-12.md b/site/content/arangodb/3.12/release-notes/version-3.12/api-changes-in-3-12.md index 8cc010cc0a..5678b225df 100644 --- a/site/content/arangodb/3.12/release-notes/version-3.12/api-changes-in-3-12.md +++ b/site/content/arangodb/3.12/release-notes/version-3.12/api-changes-in-3-12.md @@ -336,6 +336,15 @@ documentation. Also see [Authentication with access tokens](#authentication-with-access-tokens) for related API changes. +#### Deployment ID + +Introduced in: v3.12.6 + +Licenses are now bound to specific deployments. Each deployment has a unique +identifier that you can retrieve via a new +[`GET /_admin/deployment/id` endpoint](../../develop/http-api/administration.md#get-the-deployment-id) +in the HTTP API. + ### Endpoints augmented #### View API diff --git a/site/content/arangodb/3.12/release-notes/version-3.12/incompatible-changes-in-3-12.md b/site/content/arangodb/3.12/release-notes/version-3.12/incompatible-changes-in-3-12.md index 959cea82cf..4b09db5bd9 100644 --- a/site/content/arangodb/3.12/release-notes/version-3.12/incompatible-changes-in-3-12.md +++ b/site/content/arangodb/3.12/release-notes/version-3.12/incompatible-changes-in-3-12.md @@ -994,6 +994,23 @@ more data, less file descriptors are used. - `segmentsBytesMax` increased from `5368709120` (5 GiB) to `8589934592` (8 GiB) - `segmentsBytesFloor` increased from `2097152` (2 MiB) to `25165824` (24 MiB) +## License management changes + +Introduced in: v3.12.6 + +Enterprise Edition license keys are now longer issued directly. Customers receive +license credentials instead. You can use a command-line tool to either activate +deployments or generate license keys using these credentials. An internet +connection is required for both. A generated key can subsequently be applied to +an air-gapped deployment without internet access. + +The activation and license keys are now typically short-lived and need to be +renewed every two weeks. Old license keys remain valid until their regular +expiration. + +See [Enterprise Edition License Management](../../operations/administration/license-management.md) +for details. + ## HTTP RESTful API ### JavaScript-based traversal using `/_api/traversal` removed diff --git a/site/content/arangodb/3.12/release-notes/version-3.12/whats-new-in-3-12.md b/site/content/arangodb/3.12/release-notes/version-3.12/whats-new-in-3-12.md index d0d0c77010..b4adcc7426 100644 --- a/site/content/arangodb/3.12/release-notes/version-3.12/whats-new-in-3-12.md +++ b/site/content/arangodb/3.12/release-notes/version-3.12/whats-new-in-3-12.md @@ -2452,6 +2452,27 @@ environment variable `NAME`. If there is an environment variable called `PID` or `TEMP_BASE_DIR`, then `@PID@` or `@TEMP_BASE_DIR@` is substituted with the value of the respective environment variable. +### License management changes + +Introduced: v3.12.6 + +The Enterprise Edition requires a license and customers used to receive a +license key directly. Going forward, customers receive license credentials +instead. You can use a command-line tool to either activate deployments or +generate license keys using these credentials. + +The activation and license keys are now typically short-lived and need to be +renewed every two weeks. Old license keys remain valid until their regular +expiration. + +Licenses are now bound to specific deployments. Each deployment has a unique +identifier that you can retrieve via a new +[`GET /_admin/deployment/id` endpoint](../../develop/http-api/administration.md#get-the-deployment-id) +in the HTTP API. + +See [Enterprise Edition License Management](../../operations/administration/license-management.md) +for details. + ## Client tools ### Protocol aliases for endpoints diff --git a/site/content/arangodb/4.0/develop/http-api/administration.md b/site/content/arangodb/4.0/develop/http-api/administration.md index 57effdb398..5c279b0d2b 100644 --- a/site/content/arangodb/4.0/develop/http-api/administration.md +++ b/site/content/arangodb/4.0/develop/http-api/administration.md @@ -1257,6 +1257,108 @@ x-content-type-options: nosniff ``` {{< /details >}} +### Get the deployment ID + +Introduced in: v3.12.6 + +```openapi +paths: + /_db/{database-name}/_admin/deployment/id: + get: + operationId: getDeploymentId + description: | + Get the unique identifier of this ArangoDB deployment. + parameters: + - name: database-name + in: path + required: true + example: _system + description: | + The name of a database. Which database you use doesn't matter as long + as the user account you authenticate with has at least read access + to this database. + schema: + type: string + responses: + '200': + description: | + The deployment ID has been retrieved successfully. + content: + application/json: + schema: + type: object + required: + - id + properties: + id: + description: | + The UUID that uniquely identifies the deployment. + type: string + format: uuid + '401': + description: | + The user account has insufficient permissions for the selected database. + content: + application/json: + schema: + type: object + required: + - error + - code + - errorNum + - errorMessage + properties: + error: + description: | + A flag indicating that an error occurred. + type: boolean + example: true + code: + description: | + The HTTP response status code. + type: integer + example: 401 + errorNum: + description: | + The ArangoDB error number for the error that occurred. + type: integer + errorMessage: + description: | + A descriptive error message. + type: string + tags: + - Administration +``` + +**Examples** + +{{< comment >}} +Example not generated because it the deployment ID would change on every run. +{{< /comment >}} + +```bash +curl --header 'accept: application/json' --dump - http://localhost:8529/_admin/deployment/id +``` + +{{< details summary="Show output" >}} +```bash +HTTP/1.1 200 OK +X-Arango-Queue-Time-Seconds: 0.000000 +Strict-Transport-Security: max-age=31536000 ; includeSubDomains +Expires: 0 +Pragma: no-cache +Cache-Control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0, max-age=0, s-maxage=0 +Content-Security-Policy: frame-ancestors 'self'; form-action 'self'; +X-Content-Type-Options: nosniff +Server: ArangoDB +Connection: Keep-Alive +Content-Type: application/json; charset=utf-8 +Content-Length: 45 + +{"id":"6172616e-676f-4000-0000-9396df268f7f"} +``` +{{< /details >}} + ## Shutdown ### Start the shutdown sequence diff --git a/site/content/arangodb/4.0/develop/javascript-api/@arangodb/db-object.md b/site/content/arangodb/4.0/develop/javascript-api/@arangodb/db-object.md index d9d2dc1af7..5a198c6f40 100644 --- a/site/content/arangodb/4.0/develop/javascript-api/@arangodb/db-object.md +++ b/site/content/arangodb/4.0/develop/javascript-api/@arangodb/db-object.md @@ -1265,4 +1265,4 @@ Sets a license. - `force` (boolean, _optional_): Whether to change the license even if it expires sooner than the current one. Default: `false`. -Also see [Apply a license](../../../operations/administration/license-management.md#apply-a-license). +Also see [Apply a license key](../../../operations/administration/license-management.md#apply-a-license-key). diff --git a/site/content/arangodb/4.0/operations/administration/license-management.md b/site/content/arangodb/4.0/operations/administration/license-management.md index 8fda54572c..33853f5034 100644 --- a/site/content/arangodb/4.0/operations/administration/license-management.md +++ b/site/content/arangodb/4.0/operations/administration/license-management.md @@ -3,7 +3,8 @@ title: Enterprise Edition License Management menuTitle: License Management weight: 20 description: >- - How to apply a license and check the licensing status of an ArangoDB deployment + How to activate a deployment, obtain and apply a license key, and check the + licensing status of an ArangoDB deployment aliases: - ../upgrading/community-to-enterprise-upgrade # 3.12 -> 4.0 --- @@ -12,18 +13,126 @@ ArangoDB for commercial purposes and have a dataset size over 100 GiB. See [ArangoDB Editions](../../features/_index.md#arangodb-editions) for details. -How to set a license key and to retrieve information about the current license -via different interfaces is described below. +There are different license management flows: -{{< info >}} -If you use the ArangoDB Kubernetes Operator (including the Data Platform), -check the [kube-arangodb documentation](https://arangodb.github.io/kube-arangodb/docs/how-to/set_license.html) -for more details on how to set a license key in a Kubernetes-managed deployment. -{{< /info >}} +- **Activate a deployment** (from v3.12.6 onward):\ + Customers receive license credentials composed of a client ID and a client secret. + You can use a command-line tool to activate deployments with these credentials, + either one-off or continuously. + + An activation is generally valid for two weeks and it is recommended to + renew the activation weekly. + + {{< info >}} + If you use the ArangoDB Kubernetes Operator (including the Data Platform), + check the [kube-arangodb documentation](https://arangodb.github.io/kube-arangodb/docs/how-to/set_license.html) + for more details on how to set a license key in a Kubernetes-managed deployment. + {{< /info >}} + +- **Apply a license key**:\ + Up to v3.12.5, customers received a license key directly and it was typically + valid for one year. From v3.12.6 onward, customers receive license credentials + instead. You can use a command-line tool to generate a license key using these + credentials, and the license key generally expires every two weeks. + + You can also activate a deployment instead of generating a license key, but + this requires an internet connection. For air-gapped environments for example, + the license key flow is required and the license key has a longer validity. + +How to activate a deployment or apply a license key to it, as well as how to +retrieve information about the current license via different interfaces is +described below. + +## Activate a deployment + +1. Download the Arango Data Platform CLI tool `arangodb_operator_platform` from + . + It is available for Linux, macOS, and Windows for the x86-64 as well as 64-bit ARM + architecture (e.g. `arangodb_operator_platform_linux_amd64`). + + It is recommended to rename the downloaded executable to + `arangodb_operator_platform` (with an `.exe` extension on Windows) and add it to + the `PATH` environment variable to make it available as a command in the system. + +2. Activate a deployment once using the Platform CLI tool. Point it to a running + ArangoDB deployment (running on `http://localhost:8529` in this example) and + supply the license credentials: + + ```sh + arangodb_operator_platform license activate --arango.endpoint http://localhost:8529 --license.client.id "your-corp" --license.client.secret "..." + ``` + + Unless authentication is disabled for the deployment, you need to additionally + supply either ArangoDB user credentials or a JWT session token and specify the + authentication method (case-sensitive): + + ```sh + # User credentials + arangodb_operator_platform license activate --arango.authentication Basic --arango.basic.username "root" --arango.basic.password "" ... + + # JWT session token + arangodb_operator_platform license activate --arango.authentication Token --arango.token "eyJh..." ... + ``` + +3. You can specify an activation interval to keep the Platform CLI tool running + and have it re-activate the deployment automatically, e.g. once a week: + + ```sh + arangodb_operator_platform license activate --license.interval 168h ... + ``` + +## Generate a license key + +1. Download the Arango Data Platform CLI tool `arangodb_operator_platform` from + . + It is available for Linux, macOS, and Windows for the x86-64 as well as 64-bit ARM + architecture (e.g. `arangodb_operator_platform_linux_amd64`). + + It is recommended to rename the downloaded executable to + `arangodb_operator_platform` (with an `.exe` extension on Windows) and add it to + the `PATH` environment variable to make it available as a command in the system. + +2. Create an inventory file using the Platform CLI tool. Point it to a running + ArangoDB deployment (running on `http://localhost:8529` in this example): + + ```sh + arangodb_operator_platform license inventory --arango.endpoint="http://localhost:8529" inventory.json + ``` + + Unless authentication is disabled for the deployment, you need to additionally + supply either ArangoDB user credentials or a JWT session token and specify the + authentication method (case-sensitive): + + ```sh + # User credentials + arangodb_operator_platform license inventory --arango.authentication Basic --arango.basic.username "root" --arango.basic.password "" ... + + # JWT session token + arangodb_operator_platform license inventory --arango.authentication Token --arango.token "eyJh..." ... + ``` + +3. Determine the ID of the ArangoDB deployment. You can find it in the inventory file + or call the [`GET /_admin/deployment/id` endpoint](../../develop/http-api/administration.md#get-the-deployment-id): + + ```sh + # User credentials + curl -uroot: http://localhost:8529/_admin/deployment/id + + # JWT session token + curl -H "Authorization: Bearer eyJh..." http://localhost:8529/_admin/deployment/id + + # Example result: + # {"id":"6172616e-676f-4000-0000-05c958168340"} + ``` + +4. Generate the license key using the deployment ID, the inventory file, and the + license credentials, and write it to a file: -## Apply a license + ```sh + arangodb_operator_platform license generate --deployment.id "6172616e-676f-4000-0000-05c958168340" --inventory inventory.json --license.client.id "your-corp" --license.client.secret "..." 2> license_key.txt + ``` -To use the Enterprise Edition, set the license key like so: +## Apply a license key {{< tabs "interfaces" >}} @@ -34,6 +143,7 @@ To use the Enterprise Edition, set the license key like so: 4. Expand the **PUT /_admin/license** sub-panel. 5. Click the **Try it out** button. 6. Paste the license key into the text area below the **Request body** label. + Make sure the key is wrapped in double quotes. 7. Make sure the license key is surrounded by double quote marks. 8. Click the **Execute** button. 9. Scroll down to **Server response** to check the result. diff --git a/site/content/arangodb/4.0/release-notes/version-3.12/api-changes-in-3-12.md b/site/content/arangodb/4.0/release-notes/version-3.12/api-changes-in-3-12.md index 8cc010cc0a..5678b225df 100644 --- a/site/content/arangodb/4.0/release-notes/version-3.12/api-changes-in-3-12.md +++ b/site/content/arangodb/4.0/release-notes/version-3.12/api-changes-in-3-12.md @@ -336,6 +336,15 @@ documentation. Also see [Authentication with access tokens](#authentication-with-access-tokens) for related API changes. +#### Deployment ID + +Introduced in: v3.12.6 + +Licenses are now bound to specific deployments. Each deployment has a unique +identifier that you can retrieve via a new +[`GET /_admin/deployment/id` endpoint](../../develop/http-api/administration.md#get-the-deployment-id) +in the HTTP API. + ### Endpoints augmented #### View API diff --git a/site/content/arangodb/4.0/release-notes/version-3.12/incompatible-changes-in-3-12.md b/site/content/arangodb/4.0/release-notes/version-3.12/incompatible-changes-in-3-12.md index 959cea82cf..4b09db5bd9 100644 --- a/site/content/arangodb/4.0/release-notes/version-3.12/incompatible-changes-in-3-12.md +++ b/site/content/arangodb/4.0/release-notes/version-3.12/incompatible-changes-in-3-12.md @@ -994,6 +994,23 @@ more data, less file descriptors are used. - `segmentsBytesMax` increased from `5368709120` (5 GiB) to `8589934592` (8 GiB) - `segmentsBytesFloor` increased from `2097152` (2 MiB) to `25165824` (24 MiB) +## License management changes + +Introduced in: v3.12.6 + +Enterprise Edition license keys are now longer issued directly. Customers receive +license credentials instead. You can use a command-line tool to either activate +deployments or generate license keys using these credentials. An internet +connection is required for both. A generated key can subsequently be applied to +an air-gapped deployment without internet access. + +The activation and license keys are now typically short-lived and need to be +renewed every two weeks. Old license keys remain valid until their regular +expiration. + +See [Enterprise Edition License Management](../../operations/administration/license-management.md) +for details. + ## HTTP RESTful API ### JavaScript-based traversal using `/_api/traversal` removed diff --git a/site/content/arangodb/4.0/release-notes/version-3.12/whats-new-in-3-12.md b/site/content/arangodb/4.0/release-notes/version-3.12/whats-new-in-3-12.md index d0d0c77010..b4adcc7426 100644 --- a/site/content/arangodb/4.0/release-notes/version-3.12/whats-new-in-3-12.md +++ b/site/content/arangodb/4.0/release-notes/version-3.12/whats-new-in-3-12.md @@ -2452,6 +2452,27 @@ environment variable `NAME`. If there is an environment variable called `PID` or `TEMP_BASE_DIR`, then `@PID@` or `@TEMP_BASE_DIR@` is substituted with the value of the respective environment variable. +### License management changes + +Introduced: v3.12.6 + +The Enterprise Edition requires a license and customers used to receive a +license key directly. Going forward, customers receive license credentials +instead. You can use a command-line tool to either activate deployments or +generate license keys using these credentials. + +The activation and license keys are now typically short-lived and need to be +renewed every two weeks. Old license keys remain valid until their regular +expiration. + +Licenses are now bound to specific deployments. Each deployment has a unique +identifier that you can retrieve via a new +[`GET /_admin/deployment/id` endpoint](../../develop/http-api/administration.md#get-the-deployment-id) +in the HTTP API. + +See [Enterprise Edition License Management](../../operations/administration/license-management.md) +for details. + ## Client tools ### Protocol aliases for endpoints diff --git a/site/content/data-platform/get-started.md b/site/content/data-platform/get-started.md index c2f1795e1b..73acb5de0b 100644 --- a/site/content/data-platform/get-started.md +++ b/site/content/data-platform/get-started.md @@ -75,25 +75,27 @@ to provide automated deployment, scaling, and management capabilities. 1. Obtain a zip package of the Arango Data Platform for the offline installation. It includes helm charts, manifests, and blobs of the container image layers. - You also receive a package configuration file from the Arango team. + You also receive a package configuration file and license credentials from the + Arango team. 2. Create a Kubernetes namespace for ArangoDB and a secret with your - Enterprise Edition license key. Substitute `` with the actual - license string: + license credentials. Substitute `` and `` + with the actual license credentials: ```sh kubectl create namespace arangodb kubectl create secret generic arango-license-key \ --namespace arangodb \ - --from-literal=token-v2="" + --from-literal=license-client-id="" \ + --from-literal=license-client-secret="" ``` 3. Install the certificate manager. You can check for the available releases. ```sh - VERSION_CERT='1.18.2' # Use a newer version if available + VERSION_CERT='1.19.1' # Use a newer version if available helm repo add jetstack https://charts.jetstack.io helm repo update @@ -108,7 +110,7 @@ to provide automated deployment, scaling, and management capabilities. with options to enable webhooks, certificates, and the gateway feature. ```sh - VERSION_OPERATOR='1.3.0' # Use a newer version if available + VERSION_OPERATOR='1.3.2' # Use a newer version if available helm upgrade --install operator \ --namespace arangodb \ @@ -121,14 +123,14 @@ to provide automated deployment, scaling, and management capabilities. --set "operator.architectures={amd64}" # or {arm64} for ARM-based CPUs ``` -5. Create an `ArangoDeployment` specification for the ArangoDB Core. See the +5. Create an `ArangoDeployment` specification for ArangoDB. See the [ArangoDeployment Custom Resource Overview](https://arangodb.github.io/kube-arangodb/docs/deployment-resource-reference.html) and the linked reference. You need to enable the gateway feature by setting `spec.gateway.enabled` and `spec.gateway.dynamic` to `true` in the specification. You also need to set `spec.license` to the secret created earlier. Example for an ArangoDB cluster - deployment using version 3.12.5 with three DB-Servers and two Coordinators: + deployment using version 3.12.6 with three DB-Servers and two Coordinators: ```yaml apiVersion: "database.arangodb.com/v1" @@ -137,7 +139,7 @@ to provide automated deployment, scaling, and management capabilities. name: "platform-example" spec: mode: Cluster - image: "arangodb/enterprise:3.12.5" + image: "arangodb/enterprise:3.12.6" gateway: enabled: true dynamic: true @@ -154,12 +156,12 @@ to provide automated deployment, scaling, and management capabilities. 6. Download the Arango Data Platform CLI tool `arangodb_operator_platform` from . - It is available for Linux and macOS, for the x86-64 as well as 64-bit ARM + It is available for Linux, macOS, and Windows for the x86-64 as well as 64-bit ARM architecture (e.g. `arangodb_operator_platform_linux_amd64`). It is recommended to rename the downloaded executable to - `arangodb_operator_platform` and add it to the `PATH` environment variable - to make it available as a command in the system. + `arangodb_operator_platform` (with an `.exe` extension on Windows) and add it to + the `PATH` environment variable to make it available as a command in the system. The Platform CLI tool simplifies the further setup and later management of the Platform's Kubernetes services.