Releases: Ziptility/RxDBDotNet
v1.2.1
What's Changed
🚀 Features
- feat: enable the authentication scheme name to be specified when configuring subscription authentication @rbeauchamp (#111)
📚 Documentation
- docs: update README @rbeauchamp (#112)
- docs: update example app to run on macos @rbeauchamp (#96)
- docs: update example frontend client app @rbeauchamp (#91)
🏗️ Build
- build: Delete .github/dependabot.yml @rbeauchamp (#110)
v1.1.5
What's Changed
🐛 Bug Fixes
- fix: ensure crucial security measure is implemented per https://rxdb.info/replication.html#security @rbeauchamp (#82)
🔄 CI
- ci: Update release.yml @rbeauchamp (#81)
v1.1.3
What's Changed
🧹 Chores
- chore: enhance logging in WebSocketJwtAuthInterceptor to enable root cause analysis if connections are being rejected @rbeauchamp (#79)
v1.1.2
What’s Changed
🚀 Features
- feat: add support for OIDC-configured JWT authentication in GraphQL subscriptions @rbeauchamp (#75)
📚 Documentation
-
docs: Update CONTRIBUTING.md with how to report a security vulnerability @rbeauchamp (#73)
-
docs: Update README.md @rbeauchamp (#72)
-
docs: Create SECURITY.md @rbeauchamp (#71)
-
build: Update main.yml to enable manual running @rbeauchamp (#77)
-
ci: update GitVersion.yml to ensure correct semver calculation @rbeauchamp (#76)
v1.0.4
What’s Changed
🐛 Bug Fixes
- fix: align the subscription connection init message payload with RxDB's format @rbeauchamp (#70)
📚 Documentation
- docs: add link to the RxDB protocol in the README @rbeauchamp (#68)
v1.0.3
What’s Changed
- build: Update release.yml @rbeauchamp (#64)
🐛 Bug Fixes
- fix: issue with subscription authorization @rbeauchamp (#66)
v1.0.2
What’s Changed
- build: publish source along with nuget package @rbeauchamp (#63)
v1.0.1
What's Changed
⚠️ Configuration changes
- When configuring Hot Chocolate, you must enable mutation conventions for replication to work. For example:
// Configure the Hot Chocolate GraphQL server
builder.Services
.AddGraphQLServer()
// Mutation conventions must be enabled for replication to work
.AddMutationConventions()
.AddReplication()
.AddReplicatedDocument<Workspace>()
.AddInMemorySubscriptions();
- When adding replication, call
.AddReplication()
instead of.AddReplicationServer()
. Please take a look at the example above.
🐛 Bug Fixes
- fix: Do not override the library user's AddMutationConventions() configuration @rbeauchamp (#57)
📚 Documentation
- docs: Update README.md @rbeauchamp (#55)
v1.0.0
We are thrilled to announce the initial release of RxDBDotNet v1.0.0! This release marks a significant milestone in bringing the power of RxDB replication to the .NET ecosystem, seamlessly integrated with Hot Chocolate GraphQL.
Features
Core Functionality
- Full RxDB Protocol Support: Implements the complete RxDB replication protocol, enabling seamless integration with RxDB clients.
- Hot Chocolate GraphQL Integration: Leverages the power of Hot Chocolate to provide a robust GraphQL API for replication.
- Real-Time & Offline-First Capabilities: Supports real-time data synchronization and offline-first operations, allowing clients to work offline and sync when back online.
Replication Protocol Implementation
- Document-Level Replication: Supports git-like replication model for efficient client-server synchronization.
- Transfer-Level Protocol:
- Pull Handler: Implemented via
Pull<your-replicated-document>
query with checkpoint-based iteration. - Push Handler: Implemented via
Push<your-replicated-document>
mutation with conflict detection. - Pull Stream: Implemented using GraphQL subscriptions for real-time updates.
- Pull Handler: Implemented via
- Checkpoint Iteration: Efficiently synchronizes data using checkpoints, allowing clients to catch up after being offline.
- Event Observation: Utilizes GraphQL subscriptions for real-time event streaming.
Security and Authorization
- Policy-Based Security: Integrates with ASP.NET Core's authorization infrastructure for fine-grained access control.
- Customizable Security Policies: Allows definition of custom policies for read and write operations on replicated documents.
Advanced Features
- Subscription Topics: Supports topic-based subscriptions, allowing clients to subscribe to specific subsets of documents.
- Custom Error Types: Enables configuration of custom exception types for detailed error reporting during replication operations.
- Structured Error Handling: Implements advanced error handling using GraphQL mutation conventions for consistent and detailed error reporting.
Developer Experience
- Quick Setup: Minimal configuration required to get started with RxDBDotNet.
- Extensible Design: Allows for easy extension with custom document types and services.
- Comprehensive Documentation: Includes detailed README and inline documentation for easy understanding and usage.
Getting Started
To start using RxDBDotNet, install the NuGet package:
dotnet add package RxDBDotNet
For a quick start guide and more detailed documentation, please refer to our README.md.
Breaking Changes
As this is the initial release, there are no breaking changes to report.
Known Issues
- Clients using the standard RxDB GraphQL plugin may need modifications to work with RxDBDotNet's advanced error handling approach. Please refer to the "Important Note for RxDB GraphQL Plugin Users" section in the README for more details.
Future Plans
We are committed to the continuous improvement of RxDBDotNet. Future releases will focus on:
- Enhanced performance optimizations
- Additional integration options with popular .NET frameworks and libraries
- Expanded documentation and examples
- Community-driven feature requests and improvements
Contributing
We welcome contributions from the community! Please see our Contributing Guide for more information on how to get involved.
Acknowledgments
We would like to thank the RxDB and Hot Chocolate communities for their inspiration and excellent work, which has made this project possible.
Thank you for your interest in RxDBDotNet. We're excited to see what you'll build with it!
For any questions, issues, or feedback, please open an issue on our GitHub repository.
Happy coding!
The RxDBDotNet Team