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.