Architecture
The Analysis API is built with Node.js and TypeScript, using Express.js for the REST API layer. It integrates multiple CSP solvers (MiniZinc and Choco) to perform exhaustive configuration space analysis.Core Features
Constraint Satisfaction Programming
Multiple Solvers
Compatible with MiniZinc and Choco solvers for flexible constraint resolution
Exhaustive Analysis
Complete enumeration of configuration spaces to explore all valid combinations
Optimization
Search for optimal configurations according to custom criteria (minimize/maximize cost)
Smart Filtering
Apply constraints to find configurations meeting specific requirements
Analysis Capabilities
- Specification Validation: Verify iPricing YAML file coherence and detect impossible configurations
- Pricing Summaries: Generate comprehensive statistics and metrics from pricing models
- Configuration Spaces: Calculate all possible valid subscription combinations
- Cost Analysis: Price calculation for specific configurations with add-ons
API Endpoints
The Analysis API exposes the following main endpoints:| Endpoint | Method | Type | Description |
|---|---|---|---|
/api/v1/pricing/summary | POST | Sync | Get statistical summary of pricing configuration |
/api/v1/pricing/analysis | POST | Async | Create analysis job (validate, optimize, enumerate) |
/api/v1/pricing/analysis/{jobId} | GET | Async | Get job status and results |
/health | GET | Sync | Health check endpoint |
Operation Types
The Analysis API supports four types of analysis operations:validate
validate
Verifies the mathematical and logical coherence of a pricing specification.Checks performed:
- Price consistency between plans
- Feature coherence between plans
- Add-on dependency validation
- Detection of impossible configurations
optimal
optimal
Finds the best configurations according to specific criteria.Optimization criteria:
- Minimize/maximize total cost
- Maximize obtained features
- Optimize price-quality ratio
- Apply custom filters (price range, features, usage limits)
subscriptions
subscriptions
Enumerates all possible and valid configurations in the pricing model.Information provided:
- Complete list of valid configurations
- Cost of each configuration
- Included features per subscription
- Applicable add-ons
filter
filter
Searches for configurations that meet specific criteria.Available filters:
maxPrice: Maximum price constraintminPrice: Minimum price constraintmaxSubscriptionSize: Limit number of items (plan + add-ons)features: Required features listusageLimits: Usage limit requirements
OpenAPI Specification
The complete OpenAPI 3.0 specification is available at:- Swagger UI:
http://localhost:3000/docs - ReDoc:
http://localhost:3000/redoc - JSON Spec:
http://localhost:3000/api-docs/json
All endpoints accept pricing configurations as YAML files uploaded via
multipart/form-data.Authentication
Currently, the Analysis API does not require authentication. Future versions will include API key authentication.Rate Limiting
No rate limiting is currently enforced. Production deployments should implement appropriate rate limiting based on solver resource constraints.Base URL
Error Responses
All endpoints follow a consistent error response format:400- Bad Request (invalid input, missing file, malformed YAML)404- Not Found (job ID doesn’t exist)422- Unprocessable Entity (valid YAML but invalid pricing schema)500- Internal Server Error (solver failure, system error)
Next Steps
Pricing Summary
Learn how to get statistical summaries of pricing models
Validation
Validate pricing configurations for coherence
Optimization
Find optimal configurations with custom criteria
Subscriptions
Enumerate all valid subscription configurations