omnigateway 0.10.3 → 0.11.0

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 (34) hide show
  1. package/README.md +20 -2
  2. package/bin/omni.js +440 -301
  3. package/gateway.js +579 -358
  4. package/package.json +1 -1
  5. package/public/assets/{Chip-BeKVtewW.js → Chip-CmL-9rw7.js} +1 -1
  6. package/public/assets/{CopyValue-NTHhiCuT.js → CopyValue-CTVbU0O_.js} +1 -1
  7. package/public/assets/{Lamp-C2Q3t5Mn.js → Lamp-DtHKJH6P.js} +1 -1
  8. package/public/assets/{Rack-sUGRoZUx.js → Rack-_A_3zqxC.js} +1 -1
  9. package/public/assets/{RequestTable-C2RLARWy.js → RequestTable-Cokk7wKP.js} +1 -1
  10. package/public/assets/{SummaryDeck-BHXcb_Ji.js → SummaryDeck-C0IbqnLz.js} +1 -1
  11. package/public/assets/{Toggle-DwKz1aVq.js → Toggle-ChjN-tw1.js} +1 -1
  12. package/public/assets/{TokenBreakdown-DM-1HvOr.js → TokenBreakdown-BPoXM3JM.js} +1 -1
  13. package/public/assets/{WindowChart-BsonO5Py.js → WindowChart-BPEsEGFL.js} +1 -1
  14. package/public/assets/_app.accounts-DKmxz7Tl.js +59 -0
  15. package/public/assets/{_app.console-BQJMLRv4.js → _app.console-Bkdallia.js} +1 -1
  16. package/public/assets/{_app.database-BIiajZm6.js → _app.database-DxqN1395.js} +1 -1
  17. package/public/assets/{_app.index-DagK0Pqp.js → _app.index-BUqor-qH.js} +3 -3
  18. package/public/assets/{_app.keys-DLAG_bmt.js → _app.keys-DMCPEj1g.js} +1 -1
  19. package/public/assets/{_app.logs-AyVq3lLb.js → _app.logs-DGQD8ZAq.js} +1 -1
  20. package/public/assets/{_app.models-CwlkGPrx.js → _app.models-D6SV_GVk.js} +1 -1
  21. package/public/assets/{_app.plugins._pluginId-BhvEnawY.js → _app.plugins._pluginId-CJ7ObXXe.js} +1 -1
  22. package/public/assets/{_app.settings-BKA-1YLs.js → _app.settings-BVimpngR.js} +1 -1
  23. package/public/assets/{_app.usage-C7JEWKZM.js → _app.usage-Y2Nkaw0t.js} +1 -1
  24. package/public/assets/{chevron-right-S84SGCvk.js → chevron-right-BfnK63GB.js} +1 -1
  25. package/public/assets/{client-DCvpw0LS.js → client-WgQ5A2PD.js} +1 -1
  26. package/public/assets/{index-pZbadEun.js → index-BTE8vyBz.js} +3 -3
  27. package/public/assets/{login-CitmheGz.js → login-CrJK9wRA.js} +1 -1
  28. package/public/assets/plus-Cv51cK5k.js +1 -0
  29. package/public/assets/{preload-helper-BC9bKUg1.js → preload-helper-BknjH67x.js} +1 -1
  30. package/public/assets/{shared-C47BfV_u.js → shared-oTMOLWMT.js} +1 -1
  31. package/public/assets/{trash-2-DmtElUHr.js → trash-2-CSkf6ME_.js} +1 -1
  32. package/public/index.html +4 -4
  33. package/public/assets/_app.accounts-DUYxItf0.js +0 -59
  34. package/public/assets/plus-E7qLz9CF.js +0 -1
package/README.md CHANGED
@@ -265,6 +265,23 @@ Several replicas behind a load balancer are **cluster mode** on Postgres and
265
265
  Redis. All of it, with the nginx block and the Kubernetes base, is in
266
266
  [docs/deploying.md](docs/deploying.md).
267
267
 
268
+ ### Upgrading past v0.10.3 — action required
269
+
270
+ The first release after v0.10.3 drops two columns from `credential_health`
271
+ that every earlier gateway writes on **every successful request**. The moment
272
+ the new version migrates the database, every older gateway still running fails
273
+ each request *after* the upstream call has completed and been billed: the
274
+ client gets its content and then an aborted connection with no terminal frame.
275
+
276
+ - **Cluster mode:** a rolling deploy does not protect you — the surviving old
277
+ replica is the one that breaks. Scale to **one replica** before deploying
278
+ this release, then scale back up, or accept that every old replica serves
279
+ only failures until it is replaced.
280
+ - **Single process (SQLite):** the upgrade itself is safe; the rollback is not.
281
+ - **Rollback is unsafe on both.** An older version cannot re-add the columns
282
+ and fails the same way against the new schema. Take a snapshot **before** the
283
+ deploy; restoring it is the only way back.
284
+
268
285
  ## Configuration
269
286
 
270
287
  Configuration is environment variables, read from the installation's `.env`:
@@ -290,6 +307,7 @@ Configuration is environment variables, read from the installation's `.env`:
290
307
  | `OMNI_CLUSTER_MODE` | No | unset | `true` selects [cluster mode](docs/deploying.md#running-more-than-one-gateway) and requires the two URLs below; unset is one process on SQLite, and then the URLs must be unset too |
291
308
  | `OMNI_DATABASE_URL` | In cluster mode | — | The shared Postgres store |
292
309
  | `OMNI_REDIS_URL` | In cluster mode | — | The coordinator every process of a cluster shares: rate-limit counters, sessions, leases, push fan-out |
310
+ | `OMNI_DAY_OFFSET_MINUTES` | No | host's UTC offset at boot | Fixed minutes east of UTC for daily usage buckets; set explicitly and identically on every replica |
293
311
 
294
312
  `OMNI_ROOT` is the one variable read from your shell and never from a root's `.env`, for the
295
313
  reason it has to be: a variable that selects the installation cannot live inside the installation
@@ -357,8 +375,8 @@ Worth knowing before you deploy it:
357
375
  password and a per-key client dashboard exist; there is no multi-tenancy —
358
376
  every provider account is the operator's, whoever is looking.
359
377
  - **Two grains of usage history.** Detailed request logs are pruned after 30
360
- days by default; a daily rollup is kept for 400 days. A day is your host's
361
- local midnight, fixed when the row is written.
378
+ days by default; a daily rollup is kept for 400 days. A day uses a fixed UTC
379
+ offset, defaulting to the host's current offset; fleets must set it explicitly.
362
380
  - **Body capture is forensics, not an archive.** It is off unless you turn it on
363
381
  with both keys, it expires on the request-log window, and it is capped at
364
382
  100,000 rows. `omni bodies` reads one request's capture; nothing searches