Cloud Provider Configuration Reference
Complete reference for all configuration properties related to cloud provider support.Provider Selection
hub.cloud.provider.type
Type: String Default:aws
Options: aws, gcp, local, azure (future)
aws- Amazon Web Services (DynamoDB, Secrets Manager, CloudWatch)gcp- Google Cloud Platform (Firestore, Secret Manager, Cloud Monitoring)local- In-memory storage for development and testing
AWS Provider Configuration
Core AWS Settings
hub.aws.region
Type: String Required: Yes Example:us-east-1
hub.aws.accessKey
Type: String Optional: Yes (uses AWS default credential chain if omitted)hub.aws.secretKey
Type: String Optional: YesDynamoDB Configuration
hub.aws.dynamodb.prefix
Type: String Required: Yes Pattern:^[\w.\-#{}]+$
{prefix}-components, {prefix}-api-key-lookup, {prefix}-sharables.
hub.aws.dynamodb.endpoint
Type: String Optional: Yes Use Case: LocalStack or custom DynamoDB endpointhub.aws.dynamodb.createTables
Type: Boolean Default:true
hub.aws.dynamodb.tags
Type:Map<String, String>
Optional: Yes
hub.aws.dynamodb.replicas
Type:List<String>
Optional: Yes
hub.aws.dynamodb.retryStrategy.requestTimeout
Type: Duration Default:500ms
hub.aws.dynamodb.retryStrategy.maxRetries
Type: Integer Default:10
hub.aws.dynamodb.retryStrategy.backoff
Type: Duration Default:100ms
Secrets Manager Configuration
hub.aws.secrets.prefix
Type: String Required: Yeshub.aws.secrets.cache
Type: Boolean Default:true
hub.aws.secrets.cacheTtl
Type: Duration Default:300s (5 minutes)
hub.aws.secrets.forceDelete
Type: Boolean Default:false
true, deletes secrets immediately without recovery window. When false, uses AWS’s default 30-day recovery period.
hub.aws.secrets.tags
Type:Map<String, String>
Optional: Yes
hub.aws.secrets.replicas
Type:List<String>
Optional: Yes
CloudWatch Metrics Configuration
hub.aws.dynamodb.metrics.enabled
Type: Boolean Default:true
hub.aws.dynamodb.metrics.namespace
Type: String Default:ZenooHub
Local Provider Configuration
The local provider uses in-memory storage and requires minimal configuration.hub.cloud.provider.type
Type: String Value:local
Required: Yes (to activate local provider)
hub.local.cleanupEnabled
Type: Boolean Default:true
hub.local.cleanupInterval
Type: Duration Default:5m (5 minutes)
Supported Units: ms (milliseconds), s (seconds), m (minutes), h (hours), d (days)
- Development:
5m(default) - Integration tests:
1m(faster cleanup) - CI/CD:
30s(aggressive cleanup) - Disabled: Set
cleanupEnabled: false
hub.local.verboseLogging
Type: Boolean Default:false
- Component create/update/delete
- API key associations
- Secret operations
- Sharable store operations
- Cleanup activities
- Debugging storage issues
- Understanding data flow
- Learning the local provider
- Troubleshooting tests
hub.local.simulatedDelay
Type: Duration Default:0ms (no delay)
Optional: Yes
- Testing timeout configurations
- Simulating slow storage
- Load testing with realistic latency
- Validating retry logic
Complete Local Configuration Example
Minimal (Development):Switching Between Local and AWS
Local Development Profile (application-local.yml):GCP Provider Configuration
The GCP provider uses Cloud Firestore (Native Mode), Secret Manager, and Cloud Monitoring for full cloud-based storage.Core GCP Settings
hub.cloud.provider.type
Type: String Value:gcp
Required: Yes (to activate GCP provider)
hub.gcp.projectId
Type: String Required: Yeshub.gcp.credentialsLocation
Type: String Optional: Yes (uses Application Default Credentials if omitted)GOOGLE_APPLICATION_CREDENTIALSenvironment variablegcloud auth application-default logincredentials- Attached service account on GCE, GKE, or Cloud Run
- Compute Engine metadata service
hub.gcp.enabled
Type: Boolean Default:true
false to temporarily disable GCP provider without changing provider type.
Cloud Firestore Configuration
hub.gcp.firestore.database
Type: String Default:"(default)"
"(default)" for the default database, or specify a custom database name.
Important: Hub requires Firestore in Native Mode, not Datastore Mode.
hub.gcp.firestore.prefix
Type: String Default:"zenoo-hub"
Pattern: ^[\w-]+$
{prefix}-components- Component definitions with versioning{prefix}-api-keys- API key lookup mappings{prefix}-sharables- Temporary sharable tokens
hub.gcp.firestore.createIndexes
Type: Boolean Default:true
false if you prefer to manage indexes manually via Firebase Console or firestore.indexes.json.
hub.gcp.firestore.ttlEnabled
Type: Boolean Default:true
hub.gcp.firestore.ttlField
Type: String Default:"ttl"
hub.gcp.firestore.retryStrategy.requestTimeout
Type: Duration Default:500ms
Supported Units: ms, s, m, h
hub.gcp.firestore.retryStrategy.maxRetries
Type: Integer Default:10
UNAVAILABLE, DEADLINE_EXCEEDED).
hub.gcp.firestore.retryStrategy.backoff
Type: Duration Default:100ms
Secret Manager Configuration
hub.gcp.secrets.prefix
Type: String Default:"zenoo-hub"
Pattern: ^[\w-/]+$
{prefix}/component-config/{key}/{version}- Component configuration{prefix}/api-key/{keyName}- API key secrets
hub.gcp.secrets.cacheSize
Type: Integer Default:128
hub.gcp.secrets.cacheExpiry
Type: Duration Default:30m
Supported Units: ms, s, m, h, d
hub.gcp.secrets.versionsLimit
Type: Integer Default:18
hub.gcp.secrets.forceDelete
Type: Boolean Default:true
true- Secrets deleted immediately (cannot be recovered)false- Secrets scheduled for deletion after 30 days (can be recovered)
false for production environments to enable recovery.
hub.gcp.secrets.retryStrategy.requestTimeout
Type: Duration Default:2s
hub.gcp.secrets.retryStrategy.maxRetries
Type: Integer Default:5
hub.gcp.secrets.retryStrategy.backoff
Type: Duration Default:200ms
Cloud Monitoring Configuration
hub.gcp.metrics.enabled
Type: Boolean Default:true
false to disable metrics (reduces API calls and costs).
hub.gcp.metrics.prefix
Type: String Default:"hub"
hub.gcp.metrics.batchSize
Type: Integer Default:200
Maximum: 200 (GCP limit)
Complete GCP Configuration Examples
Minimal GCP Configuration (Development)
Uses Application Default Credentials and all defaults:Production GCP Configuration
Full production configuration with service account key:High Performance GCP Configuration
Optimized for throughput:Multi-Environment GCP Profile Example
GCP Development Profile (application-gcp-dev.yml):Component Storage Configuration
hub.cloud.provider.component.operationTimeout
Type: Duration Default:30s
Sharable Storage Configuration
hub.cloud.provider.sharable.operationTimeout
Type: Duration Default:10s
hub.cloud.provider.sharable.defaultTtl
Type: Duration Default:24h
Configuration Examples
Minimal Production Configuration
Development with LocalStack
Multi-Region Production
High-Performance Configuration
Environment Variable Substitution
All configuration properties support Spring Boot’s property placeholder syntax:Profile-Specific Configuration
Use Spring profiles for environment-specific settings:Configuration Precedence
Configuration sources in order of precedence (highest to lowest):- Command-line arguments:
--hub.aws.region=us-west-2 - Environment variables:
HUB_AWS_REGION=us-west-2 - Profile-specific files:
application-prod.yml - Application properties:
application.yml - Default values