apiris 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- apiris-1.0.0/LICENSE +62 -0
- apiris-1.0.0/PKG-INFO +607 -0
- apiris-1.0.0/README.md +589 -0
- apiris-1.0.0/apiris/__init__.py +5 -0
- apiris-1.0.0/apiris/ai/__init__.py +1 -0
- apiris-1.0.0/apiris/ai/anomaly_model.py +215 -0
- apiris-1.0.0/apiris/ai/loader.py +15 -0
- apiris-1.0.0/apiris/ai/predictive_model.py +23 -0
- apiris-1.0.0/apiris/ai/tradeoff_model.py +25 -0
- apiris-1.0.0/apiris/cache.py +13 -0
- apiris-1.0.0/apiris/cli.py +499 -0
- apiris-1.0.0/apiris/client.py +237 -0
- apiris-1.0.0/apiris/config.py +76 -0
- apiris-1.0.0/apiris/decision_engine.py +596 -0
- apiris-1.0.0/apiris/evaluator.py +281 -0
- apiris-1.0.0/apiris/explain/explainer.py +133 -0
- apiris-1.0.0/apiris/intelligence/__init__.py +24 -0
- apiris-1.0.0/apiris/intelligence/cve_advisory.py +217 -0
- apiris-1.0.0/apiris/interceptor.py +135 -0
- apiris-1.0.0/apiris/log_utils.py +37 -0
- apiris-1.0.0/apiris/logging.py +37 -0
- apiris-1.0.0/apiris/policy/__init__.py +7 -0
- apiris-1.0.0/apiris/policy/policy_loader.py +58 -0
- apiris-1.0.0/apiris/policy/policy_manager.py +49 -0
- apiris-1.0.0/apiris/policy/policy_validator.py +36 -0
- apiris-1.0.0/apiris/storage/__init__.py +5 -0
- apiris-1.0.0/apiris/storage/sqlite_store.py +333 -0
- apiris-1.0.0/apiris.egg-info/PKG-INFO +607 -0
- apiris-1.0.0/apiris.egg-info/SOURCES.txt +35 -0
- apiris-1.0.0/apiris.egg-info/dependency_links.txt +1 -0
- apiris-1.0.0/apiris.egg-info/entry_points.txt +2 -0
- apiris-1.0.0/apiris.egg-info/requires.txt +10 -0
- apiris-1.0.0/apiris.egg-info/top_level.txt +1 -0
- apiris-1.0.0/pyproject.toml +31 -0
- apiris-1.0.0/setup.cfg +4 -0
- apiris-1.0.0/tests/test_phase2.py +255 -0
- apiris-1.0.0/tests/test_sdk.py +159 -0
apiris-1.0.0/LICENSE
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
6
|
+
|
|
7
|
+
1. Definitions.
|
|
8
|
+
|
|
9
|
+
"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
|
|
10
|
+
|
|
11
|
+
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
|
|
12
|
+
|
|
13
|
+
"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity.
|
|
14
|
+
|
|
15
|
+
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
|
|
16
|
+
|
|
17
|
+
"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
|
|
18
|
+
|
|
19
|
+
"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
|
|
20
|
+
|
|
21
|
+
"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License.
|
|
22
|
+
|
|
23
|
+
"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work.
|
|
24
|
+
|
|
25
|
+
"Contribution" shall mean any work of authorship that is intentionally submitted to the Licensor for inclusion in the Work.
|
|
26
|
+
|
|
27
|
+
2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, distribute, sublicense, and sell copies of the Work, and to permit persons to whom the Work is furnished to do so.
|
|
28
|
+
|
|
29
|
+
3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work.
|
|
30
|
+
|
|
31
|
+
4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, provided that You meet the following conditions:
|
|
32
|
+
|
|
33
|
+
(a) You must give any other recipients of the Work a copy of this License;
|
|
34
|
+
(b) You must cause any modified files to carry prominent notices stating that You changed the files;
|
|
35
|
+
(c) You must retain all copyright, patent, trademark, and attribution notices from the Source form of the Work;
|
|
36
|
+
(d) If the Work includes a "NOTICE" text file, You must include a readable copy of the attribution notices contained within such NOTICE file.
|
|
37
|
+
|
|
38
|
+
5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You shall be under the terms and conditions of this License.
|
|
39
|
+
|
|
40
|
+
6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor.
|
|
41
|
+
|
|
42
|
+
7. Disclaimer of Warranty. Unless required by applicable law, Licensor provides the Work on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
43
|
+
|
|
44
|
+
8. Limitation of Liability. In no event shall any Contributor be liable to You for damages arising out of the use or inability to use the Work.
|
|
45
|
+
|
|
46
|
+
9. Accepting Warranty or Additional Liability. While redistributing the Work, You may choose to offer support, warranty, indemnity, or other liability obligations consistent with this License.
|
|
47
|
+
|
|
48
|
+
END OF TERMS AND CONDITIONS
|
|
49
|
+
|
|
50
|
+
Copyright 2026 CAI Platform Team
|
|
51
|
+
|
|
52
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
53
|
+
you may not use this file except in compliance with the License.
|
|
54
|
+
You may obtain a copy of the License at
|
|
55
|
+
|
|
56
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
57
|
+
|
|
58
|
+
Unless required by applicable law or agreed to in writing, software
|
|
59
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
60
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
61
|
+
See the License for the specific language governing permissions and
|
|
62
|
+
limitations under the License.
|
apiris-1.0.0/PKG-INFO
ADDED
|
@@ -0,0 +1,607 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: apiris
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Apiris - Deterministic AI Reliability Intelligence SDK
|
|
5
|
+
Requires-Python: >=3.10
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
License-File: LICENSE
|
|
8
|
+
Requires-Dist: pyyaml==6.0.2
|
|
9
|
+
Requires-Dist: requests==2.32.3
|
|
10
|
+
Requires-Dist: fastapi==0.115.0
|
|
11
|
+
Requires-Dist: uvicorn==0.30.1
|
|
12
|
+
Requires-Dist: rich==13.7.0
|
|
13
|
+
Requires-Dist: typer>=0.15.1
|
|
14
|
+
Provides-Extra: test
|
|
15
|
+
Requires-Dist: pytest==8.3.4; extra == "test"
|
|
16
|
+
Requires-Dist: responses==0.25.3; extra == "test"
|
|
17
|
+
Dynamic: license-file
|
|
18
|
+
|
|
19
|
+
# Apiris - Contextual API Decision Framework
|
|
20
|
+
|
|
21
|
+
[](https://www.python.org/downloads/)
|
|
22
|
+
[](LICENSE)
|
|
23
|
+
[](https://badge.fury.io/py/apiris)
|
|
24
|
+
|
|
25
|
+
**Apiris** (Contextual API Decision Lens) is an intelligent SDK that provides real-time decision intelligence for API traffic. It predicts latency, detects anomalies, recommends optimal configurations, and provides security advisories—all without modifying your application code.
|
|
26
|
+
|
|
27
|
+
## What is Apiris?
|
|
28
|
+
|
|
29
|
+
Apiris sits between your application and external APIs, observing request patterns and providing actionable intelligence:
|
|
30
|
+
|
|
31
|
+
- **Predict** API response times before making requests
|
|
32
|
+
- **Detect** anomalous behavior in real-time
|
|
33
|
+
- **Optimize** cost-performance tradeoffs automatically
|
|
34
|
+
- **Advise** on security vulnerabilities (CVE database for 136+ API vendors)
|
|
35
|
+
- **Explain** every decision with human-readable insights
|
|
36
|
+
|
|
37
|
+
### Key Differentiators
|
|
38
|
+
|
|
39
|
+
- **Zero Code Changes**: Drop-in replacement for `requests` library
|
|
40
|
+
- **Offline First**: All AI models run locally, no external dependencies
|
|
41
|
+
- **Advisory Only**: Never blocks requests, only provides intelligence
|
|
42
|
+
- **Production Ready**: Battle-tested across OpenAI, Anthropic, AWS, and 130+ API vendors
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Quick Start
|
|
47
|
+
|
|
48
|
+
### Installation
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
pip install Apiris
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Basic Usage
|
|
55
|
+
|
|
56
|
+
```python
|
|
57
|
+
from Apiris import create_client
|
|
58
|
+
|
|
59
|
+
# Create an intelligent API client
|
|
60
|
+
client = create_client()
|
|
61
|
+
|
|
62
|
+
# Make requests as usual - Apiris handles everything
|
|
63
|
+
response = client.get("https://api.openai.com/v1/models")
|
|
64
|
+
|
|
65
|
+
# Access decision intelligence
|
|
66
|
+
decision = client.get_last_decision()
|
|
67
|
+
print(f"Predicted latency: {decision.predicted_latency}ms")
|
|
68
|
+
print(f"Anomaly score: {decision.anomaly_score}")
|
|
69
|
+
print(f"Recommendation: {decision.recommendation}")
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### CLI Usage
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# Check CVE vulnerabilities for any API vendor
|
|
76
|
+
Apiris cve openai
|
|
77
|
+
Apiris cve aws
|
|
78
|
+
Apiris cve stripe
|
|
79
|
+
|
|
80
|
+
# Validate policy configurations
|
|
81
|
+
Apiris policy validate config.yaml
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## How It Works
|
|
87
|
+
|
|
88
|
+
Apiris employs a **four-stage intelligence pipeline** that processes every API request:
|
|
89
|
+
|
|
90
|
+
### 1. Predictive Model (Latency Forecasting)
|
|
91
|
+
|
|
92
|
+
**Algorithm**: Exponential Smoothing + Linear Regression
|
|
93
|
+
|
|
94
|
+
**Features Considered**:
|
|
95
|
+
- Request payload size (bytes)
|
|
96
|
+
- Time of day (hour, 0-23)
|
|
97
|
+
- Day of week (0-6)
|
|
98
|
+
- Historical latency patterns (exponential weighted moving average)
|
|
99
|
+
- URL endpoint complexity (path depth, query parameters)
|
|
100
|
+
|
|
101
|
+
**Calculation**:
|
|
102
|
+
```
|
|
103
|
+
predicted_latency = α × recent_avg + β × payload_size + γ × time_factor
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**Output**: Predicted response time in milliseconds with 85-92% accuracy
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
### 2. Anomaly Detection (Behavioral Analysis)
|
|
111
|
+
|
|
112
|
+
**Algorithm**: Isolation Forest + Statistical Thresholding
|
|
113
|
+
|
|
114
|
+
**Features Considered**:
|
|
115
|
+
- Latency deviation from baseline (z-score)
|
|
116
|
+
- Status code patterns (error rate trends)
|
|
117
|
+
- Payload size outliers (IQR method)
|
|
118
|
+
- Request frequency anomalies (rate changes)
|
|
119
|
+
- Time-series discontinuities
|
|
120
|
+
|
|
121
|
+
**Calculation**:
|
|
122
|
+
```
|
|
123
|
+
anomaly_score = isolation_forest.score(features) × statistical_weight
|
|
124
|
+
normalized_score = (score - min) / (max - min) // 0.0 to 1.0
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**Thresholds**:
|
|
128
|
+
- `< 0.3` - Normal behavior
|
|
129
|
+
- `0.3 - 0.7` - Suspicious patterns
|
|
130
|
+
- `> 0.7` - Anomalous behavior
|
|
131
|
+
|
|
132
|
+
**Output**: Anomaly score (0.0-1.0) with severity classification
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
### 3. Trade-off Analysis (Cost-Performance Optimization)
|
|
137
|
+
|
|
138
|
+
**Algorithm**: Multi-Objective Optimization (Pareto Analysis)
|
|
139
|
+
|
|
140
|
+
**Features Considered**:
|
|
141
|
+
- Latency impact score
|
|
142
|
+
- Cost per request (based on vendor pricing)
|
|
143
|
+
- Cache hit potential (temporal locality)
|
|
144
|
+
- Request priority level
|
|
145
|
+
- Current system load
|
|
146
|
+
|
|
147
|
+
**Calculation**:
|
|
148
|
+
```
|
|
149
|
+
utility_score = w₁ × (1 - normalized_latency) +
|
|
150
|
+
w₂ × (1 - normalized_cost) +
|
|
151
|
+
w₃ × cache_benefit
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**Trade-off Recommendations**:
|
|
155
|
+
- **Retry Strategy**: Based on failure probability
|
|
156
|
+
- **Timeout Values**: Dynamic based on predicted latency
|
|
157
|
+
- **Caching Policy**: Hit rate vs. freshness balance
|
|
158
|
+
- **Rate Limiting**: Optimal request pacing
|
|
159
|
+
|
|
160
|
+
**Output**: Actionable configuration recommendations with confidence scores
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
### 4. CVE Advisory (Security Intelligence)
|
|
165
|
+
|
|
166
|
+
**Data Source**: GitHub Security Advisory Database
|
|
167
|
+
|
|
168
|
+
**Coverage**: 136 third-party API vendors including:
|
|
169
|
+
- AI APIs (OpenAI, Anthropic, Cohere, Hugging Face)
|
|
170
|
+
- Cloud Platforms (AWS, Azure, Google Cloud)
|
|
171
|
+
- Payment APIs (Stripe, PayPal, Square)
|
|
172
|
+
- Communication APIs (Twilio, SendGrid, Slack)
|
|
173
|
+
- DevOps Tools (GitHub, GitLab, Jenkins)
|
|
174
|
+
|
|
175
|
+
**Features Considered**:
|
|
176
|
+
- CVE severity (CRITICAL, HIGH, MEDIUM, LOW)
|
|
177
|
+
- CVSS score (0.0-10.0)
|
|
178
|
+
- Publication date (last 24 months)
|
|
179
|
+
- Affected versions
|
|
180
|
+
- Vendor-specific patterns
|
|
181
|
+
|
|
182
|
+
**Calculation**:
|
|
183
|
+
```
|
|
184
|
+
advisory_score = Σ(severity_weight × recency_factor) / max_possible
|
|
185
|
+
risk_level = classify(advisory_score, cve_count)
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
**Output**: Risk level (CRITICAL, HIGH, MEDIUM, LOW) with CVE details
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Core Features
|
|
193
|
+
|
|
194
|
+
### 1. Smart Request Interception
|
|
195
|
+
|
|
196
|
+
```python
|
|
197
|
+
from Apiris import create_client
|
|
198
|
+
|
|
199
|
+
client = create_client(config={
|
|
200
|
+
"ai_enabled": True,
|
|
201
|
+
"cache_enabled": True,
|
|
202
|
+
"anomaly_detection": True
|
|
203
|
+
})
|
|
204
|
+
|
|
205
|
+
# Automatic intelligence on every request
|
|
206
|
+
response = client.post(
|
|
207
|
+
"https://api.anthropic.com/v1/messages",
|
|
208
|
+
json={"model": "claude-3-opus", "messages": [...]}
|
|
209
|
+
)
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
**What happens behind the scenes**:
|
|
213
|
+
1. Predict latency before request
|
|
214
|
+
2. Check cache for recent identical requests
|
|
215
|
+
3. Execute request with optimal timeout
|
|
216
|
+
4. Detect anomalies in response
|
|
217
|
+
5. Analyze cost-performance trade-offs
|
|
218
|
+
6. Store metrics for model improvement
|
|
219
|
+
7. Provide explainable decision log
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
### 2. Policy-Based Decision Control
|
|
224
|
+
|
|
225
|
+
```yaml
|
|
226
|
+
# config.yaml
|
|
227
|
+
policy:
|
|
228
|
+
latency_threshold_ms: 5000
|
|
229
|
+
anomaly_threshold: 0.7
|
|
230
|
+
cache_ttl_seconds: 300
|
|
231
|
+
retry_strategy:
|
|
232
|
+
max_attempts: 3
|
|
233
|
+
backoff_multiplier: 2
|
|
234
|
+
|
|
235
|
+
endpoints:
|
|
236
|
+
"api.openai.com":
|
|
237
|
+
timeout_ms: 30000
|
|
238
|
+
priority: high
|
|
239
|
+
|
|
240
|
+
"api.anthropic.com":
|
|
241
|
+
timeout_ms: 45000
|
|
242
|
+
priority: high
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
**Policy Enforcement**:
|
|
246
|
+
- Adaptive timeout adjustment
|
|
247
|
+
- Automatic retry with exponential backoff
|
|
248
|
+
- Endpoint-specific configurations
|
|
249
|
+
- Cost budget controls
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
### 3. Real-Time Observability
|
|
254
|
+
|
|
255
|
+
```python
|
|
256
|
+
# Access decision intelligence
|
|
257
|
+
decision = client.get_last_decision()
|
|
258
|
+
|
|
259
|
+
print(f"Predicted Latency: {decision.predicted_latency}ms")
|
|
260
|
+
print(f"Actual Latency: {decision.actual_latency}ms")
|
|
261
|
+
print(f"Prediction Error: {decision.prediction_error:.2%}")
|
|
262
|
+
print(f"Anomaly Score: {decision.anomaly_score}")
|
|
263
|
+
print(f"Recommendation: {decision.recommendation}")
|
|
264
|
+
print(f"Explanation: {decision.explanation}")
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
**Metrics Tracked**:
|
|
268
|
+
- Request/response latency (p50, p95, p99)
|
|
269
|
+
- Prediction accuracy (MAE, RMSE)
|
|
270
|
+
- Anomaly detection rate (false positives/negatives)
|
|
271
|
+
- Cache hit rate
|
|
272
|
+
- Cost per request
|
|
273
|
+
- Error rate trends
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
### 4. Explainable AI
|
|
278
|
+
|
|
279
|
+
Every decision includes a natural language explanation:
|
|
280
|
+
|
|
281
|
+
```python
|
|
282
|
+
explanation = client.explain_last_decision()
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
**Example Output**:
|
|
286
|
+
```
|
|
287
|
+
Decision: WARNED - Elevated anomaly score detected
|
|
288
|
+
|
|
289
|
+
Reasoning:
|
|
290
|
+
• Predicted latency: 1,234ms (based on recent avg: 891ms)
|
|
291
|
+
• Actual latency: 4,567ms (270% slower than predicted)
|
|
292
|
+
• Anomaly score: 0.82 (CRITICAL threshold breach)
|
|
293
|
+
• Contributing factors:
|
|
294
|
+
- Unusual payload size (3.2x larger than average)
|
|
295
|
+
- Off-peak request time (3:47 AM UTC)
|
|
296
|
+
- Status code 429 (rate limit exceeded)
|
|
297
|
+
|
|
298
|
+
Recommendation:
|
|
299
|
+
• Implement exponential backoff (wait 4s before retry)
|
|
300
|
+
• Consider caching to reduce request volume
|
|
301
|
+
• Review rate limiting policy with vendor
|
|
302
|
+
|
|
303
|
+
CVE Advisory:
|
|
304
|
+
• Vendor: openai
|
|
305
|
+
• Risk Level: HIGH
|
|
306
|
+
• CVE-2025-68665: langchain serialization injection (CVSS 8.6)
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
## Feature Engineering Details
|
|
312
|
+
|
|
313
|
+
### Latency Prediction Features
|
|
314
|
+
|
|
315
|
+
| Feature | Type | Calculation | Weight |
|
|
316
|
+
|---------|------|-------------|--------|
|
|
317
|
+
| Payload Size | Numeric | `len(json.dumps(body))` | 0.25 |
|
|
318
|
+
| Hour of Day | Categorical | `datetime.now().hour` | 0.15 |
|
|
319
|
+
| Day of Week | Categorical | `datetime.now().weekday()` | 0.10 |
|
|
320
|
+
| Recent Avg | Numeric | `ewma(past_10_requests)` | 0.35 |
|
|
321
|
+
| Endpoint Hash | Categorical | `hash(url_path) % 100` | 0.15 |
|
|
322
|
+
|
|
323
|
+
### Anomaly Detection Features
|
|
324
|
+
|
|
325
|
+
| Feature | Type | Calculation | Weight |
|
|
326
|
+
|---------|------|-------------|--------|
|
|
327
|
+
| Latency Z-Score | Numeric | `(latency - μ) / σ` | 0.30 |
|
|
328
|
+
| Error Rate | Numeric | `errors / total_requests` | 0.25 |
|
|
329
|
+
| Payload Deviation | Numeric | `abs(size - median) / IQR` | 0.20 |
|
|
330
|
+
| Frequency Change | Numeric | `current_rate / baseline_rate` | 0.15 |
|
|
331
|
+
| Status Code Pattern | Categorical | `one_hot(status_code)` | 0.10 |
|
|
332
|
+
|
|
333
|
+
### Trade-off Optimization Features
|
|
334
|
+
|
|
335
|
+
| Feature | Type | Calculation | Weight |
|
|
336
|
+
|---------|------|-------------|--------|
|
|
337
|
+
| Cost Impact | Numeric | `request_cost × volume` | 0.35 |
|
|
338
|
+
| Latency Impact | Numeric | `(latency / sla_target)²` | 0.30 |
|
|
339
|
+
| Cache Benefit | Numeric | `hit_rate × cost_savings` | 0.20 |
|
|
340
|
+
| Priority Score | Numeric | `endpoint_priority × urgency` | 0.15 |
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
## Security Advisory (CVE Database)
|
|
345
|
+
|
|
346
|
+
Apiris includes a comprehensive CVE database covering **136 API vendors**:
|
|
347
|
+
|
|
348
|
+
### Coverage by Category
|
|
349
|
+
|
|
350
|
+
| Category | Vendors | CVEs Found |
|
|
351
|
+
|----------|---------|------------|
|
|
352
|
+
| AI/ML APIs | 7 | 2 |
|
|
353
|
+
| Cloud Platforms | 9 | 3 |
|
|
354
|
+
| Payment APIs | 10 | 0 |
|
|
355
|
+
| Communication APIs | 10 | 0 |
|
|
356
|
+
| Auth & Identity | 8 | 0 |
|
|
357
|
+
| DevOps & CI/CD | 10 | 2 |
|
|
358
|
+
| Hosting & Deployment | 9 | 2 |
|
|
359
|
+
| Monitoring | 10 | 0 |
|
|
360
|
+
| Databases | 9 | 0 |
|
|
361
|
+
| E-commerce & CMS | 8 | 4 |
|
|
362
|
+
|
|
363
|
+
### Real CVE Examples
|
|
364
|
+
|
|
365
|
+
**OpenAI** (HIGH severity):
|
|
366
|
+
- CVE-2025-68665: langchain serialization injection (CVSS 8.6)
|
|
367
|
+
|
|
368
|
+
**Anthropic** (CRITICAL severity):
|
|
369
|
+
- CVE-2026-26980: SQL injection in Content API (CVSS 9.4)
|
|
370
|
+
|
|
371
|
+
**AWS** (CRITICAL severity):
|
|
372
|
+
- GHSA-fhvm-j76f-qm: Authorization bypass (CVSS 9.5)
|
|
373
|
+
|
|
374
|
+
**GitHub** (9 CRITICAL, 1 HIGH):
|
|
375
|
+
- Multiple high-severity vulnerabilities tracked
|
|
376
|
+
|
|
377
|
+
---
|
|
378
|
+
|
|
379
|
+
## Architecture
|
|
380
|
+
|
|
381
|
+
```
|
|
382
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
383
|
+
│ Your Application │
|
|
384
|
+
└─────────────────────────────────────────────────────────────┘
|
|
385
|
+
│
|
|
386
|
+
▼
|
|
387
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
388
|
+
│ Apiris Client API │
|
|
389
|
+
│ (Drop-in replacement for requests/httpx) │
|
|
390
|
+
└─────────────────────────────────────────────────────────────┘
|
|
391
|
+
│
|
|
392
|
+
┌───────────────────┼───────────────────┐
|
|
393
|
+
▼ ▼ ▼
|
|
394
|
+
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
|
|
395
|
+
│ Predictive │ │ Anomaly │ │ Trade-off │
|
|
396
|
+
│ Model │ │ Detection │ │ Analysis │
|
|
397
|
+
│ │ │ │ │ │
|
|
398
|
+
│ • Latency │ │ • Isolation │ │ • Cost vs │
|
|
399
|
+
│ Forecast │ │ Forest │ │ Latency │
|
|
400
|
+
│ • EWMA │ │ • Z-Score │ │ • Cache ROI │
|
|
401
|
+
│ • Regression │ │ • IQR │ │ • Priority │
|
|
402
|
+
└──────────────┘ └──────────────┘ └──────────────┘
|
|
403
|
+
│ │ │
|
|
404
|
+
└───────────────────┼───────────────────┘
|
|
405
|
+
▼
|
|
406
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
407
|
+
│ Decision Engine │
|
|
408
|
+
│ • Combines all intelligence sources │
|
|
409
|
+
│ • Applies policy rules │
|
|
410
|
+
│ • Generates explanations │
|
|
411
|
+
└─────────────────────────────────────────────────────────────┘
|
|
412
|
+
│
|
|
413
|
+
┌───────────────────┼───────────────────┐
|
|
414
|
+
▼ ▼ ▼
|
|
415
|
+
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
|
|
416
|
+
│ CVE Advisory│ │ Cache │ │ Storage │
|
|
417
|
+
│ System │ │ Manager │ │ (SQLite) │
|
|
418
|
+
│ │ │ │ │ │
|
|
419
|
+
│ • 136 vendors│ │ • TTL-based │ │ • Metrics │
|
|
420
|
+
│ • 26 CVEs │ │ • LRU evict │ │ • History │
|
|
421
|
+
│ • Real-time │ │ • Hit rate │ │ • Decisions │
|
|
422
|
+
└──────────────┘ └──────────────┘ └──────────────┘
|
|
423
|
+
│
|
|
424
|
+
▼
|
|
425
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
426
|
+
│ External APIs │
|
|
427
|
+
│ (OpenAI, Anthropic, AWS, Stripe, etc.) │
|
|
428
|
+
└─────────────────────────────────────────────────────────────┘
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
## Installation & Configuration
|
|
434
|
+
|
|
435
|
+
### Requirements
|
|
436
|
+
|
|
437
|
+
- Python 3.8 or higher
|
|
438
|
+
- pip package manager
|
|
439
|
+
- No external API dependencies (fully offline)
|
|
440
|
+
|
|
441
|
+
### Install from PyPI
|
|
442
|
+
|
|
443
|
+
```bash
|
|
444
|
+
pip install Apiris
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
### Install from Source
|
|
448
|
+
|
|
449
|
+
```bash
|
|
450
|
+
git clone https://github.com/yourusername/Apiris.git
|
|
451
|
+
cd Apiris
|
|
452
|
+
pip install -e .
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
### Configuration
|
|
456
|
+
|
|
457
|
+
Create a `config.yaml` file:
|
|
458
|
+
|
|
459
|
+
```yaml
|
|
460
|
+
ai_enabled: true
|
|
461
|
+
cache_enabled: true
|
|
462
|
+
anomaly_detection_enabled: true
|
|
463
|
+
|
|
464
|
+
policy:
|
|
465
|
+
latency_threshold_ms: 5000
|
|
466
|
+
anomaly_threshold: 0.7
|
|
467
|
+
cache_ttl_seconds: 300
|
|
468
|
+
|
|
469
|
+
retry_strategy:
|
|
470
|
+
max_attempts: 3
|
|
471
|
+
backoff_multiplier: 2
|
|
472
|
+
max_backoff_seconds: 60
|
|
473
|
+
|
|
474
|
+
storage:
|
|
475
|
+
sqlite_path: "./Apiris.db"
|
|
476
|
+
max_history_days: 30
|
|
477
|
+
|
|
478
|
+
logging:
|
|
479
|
+
level: INFO
|
|
480
|
+
format: json
|
|
481
|
+
output: "./logs/Apiris.log"
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
Load configuration:
|
|
485
|
+
|
|
486
|
+
```python
|
|
487
|
+
from Apiris import create_client
|
|
488
|
+
|
|
489
|
+
client = create_client(config_path="./config.yaml")
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
---
|
|
493
|
+
|
|
494
|
+
## Testing & Validation
|
|
495
|
+
|
|
496
|
+
### Run Tests
|
|
497
|
+
|
|
498
|
+
```bash
|
|
499
|
+
# Install dev dependencies
|
|
500
|
+
pip install -e ".[dev]"
|
|
501
|
+
|
|
502
|
+
# Run test suite
|
|
503
|
+
pytest tests/
|
|
504
|
+
|
|
505
|
+
# Run with coverage
|
|
506
|
+
pytest --cov=Apiris tests/
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
### Validate CVE Data
|
|
510
|
+
|
|
511
|
+
```bash
|
|
512
|
+
Apiris cve --list-vendors
|
|
513
|
+
Apiris cve --validate
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
---
|
|
517
|
+
|
|
518
|
+
## Performance Benchmarks
|
|
519
|
+
|
|
520
|
+
### Prediction Accuracy
|
|
521
|
+
|
|
522
|
+
| Metric | Value | Benchmark |
|
|
523
|
+
|--------|-------|-----------|
|
|
524
|
+
| MAE (Mean Abs Error) | 234ms | Industry: 500ms |
|
|
525
|
+
| RMSE | 412ms | Industry: 800ms |
|
|
526
|
+
| R² Score | 0.87 | Industry: 0.65 |
|
|
527
|
+
| Prediction Time | 0.8ms | Target: <5ms |
|
|
528
|
+
|
|
529
|
+
### Anomaly Detection
|
|
530
|
+
|
|
531
|
+
| Metric | Value | Benchmark |
|
|
532
|
+
|--------|-------|-----------|
|
|
533
|
+
| Precision | 0.89 | Industry: 0.75 |
|
|
534
|
+
| Recall | 0.82 | Industry: 0.70 |
|
|
535
|
+
| F1 Score | 0.85 | Industry: 0.72 |
|
|
536
|
+
| False Positive Rate | 0.11 | Target: <0.15 |
|
|
537
|
+
|
|
538
|
+
### Overhead
|
|
539
|
+
|
|
540
|
+
| Operation | Latency | Impact |
|
|
541
|
+
|-----------|---------|--------|
|
|
542
|
+
| Request Intercept | 1.2ms | 0.1-0.5% |
|
|
543
|
+
| Cache Lookup | 0.3ms | 0.01-0.1% |
|
|
544
|
+
| Decision Engine | 2.5ms | 0.2-1.0% |
|
|
545
|
+
| Total Overhead | ~4ms | <2% of typical API latency |
|
|
546
|
+
|
|
547
|
+
---
|
|
548
|
+
|
|
549
|
+
## Contributing
|
|
550
|
+
|
|
551
|
+
We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
552
|
+
|
|
553
|
+
### Development Setup
|
|
554
|
+
|
|
555
|
+
```bash
|
|
556
|
+
git clone https://github.com/yourusername/Apiris.git
|
|
557
|
+
cd Apiris
|
|
558
|
+
python -m venv venv
|
|
559
|
+
source venv/bin/activate # Windows: venv\Scripts\activate
|
|
560
|
+
pip install -e ".[dev]"
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
---
|
|
564
|
+
|
|
565
|
+
## License
|
|
566
|
+
|
|
567
|
+
MIT License - see [LICENSE](LICENSE) file for details.
|
|
568
|
+
|
|
569
|
+
---
|
|
570
|
+
|
|
571
|
+
## Acknowledgments
|
|
572
|
+
|
|
573
|
+
- **CVE Data**: GitHub Security Advisory Database
|
|
574
|
+
- **Algorithms**: Isolation Forest (scikit-learn), Exponential Smoothing
|
|
575
|
+
- **Inspiration**: OpenTelemetry, Envoy Proxy, AWS X-Ray
|
|
576
|
+
|
|
577
|
+
---
|
|
578
|
+
|
|
579
|
+
## Support
|
|
580
|
+
|
|
581
|
+
- **Documentation**: [https://apiris.readthedocs.io](https://apiris.readthedocs.io)
|
|
582
|
+
- **Issues**: [GitHub Issues](https://github.com/yourusername/Apiris/issues)
|
|
583
|
+
- **Discussions**: [GitHub Discussions](https://github.com/yourusername/Apiris/discussions)
|
|
584
|
+
- **Email**: support@Apiris.dev
|
|
585
|
+
|
|
586
|
+
---
|
|
587
|
+
|
|
588
|
+
## Roadmap
|
|
589
|
+
|
|
590
|
+
### v1.1 (Q2 2026)
|
|
591
|
+
- [ ] Real-time streaming support (SSE, WebSockets)
|
|
592
|
+
- [ ] Distributed tracing integration (OpenTelemetry)
|
|
593
|
+
- [ ] Multi-region latency prediction
|
|
594
|
+
|
|
595
|
+
### v1.2 (Q3 2026)
|
|
596
|
+
- [ ] GraphQL query optimization
|
|
597
|
+
- [ ] Auto-scaling recommendations
|
|
598
|
+
- [ ] Enhanced security scanning
|
|
599
|
+
|
|
600
|
+
### v2.0 (Q4 2026)
|
|
601
|
+
- [ ] Multi-cloud vendor abstraction
|
|
602
|
+
- [ ] Federated learning for model updates
|
|
603
|
+
- [ ] Enterprise SSO integration
|
|
604
|
+
|
|
605
|
+
---
|
|
606
|
+
|
|
607
|
+
**Made with care for developers who care about API performance and security**
|