You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`/.well-known/nostr.json` is now a public endpoint (no auth required) for NIP-05 verification
24
+
25
+
#### Added
26
+
-**Webhook delivery**: HMAC-SHA256 signed POST (`X-Portal-Signature` header) to configured URL on every stream event
27
+
-**SQLite event persistence**: Events stored with WAL mode; startup recovery for in-flight `single_payment` streams
28
+
-`GET /info`: New authenticated endpoint returning server public key
29
+
-**TypeScript SDK**: `autoPollingIntervalMs` config option starts a background scheduler; `poll(op)` now typed — takes `AsyncOperation<T>`, returns `T`; `destroy()` stops the auto-poller; `webhookHandler()` for HMAC-verified webhook processing
30
+
-**Java SDK** (`portal-java-sdk`): Full rewrite from WebSocket to REST; `PortalClient` with `PortalClientConfig` supporting manual polling, auto-polling, and webhooks; all async methods return typed `AsyncOperation<T>`
31
+
-**OpenAPI spec**: `openapi.yaml` with all endpoints, request/response schemas, and `StreamIdResponse` for async operations
32
+
-**Documentation**: Full mdBook docs with HTTP/curl tabs on every page, REST API guide, interactive OpenAPI viewer (Redoc), updated environment variables reference
33
+
-**Examples**: Runnable Node.js examples (`auth.js`, `single-payment.js`, `profile.js`, `error-handling.js`) with `.env` support
-**Performance**: Shared `reqwest::Client` in `EventStore` for webhook delivery (no per-event allocation)
36
+
37
+
#### Fixed
38
+
- TypeScript SDK: `requestSinglePayment`, `requestPaymentRaw`, `requestRecurringPayment` now return correctly typed `AsyncOperation<T>` (previously returned raw `StreamEvent`)
The SDK `major.minor` version must match the daemon. Patch versions are independent. See [Versioning & Compatibility](https://portaltechnologiesinc.github.io/lib/getting-started/versioning.html).
53
+
Any language works — Python, Go, Ruby, PHP, Java, TypeScript. No SDK required.
74
54
75
55
---
76
56
@@ -84,11 +64,30 @@ The SDK `major.minor` version must match the daemon. Patch versions are independ
84
64
85
65
---
86
66
67
+
## Documentation
68
+
69
+
Full docs at **[portaltechnologiesinc.github.io/lib](https://portaltechnologiesinc.github.io/lib/)** — REST API reference, curl examples, guides for authentication, payments, Cashu, JWT, Docker deployment, and more.
70
+
71
+
---
72
+
73
+
## Official SDKs
74
+
75
+
For JavaScript/TypeScript and Java, typed SDKs are available. They wrap the same REST API with auto-polling, webhook handling, and typed responses.
The SDK `major.minor` version must match the daemon. See [Versioning & Compatibility](https://portaltechnologiesinc.github.io/lib/getting-started/versioning.html).
83
+
84
+
---
85
+
87
86
## This repository
88
87
89
88
| Package | Description |
90
89
|---------|-------------|
91
-
|`portal-rest`| SDK Daemon — HTTP + WebSocket API server |
90
+
|`portal-rest`| SDK Daemon — REST API server |
92
91
|`portal`| Core Nostr protocol and conversation logic |
93
92
|`portal-app`| App runtime and wallet integration |
94
93
|`portal-wallet`| Wallet backends (NWC, Breez) |
@@ -98,10 +97,4 @@ The SDK `major.minor` version must match the daemon. Patch versions are independ
98
97
99
98
---
100
99
101
-
## Documentation
102
-
103
-
Full docs at **[portaltechnologiesinc.github.io/lib](https://portaltechnologiesinc.github.io/lib/)** — guides for authentication, payments, Cashu, JWT, relay setup, Docker deployment, and more.
104
-
105
-
---
106
-
107
100
**License:** MIT · [Java SDK](https://github.com/PortalTechnologiesInc/java-sdk) · [Demo](https://github.com/PortalTechnologiesInc/portal-demo)
0 commit comments