DocumentStorage
Represents a storage backend configuration for managing document persistence across various storage providers and protocols. DocumentStorage defines the connection parameters and configuration for storage systems including cloud object storage (Amazon S3, Azure Blob Storage, Google Cloud Storage), network file protocols (FTP, SFTP, WebDAV), and local filesystem storage. This entity serves as a centralized configuration registry for document storage backends, enabling multi-storage architectures where different document types or organizations can be routed to different storage locations. It includes essential connection parameters (endpoints, buckets/containers, regions, base paths) while maintaining security through external credential management. Organizations can designate default storage backends and maintain multiple storage configurations for redundancy, geographic distribution, or compliance requirements. The entity supports storage lifecycle management through status tracking (active, inactive, maintenance) and provides the foundation for implementing storage policies, automatic failover, and cost optimization strategies across any industry requiring document persistence.
Properties
| Property | Type | Mode | Description | Required |
|---|---|---|---|---|
| name | string | stored | Display name of the storage backend for identification and selection Example: | Required |
| type | string | enum | Type of storage provider or protocol Values: Example: | Required |
| status | string | enum | Current operational status of the storage backend Values: Example: | Required |
| description | string | stored | Detailed description of the storage backend purpose and usage | Optional |
| endpoint | string | stored | Storage service endpoint URL or host address for connection Example: | Optional |
| bucket | string | stored | Bucket name (S3, GCS) or container name (Azure Blob) for document storage Example: | Optional |
| region | string | stored | Cloud provider region identifier for geographic placement of data Example: | Optional |
| basePath | string | stored | Base path or prefix prepended to all file paths within this storage backend Example: | Optional |
| credentialReference | string | stored | Reference identifier to credentials stored in secure vault or secret manager (never store actual credentials) Example: | Optional |
| isDefault | boolean | stored | Whether this storage backend is the default for new document uploads Example: | Optional |
| organization | Organization | stored | Organization that owns or has access to this storage configuration | Optional |
| publicAccess | boolean | stored | Whether the storage bucket allows public read access to documents | Optional |
| encryption | boolean | stored | Whether server-side encryption is enabled for stored documents Example: | Optional |
| metadata | json | stored | Additional configuration metadata for provider-specific settings, connection pooling, timeouts, or custom extensions | Optional |
| isActive | boolean | calculated | Whether the storage backend is currently active and available for use | Optional |
| isCloudStorage | boolean | calculated | Whether this storage uses a cloud provider (S3, Azure Blob, GCS) | Optional |
| isNetworkStorage | boolean | calculated | Whether this storage uses network file protocols (FTP, SFTP, WebDAV) | Optional |
Examples
Example 1
{
"@type": "DocumentStorage",
"name": "Primary AWS S3 Storage",
"type": "s3",
"status": "active",
"description": "Primary document storage using Amazon S3 in US East region for high availability and fast access",
"endpoint": "https://s3.us-east-1.amazonaws.com",
"bucket": "corporate-documents-prod",
"region": "us-east-1",
"basePath": "/documents",
"credentialReference": "vault://aws/credentials/s3-primary",
"isDefault": true,
"organization": {
"@type": "Organization",
"name": "Acme Corporation"
},
"publicAccess": false,
"encryption": true,
"metadata": {
"storageClass": "STANDARD",
"versioningEnabled": true,
"lifecyclePolicy": "archive-after-90-days"
}
}Example 2
{
"@type": "DocumentStorage",
"name": "Azure Blob Archive Storage",
"type": "azure-blob",
"status": "active",
"description": "Long-term archival storage for compliance documents using Azure Blob Storage in Europe",
"endpoint": "https://acmestorage.blob.core.windows.net",
"bucket": "archive-container",
"region": "westeurope",
"basePath": "/archive/compliance",
"credentialReference": "vault://azure/sas-tokens/archive-storage",
"isDefault": false,
"organization": {
"@type": "Organization",
"name": "Acme Corporation"
},
"publicAccess": false,
"encryption": true,
"metadata": {
"tier": "Cool",
"replication": "GRS",
"immutableStorage": true,
"retentionDays": 2555
}
}Example 3
{
"@type": "DocumentStorage",
"name": "Legacy FTP Server",
"type": "ftp",
"status": "maintenance",
"description": "Legacy FTP server for backward compatibility with older document management workflows",
"endpoint": "ftp://ftp.internal.acme.com",
"basePath": "/legacy-docs",
"credentialReference": "vault://ftp/credentials/legacy-server",
"isDefault": false,
"organization": {
"@type": "Organization",
"name": "Acme Corporation"
},
"publicAccess": false,
"encryption": false,
"metadata": {
"port": 21,
"passive": true,
"connectionTimeout": 30000,
"deprecationDate": "2025-06-30"
}
}Example 4
{
"@type": "DocumentStorage",
"name": "Local Development Storage",
"type": "local",
"status": "active",
"description": "Local filesystem storage for development and testing environments",
"basePath": "/var/storage/documents",
"isDefault": true,
"publicAccess": false,
"encryption": false,
"metadata": {
"environment": "development",
"maxFileSize": 104857600,
"allowedExtensions": [
"pdf",
"docx",
"xlsx",
"jpg",
"png"
]
}
}