SureDrive Overview
SureDrive is a general-purpose document management repository built on the SureClinical platform. It sits alongside SureETMF, SureCTMS, SureISF, and SureQMS as one of the application products hosted in the shared platform. Unlike SureETMF (which enforces a strict eTMF folder schema), SureDrive allows free-form folder structures with user-defined content models — making it suitable for SOPs, training records, forms, and other non-study-specific documents.
Platform Products
The SureClinical platform hosts multiple applications that share the same infrastructure, authentication, and Nuxeo content repository:
| Product | Purpose |
|---|---|
| SureDrive | Free-form document management repository. No enforced eTMF schema. |
| SureETMF | Electronic Trial Master File — eTMF-schema-enforced clinical document management. |
| SureCTMS | Clinical Trial Management System — study operations, milestones, team management. |
| SureISF | Investigator Site File management. |
| SureQMS | Quality Management System. |
Each product is enabled per-tenant and per-user via feature flags (e.g., FEATURE_SURE_DRIVE_APPLICATION_ENABLED). The Angular web client checks these flags at startup and shows only the product surfaces the user is licensed for.
Technology Stack
| Layer | Technology |
|---|---|
| Frontend | Angular 1.x (ui-router for state management) |
| Backend services | Spring Boot (Spring 5.x), Java 8 |
| Content repository | Nuxeo (document store, ACLs, Automation Operations) |
| Relational database | PostgreSQL (managed by Liquibase) — the SureNetwork Global layer |
| Workflow engine | Camunda BPM 7.19.0 |
| ORM | Hibernate 5.6.10 |
| Build tool | Maven (multi-module) |
Platform Architecture
The platform has three major client surfaces:
| Client | Module | Purpose |
|---|---|---|
| Web Client | suredms-web-client | Primary Angular browser application. All SureDrive UI lives here. |
| Desktop Client | suredms-desktop-client | Java Swing desktop app. Used for offline access, quality review, and signing. |
| Progressive Web App | suredms-pwa | Mobile-optimised browser shell. |
All three surfaces communicate with the Nuxeo content repository through:
- the
suredms-nuxeo-clientJava client (desktop and service layer) - REST/Automation Operation calls from the Angular web client
Web Client Boot Sequence
The Angular application is bootstrapped at SC/suredms-web-client/src/main/webapp/app/js/app.js. Its run block:
- Wires
$rootScopewith login-state change guards - Checks platform license and feature flags
- Triggers notification refresh
- Redirects the user to their default landing area via
ClientNavigationService
Route definitions are split across three state files:
- app-states.js — shell, dashboard, drive, and wizard states
- app-states-network.js — project, search, browse, and feature states
- app-states-workflow.js — workflow process and task states
The top-level state container is app.network, which hosts all drive/study/project navigation. The global application hub is app.dashboard.
SureDrive in the Platform
A SureDrive instance is created by a licensed user through the New SureDrive Wizard (see Drive Wizard and New SureDrive Creation). Each SureDrive is an Archive document in Nuxeo of type SureDMS.CloudArchive. It holds:
- A user-defined folder hierarchy (Content Model)
- Documents assigned to folders
- A team (persons and organisations with roles)
- Workflow definitions
- Milestone definitions
- Audit log
One SureDrive is permitted per platform licence. Storage is 25 GB with 100 GB/month outbound transfer.
Key Module Relationships
suredms-web-client (Angular UI)
↓ calls Nuxeo Automation Operations
suredms-nuxeo-extensions (server-side Nuxeo operations)
↓ uses
suredms-common (shared entity model, services)
↓ persists via
Nuxeo repository (PostgreSQL backend)
suredms-parser (import/archive parsing)
suredms-xls-parser (Excel template import)
suredms-web-service (document processing: OCR, redaction, watermark)
suredms-workflow-platform (desktop workflow engine)
suredms-desktop-client-connector (desktop ↔ Nuxeo bridge)
For the full module dependency graph, see Build and Module Architecture.
Feature Flags and Navigation Visibility
Feature availability within SureDrive is controlled by FEATURE_* string constants that are loaded at session startup and checked by ClientNavigationService to show or hide navigation items. The Angular registration entry point is SC/suredms-web-client/src/main/webapp/app/js/app.js.
Feature flags are checked at route resolution time by ClientNavigationService.handleUserStateTransition. Each UI state declares requireFeature, requireAnyFeatures, or requireFeatures conditions on the state data object. If the user's loaded feature set does not satisfy the condition, the transition is blocked and the user is redirected. Hub client users skip non-hub states via CacheService.isExternalUser(user).
| Feature Key | Effect |
|---|---|
FEATURE_SURE_DRIVE_APPLICATION_ENABLED | Enables access to SureDrive application; required for all SureDrive navigation |
FEATURE_ETMF_APPLICATION_ENABLED | Enables eTMF/TMF application |
FEATURE_SURE_ISF_APPLICATION_ENABLED | Enables ISF (Investigator Site File) application |
FEATURE_SURE_QMS_APPLICATION_ENABLED | Enables SureQMS quality management application |
FEATURE_CTMS_APPLICATION_ENABLED | Enables SureCTMS project management application |
FEATURE_SURE_QMS_PROJECT_EDIT | Enables the Acquire Queue and Quality Queue toggles in SureDrive Properties; shows queue navigation items in the study menu |
FEATURE_VIEW_MY_DOCUMENTS | Restricts the user to their own document storage (UserStorage mode); changes navigator context |
FEATURE_GLOBAL_UPLOAD | Grants document upload permission; controls upload button visibility across navigator and dashboard |
FEATURE_VIEW_WORKFLOW | Grants access to workflow features; controls workflow dashboard link and task count gadgets |
FEATURE_SHARE_VIEW | Controls visibility of the Share tab in the study menu |
FEATURE_SHARE_VIEW_WITH_DELETION | Makes the Share tab visible and adds document deletion permission within the share context |
FEATURE_PDF_ANNOTATIONS | Enables the annotation drawing tool in the PDF viewer |
FEATURE_PDF_COMMENTS | Enables comment bubbles in the PDF viewer |
FEATURE_GLOBAL_DELETE_QC_OK_MARK | Enables the "Delete QC OK Mark" action on documents |
Source: SC/suredms-web-client/src/main/webapp/app/js/app.js — feature constant declarations and state data conditions. Desktop-side feature keys are defined in ApplicationFeatures (com.sureclinical.suredms.services.features) and resolved at runtime via FeatureManager.