iaurora 1.0.16 → 1.0.18
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/README.md +236 -166
- package/bin/aurora.exe +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
|
|
3
|
-
<img alt="Aurora OSS" src="dashboard-ui/public/aurora-oss-logo.svg" width="72">
|
|
3
|
+
<img alt="Aurora OSS" src="https://raw.githubusercontent.com/gurveeer/Aurora/main/dashboard-ui/public/aurora-oss-logo.svg" width="72">
|
|
4
4
|
|
|
5
|
-
# Aurora
|
|
5
|
+
# Aurora Gateway
|
|
6
6
|
|
|
7
7
|
**One gateway. Every provider. Open source.**
|
|
8
8
|
|
|
@@ -13,7 +13,7 @@ Self-hosted. No vendor lock-in. Full source visibility.
|
|
|
13
13
|
<tr>
|
|
14
14
|
<td><a href="https://github.com/gurveeer/Aurora/actions/workflows/test.yml"><img src="https://github.com/gurveeer/Aurora/actions/workflows/test.yml/badge.svg" alt="CI"></a></td>
|
|
15
15
|
<td><a href="https://github.com/gurveeer/Aurora/blob/main/go.mod"><img src="https://img.shields.io/github/go-mod/go-version/gurveeer/Aurora?style=flat-square&label=Go" alt="Go Version"></a></td>
|
|
16
|
-
<td><a href="https://
|
|
16
|
+
<td><a href="https://www.npmjs.com/package/iaurora"><img src="https://img.shields.io/npm/v/iaurora?style=flat-square&label=npm" alt="npm"></a></td>
|
|
17
17
|
<td><a href="https://github.com/gurveeer/Aurora/stargazers"><img src="https://img.shields.io/github/stars/gurveeer/Aurora?style=flat-square" alt="Stars"></a></td>
|
|
18
18
|
</tr>
|
|
19
19
|
<tr>
|
|
@@ -30,223 +30,293 @@ Self-hosted. No vendor lock-in. Full source visibility.
|
|
|
30
30
|
</tr>
|
|
31
31
|
</table>
|
|
32
32
|
|
|
33
|
-
<a href="docs/assets/dashboard-overview.png">
|
|
34
|
-
<img src="docs/assets/dashboard-overview.png" alt="Aurora dashboard" width="100%">
|
|
33
|
+
<a href="https://github.com/gurveeer/Aurora/blob/main/docs/assets/dashboard-overview.png">
|
|
34
|
+
<img src="https://raw.githubusercontent.com/gurveeer/Aurora/main/docs/assets/dashboard-overview.png" alt="Aurora dashboard" width="100%">
|
|
35
35
|
</a>
|
|
36
36
|
|
|
37
37
|
</div>
|
|
38
38
|
|
|
39
39
|
---
|
|
40
40
|
|
|
41
|
-
##
|
|
41
|
+
## CLI reference
|
|
42
42
|
|
|
43
|
-
**Docker**
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
docker run --rm -p 8080:8080 \
|
|
47
|
-
-e OPENAI_API_KEY="sk-..." \
|
|
48
|
-
gurveeer/Aurora
|
|
49
43
|
```
|
|
44
|
+
aurora [flags]
|
|
45
|
+
aurora init [flags]
|
|
46
|
+
aurora update
|
|
47
|
+
aurora uninstall
|
|
48
|
+
aurora models <command> [flags]
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
| Command | Description |
|
|
52
|
+
|---------|-------------|
|
|
53
|
+
| `aurora` | Start the gateway server |
|
|
54
|
+
| `aurora init` | Bootstrap config.yaml, .env, and data/ directory |
|
|
55
|
+
| `aurora update` | Self-update to the latest npm version |
|
|
56
|
+
| `aurora uninstall` | Remove aurora from your system |
|
|
57
|
+
| `aurora models sync` | Download upstream model registry to local file |
|
|
58
|
+
| `aurora models diff` | Show pricing diff between upstream and local snapshot |
|
|
59
|
+
| `aurora models show` | Print effective pricing for a model |
|
|
60
|
+
|
|
61
|
+
| Flag | Description |
|
|
62
|
+
|------|-------------|
|
|
63
|
+
| `-version` | Print version information |
|
|
64
|
+
| `-help` | Show full configuration reference and env vars |
|
|
65
|
+
| `-help-json` | Dump environment variable schema as JSON |
|
|
66
|
+
|
|
67
|
+
| `aurora init` flag | Description |
|
|
68
|
+
|-------------------|-------------|
|
|
69
|
+
| `-dir <path>` | Target directory (default: current directory) |
|
|
70
|
+
| `-force` | Overwrite existing files |
|
|
71
|
+
| `-with-models` | Also download the model registry |
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Quick start
|
|
50
76
|
|
|
51
|
-
|
|
77
|
+
### npm (recommended)
|
|
52
78
|
|
|
53
79
|
```bash
|
|
80
|
+
# Install globally
|
|
54
81
|
npm install -g iaurora
|
|
55
|
-
|
|
56
|
-
|
|
82
|
+
|
|
83
|
+
# Scaffold a new project
|
|
84
|
+
mkdir my-gateway && cd my-gateway
|
|
85
|
+
aurora init
|
|
86
|
+
|
|
87
|
+
# Edit .env with your API key(s)
|
|
88
|
+
# Uncomment one of the provider keys:
|
|
89
|
+
# GROQ_API_KEY=gsk_...
|
|
90
|
+
# OPENAI_API_KEY=sk-...
|
|
91
|
+
# etc.
|
|
92
|
+
|
|
93
|
+
# Start the gateway
|
|
94
|
+
aurora
|
|
57
95
|
```
|
|
58
96
|
|
|
59
|
-
|
|
97
|
+
The gateway boots on `http://localhost:8080` with every free feature enabled.
|
|
98
|
+
Open the dashboard at `http://localhost:8080/admin/dashboard`.
|
|
60
99
|
|
|
61
|
-
|
|
100
|
+
### Docker
|
|
62
101
|
|
|
63
102
|
```bash
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
103
|
+
docker run --rm -p 8080:8080 \
|
|
104
|
+
-e AURORA_MASTER_KEY="your-secure-key" \
|
|
105
|
+
-e GROQ_API_KEY="gsk_..." \
|
|
106
|
+
gurveeer/Aurora
|
|
67
107
|
```
|
|
68
108
|
|
|
69
|
-
|
|
109
|
+
For configurable deployments, mount your `config.yaml` and `.env`:
|
|
70
110
|
|
|
71
111
|
```bash
|
|
72
|
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
112
|
+
docker run --rm -p 8080:8080 \
|
|
113
|
+
-v /path/to/config.yaml:/app/config.yaml \
|
|
114
|
+
-v /path/to/.env:/app/.env \
|
|
115
|
+
-e AURORA_CONFIG_PATH=/app/config.yaml \
|
|
116
|
+
gurveeer/Aurora
|
|
75
117
|
```
|
|
76
118
|
|
|
77
|
-
|
|
78
|
-
|---|---|
|
|
79
|
-
| Dashboard | `http://localhost:8080/admin/dashboard` |
|
|
80
|
-
| Health check | `http://localhost:8080/health` |
|
|
81
|
-
| Swagger | `http://localhost:8080/swagger/index.html` |
|
|
119
|
+
### From source
|
|
82
120
|
|
|
83
|
-
|
|
121
|
+
```bash
|
|
122
|
+
git clone https://github.com/gurveeer/Aurora.git && cd Aurora
|
|
84
123
|
|
|
85
|
-
|
|
124
|
+
# Build the dashboard UI (one-time)
|
|
125
|
+
pnpm --dir dashboard-ui install && pnpm --dir dashboard-ui run build
|
|
86
126
|
|
|
87
|
-
|
|
127
|
+
# Build the binary
|
|
128
|
+
go build -o bin/aurora ./apps/aurora
|
|
88
129
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
</a>
|
|
93
|
-
<a href="docs/assets/audit-logs.png">
|
|
94
|
-
<img src="docs/assets/audit-logs.png" alt="Audit logs" width="48%">
|
|
95
|
-
</a>
|
|
96
|
-
</p>
|
|
130
|
+
# Use the CLI's init command
|
|
131
|
+
./bin/aurora init -dir ./my-gateway
|
|
132
|
+
cd ./my-gateway
|
|
97
133
|
|
|
98
|
-
|
|
134
|
+
# Edit .env with keys, then start
|
|
135
|
+
../bin/aurora
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
---
|
|
99
139
|
|
|
100
|
-
|
|
140
|
+
## What `aurora init` generates
|
|
101
141
|
|
|
102
|
-
|
|
142
|
+
```
|
|
143
|
+
my-gateway/
|
|
144
|
+
├── config.yaml # Full config (all OSS features ON)
|
|
145
|
+
├── .env # Every env var documented
|
|
146
|
+
├── configs/
|
|
147
|
+
│ └── fallback.json # Fallback routing rules (example)
|
|
148
|
+
└── data/
|
|
149
|
+
└── user_pricing.yaml # Model pricing overrides
|
|
150
|
+
```
|
|
103
151
|
|
|
104
|
-
**
|
|
152
|
+
**All 15 config sections are active** — nothing needs to be uncommented for the gateway to work. The generated files serve as living documentation: every option is listed with a description and its default value. Commented-out blocks show advanced features that need external infrastructure (Redis, PostgreSQL, vector stores).
|
|
153
|
+
|
|
154
|
+
### Feature overview
|
|
155
|
+
|
|
156
|
+
| Feature | What it does | How to use |
|
|
157
|
+
|---------|-------------|------------|
|
|
158
|
+
| **HTTP Gateway** | OpenAI-compatible `/v1/chat/completions`, `/v1/embeddings`, `/v1/models`, etc. | Send any OpenAI SDK/client at it |
|
|
159
|
+
| **Admin Dashboard** | Web UI for managing providers, API keys, models, combos | `http://localhost:8080/admin/dashboard` |
|
|
160
|
+
| **Model Discovery** | Detects providers and their models from env vars automatically | Just set `GROQ_API_KEY` — models appear in `/v1/models` |
|
|
161
|
+
| **Passthrough Routes** | Call provider APIs directly through the gateway | `POST /p/groq/v1/chat/completions` |
|
|
162
|
+
| **Anthropic Ingress** | Native Anthropic-format `/v1/messages` endpoint | Send Anthropic SDK traffic directly |
|
|
163
|
+
| **Audit Logging** | Records every request/response with retention | View in dashboard → Audit Logs |
|
|
164
|
+
| **Usage Tracking** | Token counts, cost per request, historical analytics | View in dashboard → Usage |
|
|
165
|
+
| **Prometheus Metrics** | Go runtime + request metrics | `GET /metrics` |
|
|
166
|
+
| **Guardrails** | Content safety filters (system prompt, regex, PII redaction) | Configure in dashboard or `guardrails` in YAML |
|
|
167
|
+
| **Token Saver** | Compresses responses to cut token spend | Set `TOKEN_SAVER_ENABLED=true` (already on by default) |
|
|
168
|
+
| **Swagger UI** | Interactive API docs | `http://localhost:8080/swagger/index.html` |
|
|
169
|
+
| **pprof** | Go performance profiling | `http://localhost:8080/debug/pprof/` |
|
|
170
|
+
| **Fallback Routing** | Auto-failover when a provider returns an error | Configured in `fallback.json` |
|
|
171
|
+
| **Resilience** | Retries transient failures + circuit breaker | On by default (3 retries, 30s backoff) |
|
|
172
|
+
| **Combo Models** | Send one prompt to multiple models, get all responses | Create via dashboard or API |
|
|
173
|
+
| **CLI Tools** | Admin configuration via CLI commands | Enable `apply_enabled` for write access |
|
|
174
|
+
| **SQLite Storage** | Zero-config embedded database for all persistence | Default — no setup needed |
|
|
175
|
+
|
|
176
|
+
### Your first request
|
|
105
177
|
|
|
106
|
-
|
|
178
|
+
```bash
|
|
179
|
+
curl http://localhost:8080/v1/chat/completions \
|
|
180
|
+
-H "Content-Type: application/json" \
|
|
181
|
+
-H "Authorization: Bearer $(grep AURORA_MASTER_KEY .env | cut -d= -f2)" \
|
|
182
|
+
-d '{
|
|
183
|
+
"model": "groq/llama-3.3-70b-versatile",
|
|
184
|
+
"messages": [{"role": "user", "content": "Hello!"}]
|
|
185
|
+
}'
|
|
186
|
+
```
|
|
107
187
|
|
|
108
|
-
|
|
188
|
+
Or using the admin dashboard at `http://localhost:8080/admin/dashboard` to test models interactively.
|
|
109
189
|
|
|
110
190
|
---
|
|
111
191
|
|
|
112
|
-
##
|
|
113
|
-
|
|
114
|
-
This repository is intended to be published as the **Aurora OSS source tree**. It should contain source code, tests, examples, generated OpenAPI/docs assets, and public documentation only.
|
|
192
|
+
## Providers
|
|
115
193
|
|
|
116
|
-
|
|
194
|
+
Providers are **auto-discovered from environment variables**. Set any of these keys in your `.env` and restart — the provider and its models appear automatically.
|
|
117
195
|
|
|
118
|
-
|
|
196
|
+
| Provider | Env var | Default models |
|
|
197
|
+
|----------|---------|----------------|
|
|
198
|
+
| OpenAI | `OPENAI_API_KEY` | `gpt-4o`, `gpt-4o-mini` |
|
|
199
|
+
| Anthropic | `ANTHROPIC_API_KEY` | `claude-sonnet-4`, `claude-opus-4` |
|
|
200
|
+
| Google Gemini | `GEMINI_API_KEY` | `gemini-2.5-pro`, `gemini-2.5-flash` |
|
|
201
|
+
| Groq | `GROQ_API_KEY` | `llama-3.3-70b`, `qwen3-32b`, `whisper` |
|
|
202
|
+
| DeepSeek | `DEEPSEEK_API_KEY` | `deepseek-chat`, `deepseek-reasoner` |
|
|
203
|
+
| OpenRouter | `OPENROUTER_API_KEY` | 300+ models |
|
|
204
|
+
| xAI | `XAI_API_KEY` | `grok-3`, `grok-3-mini` |
|
|
205
|
+
| Z.ai | `ZAI_API_KEY` | `glm-4.5` |
|
|
206
|
+
| MiniMax | `MINIMAX_API_KEY` | `minimax-m1` |
|
|
207
|
+
| Azure OpenAI | `AZURE_API_KEY` + `AZURE_BASE_URL` | Your deployments |
|
|
208
|
+
| Oracle | `ORACLE_API_KEY` + `ORACLE_BASE_URL` | `cohere.command-r-plus` |
|
|
209
|
+
| Ollama | `OLLAMA_BASE_URL` | Any local model |
|
|
210
|
+
| vLLM | `VLLM_BASE_URL` | Any served model |
|
|
119
211
|
|
|
120
|
-
|
|
212
|
+
**Custom base URL?** Set `OPENAI_BASE_URL`, `GROQ_BASE_URL`, etc. in `.env`.
|
|
121
213
|
|
|
122
|
-
|
|
123
|
-
- Dashboard source under `dashboard-ui/` and minimal embedded dashboard placeholders needed by Go builds.
|
|
124
|
-
- Public config examples under `configs/`, `configuration/`, `helm/`, `.env.template`, and docs.
|
|
125
|
-
- Tests under `test/` and public fixtures with dummy credentials only.
|
|
126
|
-
- CI, release, Docker, Helm, and packaging scripts.
|
|
214
|
+
**Multiple instances of the same provider?** Use suffix notation: `OPENAI_EAST_API_KEY`, `OPENAI_EAST_BASE_URL`, `OPENAI_WEST_API_KEY`, etc.
|
|
127
215
|
|
|
128
|
-
|
|
216
|
+
---
|
|
129
217
|
|
|
130
|
-
|
|
131
|
-
- Runtime data: `data/`, logs, caches, SQLite files, benchmark output, and temporary files.
|
|
132
|
-
- Build/package output: `bin/`, `dist/`, `release/`, `npm/`, `*.exe`, `*.tgz`, archives.
|
|
133
|
-
- User/editor/agent config that may contain private paths or endpoints: `.vscode/`, `.idea/`, `opencode.json`, `.claude/settings.local.json`.
|
|
134
|
-
- Any provider API key, database URL, Redis URL, vector DB token, private certificate/key, or managed API key.
|
|
218
|
+
## Using the admin dashboard
|
|
135
219
|
|
|
136
|
-
|
|
220
|
+
Open `http://localhost:8080/admin/dashboard` to:
|
|
137
221
|
|
|
138
|
-
|
|
222
|
+
- **Manage API keys** — Create and revoke gateway-level API keys with usage limits
|
|
223
|
+
- **Toggle models** — Enable/disable specific models per provider
|
|
224
|
+
- **Override pricing** — Set custom input/output token costs per model
|
|
225
|
+
- **View analytics** — Request volume, token usage, latency, error rates
|
|
226
|
+
- **Browse audit logs** — Every request, who made it, what model, how many tokens
|
|
227
|
+
- **Configure guardrails** — Add content safety rules
|
|
228
|
+
- **Create combos** — Multi-model comparison and fallback groups
|
|
229
|
+
- **Monitor cache** — Hit rates for exact and semantic caches
|
|
139
230
|
|
|
140
|
-
|
|
141
|
-
- Live Redis/PostgreSQL/Qdrant connection strings.
|
|
142
|
-
- Private certificates and key material.
|
|
143
|
-
- Local absolute paths and machine-specific `.aurora.local` files.
|
|
144
|
-
- Generated binaries and package archives.
|
|
231
|
+
---
|
|
145
232
|
|
|
146
|
-
|
|
233
|
+
## Combo models
|
|
147
234
|
|
|
148
|
-
|
|
235
|
+
Combos let you send one prompt to multiple models simultaneously. The primary model responds; if it fails, fallback models are tried automatically.
|
|
149
236
|
|
|
150
|
-
|
|
151
|
-
- Keep `LOGGING_LOG_BODIES=false` and `LOGGING_LOG_HEADERS=false` unless you explicitly need request debugging and understand the privacy impact.
|
|
152
|
-
- Use `.env.template` as documentation only. Put real values in untracked `.env` files, deployment secrets, or your hosting provider's secret manager.
|
|
153
|
-
- Rotate any credential that was ever present in a local `.env`, `.aurora.local`, package artifact, shell history, or shared archive before public release.
|
|
154
|
-
- Audit logs hash API keys for identification and redact sensitive headers in reader paths, but request/response body logging can still capture sensitive prompts if enabled.
|
|
237
|
+
### Create via dashboard
|
|
155
238
|
|
|
156
|
-
|
|
239
|
+
1. Open `http://localhost:8080/admin/dashboard`
|
|
240
|
+
2. Go to **Combos** → **Add Combo**
|
|
241
|
+
3. Name it, select 2+ models, save
|
|
157
242
|
|
|
158
|
-
|
|
243
|
+
### Create via API
|
|
159
244
|
|
|
160
245
|
```bash
|
|
161
|
-
|
|
162
|
-
|
|
246
|
+
curl -X POST http://localhost:8080/admin/api/v1/combos \
|
|
247
|
+
-H "Authorization: Bearer $AURORA_MASTER_KEY" \
|
|
248
|
+
-H "Content-Type: application/json" \
|
|
249
|
+
-d '{"name":"my-combo","models":["groq/llama-3.3-70b-versatile","groq/qwen/qwen3-32b"],"enabled":true}'
|
|
250
|
+
```
|
|
163
251
|
|
|
164
|
-
|
|
165
|
-
rg -n --hidden -g '!node_modules' -g '!dashboard-ui/node_modules' -g '!*.png' -g '!*.jpg' -g '!*.lock' \
|
|
166
|
-
'(rediss://|postgres://[^[:space:]"'"'']+:[^[:space:]"'"'']+@|BEGIN (RSA |EC |OPENSSH |)PRIVATE KEY|[A-Z0-9_]*API_KEY\s*=\s*(sk-|gsk_|jina_|eyJ|[A-Za-z0-9_-]{20,}))'
|
|
252
|
+
### Use a combo
|
|
167
253
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
254
|
+
```bash
|
|
255
|
+
curl http://localhost:8080/v1/chat/completions \
|
|
256
|
+
-H "Authorization: Bearer $AURORA_MASTER_KEY" \
|
|
257
|
+
-H "Content-Type: application/json" \
|
|
258
|
+
-d '{"model":"my-combo","messages":[{"role":"user","content":"Hello!"}]}'
|
|
172
259
|
```
|
|
173
260
|
|
|
174
|
-
|
|
261
|
+
---
|
|
175
262
|
|
|
176
|
-
|
|
263
|
+
## Configuration
|
|
177
264
|
|
|
178
|
-
|
|
265
|
+
The gateway loads settings in this order (later wins):
|
|
179
266
|
|
|
180
|
-
|
|
267
|
+
```
|
|
268
|
+
code defaults → config.yaml → .env / env vars
|
|
269
|
+
```
|
|
181
270
|
|
|
182
|
-
|
|
271
|
+
### config.yaml
|
|
183
272
|
|
|
184
|
-
|
|
185
|
-
|---|---|:---:|:---:|:---:|:---:|:---:|
|
|
186
|
-
| OpenAI | `OPENAI_API_KEY` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
187
|
-
| Anthropic | `ANTHROPIC_API_KEY` | ✅ | | | ✅ | ✅ |
|
|
188
|
-
| Google Gemini | `GEMINI_API_KEY` | ✅ | ✅ | ✅ | ✅ | |
|
|
189
|
-
| DeepSeek | `DEEPSEEK_API_KEY` | ✅ | | | | |
|
|
190
|
-
| Groq | `GROQ_API_KEY` | ✅ | ✅ | ✅ | ✅ | |
|
|
191
|
-
| OpenRouter | `OPENROUTER_API_KEY` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
192
|
-
| Z.ai | `ZAI_API_KEY` | ✅ | ✅ | | | ✅ |
|
|
193
|
-
| xAI | `XAI_API_KEY` | ✅ | ✅ | ✅ | ✅ | |
|
|
194
|
-
| Azure OpenAI | `AZURE_API_KEY` + `AZURE_BASE_URL` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
195
|
-
| Oracle | `ORACLE_API_KEY` + `ORACLE_BASE_URL` | ✅ | | | | |
|
|
196
|
-
| Ollama | `OLLAMA_BASE_URL` | ✅ | ✅ | | | |
|
|
197
|
-
| vLLM | `VLLM_BASE_URL` | ✅ | ✅ | | | ✅ |
|
|
198
|
-
|
|
199
|
-
> **Z.ai GLM Coding Plan:** set `ZAI_BASE_URL=https://api.z.ai/api/coding/paas/v4`
|
|
200
|
-
>
|
|
201
|
-
> **Multiple instances of one provider?** Use suffixed env vars: `OPENAI_EAST_API_KEY`, `OPENAI_EAST_BASE_URL`, `OPENAI_EAST_MODELS`
|
|
273
|
+
Generated by `aurora init`. Every section is documented inline:
|
|
202
274
|
|
|
203
|
-
|
|
275
|
+
| Section | What it controls |
|
|
276
|
+
|---------|-----------------|
|
|
277
|
+
| `server` | Port, base path, master key, passthrough, Anthropic ingress |
|
|
278
|
+
| `admin` | Dashboard API and UI |
|
|
279
|
+
| `models` | Discovery, overrides, allowlisting |
|
|
280
|
+
| `storage` | SQLite (default), PostgreSQL, or MongoDB |
|
|
281
|
+
| `logging` | Audit logging of requests/responses |
|
|
282
|
+
| `usage` | Token tracking, pricing, retention |
|
|
283
|
+
| `metrics` | Prometheus endpoint |
|
|
284
|
+
| `guardrails` | Content safety filters |
|
|
285
|
+
| `cache` | Model cache, response cache (exact + semantic) |
|
|
286
|
+
| `combos` | Multi-model combo definitions |
|
|
287
|
+
| `cli_tools` | Admin CLI integration |
|
|
288
|
+
| `token_saver` | Output compression |
|
|
289
|
+
| `fallback` | Provider failover rules |
|
|
290
|
+
| `resilience` | Retry + circuit breaker |
|
|
291
|
+
| `workflows` | Workflow refresh cadence |
|
|
204
292
|
|
|
205
|
-
|
|
293
|
+
### .env
|
|
206
294
|
|
|
207
|
-
|
|
295
|
+
Every environment variable is listed with its purpose and default value. Free features are uncommented (set to their default or `true`). Features needing external infrastructure (Redis, PostgreSQL, vector stores) are commented out with instructions.
|
|
208
296
|
|
|
209
|
-
|
|
210
|
-
# Copy the env template for secrets/runtime values
|
|
211
|
-
cp .env.template .env
|
|
297
|
+
### Using a different config profile
|
|
212
298
|
|
|
213
|
-
|
|
214
|
-
export AURORA_CONFIG_PATH=configs/editions/oss.example.yaml
|
|
299
|
+
```bash
|
|
300
|
+
export AURORA_CONFIG_PATH=configs/editions/oss.team.example.yaml
|
|
301
|
+
aurora
|
|
215
302
|
```
|
|
216
303
|
|
|
217
304
|
| Profile | Best for | External services |
|
|
218
|
-
|
|
219
|
-
|
|
|
220
|
-
|
|
|
221
|
-
|
|
|
222
|
-
|
|
223
|
-
**Key settings:**
|
|
224
|
-
|
|
225
|
-
| Setting | Default | What it does |
|
|
226
|
-
|---|---|---|
|
|
227
|
-
| `PORT` | `8080` | Listen port |
|
|
228
|
-
| `AURORA_MASTER_KEY` | -- | Gateway/admin API key (set before exposing outside localhost) |
|
|
229
|
-
| `STORAGE_TYPE` | `sqlite` | `sqlite`, `postgresql`, or `mongodb` |
|
|
230
|
-
| `LOGGING_ENABLED` | `false` | Audit logging |
|
|
231
|
-
| `METRICS_ENABLED` | `false` | Prometheus metrics |
|
|
232
|
-
| `GUARDRAILS_ENABLED` | `false` | Guardrail workflows |
|
|
233
|
-
| `ENABLE_PASSTHROUGH_ROUTES` | `true` | `/p/{provider}/...` passthrough |
|
|
234
|
-
| `TOKEN_SAVER_ENABLED` | `false` | Optional concise-output/token-saving transforms |
|
|
235
|
-
| `RESPONSE_CACHE_SIMPLE_ENABLED` | `false` unless configured in YAML | Redis exact response cache |
|
|
236
|
-
| `SEMANTIC_CACHE_ENABLED` | `false` unless configured in YAML | Embedding + vector-store semantic response cache |
|
|
237
|
-
|
|
238
|
-
Full reference: [`configs/config.example.yaml`](configs/config.example.yaml)
|
|
305
|
+
|---------|----------|-------------------|
|
|
306
|
+
| `aurora init` (default) | First run, individual devs | None |
|
|
307
|
+
| `oss.local-power.example.yaml` | Local power users with caching | Redis |
|
|
308
|
+
| `oss.team.example.yaml` | Team deployment | PostgreSQL, Redis, Qdrant |
|
|
239
309
|
|
|
240
310
|
---
|
|
241
311
|
|
|
242
312
|
## Response caching
|
|
243
313
|
|
|
244
|
-
Two layers
|
|
314
|
+
Two optional layers. Both need Redis.
|
|
245
315
|
|
|
246
|
-
- **Exact cache**
|
|
247
|
-
- **Semantic cache**
|
|
316
|
+
- **Exact cache** — Hashes the request body and returns cached response on identical requests. Header: `X-Cache: HIT (exact)`.
|
|
317
|
+
- **Semantic cache** — Embeds prompts, searches a vector store for semantically similar requests. Supports Qdrant, pgvector, Pinecone, Weaviate. Header: `X-Cache: HIT (semantic)`.
|
|
248
318
|
|
|
249
|
-
|
|
319
|
+
Bypass per-request: `Cache-Control: no-cache`
|
|
250
320
|
|
|
251
321
|
---
|
|
252
322
|
|
|
@@ -257,48 +327,50 @@ Per-request bypass: `Cache-Control: no-cache` or `Cache-Control: no-store`.
|
|
|
257
327
|
docker compose up -d
|
|
258
328
|
|
|
259
329
|
# Full stack (Aurora + infra)
|
|
260
|
-
cp .env.template .env
|
|
261
330
|
docker compose --profile app up -d
|
|
262
|
-
|
|
263
|
-
# Local image build
|
|
264
|
-
docker build -t aurora-oss .
|
|
265
|
-
docker run --rm -p 8080:8080 --env-file .env aurora-oss
|
|
266
331
|
```
|
|
267
332
|
|
|
268
333
|
---
|
|
269
334
|
|
|
270
335
|
## Build from source
|
|
271
336
|
|
|
272
|
-
**Prerequisites:** Go 1.26.2+, Node.js
|
|
337
|
+
**Prerequisites:** Go 1.26.2+, Node.js ≥18, pnpm
|
|
273
338
|
|
|
274
339
|
```bash
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
340
|
+
git clone https://github.com/gurveeer/Aurora.git && cd Aurora
|
|
341
|
+
|
|
342
|
+
# Dashboard UI (required for admin dashboard)
|
|
343
|
+
pnpm --dir dashboard-ui install && pnpm --dir dashboard-ui run build
|
|
278
344
|
|
|
279
345
|
# Binary
|
|
280
|
-
go build -o bin/aurora
|
|
346
|
+
go build -o bin/aurora ./apps/aurora
|
|
281
347
|
|
|
282
|
-
#
|
|
283
|
-
|
|
348
|
+
# Test
|
|
349
|
+
go test ./apps/... ./internal/...
|
|
284
350
|
```
|
|
285
351
|
|
|
286
|
-
|
|
352
|
+
After building, use `aurora init` to scaffold a project, or run directly with env vars:
|
|
287
353
|
|
|
288
|
-
|
|
354
|
+
```bash
|
|
355
|
+
export AURORA_MASTER_KEY="my-key"
|
|
356
|
+
export GROQ_API_KEY="gsk_..."
|
|
357
|
+
./bin/aurora
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
---
|
|
361
|
+
|
|
362
|
+
## Self-update & uninstall
|
|
289
363
|
|
|
290
364
|
```bash
|
|
291
|
-
|
|
292
|
-
|
|
365
|
+
aurora update # Updates iaurora npm package to latest version
|
|
366
|
+
aurora uninstall # Removes iaurora npm package from your system
|
|
293
367
|
```
|
|
294
368
|
|
|
295
369
|
---
|
|
296
370
|
|
|
297
371
|
## Enterprise
|
|
298
372
|
|
|
299
|
-
Aurora OSS covers gateway routing, analytics, and provider operations. **Aurora Enterprise** adds SSO, RBAC, tenant isolation, budget enforcement, compliance workflows, and production support.
|
|
300
|
-
|
|
301
|
-
The Enterprise edition is a separate distribution. It cannot be enabled by editing files in this OSS tree.
|
|
373
|
+
Aurora OSS covers gateway routing, analytics, and provider operations. **Aurora Enterprise** adds SSO, RBAC, tenant isolation, budget enforcement, compliance workflows, and production support. The Enterprise edition is a separate distribution — it cannot be enabled by editing files in this tree.
|
|
302
374
|
|
|
303
375
|
---
|
|
304
376
|
|
|
@@ -306,8 +378,6 @@ The Enterprise edition is a separate distribution. It cannot be enabled by editi
|
|
|
306
378
|
|
|
307
379
|
| | |
|
|
308
380
|
|---|---|
|
|
309
|
-
| [Discord](https://discord.gg/YJPrfR9uh) |
|
|
381
|
+
| [Discord](https://discord.gg/YJPrfR9uh) | Questions, provider setup, roadmap |
|
|
310
382
|
| [GitHub Issues](https://github.com/gurveeer/Aurora/issues) | Bug reports, feature requests |
|
|
311
383
|
| [GitHub Stars](https://github.com/gurveeer/Aurora/stargazers) | Support the project |
|
|
312
|
-
|
|
313
|
-
If Aurora saves your team time, a star helps others find it.
|
package/bin/aurora.exe
CHANGED
|
Binary file
|
package/package.json
CHANGED