Skip to content

Commit 3ac07b6

Browse files
V5.6 (#138)
* v5.6 initial commit * v5.6 initial commit * v5.6 updates * v5.6 initial commit * Postman collection updated, USAGE-v5.6 updated, bugfixes * Postman collection updated, USAGE-v5.5/5.6 updated * Moved .declaration.http.certificates to .declaration.certificates * Added WAF example policy * Added WAF example policy * v5.6 updates * Added control plane config file Revamped configuration from toml to yaml * Config files updates
1 parent 8a7bd16 commit 3ac07b6

73 files changed

Lines changed: 2117 additions & 7930 deletions

Some content is hidden

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

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ Thumbs.db
2121
/.idea/
2222
/venv/
2323
/src/__pycache__/
24-
/src/v5_4/__pycache__/
2524
/src/v5_5/__pycache__/
25+
/src/v5_6/__pycache__/
2626
/contrib/devportal/redocly/src/__pycache__/
2727

2828
# Test coverage artifacts #

FEATURES.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44

55
NGINX Declarative API has been tested with the following NGINX control plane releases:
66

7-
| Control plane | API v5.4 | API v5.5 | Notes |
7+
| Control plane | API v5.5 | API v5.6 | Notes |
88
|---------------------------|----------------------|----------------------|--------|
99
| NGINX Instance Manager | 2.18+ | 2.20+ | |
1010
| NGINX One Console | General availability | General availability | |
1111

1212
### NGINX `http` and `stream` servers
1313

14-
| Feature | API v5.4 | API v5.5 | Notes |
14+
| Feature | API v5.5 | API v5.6 | Notes |
1515
|-----------------------------|----------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
1616
| Upstreams | X | X | <li>Snippets supported: static and from source of truth</li> |
1717
| HTTP servers | X | X | <li>Snippets supported (`http`, `servers`, `locations`): static and from source of truth</li> |
@@ -43,7 +43,7 @@ Locations `.declaration.http.servers[].locations[].uri` match modifiers in `.dec
4343

4444
### NGINX API Gateway use case
4545

46-
| Feature | API v5.4 | API v5.5 | Notes |
46+
| Feature | API v5.5 | API v5.6 | Notes |
4747
|--------------------------------------------------------------|-------------------------------------------------------------------------------|-------------------------------------------------------------------------------|-----------------------------------------------|
4848
| Configuration generation from OpenAPI schema | X | X | OpenAPI 2.0, 3.0, 3.0.1, YAML and JSON format |
4949
| HTTP methods enforcement | X | X | |
@@ -92,21 +92,21 @@ See the [Postman collection](/contrib/) for usage examples
9292

9393
### NGINX API Gateway use case - Developer Portal
9494

95-
| Type | API v5.4 | API v5.5 | Notes |
95+
| Type | API v5.5 | API v5.6 | Notes |
9696
|-----------------|----------|----------|------------------------------------------|
9797
| Redocly | X | X | Developer portal published by NGINX Plus |
9898
| Backstage.io | X | X | Backstage YAML manifest generated |
9999

100100
### NGINX API Gateway use case - Visibility
101101

102-
| Type | API v5.4 | API v5.5 | Notes |
102+
| Type | API v5.5 | API v5.6 | Notes |
103103
|---------------|----------|----------|-----------------------------------------------------------------------------------------------|
104104
| Moesif | X | X | Integration with Moesif - see https://www.moesif.com/docs/server-integration/nginx-openresty/ |
105105

106106

107107
### TLS
108108

109-
| Type | Description | API v5.4 | API v5.5 | Notes |
109+
| Type | Description | API v5.5 | API v5.6 | Notes |
110110
|-------|-------------------------|----------|----------|-------|
111111
| ACME | ACME Protocol support | X | X | |
112112

@@ -130,7 +130,7 @@ For full details for all fields see https://nginx.org/en/docs/http/ngx_http_acme
130130

131131
### Client authentication
132132

133-
| Type | Description | API v5.4 | API v5.5 | Notes |
133+
| Type | Description | API v5.5 | API v5.6 | Notes |
134134
|------|----------------------|----------|----------|-------------------------------------|
135135
| jwt | JSON Web Token (JWT) | X | X | |
136136
| mtls | Mutual TLS | X | X | <li>Supported for HTTP servers</li> |
@@ -208,7 +208,7 @@ For additional details see https://nginx.org/en/docs/http/ngx_http_oidc_module.h
208208

209209
### Client authorization
210210

211-
| Type | Description | API v5.4 | API v5.5 | Notes |
211+
| Type | Description | API v5.5 | API v5.6 | Notes |
212212
|------|------------------------|----------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
213213
| jwt | JSON Web Token (JWT) | X | X | Based on JWT claims. Supported under <li>.declaration.http.servers[]</li><li>.declaration.http.servers[].location[]</li><li>.declaration.http.servers[].location[].apigateway</li> |
214214

@@ -238,7 +238,7 @@ Client-side authorization profiles to be defined under `.declaration.http.author
238238

239239
### Upstream and Source of truth authentication
240240

241-
| Type | Description | API v5.4 | API v5.5 | Notes |
241+
| Type | Description | API v5.5 | API v5.6 | Notes |
242242
|--------------|------------------------------------------------|----------|----------|----------------------------------------------------------------------------------------|
243243
| Bearer token | Authentication token as Authorization Bearer | X | X | `Bearer` Authorization header is injected in requests to upstreams and source of truth |
244244
| Basic Auth | Authentication token as Authorization Basic | X | X | `Basic` Authorization header is injected in requests to upstreams and source of truth |
@@ -306,7 +306,7 @@ Server-side authentication profiles to be defined under `.declaration.http.authe
306306

307307
### HTTP Headers manipulation
308308

309-
| Type | API v5.4 | API v5.5 | Notes |
309+
| Type | API v5.5 | API v5.6 | Notes |
310310
|-------------------------------|----------|----------|------------------------------------------------------------------------------------------------------------------------------|
311311
| Request (client to server) | X | X | <li>`set` - new header injection</li><li>`delete` - client header removal</li> |
312312
| Response (server to client) | X | X | <li>`add` - new header injection</li><li>`delete` - server header removal</li><li>`replace` - server header replacement</li> |
@@ -355,7 +355,7 @@ To be defined under `.declaration.http.servers[].headers` and/or `.declaration.h
355355

356356
### NGINX Javascript
357357

358-
| Hook type | API v5.4 | API v5.5 | Notes |
358+
| Hook type | API v5.5 | API v5.6 | Notes |
359359
|---------------------|----------|----------|--------------------------------------------------------------------------------------------------------------------------------|
360360
| js_body_filter | X | X | Available in <li>`declaration.http.servers[].location[]`</li> |
361361
| js_content | X | X | Available in <li>`declaration.http.servers[].location[]`</li> |
@@ -509,7 +509,7 @@ Example hooks:
509509

510510
### DNS resolvers
511511

512-
| | API v5.4 | API v5.5 | Notes |
512+
| | API v5.5 | API v5.6 | Notes |
513513
|-------------------------|----------|----------|------------------------------------------------------------------------------------------------------------------------------------|
514514
| DNS resolver profiles | X | X | Available in <li>`declaration.http.servers[]`</li><li>`declaration.http.upstreams[]`</li><li>`declaration.layer4.upstreams[]`</li> |
515515

@@ -532,13 +532,13 @@ DNS resolver profiles to be defined under `.declaration.http.resolvers[]`
532532

533533
#### HTTP Access and error logging
534534

535-
| | API v5.4 | API v5.5 | Notes |
535+
| | API v5.5 | API v5.6 | Notes |
536536
|---------|----------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
537537
| Logging | X | X | Available in <li>`.declaration.http.servers[].log`</li><li>`.declaration.http.servers[].locations[].log`</li><br>`condition` enables conditional logging. Logging will be disabled if `condition` evaluates to "0" or an empty string |
538538

539539
### Access logging formats
540540

541-
| | API v5.4 | API v5.5 | Notes |
541+
| | API v5.5 | API v5.6 | Notes |
542542
|-----------------|----------|----------|-------|
543543
| Logging formats | X | X | |
544544

README.md

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,12 @@ A **blog article** to automate NGINX API Gateway management from OpenAPI schemas
4545

4646
## 🚀 Supported releases
4747

48-
- [F5 NGINX Instance Manager 2.14+](https://docs.nginx.com/nginx-instance-manager/)
48+
- [F5 NGINX Instance Manager 2.20+](https://docs.nginx.com/nginx-instance-manager/)
4949
- [F5 NGINX One Console](https://docs.nginx.com/nginx-one/)
5050
- [F5 NGINX Plus R33+](https://docs.nginx.com/nginx/)
5151
- [F5 WAF for NGINX](https://docs.nginx.com/waf/)
5252

53-
**Note**: F5 NGINX Plus R33 and above [require a valid license](https://docs.nginx.com/solutions/about-subscription-licenses/) and the `.output.license` section in the declarative JSON is required. See the [usage notes](/USAGE-v5.4.md) for further details. [Postman collection](/contrib/postman) examples are provided for NGINX Plus R33+.
53+
**Note**: F5 NGINX Plus R33 and above [require a valid license](https://docs.nginx.com/solutions/about-subscription-licenses/) and the `.output.license` section in the declarative JSON is required.
5454

5555
## 🛠️ Architecture
5656

@@ -198,15 +198,6 @@ NGINX Declarative API ->> CI/CD Pipeline: Response
198198
end
199199
```
200200

201-
## 🧩 Input formats
202-
203-
- [X] Declarative JSON
204-
205-
## 🧾 Output formats
206-
207-
- [X] Output to F5 NGINX Instance Manager 2.14+ imperative REST API (instance group)
208-
- [X] Output to F5 NGINX One Console REST API (config sync group)
209-
210201
## 🌟 Supported features
211202

212203
See the [features list](/FEATURES.md)
@@ -215,8 +206,8 @@ See the [features list](/FEATURES.md)
215206

216207
Usage details and JSON schema are available here:
217208

218-
- [API v5.5](/USAGE-v5.5.md) - latest
219-
- [API v5.4](/USAGE-v5.4.md) - stable
209+
- [API v5.6](/USAGE-v5.6.md) - latest
210+
- [API v5.5](/USAGE-v5.5.md) - stable
220211

221212
A sample Postman collection and usage instructions can be found [here](/contrib/postman)
222213

USAGE-v5.5.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@ The JSON schema is self explanatory. See also the [sample Postman collection](/c
5858

5959
### API endpoints
6060

61-
- `POST /v5.5/config/` - Publish a new declaration
61+
- `GET /v5.5/schema` - Get Declarative API JSON schema
62+
- `POST /v5.5/config` - Publish a new declaration
6263
- `PATCH /v5.5/config/{config_uid}` - Update an existing declaration
6364
- Per-HTTP server CRUD
6465
- Per-HTTP upstream CRUD

0 commit comments

Comments
 (0)