Skip to content

Commit 1b40eb3

Browse files
Added API v3, code cleanup
1 parent 5ff487f commit 1b40eb3

File tree

16 files changed

+3434
-37
lines changed

16 files changed

+3434
-37
lines changed

README.md

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# NGINX-Declarative-API
22

3-
This tool provides a set of declarative REST API for NGINX Management Suite.
3+
This tool provides a set of declarative REST API for NGINX Instance Manager.
44

55
It can be used to manage NGINX Plus configuration lifecycle and to create NGINX Plus configurations using JSON service definitions.
66

7-
GitOps integration is supported when used with NGINX Management Suite / NGINX Instance Manager: source of truth is checked for updates (NGINX App Protect policies, TLS certificates, keys and chains/bundles) and NGINX configurations are automatically kept in sync.
7+
GitOps integration is supported when used with NGINX Instance Manager: source of truth is checked for updates (NGINX App Protect policies, TLS certificates, keys and chains/bundles) and NGINX configurations are automatically kept in sync.
88

99
Use cases include:
1010

@@ -17,6 +17,11 @@ Use cases include:
1717
- `http` snippets, upstreams, servers, locations
1818
- `stream` snippets, upstreams, servers
1919

20+
## Requirements
21+
22+
- NGINX Instance Manager 2.10+
23+
- NGINX Plus R30 or newer
24+
2025
## Architecture
2126

2227
```mermaid
@@ -75,25 +80,26 @@ Two branches are currently available:
7580

7681
## Supported NGINX Plus features
7782

78-
| Feature | API v1 | API v2 | Notes |
79-
|----------------------------| ------ |------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------|
80-
| Upstreams | X | Per-upstream CRUD | Snippets supported: static and from source of truth |
81-
| HTTP servers | X | Per-server CRUD | Snippets supported (`http`, `servers`, `locations`, `upstreams`: static and from source of truth |
82-
| TCP/UDP servers | X | Per-server CRUD | Snippets supported (`streams`, `servers`, `upstreams`: static and from source of truth |
83-
| TLS | X | Per-TLS configuration CRUD | Certificates and keys can be dynamically fetched from source of truth |
84-
| mTLS | X | Per-mTLS configuration CRUD | Certificates and keys can be dynamically fetched from source of truth |
85-
| Rate limiting | X | X | |
86-
| Active healthchecks | X | X | |
87-
| Cookie-based stickiness | X | X | |
88-
| Maps | X | X | |
89-
| NGINX Plus REST API access | X | X | |
90-
| NGINX App Protect WAF | policies & log formats at `server` and `location` level | Per-policy CRUD at `server` and `location` level with dataplane-based bundle compilation | Security policies can be dynamically fetched from source of truth |
83+
| Feature | API v1 | API v2 | API v3 | Notes |
84+
|----------------------------| - |------|--------------------------|-----------------------------------------------------------------------------------------------|
85+
| Upstreams | X | CRUD | CRUD | Snippets supported: static and from source of truth |
86+
| HTTP servers | X | CRUD | CRUD | Snippets supported (`http`, `servers`, `locations`, `upstreams`: static and from source of truth |
87+
| TCP/UDP servers | X | CRUD | CRUD | Snippets supported (`streams`, `servers`, `upstreams`: static and from source of truth |
88+
| TLS | X | CRUD | CRUD | Certificates and keys can be dynamically fetched from source of truth |
89+
| mTLS | X | CRUD | CRUD | Certificates and keys can be dynamically fetched from source of truth |
90+
| Rate limiting | X | X | X | |
91+
| Active healthchecks | X | X | X | |
92+
| Cookie-based stickiness | X | X | X | |
93+
| Maps | X | X | X | |
94+
| NGINX Plus REST API access | X | X | X | |
95+
| NGINX App Protect WAF | policies & log formats at `server` and `location` level | Per-policy CRUD at `server` and `location` level with dataplane-based bundle compilation | Per-policy CRUD at `server` and `location` level with dataplane-based bundle compilation | Security policies can be dynamically fetched from source of truth |
9196

9297
## How to use
9398

9499
Usage details and JSON schema are available here:
95100
- [API v1](/USAGE-v1.md) - deprecated
96-
- [API v2](/USAGE-v2.md)
101+
- [API v2](/USAGE-v2.md) - stable
102+
- [API v3](/USAGE-v3.md) - development
97103

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

USAGE-v2.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
# Usage for API v2
22

33
Version 2 API requires:
4-
- NGINX Instance Manager 2.8.0+
4+
- NGINX Instance Manager 2.10.0+
5+
- NGINX R30+
56

67
If NGINX App Protect declarations are used:
78
- NGINX App Protect Policy Compiler 4.2.0+

0 commit comments

Comments
 (0)