iaurora 1.0.29 → 1.0.31

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.
package/.env.example CHANGED
@@ -123,7 +123,7 @@
123
123
  # =============================================================================
124
124
 
125
125
  # External model metadata registry. Leave empty to disable upstream fetch.
126
- # MODEL_LIST_URL=https://auroraix.github.io/aurora/models.json
126
+ # MODEL_LIST_URL=https://github.com/aurorallm/aurora/blob/main/docs-assets/assets/models.json
127
127
 
128
128
  # Local model registry snapshot and user pricing overrides
129
129
  # MODEL_LIST_LOCAL_PATH=data/models.local.json
@@ -377,7 +377,7 @@
377
377
  # OPENROUTER_API_KEY=sk-or-...
378
378
  # OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
379
379
  # OPENROUTER_MODELS=openai/gpt-oss-120b,anthropic/claude-sonnet-4
380
- # OPENROUTER_SITE_URL=https://github.com/auroraix/aurora
380
+ # OPENROUTER_SITE_URL=https://github.com/aurorallm/aurora
381
381
  # OPENROUTER_APP_NAME=Aurora Gateway
382
382
 
383
383
  # Z.ai
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="https://raw.githubusercontent.com/aurorallm/aurora/main/docs/assets/aurora-logo-animated.svg" width="96" height="96" alt="Aurora Logo">
2
+ <img src="https://raw.githubusercontent.com/aurorallm/aurora/main/docs-assets/assets/aurora-logo-animated.svg" width="96" height="96" alt="Aurora Logo">
3
3
  </p>
4
4
 
5
5
  <h1 align="center">Aurora Gateway OSS — Open-Source AI Gateway | OpenAI &amp; Anthropic Compatible API</h1>
@@ -7,79 +7,180 @@
7
7
  <p align="center">
8
8
  <a href="LICENSE"><img src="https://img.shields.io/github/license/aurorallm/aurora" alt="License" height="20"></a>
9
9
  <a href="https://www.npmjs.com/package/iaurora"><img src="https://img.shields.io/npm/v/iaurora" alt="npm" height="20"></a>
10
- <a href="https://goreportcard.com/report/github.com/aurorallm/aurora"><img src="https://goreportcard.com/badge/github.com/aurorallm/aurora" alt="Go Report Card" height="20"></a>
11
- <a href="https://codecov.io/gh/aurorallm/aurora"><img src="https://codecov.io/gh/aurorallm/aurora/branch/main/graph/badge.svg" alt="codecov" height="20"></a>
10
+ <!-- <a href="https://codecov.io/gh/aurorallm/aurora"><img src="https://codecov.io/gh/aurorallm/aurora/branch/main/graph/badge.svg" alt="codecov" height="20"></a> -->
12
11
  <a href="https://github.com/aurorallm/aurora"><img src="https://img.shields.io/github/stars/aurorallm/aurora" alt="GitHub Stars" height="20"></a>
13
- <a href="https://discord.gg/YJPrfR9uh"><img src="https://dcbadge.limes.pink/api/server/https://discord.gg/YJPrfR9uh?style=flat" alt="Discord" height="20"></a>
12
+ <a href="https://discord.gg/AfaFBSU2km"><img src="https://dcbadge.limes.pink/api/server/https://discord.gg/AfaFBSU2km?style=flat" alt="Discord" height="20"></a>
14
13
  <img src="https://img.shields.io/docker/pulls/aurorahq/aurora" alt="Docker Pulls" height="20">
15
14
  <a href="https://artifacthub.io/packages/search?repo=aurora-gateway"><img src="https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/aurora-gateway" alt="Artifact Hub" height="20"></a>
16
- </p>
17
15
 
16
+ </p>
18
17
  <p align="center"><b>Open-source LLM gateway (OSS edition). One API for every AI provider.</b></p>
19
18
 
20
- <p align="center">Self-hosted. No vendor lock-in. 30+ LLM providers supported.</p>
19
+ <p align="center">Self-hosted. No vendor lock-in. 14 provider types, 30+ LLM providers supported.</p>
21
20
 
22
- <a href="https://raw.githubusercontent.com/aurorallm/aurora/main/docs/assets/dashboard-overview.png">
23
- <img src="https://raw.githubusercontent.com/aurorallm/aurora/main/docs/assets/dashboard-overview.png" alt="Aurora open-source AI gateway admin dashboard showing provider stats and usage metrics" width="100%">
21
+ <a href="https://raw.githubusercontent.com/aurorallm/aurora/main/docs-assets/assets/dashboard-overview.png">
22
+ <img src="https://raw.githubusercontent.com/aurorallm/aurora/main/docs-assets/assets/dashboard-overview.png" alt="Aurora open-source AI gateway admin dashboard showing provider stats and usage metrics" width="100%">
24
23
  </a>
25
24
 
25
+ ---
26
+
26
27
  ## Quick Start
27
28
 
28
29
  Start routing AI traffic in 60 seconds.
29
30
 
30
- <img src="https://raw.githubusercontent.com/aurorallm/aurora/main/docs/assets/install.gif" alt="Install demo" style="max-width:100%;border-radius:12px;margin:12px 0;">
31
-
32
- **1. Install Aurora Gateway**
31
+ ### Option A CLI (npm)
33
32
 
34
33
  ```bash
35
34
  npm install -g iaurora
36
- # or
37
- docker run --rm -p 8080:8080 \
38
- -e AURORA_MASTER_KEY="your-key" \
39
- -e GROQ_API_KEY="gsk_..." \
40
- # optional: add more providers or configure storage
41
- # -e OPENAI_API_KEY="sk-..." \
42
- # -e ANTHROPIC_API_KEY="sk-ant-..." \
43
- # -e GEMINI_API_KEY="..." \
44
- # -e STORAGE_TYPE=sqlite # sqlite (default), postgresql, mongodb
45
- # -e PORT=8080 # change listening port
46
- # -e LOG_LEVEL=info # debug, info, warn, error
47
- # -e LOG_FORMAT=text # text or json
48
- aurorahq/aurora
35
+ mkdir my-gateway && cd my-gateway
36
+ aurora init # creates config.yaml, .env, data/
49
37
  ```
50
38
 
51
- **2. Init and start**
39
+ Set your provider keys in `.env`:
40
+
41
+ ```env
42
+ # ── REQUIRED ──────────────────────────────────────────────
43
+ AURORA_MASTER_KEY="your-secure-key"
44
+
45
+ # ── PROVIDER API KEYS (at least one) ─────────────────────
46
+ OPENAI_API_KEY="sk-..."
47
+ ANTHROPIC_API_KEY="sk-ant-..."
48
+ GEMINI_API_KEY="..."
49
+ GROQ_API_KEY="gsk_..."
50
+ DEEPSEEK_API_KEY="..."
51
+ OPENROUTER_API_KEY="..."
52
+ XAI_API_KEY="..."
53
+ ZAI_API_KEY="..."
54
+ MINIMAX_API_KEY="..."
55
+ AZURE_API_KEY="..."
56
+ ORACLE_API_KEY="..."
57
+ OLLAMA_API_KEY="..."
58
+ VLLM_API_KEY="..."
59
+ JINA_API_KEY="..."
60
+
61
+ # ── OPTIONAL FEATURE TOGGLES (set true to enable) ────────
62
+ LOGGING_ENABLED=true # Audit logging to storage
63
+ METRICS_ENABLED=true # Prometheus /metrics endpoint
64
+ GUARDRAILS_ENABLED=true # Content safety filters
65
+ TOKEN_SAVER_ENABLED=true # Output compression to cut token use
66
+
67
+ # ── PRODUCTION STORAGE ───────────────────────────────────
68
+ # STORAGE_TYPE=postgresql
69
+ # POSTGRES_URL=postgres://user:pass@localhost:5432/aurora
70
+
71
+ # ── REDIS CACHE (model cache + response cache) ──────────
72
+ # REDIS_URL=redis://localhost:6379
73
+ # RESPONSE_CACHE_SIMPLE_ENABLED=true
74
+ ```
52
75
 
53
76
  ```bash
54
- mkdir my-gateway && cd my-gateway
55
- aurora init # scaffolds config.yaml, .env, data/
56
- aurora # starts gateway on port 8080
77
+ aurora
57
78
  ```
58
79
 
59
- **3. Make your first request**
80
+ ### Option B inline env vars (no `.env` needed)
60
81
 
61
82
  ```bash
62
- curl http://localhost:8080/v1/chat/completions \
63
- -H "Content-Type: application/json" \
64
- -H "Authorization: Bearer $(grep AURORA_MASTER_KEY .env | cut -d= -f2)" \
65
- -d '{"model":"groq/llama-3.3-70b-versatile","messages":[{"role":"user","content":"Hello!"}]}'
83
+ # Linux / macOS
84
+ AURORA_MASTER_KEY=your-secure-key \
85
+ OPENAI_API_KEY=sk-... \
86
+ ANTHROPIC_API_KEY=sk-ant-... \
87
+ GEMINI_API_KEY=... \
88
+ GROQ_API_KEY=gsk_... \
89
+ DEEPSEEK_API_KEY=... \
90
+ OPENROUTER_API_KEY=... \
91
+ XAI_API_KEY=... \
92
+ ZAI_API_KEY=... \
93
+ MINIMAX_API_KEY=... \
94
+ AZURE_API_KEY=... \
95
+ ORACLE_API_KEY=... \
96
+ OLLAMA_API_KEY=... \
97
+ VLLM_API_KEY=... \
98
+ JINA_API_KEY=... \
99
+ LOGGING_ENABLED=true \
100
+ METRICS_ENABLED=true \
101
+ GUARDRAILS_ENABLED=true \
102
+ TOKEN_SAVER_ENABLED=true \
103
+ aurora
104
+
105
+ # Windows PowerShell
106
+ $env:AURORA_MASTER_KEY="your-secure-key"; `
107
+ $env:OPENAI_API_KEY="sk-..."; `
108
+ $env:ANTHROPIC_API_KEY="sk-ant-..."; `
109
+ $env:GEMINI_API_KEY="..."; `
110
+ $env:GROQ_API_KEY="gsk_..."; `
111
+ $env:DEEPSEEK_API_KEY="..."; `
112
+ $env:OPENROUTER_API_KEY="..."; `
113
+ $env:XAI_API_KEY="..."; `
114
+ $env:ZAI_API_KEY="..."; `
115
+ $env:MINIMAX_API_KEY="..."; `
116
+ $env:AZURE_API_KEY="..."; `
117
+ $env:ORACLE_API_KEY="..."; `
118
+ $env:OLLAMA_API_KEY="..."; `
119
+ $env:VLLM_API_KEY="..."; `
120
+ $env:JINA_API_KEY="..."; `
121
+ $env:LOGGING_ENABLED="true"; `
122
+ $env:METRICS_ENABLED="true"; `
123
+ $env:GUARDRAILS_ENABLED="true"; `
124
+ $env:TOKEN_SAVER_ENABLED="true"; `
125
+ aurora
126
+
127
+ # Windows CMD
128
+ set AURORA_MASTER_KEY=your-secure-key ^
129
+ && set OPENAI_API_KEY=sk-... ^
130
+ && set ANTHROPIC_API_KEY=sk-ant-... ^
131
+ && set GEMINI_API_KEY=... ^
132
+ && set GROQ_API_KEY=gsk_... ^
133
+ && set DEEPSEEK_API_KEY=... ^
134
+ && set OPENROUTER_API_KEY=... ^
135
+ && set XAI_API_KEY=... ^
136
+ && set ZAI_API_KEY=... ^
137
+ && set MINIMAX_API_KEY=... ^
138
+ && set AZURE_API_KEY=... ^
139
+ && set ORACLE_API_KEY=... ^
140
+ && set OLLAMA_API_KEY=... ^
141
+ && set VLLM_API_KEY=... ^
142
+ && set JINA_API_KEY=... ^
143
+ && set LOGGING_ENABLED=true ^
144
+ && set METRICS_ENABLED=true ^
145
+ && set GUARDRAILS_ENABLED=true ^
146
+ && set TOKEN_SAVER_ENABLED=true ^
147
+ && aurora
66
148
  ```
67
149
 
68
- The dashboard is at `http://localhost:8080/admin/dashboard`.
69
-
70
- **Setup guides:** [npm](https://www.npmjs.com/package/iaurora) · [Docker](https://hub.docker.com/r/aurorahq/aurora) · [Helm/Kubernetes](https://github.com/aurorallm/aurora/tree/main/helm) · [Source](https://github.com/aurorallm/aurora)
150
+ ### Option C Docker
71
151
 
72
- ---
73
-
74
- ## Kubernetes (Helm)
152
+ ```bash
153
+ docker run -d --name aurora -p 8080:8080 \
154
+ -e AURORA_MASTER_KEY="your-secure-key" \
155
+ -e OPENAI_API_KEY="sk-..." \
156
+ -e ANTHROPIC_API_KEY="sk-ant-..." \
157
+ -e GEMINI_API_KEY="..." \
158
+ -e GROQ_API_KEY="gsk_..." \
159
+ -e DEEPSEEK_API_KEY="..." \
160
+ -e OPENROUTER_API_KEY="..." \
161
+ -e XAI_API_KEY="..." \
162
+ -e ZAI_API_KEY="..." \
163
+ -e MINIMAX_API_KEY="..." \
164
+ -e AZURE_API_KEY="..." \
165
+ -e ORACLE_API_KEY="..." \
166
+ -e OLLAMA_API_KEY="..." \
167
+ -e VLLM_API_KEY="..." \
168
+ -e JINA_API_KEY="..." \
169
+ -e LOGGING_ENABLED=true \
170
+ -e METRICS_ENABLED=true \
171
+ -e GUARDRAILS_ENABLED=true \
172
+ -e TOKEN_SAVER_ENABLED=true \
173
+ aurorahq/aurora
174
+ ```
75
175
 
76
- Deploy on any Kubernetes cluster with the [Helm chart](https://github.com/aurorallm/aurora/tree/main/helm).
176
+ ### Option D Kubernetes (Helm)
77
177
 
78
178
  ```bash
79
179
  # Quick dev — Groq, no Redis, no auth
80
180
  helm install aurora ./helm \
81
181
  --namespace aurora --create-namespace \
82
- --set image.tag=1.0.25 \
182
+ --set image.repository=aurorahq/aurora \
183
+ --set image.tag=latest \
83
184
  --set providers.groq.apiKey="gsk_your_key_here" \
84
185
  --set providers.groq.enabled=true \
85
186
  --set redis.enabled=false \
@@ -90,16 +191,71 @@ helm install aurora ./helm \
90
191
  # Production — multiple providers, auth, Redis
91
192
  helm upgrade --install aurora ./helm \
92
193
  --namespace aurora --create-namespace \
93
- --set image.tag=1.0.25 \
194
+ --set image.repository=aurorahq/aurora \
195
+ --set image.tag=latest \
94
196
  --set auth.masterKey="your-secure-key" \
95
197
  --set providers.openai.apiKey="sk-..." \
96
198
  --set providers.openai.enabled=true \
97
199
  --set providers.anthropic.apiKey="sk-ant-..." \
98
200
  --set providers.anthropic.enabled=true \
201
+ --set providers.gemini.apiKey="..." \
202
+ --set providers.gemini.enabled=true \
203
+ --set providers.groq.apiKey="gsk_..." \
204
+ --set providers.groq.enabled=true \
205
+ --set providers.deepseek.apiKey="..." \
206
+ --set providers.deepseek.enabled=true \
207
+ --set providers.openrouter.apiKey="..." \
208
+ --set providers.openrouter.enabled=true \
209
+ --set providers.xai.apiKey="..." \
210
+ --set providers.xai.enabled=true \
211
+ --set providers.zai.apiKey="..." \
212
+ --set providers.zai.enabled=true \
213
+ --set providers.minimax.apiKey="..." \
214
+ --set providers.minimax.enabled=true \
215
+ --set providers.azure.apiKey="..." \
216
+ --set providers.azure.enabled=true \
217
+ --set providers.oracle.apiKey="..." \
218
+ --set providers.oracle.enabled=true \
219
+ --set providers.ollama.apiKey="..." \
220
+ --set providers.ollama.enabled=true \
221
+ --set providers.vllm.apiKey="..." \
222
+ --set providers.vllm.enabled=true \
223
+ --set logging.enabled=true \
224
+ --set metrics.enabled=true \
225
+ --set guardrails.enabled=true \
226
+ --set tokenSaver.enabled=true \
99
227
  --set redis.enabled=true
100
228
  ```
101
229
 
102
- **Full Helm documentation:** [helm/README.md](https://github.com/aurorallm/aurora/tree/main/helm/README.md)
230
+ **Full Helm docs:** [helm/README.md](./helm/README.md)
231
+
232
+ ### Test your gateway
233
+
234
+ ```bash
235
+ curl http://localhost:8080/v1/chat/completions \
236
+ -H "Content-Type: application/json" \
237
+ -H "Authorization: Bearer your-master-key" \
238
+ -d '{"model":"groq/llama-4-scout-17b-16e-instruct","messages":[{"role":"user","content":"Hello!"}]}'
239
+ ```
240
+
241
+ Anthropic format with streaming enabled:
242
+
243
+ ```bash
244
+ curl http://localhost:8080/v1/messages \
245
+ -H "Content-Type: application/json" \
246
+ -H "Authorization: Bearer your-master-key" \
247
+ -H "anthropic-version: 2023-06-01" \
248
+ -d '{
249
+ "model": "anthropic/claude-sonnet-5-20260630",
250
+ "max_tokens": 1024,
251
+ "stream": true,
252
+ "messages": [{"role": "user", "content": "Hello!"}]
253
+ }'
254
+ ```
255
+
256
+ Dashboard: `http://localhost:8080/admin/dashboard`
257
+
258
+ **Setup guides:** [Website](https://aurorallm.online/) · [npm](https://www.npmjs.com/package/iaurora) · [Docker](https://hub.docker.com/r/aurorahq/aurora) · [Helm/Kubernetes](https://github.com/aurorallm/aurora/tree/main/helm) · [Source](https://github.com/aurorallm/aurora)
103
259
 
104
260
  ---
105
261
 
@@ -110,8 +266,8 @@ In addition to private networking, custom security controls, and governance, **A
110
266
 
111
267
  The Enterprise edition is a separate distribution with a signed license.
112
268
 
113
- <a href="https://raw.githubusercontent.com/aurorallm/aurora/main/docs/assets/comparison.png">
114
- <img src="https://raw.githubusercontent.com/aurorallm/aurora/main/docs/assets/comparison.png" alt="OSS vs Enterprise comparison" width="100%" style="border-radius:12px;margin:16px 0;">
269
+ <a href="https://raw.githubusercontent.com/aurorallm/aurora/main/docs-assets/assets/comparison.png">
270
+ <img src="https://raw.githubusercontent.com/aurorallm/aurora/main/docs-assets/assets/comparison.png" alt="OSS vs Enterprise comparison" width="100%" style="border-radius:12px;margin:16px 0;">
115
271
  </a>
116
272
 
117
273
  <div align="center">
@@ -122,66 +278,79 @@ The Enterprise edition is a separate distribution with a signed license.
122
278
 
123
279
  ---
124
280
 
281
+ ## Providers
125
282
 
126
- ## Repository Structure
283
+ Providers are **auto-discovered from environment variables**. Set any provider's `_API_KEY` and restart — the provider and its default models appear automatically.
284
+
285
+ > **Security note for public docs:** The env var names listed below are documentation references. Actual secrets go into your **`.env` file** (in `.gitignore`) or your **deployment secrets manager** — never commit them.
286
+
287
+ | Provider | Env var | Default base URL | Requires base URL | API key required | Default models |
288
+ |----------|---------|-----------------|-------------------|-----------------|----------------|
289
+ | OpenAI | `OPENAI_API_KEY` | `https://api.openai.com/v1` | No | Yes | `gpt-5.6-sol`, `gpt-5.6-luna` |
290
+ | Anthropic | `ANTHROPIC_API_KEY` | `https://api.anthropic.com/v1` | No | Yes | `claude-sonnet-5`, `claude-fable-5` |
291
+ | Google Gemini | `GEMINI_API_KEY` | `https://generativelanguage.googleapis.com/v1beta/openai` | No | Yes | `gemini-3.1-pro`, `gemini-3.5-flash` |
292
+ | Groq | `GROQ_API_KEY` | `https://api.groq.com/openai/v1` | No | Yes | `llama-4-scout-17b`, `llama-4-maverick-17b`, `qwen3-32b` |
293
+ | DeepSeek | `DEEPSEEK_API_KEY` | `https://api.deepseek.com` | No | Yes | `deepseek-v4-pro`, `deepseek-v4-flash` |
294
+ | OpenRouter | `OPENROUTER_API_KEY` | `https://openrouter.ai/api/v1` | No | Yes | 300+ models |
295
+ | xAI (Grok) | `XAI_API_KEY` | `https://api.x.ai/v1` | No | Yes | `grok-4.5`, `grok-4.3` |
296
+ | Z.ai | `ZAI_API_KEY` | `https://api.z.ai/api/paas/v4` | No | Yes | `glm-5.2` |
297
+ | MiniMax | `MINIMAX_API_KEY` | `https://api.minimax.io/v1` | No | Yes | `minimax-m3` |
298
+ | Azure OpenAI | `AZURE_API_KEY` | — | **Yes** | Yes | Your deployments |
299
+ | Oracle | `ORACLE_API_KEY` | — | **Yes** | Yes | `cohere.command-r-plus` |
300
+ | Ollama | `OLLAMA_API_KEY` | `http://localhost:11434/v1` | No | **No** (optional) | Any local model |
301
+ | vLLM | `VLLM_API_KEY` | `http://localhost:8000/v1` | No | **No** (optional) | Any served model |
302
+ | Jina (reranker) | `JINA_API_KEY` | — | **Yes** | Yes | `jina-embeddings-v3` |
303
+
304
+ ### Per-provider extras
305
+
306
+ Every provider supports `*_MODELS` to override auto-discovered models:
307
+
308
+ ```env
309
+ OPENAI_MODELS=gpt-5.6-sol,gpt-5.6-terra,gpt-5.6-luna
310
+ ```
127
311
 
128
- ```text
129
- aurora/
130
- ├── apps/ # Application entrypoints
131
- │ └── aurora/ # Main gateway binary
132
- ├── internal/ # Internal packages
133
- │ ├── api/ # HTTP handlers, middleware
134
- │ ├── config/ # Configuration loading and validation
135
- │ ├── providers/ # Provider implementations (OpenAI, Anthropic, etc.)
136
- │ ├── storage/ # SQLite, PostgreSQL, MongoDB backends
137
- │ ├── guardrails/ # Content safety filters
138
- │ ├── cache/ # Exact and semantic caching
139
- │ └── analytics/ # Usage tracking and metrics
140
- ├── dashboard-ui/ # React admin dashboard frontend
141
- ├── configs/ # Configuration profiles and examples
142
- ├── docs/ # Documentation and assets
143
- ├── scripts/ # Build and release scripts
144
- ├── test/ # Test suites
145
- └── helm/ # Kubernetes Helm charts
312
+ OpenRouter extras:
313
+
314
+ ```env
315
+ OPENROUTER_SITE_URL=https://github.com/aurorallm/aurora
316
+ OPENROUTER_APP_NAME=Aurora Gateway
146
317
  ```
147
318
 
148
- ---
319
+ Azure requires API version:
149
320
 
150
- ## Providers
321
+ ```env
322
+ AZURE_API_VERSION=2024-10-21
323
+ ```
151
324
 
152
- Providers are **auto-discovered from environment variables**. Set any of these keys in your `.env` and restart — the provider and its models appear automatically.
325
+ ### Custom base URL
153
326
 
154
- | Provider | Env var | Default models |
155
- |----------|---------|----------------|
156
- | OpenAI | `OPENAI_API_KEY` | `gpt-4o`, `gpt-4o-mini` |
157
- | Anthropic | `ANTHROPIC_API_KEY` | `claude-sonnet-4`, `claude-opus-4` |
158
- | Google Gemini | `GEMINI_API_KEY` | `gemini-2.5-pro`, `gemini-2.5-flash` |
159
- | Groq | `GROQ_API_KEY` | `llama-3.3-70b`, `qwen3-32b`, `whisper` |
160
- | DeepSeek | `DEEPSEEK_API_KEY` | `deepseek-chat`, `deepseek-reasoner` |
161
- | OpenRouter | `OPENROUTER_API_KEY` | 300+ models |
162
- | xAI | `XAI_API_KEY` | `grok-3`, `grok-3-mini` |
163
- | Z.ai | `ZAI_API_KEY` | `glm-4.5` |
164
- | MiniMax | `MINIMAX_API_KEY` | `minimax-m1` |
165
- | Azure OpenAI | `AZURE_API_KEY` + `AZURE_BASE_URL` | Your deployments |
166
- | Oracle | `ORACLE_API_KEY` + `ORACLE_BASE_URL` | `cohere.command-r-plus` |
167
- | Ollama | `OLLAMA_BASE_URL` | Any local model |
168
- | vLLM | `VLLM_BASE_URL` | Any served model |
327
+ Override any provider's endpoint:
169
328
 
170
- **Custom base URL?** Set `OPENAI_BASE_URL`, `GROQ_BASE_URL`, etc. in `.env`.
329
+ ```env
330
+ OPENAI_BASE_URL=https://my-corp-openai-proxy.example.com/v1
331
+ ```
332
+
333
+ ### Multiple instances of the same provider
334
+
335
+ Use suffix notation (underscores become hyphens in the provider name):
171
336
 
172
- **Multiple instances of the same provider?** Use suffix notation: `OPENAI_EAST_API_KEY`, `OPENAI_WEST_API_KEY`, etc.
337
+ ```env
338
+ OPENAI_EAST_API_KEY=sk-... # → provider: openai-east
339
+ OPENAI_WEST_API_KEY=sk-... # → provider: openai-west
340
+ JINA_API_KEY1=... # → provider: jina-1
341
+ ```
173
342
 
174
343
  ---
175
344
 
176
345
  ## Configuration
177
346
 
178
- The gateway loads settings in this order (later wins):
347
+ The gateway loads settings in this priority order (later wins):
179
348
 
180
349
  ```
181
- code defaults → config.yaml → .env / env vars
350
+ code defaults → config.yaml → .env / environment variables
182
351
  ```
183
352
 
184
- Generated by `aurora init`, every section is documented inline:
353
+ Generated by `aurora init`, every section of `config.yaml` is documented inline:
185
354
 
186
355
  | Section | What it controls |
187
356
  |---------|-----------------|
@@ -199,18 +368,284 @@ Generated by `aurora init`, every section is documented inline:
199
368
  | `fallback` | Provider failover rules |
200
369
  | `resilience` | Retry + circuit breaker |
201
370
 
371
+ ### Quick config profiles
372
+
373
+ Aurora ships pre-built config profiles in `configs/editions/`:
374
+
375
+ | Profile | File | Use case |
376
+ |---------|------|----------|
377
+ | OSS | `oss.env.example` | Minimal local — SQLite, no Redis |
378
+ | OSS Local Power | `oss.local-power.env.example` | SQLite + Redis exact cache |
379
+ | OSS Team | `oss.team.env.example` | Postgres + Redis + Qdrant — full team deployment |
380
+
381
+ ```bash
382
+ export AURORA_CONFIG_PATH=configs/editions/oss.team.example.yaml
383
+ ```
384
+
385
+ ### Configuring across deployment methods
386
+
387
+ Each env var works in all three deploy modes:
388
+
389
+ | Variable | `.env` file | Docker `-e` flag | Helm `--set` value |
390
+ |----------|-------------|------------------|---------------------|
391
+ | `PORT` | `PORT=9090` | `-e PORT=9090` | `--set server.port=9090` |
392
+ | `AURORA_MASTER_KEY` | `AURORA_MASTER_KEY=...` | `-e AURORA_MASTER_KEY=...` | `--set auth.masterKey=...` |
393
+ | `OPENAI_API_KEY` | `OPENAI_API_KEY=sk-...` | `-e OPENAI_API_KEY=sk-...` | `--set providers.openai.apiKey=...` |
394
+ | `STORAGE_TYPE` | `STORAGE_TYPE=postgresql` | `-e STORAGE_TYPE=postgresql` | `--set storage.type=postgresql` |
395
+ | `REDIS_URL` | `REDIS_URL=redis://...` | `-e REDIS_URL=redis://...` | `--set cache.redis.url=...` |
396
+
397
+ ### Complete env var reference
398
+
399
+ All configurable environment variables, organized by subsystem:
400
+
401
+ #### Server & Security
402
+
403
+ | Env var | Default | Description |
404
+ |---------|---------|-------------|
405
+ | `PORT` | `8080` | HTTP listening port |
406
+ | `BASE_PATH` | `/` | URL path prefix to mount under |
407
+ | `AURORA_MASTER_KEY` | `""` | Master API key for auth |
408
+ | `BODY_SIZE_LIMIT` | `10M` | Max request body size (e.g. `10M`, `1G`, `500K`) |
409
+ | `SWAGGER_ENABLED` | `false` | Enable Swagger UI at `/swagger/index.html` |
410
+ | `PPROF_ENABLED` | `false` | Enable pprof at `/debug/pprof/` |
411
+ | `ENABLE_PASSTHROUGH_ROUTES` | `true` | Provider-native passthrough at `/p/{provider}` |
412
+ | `ALLOW_PASSTHROUGH_V1_ALIAS` | `true` | Allow `/p/{provider}/v1/...` alias routes |
413
+ | `ENABLED_PASSTHROUGH_PROVIDERS` | `openai,anthropic,openrouter,zai,vllm` | Provider types for passthrough |
414
+ | `ENABLE_ANTHROPIC_INGRESS` | `false` | Expose `/v1/messages` for native Anthropic clients |
415
+ | `DISABLE_REQUEST_LOGGING` | `false` | Turn off request logging |
416
+ | `DISABLE_REQUEST_BODY_SNAPSHOT` | `false` | Don't snapshot request bodies |
417
+ | `DISABLE_PASSTHROUGH_SEMANTIC_ENRICHMENT` | `false` | Disable semantic enrichment on passthrough |
418
+
419
+ #### HTTP Client & Proxy
420
+
421
+ | Env var | Default | Description |
422
+ |---------|---------|-------------|
423
+ | `HTTP_TIMEOUT` | `600` | Upstream request timeout (seconds) |
424
+ | `HTTP_RESPONSE_HEADER_TIMEOUT` | `600` | Timeout for upstream response headers (seconds) |
425
+ | `HTTP_PROXY` | — | HTTP proxy URL for upstream calls |
426
+ | `HTTPS_PROXY` | — | HTTPS proxy URL |
427
+ | `NO_PROXY` | — | Hosts to exclude from proxy |
428
+
429
+ #### Storage
430
+
431
+ | Env var | Default | Description |
432
+ |---------|---------|-------------|
433
+ | `STORAGE_TYPE` | `sqlite` | Backend: `sqlite`, `postgresql`, or `mongodb` |
434
+ | `SQLITE_PATH` | `data/aurora-oss.db` | SQLite database file path |
435
+ | `POSTGRES_URL` | — | PostgreSQL connection string |
436
+ | `POSTGRES_MAX_CONNS` | `10` | PostgreSQL connection pool max |
437
+ | `MONGODB_URL` | — | MongoDB connection string |
438
+ | `MONGODB_DATABASE` | `aurora` | MongoDB database name |
439
+
440
+ #### Model Registry
441
+
442
+ | Env var | Default | Description |
443
+ |---------|---------|-------------|
444
+ | `MODEL_LIST_URL` | `https://github.com/aurorallm/aurora/blob/main/docs-assets/assets/models.json` | External model metadata registry (empty = disabled) |
445
+ | `MODEL_LIST_LOCAL_PATH` | `data/models.local.json` | Local model registry snapshot path |
446
+ | `MODEL_LIST_USER_OVERRIDES_PATH` | `data/user_pricing.yaml` | User pricing override file |
447
+ | `MODELS_ENABLED_BY_DEFAULT` | `true` | Default enabled state for provider models |
448
+ | `MODEL_OVERRIDES_ENABLED` | `true` | Allow per-model overrides (dashboard editing) |
449
+ | `KEEP_ONLY_ALIASES_AT_MODELS_ENDPOINT` | `false` | Hide provider models from `GET /v1/models`, show only aliases |
450
+ | `CONFIGURED_PROVIDER_MODELS_MODE` | `fallback` | `fallback` or `allowlist` — how configured model lists affect inventory |
451
+
452
+ #### Caching
453
+
454
+ **Model cache:**
455
+
456
+ | Env var | Default | Description |
457
+ |---------|---------|-------------|
458
+ | `CACHE_REFRESH_INTERVAL` | `3600` | Model registry cache refresh (seconds) |
459
+ | `AURORA_CACHE_DIR` | `.cache` | Local filesystem cache directory |
460
+ | `REDIS_URL` | — | Redis connection URL (enables Redis-backed model cache) |
461
+ | `REDIS_KEY_MODELS` | `aurora:models` | Redis key for model cache |
462
+ | `REDIS_TTL_MODELS` | `86400` | Redis model cache TTL (seconds) |
463
+
464
+ **Response cache (exact match):**
465
+
466
+ | Env var | Default | Description |
467
+ |---------|---------|-------------|
468
+ | `RESPONSE_CACHE_SIMPLE_ENABLED` | `false` | Enable Redis exact-response cache |
469
+ | `REDIS_KEY_RESPONSES` | `aurora:response:` | Redis key prefix for responses |
470
+ | `REDIS_TTL_RESPONSES` | `3600` | Response cache TTL (seconds) |
471
+
472
+ **Semantic cache (vector similarity):**
473
+
474
+ | Env var | Default | Description |
475
+ |---------|---------|-------------|
476
+ | `SEMANTIC_CACHE_ENABLED` | `false` | Enable semantic cache |
477
+ | `SEMANTIC_CACHE_THRESHOLD` | `0.92` | Similarity threshold (0-1) |
478
+ | `SEMANTIC_CACHE_PROMPT_SIMILARITY` | `0.90` | Prompt similarity threshold (0-1) |
479
+ | `SEMANTIC_CACHE_TTL` | `3600` | Entry TTL (seconds) |
480
+ | `SEMANTIC_CACHE_MAX_CONV_MESSAGES` | `3` | Recent conversation messages to embed |
481
+ | `SEMANTIC_CACHE_EXCLUDE_SYSTEM_PROMPT` | `false` | Exclude system prompt from cache key |
482
+ | `SEMANTIC_CACHE_EMBEDDER_PROVIDER` | `openai` | Embedder provider name |
483
+ | `SEMANTIC_CACHE_EMBEDDER_MODEL` | `text-embedding-3-small` | Embedder model |
484
+ | `SEMANTIC_CACHE_VECTOR_STORE_TYPE` | `qdrant` | Backend: `qdrant`, `pgvector`, `pinecone`, `weaviate` |
485
+ | `SEMANTIC_CACHE_QDRANT_URL` | `http://localhost:6333` | Qdrant URL |
486
+ | `SEMANTIC_CACHE_QDRANT_COLLECTION` | `aurora_semantic` | Qdrant collection name |
487
+ | `SEMANTIC_CACHE_QDRANT_API_KEY` | — | Qdrant API key |
488
+ | `SEMANTIC_CACHE_PGVECTOR_URL` | — | pgvector connection string |
489
+ | `SEMANTIC_CACHE_PGVECTOR_TABLE` | `aurora_semantic_cache` | pgvector table name |
490
+ | `SEMANTIC_CACHE_PGVECTOR_DIMENSION` | `1536` | pgvector embedding dimension |
491
+ | `SEMANTIC_CACHE_PINECONE_HOST` | — | Pinecone host URL |
492
+ | `SEMANTIC_CACHE_PINECONE_API_KEY` | — | Pinecone API key |
493
+ | `SEMANTIC_CACHE_PINECONE_NAMESPACE` | — | Pinecone namespace |
494
+ | `SEMANTIC_CACHE_PINECONE_DIMENSION` | `1536` | Pinecone embedding dimension |
495
+ | `SEMANTIC_CACHE_WEAVIATE_URL` | — | Weaviate URL |
496
+ | `SEMANTIC_CACHE_WEAVIATE_CLASS` | `AuroraSemanticCache` | Weaviate class name |
497
+ | `SEMANTIC_CACHE_WEAVIATE_API_KEY` | — | Weaviate API key |
498
+
499
+ #### Audit Logging
500
+
501
+ | Env var | Default | Description |
502
+ |---------|---------|-------------|
503
+ | `LOGGING_ENABLED` | `false` | Enable audit log to storage |
504
+ | `LOGGING_LOG_BODIES` | `true` | Log request/response bodies (may contain PII) |
505
+ | `LOGGING_LOG_HEADERS` | `true` | Log headers (sensitive headers redacted) |
506
+ | `LOGGING_ONLY_MODEL_INTERACTIONS` | `true` | Skip health/metrics/admin endpoints |
507
+ | `LOGGING_BUFFER_SIZE` | `1000` | In-memory queue capacity |
508
+ | `LOGGING_FLUSH_INTERVAL` | `5` | Flush interval (seconds) |
509
+ | `LOGGING_RETENTION_DAYS` | `30` | Auto-delete after N days (0 = forever) |
510
+
511
+ #### Usage Tracking
512
+
513
+ | Env var | Default | Description |
514
+ |---------|---------|-------------|
515
+ | `USAGE_ENABLED` | `true` | Enable token usage tracking |
516
+ | `USAGE_PRICING_RECALCULATION_ENABLED` | `true` | Allow admin pricing recalculation |
517
+ | `ENFORCE_RETURNING_USAGE_DATA` | `true` | Add `stream_options.include_usage=true` to streaming requests |
518
+ | `USAGE_BUFFER_SIZE` | `1000` | In-memory queue capacity |
519
+ | `USAGE_FLUSH_INTERVAL` | `5` | Flush interval (seconds) |
520
+ | `USAGE_RETENTION_DAYS` | `90` | Auto-delete after N days (0 = forever) |
521
+
522
+ #### Guardrails
523
+
524
+ | Env var | Default | Description |
525
+ |---------|---------|-------------|
526
+ | `GUARDRAILS_ENABLED` | `false` | Enable content safety filters globally |
527
+ | `ENABLE_GUARDRAILS_FOR_BATCH_PROCESSING` | `false` | Apply guardrails to `/v1/batches` items |
528
+
529
+ #### Metrics
530
+
531
+ | Env var | Default | Description |
532
+ |---------|---------|-------------|
533
+ | `METRICS_ENABLED` | `false` | Enable Prometheus `/metrics` endpoint |
534
+ | `METRICS_ENDPOINT` | `/metrics` | Metrics endpoint path |
535
+
536
+ #### Token Saver (output compression)
537
+
538
+ | Env var | Default | Description |
539
+ |---------|---------|-------------|
540
+ | `TOKEN_SAVER_ENABLED` | `false` | Enable caveman-style output compression |
541
+ | `TOKEN_SAVER_ENDPOINTS` | `chat_completions` | Endpoints to apply it to |
542
+ | `TOKEN_SAVER_APPLY_STREAMING` | `true` | Apply to streaming responses |
543
+ | `TOKEN_SAVER_OUTPUT_ENABLED` | `false` | Enable output style/profile |
544
+ | `TOKEN_SAVER_OUTPUT_PROFILE` | `concise` | Output profile name |
545
+ | `TOKEN_SAVER_MODELS_INCLUDE` | — | Models to include (comma-separated) |
546
+ | `TOKEN_SAVER_MODELS_EXCLUDE` | — | Models to exclude |
547
+ | `TOKEN_SAVER_PROVIDERS_INCLUDE` | — | Providers to include |
548
+ | `TOKEN_SAVER_PROVIDERS_EXCLUDE` | — | Providers to exclude |
549
+ | `TOKEN_SAVER_ON_ERROR` | `allow` | Behavior on error: `allow` or `block` |
550
+ | `TOKEN_SAVER_EMIT_HEADERS` | `true` | Emit token-saver headers in response |
551
+ | `TOKEN_SAVER_AUDIT_ENABLED` | `true` | Log token-saver actions |
552
+
553
+ #### Resilience (retry + circuit breaker)
554
+
555
+ | Env var | Default | Description |
556
+ |---------|---------|-------------|
557
+ | `RETRY_MAX_RETRIES` | `3` | Upstream retry count |
558
+ | `RETRY_INITIAL_BACKOFF` | `1s` | Initial backoff duration |
559
+ | `RETRY_MAX_BACKOFF` | `30s` | Maximum backoff duration |
560
+ | `RETRY_BACKOFF_FACTOR` | `2.0` | Exponential backoff multiplier |
561
+ | `RETRY_JITTER_FACTOR` | `0.1` | Random jitter fraction |
562
+ | `CIRCUIT_BREAKER_FAILURE_THRESHOLD` | `5` | Failures before circuit opens |
563
+ | `CIRCUIT_BREAKER_SUCCESS_THRESHOLD` | `2` | Successes before circuit closes |
564
+ | `CIRCUIT_BREAKER_TIMEOUT` | `30s` | Time before half-open retry |
565
+
566
+ #### Fallback
567
+
568
+ | Env var | Default | Description |
569
+ |---------|---------|-------------|
570
+ | `FEATURE_FALLBACK_MODE` | `manual` | Fallback mode: `auto`, `manual`, or `off` |
571
+ | `FALLBACK_MANUAL_RULES_PATH` | — | Path to manual fallback rules JSON |
572
+
573
+ #### Admin & Features
574
+
575
+ | Env var | Default | Description |
576
+ |---------|---------|-------------|
577
+ | `ADMIN_ENDPOINTS_ENABLED` | `true` | Enable `/admin/api/v1/*` REST endpoints |
578
+ | `ADMIN_UI_ENABLED` | `true` | Enable `/admin/dashboard` UI |
579
+ | `COMBOS_ENABLED` | `true` | Enable combo model calls |
580
+ | `CLI_TOOLS_ENABLED` | `true` | Enable CLI tools integration |
581
+ | `CLI_TOOLS_APPLY_ENABLED` | `false` | Allow admin/API to apply tool changes |
582
+ | `WORKFLOW_REFRESH_INTERVAL` | `1m` | Workflow refresh interval from storage |
583
+ | `EDITION` | — | Edition identifier (Enterprise use) |
584
+
585
+ #### Config file path
586
+
587
+ | Env var | Default | Description |
588
+ |---------|---------|-------------|
589
+ | `AURORA_CONFIG_PATH` | `configs/config.yaml` | Override path to config YAML |
590
+
591
+ ---
592
+
593
+ ## CLI Reference
594
+
595
+ The `aurora` CLI is installed via `npm install -g iaurora`.
596
+
597
+ | Command | Description |
598
+ |---------|-------------|
599
+ | `aurora init` | Scaffolds `config.yaml`, `.env`, `data/` in the current directory |
600
+ | `aurora` | Starts the gateway server (default port 8080) |
601
+ | `aurora --help` | Show all CLI options |
602
+
603
+ `aurora init` generates:
604
+ - **`config.yaml`** — Full gateway configuration with inline docs for every section
605
+ - **`.env`** — Environment file for secrets and runtime overrides (based on `.env.template`)
606
+ - **`data/`** — Directory for SQLite database and local model cache
607
+
608
+ The gateway merges `config.yaml` + `.env`/env vars at startup. Use `config.yaml` for structure and `.env` for secrets/keys.
609
+
610
+ ---
611
+
612
+ ## Repository Structure
613
+
614
+ ```text
615
+ aurora/
616
+ ├── apps/ # Application entrypoints
617
+ │ └── aurora/ # Main gateway binary
618
+ ├── internal/ # Internal packages
619
+ │ ├── api/ # HTTP handlers, middleware
620
+ │ ├── config/ # Configuration loading and validation
621
+ │ ├── providers/ # Provider implementations (OpenAI, Anthropic, etc.)
622
+ │ ├── storage/ # SQLite, PostgreSQL, MongoDB backends
623
+ │ ├── guardrails/ # Content safety filters
624
+ │ ├── cache/ # Exact and semantic caching
625
+ │ └── analytics/ # Usage tracking and metrics
626
+ ├── dashboard-ui/ # React admin dashboard frontend
627
+ ├── configs/ # Configuration profiles and examples
628
+ ├── docs/ # Documentation and assets
629
+ ├── scripts/ # Build and release scripts
630
+ ├── test/ # Test suites
631
+ └── helm/ # Kubernetes Helm charts
632
+ ```
633
+
202
634
  ---
203
635
 
204
636
  ## Documentation
205
637
 
638
+ - [Website](https://aurorallm.online/)
206
639
  - [CLI Reference](https://github.com/aurorallm/aurora)
207
640
  - [Provider Configuration](https://github.com/aurorallm/aurora)
208
641
  - [Admin Dashboard](https://github.com/aurorallm/aurora)
209
642
  - [Docker Compose & Helm](https://github.com/aurorallm/aurora)
210
643
 
644
+ ---
645
+
211
646
  ## Need Help?
212
647
 
213
- [Join our Discord](https://discord.com/invite/YJPrfR9uh) for community support, setup help, and discussions.
648
+ [Join our Discord](https://discord.gg/AfaFBSU2km) for community support, setup help, and discussions.
214
649
 
215
650
  ---
216
651
 
@@ -227,6 +662,6 @@ We welcome contributions of all kinds! Check out the repository to get started:
227
662
 
228
663
  ## License
229
664
 
230
- This project is licensed under the Apache 2.0 License - see the [LICENSE](LICENSE) file for details.
665
+ This project is licensed under the Apache 2.0 License see the [LICENSE](LICENSE) file for details.
231
666
 
232
667
  Built with ❤️ by the Aurora team.
package/bin/aurora.exe CHANGED
Binary file
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.29",
2
+ "version": "1.0.31",
3
3
  "author": "Aurora Gateway",
4
4
  "license": "Apache-2.0",
5
5
  "files": [