diff --git a/CONFIG.md b/CONFIG.md index 6a221e2..991eb43 100644 --- a/CONFIG.md +++ b/CONFIG.md @@ -479,7 +479,38 @@ schemaValidator: --- -#### 5. Sign Validator Plugin +#### 5. Schema2Validator Plugin + +**Purpose**: Validate requests against OpenAPI 3.x specifications with action-based matching. + +```yaml +schemaValidator: + id: schemav2validator + config: + type: url + location: https://raw.githubusercontent.com/beckn/protocol-specifications-new/refs/heads/draft/api-specs/beckn-protocol-api.yaml + cacheTTL: "3600" +``` + +**Or for local files:** + +```yaml +schemaValidator: + id: schemav2validator + config: + type: file + location: ./validation-scripts/l2-config/mobility_1.1.0_openapi_3.1.yaml + cacheTTL: "3600" +``` + +**Parameters**: +- `type`: Source type - `"url"` for remote specs, `"file"` for local files +- `location`: URL or file path to OpenAPI 3.1 specification +- `cacheTTL`: Cache TTL in seconds before reloading spec (default: `"3600"`) + +--- + +#### 6. Sign Validator Plugin **Purpose**: Validate Ed25519 digital signatures on incoming requests. @@ -492,7 +523,7 @@ signValidator: --- -#### 6. Router Plugin +#### 7. Router Plugin **Purpose**: Determine routing destination based on rules. @@ -517,7 +548,7 @@ router: --- -#### 7. Signer Plugin +#### 8. Signer Plugin **Purpose**: Sign outgoing requests with Ed25519 signature. @@ -530,7 +561,7 @@ signer: --- -#### 8. Publisher Plugin +#### 9. Publisher Plugin **Purpose**: Publish messages to RabbitMQ or Pub/Sub for asynchronous processing. @@ -548,7 +579,7 @@ publisher: --- -#### 9. Middleware Plugin +#### 10. Middleware Plugin **Purpose**: Request preprocessing like UUID generation and header manipulation. diff --git a/README.md b/README.md index a24e40f..b524d58 100644 --- a/README.md +++ b/README.md @@ -121,7 +121,8 @@ The **Beckn Protocol** is an open protocol that enables location-aware, local co - **Router**: YAML-based routing rules engine for request forwarding - **Signer**: Ed25519 digital signature creation for outgoing requests - **SignValidator**: Ed25519 signature validation for incoming requests -- **SchemaValidator**: JSON schema validation +- **SchemaValidator**: JSON schema validation +- **Schemav2Validator**: OpenAPI 3.x schema validation with action-based matching - **KeyManager**: HashiCorp Vault integration for production key management - **SimpleKeyManager**: Embedded key management for local development (no external dependencies) - **Publisher**: RabbitMQ message publishing for asynchronous processing @@ -305,9 +306,11 @@ modules: config: routingConfig: ./config/routing.yaml schemaValidator: - id: schemavalidator + id: schemavalidator # or schemav2validator config: - schemaDir: ./schemas + schemaDir: ./schemas # for schemavalidator + # type: url # for schemav2validator + # location: https://example.com/spec.yaml steps: - validateSign - addRoute diff --git a/SETUP.md b/SETUP.md index 9ca0447..fb563a4 100644 --- a/SETUP.md +++ b/SETUP.md @@ -830,6 +830,28 @@ schemaValidator: schemaURL: https://schemas.beckn.org ``` +#### Schema2Validator Plugin + +**Remote URL Configuration:** +```yaml +schemaValidator: + id: schemav2validator + config: + type: url + location: https://raw.githubusercontent.com/beckn/protocol-specifications-new/refs/heads/draft/api-specs/beckn-protocol-api.yaml + cacheTTL: "3600" +``` + +**Local File Configuration:** +```yaml +schemaValidator: + id: schemav2validator + config: + type: file + location: ./schemas/beckn-protocol-api.yaml + cacheTTL: "3600" +``` + #### Router Plugin ```yaml router: