Skip to main content

AWS Components

Reference for every AWS offer in the Fractal Cloud catalogue. Each offer lists its parameters, required flags, and a fully-parameterized JSON example.

APIManagement

APIManagement.CaaS.Ambassador

Ambassador is an open-source API gateway built on Envoy that provides advanced traffic management, authentication, and routing capabilities for containerized workloads on Kubernetes.

ParameterDescriptionExample / possible valuesRequired
hostThe hostname for the Ambassador serviceambassador.example.comNo
hostOwnerEmailEmail address of the host owner for certificate renewal notificationsadmin@example.comYes
acmeProviderAuthorityACME certificate authority endpoint for TLS certificate provisioninghttps://acme-v02.api.letsencrypt.org/directoryYes
tlsSecretNameKubernetes secret name containing TLS certificate dataambassador-tls-secretYes
licenseKeyOptional Ambassador license key for commercial featureslicense-key-stringNo
namespaceKubernetes namespace where Ambassador will be deployedambassadorYes
containerPlatformDeprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback.my-clusterNo

Example (fully parameterized):

{
"type": "APIManagement.CaaS.Ambassador",
"parameters": {
"host": "ambassador.example.com",
"hostOwnerEmail": "admin@example.com",
"acmeProviderAuthority": "https://acme-v02.api.letsencrypt.org/directory",
"tlsSecretName": "ambassador-tls-secret",
"licenseKey": "amb-lic-9f8e7d6c5b4a3210",
"namespace": "ambassador"
}
}

APIManagement.CaaS.Traefik

Traefik is a modern reverse proxy and load balancer that automatically discovers services and provides dynamic routing, SSL/TLS termination, and advanced security features for cloud-native applications.

ParameterDescriptionExample / possible valuesRequired
entryPointsList of network entry points (ports/protocols) where Traefik listens for incoming traffic["http:8080", "https:8443"]Yes
hostnameHostname for Traefik dashboard and routing configurationtraefik.example.comNo
loadbalancerIpStatic IP address to assign to the Traefik load balancer service10.0.1.100No
oidcIssuerUrlOpenID Connect issuer URL for authenticationhttps://auth.example.comConditional — part of the all-or-nothing OIDC config group
oidcClientIdOIDC client identifiertraefik-client-idConditional — part of the all-or-nothing OIDC config group
oidcClientSecretIdSecret identifier for OIDC client credentialsoidc-secret-idConditional — part of the all-or-nothing OIDC config group
forwardAuthSecretIdSecret identifier for forward authentication configurationforward-auth-secret-idConditional — part of the all-or-nothing OIDC config group
securityHeadersSettingsMap of HTTP security headers to apply to all responses{}No
tlsCertificatesList of TLS certificate configurations[]No
tlsSettingsTLS/SSL settings such as minimum version and cipher suites{}No
tracingDistributed tracing configuration for monitoring request flows{}No
namespaceKubernetes namespace where Traefik will be deployedtraefikYes
containerPlatformDeprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback.my-clusterNo

Example (fully parameterized):

{
"type": "APIManagement.CaaS.Traefik",
"parameters": {
"entryPoints": ["http:8080", "https:8443"],
"hostname": "traefik.example.com",
"loadbalancerIp": "10.0.1.100",
"oidcIssuerUrl": "https://auth.example.com",
"oidcClientId": "traefik-client-id",
"oidcClientSecretId": "oidc-secret-id",
"forwardAuthSecretId": "forward-auth-secret-id",
"securityHeadersSettings": { "X-Frame-Options": "DENY" },
"tlsCertificates": [],
"tlsSettings": { "minVersion": "VersionTLS12" },
"tracing": {},
"namespace": "traefik"
}
}

APIManagement.PaaS.AwsCloudFront

Amazon CloudFront distribution fronting an origin with a global edge network. SDK-canonical name for the same offer as APIManagement.PaaS.CloudFront; both route to the same agent handler.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
originDomainDomain name of the origin the distribution pulls from. Blank → resolved from the component this distribution depends on.origin.example.comNo
commentFree-text comment stored on the distributionManaged by Fractal CloudNo

Example (fully parameterized):

{
"type": "APIManagement.PaaS.AwsCloudFront",
"parameters": {
"originDomain": "origin.example.com",
"comment": "Managed by Fractal Cloud"
}
}

APIManagement.PaaS.CloudFront

Amazon CloudFront is a content delivery network (CDN) service that caches and serves content from edge locations around the world, providing low-latency access and DDoS protection.

ParameterDescriptionExample / possible valuesRequired
originDomainThe domain name or IP address of the origin server where content is storedexample.com or api.example.comNo
commentHuman-readable description of the CloudFront distributionManaged by Fractal CloudNo

Example (fully parameterized):

{
"type": "APIManagement.PaaS.CloudFront",
"parameters": {
"originDomain": "api.example.com",
"comment": "Managed by Fractal Cloud"
}
}

APIManagement.SaaS.Unmanaged

A placeholder for external or pre-existing API management solutions not directly provisioned by Fractal Cloud. Stores connection details and credentials in a secret.

ParameterDescriptionExample / possible valuesRequired
secretNameName or identifier of the secret storing credentialsapi-mgmt-secretNo
secretValueThe secret value (credentials, connection string, etc.)secret-contentYes
secretReference to an environment secret holding the external service's credential, as {"$envSecret": "<shortName>"}. The raw value never travels in the blueprint.{"$envSecret": "openai-api-key"}Conditional — required when secretValue is not set

Example (fully parameterized):

{
"type": "APIManagement.SaaS.Unmanaged",
"parameters": {
"secretName": "api-mgmt-secret",
"secretValue": "secret-content"
}
}

BigData

BigData.CaaS.MinioTenant

MinIO is a high-performance, S3-compatible object storage system deployable on Kubernetes. Provides distributed object storage with strong consistency and security.

ParameterDescriptionExample / possible valuesRequired
minioVersionMinIO release versionRELEASE.2025-03-12T18-04-18ZNo
serversNumber of MinIO servers in the distributed cluster4No
volumesPerServerNumber of storage volumes per server4No
volumeSizeStorage volume size per server (Kubernetes resource quantity)100GiNo
storageClassKubernetes storage class for persistent volumesempty string (cluster default)No
cpuRequestRequested CPU per MinIO pod500mNo
cpuLimitMaximum CPU per MinIO pod2No
memoryRequestRequested memory per MinIO pod1GiNo
memoryLimitMaximum memory per MinIO pod4GiNo
requestAutoCertAutomatically generate self-signed TLS certificatestrueNo
namespaceKubernetes namespace for MinIO deploymentminioYes
containerPlatformDeprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback.my-clusterNo

Example (fully parameterized):

{
"type": "BigData.CaaS.MinioTenant",
"parameters": {
"minioVersion": "RELEASE.2025-03-12T18-04-18Z",
"servers": 4,
"volumesPerServer": 4,
"volumeSize": "100Gi",
"storageClass": "gp3",
"cpuRequest": "500m",
"cpuLimit": "2",
"memoryRequest": "1Gi",
"memoryLimit": "4Gi",
"requestAutoCert": true,
"namespace": "minio"
}
}

BigData.CaaS.SparkCluster

Apache Spark cluster for distributed data processing and analytics on Kubernetes. Provides driver and executor pods for parallel computation.

ParameterDescriptionExample / possible valuesRequired
sparkVersionApache Spark version3.5.3No
imageContainer image URI for Spark podsapache/spark:3.5.3No
driverCoresNumber of CPU cores for the Spark driver pod1No
driverMemoryMemory allocated to the Spark driver pod1gNo
executorCoresNumber of CPU cores per executor pod2No
executorMemoryMemory allocated to each executor pod2gNo
executorInstancesNumber of executor pods to launch2No
sparkOperatorNameName of the Spark Operator deployment managing this clusterspark-operatorYes
namespaceKubernetes namespace for Spark clustersparkYes
containerPlatformDeprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback.my-clusterNo

Example (fully parameterized):

{
"type": "BigData.CaaS.SparkCluster",
"parameters": {
"sparkVersion": "3.5.3",
"image": "apache/spark:3.5.3",
"driverCores": "1",
"driverMemory": "1g",
"executorCores": "2",
"executorMemory": "2g",
"executorInstances": 2,
"sparkOperatorName": "spark-operator",
"namespace": "spark"
}
}

BigData.CaaS.SparkJob

A Spark job submission to a Spark cluster or standalone Spark operator, supporting batch processing, scheduled execution, and multiple application types.

ParameterDescriptionExample / possible valuesRequired
typeSpark application typeJava, Python, ScalaNo
modeSpark deployment modecluster or clientNo
imageContainer image URI for the Spark jobapache/spark:3.5.3No
mainClassFully qualified class name for Java/Scala applicationscom.example.MyAppNo
mainApplicationFilePath or URI to the application JAR, Python script, or other artifacts3://bucket/app.jarNo
argumentsList of command-line arguments passed to the application["arg1", "arg2"]No
sparkVersionApache Spark version3.5.3No
sparkConfSpark configuration properties as key-value pairs{}No
driverCoresNumber of CPU cores for the driver1No
driverMemoryMemory for the driver1gNo
executorCoresNumber of CPU cores per executor2No
executorMemoryMemory per executor2gNo
executorInstancesNumber of executors2No
restartPolicyPod restart policy on failureNever, OnFailureNo
maxRetriesMaximum number of retries on failure3No
scheduleCron schedule for periodic execution (blank = one-time)0 0 * * *No
concurrencyPolicyHow to handle concurrent executionsAllow, Forbid, ReplaceNo
sparkOperatorNameName of the Spark Operator deploymentspark-operatorYes
namespaceKubernetes namespacesparkYes
containerPlatformDeprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback.my-clusterNo

Example (fully parameterized):

{
"type": "BigData.CaaS.SparkJob",
"parameters": {
"type": "Java",
"mode": "cluster",
"image": "apache/spark:3.5.3",
"mainClass": "com.example.MyApp",
"mainApplicationFile": "s3://bucket/app.jar",
"arguments": ["--input", "s3://bucket/data/input", "--output", "s3://bucket/data/output"],
"sparkVersion": "3.5.3",
"sparkConf": { "spark.executor.memoryOverhead": "512m" },
"driverCores": "1",
"driverMemory": "1g",
"executorCores": "2",
"executorMemory": "2g",
"executorInstances": 2,
"restartPolicy": "Never",
"maxRetries": 3,
"schedule": "0 0 * * *",
"concurrencyPolicy": "Forbid",
"sparkOperatorName": "spark-operator",
"namespace": "spark"
}
}

BigData.CaaS.SparkMlExperiment

MLflow experiment tracking service for machine learning workflows on Kubernetes. Provides artifact storage and metrics logging for ML experiments.

ParameterDescriptionExample / possible valuesRequired
mlflowVersionMLflow server version2.21.3No
backendStoreUriBackend store URI for MLflow metadata (SQLite, PostgreSQL, etc.)sqlite:///mlflow/mlflow.dbNo
artifactRootRoot directory for storing artifacts/mlflow/artifactsNo
replicasNumber of MLflow server replicas2No
cpuRequestRequested CPU per MLflow pod250mNo
cpuLimitMaximum CPU per MLflow pod1No
memoryRequestRequested memory per MLflow pod512MiNo
memoryLimitMaximum memory per MLflow pod1GiNo
servicePortPort number for MLflow UI and API5000No
namespaceKubernetes namespacemlflowYes
containerPlatformDeprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback.my-clusterNo

Example (fully parameterized):

{
"type": "BigData.CaaS.SparkMlExperiment",
"parameters": {
"mlflowVersion": "2.21.3",
"backendStoreUri": "sqlite:///mlflow/mlflow.db",
"artifactRoot": "/mlflow/artifacts",
"replicas": 2,
"cpuRequest": "250m",
"cpuLimit": "1",
"memoryRequest": "512Mi",
"memoryLimit": "1Gi",
"servicePort": 5000,
"namespace": "mlflow"
}
}

BigData.CaaS.SparkOperator

Spark Operator manages Spark applications as Kubernetes custom resources. Provides cluster-wide Spark job orchestration and monitoring.

ParameterDescriptionExample / possible valuesRequired
operatorVersionSpark Operator version2.5.0No
sparkVersionDefault Spark version used by the operator3.5.3No
enableWebhookEnable Kubernetes webhook for Spark application validationtrueNo
enableMetricsEnable Prometheus metrics collection from Spark jobstrueNo
namespaceKubernetes namespace for operator deploymentspark-operatorYes
containerPlatformDeprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback.my-clusterNo

Example (fully parameterized):

{
"type": "BigData.CaaS.SparkOperator",
"parameters": {
"operatorVersion": "2.5.0",
"sparkVersion": "3.5.3",
"enableWebhook": true,
"enableMetrics": true,
"namespace": "spark-operator"
}
}

BigData.CaaS.SparkUnityCatalog

Unity Catalog metadata layer for Apache Spark, providing centralized governance, data discovery, and access control across data lakes and warehouses.

ParameterDescriptionExample / possible valuesRequired
unityCatalogVersionUnity Catalog version0.3.0No
replicasNumber of Unity Catalog service replicas2No
cpuRequestRequested CPU per pod250mNo
cpuLimitMaximum CPU per pod1No
memoryRequestRequested memory per pod512MiNo
memoryLimitMaximum memory per pod1GiNo
namespaceKubernetes namespaceunity-catalogYes
containerPlatformDeprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback.my-clusterNo

Example (fully parameterized):

{
"type": "BigData.CaaS.SparkUnityCatalog",
"parameters": {
"unityCatalogVersion": "0.3.0",
"replicas": 2,
"cpuRequest": "250m",
"cpuLimit": "1",
"memoryRequest": "512Mi",
"memoryLimit": "1Gi",
"namespace": "unity-catalog"
}
}

BigData.PaaS.AwsDatabricks

Managed Databricks workspace on AWS. SDK-canonical name for the same offer as BigData.PaaS.Databricks; both route to the same agent handler.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
accountIdDatabricks account ID (cross-account metadata store)123456789012Conditional — required on first reconcile unless already published to the accountId output field
pricingTierDatabricks pricing tierpremium (default) or standardNo
credentialsIdAWS credentials configuration identifier registered with Databricksdatabricks-creds-idYes
storageConfigurationIdAWS storage configuration (S3 bucket) identifier registered with Databricksstorage-config-idYes
networkIdVPC network configuration identifier, for a customer-managed private networknet-abc123def456No

Example (fully parameterized):

{
"type": "BigData.PaaS.AwsDatabricks",
"parameters": {
"accountId": "123456789012",
"pricingTier": "premium",
"credentialsId": "databricks-creds-id",
"storageConfigurationId": "storage-config-id",
"networkId": "net-abc123def456"
}
}

BigData.PaaS.AwsDatabricksCluster

Spark compute cluster inside an AWS Databricks workspace. SDK-canonical name for the same offer as BigData.PaaS.DatabricksCluster.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
clusterNameCluster name as it appears in the workspace. Blank → derived from the component id.analytics-clusterNo
sparkVersionDatabricks runtime version. Blank → the workspace default.14.3.x-scala2.12No
nodeTypeIdEC2 instance type backing each node. Blank → the workspace default.i3.xlargeNo
numWorkersFixed worker count. Ignored when autoscaling bounds are set.2 (default)No
minWorkersAutoscaling floor1 (default)No
maxWorkersAutoscaling ceiling8 (default)No
sparkConfSpark configuration entries applied to the cluster{"spark.sql.shuffle.partitions": "200"}No
pypiLibrariesPyPI packages installed on the cluster at start["pandas==2.2.0"]No
mavenLibrariesMaven coordinates installed on the cluster at start["org.apache.spark:spark-avro_2.12:3.5.0"]No
autoTerminationMinutesIdle minutes before the cluster shuts itself down60 (default)No
dataSecurityModeAccess mode governing Unity Catalog isolationSINGLE_USER (default), USER_ISOLATION, NONENo

Example (fully parameterized):

{
"type": "BigData.PaaS.AwsDatabricksCluster",
"parameters": {
"clusterName": "analytics-cluster",
"sparkVersion": "14.3.x-scala2.12",
"nodeTypeId": "i3.xlarge",
"numWorkers": 2,
"minWorkers": 1,
"maxWorkers": 8,
"sparkConf": { "spark.sql.shuffle.partitions": "200" },
"pypiLibraries": ["pandas==2.2.0"],
"mavenLibraries": ["org.apache.spark:spark-avro_2.12:3.5.0"],
"autoTerminationMinutes": 60,
"dataSecurityMode": "SINGLE_USER"
}
}

BigData.PaaS.AwsDatabricksJob

Scheduled Databricks job on AWS. SDK-canonical name for the same offer as BigData.PaaS.DatabricksJob. Which artifact parameters are required depends on taskType.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
jobNameJob name as it appears in the workspace. Blank → derived from the component id.nightly-etlNo
taskTypeTask the job runsNOTEBOOK, PYTHON, SPARK_JAR, python_wheelNo
notebookPathWorkspace path of the notebook to run/Repos/acme/etl/nightlyConditional — required for the NOTEBOOK task type
pythonFilePath or URI of the Python file to rundbfs:/jobs/etl.pyConditional — required for the PYTHON task type
mainClassNameFully-qualified entry class in the JARcom.acme.etl.NightlyConditional — required for the SPARK_JAR task type
jarUriURI of the JAR to runs3://acme-artifacts/etl.jarNo
parametersPositional arguments passed to the task["--date", "2026-01-01"]No
cronScheduleQuartz cron expression for the schedule. Blank → the job runs only when triggered.0 0 2 * * ?No
maxRetriesRetry attempts on failure0 (default)No
existingClusterRun on the cluster this job depends on instead of a job clusterfalse (default)No
artifactTypeArtifact packaging for the wheel taskwheelNo
artifactUriURI of the wheel artifacts3://acme-artifacts/etl-1.0-py3-none-any.whlNo
packageNamePython package name inside the wheel. Blank → the component id.acme_etlNo
entryPointConsole-script entry point exposed by the wheelrun-nightlyConditional — required for the python_wheel task
entryPointArgsArguments passed to the wheel entry point["--full-refresh"]No
sparkVersionDatabricks runtime for the job cluster14.3.x-scala2.12 (default)No
nodeTypeIdEC2 instance type for the job clusteri3.xlarge (default)No

Example (fully parameterized):

{
"type": "BigData.PaaS.AwsDatabricksJob",
"parameters": {
"jobName": "nightly-etl",
"taskType": "python_wheel",
"artifactType": "wheel",
"artifactUri": "s3://acme-artifacts/etl-1.0-py3-none-any.whl",
"packageName": "acme_etl",
"entryPoint": "run-nightly",
"entryPointArgs": ["--full-refresh"],
"parameters": ["--date", "2026-01-01"],
"cronSchedule": "0 0 2 * * ?",
"maxRetries": 2,
"existingCluster": false,
"sparkVersion": "14.3.x-scala2.12",
"nodeTypeId": "i3.xlarge"
}
}

BigData.PaaS.AwsDatabricksMlflow

MLflow experiment inside an AWS Databricks workspace, for tracking runs, parameters, metrics and models. SDK-canonical name for the same offer as BigData.PaaS.DatabricksMlflowExperiment.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
experimentNameExperiment name as it appears in MLflowchurn-modelYes
artifactLocationObject-storage location for run artifacts. Blank → the workspace default.s3://acme-mlflow/churnNo

Example (fully parameterized):

{
"type": "BigData.PaaS.AwsDatabricksMlflow",
"parameters": {
"experimentName": "churn-model",
"artifactLocation": "s3://acme-mlflow/churn"
}
}

BigData.PaaS.AwsS3Datalake

S3 bucket used as a data lake: the raw, curated and checkpoint zones a DataProcessingJob reads and writes. Jobs declare which zone they use through a link setting, and the agent injects the matching URI into the job runtime.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
bucketS3 bucket name backing the lake (globally unique)acme-datalake-prodYes
versioningEnable object versioningfalse (default)No
forceDestroyAllow deletion of the bucket while it still holds objectsfalse (default)No

Example (fully parameterized):

{
"type": "BigData.PaaS.AwsS3Datalake",
"parameters": {
"bucket": "acme-datalake-prod",
"versioning": true,
"forceDestroy": false
}
}

BigData.PaaS.Databricks

Managed Databricks workspace on AWS. Provides a unified analytics platform for data engineering, data science, and BI workloads.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
accountIdDatabricks account ID (Cross-account metadata store)123456789012Conditional — required on first reconcile unless already published to the accountId output field
pricingTierDatabricks pricing tierpremium or standardNo
credentialsIdAWS credentials configuration identifierdatabricks-creds-idYes
storageConfigurationIdAWS storage configuration (S3 bucket) identifierstorage-config-idYes
networkIdVPC network configuration identifier for private networks``No

Example (fully parameterized):

{
"type": "BigData.PaaS.Databricks",
"parameters": {
"accountId": "123456789012",
"pricingTier": "premium",
"credentialsId": "databricks-creds-id",
"storageConfigurationId": "storage-config-id",
"networkId": "net-abc123def456"
}
}

BigData.PaaS.DatabricksCluster

A Databricks compute cluster for running Spark workloads. Supports autoscaling, data security modes, and custom configurations.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
clusterNameFriendly name for the clusterprod-clusterNo
sparkVersionDatabricks Runtime version (Spark + extensions)13.3.x-scala2.12No
nodeTypeIdAWS instance type for cluster nodesi3.xlargeNo
numWorkersInitial number of worker nodes2No
minWorkersMinimum workers for autoscaling1No
maxWorkersMaximum workers for autoscaling8No
sparkConfSpark configuration properties{}No
pypiLibrariesList of PyPI package specifications[]No
mavenLibrariesList of Maven coordinates for JVM libraries[]No
autoTerminationMinutesMinutes of inactivity before auto-shutdown60No
dataSecurityModeData security mode for clusterSINGLE_USER, USER_ISOLATION, NONENo

Example (fully parameterized):

{
"type": "BigData.PaaS.DatabricksCluster",
"parameters": {
"clusterName": "prod-cluster",
"sparkVersion": "13.3.x-scala2.12",
"nodeTypeId": "i3.xlarge",
"numWorkers": 2,
"minWorkers": 1,
"maxWorkers": 8,
"sparkConf": { "spark.databricks.delta.preview.enabled": "true" },
"pypiLibraries": ["pandas==2.0.0", "numpy==1.26.0"],
"mavenLibraries": ["com.amazonaws:aws-java-sdk-s3:1.12.600"],
"autoTerminationMinutes": 60,
"dataSecurityMode": "SINGLE_USER"
}
}

BigData.PaaS.DatabricksJob

A job configured in Databricks for scheduled or triggered task execution. Supports multiple task types: notebook, Python, SQL, JAR, and wheel.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
jobNameDisplay name for the jobdaily-etlNo
taskTypeType of task to executeNOTEBOOK, PYTHON, SQL, SPARK_JAR, python_wheelNo
notebookPathPath to notebook for NOTEBOOK task type/Users/user@example.com/etl_notebookConditional — required for the NOTEBOOK task type
pythonFilePath to Python file for PYTHON task types3://bucket/script.pyConditional — required for the PYTHON task type
mainClassNameMain class for SPARK_JAR task typecom.example.MainConditional — required for the SPARK_JAR task type
jarUriS3 URI to JAR files3://bucket/app.jarNo
parametersCommand-line parameters for the task[]No
cronScheduleCron expression for scheduled execution0 0 * * *No
maxRetriesMaximum number of automatic retries0No
existingClusterUse existing cluster ID instead of provisioningfalseNo
artifactTypeType of artifact (wheel, jar, etc.)wheel or jarNo
artifactUriS3 URI to artifacts3://bucket/artifact.whlNo
packageNamePackage name for wheel artifactsmy_packageNo
entryPointEntry point function for python_wheelmy_module:mainConditional — required for the python_wheel task
entryPointArgsArguments for the entry point[]No
sparkVersionSpark version for job cluster14.3.x-scala2.12No
nodeTypeIdInstance type for job clusteri3.xlargeNo

Example (fully parameterized):

{
"type": "BigData.PaaS.DatabricksJob",
"parameters": {
"jobName": "daily-etl",
"taskType": "python_wheel",
"notebookPath": "/Users/user@example.com/etl_notebook",
"pythonFile": "s3://bucket/script.py",
"mainClassName": "com.example.Main",
"jarUri": "s3://bucket/app.jar",
"parameters": ["--date", "2026-07-03"],
"cronSchedule": "0 0 * * *",
"maxRetries": 0,
"existingCluster": false,
"artifactType": "wheel",
"artifactUri": "s3://bucket/artifact.whl",
"packageName": "my_package",
"entryPoint": "my_module:main",
"entryPointArgs": ["--env", "prod"],
"sparkVersion": "14.3.x-scala2.12",
"nodeTypeId": "i3.xlarge"
}
}

BigData.PaaS.DatabricksMlflowExperiment

An MLflow experiment within Databricks for tracking machine learning runs, metrics, and artifacts.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
experimentNameFully qualified experiment name in Databricks/Shared/my-experimentYes
artifactLocationDBFS or S3 path for storing experiment artifacts/mnt/artifacts or s3://bucket/artifactsNo

Example (fully parameterized):

{
"type": "BigData.PaaS.DatabricksMlflowExperiment",
"parameters": {
"experimentName": "/Shared/my-experiment",
"artifactLocation": "s3://bucket/artifacts"
}
}

BigData.PaaS.S3

Amazon S3 object storage bucket for data storage and archival. Supports versioning and lifecycle policies.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
bucketS3 bucket name (globally unique)my-data-bucket-12345Yes
versioningEnable S3 object versioningfalseNo
forceDestroyAllow deletion of non-empty bucketfalseNo

Example (fully parameterized):

{
"type": "BigData.PaaS.S3",
"parameters": {
"bucket": "my-data-bucket-12345",
"versioning": false,
"forceDestroy": false
}
}

BigData.SaaS.Unmanaged

A placeholder for external or pre-existing big data platforms not directly provisioned by Fractal Cloud.

ParameterDescriptionExample / possible valuesRequired
secretNameName of the secret storing credentialsbigdata-secretNo
secretValueThe secret value (connection string, credentials, etc.)secret-contentYes
secretReference to an environment secret holding the external service's credential, as {"$envSecret": "<shortName>"}. The raw value never travels in the blueprint.{"$envSecret": "openai-api-key"}Conditional — required when secretValue is not set

Example (fully parameterized):

{
"type": "BigData.SaaS.Unmanaged",
"parameters": {
"secretName": "bigdata-secret",
"secretValue": "secret-content"
}
}

CustomWorkloads

CustomWorkloads.CaaS.KubernetesWorkload

A Kubernetes workload (Deployment, StatefulSet, DaemonSet, etc.) deployed via GitOps from a Git repository. Supports environment-specific configuration and secret injection.

ParameterDescriptionExample / possible valuesRequired
sshRepositoryURISSH URI to the Git repositorygit@github.com:org/repo.gitYes
repoIdRepository identifier for organization/filteringrepo-nameYes
branchNameGit branch to deploy frommain or productionYes
privateSSHKeySecretIdSecret ID for Git SSH private keygit-ssh-key-idNo
privateSSHKeyEnvironmentSecretShortNameEnvironment variable name for SSH key pathSSH_KEY_PATHNo
privateSSHKeyPassphraseSecretIdSecret ID for SSH key passphrasessh-passphrase-idNo
privateSSHKeyPassphraseEnvironmentSecretShortNameEnvironment variable name for SSH passphraseSSH_PASSPHRASENo
ciCdProfileShortNameCI/CD profile identifier for build/deploy configurationdefault-profileNo
environmentSecretShortNamesList of environment secret identifiers to inject["db-secret", "api-secret"]No
rolesList of RBAC roles to assign to the workload[]No
workloadSecretIdKeySecret key name for workload IDWORKLOAD_IDNo
workloadSecretPasswordKeySecret key name for workload passwordWORKLOAD_PASSWORDNo
workloadIdentityEnabledEnable Kubernetes workload identity for cloud authenticationtrueNo
namespaceKubernetes namespace for deploymentdefaultYes
containerPlatformDeprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback.my-clusterNo

Example (fully parameterized):

{
"type": "CustomWorkloads.CaaS.KubernetesWorkload",
"parameters": {
"sshRepositoryURI": "git@github.com:org/repo.git",
"repoId": "repo-name",
"branchName": "main",
"privateSSHKeySecretId": "git-ssh-key-id",
"privateSSHKeyEnvironmentSecretShortName": "SSH_KEY_PATH",
"privateSSHKeyPassphraseSecretId": "ssh-passphrase-id",
"privateSSHKeyPassphraseEnvironmentSecretShortName": "SSH_PASSPHRASE",
"ciCdProfileShortName": "default-profile",
"environmentSecretShortNames": ["db-secret", "api-secret"],
"roles": ["viewer", "deployer"],
"workloadSecretIdKey": "WORKLOAD_ID",
"workloadSecretPasswordKey": "WORKLOAD_PASSWORD",
"workloadIdentityEnabled": true,
"namespace": "default"
}
}

CustomWorkloads.FaaS.AwsLambda

AWS Lambda serverless function for event-driven compute. Supports container images and ZIP packages with configurable runtime, memory, and timeout.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
functionNameName of the Lambda functionmy-functionNo
runtimeExecution runtimejava21, python3.11, nodejs20.xNo
handlerHandler function for ZIP packagesindex.handler or com.example.Handler::handleRequestConditional — required for the zip-packaged path
roleArnIAM role ARN for Lambda executionarn:aws:iam::123456789012:role/lambda-roleConditional — required unless the environment supplies a Lambda execution role
sourceArtifactOCI artifact reference (image URI or S3 location)123456789012.dkr.ecr.us-east-1.amazonaws.com/my-func:latestConditional — required unless the legacy codeBase64 inline zip is supplied
packageTypePackage type classificationimage or zipNo
codeBase64Base64-encoded ZIP file (deprecated)UEsDBAoAA...Conditional — deprecated legacy inline zip source; required unless sourceArtifact is supplied
environmentEnvironment variables passed to the function{"DB_HOST": "localhost"}No
memoryMbMemory allocation for function128 to 10240No
timeoutSecondsMaximum execution time3 to 900No

Example (fully parameterized):

{
"type": "CustomWorkloads.FaaS.AwsLambda",
"parameters": {
"functionName": "my-function",
"runtime": "java21",
"handler": "com.example.Handler::handleRequest",
"roleArn": "arn:aws:iam::123456789012:role/lambda-role",
"sourceArtifact": "123456789012.dkr.ecr.us-east-1.amazonaws.com/my-func:latest",
"packageType": "image",
"codeBase64": "UEsDBAoAAAAAAA...",
"environment": { "DB_HOST": "localhost" },
"memoryMb": 128,
"timeoutSeconds": 3
}
}

CustomWorkloads.PaaS.AwsEcsService

Long-running container workload on Amazon ECS. One blueprint workload maps to two live-system components: an ECS task definition (id ${workload.id}-task, carrying the image and sizing) and this service (id ${workload.id}, carrying the cluster and subnet dependencies plus the links), with the service depending on the task definition.

Phantom component

This offer provisions no infrastructure of its own. It exists so a Workload blueprint can say "run me as this cloud's managed container service" while keeping the dependency graph uniform across providers. The agent marks it Active on instantiation and Deleted on removal so dependents can proceed; the real resources come from the sub-components listed below.

Image, sizing, ports, replicas and environment are carried on the task definition (NetworkAndCompute.CaaS.ECSTaskDefinition); the running service is NetworkAndCompute.CaaS.ECSService. This component depends on those and carries the workload's links.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No

Example:

{
"type": "CustomWorkloads.PaaS.AwsEcsService",
"parameters": {}
}

CustomWorkloads.SaaS.Unmanaged

A placeholder for external or pre-existing serverless/workload platforms not directly provisioned by Fractal Cloud.

ParameterDescriptionExample / possible valuesRequired
secretNameName of the secret storing credentialsworkload-secretNo
secretValueThe secret value (credentials, API key, etc.)secret-contentYes
secretReference to an environment secret holding the external service's credential, as {"$envSecret": "<shortName>"}. The raw value never travels in the blueprint.{"$envSecret": "openai-api-key"}Conditional — required when secretValue is not set

Example (fully parameterized):

{
"type": "CustomWorkloads.SaaS.Unmanaged",
"parameters": {
"secretName": "workload-secret",
"secretValue": "secret-content"
}
}

Messaging

Messaging.CaaS.Kafka

Apache Kafka message broker on Kubernetes for high-throughput, durable publish-subscribe messaging. Includes storage, replication, and consumer group management.

ParameterDescriptionExample / possible valuesRequired
replicasNumber of Kafka broker replicas in the cluster5No
kafkaVersionKafka version4.2.0No
memoryRequestRequested memory per Kafka broker pod16GiNo
memoryLimitMaximum memory per Kafka broker pod32GiNo
cpuRequestRequested CPU per Kafka broker pod4No
cpuLimitMaximum CPU per Kafka broker pod8No
storageSizeSize of persistent storage per broker1TiNo
namespaceKubernetes namespacekafkaYes
containerPlatformDeprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback.my-clusterNo

Example (fully parameterized):

{
"type": "Messaging.CaaS.Kafka",
"parameters": {
"replicas": 5,
"kafkaVersion": "4.2.0",
"memoryRequest": "16Gi",
"memoryLimit": "32Gi",
"cpuRequest": "4",
"cpuLimit": "8",
"storageSize": "1Ti",
"namespace": "kafka"
}
}

Messaging.CaaS.KafkaTopic

A Kafka topic for organizing messages by subject or stream. Configurable partitions, replication factor, and retention policies.

ParameterDescriptionExample / possible valuesRequired
partitionsNumber of partitions for parallel processing50No
replicasReplication factor for durability2No
retentionMsMessage retention period in milliseconds172800000 (2 days)No
clusterNameName of the Kafka cluster this topic belongs tokafka-clusterYes
namespaceKubernetes namespacekafkaYes
containerPlatformDeprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback.my-clusterNo

Example (fully parameterized):

{
"type": "Messaging.CaaS.KafkaTopic",
"parameters": {
"partitions": 50,
"replicas": 2,
"retentionMs": 172800000,
"clusterName": "kafka-cluster",
"namespace": "kafka"
}
}

Messaging.CaaS.KafkaUser

A Kafka user account with ACL (Access Control List) permissions. Configures authentication and authorization for client access.

ParameterDescriptionExample / possible valuesRequired
aclsList of ACL rules defining topic/group access[]No
clusterNameName of the Kafka clusterkafka-clusterYes
namespaceKubernetes namespacekafkaYes
containerPlatformDeprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback.my-clusterNo

Example (fully parameterized):

{
"type": "Messaging.CaaS.KafkaUser",
"parameters": {
"acls": [],
"clusterName": "kafka-cluster",
"namespace": "kafka"
}
}

Messaging.SaaS.Unmanaged

A placeholder for external or pre-existing messaging platforms not directly provisioned by Fractal Cloud.

ParameterDescriptionExample / possible valuesRequired
secretNameName of the secret storing credentialsmessaging-secretNo
secretValueThe secret value (connection string, credentials, etc.)secret-contentYes
secretReference to an environment secret holding the external service's credential, as {"$envSecret": "<shortName>"}. The raw value never travels in the blueprint.{"$envSecret": "openai-api-key"}Conditional — required when secretValue is not set

Example (fully parameterized):

{
"type": "Messaging.SaaS.Unmanaged",
"parameters": {
"secretName": "messaging-secret",
"secretValue": "secret-content"
}
}

NetworkAndCompute

NetworkAndCompute.CaaS.ECSService

AWS ECS (Elastic Container Service) service that manages containerized workload replicas across an ECS cluster. Handles task placement and scaling.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
desiredCountNumber of task replicas to maintain1No
launchTypeCompute launch typeFARGATE, EC2No
assignPublicIpAssign public IP addresses to tasksfalseNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.CaaS.ECSService",
"parameters": {
"desiredCount": 1,
"launchType": "FARGATE",
"assignPublicIp": false
}
}

NetworkAndCompute.CaaS.ECSTaskDefinition

ECS task definition that specifies container images, resource allocation, logging, and environment configuration for containerized tasks.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
cpuCPU units allocated per task256, 512, 1024, 2048No
memoryMemory in MB allocated per task512, 1024, 2048No
networkModeDocker network modebridge, host, awsvpcNo
containerNameName of the container within the taskapp-containerNo
containerImageContainer image URI123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp:latestNo
containerPortPort number exposed by the container8080No
executionRoleArnIAM role ARN for ECS task executionarn:aws:iam::123456789012:role/ecsTaskExecutionRoleNo
taskRoleArnIAM role ARN for application inside containerarn:aws:iam::123456789012:role/ecsTaskRoleNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.CaaS.ECSTaskDefinition",
"parameters": {
"cpu": "256",
"memory": "512",
"networkMode": "awsvpc",
"containerName": "app-container",
"containerImage": "123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp:latest",
"containerPort": 8080,
"executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole",
"taskRoleArn": "arn:aws:iam::123456789012:role/ecsTaskRole"
}
}

NetworkAndCompute.IaaS.AwsLoadBalancer

AWS Elastic Load Balancer (ALB/NLB) for distributing traffic across targets. Supports multiple availability zones and health checking.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
lbTypeLoad balancer typeapplication (ALB), network (NLB), classic (ELB)No
lbSchemeLoad balancer schemeinternet-facing, internalNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.AwsLoadBalancer",
"parameters": {
"lbType": "application",
"lbScheme": "internet-facing"
}
}

NetworkAndCompute.IaaS.AwsSecurityGroup

AWS security group for controlling inbound and outbound network traffic. Framework-managed; custom rules are derived from component links.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
descriptionHuman-readable description of the security groupWeb tier accessNo
ingressRulesPre-defined ingress rules (custom rules via links)[]No

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.AwsSecurityGroup",
"parameters": {
"description": "Web tier access",
"ingressRules": []
}
}

NetworkAndCompute.IaaS.AwsSubnet

AWS VPC subnet for logical network segmentation. Configurable CIDR block and availability zone.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
cidrBlockCIDR block for the subnet10.0.1.0/24No
availabilityZoneAWS availability zoneus-east-1aNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.AwsSubnet",
"parameters": {
"cidrBlock": "10.0.1.0/24",
"availabilityZone": "us-east-1a"
}
}

NetworkAndCompute.IaaS.AwsVpc

AWS Virtual Private Cloud for network isolation and control. Provides the foundation for all VPC-based resources.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
cidrBlockCIDR block for the VPC10.0.0.0/16No
enableDnsSupportEnable DNS resolution within the VPCtrueNo
enableDnsHostnamesEnable DNS hostnames for EC2 instancestrueNo
instanceTenancyVPC tenancy modedefault, dedicated, hostNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.AwsVpc",
"parameters": {
"cidrBlock": "10.0.0.0/16",
"enableDnsSupport": true,
"enableDnsHostnames": true,
"instanceTenancy": "default"
}
}

NetworkAndCompute.IaaS.EC2

AWS EC2 virtual machine instance. Configurable instance type, AMI, and network settings.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
amiIdAmazon Machine Image IDami-0a123456789abcdefYes
instanceTypeEC2 instance typet3.medium, m5.large, c5.xlargeYes
keyNameEC2 key pair name for SSH accessmy-keypairNo
userDataUser data script (base64 or plain text)#!/bin/bash\necho "Hello"No
iamInstanceProfileIAM instance profile name/ARNec2-app-profileNo
associatePublicIpAssign public IP address to instancefalseNo
identityWorkload identity to attach, so software on the instance reaches cloud services without injected keys. Least-privilege by default.{"instanceProfile": "acme-app-profile"}No

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.EC2",
"parameters": {
"amiId": "ami-0a123456789abcdef",
"instanceType": "t3.medium",
"keyName": "my-keypair",
"userData": "#!/bin/bash\necho \"Hello\"",
"iamInstanceProfile": "ec2-app-profile",
"associatePublicIp": false
}
}

NetworkAndCompute.PaaS.AwsEc2Instance

EC2 instance. SDK-canonical name for the same offer as NetworkAndCompute.IaaS.EC2; both route to the same agent handler. Depends on the subnet it is placed in, and links to security groups for membership.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
amiIdAMI to launch. Unset → the latest Amazon Linux 2023 AMI, resolved dynamically at create time.ami-0abcdef1234567890No
instanceTypeEC2 instance typet3.micro, m6i.largeNo
keyNameName of an existing EC2 key pair to authorizeacme-bastionNo
userDataCloud-init script run at first boot#!/bin/bash\nyum install -y nginxNo
iamInstanceProfileIAM instance profile to attach. Prefer identity below, which lets the agent create and attach one.acme-app-profileNo
associatePublicIpAttach a public IP to the instancefalse (default)No
identityWorkload identity to attach, so software on the box reaches AWS services without injected keys. Least-privilege by default.{"instanceProfile": "acme-app-profile"}No

Example (fully parameterized):

{
"type": "NetworkAndCompute.PaaS.AwsEc2Instance",
"parameters": {
"amiId": "ami-0abcdef1234567890",
"instanceType": "t3.micro",
"keyName": "acme-bastion",
"userData": "#!/bin/bash\nyum install -y nginx",
"associatePublicIp": false,
"identity": { "instanceProfile": "acme-app-profile" }
}
}

NetworkAndCompute.PaaS.AwsEks

Amazon EKS cluster. SDK-canonical name for the same offer as NetworkAndCompute.PaaS.EKS; both route to the same agent handler.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
kubernetesVersionControl-plane version. Blank → the EKS default.1.30No
networkPolicyProviderNetwork policy implementation to installcalicoNo
nodePoolsNode group topology. Empty → a single managed default pool.[{"name": "default", "minNodeCount": 2, "maxNodeCount": 6, "autoscalingEnabled": true}]No
workloadIdentityEnabledEnable IRSA / EKS Pod Identity so pods assume IAM roles without static keystrue (default)No
privateClusterDisabledExpose the API server publicly. Leave false for a private-only control plane.false (default)No
serviceIpRangeExplicit CIDR for cluster services. Blank → allocated by IPAM in spoke mode.10.100.0.0/16No
podIpRangeExplicit CIDR for pods. Blank → allocated by IPAM in spoke mode.10.101.0.0/16No
podCidrPrefixLengthPrefix length requested from IPAM for the pod range20 (default)No
serviceCidrPrefixLengthPrefix length requested from IPAM for the service range20 (default)No
addonsEKS add-ons to install["vpc-cni", "coredns", "kube-proxy"]No

Example (fully parameterized):

{
"type": "NetworkAndCompute.PaaS.AwsEks",
"parameters": {
"kubernetesVersion": "1.30",
"networkPolicyProvider": "calico",
"nodePools": [
{ "name": "default", "minNodeCount": 2, "maxNodeCount": 6, "autoscalingEnabled": true }
],
"workloadIdentityEnabled": true,
"privateClusterDisabled": false,
"podCidrPrefixLength": 20,
"serviceCidrPrefixLength": 20,
"addons": ["vpc-cni", "coredns", "kube-proxy"]
}
}

NetworkAndCompute.PaaS.AwsLb

Elastic Load Balancer. SDK-canonical name for the same offer as NetworkAndCompute.IaaS.AwsLoadBalancer; both route to the same agent handler. Depends on its subnets and links to its backend compute components for target registration.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
lbTypeLoad balancer flavourapplication (default), networkNo
lbSchemeWhether the load balancer is reachable from the internet. Blank → internal.internet-facing, internalNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.PaaS.AwsLb",
"parameters": {
"lbType": "application",
"lbScheme": "internet-facing"
}
}

NetworkAndCompute.PaaS.ECS

AWS ECS cluster providing the orchestration platform for containerized workloads. Manages compute capacity and task scheduling.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No

Example (fully parameterized):

{
"type": "NetworkAndCompute.PaaS.ECS",
"parameters": {}
}

NetworkAndCompute.PaaS.EKS

AWS Elastic Kubernetes Service (EKS) for managed Kubernetes orchestration. Handles control plane operations and node provisioning.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
kubernetesVersionKubernetes version1.28, 1.29, 1.30No
networkPolicyProviderNetwork policy enforcementcalico, cilium, aws-vpc-cniNo
nodePoolsList of node pool configurations[]No
workloadIdentityEnabledEnable IRSA (IAM Roles for Service Accounts)trueNo
privateClusterDisabledDisable private endpoint access to control planefalseNo
serviceIpRangeCIDR range for Kubernetes services10.100.0.0/16No
addonsList of EKS add-ons to install["vpc-cni", "kube-proxy", "coredns"]No
podIpRangeExplicit CIDR for pods. Blank → allocated by IPAM in spoke mode.10.101.0.0/16No
podCidrPrefixLengthPrefix length requested from IPAM for the pod range20 (default)No
serviceCidrPrefixLengthPrefix length requested from IPAM for the service range20 (default)No

Example (fully parameterized):

{
"type": "NetworkAndCompute.PaaS.EKS",
"parameters": {
"kubernetesVersion": "1.30",
"networkPolicyProvider": "aws-vpc-cni",
"nodePools": [],
"workloadIdentityEnabled": true,
"privateClusterDisabled": false,
"serviceIpRange": "10.100.0.0/16",
"addons": ["vpc-cni", "kube-proxy", "coredns"]
}
}

NetworkAndCompute.PaaS.Kubernetes

Generic Kubernetes cluster specification. Supports EKS and other managed Kubernetes services with consistent configuration.

ParameterDescriptionExample / possible valuesRequired
kubernetesVersionKubernetes version1.28, 1.29, 1.30No
networkPolicyProviderNetwork policy enforcementcalico, cilium, aws-vpc-cniNo
nodePoolsList of node pool configurations[]No
workloadIdentityEnabledEnable workload identity for pod authenticationtrueNo
privateClusterDisabledDisable private endpoint access to control planefalseNo
serviceIpRangeCIDR range for Kubernetes services10.100.0.0/16No
addonsList of add-ons to install[]No
podIpRangeExplicit CIDR for pods. Blank → allocated by IPAM in spoke mode.10.101.0.0/16No
podCidrPrefixLengthPrefix length requested from IPAM for the pod range20 (default)No
serviceCidrPrefixLengthPrefix length requested from IPAM for the service range20 (default)No

Example (fully parameterized):

{
"type": "NetworkAndCompute.PaaS.Kubernetes",
"parameters": {
"kubernetesVersion": "1.30",
"networkPolicyProvider": "calico",
"nodePools": [],
"workloadIdentityEnabled": true,
"privateClusterDisabled": false,
"serviceIpRange": "10.100.0.0/16",
"addons": ["vpc-cni", "kube-proxy", "coredns"]
}
}

NetworkAndCompute.SaaS.Unmanaged

A placeholder for external or pre-existing compute/network solutions not directly provisioned by Fractal Cloud.

ParameterDescriptionExample / possible valuesRequired
secretNameName of the secret storing credentialsnetwork-secretNo
secretValueThe secret value (credentials, connection string, etc.)secret-contentYes
secretReference to an environment secret holding the external service's credential, as {"$envSecret": "<shortName>"}. The raw value never travels in the blueprint.{"$envSecret": "openai-api-key"}Conditional — required when secretValue is not set

Example (fully parameterized):

{
"type": "NetworkAndCompute.SaaS.Unmanaged",
"parameters": {
"secretName": "network-secret",
"secretValue": "secret-content"
}
}

Observability

Observability.CaaS.Elastic

Elasticsearch cluster on Kubernetes for indexing and searching large volumes of log and event data.

ParameterDescriptionExample / possible valuesRequired
elasticVersionElasticsearch version8.10.0Yes
elasticInstancesNumber of Elasticsearch nodes3Yes
storageStorage size per node100GiYes
storageClassNameKubernetes storage class for persistent volumescluster defaultNo
memoryMemory in GB per Elasticsearch pod8No
cpuCPU cores per Elasticsearch pod8No
isApmRequiredDeploy APM (Application Performance Monitoring) serverfalseNo
isKibanaRequiredDeploy Kibana for visualizationtrueNo
secretsSecrets configuration map{}No
namespaceKubernetes namespaceelasticYes
isKibanaPubliclyExposedExpose the Kibana endpoint publicly. Leave false to keep it reachable only inside the cluster.false (default)No
containerPlatformDeprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback.my-clusterNo

Example (fully parameterized):

{
"type": "Observability.CaaS.Elastic",
"parameters": {
"elasticVersion": "8.10.0",
"elasticInstances": 3,
"storage": "100Gi",
"storageClassName": "gp3",
"memory": 8,
"cpu": 8,
"isApmRequired": false,
"isKibanaRequired": true,
"secrets": { "elastic-credentials": "es-creds-secret" },
"namespace": "elastic"
}
}

Observability.CaaS.Jaeger

Jaeger distributed tracing system on Kubernetes for monitoring microservice interactions and latency analysis.

ParameterDescriptionExample / possible valuesRequired
storageClassNameKubernetes storage class for backend storagecluster defaultNo
storageSettingsBackend storage configuration (elasticsearch, cassandra){}No
namespaceKubernetes namespacejaegerYes
containerPlatformDeprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback.my-clusterNo

Example (fully parameterized):

{
"type": "Observability.CaaS.Jaeger",
"parameters": {
"storageClassName": "gp3",
"storageSettings": { "type": "elasticsearch", "esServerUrls": "https://elasticsearch:9200" },
"namespace": "jaeger"
}
}

Observability.CaaS.Prometheus

Prometheus monitoring server on Kubernetes for scraping metrics and triggering alerts based on time-series data.

ParameterDescriptionExample / possible valuesRequired
grafanaConfigSecretIdSecret ID containing Grafana configurationgrafana-config-secretNo
namespaceKubernetes namespaceprometheusYes
containerPlatformDeprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback.my-clusterNo

Example (fully parameterized):

{
"type": "Observability.CaaS.Prometheus",
"parameters": {
"grafanaConfigSecretId": "grafana-config-secret",
"namespace": "prometheus"
}
}

Observability.SaaS.Elastic

Managed Elasticsearch service (e.g., Elastic Cloud) for log storage and analysis without self-hosting.

ParameterDescriptionExample / possible valuesRequired
kibanaUriURI to the Kibana dashboardhttps://kibana.example.comYes
versionElasticsearch version running on the service8.10.0Yes
operatorVersionOperator version managing the deployment2.8.0Yes

Example (fully parameterized):

{
"type": "Observability.SaaS.Elastic",
"parameters": {
"kibanaUri": "https://kibana.example.com",
"version": "8.10.0",
"operatorVersion": "2.8.0"
}
}

Observability.SaaS.Jaeger

Managed Jaeger service (e.g., Jaeger Cloud) for distributed tracing as a managed service.

ParameterDescriptionExample / possible valuesRequired
frontendUriURI to the Jaeger UIhttps://jaeger.example.comYes
versionJaeger version1.48.0Yes

Example (fully parameterized):

{
"type": "Observability.SaaS.Jaeger",
"parameters": {
"frontendUri": "https://jaeger.example.com",
"version": "1.48.0"
}
}

Observability.SaaS.Prometheus

Managed Prometheus service (e.g., AWS AMP - Amazon Managed Prometheus) for metrics collection and querying.

ParameterDescriptionExample / possible valuesRequired
apiGatewayUrlAPI endpoint for metrics ingestion and querieshttps://aps.us-east-1.amazonaws.com/Yes
grafanaConfigSecretIdSecret ID containing Grafana datasource configurationgrafana-amp-configYes

Example (fully parameterized):

{
"type": "Observability.SaaS.Prometheus",
"parameters": {
"apiGatewayUrl": "https://aps.us-east-1.amazonaws.com/",
"grafanaConfigSecretId": "grafana-amp-config"
}
}

Security

Security.CaaS.Ocelot

Ocelot API gateway on Kubernetes providing routing, authentication, rate limiting, and request/response transformation.

ParameterDescriptionExample / possible valuesRequired
hostHostname for the Ocelot gatewayapi.example.comYes
corsOriginsList of allowed CORS origins["https://example.com", "https://app.example.com"]No
cookieMaxAgeSecSession cookie max age in seconds900No
pathPrefixURL path prefix for routing/* or /api/*No
rolesList of authorization roles[]No
namespaceKubernetes namespaceocelotYes
containerPlatformDeprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback.my-clusterNo

Example (fully parameterized):

{
"type": "Security.CaaS.Ocelot",
"parameters": {
"host": "api.example.com",
"corsOrigins": ["https://example.com", "https://app.example.com"],
"cookieMaxAgeSec": 900,
"pathPrefix": "/*",
"roles": ["admin", "user"],
"namespace": "ocelot"
}
}

Security.PaaS.AwsCognito

Amazon Cognito User Pool — the AWS implementation of the Identity Provider component. Provisions a user directory (pool) with configurable MFA and password guardrails. App clients are not configured here: each inbound link from a Workload or gateway provisions exactly one app client (see below). A pool with zero links is a valid bare pool.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the pool is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
userDirectoryNameUser pool name. Blank → the component id.customersNo
mfaConfigurationMulti-factor authentication enforcement.OFF (default), OPTIONAL, ONNo
passwordPolicyPassword guardrail object: minLength plus optional requireUppercase / requireLowercase / requireNumbers / requireSymbols booleans (omitted → Cognito default).{"minLength": 8, "requireSymbols": true}No
sessionDurationToken / session duration in seconds.3600 (default)No

Example (fully parameterized):

{
"type": "Security.PaaS.AwsCognito",
"parameters": {
"region": "eu-central-1",
"userDirectoryName": "customers",
"mfaConfiguration": "OPTIONAL",
"passwordPolicy": { "minLength": 12, "requireUppercase": true, "requireNumbers": true, "requireSymbols": true },
"sessionDuration": 3600
}
}

App clients (provisioned per link). A Workload or gateway component links to this provider to become an OAuth client; each link provisions one app client shaped by clientType (web, spa, or machine), with redirectUris / logoutUris / scopes taken from the link settings. The guardrails above cap what any client may request. The pool publishes oidcIssuerUrl, jwksUri, and each created clientId as output fields; the agent injects OIDC_ISSUER_URI, OIDC_CLIENT_ID, OIDC_JWKS_URI, OIDC_SCOPES, and — for confidential (web / machine) clients — OIDC_CLIENT_SECRET_REF into the linked consumer. The raw client secret is stored in AWS Secrets Manager and never placed in output fields.

Security.SaaS.Unmanaged

A placeholder for external or pre-existing security solutions not directly provisioned by Fractal Cloud.

ParameterDescriptionExample / possible valuesRequired
secretNameName of the secret storing credentialssecurity-secretNo
secretValueThe secret value (credentials, API key, etc.)secret-contentYes
secretReference to an environment secret holding the external service's credential, as {"$envSecret": "<shortName>"}. The raw value never travels in the blueprint.{"$envSecret": "openai-api-key"}Conditional — required when secretValue is not set

Example (fully parameterized):

{
"type": "Security.SaaS.Unmanaged",
"parameters": {
"secretName": "security-secret",
"secretValue": "secret-content"
}
}

Storage

Storage.CaaS.CnpgCluster

CloudNativePG (CNPG) PostgreSQL cluster on Kubernetes. Provides HA PostgreSQL with automated backup, recovery, and failover.

ParameterDescriptionExample / possible valuesRequired
instancesNumber of PostgreSQL replicas3No
postgresqlVersionPostgreSQL version17.2No
storageSizePersistent volume size per instance10GiNo
storageClassKubernetes storage classcluster defaultNo
cpuRequestRequested CPU per PostgreSQL pod500mNo
cpuLimitMaximum CPU per PostgreSQL pod1No
memoryRequestRequested memory per PostgreSQL pod512MiNo
memoryLimitMaximum memory per PostgreSQL pod1GiNo
databaseDefault database nameappNo
databaseOwnerDefault database owner userappNo
enableSuperuserAccessEnable superuser access for the database ownerfalseNo
namespaceKubernetes namespacecnpgYes
ageEnable age-based encryption of the CloudNativePG backup credentialsfalse (default)No
containerPlatformDeprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback.my-clusterNo

Example (fully parameterized):

{
"type": "Storage.CaaS.CnpgCluster",
"parameters": {
"instances": 3,
"postgresqlVersion": "17.2",
"storageSize": "10Gi",
"storageClass": "gp3",
"cpuRequest": "500m",
"cpuLimit": "1",
"memoryRequest": "512Mi",
"memoryLimit": "1Gi",
"database": "app",
"databaseOwner": "app",
"enableSuperuserAccess": false,
"namespace": "cnpg"
}
}

Storage.CaaS.CnpgDatabase

A database within a CNPG PostgreSQL cluster. Configurable name, owner, and locale settings.

ParameterDescriptionExample / possible valuesRequired
databaseNameName of the databaseapp or myapp_prodNo
databaseOwnerDatabase owner user nameapp_userNo
encodingCharacter encodingUTF8, LATIN1No
localeCollateCollation localeen_US.UTF-8No
localeCTypeCharacter type localeen_US.UTF-8No
cnpgClusterNameName of the parent CNPG clusterpostgres-clusterYes
namespaceKubernetes namespacecnpgYes
containerPlatformDeprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback.my-clusterNo

Example (fully parameterized):

{
"type": "Storage.CaaS.CnpgDatabase",
"parameters": {
"databaseName": "app",
"databaseOwner": "app",
"encoding": "UTF8",
"localeCollate": "en_US.UTF-8",
"localeCType": "en_US.UTF-8",
"cnpgClusterName": "postgres-cluster",
"namespace": "cnpg"
}
}

Storage.CaaS.Elastic

Elasticsearch cluster on Kubernetes for storage and indexing of documents and logs.

ParameterDescriptionExample / possible valuesRequired
elasticVersionElasticsearch version8.10.0Yes
elasticInstancesNumber of Elasticsearch nodes3Yes
storageStorage size per node100GiYes
storageClassNameKubernetes storage classcluster defaultNo
memoryMemory in GB per Elasticsearch pod8No
cpuCPU cores per Elasticsearch pod8No
isApmRequiredInclude APM Server componentfalseNo
isKibanaRequiredInclude Kibana UI componenttrueNo
secretsAdditional secrets for configuration{}No
namespaceKubernetes namespaceelasticYes
isKibanaPubliclyExposedExpose the Kibana endpoint publicly. Leave false to keep it reachable only inside the cluster.false (default)No
containerPlatformDeprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback.my-clusterNo

Example (fully parameterized):

{
"type": "Storage.CaaS.Elastic",
"parameters": {
"elasticVersion": "8.10.0",
"elasticInstances": 3,
"storage": "100Gi",
"storageClassName": "gp3",
"memory": 8,
"cpu": 8,
"isApmRequired": false,
"isKibanaRequired": true,
"secrets": { "elastic-credentials": "es-creds-secret" },
"namespace": "elastic"
}
}

Storage.CaaS.MinioTenant

MinIO object storage tenant on Kubernetes for S3-compatible distributed storage.

ParameterDescriptionExample / possible valuesRequired
minioVersionMinIO release versionRELEASE.2025-03-12T18-04-18ZNo
serversNumber of MinIO servers4No
volumesPerServerNumber of volumes per server4No
volumeSizeStorage volume size100GiNo
storageClassKubernetes storage classcluster defaultNo
cpuRequestRequested CPU per server500mNo
cpuLimitMaximum CPU per server2No
memoryRequestRequested memory per server1GiNo
memoryLimitMaximum memory per server4GiNo
requestAutoCertAuto-generate TLS certificatestrueNo
namespaceKubernetes namespaceminioYes
containerPlatformDeprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback.my-clusterNo

Example (fully parameterized):

{
"type": "Storage.CaaS.MinioTenant",
"parameters": {
"minioVersion": "RELEASE.2025-03-12T18-04-18Z",
"servers": 4,
"volumesPerServer": 4,
"volumeSize": "100Gi",
"storageClass": "gp3",
"cpuRequest": "500m",
"cpuLimit": "2",
"memoryRequest": "1Gi",
"memoryLimit": "4Gi",
"requestAutoCert": true,
"namespace": "minio"
}
}

Storage.PaaS.AwsRdsPostgres

Amazon RDS for PostgreSQL. One offer covers both shapes RDS provides, selected by mode: an Aurora cluster with Serverless v2 members (aurora-serverless, the default) or a single provisioned instance (provisioned-instance). Both publish the same connection output fields, so moving between them changes nothing for a linked consumer.

The security posture is not configurable — encryption at rest, private-only networking, IAM database authentication, CloudWatch log export and automatic minor upgrades are always applied. The master credential is created and held by RDS itself, so the agent never holds it: only masterUserSecretArn is published, and each linked consumer gets its own PostgreSQL role with its password in Secrets Manager.

Availability, durability and capacity defaults come from the environment type rather than from a fixed constant — a personal environment gets a single-AZ, no-reader, 1-day-retention sandbox profile; an organizational one gets a reader in a second zone, Multi-AZ and 14-day retention. The applied profile is published as the haProfile output field. An explicit parameter always wins over the profile, in both directions.

With no Subnet dependencies the agent places the database across the environment spoke's per-AZ private subnets. Declare Subnet dependencies to override that; a spoke offering fewer than two Availability Zones fails, because a DB subnet group must span at least two.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
modeWhich RDS shape to provisionaurora-serverless (default), provisioned-instanceNo
versionPostgreSQL major version. RDS resolves it to the latest supported minor at create time.16 (default)No
instanceClassInstance class for cluster members or the provisioned instance. Aurora Serverless v2 always uses db.serverless.db.t4g.micro, db.t4g.mediumConditional — default depends on the environment type
administratorLoginMaster username RDS createsfractaladmin (default)No
allocatedStorageGbInitial storage. Provisioned mode only.20 (default)No
maxAllocatedStorageGbCeiling storage autoscaling grows to. Provisioned mode only.100 (default)No
minAcuAurora Serverless v2 capacity floor, in Aurora Capacity Units0.5Conditional — default depends on the environment type
maxAcuAurora Serverless v2 capacity ceiling, in Aurora Capacity Units2, 8Conditional — default depends on the environment type
readerCountAurora reader members. Aurora mode only, capped at 15 by AWS.0, 1Conditional — default depends on the environment type
multiAzProvision a standby in a second zone. Provisioned mode only.true, falseConditional — default depends on the environment type
backupRetentionDaysAutomated backup retention window1, 14Conditional — default depends on the environment type
deletionProtectionRefuse to delete the cluster or instancefalse (default)No
portListener port5432 (default)No

Example (fully parameterized):

{
"type": "Storage.PaaS.AwsRdsPostgres",
"parameters": {
"mode": "aurora-serverless",
"version": "16",
"instanceClass": "db.serverless",
"administratorLogin": "fractaladmin",
"minAcu": 0.5,
"maxAcu": 8,
"readerCount": 1,
"backupRetentionDays": 14,
"deletionProtection": true,
"port": 5432
}
}

Storage.PaaS.AwsRdsPostgresDatabase

A logical PostgreSQL database inside an Storage.PaaS.AwsRdsPostgres DBMS. Added under its DBMS as a child component, so it is never offer-selected independently — swapping the DBMS offer swaps the database's vendor family with it.

A consumer links to this database with an access setting; the agent grants it its own PostgreSQL role — never a shared one, never the master — and injects DB_HOST, DB_PORT, DB_NAME, DB_USERNAME and DB_PASSWORD_REF. The raw password is never placed in output fields.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
databaseNameDatabase name. Unset → the component id mapped onto a legal PostgreSQL identifier.ordersNo
schemaSchema created and set as the default search pathpublic (default)No

Example (fully parameterized):

{
"type": "Storage.PaaS.AwsRdsPostgresDatabase",
"parameters": {
"databaseName": "orders",
"schema": "public"
}
}

Storage.PaaS.AwsS3

Amazon S3 object storage bucket. SDK-canonical name for the same offer as Storage.PaaS.S3; both route to the same agent handler.

A compute consumer links to the bucket with an access setting (read, write, read-write); the agent ensures the consumer has an identity, grants that identity a bucket policy scoped to that access, and publishes the bucket URI to the consumer.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
bucketS3 bucket name (globally unique)my-data-bucket-12345Yes
versioningEnable object versioningfalse (default)No
forceDestroyAllow deletion of the bucket while it still holds objectsfalse (default)No

Example (fully parameterized):

{
"type": "Storage.PaaS.AwsS3",
"parameters": {
"bucket": "my-data-bucket-12345",
"versioning": false,
"forceDestroy": false
}
}

Storage.PaaS.PostgreSqlDatabase

A logical PostgreSQL database inside a Storage.PaaS.PostgreSqlDbms. Added under its DBMS as a child component, so it is not offer-selected independently — swapping the DBMS offer swaps the database's vendor family with it.

A consumer links to this database with an access setting; the agent grants it its own PostgreSQL role — never a shared one, never the master — and injects DB_HOST, DB_PORT, DB_NAME, DB_USERNAME and DB_PASSWORD_REF. The raw password is never placed in output fields.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
databaseNameDatabase name created inside the DBMSapp (default)No
schemaSchema created and set as the default search pathpublic (default)No

Example (fully parameterized):

{
"type": "Storage.PaaS.PostgreSqlDatabase",
"parameters": {
"databaseName": "orders",
"schema": "public"
}
}

Storage.PaaS.PostgreSqlDbms

Vendor-neutral type name for a managed PostgreSQL server. On AWS it routes to the same agent handler as Storage.PaaS.AwsRdsPostgres and reads the same parameters — mode selects an Aurora Serverless v2 cluster or a single provisioned instance.

The security posture is not configurable: encryption at rest, private-only networking, IAM database authentication, CloudWatch log export and automatic minor upgrades are always applied. The master credential is created and held by RDS itself; only masterUserSecretArn is published, and each linked consumer gets its own PostgreSQL role.

Availability, durability and capacity defaults come from the environment type — a personal environment gets a single-AZ, no-reader, 1-day-retention sandbox profile; an organizational one gets a reader in a second zone, Multi-AZ and 14-day retention. The applied profile is published as the haProfile output field, and an explicit parameter always wins over it.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
modeWhich RDS shape to provisionaurora-serverless (default), provisioned-instanceNo
versionPostgreSQL major version. RDS resolves it to the latest supported minor at create time.16 (default)No
instanceClassInstance class for cluster members or the provisioned instance. Aurora Serverless v2 always uses db.serverless.db.t4g.micro, db.t4g.mediumConditional — default depends on the environment type
administratorLoginMaster username RDS createsfractaladmin (default)No
allocatedStorageGbInitial storage. Provisioned mode only.20 (default)No
maxAllocatedStorageGbCeiling storage autoscaling grows to. Provisioned mode only.100 (default)No
minAcuAurora Serverless v2 capacity floor, in Aurora Capacity Units0.5Conditional — default depends on the environment type
maxAcuAurora Serverless v2 capacity ceiling, in Aurora Capacity Units2, 8Conditional — default depends on the environment type
readerCountAurora reader members. Aurora mode only, capped at 15 by AWS.0, 1Conditional — default depends on the environment type
multiAzProvision a standby in a second zone. Provisioned mode only.true, falseConditional — default depends on the environment type
backupRetentionDaysAutomated backup retention window1, 14Conditional — default depends on the environment type
deletionProtectionRefuse to delete the cluster or instancefalse (default)No
portListener port5432 (default)No

Example (fully parameterized):

{
"type": "Storage.PaaS.PostgreSqlDbms",
"parameters": {
"mode": "aurora-serverless",
"version": "16",
"administratorLogin": "fractaladmin",
"minAcu": 0.5,
"maxAcu": 8,
"readerCount": 1,
"backupRetentionDays": 14,
"deletionProtection": true,
"port": 5432
}
}

Storage.PaaS.Rds

Legacy type name for Amazon RDS for PostgreSQL, kept so blueprints written before the rename keep reconciling. It routes to the same agent handler and reads the same parameters as Storage.PaaS.AwsRdsPostgres — prefer that name for new blueprints.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
modeWhich RDS shape to provisionaurora-serverless (default), provisioned-instanceNo
versionPostgreSQL major version16 (default)No
instanceClassInstance class for cluster members or the provisioned instancedb.t4g.micro, db.t4g.mediumConditional — default depends on the environment type
administratorLoginMaster username RDS createsfractaladmin (default)No
allocatedStorageGbInitial storage. Provisioned mode only.20 (default)No
maxAllocatedStorageGbCeiling storage autoscaling grows to. Provisioned mode only.100 (default)No
minAcuAurora Serverless v2 capacity floor0.5Conditional — default depends on the environment type
maxAcuAurora Serverless v2 capacity ceiling2, 8Conditional — default depends on the environment type
readerCountAurora reader members, capped at 15 by AWS0, 1Conditional — default depends on the environment type
multiAzProvision a standby in a second zone. Provisioned mode only.true, falseConditional — default depends on the environment type
backupRetentionDaysAutomated backup retention window1, 14Conditional — default depends on the environment type
deletionProtectionRefuse to delete the cluster or instancefalse (default)No
portListener port5432 (default)No

Example (fully parameterized):

{
"type": "Storage.PaaS.Rds",
"parameters": {
"mode": "provisioned-instance",
"version": "16",
"instanceClass": "db.t4g.medium",
"allocatedStorageGb": 20,
"maxAllocatedStorageGb": 100,
"multiAz": true,
"backupRetentionDays": 14,
"deletionProtection": true,
"port": 5432
}
}

Storage.PaaS.S3

Amazon S3 object storage bucket for data persistence and archival.

ParameterDescriptionExample / possible valuesRequired
regionAWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion.us-east-1, eu-central-1No
bucketS3 bucket name (globally unique identifier)my-data-bucket-12345Yes
versioningEnable object versioningfalseNo
forceDestroyAllow deletion of bucket with contentsfalseNo

Example (fully parameterized):

{
"type": "Storage.PaaS.S3",
"parameters": {
"bucket": "my-data-bucket-12345",
"versioning": false,
"forceDestroy": false
}
}

Storage.SaaS.Unmanaged

A placeholder for external or pre-existing storage systems not directly provisioned by Fractal Cloud.

ParameterDescriptionExample / possible valuesRequired
secretNameName of the secret storing credentialsstorage-secretNo
secretValueThe secret value (credentials, connection string, etc.)secret-contentYes
secretReference to an environment secret holding the external service's credential, as {"$envSecret": "<shortName>"}. The raw value never travels in the blueprint.{"$envSecret": "openai-api-key"}Conditional — required when secretValue is not set

Example (fully parameterized):

{
"type": "Storage.SaaS.Unmanaged",
"parameters": {
"secretName": "storage-secret",
"secretValue": "secret-content"
}
}