Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This pull request upgrades the RavenDB Node.js client from version 7.1.5 to 7.2.0, introducing two major features: remote attachments support for cloud storage (Azure Blob Storage and Amazon S3) and schema validation capabilities. The changes include new configuration classes, API enhancements to bulk insert and session operations, updated constants, and comprehensive test coverage.
Changes:
- Added remote attachments feature with configuration classes for Azure and S3 storage destinations, enabling attachments to be stored in cloud services
- Introduced schema validation functionality with configuration operations for validating documents against JSON schemas
- Enhanced bulk insert and session attachment APIs to support remote attachment parameters and scheduling
Reviewed changes
Copilot reviewed 31 out of 31 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| package.json | Updated version from 7.1.4 to 7.2.0 |
| src/Http/RequestExecutor.ts | Updated CLIENT_VERSION constant to 7.2.0 |
| src/index.ts | Exported new schema validation and remote attachments classes |
| src/Constants.ts | Added JavaScript constants and remote attachment headers |
| src/Documents/Smuggler/DatabaseRecordItemType.ts | Added RemoteAttachments and SchemaValidation types |
| src/Documents/Attachments/*.ts | New classes for remote attachments configuration (S3, Azure, destinations) |
| src/Documents/Operations/Attachments/*.ts | New classes for attachment parameters and remote operations |
| src/Documents/Operations/SchemaValidation/*.ts | New classes for schema validation configuration and operations |
| src/Documents/Session/*.ts | Enhanced attachment operations to support StoreAttachmentParameters |
| src/Documents/Commands/Batches/PutAttachmentCommandData.ts | Added remote parameters support to attachment commands |
| src/Documents/BulkInsertOperation.ts | Enhanced bulk insert to support remote attachment parameters |
| test/Ported/SchemaValidationBasicTests.ts | Added comprehensive tests for schema validation feature |
| test/Ported/Attachments/RemoteAttachmentsBasicTests.ts | Added tests for remote attachments configuration |
| test/Ported/Attachments/DocumentSessionRemoteAttachmentsTests.ts | Added tests for session-level remote attachment operations |
| test/Ported/Attachments/BulkInsertRemoteAttachmentsTests.ts | Added tests for bulk insert with remote attachments |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
src/Documents/Operations/SchemaValidation/GetSchemaValidationConfiguration.ts
Outdated
Show resolved
Hide resolved
kalczur
approved these changes
Jan 26, 2026
- Introduced `RemoteAttachments` and `SchemaValidation` to `DatabaseRecordItemType`. - Enhanced `DocumentSessionAttachmentsBase.store` method to support `StoreAttachmentParameters` with remote parameters. - Added tests for remote attachments configuration, scheduling, and session integration, including case handling and validations.
- Introduced Schema Validation operations: `ConfigureSchemaValidationOperation`, `GetSchemaValidationConfiguration`, and related result types. - Added `SchemaValidationConfiguration` and `SchemaValidationCollectionConfiguration` interfaces with JSON schema support. - Implemented tests for schema validation operations, including configuration, retrieval, updates, and validation against complex schemas.
8d609fc to
657d4de
Compare
kalczur
approved these changes
Feb 5, 2026
- Replaced `RemoteAttachmentFlags` enum with string literals for enhanced type safety. - Introduced new remote attachment parameters with extended metadata handling. - Updated GetAttachmentOperation to integrate remote attachment processing using HTTP headers. - Improved metadata transformation logic for attachments and refactored utility methods.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces support for remote attachment storage in RavenDB's Node.js client, allowing attachments to be stored in cloud services like Azure Blob Storage and Amazon S3. It adds new configuration classes, updates bulk insert operations to handle remote attachment parameters, and expands constants and types to support this functionality.
Remote Attachments Feature
RemoteAttachmentsConfiguration,RemoteAttachmentsDestinationConfiguration,RemoteAttachmentsAzureSettings, andRemoteAttachmentsS3Settings, enabling flexible setup for storing attachments in Azure Blob Storage or Amazon S3. [1] [2] [3] [4]IRemoteAttachmentsSettingsinterface and theRemoteAttachmentFlagsenum to define metadata and flags for remote attachments. [1] [2]Bulk Insert API Enhancements
BulkInsertOperationandIAttachmentsBulkInsert) to support passing remote attachment parameters, allowing attachments to be uploaded directly to configured remote destinations during bulk operations. [1] [2] [3] [4] [5]