mirror of
https://github.com/remnawave/rust-sdk.git
synced 2026-05-13 04:09:10 +00:00
- Updated various structs to remove unnecessary `Eq` trait implementations. - Changed `Option<String>` to `Option<Option<String>>` for fields that can be explicitly set to `None`. - Modified numeric types from `usize` to `f64` for better precision in billing-related structs. - Introduced new API types for external squads, passkeys, remnawave settings, snippets, and subscription request history. - Added new response DTOs and request DTOs for managing external squads and passkeys. - Enhanced existing structs with additional fields for better data representation. - Updated the `mod.rs` file to include new modules and ensure proper exports.
4.1 KiB
4.1 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.2.4] - 2025-11-02
Compatibility:
- Contract/SDK 2.2.4 targets Remnawave API v2.2.4
Added
- New controllers and endpoints:
- External Squads: CRUD and bulk operations
- GET
/api/external-squads - GET
/api/external-squads/{uuid} - POST
/api/external-squads - PATCH
/api/external-squads - DELETE
/api/external-squads/{uuid} - POST
/api/external-squads/{uuid}/bulk-actions/add-users - DELETE
/api/external-squads/{uuid}/bulk-actions/remove-users
- GET
- Passkeys: registration/authn flow and management
- GET
/api/passkeys/registration/options - POST
/api/passkeys/registration/verify - GET
/api/passkeys - DELETE
/api/passkeys
- GET
- Remnawave Settings: read/update server-wide auth/branding settings
- GET
/api/remnawave-settings - PATCH
/api/remnawave-settings
- GET
- Snippets: simple JSON snippets CRUD
- GET
/api/snippets - POST
/api/snippets - PATCH
/api/snippets - DELETE
/api/snippets
- GET
- Subscription Request History (global):
- GET
/api/subscription-request-history?size=&start= - GET
/api/subscription-request-history/stats
- GET
- Users: subscription request history by user
- GET
/api/users/{uuid}/subscription-request-history
- GET
- External Squads: CRUD and bulk operations
- System tools and testers:
- POST
/api/system/tools/happ/encrypt— encrypt Happ crypto links - POST
/api/system/testers/srr-matcher— debug subscription response rules matcher
- POST
- Subscriptions (plaintext responses):
- GET
/api/sub/{short}returns plaintext subscription - GET
/api/sub/{short}/{clientType}returns plaintext subscription for a specific client - GET
/api/sub/{short}/inforeturns structured subscription info - GET
/api/subscriptions/by-short-uuid/{short}/rawreturns rich raw subscription payload
- GET
- Integration tests:
- Rewrote end-to-end integration test to exercise all GET endpoints with tolerant logging (401/403 do not fail the run); uses env-driven base URL and tokens.
- Types for new features:
external_squadsDTOs for squads CRUD and bulk actionspasskeysDTOs for registration/verification and listingremnawave_settingsDTOs for auth providers and branding settingssnippetsDTOs for snippets CRUDsubscription_request_historyDTOs for records and stats
Changed
- Authentication types:
GetStatusResponseDatarestructured: addsauthentication,branding;tg_authandoauth2are optional; provider map for OAuth2.OAuth2AuthorizeResponseData.authorization_urlis now required (String).
- Billing types:
UpdateInfraBillingNodeRequestDtonow supports bulk viauuids: Vec<Uuid>(was a singleuuid).- Monetary fields use
f64(amount,total_amount,current_month_payments,total_spent).
- Users types:
- Broad nullable support: many string-like fields use
Option<Option<T>>for “clear” semantics in create/update/bulk DTOs. - Counters widened: several traffic byte counters now
i64.
- Broad nullable support: many string-like fields use
- Subscriptions:
- Plaintext subscription endpoints now return
String; SDK routes use a text-response handler. - Added
/api/sub/{short}/infoand/api/subscriptions/by-short-uuid/{short}/rawresponses.
- Plaintext subscription endpoints now return
- Nodes/Usage and Users/Usage:
- Range endpoints accept optional
start/endquery parameters as RFC3339 DateTime strings (seconds precision, Z).
- Range endpoints accept optional
- System types:
SystemStatsData.uptimeandtimestampchanged tof64.MemoryStatsvalues changed tof64.
- Config Profiles:
- Fixed inbounds path to
/api/config-profiles/{uuid}/inbounds.
- Fixed inbounds path to
- Macros/Controllers:
- Controller macro gained
handle_text_responseto support plaintext endpoints. - Deprecated several old method aliases to standardize naming (e.g.,
get_*vs older variants).
- Controller macro gained
Breaking Changes
- billing:
UpdateInfraBillingNodeRequestDto.uuidrenamed touuidsand type changed fromUuidtoVec<Uuid>. - Public DTOs adjusted for floats (
f64) where server returns non-integer values; some derives dropped fromEqas a result.