feat: Complete DocumentDB plugin implementation with Insert/Read operations and comprehensive testing#1
Conversation
- Implement Insert task supporting single/multiple documents (max 10) - Implement Read task with MongoDB-style filters and aggregation pipelines - Add comprehensive error handling and input validation - Support all FetchType options (FETCH, FETCH_ONE, STORE, NONE) - Create Docker-based testing setup with MongoDB + HTTP API gateway - Add 14 comprehensive tests (5 integration + 9 unit tests) - Include complete documentation and usage examples
src/test/java/io/kestra/plugin/documentdb/DocumentDBIntegrationTest.java
Outdated
Show resolved
Hide resolved
Malaydewangan09
left a comment
There was a problem hiding this comment.
Could you please also add icons?
Co-authored-by: François Delbrayelle <fdelbrayelle@gmail.com>
…), fix package-info format, update test patterns, add api-server docs, and include DocumentDB icons
- Add task.run() calls to InsertTest.shouldValidateRequiredProperties() - Add task.run() calls to ReadTest.shouldCreateTaskWithRequiredProperties() - Add task.run() calls to ReadTest.shouldDefaultToFetchType() - Implement storeRecordsAsFile() method for STORE fetchType with .ion format - Combine duplicate switch statements in Read.java for cleaner code
|
@fdelbrayelle @Malaydewangan09 hope no more changes are there , and this PR can be merged. |
src/test/java/io/kestra/plugin/documentdb/DocumentDBIntegrationTest.java
Outdated
Show resolved
Hide resolved
|
@fdelbrayelle i didn't find any icons so i generated it LLM. hope this is OK. let me know for any other changes |
|
@thearpankumar Thank you! I sent you the right icon. |
|
@fdelbrayelle is this screenshot ok, or i should send ss of other kind of logs. |
Could you share multiple scenarios using several tasks providing the YAML flow, the execution result (Gantt chart, logs) please? |
|
OK looks great @thearpankumar thanks! Also, did you check the outputs are as expected? By the way, did you know you can use |
I have checked the output too, it is as expected by me if you don't like something just mention then i will try to fix it. also I mean ya i could have used |
|
Yes it was just for you to know about the pluginDefaults feature ;-) |
|
@fdelbrayelle thank you 😊. if every thing is ok now please merge the |
|
Let's wait for @Malaydewangan09's last review tomorrow 🙏 |
|
@fdelbrayelle can you please label this issue as hacktoberfest or hacktoberfest-accepted ?? will then this PR will also be counted as one |
|
@thearpankumar I added the |
src/main/java/io/kestra/plugin/documentdb/DocumentDBClient.java
Outdated
Show resolved
Hide resolved
- Extract common properties to AbstractDocumentDBTask base class - Replace manual Ion serialization with FileSerde.writeAll() and Flux streaming - Convert ReadTest to use real database instead of asserting connection failures
|
LGTM now thanks @thearpankumar ! |








closes kestra-io/kestra#11013
Changes Summary
This PR implements a fully functional DocumentDB plugin for Kestra with comprehensive CRUD operations, real integration testing, and production-ready features.
Latest Commit:
cd11cda- feat: Add DocumentDB plugin with Insert and Read operationsKey Changes:
.github/setup-unit.shfor automated container setupapi-server.py) to simulate DocumentDB REST endpointsPrevious Commit:
5051ee0- feat: implemented documentDB pluginCore Implementation:
Files Added/Modified:
DocumentDBClient.java- HTTP client for DocumentDB operations (268 lines)Insert.java- Insert task implementation (249 lines)Read.java- Read task with filtering and aggregation (343 lines)DocumentDBException.java- Custom exception handling (14 lines)DocumentDBRecord.java- Data model for records (18 lines)InsertResult.java- Response model for insert operations (18 lines)README.md- Comprehensive documentation (190+ lines)build.gradle- Updated dependencies and plugin metadata.devcontainer/*- Updated container configurationTotal: +1,112 lines, -162 lines
Overall Features Implemented
✅ Core Functionality
Testing Results
Ready for Review
This PR delivers a complete, production-ready DocumentDB plugin with: