Skip to content

Commit aa73bb0

Browse files
authored
feat: Convert important psuedo-callouts (#1357)
This commit converts the majority of important psuedo-callouts in documentation to proper Hugo call-out shortcodes. The instances that have been left are parts of files that will be deprecated in the future. As part of this commit, metadata and Markdown linting issues were also fixed, and some peripheral process documentation was updated for clarity.
1 parent a49c4c1 commit aa73bb0

File tree

17 files changed

+191
-210
lines changed

17 files changed

+191
-210
lines changed

.markdownlint.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,5 @@ MD039: true
3636
# All images should have alt text
3737
MD045: true
3838

39-
# Tables shou ld be surrounded by blank lines
39+
# Tables should be surrounded by blank lines
4040
MD058: true

content/nginx-one/nginx-configs/config-templates/submit-templates.md

Lines changed: 39 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
---
2-
nd-docs: DOCS-000
32
title: Submit templates
43
toc: true
54
weight: 200
6-
type:
7-
- how-to
5+
nd-content-type: how-to
6+
nd-product: ONE
87
---
98

109
# Template submission and preview guide
1110

1211
This guide explains how to submit templates for rendering NGINX configurations and preview the results using the Templates API.
1312

1413
Before submitting templates for preview, you need to import templates into NGINX One Console.
14+
1515
- See the [Import Templates Guide]({{< ref "import-templates.md" >}}) for instructions on creating templates.
1616
- For guidance on writing templates, see the [Template Authoring Guide]({{< ref "author-templates.md" >}}).
1717

@@ -20,11 +20,11 @@ Before submitting templates for preview, you need to import templates into NGINX
2020
Template submission allows you to compose templates that generate complete NGINX configuration. The process involves:
2121

2222
1. **Discovering templates** - Find base and augment templates that match your infrastructure needs
23-
2. **Understanding capabilities** - Review what contexts and features the base template supports
24-
3. **Selecting augments** - Choose augments for additional features (CORS, rate limiting, SSL, etc.)
25-
4. **Providing values** - Supply values for all template variables
26-
5. **Preview and validate** - Generate and review the complete NGINX configuration
27-
6. **Save as staged config** - Use NGINX One Console to save the preview as a staged configuration for deployment
23+
1. **Understanding capabilities** - Review what contexts and features the base template supports
24+
1. **Selecting augments** - Choose augments for additional features (CORS, rate limiting, SSL, etc.)
25+
1. **Providing values** - Supply values for all template variables
26+
1. **Preview and validate** - Generate and review the complete NGINX configuration
27+
1. **Save as staged config** - Use NGINX One Console to save the preview as a staged configuration for deployment
2828

2929
## Current limitations
3030

@@ -41,7 +41,8 @@ Before creating a submission, find base and augment templates that match your in
4141

4242
Use the [List Templates]({{< ref "/nginx-one/api/api-reference-guide/#operation/listTemplates" >}}) API operation to find templates organized by use case.
4343

44-
**Example Response:**
44+
**Example response:**
45+
4546
```json
4647
{
4748
"count": 3,
@@ -89,11 +90,13 @@ Use the [List Templates]({{< ref "/nginx-one/api/api-reference-guide/#operation/
8990
```
9091

9192
**Use Case Identification:**
93+
9294
- **Base templates** represent primary NGINX use cases (reverse proxy, load balancer, static site, API gateway)
9395
- **Template descriptions** help identify which base template matches your infrastructure need
9496
- **augment_includes** shows what additional features each base template supports
9597

9698
**Information Available In API Response:**
99+
97100
- **object_id** - A unique identifier of a template to use in submission requests
98101
- **type** - Identifies base templates (use exactly one) vs augment templates (use zero or more)
99102
- **allowed_in_contexts** - Shows where augment templates can be applied within a base template
@@ -106,12 +109,14 @@ The API response contains all information needed for creating a submission to re
106109
Use the [Retrieve a Template]({{< ref "/nginx-one/api/api-reference-guide/#operation/getTemplate" >}}) API operation only when you need to examine template content or detailed variable requirements.
107110

108111
**When to use template details:**
112+
109113
- Review the actual template code and structure
110114
- Examine detailed schema definitions for variable validation
111115
- Understand specific variable names and constraints
112116
- Debug template behavior or compatibility issues
113117

114-
**Example Response:**
118+
**Example response:**
119+
115120
```json
116121
{
117122
"allowed_in_contexts": [],
@@ -149,6 +154,7 @@ Use the [Retrieve a Template]({{< ref "/nginx-one/api/api-reference-guide/#opera
149154
```
150155

151156
**Details:**
157+
152158
- **Template content** - Shows `augment_includes` placeholders and variable usage (e.g., `{{ .backend_url }}`)
153159
- **Schema definition** - Shows required variables (`backend_url`) and their validation rules
154160
- **Variable constraints** - Data types, descriptions, and any pattern requirements
@@ -164,31 +170,41 @@ The following sections describe what you need for the request:
164170
### Required parameters
165171

166172
**Query Parameter:**
173+
167174
- `preview_only=true` - Currently the only supported mode. Renders configuration for preview without creating a submission object.
168175

169176
### Configuration path (`conf_path`)
170177

171-
**Required.** The absolute path where the main NGINX configuration file should be placed.
178+
{{< call-out "important" >}}
172179

173-
**Examples:**
174-
- `/etc/nginx/nginx.conf` (standard installation)
175-
- `/opt/nginx/nginx.conf` (custom installation)
180+
This path determines where augment configurations are rendered:
176181

177-
**Important:** This path determines where augment configurations are rendered:
178182
- Base template → renders to the exact `conf_path`
179183
- Augment templates → render to `{base_dir}/conf.d/augments/{filename}.{hash}.conf`
180184

181185
Where `base_dir` is derived from `conf_path`:
186+
182187
- `conf_path: /etc/nginx/nginx.conf` → augments in `/etc/nginx/conf.d/augments/`
183188
- `conf_path: /opt/nginx/nginx.conf` → augments in `/opt/nginx/conf.d/augments/`
184189

190+
{{< /call-out >}}
191+
192+
**Required.** The absolute path where the main NGINX configuration file should be placed.
193+
194+
**Examples:**
195+
196+
- `/etc/nginx/nginx.conf` (standard installation)
197+
- `/opt/nginx/nginx.conf` (custom installation)
198+
185199
### Template properties
186200

187201
**Base Template:**
202+
188203
- `object_id` - Template unique identifier (use a template where `type` is `base`)
189204
- `values` - Key-value pairs for template variables
190205

191206
**Augment Templates:**
207+
192208
- `object_id` - Template unique identifier (use a template where `type` is `augment`)
193209
- `target_context` - NGINX context where the augment should be applied
194210
- `values` - Key-value pairs for template variables (optional if template has no variables)
@@ -199,13 +215,15 @@ Where `base_dir` is derived from `conf_path`:
199215
Augment templates must specify a `target_context` that determines where the augment will be placed in the base template.
200216

201217
**Validation:**
218+
202219
- The augment's `target_context` must be listed in the augment template's `allowed_in_contexts` (specified during import)
203220

204221
**Available Contexts:**
205222

206223
See the [Template Authoring Guide]({{< ref "author-templates.md#config-templates-contexts" >}}) for detailed information about context paths and how they map to NGINX configuration structure.
207224

208225
**Rendering Behavior:**
226+
209227
- If the base template has an `augment_includes` placeholder for the target context, the augment content is injected there
210228
- If the base template doesn't have a matching placeholder, the augment is ignored (no error)
211229
- If the base template has placeholders but no matching augments are provided, those placeholders render as empty strings
@@ -352,15 +370,18 @@ Parse errors indicate the rendered configuration has NGINX syntax issues, often
352370
When templates are successfully rendered, the system creates multiple files:
353371

354372
### Base template output
373+
355374
- **File:** Exact path specified in `conf_path`
356375
- **Content:** Rendered base template with augment content injected at `augment_includes` points
357376

358377
### Augment template outputs
378+
359379
- **Location:** `{base_dir}/conf.d/augments/`
360380
- **Filename:** `{template-name}.{content-hash}.conf`
361381
- **Content:** Individual augment template rendered output
362382

363383
**Example structure:**
384+
364385
```
365386
/etc/nginx/
366387
├── nginx.conf # Base template output
@@ -417,6 +438,7 @@ Template rendering follows predictable ordering rules at two levels:
417438
Directives render in the exact order they appear in the template file. This includes the placement of `{{ augment_includes "context_path" . }}` extension points.
418439

419440
**Example:**
441+
420442
```nginx
421443
http {
422444
# This renders first
@@ -435,6 +457,7 @@ http {
435457
When multiple augments target the same context, they render in the order specified in the submission request's augments array.
436458

437459
**Example submission:**
460+
438461
```json
439462
{
440463
"conf_path": "/etc/nginx/nginx.conf",
@@ -458,6 +481,7 @@ When multiple augments target the same context, they render in the order specifi
458481
```
459482

460483
**Rendered output:**
484+
461485
```text
462486
http {
463487
# First augment renders first

content/nginx-one/secure-your-fleet/set-up-security-alerts.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: "Set up security alerts"
33
weight: 500
44
toc: true
55
nd-content-type: how-to
6-
nd-product: NGINX One
6+
nd-product: ONE
77
---
88

99
With this page, you'll learn how to set up alerts in F5 Distributed Cloud. Once configured, you'll see the CVEs and insecure configurations associated with your NGINX fleet. These instructions are intended for those responsible for keeping their NGINX infrastructure and application traffic secure. It assumes you know how to:
@@ -139,14 +139,19 @@ When you set up an email alert for a problem, you'll see the alert in:
139139

140140
You may also get a follow-up email with the subject **Alert Resolved**.
141141

142-
> **Important:** Sometimes an **Alert Resolved** email is sent even though the issue is still active.
142+
{{< call-out "important" >}}
143+
144+
Sometimes an **Alert Resolved** email is sent even though the issue is still active.
143145
To check the current status, go to the NGINX One Console.
144146

145147
For CVEs, the trusted source is:
148+
146149
- **NGINX One Console > Manage > Instances > `Instance hostname`**
147150

148151
Open the instance dashboard to see the latest list of CVEs. Use the Console, not email, to confirm whether an issue is resolved.
149152

153+
{{< /call-out >}}
154+
150155
## Summary
151156

152157
In this tutorial, you learned how to:

content/nginx/deployment-guides/single-sign-on/active-directory-federation-services.md

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
11
---
2-
description: Enable OpenID Connect-based single sign-on (SSO) for applications proxied by NGINX Plus, using Microsoft AD FS as the identity provider (IdP).
3-
type:
4-
- how-to
52
title: Single Sign-On with Microsoft Active Directory FS
3+
description: Enable OpenID Connect-based single sign-on (SSO) for applications proxied by NGINX Plus, using Microsoft AD FS as the identity provider (IdP).
64
toc: true
75
weight: 300
8-
product: NGINX-PLUS
6+
nd-content-type: how-to
7+
nd-product: NPL
98
nd-docs: DOCS-1683
109
---
1110

1211
This guide explains how to enable single sign-on (SSO) for applications being proxied by F5 NGINX Plus. The solution uses OpenID Connect as the authentication mechanism, with [Microsoft Active Directory Federation Services](https://docs.microsoft.com/en-us/windows-server/identity/active-directory-federation-services) (AD FS) as the Identity Provider (IdP) and NGINX Plus as the Relying Party (RP), or OIDC client application that verifies user identity.
1312

1413
{{< call-out "note" >}} This guide applies to [NGINX Plus Release 35]({{< ref "nginx/releases.md#r35" >}}) and later. In earlier versions, NGINX Plus relied on an [njs-based solution](#legacy-njs-guide), which required NGINX JavaScript files, key-value stores, and advanced OpenID Connect logic. In the latest NGINX Plus version, the new [OpenID Connect module](https://nginx.org/en/docs/http/ngx_http_oidc_module.html) simplifies this process to just a few directives.{{< /call-out >}}
1514

16-
1715
## Prerequisites
1816

1917
- A Microsoft AD FS instance, either on-premises or in [Azure](https://learn.microsoft.com/en-us/windows-server/identity/ad-fs/deployment/how-to-connect-fed-azure-adfs), with administrator privileges.
@@ -22,7 +20,6 @@ This guide explains how to enable single sign-on (SSO) for applications being pr
2220

2321
- A domain name pointing to your NGINX Plus instance, for example, `demo.example.com`.
2422

25-
2623
## Configure the AD FS Server {#adfs-setup}
2724

2825
[Microsoft Active Directory Federation Services](https://docs.microsoft.com/en-us/windows-server/identity/active-directory-federation-services) (AD FS) serves as the Identity Provider.
@@ -80,15 +77,15 @@ Check the OpenID Connect endpoint URL. By default, AD FS publishes the `.well-kn
8077
```shell
8178
curl https://adfs-server-address/adfs/.well-known/openid-configuration | jq .
8279
```
83-
where:
80+
81+
Where:
8482

8583
- the `adfs-server-address` is your AD FS server address
8684

8785
- the `/adfs/.well-known/openid-configuration` is the default address for AD FS for document location
8886

8987
- the `jq` command (optional) is used to format the JSON output for easier reading and requires the [jq](https://jqlang.github.io/jq/) JSON processor to be installed.
9088

91-
9289
The configuration metadata is returned in the JSON format:
9390

9491
```json
@@ -109,23 +106,21 @@ Check the OpenID Connect endpoint URL. By default, AD FS publishes the `.well-kn
109106

110107
`https://adfs-server-address/adfs`.
111108

112-
113109
{{< call-out "note" >}} You will need the values of **Client ID**, **Client Secret**, and **Issuer** in the next steps. {{< /call-out >}}
114110

115-
116111
## Set up NGINX Plus {#nginx-plus-setup}
117112

118113
With AD FS configured, you can enable OIDC on NGINX Plus. NGINX Plus serves as the Rely Party (RP) application &mdash; a client service that verifies user identity.
119114

120-
121115
1. Ensure that you are using the latest version of NGINX Plus by running the `nginx -v` command in a terminal:
122116

123117
```shell
124118
nginx -v
125119
```
120+
126121
The output should match NGINX Plus Release 35 or later:
127122

128-
```none
123+
```text
129124
nginx version: nginx/1.29.0 (nginx-plus-r35)
130125
```
131126

@@ -142,7 +137,7 @@ With AD FS configured, you can enable OIDC on NGINX Plus. NGINX Plus serves as t
142137
# ...
143138
}
144139
```
145-
<span id="adfs-setup-oidc-provider"></span>
140+
146141
5. In the [`http {}`](https://nginx.org/en/docs/http/ngx_http_core_module.html#http) context, define the AD FS OIDC provider named `adfs` by specifying the [`oidc_provider {}`](https://nginx.org/en/docs/http/ngx_http_oidc_module.html#oidc_provider) context:
147142

148143
```nginx
@@ -177,7 +172,7 @@ With AD FS configured, you can enable OIDC on NGINX Plus. NGINX Plus serves as t
177172
178173
- If the **userinfo** directive is set to `on`, NGINX Plus will fetch `/userinfo` from the AD FS and append the claims from userinfo to the `$oidc_claims_` variables.
179174
180-
- **Important:** All interaction with the IdP is secured exclusively over SSL/TLS, so NGINX must trust the certificate presented by the IdP. By default, this trust is validated against your system's CA bundle (the default CA store for your Linux or FreeBSD distribution). If the IdP's certificate is not included in the system CA bundle, you can explicitly specify a trusted certificate or chain with the [`ssl_trusted_certificate`](https://nginx.org/en/docs/http/ngx_http_oidc_module.html#ssl_trusted_certificate) directive so that NGINX can validate and trust the IdP's certificate.
175+
- {{< call-out "important" >}} All interaction with the IdP is secured exclusively over SSL/TLS, so NGINX must trust the certificate presented by the IdP. By default, this trust is validated against your system's CA bundle (the default CA store for your Linux or FreeBSD distribution). If the IdP's certificate is not included in the system CA bundle, you can explicitly specify a trusted certificate or chain with the [`ssl_trusted_certificate`](https://nginx.org/en/docs/http/ngx_http_oidc_module.html#ssl_trusted_certificate) directive so that NGINX can validate and trust the IdP's certificate. {{< /call-out >}}
181176
182177
```nginx
183178
http {
@@ -288,7 +283,9 @@ With AD FS configured, you can enable OIDC on NGINX Plus. NGINX Plus serves as t
288283
}
289284
}
290285
```
286+
291287
12. Save the NGINX configuration file and reload the configuration:
288+
292289
```nginx
293290
nginx -s reload
294291
```
@@ -368,19 +365,16 @@ http {
368365

369366
4. Refresh `https://demo.example.com/` again. You should be redirected to AD FS for a fresh sign‑in, proving the session has been terminated.
370367

371-
372368
## Legacy njs-based AD FS Solution {#legacy-njs-guide}
373369

374370
If you are running NGINX Plus R33 and earlier or if you still need the njs-based solution, refer to the [Legacy njs-based Microsoft AD FS Guide]({{< ref "nginx/deployment-guides/single-sign-on/oidc-njs/active-directory-federation-services.md" >}}) for details. The solution uses the [`nginx-openid-connect`](https://github.com/nginxinc/nginx-openid-connect) GitHub repository and NGINX JavaScript files.
375371

376-
377372
## See Also
378373

379374
- [NGINX Plus Native OIDC Module Reference documentation](https://nginx.org/en/docs/http/ngx_http_oidc_module.html)
380375

381376
- [Release Notes for NGINX Plus R35]({{< ref "nginx/releases.md#r35" >}})
382377

383-
384378
## Revision History
385379

386380
- Version 2 (August 2025) – Added RP‑initiated logout (logout_uri, post_logout_uri, logout_token_hint) and userinfo support.

0 commit comments

Comments
 (0)