orama/sdk/package.json
anonpenguin23 481e32df5d release: 0.122.97 — namespace-bound API key auth, WebRTC role reconciliation, TURN TLS
Validate API keys against the gateway's OWN namespace RQLite instead of the
core cluster. `orama namespace keys create` writes keys to the namespace DB
(:10000), but validation read the core DB (:5001), so every namespace key
returned 401. Auth now binds explicitly to the namespace-bound handle via a
narrow apiKeyQuerier interface, and the duplicate core-bound lookup in
jwt_handler.go — the cause of POST /v1/auth/token 401s — uses the same handle.

Underlying cause is that client.DefaultClientConfig pre-populates
DatabaseEndpoints from bootstrap peers on port 5001, so the `if len(...) == 0`
override in dependencies.go silently discards rqlite_dsn. That default is left
alone here: g.client feeds 26 call sites (ACME, domains, vault, push), so
flipping it needs its own change with each consumer audited.

Also in this release:
- WebRTC role reconciliation: node replacement left turn/sfu allocations on the
  departed node. Allocation-sourced ports, spawn gating, 60s reconciler.
- TURNS certs: single-label turn-<ns> host so the LE wildcard actually covers
  it, plus a warm ReconcileTURN patch. SFU media_port=0 crash-loop fixed.
- DNS: purge inactive TURN/namespace host records, retract foreign records.
- Serverless: nested invokes from system parents carry the internal trigger type.
- Storage: evict handler, unpin idempotency.

API-key auth verified end-to-end on devnet 0.122.97: token exchange returns 200
with correct namespace and scope claims; bogus keys still 401. Full suite green.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-27 13:00:08 +03:00

83 lines
1.8 KiB
JSON

{
"name": "@debros/orama",
"version": "0.122.97",
"description": "TypeScript SDK for Orama Network - Database, PubSub, Cache, Storage, Vault, and more",
"type": "module",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"license": "MIT",
"author": "DeBrosOfficial",
"keywords": [
"debros",
"network",
"sdk",
"typescript",
"database",
"rqlite",
"pubsub",
"websocket",
"cache",
"olric",
"ipfs",
"storage",
"wasm",
"serverless",
"distributed",
"gateway",
"vault",
"secrets",
"shamir",
"encryption",
"guardian"
],
"repository": {
"type": "git",
"url": "https://github.com/DeBrosOfficial/network",
"directory": "sdk"
},
"bugs": {
"url": "https://github.com/DeBrosOfficial/network/issues"
},
"exports": {
".": {
"types": "./dist/index.d.ts",
"default": "./dist/index.js"
}
},
"files": [
"dist",
"src"
],
"scripts": {
"build": "tsup",
"dev": "tsup --watch",
"typecheck": "tsc --noEmit",
"lint": "eslint src tests",
"test": "vitest",
"test:e2e": "vitest run tests/e2e",
"release:npm": "npm publish --access public --registry=https://registry.npmjs.org/",
"release:gh": "npm publish --registry=https://npm.pkg.github.com"
},
"dependencies": {
"@noble/ciphers": "^0.5.3",
"@noble/hashes": "^1.4.0",
"isomorphic-ws": "^5.0.0"
},
"devDependencies": {
"@types/node": "^20.0.0",
"@typescript-eslint/eslint-plugin": "^6.0.0",
"@typescript-eslint/parser": "^6.0.0",
"@vitest/coverage-v8": "^1.0.0",
"dotenv": "^17.2.3",
"eslint": "^8.0.0",
"tsup": "^8.0.0",
"typedoc": "^0.25.0",
"typescript": "^5.3.0",
"vitest": "^1.0.0"
},
"publishConfig": {
"registry": "https://registry.npmjs.org/",
"access": "public"
}
}