diff --git a/content/boundary/v0.20.x/content/docs/configuration/controller.mdx b/content/boundary/v0.20.x/content/docs/configuration/controller.mdx
index e298e9c9b5..25ea46ae2d 100644
--- a/content/boundary/v0.20.x/content/docs/configuration/controller.mdx
+++ b/content/boundary/v0.20.x/content/docs/configuration/controller.mdx
@@ -84,6 +84,13 @@ description will be read.
address will be read; or a [go-sockaddr template](https://godoc.org/github.com/hashicorp/go-sockaddr/template).
Note that the address should not include the protocol prefixes like `http://` or `https://`.
+- `license` - The license key value to enable Boundary Enterprise.
+The HashiCorp account team sends you a license to enable enterprise features.
+You can enter the raw license key or the directory path to the file that contains the license key.
+Alternatively, you can configure the license as an environment variable.
+
+ For more information, refer to [Boundary Enterprise licensing](/boundary/docs/enterprise/licensing).
+
- `auth_token_time_to_live` - Maximum time to live (TTL) for all auth tokens globally (pertains
to all tokens from all auth methods). Valid time units are anything specified by Golang's
[ParseDuration()](https://golang.org/pkg/time/#ParseDuration) method. Default is 7 days.
@@ -229,6 +236,9 @@ controller {
name = "demo-controller-1"
description = "A controller for a demo!"
+ # Path to a valid license to enable Boundary Enterprise.
+ license = "file:///folder_path/license.hclic"
+
# After receiving a shutdown signal, Boundary will wait 10s before initiating the shutdown process.
graceful_shutdown_wait_duration = "10s"
diff --git a/content/boundary/v0.20.x/content/docs/enterprise/licensing.mdx b/content/boundary/v0.20.x/content/docs/enterprise/licensing.mdx
index d1ec784916..75cc44d448 100644
--- a/content/boundary/v0.20.x/content/docs/enterprise/licensing.mdx
+++ b/content/boundary/v0.20.x/content/docs/enterprise/licensing.mdx
@@ -5,12 +5,16 @@ description: >-
Learn how to enable Boundary Enterprise with a valid license. Request access from an account team to enable enterprise features.
---
-# License Boundary Enterprise
+# Boundary Enterprise licensing
+
+This feature requires Boundary Enterprise
The Boundary Enterprise binaries require a license key to enforce entitlements and time restrictions according to your contractual agreement.
-Once purchased, your HashiCorp account team send you a valid Boundary license for environment activation.
+Once purchased, your HashiCorp account team sends you a valid Boundary license to activate the environment.
If you don't yet have an acccount team, but are interested in Boundary Enterprise, you can [contact sales](https://www.hashicorp.com/contact-sales).
+## Enable Boundary Enterprise
+
Once you have received your valid Boundary license, there are two options for enabling Boundary Enterprise:
1. You may set the enterprise license for Boundary using an environment variable.
@@ -53,4 +57,84 @@ Refer to the sample configurations below:
}
```
- Refer to the [controller](/boundary/docs/configuration/controller) configuration documentation for more information.
\ No newline at end of file
+Refer to the [controller](/boundary/docs/configuration/controller) configuration documentation for more information.
+
+## License expiration
+
+When the account team generates a new Boundary Enterprise license, it contains an expiration date based on your contractual agreement.
+Prior to the license expiration, Boundary logs five system event warnings to the event stream at the following intervals:
+
+| Warning | Interval |
+|---------|-------------------------------------|
+| First | 30 days before license expiration |
+| Second | 7 days before license expiration |
+| Third | 24 hours before license expiration |
+| Fourth | 1 hour before license expiration |
+| Fifth | 1 minute before license expiration |
+
+If you use an external monitoring system, you can create alerts for `"msg": "license warning"` and `"op": "licensing.StartWatching"` to watch for license expiration warnings.
+
+Refer to the following example of how the warnings appear in the log:
+
+
+
+```plaintext
+{
+ "id": "ymFHcb1H1Z",
+ "source": "https://hashicorp.com/boundary/nixos/controller+worker",
+ "specversion": "1.0",
+ "type": "system",
+ "data": {
+ "version": "v0.1",
+ "op": "licensing.StartWatching",
+ "data": {
+ "expiration_time": "2025-09-08T11:14:33-07:00",
+ "msg": "licensing warning",
+ "time_left_seconds": 60
+ }
+ },
+ "datacontentype": "text/plain",
+ "time": "2025-09-08T11:14:03.457471753-07:00"
+}
+```
+
+
+
+When the license expires, you receive the following message as an error:
+
+
+
+```plaintext
+{
+ "id": "SJkaNV09xP",
+ "source": "https://hashicorp.com/boundary/nixos/controller+worker",
+ "specversion": "1.0",
+ "type": "error",
+ "data": {
+ "error": "error from licensing watcher: invalid license or license is expired",
+ "error_fields": {},
+ "id": "e_33IKa8BqB3",
+ "version": "v0.1",
+ "op": "licensing.StartWatching"
+ },
+ "datacontentype": "text/plain",
+ "time": "2025-08-01T16:54:14.34408533-07:00"
+}
+==> Boundary dev environment self-terminating
+==> Health is enabled, waiting 0s before shutdown
+==> Boundary dev environment graceful shutdown triggered, interrupt again to enter shutdown
+```
+
+
+
+When the license expires, Boundary performs a graceful shutdown.
+A graceful shutdown closes listeners and servers before shutting down the controller to preemptively stop any new traffic to the Boundary instance.
+
+To update your license key, refer to the steps in [Enable Boundary Enterprise](#enable-boundary-enterprise).
+As a best practice, we recommend restarting the controller after you update the license key.
+
+## More information
+
+Refer to the [Upgrade and database migration](/boundary/tutorials/self-managed-deployment/upgrade-version) tutorial for step-by-step instructions to upgrade Boundary to the latest version, including database backup and data migration.
+
+Refer to [Monitor Boundary](/boundary/docs/monitor) for more information about configuring Boundary to monitor events.
\ No newline at end of file
diff --git a/content/boundary/v0.20.x/data/docs-nav-data.json b/content/boundary/v0.20.x/data/docs-nav-data.json
index c437587879..dd824f121f 100644
--- a/content/boundary/v0.20.x/data/docs-nav-data.json
+++ b/content/boundary/v0.20.x/data/docs-nav-data.json
@@ -798,7 +798,7 @@
"title": "Overview",
"path": "hcp",
"badge": {
- "text": "HCP/ENT",
+ "text": "HCP",
"type": "outlined",
"color": "neutral"
}
@@ -810,7 +810,7 @@
"title": "Deploy and log in",
"path": "hcp/get-started/deploy-and-login",
"badge": {
- "text": "HCP/ENT",
+ "text": "HCP",
"type": "outlined",
"color": "neutral"
}
@@ -819,7 +819,7 @@
"title": "Connect to a target",
"path": "hcp/get-started/connect-to-target",
"badge": {
- "text": "HCP/ENT",
+ "text": "HCP",
"type": "outlined",
"color": "neutral"
}
@@ -830,7 +830,7 @@
"title": "Documentation",
"href": "https://cloud.hashicorp.com/docs/boundary",
"badge": {
- "text": "HCP/ENT",
+ "text": "HCP",
"type": "outlined",
"color": "neutral"
}
@@ -844,7 +844,7 @@
"title": "Overview",
"path": "enterprise",
"badge": {
- "text": "HCP/ENT",
+ "text": "ENT",
"type": "outlined",
"color": "neutral"
}
@@ -853,7 +853,7 @@
"title": "Licensing",
"path": "enterprise/licensing",
"badge": {
- "text": "HCP/ENT",
+ "text": "ENT",
"type": "outlined",
"color": "neutral"
}
@@ -862,7 +862,7 @@
"title": "Automated license reporting",
"path": "enterprise/automated-license-reporting",
"badge": {
- "text": "HCP/ENT",
+ "text": "ENT",
"type": "outlined",
"color": "neutral"
}
@@ -871,7 +871,7 @@
"title": "Supported versions policy",
"path": "enterprise/supported-versions",
"badge": {
- "text": "HCP/ENT",
+ "text": "ENT",
"type": "outlined",
"color": "neutral"
}
@@ -880,7 +880,7 @@
"title": "Deployment guide",
"href": "https://developer.hashicorp.com/boundary/tutorials/enterprise/ent-deployment-guide",
"badge": {
- "text": "HCP/ENT",
+ "text": "ENT",
"type": "outlined",
"color": "neutral"
}
@@ -889,7 +889,7 @@
"title": "Reference architecture",
"href": "https://developer.hashicorp.com/boundary/tutorials/enterprise/ent-reference-architecture",
"badge": {
- "text": "HCP/ENT",
+ "text": "ENT",
"type": "outlined",
"color": "neutral"
}