Skip to main content

Flowise CloudRun Module — Configuration Guide

Flowise is an open-source visual AI workflow builder that lets non-developers construct LangChain and LlamaIndex pipelines through a drag-and-drop interface. This module deploys Flowise on Google Cloud Run with a managed Cloud SQL PostgreSQL database and GCS-backed file storage.

Flowise CloudRun is a wrapper module built on top of App CloudRun. It delegates all GCP infrastructure provisioning to App CloudRun (Cloud Run service, Cloud SQL, networking, Secret Manager, GCS, CI/CD) and uses a Flowise Common sub-module to supply Flowise-specific application configuration, secret generation, and storage bucket definitions. The Flowise Common outputs feed into App CloudRun's application_config, module_secret_env_vars, module_storage_buckets, and scripts_dir inputs.

This guide documents variables that are unique to Flowise CloudRun or that have Flowise-specific defaults differing from the App CloudRun base module. For full documentation of variables with identical semantics, refer to the App_CloudRun Configuration Guide.


§1 · Module Overview

What Flowise CloudRun provides

  • A Flowise container built from the flowiseai/flowise base image via a custom Dockerfile deployed on Cloud Run listening on port 3000.
  • A Cloud SQL PostgreSQL 15 instance as the Flowise database backend. All DATABASE_* connection variables are injected automatically via flowise-entrypoint.sh.
  • Cloud SQL Auth Proxy via Unix socket — enable_cloudsql_volume = true by default. This is a user-configurable variable (not hardcoded).
  • A GCS bucket (suffixed -flowise-uploads) provisioned by Flowise Common for Flowise file storage. Its name is injected automatically as GOOGLE_CLOUD_STORAGE_BUCKET_NAME.
  • FLOWISE_PASSWORD auto-generated by Flowise Common and stored in Secret Manager via module_secret_env_vars. This is the Flowise admin password.
  • Health probes target /api/v1/ping, which is Flowise's dedicated health endpoint.

Key differences from App CloudRun defaults

FeatureApp CloudRun defaultFlowise CloudRun default
container_port80803000
cpu_limit"1000m""1000m"
memory_limit"512Mi""1Gi"
min_instance_count01
max_instance_count11
enable_nfsfalsefalse
enable_cloudsql_volumefalsetrue (user-configurable)
enable_redisfalsefalse
enable_image_mirroringtruetrue
container_image_source"prebuilt""custom"
Health probe path/healthz/api/v1/ping
Application database name"flowisedb"
Application database user"flowiseuser"

§2 · IAM & Project Identity

These variables configure the GCP project target, deployment identity, and platform metadata. Their semantics are identical to the App CloudRun equivalents.

VariableDefaultDescription
project_id(required)GCP project into which all resources are deployed.
tenant_deployment_id"demo"Short suffix appended to resource names to allow multiple deployments in the same project.
resource_creator_identity"rad-module-creator@tec-rad-ui-2b65.iam.gserviceaccount.com"Service account used by Terraform. Override with a project-specific account for production.
support_users[]Email addresses granted IAM access and added to monitoring alert channels.
resource_labels{}Labels applied to all module-managed resources.
module_description(Flowise description string)Platform UI description. Do not modify unless customising the module.
module_documentation"https://docs.radmodules.dev/docs/modules/Flowise_CloudRun"External documentation URL displayed in the platform UI.
module_dependency["Services GCP"]Platform modules that must be deployed before this one.
deployment_id""Optional fixed deployment ID. Auto-generated when blank.

§3 · Core Service Configuration

§3.A · Application Identity

VariableDefaultDescription
application_name"flowise"Base name for the Cloud Run service, Artifact Registry repo, and Secret Manager secrets. Do not change after initial deployment — changing it forces resource recreation.
application_display_name"Flowise"Human-readable name in the platform UI and Cloud Run console.
application_description"Flowise Visual AI Workflow Builder on Cloud Run"Brief description of the deployment.
application_version"latest"Container image version tag.
flowise_username"admin"Flowise admin username. Injected as FLOWISE_USERNAME. Belongs to UIMeta group 2.

§3.B · Resource Sizing

VariableDefaultDescription
cpu_limit"1000m"CPU limit per Cloud Run container instance.
memory_limit"1Gi"Memory limit per Cloud Run container instance.
min_instance_count1Minimum live instances. Default 1 avoids cold starts for AI workflow requests. Valid range: 0–1000.
max_instance_count1Maximum concurrent instances. Valid range: 1–1000.
container_port3000Port Flowise binds to inside the container.
timeout_seconds300Maximum request duration in seconds. Increase for long-running AI workflow executions (maximum 3600).
execution_environment"gen2"Cloud Run execution environment. "gen2" is recommended and required for NFS volume mounts.
deploy_applicationtrueSet false to provision supporting infrastructure without deploying the container.
enable_cloudsql_volumetrueInjects the Cloud SQL Auth Proxy sidecar for Unix socket connections.
cloudsql_volume_mount_path"/cloudsql"Filesystem path for the Cloud SQL Auth Proxy Unix socket.
enable_image_mirroringtrueMirrors the image into Artifact Registry before deployment.
container_image_source"custom""custom" builds via Cloud Build from the bundled Dockerfile; "prebuilt" deploys container_image directly.
container_image""Override image URI. Only used when container_image_source = "prebuilt".
container_protocol"http1"HTTP protocol version.
max_revisions_to_retain7Maximum Cloud Run revisions to keep. Set to 0 to disable pruning.

§3.C · Environment Variables & Secrets

The following platform-managed variables are automatically injected and must not be set in environment_variables — they will conflict or be overridden.

Do not set in environment_variables: DATABASE_TYPE, DATABASE_PORT, FLOWISE_USERNAME, APIKEY_STORAGE_TYPE, STORAGE_TYPE, GCLOUD_PROJECT, GOOGLE_CLOUD_STORAGE_BUCKET_NAME, FLOWISE_PASSWORD.

The DATABASE_HOST, DATABASE_USER, DATABASE_NAME, and DATABASE_PASSWORD variables are injected at runtime by flowise-entrypoint.sh (mapping platform DB_* variables to Flowise DATABASE_* names) — do not set them directly.

VariableDefaultDescription
environment_variables{}Plain-text key/value pairs injected into the Cloud Run revision. Use for non-sensitive Flowise configuration.
secret_environment_variables{}Map of env var name → Secret Manager secret name. Resolved at runtime.
secret_propagation_delay30Seconds to wait after secret creation before dependent operations proceed. Valid range: 0–300.
secret_rotation_period"2592000s"Pub/Sub rotation notification period (30 days). Must be in seconds with s suffix.

§3.D · Networking

VariableDefaultDescription
ingress_settings"all""all" permits public access. Use "internal" to restrict to VPC only. Options: all, internal, internal-and-cloud-load-balancing.
vpc_egress_setting"PRIVATE_RANGES_ONLY"Routes only RFC 1918 traffic via VPC. Set "ALL_TRAFFIC" for strict egress control.
container_protocol"http1"HTTP protocol version. Use "h2c" only if the application supports HTTP/2 cleartext.
service_annotations{}Cloud Run service-level annotations.
service_labels{}Additional labels applied to the Cloud Run service resource.
traffic_split[]Traffic allocation across Cloud Run revisions. Entries must sum to 100. Empty sends all traffic to the latest revision.

§3.E · Initialization & Bootstrap

By default, Flowise Common injects a db-init Cloud Run job using the postgres:15-alpine image that creates the Flowise database and user role before the service starts.

VariableDefaultDescription
initialization_jobs[{ name = "db-init", … }]Cloud Run jobs executed once during deployment. Default provisions the PostgreSQL database and user. Override to supply custom init logic.
cron_jobs[]Recurring Cloud Run jobs triggered by Cloud Scheduler.
additional_services[]Additional Cloud Run services deployed alongside the main Flowise service.

§4 · Advanced Security

§4.A · Secret Management

One secret is auto-generated by Flowise Common on every deployment and injected via module_secret_env_vars:

SecretPurpose
FLOWISE_PASSWORD32-character random Flowise admin password. Stored in Secret Manager with the ID <resource_prefix>-password.
VariableDefaultDescription
secret_rotation_period"2592000s"Duration between rotation Pub/Sub notifications (30 days).
secret_propagation_delay30Seconds to wait after secret creation before dependent operations proceed.
enable_auto_password_rotationfalseAutomates database password rotation via Cloud Run + Eventarc.
rotation_propagation_delay_sec90Seconds to wait after rotation before Cloud Run restarts to pick up the new value.
database_password_length32Length of the auto-generated database user password. Valid range: 16–64.

§4.B · Identity-Aware Proxy (IAP)

VariableDefaultDescription
enable_iapfalseEnables Cloud Run native IAP. Recommended for production Flowise deployments.
iap_authorized_users[]Individual users. Format: "user:email@example.com".
iap_authorized_groups[]Google Groups. Format: "group:name@example.com".

§4.C · Cloud Armor & CDN

VariableDefaultDescription
enable_cloud_armorfalseEnables Cloud Armor WAF + Global HTTPS Load Balancer.
application_domains[]Custom domain names. Google-managed SSL certificates are provisioned automatically.
enable_cdnfalseEnables Cloud CDN. Only active when enable_cloud_armor = true.
admin_ip_ranges[]CIDR ranges for administrative access bypass.

§4.D · VPC Service Controls

VariableDefaultDescription
enable_vpc_scfalseRestricts GCP API access to a VPC-SC perimeter.
vpc_cidr_ranges[]VPC subnet CIDR ranges for the VPC-SC network access level.
vpc_sc_dry_runtrueWhen true, violations are logged but not blocked.
organization_id""GCP Organization ID for VPC-SC Access Context Manager. Auto-discovered when empty.
enable_audit_loggingfalseEnables detailed Cloud Audit Logs.

§4.E · Binary Authorization

VariableDefaultDescription
enable_binary_authorizationfalseEnforces Binary Authorization attestation policy on the Cloud Run service.

§5 · CI/CD Integration

§5.A · GitHub & Cloud Build

Flowise uses the custom Dockerfile build path by default (container_image_source = "custom"). Cloud Build compiles the image from Flowise_Common/scripts/Dockerfile.

VariableDefaultDescription
enable_cicd_triggerfalseCreates a Cloud Build trigger that builds and deploys on push to the configured branch.
github_repository_url""Full HTTPS URL of the GitHub repository. Required when enable_cicd_trigger = true.
github_token""GitHub PAT for repository authentication. Required scopes: repo, admin:repo_hook, workflow.
github_app_installation_id""Cloud Build GitHub App installation ID. Alternative to PAT.
cicd_trigger_config{ branch_pattern = "^main$" }Controls branch filter, included/ignored paths, trigger name, and build substitutions.

§5.B · Cloud Deploy Pipelines

VariableDefaultDescription
enable_cloud_deployfalseSwitches to a Cloud Deploy pipeline with defined promotion stages. Requires enable_cicd_trigger = true.
cloud_deploy_stages[dev, staging, prod(approval)]Ordered promotion stages with optional manual approval gates.
container_build_config{ enabled = true }Advanced Cloud Build configuration. Supports dockerfile_path, context_path, build_args, and artifact_repo_name.

§6 · Reliability & Data

§6.A · Health Probes

Flowise exposes a dedicated health endpoint at /api/v1/ping. Both the startup and liveness probes target this path.

VariableDefaultDescription
startup_probe{ enabled=true, type="HTTP", path="/api/v1/ping", initial_delay_seconds=60, timeout_seconds=5, period_seconds=10, failure_threshold=3 }Flat startup probe passed to Flowise Common.
liveness_probe{ enabled=true, type="HTTP", path="/api/v1/ping", initial_delay_seconds=30, timeout_seconds=5, period_seconds=30, failure_threshold=3 }Flat liveness probe passed to Flowise Common.
startup_probe_config{ enabled=true, path="/api/v1/ping", initial_delay_seconds=30, period_seconds=10, failure_threshold=30 }Structured startup probe passed directly to App CloudRun.
health_check_config{ enabled=true, path="/api/v1/ping" }Structured liveness probe passed directly to App CloudRun.
uptime_check_config{ enabled=true, path="/" }Cloud Monitoring uptime check from multiple global locations.

§6.B · Storage

VariableDefaultDescription
enable_nfsfalseProvisions a Cloud Filestore NFS instance mounted into the container. Useful for Flowise workflow and API key file storage. Requires execution_environment = "gen2".
nfs_mount_path"/mnt/nfs"Container path for the NFS volume.
nfs_instance_name""Name of an existing NFS GCE VM. Leave empty to auto-discover.
nfs_instance_base_name"app-nfs"Base name for the inline NFS GCE VM.
create_cloud_storagetrueSet false to skip GCS bucket provisioning.
storage_buckets[{ name_suffix = "data" }]GCS buckets to provision. Flowise Common always provisions an additional -flowise-uploads bucket.
gcs_volumes[]GCS buckets mounted as GCS Fuse volumes into the container.
manage_storage_kms_iamfalseCreates CMEK KMS keys and enables CMEK encryption on storage buckets.
enable_artifact_registry_cmekfalseEnables CMEK encryption on container images in Artifact Registry.

§6.C · Database

Flowise requires PostgreSQL. All DATABASE_* connection variables are injected at container startup by flowise-entrypoint.sh.

VariableDefaultDescription
application_database_name"flowisedb"PostgreSQL database name. Do not change after initial deployment.
application_database_user"flowiseuser"PostgreSQL user. Password auto-generated and stored in Secret Manager.
database_password_length32Auto-generated password length. Valid range: 16–64.
enable_auto_password_rotationfalseAutomates password rotation.
rotation_propagation_delay_sec90Seconds to wait after rotation before Cloud Run restarts.

§6.D · Backup & Recovery

VariableDefaultDescription
backup_schedule"0 2 * * *"Cron expression (UTC) for the automated backup job.
backup_retention_days7Days to retain backup files in GCS.
enable_backup_importfalseTriggers a one-time import job to restore a backup at deployment time.
backup_source"gcs"Source: "gcs" or "gdrive".
backup_file"backup.sql"Filename of the backup to import.
backup_format"sql"Format of the backup file. Options: sql, tar, gz, tgz, tar.gz, zip, auto.

§7 · Integrations

§7.A · Redis (optional)

Redis is not required for Flowise core functionality but may improve performance for large workflow executions.

VariableDefaultDescription
enable_redisfalseInjects Redis connection variables into the Cloud Run service.
redis_hostnullRedis hostname or IP. Required when enable_redis = true.
redis_port"6379"Redis TCP port.
redis_auth""Redis AUTH password. Sensitive — leave empty if authentication is not enabled.

§7.B · Custom SQL

VariableDefaultDescription
enable_custom_sql_scriptsfalseRuns custom SQL scripts from a GCS bucket against the application database.
custom_sql_scripts_bucket""GCS bucket name containing the SQL scripts.
custom_sql_scripts_path""Path prefix within the GCS bucket.
custom_sql_scripts_use_rootfalseExecute scripts as the root database user.

§7.C · Observability

VariableDefaultDescription
uptime_check_config{ enabled = true, path = "/" }Cloud Monitoring uptime check.
alert_policies[]List of metric-threshold alert policies. Each requires name, metric_type, comparison, threshold_value, duration_seconds.
service_annotations{}Annotations applied to the Cloud Run service resource.
service_labels{}Labels applied to the Cloud Run service.

§7.D · Artifact Registry Cleanup

VariableDefaultDescription
max_images_to_retain7Maximum number of container images to keep in Artifact Registry. Set to 0 to disable.
delete_untagged_imagestrueAutomatically deletes untagged container images.
image_retention_days30Days after which images are eligible for deletion. Set to 0 to disable.

§8 · Platform-Managed Behaviours

The following are set automatically by the module and cannot be overridden via input variables.

Environment Variables (always injected)

VariableValue / SourceNotes
DATABASE_TYPE"postgres"Forces PostgreSQL backend.
DATABASE_PORT"5432"PostgreSQL port.
FLOWISE_USERNAMEvar.flowise_username (default "admin")Flowise admin username.
APIKEY_STORAGE_TYPE"db"Stores API keys in the database.
STORAGE_TYPE"gcs"Flowise file storage backend.
GCLOUD_PROJECTvar.project_idGCP project for GCS access.
GOOGLE_CLOUD_STORAGE_BUCKET_NAMEName of the first provisioned storage bucketThe -flowise-uploads bucket created by Flowise Common. Injected via module_env_vars.
DATABASE_HOSTCloud SQL Auth Proxy socket/IPResolved at runtime by flowise-entrypoint.sh from the platform DB_HOST variable.
DATABASE_USERvar.application_database_userMapped from DB_USER by flowise-entrypoint.sh.
DATABASE_NAMEvar.application_database_nameMapped from DB_NAME by flowise-entrypoint.sh.
DATABASE_PASSWORDSecret Manager refMapped from DB_PASSWORD by flowise-entrypoint.sh.
FLOWISE_PASSWORDSecret Manager refAuto-generated admin password from Flowise Common.

Structural Wiring

BehaviourDetail
scripts_dirResolved as abspath("${module.flowise_app.path}/scripts") — points to Flowise Common's bundled scripts/ directory containing the Dockerfile and flowise-entrypoint.sh.
module_secret_env_varsReceives module.flowise_app.secret_ids — maps FLOWISE_PASSWORD to its Secret Manager secret ID.
module_env_varsContains GOOGLE_CLOUD_STORAGE_BUCKET_NAME mapped to the first bucket from Flowise Common.storage_buckets.
DB variable remappingflowise-entrypoint.sh maps platform DB_* variables to Flowise DATABASE_* naming convention unconditionally, handling both Cloud Run and GKE env var ordering constraints.
container_build_configMerges Flowise Common's defaults with dockerfile_path = "Dockerfile" and context_path = ".".

§9 · Variable Reference

Complete list of all input variables, grouped by UI section.

GroupVariableTypeDefaultUpdatable
0module_descriptionstring(long description)
0module_documentationstring"https://docs.radmodules.dev/docs/modules/Flowise_CloudRun"
0module_dependencylist(string)["Services GCP"]
0module_serviceslist(string)(service list)
0credit_costnumber50
0require_credit_purchasesboolfalse
0enable_purgebooltrue
0public_accessbooltrue
0deployment_idstring""yes
0resource_creator_identitystring"rad-module-creator@…"yes
1project_idstringyes
1tenant_deployment_idstring"demo"yes
1support_userslist(string)[]yes
1resource_labelsmap(string){}yes
2application_namestring"flowise"
2application_display_namestring"Flowise"yes
2application_descriptionstring"Flowise Visual AI Workflow Builder on Cloud Run"yes
2application_versionstring"latest"yes
2flowise_usernamestring"admin"yes
3deploy_applicationbooltrueyes
3container_image_sourcestring"custom"yes
3container_imagestring""yes
3container_build_configobject{ enabled = true }yes
3enable_image_mirroringbooltrueyes
3cpu_limitstring"1000m"yes
3memory_limitstring"1Gi"yes
3min_instance_countnumber1yes
3max_instance_countnumber1yes
3container_portnumber3000yes
3container_protocolstring"http1"yes
3execution_environmentstring"gen2"yes
3timeout_secondsnumber300yes
3enable_cloudsql_volumebooltrueyes
3cloudsql_volume_mount_pathstring"/cloudsql"yes
3traffic_splitlist(object)[]yes
3service_annotationsmap(string){}yes
3service_labelsmap(string){}yes
3max_revisions_to_retainnumber7yes
4ingress_settingsstring"all"yes
4vpc_egress_settingstring"PRIVATE_RANGES_ONLY"yes
4enable_iapboolfalseyes
4iap_authorized_userslist(string)[]yes
4iap_authorized_groupslist(string)[]yes
5environment_variablesmap(string){}yes
5secret_environment_variablesmap(string){}yes
5secret_rotation_periodstring"2592000s"yes
5secret_propagation_delaynumber30yes
6backup_schedulestring"0 2 * * *"yes
6backup_retention_daysnumber7yes
6enable_backup_importboolfalseyes
6backup_sourcestring"gcs"yes
6backup_filestring"backup.sql"yes
6backup_formatstring"sql"yes
7enable_cicd_triggerboolfalseyes
7github_repository_urlstring""yes
7github_tokenstring""yes
7github_app_installation_idstring""yes
7cicd_trigger_configobject{ branch_pattern = "^main$" }yes
7enable_cloud_deployboolfalseyes
7cloud_deploy_stageslist(object)[dev, staging, prod(approval)]yes
7enable_binary_authorizationboolfalseyes
8enable_custom_sql_scriptsboolfalseyes
8custom_sql_scripts_bucketstring""yes
8custom_sql_scripts_pathstring""yes
8custom_sql_scripts_use_rootboolfalseyes
9enable_cloud_armorboolfalseyes
9admin_ip_rangeslist(string)[]yes
9application_domainslist(string)[]yes
9enable_cdnboolfalseyes
9max_images_to_retainnumber7yes
9delete_untagged_imagesbooltrueyes
9image_retention_daysnumber30yes
10create_cloud_storagebooltrueyes
10storage_bucketslist(object)[{ name_suffix = "data" }]yes
10enable_nfsboolfalseyes
10nfs_mount_pathstring"/mnt/nfs"yes
10nfs_instance_namestring""yes
10nfs_instance_base_namestring"app-nfs"yes
10gcs_volumeslist(object)[]yes
10manage_storage_kms_iamboolfalseyes
10enable_artifact_registry_cmekboolfalseyes
11application_database_namestring"flowisedb"yes
11application_database_userstring"flowiseuser"yes
11database_password_lengthnumber32yes
11enable_auto_password_rotationboolfalseyes
11rotation_propagation_delay_secnumber90yes
12initialization_jobslist(object)[{ name = "db-init", … }]yes
12cron_jobslist(object)[]yes
12additional_serviceslist(object)[]yes
13startup_probeobject(HTTP /api/v1/ping, 60s delay)yes
13liveness_probeobject(HTTP /api/v1/ping, 30s delay)yes
13startup_probe_configobject(HTTP /api/v1/ping, 30s delay, 30 threshold)yes
13health_check_configobject(HTTP /api/v1/ping)yes
13uptime_check_configobject{ enabled = true, path = "/" }yes
13alert_policieslist(object)[]yes
20enable_redisboolfalseyes
20redis_hoststringnullyes
20redis_portstring"6379"yes
20redis_authstring""yes
21enable_vpc_scboolfalseyes
21vpc_cidr_rangeslist(string)[]yes
21vpc_sc_dry_runbooltrueyes
21organization_idstring""yes
21enable_audit_loggingboolfalseyes

§10 · Outputs

OutputDescriptionSensitive
service_nameName of the Cloud Run service
service_urlPublic URL of the Cloud Run service
service_locationGCP region of the Cloud Run service
stage_servicesMap of stage names to Cloud Run service details (for Cloud Deploy)
database_instance_nameName of the Cloud SQL instance
database_nameName of the application database
database_userName of the application database user
database_password_secretSecret Manager secret name for the database password
database_hostDatabase host IP addressyes
database_portDatabase port
storage_bucketsCreated GCS storage buckets
network_nameVPC network name
network_existsWhether the VPC network exists
regionsAvailable regions in the VPC
nfs_server_ipNFS server internal IPyes
nfs_mount_pathNFS mount path in containers
nfs_share_pathNFS share path on server
container_imageContainer image used for the service
container_registryArtifact Registry repository name
monitoring_enabledWhether monitoring is configured
monitoring_notification_channelsMonitoring notification channel names
uptime_check_namesUptime check configuration names
deployment_idUnique deployment identifier
tenant_idTenant identifier
resource_prefixResource naming prefix
project_idGCP project ID
project_numberGCP project number
initialization_jobsCreated initialization job names
nfs_setup_jobNFS setup job name
deployment_summarySummary of the deployment
cicd_enabledWhether CI/CD pipeline is enabled
github_repository_urlGitHub repository URL connected for CI/CD
github_repository_ownerGitHub repository owner/organization
github_repository_nameGitHub repository name
artifact_registry_repositoryArtifact Registry repository for container images
cloudbuild_trigger_nameCloud Build trigger name for CI/CD
cloudbuild_trigger_idCloud Build trigger ID for CI/CD
cicd_configurationComplete CI/CD configuration details

Configuration Pitfalls & Sensible Defaults

Risk levels: Critical (data loss, full outage, security breach) — High (service unavailable or significant degradation) — Medium (degraded function or increased cost) — Low (minor impact).

VariableSensible DefaultRiskConsequence of Incorrect Value
flowise_username"admin"CriticalDefault admin username is publicly known. Always change before exposing the service externally — combined with a weak or default password it grants immediate full access to all AI flows.
FLOWISE_PASSWORD (via Secret Manager)Auto-generated 32-char random secretCriticalThe module auto-generates the password; if you override it with a weak value via environment_variables, all flows and credentials stored in the DB are accessible to any attacker who guesses it.
FLOWISE_SECRETKEY_OVERWRITENot set (Flowise internal default)CriticalIf set initially and later changed or removed, all Flowise credential secrets (LLM API keys, vector-store tokens) stored in the database are permanently unreadable. Treat this as immutable after first deploy.
application_database_name"flowisedb"HighChanging this after the database has been provisioned orphans the old database and causes Flowise to fail on startup until a new database is initialised. Immutable after first apply.
application_database_user"flowiseuser"HighSame as above — the database user is created in the db-init job and cannot be renamed without manual Cloud SQL intervention. Immutable after first apply.
STORAGE_TYPE / GCLOUD_PROJECT"gcs" / project injectedHighOverriding STORAGE_TYPE to anything other than "gcs" breaks the GCS-backed file storage. Flowise will fall back to local disk, which is ephemeral on Cloud Run and lost on each new revision.
GOOGLE_CLOUD_STORAGE_BUCKET_NAMEAuto-set from module outputHighDo not override this env var. The module sets it from module.flowise_app.storage_buckets[0].name. An incorrect bucket name causes all file uploads to fail silently.
memory_limit"1Gi"HighFlowise loads LangChain/LlamaIndex into Node.js. Under 512Mi the process is OOM-killed immediately on startup, causing perpetual cold-start failures. Minimum recommended is "1Gi"; production with large flow graphs needs "2Gi".
cpu_limit"1000m"MediumUnder 500m Flowise flow execution becomes very slow and health-check timeouts may kill the container. Set to at least "1000m".
min_instance_count1HighSetting to 0 on Cloud Run enables scale-to-zero but causes cold starts of 10–20 s for every inbound request when Flowise is idle. Combined with downstream LLM latency, this frequently triggers client timeouts.
max_instance_count1MediumFlowise stores in-memory flow execution state. Running more than one instance without a shared Redis session store causes flow executions to fail when load-balanced to a different instance. Keep at 1 unless Redis is configured.
APIKEY_STORAGE_TYPE"db"HighChanging to "json" reverts to file-based API key storage, which is lost on every Cloud Run revision deployment. Always keep "db".
DATABASE_TYPE"postgres" (hardcoded)CriticalHard-coded in the Common module. Do not override to "sqlite" via environment_variables — SQLite on Cloud Run is ephemeral and all flow definitions are lost on the next revision.
enable_cloudsql_volumetrueCriticalIf set to false with a Postgres database, the Cloud SQL Auth Proxy sidecar is not injected and the database connection will be refused. The module's GKE validation guard rejects this combination at plan time.
enable_iapfalseHighLeaving IAP disabled exposes the Flowise UI directly to the internet over Cloud Run's public URL. At minimum set ingress_settings = "internal-and-cloud-load-balancing" or enable IAP to restrict access.
ingress_settings"all"HighThe default allows traffic from any source. For internal-only deployments set to "internal-and-cloud-load-balancing" to restrict to VPC and load-balancer traffic.
startup_probe.failure_threshold30 (= 300 s total)MediumReducing this below 10 causes Cloud Run to restart the container before Flowise has finished its DB migrations on first boot.
liveness_probe.path"/api/v1/ping"HighChanging the probe path to a non-existent endpoint causes continuous liveness failures and rolling restarts once the app is running.
enable_redisfalseMediumWithout Redis, Flowise cannot share session/queue state across instances. Only relevant when max_instance_count > 1. Enabling Redis without providing redis_host raises a validation error.
backup_schedule"0 2 * * *"MediumLeaving the backup schedule at default is safe; removing or disabling it means no automated Cloud SQL backups and potential unrecoverable data loss.
vpc_egress_setting"private-ranges-only"MediumSet to "all-traffic" only if Flowise must call public LLM APIs through an egress NAT. Leaving at default reduces egress costs and attack surface.
secret_rotation_period"720h"LowVery short rotation periods (e.g., "24h") cause frequent secret version churn; ensure rotation_propagation_delay_sec is set high enough that all running instances pick up the new secret before the old version expires.

Destroying Resources

Known Deletion Issue: Serverless IPv4 Address Release

When destroying a Cloud Run deployment, you may encounter an error similar to:

Error: Error waiting for Subnetwork to be deleted: The following serverless IPv4 address(es) on subnet ... are still in use.

Cause: GCP holds serverless IPv4 addresses on the VPC subnet asynchronously after a Cloud Run service is deleted. These addresses are released by GCP approximately 20–30 minutes after the Cloud Run service is removed. Terraform/OpenTofu cannot complete the subnet or VPC deletion until they are fully released.

Resolution: Wait 20–30 minutes after the initial destroy attempt, then re-run the destroy command:

tofu destroy

The second run will succeed once GCP has released the reserved addresses.