PyMongo
Description​
PyMongo is the official MongoDB driver for synchronous Python applications. It allows for easy and efficient interaction with MongoDB-like databases, supporting operations such as queries, updates, and aggregation. PyMongo provides a rich API that enables the development of scalable and performant database-backed applications.
General details​
- Developer(s): MongoDB, Inc.
- Open source: Yes
- Language(s): Python
- Repository: https://github.com/mongodb/mongo-python-driver
- License: Apache License 2.0
- Operating system(s): Cross-platform (Windows, macOS, Linux)
- Actively maintained: Yes (within the past month)
Intended use on the device​
The SOUP is used in the medical device for the following specific purposes only:
- Connect to AWS DocumentDB databases and persist sessions to avoid consuming more resources than needed.
- Implement CRUD operations to interact with AWS DocumentDB databases.
Requirements​
For the integration and safe usage of this SOUP within a software system, it's important to outline both functional and performance requirements. These requirements help mitigate risks and ensure compatibility and performance standards are met.
Functional​
- Connection management: Ability to manage connections to a MongoDB-like database cluster, including support for connection pooling and automatic reconnection.
- CRUD operations: Support for Create, Read, Update, and Delete (CRUD) operations on documents within MongoDB collections.
- Data aggregation: Support for MongoDB's aggregation pipeline, enabling complex data processing and transformation operations.
- Data conversion: Convert data between Python data structures and BSON (Binary JSON).
- Index management: Facilities for creating, listing, and dropping indexes to optimize query performance.
- Authentication and authorisation: Support for MongoDB's security features, including role-based access control, SSL/TLS encryption, and various authentication mechanisms (e.g., SCRAM, X.509).
- Error handling: Robust error handling mechanisms that provide clear and informative error messages to the application.
Performance​
- Efficiency: Optimised for efficient communication with MongoDB-like servers, minimizing overhead and latency.
- Scalability: Capable of handling connections to large-scale MongoDB-like clusters, including support for sharding and replica sets.
- Concurrency: Work well in multi-threaded environments, making efficient use of resources while maintaining thread safety.
System requirements​
Establishing minimum software and hardware requirements is important to mitigate risks, such as security vulnerabilities, performance issues, or compatibility problems, and to ensure that the SOUP functions effectively within the intended environment.
Software​
After evaluation, we find that there are no specific software requirements for this SOUP. It works properly on standard computing devices, which includes our environment.
Hardware​
After evaluation, we find that there are no specific hardware requirements for this SOUP. It works properly on standard computing devices, which includes our environment.
Documentation​
The official SOUP documentation can be found at https://pymongo.readthedocs.io/en/stable/.
Additionally, a criterion for validating the SOUP is that all the items of the following checklist are satisfied:
- The vendor maintains clear and comprehensive documentation of the SOUP describing its functional capabilities, user guidelines, and tutorials, which facilitates learning and rapid adoption.
- The documentation for the SOUP is regularly updated and clearly outlines every feature utilised by the medical device, doing so for all integrated versions of the SOUP.
Related software items​
We catalog the interconnections between the microservices within our software architecture and the specific versions of the SOUP they utilise. This mapping ensures clarity and traceability, facilitating both the understanding of the system's dependencies and the management of SOUP components.
Although the title of the section mentions software items, the relationship with SOUP versions has been established with microservices (also considered software items, by the way) because each one is inside a different Docker container and, therefore, has its own isolated runtime environment.
SOUP version | Software item(s) |
---|---|
4.6.2 | WEB API GATEWAY |
Related risks​
The following are risks applicable to this SOUP from the table found in document R-TF-013-002 Risk management record_2023_001
:
- 58. SOUP presents an anomaly that makes it incompatible with other SOUPs or with software elements of the device.
- 59. SOUP is not being maintained nor regularly patched.
- 60. SOUP presents cybersecurity vulnerabilities.
Lists of published anomalies​
The incidents, anomalies, known issues or changes between versions for this SOUP can be found at:
History of evaluation of SOUP anomalies​
01 Mar 2024​
- Reviewer of the anomalies: Alejandro Carmena Magro
- Version(s) of the SOUP reviewed: 4.6.2
No anomalies have been found.
Record signature meaning​
- Author: JD-004
- Reviewer: JD-003
- Approver: JD-005