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.

17 properties
Schema

Properties

PropertyTypeModeDescriptionRequired
namestring
stored

Display name of the storage backend for identification and selection

Example: "Primary S3 Storage"

Required
typestring
enum

Type of storage provider or protocol

Values: s3, azure-blob, gcs, ftp, sftp, local, webdav, other

Example: "s3"

Required
statusstring
enum

Current operational status of the storage backend

Values: active, inactive, maintenance

Example: "active"

Required
descriptionstring
stored

Detailed description of the storage backend purpose and usage

Optional
endpointstring
stored

Storage service endpoint URL or host address for connection

Example: "https://s3.us-east-1.amazonaws.com"

Optional
bucketstring
stored

Bucket name (S3, GCS) or container name (Azure Blob) for document storage

Example: "corporate-documents"

Optional
regionstring
stored

Cloud provider region identifier for geographic placement of data

Example: "us-east-1"

Optional
basePathstring
stored

Base path or prefix prepended to all file paths within this storage backend

Example: "/documents/2024"

Optional
credentialReferencestring
stored

Reference identifier to credentials stored in secure vault or secret manager (never store actual credentials)

Example: "vault://secrets/storage/s3-primary"

Optional
isDefaultboolean
stored

Whether this storage backend is the default for new document uploads

Example: true

Optional
organizationOrganization
stored

Organization that owns or has access to this storage configuration

Optional
publicAccessboolean
stored

Whether the storage bucket allows public read access to documents

Optional
encryptionboolean
stored

Whether server-side encryption is enabled for stored documents

Example: true

Optional
metadatajson
stored

Additional configuration metadata for provider-specific settings, connection pooling, timeouts, or custom extensions

Optional
isActiveboolean
calculated

Whether the storage backend is currently active and available for use

Optional
isCloudStorageboolean
calculated

Whether this storage uses a cloud provider (S3, Azure Blob, GCS)

Optional
isNetworkStorageboolean
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"
    ]
  }
}