A collection of Docker images and scripts designed to set up a complete development environment for building and testing applications. 🚀
- Our Dockerized EFSS Images
- Our Dockerized Reva Images
- Open Cloud Mesh Test Suite
- OCM Compatibility Results
- Developer's Guide for the Open Cloud Mesh Test Suite
- Debugging
- Using XDebug
- SOLID RemoteStorage
EFSS (Enterprise File Sync and Share) solutions are software platforms designed to enable organizations to securely share and synchronize files, both internally and externally. These systems are built to ensure data integrity, compliance, and accessibility, making them essential for modern collaboration. Some popular EFSS platforms include Nextcloud and ownCloud, which provide robust, open-source solutions for enterprise file management.
Repository | Tag | Branch | Upstream |
---|---|---|---|
pondersource/dev-stock-nextcloud | latest, v30.0.0 | v30.0.0 | Official Nextcloud Server |
pondersource/dev-stock-nextcloud | v29.0.8 | v29.0.8 | Official Nextcloud Server |
pondersource/dev-stock-nextcloud | v28.0.12 | v28.0.12 | Official Nextcloud Server |
pondersource/dev-stock-nextcloud | v27.1.11 | v27.1.11 | Official Nextcloud Server |
Repository | Tag | Branch | Upstream |
---|---|---|---|
pondersource/dev-stock-owncloud | v10.15.0 | v10.15.0 | Official ownCloud Core |
To pull the Docker images for EFSS, use the following commands:
# Pull the latest version of Nextcloud
docker pull pondersource/dev-stock-nextcloud:latest
# Pull a specific version of Nextcloud
docker pull pondersource/dev-stock-nextcloud:v30.0.0
docker pull pondersource/dev-stock-nextcloud:v29.0.8
# Pull a specific version of ownCloud
docker pull pondersource/dev-stock-owncloud:v10.15.0
Reva is a key component in the CS3API ecosystem, designed to provide a robust backend for cloud storage and file-sharing services. It acts as a middleware for connecting EFSS platforms, enabling smooth communication and interoperability.
Repository | Tag | Branch | Upstream |
---|---|---|---|
pondersource/dev-stock-reva | v1.28.0 | v1.28.0 | Official Reva Repository |
To pull the Docker image for Reva, use the following command:
# Pull the specific version of Reva
docker pull pondersource/dev-stock-reva:v1.28.0
The Open Cloud Mesh (OCM) Test Suite is a comprehensive collection of automated tests designed to validate interoperability between different Enterprise File Sync and Share (EFSS) platforms that implement the Open Cloud Mesh standard. The Open Cloud Mesh API specification is an open source, community-driven project. The project is hosted as a W3C Community Group.
Open Cloud Mesh (OCM) aims to bridge the gap between different EFSS systems, allowing organizations to collaborate efficiently, regardless of the platform they use. By implementing OCM:
- Interoperability: Files can be shared across platforms like Nextcloud, ownCloud, Seafile, and others.
- Vendor Independence: Organizations are not locked into a single EFSS solution.
- Enhanced Collaboration: Facilitates file sharing between users and organizations in a secure, standard-compliant way.
-
Cross-Platform Validation:
- Ensures compatibility between popular EFSS platforms like Nextcloud, ownCloud, Seafile, and oCIS.
-
Comprehensive Coverage:
- Includes tests for file sharing, link sharing, user invitations.
-
Version-Aware Testing:
- Validates platform behavior across multiple versions, ensuring backward compatibility.
-
Automated CI Integration:
- Runs tests on a Continuous Integration (CI) pipeline for every new EFSS version release.
-
Login Tests:
- Simple authentication for different EFSS platforms.
-
Share Link Tests:
- Tests the ability to share files and directories via public links across platforms and the ability to add a public link share to your own EFSS.
-
Share With Tests:
- Validates sharing files directly with specific users on other EFSS platforms.
-
Invite Link Tests:
- Checks the invitation workflows, enabling users to invite external collaborators seamlessly.
The test suite currently supports:
- Nextcloud (v27, v28, v29, v30)
- ownCloud (v10.15.0)
- oCIS (v5.0.9)
- Seafile (v11.0.5)
- OcmStub (v1.0.0)
-
Dockerized Test Environment:
- The test suite uses Docker containers to simulate various EFSS environments, ensuring isolation and reproducibility.
-
End-to-End Testing with Headless Cypress:
- The test suite uses Cypress to run end-to-end (E2E) tests in a headless browser environment.
- These tests simulate real user interactions across EFSS platforms, ensuring workflows like login, file sharing, and invitations work seamlessly.
-
CI Integration:
- Each test runs as part of a GitHub Actions CI pipeline, with real-time feedback via badges.
-
Status Reporting:
- Results are displayed as status badges in a grid format, showing the success or failure of tests for each platform/version combination.
- Interoperability Assurance: Confirms that users can collaborate across EFSS platforms without issues.
To learn more about the Open Cloud Mesh standard, visit: OCM-API
- Indicates that the test scenario is supported for the specified combination of sender and receiver platforms but the test scripts are not available yet.
- Indicates that the test scenario is not supported for the specified combination of sender and receiver platforms.
- CI Badge: Displays the status of the test in the CI pipeline. Click the badge to view the detailed workflow or logs on GitHub Actions.
- Green (✅): Test passed successfully.
- Red (❌): Test failed.
- Yellow (🕒): Test is in progress or has been queued.
- Sender (R): Means the platform specified on the Row (R) is sending the action.
- Receiver (C): Means the platform specified on the Column (C) is receiving the action.
Verifies authentication mechanisms for supported EFSS platforms, ensuring users can securely log in.
Test Name | Nextcloud v27.1.11 | Nextcloud v28.0.12 | oCIS v5.0.9 | OcmStub v1.0.0 | ownCloud v10.15.0 | Seafile v11.0.5 |
---|---|---|---|---|---|---|
Login |
Tests the ability to create and manage public links for file sharing, and their integration into EFSS platforms.
Sender (R) / Receiver (C) | Nextcloud v27.1.11 | Nextcloud v28.0.12 | ownCloud v10.15.0 |
---|---|---|---|
Nextcloud v27.1.11 | |||
Nextcloud v28.0.12 | |||
ownCloud v10.15.0 |
Validates direct file sharing between users on different EFSS platforms, ensuring seamless collaboration.
Sender (R) / Receiver (C) | Nextcloud v27.1.11 | Nextcloud v28.0.12 | OcmStub v1.0.0 | ownCloud v10.15.0 | Seafile v11.0.5 |
---|---|---|---|---|---|
Nextcloud v27.1.11 | |||||
Nextcloud v28.0.12 | |||||
OcmStub v1.0.0 | |||||
ownCloud v10.15.0 | |||||
Seafile v11.0.5 |
Checks workflows for sending and accepting invitations to collaborate between external users or organizations.
Sender (R) / Receiver (C) | Nextcloud v27.1.11 with ScienceMesh | oCIS v5.0.9 | ownCloud v10.15.0 with ScienceMesh |
---|---|---|---|
Nextcloud v27.1.11 with ScienceMesh | |||
oCIS v5.0.9 | |||
ownCloud v10.15.0 with ScienceMesh |
The Open Cloud Mesh Test Suite is designed to help developers run and validate specific test scenarios across multiple EFSS platforms. This guide provides instructions on how to execute specific tests using the command-line interface.
To run specific tests, use the following command syntax:
./dev/ocm-test-suite.sh [test scenario] [platform 1] [platform 1 version] [run mode] [cypress runner] [platform 2] [platform 2 version]
-
Test Scenario:
- The type of test you want to run. Supported scenarios:
login
share-with
invite-link
share-link
- The type of test you want to run. Supported scenarios:
-
Platform 1:
- The first EFSS platform being tested. Supported platforms:
nextcloud
owncloud
seafile
ocis
- The first EFSS platform being tested. Supported platforms:
-
Platform 1 Version:
- The specific version of Platform 1. For example:
v27.1.11
.
- The specific version of Platform 1. For example:
-
Run Mode:
- Defines the environment for the test execution:
dev
: Local development mode.ci
: Continuous Integration mode.
- Defines the environment for the test execution:
-
Cypress Runner:
- The browser to be used by the Cypress test runner:
electron
(default for headless mode)chrome
firefox
edge
- The browser to be used by the Cypress test runner:
-
Platform 2 (Optional):
- The second EFSS platform involved in cross-platform scenarios. Supported platforms:
nextcloud
owncloud
seafile
ocis
- The second EFSS platform involved in cross-platform scenarios. Supported platforms:
-
Platform 2 Version (Optional):
- The specific version of Platform 2. For example:
v28.0.12
.
- The specific version of Platform 2. For example:
Run a "share-with" test between two Nextcloud instances using version v27.1.11
, in CI mode, with the Electron browser:
./dev/ocm-test-suite.sh share-with nextcloud v27.1.11 ci electron nextcloud v27.1.11
Run a "login" test on a Seafile instance using version v11.0.5
, in development mode, with the Chrome browser:
./dev/ocm-test-suite.sh login seafile v11.0.5 dev chrome
Run a "share-link" test between ownCloud and Nextcloud instances, using versions v10.15.0
and v29.0.8
, respectively, in CI mode with Firefox:
./dev/ocm-test-suite.sh share-link owncloud v10.15.0 ci firefox nextcloud v29.0.8
Ensure the versions provided are supported by the test suite. Refer to the Supported Platforms Section for the latest compatibility list.
Using electron
is recommended for headless CI testing.
Other browsers (chrome
, firefox
, edge
) can be used for debugging or local testing.
Use dev for iterative local testing with enhanced logging. Use ci for automated pipelines with concise output.
For scenarios requiring two platforms (e.g., share-with
, invite-link
), specify both Platform 1 and Platform 2 along with their versions.
See https://github.com/SURFnet/rd-sram-integration#testing-environment for up-to-date instructions.
This was moved to https://github.com/sciencemesh/dev-stock .
The scripts for ScienceMesh still exist here but are not guaranteed to work as expected.
See https://github.com/pondersource/surf-trashbin-app
See docs
for development see docs