Skip to content

Commit 4fbb000

Browse files
5.4.0 (#92)
* Branch 5.4 - initial commit access and error log improvements * Branch 5.4 - initial commit access and error log improvements HTTP access log formats support * Branch 5.4 - initial commit access and error log improvements HTTP access log formats support README.md updated FEATURES.md updated Initial OIDC support * 5.4.0 OIDC support - dev * Branch 5.4 - 20250819 access and error log improvements HTTP access log formats support Initial OIDC support FEATURE.md and USAGEv5.3.md to be updated ACME support pending * 5.4.0 OIDC support fix * 5.4.0 OIDC support fix FEATURES.md updated * 5.4.0 OIDC support fix FEATURES.md updated Initial ACME support * 5.4.0 OIDC support fix FEATURES.md updated Initial ACME support * README updated * Fixes * v5.4 final OIDC support ACME support Bugfixes * USAGE-v5.4.md updated * FEATURES.md updated --------- Signed-off-by: 65397 <[email protected]>
1 parent 1d23b27 commit 4fbb000

Some content is hidden

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

62 files changed

+3685
-1912
lines changed

.gitignore

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ Thumbs.db
2020
=======
2121
/.idea/
2222
/src/__pycache__/
23-
/src/v5_1/__pycache__/
24-
/src/v5_2/__pycache__/
2523
/src/v5_3/__pycache__/
24+
/src/v5_4/__pycache__/
2625
/contrib/devportal/redocly/src/__pycache__/
2726
/venv/

FEATURES.md

Lines changed: 141 additions & 37 deletions
Large diffs are not rendered by default.

README.md

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

3131
- [NGINX Instance Manager 2.14+](https://docs.nginx.com/nginx-management-suite/nim/)
3232
- [NGINX One Console](https://docs.nginx.com/nginx-one/)
33-
- [NGINX Plus R30+](https://docs.nginx.com/nginx/)
33+
- [NGINX Plus R33+](https://docs.nginx.com/nginx/)
3434
- NGINX App Protect WAF [4](https://docs.nginx.com/nginx-app-protect-waf/v4/) and [5](https://docs.nginx.com/nginx-app-protect-waf/v5/)
3535

36-
**Note**: 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.3.md) for further details. [Postman collection](/contrib/postman) examples are provided for R33.
36+
**Note**: 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+.
3737

3838
## Architecture
3939

@@ -189,7 +189,7 @@ end
189189

190190
- [X] Output to NGINX Instance Manager 2.14+ imperative REST API (instance group)
191191
- [X] Output to NGINX One Console REST API (config sync group)
192-
192+
193193
## Supported features
194194

195195
See the [features list](/FEATURES.md)
@@ -198,8 +198,8 @@ See the [features list](/FEATURES.md)
198198

199199
Usage details and JSON schema are available here:
200200

201+
- [API v5.4](/USAGE-v5.4.md) - latest
201202
- [API v5.3](/USAGE-v5.3.md) - stable
202-
- [API v5.2](/USAGE-v5.2.md) - deprecated
203203

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

USAGE-v5.2.md renamed to USAGE-v5.4.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
# Usage for NGINX Declarative API v5.2
1+
# Usage for NGINX Declarative API v5.4
22

3-
Version 5.2 supports:
3+
Version 5.4 supports:
44

55
- [NGINX Instance Manager](https://docs.nginx.com/nginx-management-suite/nim/) 2.14+. Version 2.18+ is required for NGINX R33 and above
66
- [NGINX One Console](https://docs.nginx.com/nginx-one/)
7-
- [NGINX Plus](https://docs.nginx.com/nginx/) R31, R32, R33+
8-
- [NGINX App Protect WAF](https://docs.nginx.com/nginx-app-protect-waf/) 4 with precompiled [policy bundles](https://docs.nginx.com/nginx-app-protect-waf/v5/admin-guide/compiler/)
7+
- [NGINX Plus](https://docs.nginx.com/nginx/) R31+
8+
- [NGINX App Protect WAF](https://docs.nginx.com/nginx-app-protect-waf/) v4 or v5 with precompiled [policy bundles](https://docs.nginx.com/nginx-app-protect-waf/v5/admin-guide/compiler/)
99

1010
The JSON schema is self explanatory. See also the [sample Postman collection](/contrib/postman) for usage examples
1111

@@ -21,6 +21,7 @@ The JSON schema is self explanatory. See also the [sample Postman collection](/c
2121
- `.output.nms.password` the NGINX Instance Manager authentication password
2222
- `.output.nms.instancegroup` the NGINX Instance Manager instance group to publish the configuration to
2323
- `.output.nms.synctime` **optional**, used for GitOps autosync. When specified and the declaration includes HTTP(S) references to NGINX App Protect policies, TLS certificates/keys/chains, the HTTP(S) endpoints will be checked every `synctime` seconds and if external contents have changed, the updated configuration will automatically be published to NGINX Instance Manager
24+
- `.output.nms.synchronous` **optional**, when set to `True` (default) the NGINX Declarative API waits for NGINX Instance Manager successful reply after publishing the NGINX configuration. Setting this to `False` enqueues the request, supporting multiple JSON declarations to be submitted at the same time/from multiple clients. Currently supported for `PATCH` operations only.
2425
- `.output.nms.modules` an optional array of NGINX module names (ie. 'ngx_http_app_protect_module', 'ngx_http_js_module','ngx_stream_js_module')
2526
- `.output.nms.certificates` an optional array of TLS certificates/keys/chains to be published
2627
- `.output.nms.certificates[].type` the item type ('certificate', 'key', 'chain')
@@ -41,6 +42,7 @@ The JSON schema is self explanatory. See also the [sample Postman collection](/c
4142
- `.output.nginxone.token` the authentication token
4243
- `.output.nginxone.configsyncgroup` the NGINX One Console config sync group name
4344
- `.output.nginxone.synctime` **optional**, used for GitOps autosync. When specified and the declaration includes HTTP(S) references to NGINX App Protect policies, TLS certificates/keys/chains, the HTTP(S) endpoints will be checked every `synctime` seconds and if external contents have changed, the updated configuration will automatically be published to NGINX One Cloud Console
45+
- `.output.nms.synchronous` **optional**, when set to `True` (default) the NGINX Declarative API waits for NGINX One Console successful reply after publishing the NGINX configuration. Setting this to `False` enqueues the request, supporting multiple JSON declarations to be submitted at the same time/from multiple clients. Currently supported for `PATCH` operations only.
4446
- `.output.nginxone.modules` an optional array of NGINX module names (ie. 'ngx_http_app_protect_module', 'ngx_http_js_module','ngx_stream_js_module')
4547
- `.output.nginxone.certificates` an optional array of TLS certificates/keys/chains to be published
4648
- `.output.nginxone.certificates[].type` the item type ('certificate', 'key', 'chain')
@@ -53,12 +55,13 @@ The JSON schema is self explanatory. See also the [sample Postman collection](/c
5355

5456
### API endpoints
5557

56-
- `POST /v5.2/config/` - Publish a new declaration
57-
- `PATCH /v5.2/config/{config_uid}` - Update an existing declaration
58+
- `POST /v5.4/config/` - Publish a new declaration
59+
- `PATCH /v5.4/config/{config_uid}` - Update an existing declaration
5860
- Per-HTTP server CRUD
5961
- Per-HTTP upstream CRUD
6062
- Per-Stream server CRUD
6163
- Per-Stream upstream CRUD
6264
- Per-NGINX App Protect WAF policy CRUD
63-
- `GET /v5.2/config/{config_uid}` - Retrieve an existing declaration
64-
- `DELETE /v5.2/config/{config_uid}` - Delete an existing declaration
65+
- `GET /v5.4/config/{configUid}/submission/{submissionUid}` - Retrieve a submission (asynchronous `PATCH` request) status
66+
- `GET /v5.4/config/{config_uid}` - Retrieve an existing declaration
67+
- `DELETE /v5.4/config/{config_uid}` - Delete an existing declaration

contrib/docker-compose/docker-compose.yaml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,3 @@ services:
4545

4646
networks:
4747
dapi-network:
48-
49-
secrets:
50-
nginx-crt:
51-
file: ${NGINX_CERT}
52-
nginx-key:
53-
file: ${NGINX_KEY}

contrib/docker-compose/nginx-dapi.sh

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,6 @@ COMPOSE_HTTP_TIMEOUT=240 docker-compose -p $PROJECT_NAME -f $DOCKER_COMPOSE_YAML
7070

7171
DOCKER_COMPOSE_YAML="docker-compose.yaml"
7272
PROJECT_NAME="nginx-dapi"
73-
export NGINX_CERT="unused"
74-
export NGINX_KEY="unused"
75-
export PROFILE="basic"
76-
export NAP_COMPILER_TAG="unused"
7773

7874
while getopts 'hc:' OPTION
7975
do

0 commit comments

Comments
 (0)