Skip to content

Commit 95e6e90

Browse files
NGINX Declarative API v4.1.0 (#36)
* 20230125-01 API v4.1 development * 20230125-02 API v4.1 development * NGINX Declarative API v4.1 * USAGE updated
1 parent 9c6def3 commit 95e6e90

Some content is hidden

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

47 files changed

+5419
-42
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ Thumbs.db
2121
/.idea/
2222
/src/__pycache__/
2323
/src/v3_1/__pycache__/
24-
/contrib/devportal/src/__pycache__/
24+
/contrib/devportal/redocly/src/__pycache__/
2525
/venv/

FEATURES.md

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,40 @@
22

33
### NGINX `http` and `stream` servers
44

5-
| Feature | API v3.1 | API v4.0 | Notes |
6-
|----------------------------|----------|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
7-
| Upstreams | CRUD | CRUD | <li>Snippets supported: static and from source of truth</li> |
8-
| HTTP servers | CRUD | CRUD | <li>Snippets supported (`http`, `servers`, `locations`): static and from source of truth</li> |
9-
| TCP/UDP servers | CRUD | CRUD | <li>Snippets supported (`streams`, `servers`): static and from source of truth</li> |
10-
| TLS | CRUD | CRUD | <li>Certificates and keys can be dynamically fetched from source of truth</li> |
11-
| mTLS | CRUD | CRUD | <li>Certificates and keys can be dynamically fetched from source of truth</li> |
12-
| JWT client authentication | | X | <li>JWT key can be hardwired or fetched from source of truth</li> |
13-
| Rate limiting | X | X | |
14-
| Active healthchecks | X | X | |
15-
| Cookie-based stickiness | X | X | |
16-
| Maps | X | X | |
17-
| NGINX Plus REST API access | X | X | |
18-
| NGINX App Protect WAF | X | X | <li>Per-policy CRUD at `server` and `location` level</li><li>Support for dataplane-based bundle compilation</li><li>Security policies can be fetched from source of truth</li> |
19-
5+
| Feature | API v3.1 | API v4.0 | API v4.1 | Notes |
6+
|----------------------------|----------|----------|-------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
7+
| Upstreams | CRUD | CRUD | CRUD | <li>Snippets supported: static and from source of truth</li> |
8+
| HTTP servers | CRUD | CRUD | CRUD | <li>Snippets supported (`http`, `servers`, `locations`): static and from source of truth</li> |
9+
| TCP/UDP servers | CRUD | CRUD | CRUD | <li>Snippets supported (`streams`, `servers`): static and from source of truth</li> |
10+
| TLS | CRUD | CRUD | CRUD | <li>Certificates and keys can be dynamically fetched from source of truth</li> |
11+
| mTLS | CRUD | CRUD | CRUD | <li>Certificates and keys can be dynamically fetched from source of truth</li> |
12+
| JWT client authentication | | X | X | <li>JWT key can be hardwired or fetched from source of truth</li> |
13+
| Upstream authentication | | | X | <li>Bearer token</li><li>HTTP header</li> |
14+
| Rate limiting | X | X | X | |
15+
| Active healthchecks | X | X | X | |
16+
| Cookie-based stickiness | X | X | X | |
17+
| Maps | X | X | X | |
18+
| NGINX Plus REST API access | X | X | X | |
19+
| NGINX App Protect WAF | X | X | X | <li>Per-policy CRUD at `server` and `location` level</li><li>Support for dataplane-based bundle compilation</li><li>Security policies can be fetched from source of truth</li> |
2020

2121
### API Gateway
2222

23-
| Feature | API v3.1 | API v4.0 | Notes |
24-
|----------------------------------------------|----------|----------|----------------------------------------------------------|
25-
| Configuration generation from OpenAPI schema | X | X | |
26-
| HTTP methods enforcement | X | X | |
27-
| per-URI rate limiting | X | X | |
28-
| per-URI JWT authentication | X | X | JWT key can be hardwired or fetched from source of truth |
29-
23+
| Feature | API v3.1 | API v4.0 | API v4.1 | Notes |
24+
|----------------------------------------------|----------|----------|----------|---------------------------------------------------------------------------|
25+
| Configuration generation from OpenAPI schema | X | X | X | |
26+
| HTTP methods enforcement | X | X | X | |
27+
| per-URI rate limiting | X | X | X | |
28+
| per-URI JWT authentication | X | X | X | <li>Static JWT key</li><li>JWT fetched from URL</li><li>Bearer token</li> |
3029

3130
### API Gateway - Developer Portal
3231

33-
| Feature | API v3.1 | API v4.0 | Notes |
34-
|-------------------------------------------------|----------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
35-
| Developer Portal generation from OpenAPI schema | X | X | <li>Based on Redocly</li> |
32+
| Feature | API v3.1 | API v4.0 | API v4.1 | Notes |
33+
|-------------------------------------------------|----------|----------|----------|---------------------------|
34+
| Developer Portal generation from OpenAPI schema | X | X | X | <li>Based on Redocly</li> |
35+
36+
### Source of truth
37+
38+
| Feature | API v3.1 | API v4.0 | API v4.1 | Notes |
39+
|--------------------------------------|----------|----------|----------|-------|
40+
| HTTP header-based authentication | | | X | |
41+
| Bearer token authentication | | | X | |

README.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -132,15 +132,16 @@ end
132132
- [X] POST to Generic REST API endpoint
133133
- [X] Output to NGINX Instance Manager 2.14+ imperative REST API
134134

135-
## Supported NGINX Plus features
135+
## Supported features
136136

137137
See the [features list](/FEATURES.md)
138138

139139
## How to use
140140

141141
Usage details and JSON schema are available here:
142142

143-
- [API v4.0](/USAGE-v4.0.md) - latest
143+
- [API v4.1](/USAGE-v4.1.md) - latest
144+
- [API v4.0](/USAGE-v4.0.md)
144145
- [API v3.1](/USAGE-v3.1.md)
145146

146147
A sample Postman collection and usage instructions can be found [here](/contrib/postman)
@@ -159,14 +160,10 @@ Docker images can be built and run using:
159160
docker build --no-cache -t nginx-declarative-api -f ./Dockerfile .
160161
docker run --name nginx-declarative-api -d -p 5000:5000 nginx-declarative-api
161162

162-
cd contrib/devportal
163+
cd contrib/redocly/devportal
163164
docker build --no-cache -t nginx-declarative-api-devportal .
164165
docker run --name devportal -d -p 5001:5000 nginx-declarative-api-devportal
165166

166-
Pre-built docker images are available on Docker Hub at
167-
- https://hub.docker.com/repository/docker/fiorucci/nginx-declarative-api/general
168-
- https://hub.docker.com/repository/docker/fiorucci/nginx-declarative-api-devportal/general
169-
170167
Configuration can be customized mounting `config.toml` as a volume `nginx-declarative-api` docker image as a volume to customize
171168

172169
## REST API documentation

0 commit comments

Comments
 (0)