iaurora 1.0.31 → 1.0.32

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.
Files changed (3) hide show
  1. package/README.md +228 -143
  2. package/bin/aurora.exe +0 -0
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -2,28 +2,103 @@
2
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
- <h1 align="center">Aurora Gateway OSS — Open-Source AI Gateway | OpenAI &amp; Anthropic Compatible API</h1>
5
+ <h1 align="center">Aurora — Open-Source AI Gateway</h1>
6
6
 
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://codecov.io/gh/aurorallm/aurora"><img src="https://codecov.io/gh/aurorallm/aurora/branch/main/graph/badge.svg" alt="codecov" height="20"></a> -->
11
10
  <a href="https://github.com/aurorallm/aurora"><img src="https://img.shields.io/github/stars/aurorallm/aurora" alt="GitHub Stars" height="20"></a>
12
11
  <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>
13
12
  <img src="https://img.shields.io/docker/pulls/aurorahq/aurora" alt="Docker Pulls" height="20">
14
13
  <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>
15
-
16
14
  </p>
17
- <p align="center"><b>Open-source LLM gateway (OSS edition). One API for every AI provider.</b></p>
18
15
 
19
- <p align="center">Self-hosted. No vendor lock-in. 14 provider types, 30+ LLM providers supported.</p>
16
+ <p align="center"><b>One API for every AI provider. Self-hosted. No vendor lock-in.</b></p>
17
+
18
+ <p align="center">14 provider types &bull; OpenAI &amp; Anthropic compatible &bull; Built in Go &bull; Apache 2.0</p>
20
19
 
21
20
  <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%">
21
+ <img src="https://raw.githubusercontent.com/aurorallm/aurora/main/docs-assets/assets/dashboard-overview.png" alt="Aurora admin dashboard showing provider stats and usage metrics" width="100%">
23
22
  </a>
24
23
 
25
24
  ---
26
25
 
26
+ ## What Aurora Does
27
+
28
+ Aurora sits between your app and LLM providers. Your app sends requests using the standard OpenAI or Anthropic SDK — Aurora routes them to whichever provider you've configured.
29
+
30
+ ```python
31
+ # Before: hardcoded provider
32
+ client = OpenAI(base_url="https://api.openai.com/v1", api_key="sk-...")
33
+
34
+ # After: Aurora Gateway
35
+ client = OpenAI(base_url="http://localhost:8080/v1", api_key="your-aurora-key")
36
+ ```
37
+
38
+ No SDK changes. No format changes. Just swap the `base_url`.
39
+
40
+ ---
41
+
42
+ ## Features
43
+
44
+ ### Routing & Providers
45
+
46
+ - **14 provider types** — OpenAI, Anthropic, Gemini, Groq, DeepSeek, OpenRouter, xAI, Z.ai, MiniMax, Azure OpenAI, Oracle, Ollama, vLLM, Jina
47
+ - **Auto-discovery** — set an API key as an env var, restart, provider + all its models appear automatically
48
+ - **Provider pools** — group multiple keys/endpoints, load-balance with round-robin, health-aware failover
49
+ - **Fallback** — automatic failover on 5xx/429, or manual rules mapping failed provider+model to backups
50
+ - **Resilience** — exponential backoff with jitter, circuit breaker per provider (closed → open → half-open)
51
+ - **Multiple instances** — run `OPENAI_EAST_API_KEY` and `OPENAI_WEST_API_KEY` as separate providers
52
+ - **Custom base URLs** — override any provider's endpoint (corporate proxies, regional endpoints)
53
+ - **Passthrough** — `/p/{provider}/*` for full upstream API access (not just chat completions)
54
+
55
+ ### API Surface
56
+
57
+ - **OpenAI-compatible** — `/v1/chat/completions`, `/v1/embeddings`, `/v1/rerank`, `/v1/models`, `/v1/files`, `/v1/batches`
58
+ - **Responses API** — `/v1/responses` with full CRUD, cancel, input items, compact
59
+ - **Anthropic-compatible** — `/v1/messages`, `/v1/messages/count_tokens` (native Anthropic wire format)
60
+ - **Streaming** — SSE streaming for all endpoints, preserved end-to-end
61
+
62
+ ### Caching
63
+
64
+ - **Exact cache** — SHA-256 hash match on request, Redis-backed, async writes
65
+ - **Semantic cache** — vector similarity with configurable threshold, supports Qdrant, pgvector, Pinecone, Weaviate
66
+ - **Prompt cache** — forwards `cache_control` to Anthropic/OpenAI/Gemini native prompt caching
67
+ - **Model registry cache** — local filesystem + Redis, offline-safe
68
+
69
+ ### Security & Guardrails
70
+
71
+ - **Master key** — top-level gateway auth
72
+ - **Managed API keys** — scoped, rate-limited, per-key model authorization, usage stats
73
+ - **PII redaction** — email, phone, SSN, credit card detection and masking
74
+ - **Prompt injection blocking** — detects and blocks injection attempts
75
+ - **System prompt protection** — inject, override, or decorate system prompts
76
+ - **Regex blocking** — custom pattern matching with block or sanitize actions
77
+ - **Length limits** — character/token count enforcement on requests
78
+
79
+ ### Observability
80
+
81
+ - **Audit logging** — full request/response capture, buffered writes, configurable retention, live SSE stream
82
+ - **Usage analytics** — per-model token counting, cost tracking, daily aggregation by model/user-path
83
+ - **Prometheus metrics** — `aurora_requests_total`, `aurora_request_duration_seconds`, `aurora_requests_in_flight`, plus gateway phase timing
84
+ - **Admin dashboard** — React SPA built into the Go binary: providers, pools, models, aliases, guardrails, cache, usage, audit, auth keys, workflows, console, playground
85
+
86
+ ### Cost Control
87
+
88
+ - **Token saver** — policy-driven output compression (profiles: concise, caveman, ultra, wenyan)
89
+ - **Pricing management** — per-model pricing overrides, recalculation, import/export
90
+ - **Usage budgets** — per-key usage tracking and limits
91
+
92
+ ### Developer Experience
93
+
94
+ - **Single binary** — `npm install -g iaurora` or `docker pull aurorahq/aurora`
95
+ - **CLI** — `aurora init`, `aurora models sync/diff/show`, `aurora update`, `aurora uninstall`
96
+ - **Swagger docs** — `/swagger/index.html` (build-tag gated)
97
+ - **Config profiles** — pre-built configs for local, local-power, and team deployments
98
+ - **3-layer config** — code defaults → config.yaml → env vars (env vars win)
99
+
100
+ ---
101
+
27
102
  ## Quick Start
28
103
 
29
104
  Start routing AI traffic in 60 seconds.
@@ -79,8 +154,10 @@ aurora
79
154
 
80
155
  ### Option B — inline env vars (no `.env` needed)
81
156
 
157
+ <details>
158
+ <summary>Linux / macOS</summary>
159
+
82
160
  ```bash
83
- # Linux / macOS
84
161
  AURORA_MASTER_KEY=your-secure-key \
85
162
  OPENAI_API_KEY=sk-... \
86
163
  ANTHROPIC_API_KEY=sk-ant-... \
@@ -101,8 +178,13 @@ AURORA_MASTER_KEY=your-secure-key \
101
178
  GUARDRAILS_ENABLED=true \
102
179
  TOKEN_SAVER_ENABLED=true \
103
180
  aurora
181
+ ```
182
+ </details>
104
183
 
105
- # Windows PowerShell
184
+ <details>
185
+ <summary>Windows PowerShell</summary>
186
+
187
+ ```powershell
106
188
  $env:AURORA_MASTER_KEY="your-secure-key"; `
107
189
  $env:OPENAI_API_KEY="sk-..."; `
108
190
  $env:ANTHROPIC_API_KEY="sk-ant-..."; `
@@ -123,8 +205,13 @@ $env:METRICS_ENABLED="true"; `
123
205
  $env:GUARDRAILS_ENABLED="true"; `
124
206
  $env:TOKEN_SAVER_ENABLED="true"; `
125
207
  aurora
208
+ ```
209
+ </details>
126
210
 
127
- # Windows CMD
211
+ <details>
212
+ <summary>Windows CMD</summary>
213
+
214
+ ```cmd
128
215
  set AURORA_MASTER_KEY=your-secure-key ^
129
216
  && set OPENAI_API_KEY=sk-... ^
130
217
  && set ANTHROPIC_API_KEY=sk-ant-... ^
@@ -146,6 +233,7 @@ set AURORA_MASTER_KEY=your-secure-key ^
146
233
  && set TOKEN_SAVER_ENABLED=true ^
147
234
  && aurora
148
235
  ```
236
+ </details>
149
237
 
150
238
  ### Option C — Docker
151
239
 
@@ -204,26 +292,6 @@ helm upgrade --install aurora ./helm \
204
292
  --set providers.groq.enabled=true \
205
293
  --set providers.deepseek.apiKey="..." \
206
294
  --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 \
227
295
  --set redis.enabled=true
228
296
  ```
229
297
 
@@ -232,15 +300,13 @@ helm upgrade --install aurora ./helm \
232
300
  ### Test your gateway
233
301
 
234
302
  ```bash
303
+ # OpenAI format
235
304
  curl http://localhost:8080/v1/chat/completions \
236
305
  -H "Content-Type: application/json" \
237
306
  -H "Authorization: Bearer your-master-key" \
238
307
  -d '{"model":"groq/llama-4-scout-17b-16e-instruct","messages":[{"role":"user","content":"Hello!"}]}'
239
- ```
240
-
241
- Anthropic format with streaming enabled:
242
308
 
243
- ```bash
309
+ # Anthropic format with streaming
244
310
  curl http://localhost:8080/v1/messages \
245
311
  -H "Content-Type: application/json" \
246
312
  -H "Authorization: Bearer your-master-key" \
@@ -251,30 +317,23 @@ curl http://localhost:8080/v1/messages \
251
317
  "stream": true,
252
318
  "messages": [{"role": "user", "content": "Hello!"}]
253
319
  }'
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)
259
-
260
- ---
261
-
262
- ## Enterprise Deployments
263
320
 
264
- Aurora supports enterprise-grade deployments for teams running production AI systems at scale.
265
- In addition to private networking, custom security controls, and governance, **Aurora Enterprise** unlocks advanced capabilities including SSO, RBAC, tenant isolation, budget enforcement, compliance workflows, and production support.
321
+ # Embeddings
322
+ curl http://localhost:8080/v1/embeddings \
323
+ -H "Content-Type: application/json" \
324
+ -H "Authorization: Bearer your-master-key" \
325
+ -d '{"model":"openai/text-embedding-3-small","input":"Hello world"}'
266
326
 
267
- The Enterprise edition is a separate distribution with a signed license.
327
+ # Reranking (Jina)
328
+ curl http://localhost:8080/v1/rerank \
329
+ -H "Content-Type: application/json" \
330
+ -H "Authorization: Bearer your-master-key" \
331
+ -d '{"model":"jina/jina-reranker-v2-base-multilingual","query":"test","documents":["doc1","doc2"]}'
332
+ ```
268
333
 
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;">
271
- </a>
334
+ Dashboard: `http://localhost:8080/admin/dashboard`
272
335
 
273
- <div align="center">
274
- <a href="mailto:team.auroragate@gmail.com?subject=Aurora%20Enterprise%20Inquiry" style="display:block;margin-top:5px;">
275
- <img src="https://img.shields.io/badge/Email%20Us-Enterprise-5865F2?style=for-the-badge&logo=gmail&logoColor=white" alt="Email Aurora Enterprise" width="200"/>
276
- </a>
277
- </div>
336
+ **Docs:** [aurorallm.online/docs](https://aurorallm.online/docs) · [Website](https://aurorallm.online) · [npm](https://www.npmjs.com/package/iaurora) · [Docker](https://hub.docker.com/r/aurorahq/aurora) · [GitHub](https://github.com/aurorallm/aurora)
278
337
 
279
338
  ---
280
339
 
@@ -282,7 +341,7 @@ The Enterprise edition is a separate distribution with a signed license.
282
341
 
283
342
  Providers are **auto-discovered from environment variables**. Set any provider's `_API_KEY` and restart — the provider and its default models appear automatically.
284
343
 
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.
344
+ > **Security note:** The env var names below are documentation references. Actual secrets go into your **`.env` file** (in `.gitignore`) or your **deployment secrets manager** — never commit them.
286
345
 
287
346
  | Provider | Env var | Default base URL | Requires base URL | API key required | Default models |
288
347
  |----------|---------|-----------------|-------------------|-----------------|----------------|
@@ -301,7 +360,7 @@ Providers are **auto-discovered from environment variables**. Set any provider's
301
360
  | vLLM | `VLLM_API_KEY` | `http://localhost:8000/v1` | No | **No** (optional) | Any served model |
302
361
  | Jina (reranker) | `JINA_API_KEY` | — | **Yes** | Yes | `jina-embeddings-v3` |
303
362
 
304
- ### Per-provider extras
363
+ ### Per-provider configuration
305
364
 
306
365
  Every provider supports `*_MODELS` to override auto-discovered models:
307
366
 
@@ -309,39 +368,36 @@ Every provider supports `*_MODELS` to override auto-discovered models:
309
368
  OPENAI_MODELS=gpt-5.6-sol,gpt-5.6-terra,gpt-5.6-luna
310
369
  ```
311
370
 
312
- OpenRouter extras:
371
+ Custom base URL:
313
372
 
314
373
  ```env
315
- OPENROUTER_SITE_URL=https://github.com/aurorallm/aurora
316
- OPENROUTER_APP_NAME=Aurora Gateway
374
+ OPENAI_BASE_URL=https://my-corp-openai-proxy.example.com/v1
317
375
  ```
318
376
 
319
- Azure requires API version:
377
+ Multiple instances of the same provider (underscores become hyphens in the provider name):
320
378
 
321
379
  ```env
322
- AZURE_API_VERSION=2024-10-21
380
+ OPENAI_EAST_API_KEY=sk-... # → provider: openai-east
381
+ OPENAI_WEST_API_KEY=sk-... # → provider: openai-west
323
382
  ```
324
383
 
325
- ### Custom base URL
326
-
327
- Override any provider's endpoint:
384
+ Azure requires API version:
328
385
 
329
386
  ```env
330
- OPENAI_BASE_URL=https://my-corp-openai-proxy.example.com/v1
387
+ AZURE_API_VERSION=2024-10-21
331
388
  ```
332
389
 
333
- ### Multiple instances of the same provider
334
-
335
- Use suffix notation (underscores become hyphens in the provider name):
390
+ OpenRouter extras:
336
391
 
337
392
  ```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
393
+ OPENROUTER_SITE_URL=https://github.com/aurorallm/aurora
394
+ OPENROUTER_APP_NAME=Aurora Gateway
341
395
  ```
342
396
 
343
397
  ---
344
398
 
399
+ ---
400
+
345
401
  ## Configuration
346
402
 
347
403
  The gateway loads settings in this priority order (later wins):
@@ -367,10 +423,11 @@ Generated by `aurora init`, every section of `config.yaml` is documented inline:
367
423
  | `token_saver` | Output compression |
368
424
  | `fallback` | Provider failover rules |
369
425
  | `resilience` | Retry + circuit breaker |
426
+ | `workflows` | Policy-based request routing |
370
427
 
371
- ### Quick config profiles
428
+ ### Config profiles
372
429
 
373
- Aurora ships pre-built config profiles in `configs/editions/`:
430
+ Pre-built configs in `configs/editions/`:
374
431
 
375
432
  | Profile | File | Use case |
376
433
  |---------|------|----------|
@@ -382,30 +439,17 @@ Aurora ships pre-built config profiles in `configs/editions/`:
382
439
  export AURORA_CONFIG_PATH=configs/editions/oss.team.example.yaml
383
440
  ```
384
441
 
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
442
  ### Complete env var reference
398
443
 
399
- All configurable environment variables, organized by subsystem:
400
-
401
- #### Server & Security
444
+ <details>
445
+ <summary>Server & Security</summary>
402
446
 
403
447
  | Env var | Default | Description |
404
448
  |---------|---------|-------------|
405
449
  | `PORT` | `8080` | HTTP listening port |
406
450
  | `BASE_PATH` | `/` | URL path prefix to mount under |
407
451
  | `AURORA_MASTER_KEY` | `""` | Master API key for auth |
408
- | `BODY_SIZE_LIMIT` | `10M` | Max request body size (e.g. `10M`, `1G`, `500K`) |
452
+ | `BODY_SIZE_LIMIT` | `10M` | Max request body size |
409
453
  | `SWAGGER_ENABLED` | `false` | Enable Swagger UI at `/swagger/index.html` |
410
454
  | `PPROF_ENABLED` | `false` | Enable pprof at `/debug/pprof/` |
411
455
  | `ENABLE_PASSTHROUGH_ROUTES` | `true` | Provider-native passthrough at `/p/{provider}` |
@@ -415,18 +459,22 @@ All configurable environment variables, organized by subsystem:
415
459
  | `DISABLE_REQUEST_LOGGING` | `false` | Turn off request logging |
416
460
  | `DISABLE_REQUEST_BODY_SNAPSHOT` | `false` | Don't snapshot request bodies |
417
461
  | `DISABLE_PASSTHROUGH_SEMANTIC_ENRICHMENT` | `false` | Disable semantic enrichment on passthrough |
462
+ </details>
418
463
 
419
- #### HTTP Client & Proxy
464
+ <details>
465
+ <summary>HTTP Client & Proxy</summary>
420
466
 
421
467
  | Env var | Default | Description |
422
468
  |---------|---------|-------------|
423
469
  | `HTTP_TIMEOUT` | `600` | Upstream request timeout (seconds) |
424
- | `HTTP_RESPONSE_HEADER_TIMEOUT` | `600` | Timeout for upstream response headers (seconds) |
470
+ | `HTTP_RESPONSE_HEADER_TIMEOUT` | `600` | Timeout for upstream response headers |
425
471
  | `HTTP_PROXY` | — | HTTP proxy URL for upstream calls |
426
472
  | `HTTPS_PROXY` | — | HTTPS proxy URL |
427
473
  | `NO_PROXY` | — | Hosts to exclude from proxy |
474
+ </details>
428
475
 
429
- #### Storage
476
+ <details>
477
+ <summary>Storage</summary>
430
478
 
431
479
  | Env var | Default | Description |
432
480
  |---------|---------|-------------|
@@ -436,20 +484,24 @@ All configurable environment variables, organized by subsystem:
436
484
  | `POSTGRES_MAX_CONNS` | `10` | PostgreSQL connection pool max |
437
485
  | `MONGODB_URL` | — | MongoDB connection string |
438
486
  | `MONGODB_DATABASE` | `aurora` | MongoDB database name |
487
+ </details>
439
488
 
440
- #### Model Registry
489
+ <details>
490
+ <summary>Model Registry</summary>
441
491
 
442
492
  | Env var | Default | Description |
443
493
  |---------|---------|-------------|
444
- | `MODEL_LIST_URL` | `https://github.com/aurorallm/aurora/blob/main/docs-assets/assets/models.json` | External model metadata registry (empty = disabled) |
494
+ | `MODEL_LIST_URL` | `https://github.com/aurorallm/aurora/blob/main/docs-assets/assets/models.json` | External model metadata registry |
445
495
  | `MODEL_LIST_LOCAL_PATH` | `data/models.local.json` | Local model registry snapshot path |
446
496
  | `MODEL_LIST_USER_OVERRIDES_PATH` | `data/user_pricing.yaml` | User pricing override file |
447
497
  | `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 |
498
+ | `MODEL_OVERRIDES_ENABLED` | `true` | Allow per-model overrides |
499
+ | `KEEP_ONLY_ALIASES_AT_MODELS_ENDPOINT` | `false` | Hide provider models, show only aliases |
500
+ | `CONFIGURED_PROVIDER_MODELS_MODE` | `fallback` | `fallback` or `allowlist` |
501
+ </details>
451
502
 
452
- #### Caching
503
+ <details>
504
+ <summary>Caching</summary>
453
505
 
454
506
  **Model cache:**
455
507
 
@@ -475,7 +527,7 @@ All configurable environment variables, organized by subsystem:
475
527
  |---------|---------|-------------|
476
528
  | `SEMANTIC_CACHE_ENABLED` | `false` | Enable semantic cache |
477
529
  | `SEMANTIC_CACHE_THRESHOLD` | `0.92` | Similarity threshold (0-1) |
478
- | `SEMANTIC_CACHE_PROMPT_SIMILARITY` | `0.90` | Prompt similarity threshold (0-1) |
530
+ | `SEMANTIC_CACHE_PROMPT_SIMILARITY` | `0.90` | Prompt similarity threshold |
479
531
  | `SEMANTIC_CACHE_TTL` | `3600` | Entry TTL (seconds) |
480
532
  | `SEMANTIC_CACHE_MAX_CONV_MESSAGES` | `3` | Recent conversation messages to embed |
481
533
  | `SEMANTIC_CACHE_EXCLUDE_SYSTEM_PROMPT` | `false` | Exclude system prompt from cache key |
@@ -495,20 +547,24 @@ All configurable environment variables, organized by subsystem:
495
547
  | `SEMANTIC_CACHE_WEAVIATE_URL` | — | Weaviate URL |
496
548
  | `SEMANTIC_CACHE_WEAVIATE_CLASS` | `AuroraSemanticCache` | Weaviate class name |
497
549
  | `SEMANTIC_CACHE_WEAVIATE_API_KEY` | — | Weaviate API key |
550
+ </details>
498
551
 
499
- #### Audit Logging
552
+ <details>
553
+ <summary>Audit Logging</summary>
500
554
 
501
555
  | Env var | Default | Description |
502
556
  |---------|---------|-------------|
503
557
  | `LOGGING_ENABLED` | `false` | Enable audit log to storage |
504
- | `LOGGING_LOG_BODIES` | `true` | Log request/response bodies (may contain PII) |
558
+ | `LOGGING_LOG_BODIES` | `true` | Log request/response bodies |
505
559
  | `LOGGING_LOG_HEADERS` | `true` | Log headers (sensitive headers redacted) |
506
560
  | `LOGGING_ONLY_MODEL_INTERACTIONS` | `true` | Skip health/metrics/admin endpoints |
507
561
  | `LOGGING_BUFFER_SIZE` | `1000` | In-memory queue capacity |
508
562
  | `LOGGING_FLUSH_INTERVAL` | `5` | Flush interval (seconds) |
509
563
  | `LOGGING_RETENTION_DAYS` | `30` | Auto-delete after N days (0 = forever) |
564
+ </details>
510
565
 
511
- #### Usage Tracking
566
+ <details>
567
+ <summary>Usage Tracking</summary>
512
568
 
513
569
  | Env var | Default | Description |
514
570
  |---------|---------|-------------|
@@ -518,30 +574,36 @@ All configurable environment variables, organized by subsystem:
518
574
  | `USAGE_BUFFER_SIZE` | `1000` | In-memory queue capacity |
519
575
  | `USAGE_FLUSH_INTERVAL` | `5` | Flush interval (seconds) |
520
576
  | `USAGE_RETENTION_DAYS` | `90` | Auto-delete after N days (0 = forever) |
577
+ </details>
521
578
 
522
- #### Guardrails
579
+ <details>
580
+ <summary>Guardrails</summary>
523
581
 
524
582
  | Env var | Default | Description |
525
583
  |---------|---------|-------------|
526
584
  | `GUARDRAILS_ENABLED` | `false` | Enable content safety filters globally |
527
585
  | `ENABLE_GUARDRAILS_FOR_BATCH_PROCESSING` | `false` | Apply guardrails to `/v1/batches` items |
586
+ </details>
528
587
 
529
- #### Metrics
588
+ <details>
589
+ <summary>Metrics</summary>
530
590
 
531
591
  | Env var | Default | Description |
532
592
  |---------|---------|-------------|
533
593
  | `METRICS_ENABLED` | `false` | Enable Prometheus `/metrics` endpoint |
534
594
  | `METRICS_ENDPOINT` | `/metrics` | Metrics endpoint path |
595
+ </details>
535
596
 
536
- #### Token Saver (output compression)
597
+ <details>
598
+ <summary>Token Saver</summary>
537
599
 
538
600
  | Env var | Default | Description |
539
601
  |---------|---------|-------------|
540
- | `TOKEN_SAVER_ENABLED` | `false` | Enable caveman-style output compression |
602
+ | `TOKEN_SAVER_ENABLED` | `false` | Enable output compression |
541
603
  | `TOKEN_SAVER_ENDPOINTS` | `chat_completions` | Endpoints to apply it to |
542
604
  | `TOKEN_SAVER_APPLY_STREAMING` | `true` | Apply to streaming responses |
543
605
  | `TOKEN_SAVER_OUTPUT_ENABLED` | `false` | Enable output style/profile |
544
- | `TOKEN_SAVER_OUTPUT_PROFILE` | `concise` | Output profile name |
606
+ | `TOKEN_SAVER_OUTPUT_PROFILE` | `concise` | Profile: `concise`, `caveman`, `ultra`, `wenyan` |
545
607
  | `TOKEN_SAVER_MODELS_INCLUDE` | — | Models to include (comma-separated) |
546
608
  | `TOKEN_SAVER_MODELS_EXCLUDE` | — | Models to exclude |
547
609
  | `TOKEN_SAVER_PROVIDERS_INCLUDE` | — | Providers to include |
@@ -549,8 +611,10 @@ All configurable environment variables, organized by subsystem:
549
611
  | `TOKEN_SAVER_ON_ERROR` | `allow` | Behavior on error: `allow` or `block` |
550
612
  | `TOKEN_SAVER_EMIT_HEADERS` | `true` | Emit token-saver headers in response |
551
613
  | `TOKEN_SAVER_AUDIT_ENABLED` | `true` | Log token-saver actions |
614
+ </details>
552
615
 
553
- #### Resilience (retry + circuit breaker)
616
+ <details>
617
+ <summary>Resilience</summary>
554
618
 
555
619
  | Env var | Default | Description |
556
620
  |---------|---------|-------------|
@@ -562,15 +626,19 @@ All configurable environment variables, organized by subsystem:
562
626
  | `CIRCUIT_BREAKER_FAILURE_THRESHOLD` | `5` | Failures before circuit opens |
563
627
  | `CIRCUIT_BREAKER_SUCCESS_THRESHOLD` | `2` | Successes before circuit closes |
564
628
  | `CIRCUIT_BREAKER_TIMEOUT` | `30s` | Time before half-open retry |
629
+ </details>
565
630
 
566
- #### Fallback
631
+ <details>
632
+ <summary>Fallback</summary>
567
633
 
568
634
  | Env var | Default | Description |
569
635
  |---------|---------|-------------|
570
636
  | `FEATURE_FALLBACK_MODE` | `manual` | Fallback mode: `auto`, `manual`, or `off` |
571
637
  | `FALLBACK_MANUAL_RULES_PATH` | — | Path to manual fallback rules JSON |
638
+ </details>
572
639
 
573
- #### Admin & Features
640
+ <details>
641
+ <summary>Admin & Features</summary>
574
642
 
575
643
  | Env var | Default | Description |
576
644
  |---------|---------|-------------|
@@ -581,31 +649,34 @@ All configurable environment variables, organized by subsystem:
581
649
  | `CLI_TOOLS_APPLY_ENABLED` | `false` | Allow admin/API to apply tool changes |
582
650
  | `WORKFLOW_REFRESH_INTERVAL` | `1m` | Workflow refresh interval from storage |
583
651
  | `EDITION` | — | Edition identifier (Enterprise use) |
652
+ </details>
584
653
 
585
- #### Config file path
654
+ <details>
655
+ <summary>Config file path</summary>
586
656
 
587
657
  | Env var | Default | Description |
588
658
  |---------|---------|-------------|
589
659
  | `AURORA_CONFIG_PATH` | `configs/config.yaml` | Override path to config YAML |
660
+ </details>
590
661
 
591
662
  ---
592
663
 
593
664
  ## CLI Reference
594
665
 
595
- The `aurora` CLI is installed via `npm install -g iaurora`.
666
+ Installed via `npm install -g iaurora`.
596
667
 
597
668
  | Command | Description |
598
669
  |---------|-------------|
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.
670
+ | `aurora` | Start the gateway server (default port 8080) |
671
+ | `aurora init` | Scaffold `config.yaml`, `.env`, `data/` in current directory |
672
+ | `aurora update` | Self-update via `npm install -g iaurora@latest` |
673
+ | `aurora uninstall` | Remove via `npm uninstall -g iaurora` |
674
+ | `aurora models sync` | Download upstream model registry to local file |
675
+ | `aurora models diff` | Show pricing diff between upstream and local snapshot |
676
+ | `aurora models show` | Print effective pricing for a model after merging overrides |
677
+ | `aurora -version` | Print version information |
678
+ | `aurora -help` | Show all CLI options and config reference |
679
+ | `aurora -help-json` | Dump env var schema as JSON |
609
680
 
610
681
  ---
611
682
 
@@ -613,33 +684,47 @@ The gateway merges `config.yaml` + `.env`/env vars at startup. Use `config.yaml`
613
684
 
614
685
  ```text
615
686
  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
687
+ ├── apps/ # Application entrypoints
688
+ ├── internal/ # Core packages (providers, gateway, storage, guardrails, etc.)
689
+ ├── dashboard-ui/ # React admin dashboard (Vite)
690
+ ├── configs/ # Configuration profiles and examples
691
+ ├── docs-assets/ # Images, models.json, assets
692
+ ├── helm/ # Kubernetes Helm charts
693
+ ├── monitoring/ # Prometheus + Grafana configs
694
+ ├── npm/ # npm CLI wrapper
695
+ ├── bench-results/ # Benchmark data
696
+ ├── release/ # Release scripts
697
+ └── scripts/ # Build and utility scripts
632
698
  ```
633
699
 
634
700
  ---
635
701
 
702
+ ## Enterprise Deployments
703
+
704
+ Aurora supports enterprise-grade deployments for teams running production AI systems at scale.
705
+ In addition to private networking, custom security controls, and governance, **Aurora Enterprise** unlocks advanced capabilities including SSO, RBAC, tenant isolation, budget enforcement, compliance workflows, and production support.
706
+
707
+ The Enterprise edition is a separate distribution with a signed license.
708
+
709
+ <a href="https://raw.githubusercontent.com/aurorallm/aurora/main/docs-assets/assets/comparison.png">
710
+ <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;">
711
+ </a>
712
+
713
+ <div align="center">
714
+ <a href="mailto:team.auroragate@gmail.com?subject=Aurora%20Enterprise%20Inquiry" style="display:block;margin-top:5px;">
715
+ <img src="https://img.shields.io/badge/Email%20Us-Enterprise-5865F2?style=for-the-badge&logo=gmail&logoColor=white" alt="Email Aurora Enterprise" width="200"/>
716
+ </a>
717
+ </div>
718
+
719
+ ---
720
+
636
721
  ## Documentation
637
722
 
638
- - [Website](https://aurorallm.online/)
639
- - [CLI Reference](https://github.com/aurorallm/aurora)
640
- - [Provider Configuration](https://github.com/aurorallm/aurora)
641
- - [Admin Dashboard](https://github.com/aurorallm/aurora)
642
- - [Docker Compose & Helm](https://github.com/aurorallm/aurora)
723
+ - [aurorallm.online/docs](https://aurorallm.online/docs) — full documentation
724
+ - [aurorallm.online/docs/getting-started/quickstart](https://aurorallm.online/docs/getting-started/quickstart) — quickstart guide
725
+ - [aurorallm.online/docs/guides](https://aurorallm.online/docs/guides) — provider and integration guides
726
+ - [aurorallm.online/docs/api/overview](https://aurorallm.online/docs/api/overview) — API reference
727
+ - [aurorallm.online/benchmarks](https://aurorallm.online/benchmarks) — performance benchmarks
643
728
 
644
729
  ---
645
730
 
@@ -664,4 +749,4 @@ We welcome contributions of all kinds! Check out the repository to get started:
664
749
 
665
750
  This project is licensed under the Apache 2.0 License — see the [LICENSE](LICENSE) file for details.
666
751
 
667
- Built with ❤️ by the Aurora team.
752
+ Built 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.31",
2
+ "version": "1.0.32",
3
3
  "author": "Aurora Gateway",
4
4
  "license": "Apache-2.0",
5
5
  "files": [