{
  "manifest_version": "1.0.0",
  "template": {
    "id": "4a46ecd0-b990-49bc-a6d4-2d24665c8a9f",
    "slug": "squidex-headlesscms",
    "name": "Squidex HeadlessCMS",
    "description": "Deploy a headless cms with ease",
    "url": "https://railway.com/deploy/squidex-headlesscms",
    "upstream": {
      "image": "squidex/squidex:7"
    }
  },
  "services": [
    {
      "name": "squidex",
      "source": {
        "image": "squidex/squidex:7"
      },
      "needs_volume": true,
      "volume_mount_path": "/app/Assets",
      "http": true
    },
    {
      "name": "resizer",
      "source": {
        "image": "squidex/resizer"
      },
      "needs_volume": false,
      "http": false
    },
    {
      "name": "mongo",
      "source": {
        "image": "mongo:8.0"
      },
      "needs_volume": true,
      "volume_mount_path": "/data/db",
      "tcp_ports": [
        27017
      ],
      "http": false
    }
  ],
  "required_inputs": [
    {
      "key": "PLUGINS__0",
      "service": "squidex",
      "description": "Define optional paths to plugins.",
      "secret": false,
      "strategy": "default",
      "default": "Squidex.Extensions.dll"
    },
    {
      "key": "STORE__TYPE",
      "service": "squidex",
      "description": "Define the type of the read store. SUPPORTED: MongoDb, Sql",
      "secret": false,
      "strategy": "default",
      "default": "MongoDb"
    },
    {
      "key": "UI__DISABLE",
      "service": "squidex",
      "description": "Admin UI disable",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "ROBOTS__TEXT",
      "service": "squidex",
      "description": "The text for the robots.txt file",
      "secret": false,
      "strategy": "default",
      "default": "User-agent: *\\nAllow: /api/assets/*"
    },
    {
      "key": "UI__HIDENEWS",
      "service": "squidex",
      "description": "Hide the news dialog.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "UI__SHOWINFO",
      "service": "squidex",
      "description": "Show the exposed values as information on the apps overview page.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "LOGGING__NAME",
      "service": "squidex",
      "description": "The name that is used for monitoring.",
      "secret": false,
      "strategy": "default",
      "default": "Squidex"
    },
    {
      "key": "NEWS__APPNAME",
      "service": "squidex",
      "description": "The app name where the news are stored.",
      "secret": false,
      "strategy": "default",
      "default": "squidex-website"
    },
    {
      "key": "REBUILD__APPS",
      "service": "squidex",
      "description": "Set to true to rebuild apps.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "UI__MAP__TYPE",
      "service": "squidex",
      "description": "Define the type of the geolocation service. SUPPORTED: GoogleMaps, OSM",
      "secret": false,
      "strategy": "default",
      "default": "OSM"
    },
    {
      "key": "URLS__BASEURL",
      "service": "squidex",
      "description": "The base URL under which Squidex is running. It is used to generate hyperlinks and to make redirects with the correct host name. In some environments, Squidex is running behind several proxies, e.g. cloudflare, google load balancer and so on. In these cases the original host name might get lost. Therefore we introduced this configuration value.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "FULLTEXT__TYPE",
      "service": "squidex",
      "description": "Define the type of the full text store. SUPPORTED: elastic (ElasticSearch), azure (Azure Cognitive Search), default. Default: default",
      "secret": false,
      "strategy": "default",
      "default": "default"
    },
    {
      "key": "LOGGING__HUMAN",
      "service": "squidex",
      "description": "Setting the flag to true, enables well formatteds json logs.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "LOGGING__LEVEL",
      "service": "squidex",
      "description": "The log level of the implementation adapter. Trace, Debug, Information, Warning, Error, Fatal",
      "secret": false,
      "strategy": "default",
      "default": "Information"
    },
    {
      "key": "NEWS__CLIENTID",
      "service": "squidex",
      "description": "The credentials to the app (Readonly).",
      "secret": false,
      "strategy": "default",
      "default": "squidex-website:default"
    },
    {
      "key": "NOTIFO__APIURL",
      "service": "squidex",
      "description": "The API URL.",
      "secret": false,
      "strategy": "default",
      "default": "https://app.notifo.io"
    },
    {
      "key": "REBUILD__RULES",
      "service": "squidex",
      "description": "Set to true to rebuild rules.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "REBUILD__TEAMS",
      "service": "squidex",
      "description": "Set to true to rebuild teams.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "SQUIDEX_DOMAIN",
      "service": "squidex",
      "description": "Provide a value for SQUIDEX_DOMAIN.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_domain"
    },
    {
      "key": "ASSETS__MAXSIZE",
      "service": "squidex",
      "description": "The maximum file size in bytes. Default: 5MB",
      "secret": false,
      "strategy": "default",
      "default": "5242880"
    },
    {
      "key": "LOGGING__COLORS",
      "service": "squidex",
      "description": "Set to true, to use colors.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "MESSAGING__TYPE",
      "service": "squidex",
      "description": "Provide a value for MESSAGING__TYPE.",
      "secret": false,
      "strategy": "default",
      "default": "MongoDb"
    },
    {
      "key": "REBUILD__ASSETS",
      "service": "squidex",
      "description": "Set to true to rebuild assets.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "UI__HIDEINDEXES",
      "service": "squidex",
      "description": "Hide the indexes UI.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "ASSETSTORE__TYPE",
      "service": "squidex",
      "description": "Define the type of the read store. SUPPORTED: Folder (local folder), MongoDb (GridFS), GoogleCloud (hosted in Google Cloud only), AzureBlob, AmazonS3, FTP (not recommended).",
      "secret": false,
      "strategy": "default",
      "default": "Folder"
    },
    {
      "key": "ASSETS__CANCACHE",
      "service": "squidex",
      "description": "True to enable memory caching. This is only supported in GraphQL with the @cache(duration: 1000) directive.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "EVENTSTORE__TYPE",
      "service": "squidex",
      "description": "Provide a value for EVENTSTORE__TYPE.",
      "secret": false,
      "strategy": "default",
      "default": "MongoDB"
    },
    {
      "key": "MODE__ISREADONLY",
      "service": "squidex",
      "description": "Use this flag to set Squidex to readonly, e.g. when you deploy a second instance for migration.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "REBUILD__SCHEMAS",
      "service": "squidex",
      "description": "Set to true to rebuild schemas.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "EMAIL__SMTP__PORT",
      "service": "squidex",
      "description": "The port to your email server.",
      "secret": false,
      "strategy": "default",
      "default": "587"
    },
    {
      "key": "IDENTITY__SHOWPII",
      "service": "squidex",
      "description": "Set to true to show PII (Personally Identifiable Information) in the logs.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "REBUILD__CONTENTS",
      "service": "squidex",
      "description": "Set to true to rebuild contents.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "TWITTER__CLIENTID",
      "service": "squidex",
      "description": "The client information for twitter.",
      "secret": false,
      "strategy": "default",
      "default": "QZhb3HQcGCvE6G8yNNP9ksNet"
    },
    {
      "key": "URLS__ENFORCEHOST",
      "service": "squidex",
      "description": "Set it to true to return a 400 if the host does not match.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "ASSETS__MAXRESULTS",
      "service": "squidex",
      "description": "The maximum number of items to return for each query. Warning: Use pagination and not large number of items.",
      "secret": false,
      "strategy": "default",
      "default": "200"
    },
    {
      "key": "ASSETS__RESIZERURL",
      "service": "squidex",
      "description": "Provide a value for ASSETS__RESIZERURL.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "CLUSTERING__WORKER",
      "service": "squidex",
      "description": "Defines whether the current instance is a worker. You should have only one worker in your deployment.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "CONTENTS__CANCACHE",
      "service": "squidex",
      "description": "True to enable memory caching. This is only supported in GraphQL with the @cache(duration: 1000) directive.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "IDENTITY__OIDCNAME",
      "service": "squidex",
      "description": "Settings for your custom oidc server.",
      "secret": false,
      "strategy": "default",
      "default": "OIDC"
    },
    {
      "key": "NEWS__CLIENTSECRET",
      "service": "squidex",
      "description": "The credentials to the app (Readonly).",
      "secret": true,
      "strategy": "default",
      "default": "QGgqxd7bDHBTEkpC6fj8sbdPWgZrPrPfr3xzb3LKoec="
    },
    {
      "key": "UI__HIDEONBOARDING",
      "service": "squidex",
      "description": "Hide all onboarding tooltips and dialogs.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "URLS__ENFORCEHTTPS",
      "service": "squidex",
      "description": "Set it to true to redirect the user from http to https permanently.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "URLS__KNOWNPROXIES",
      "service": "squidex",
      "description": "A list of known proxies to make forward headers safer.",
      "secret": false,
      "strategy": "default",
      "default": "[]"
    },
    {
      "key": "ASSETS__TIMEOUTFIND",
      "service": "squidex",
      "description": "The timeout when searching for single items in the database.",
      "secret": false,
      "strategy": "default",
      "default": "00:00:01"
    },
    {
      "key": "CACHING__STRONGETAG",
      "service": "squidex",
      "description": "Set to true, to use strong etags.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "EMAIL__SMTP__SENDER",
      "service": "squidex",
      "description": "The sender email address.",
      "secret": false,
      "strategy": "default",
      "default": "hello@squidex.io"
    },
    {
      "key": "IDENTITY__ADMINAPPS",
      "service": "squidex",
      "description": "The apps which should be visible on the dashboard for the admin.",
      "secret": false,
      "strategy": "default",
      "default": "[]"
    },
    {
      "key": "REBUILD__ASSETFILES",
      "service": "squidex",
      "description": "Set to true to create dummy asset files if they do not exist. Useful when a backup fail.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "STORE__SQL__VERSION",
      "service": "squidex",
      "description": "The version of the MySQL server. For MySQL - Ensure that: Version is set correctly, Server is initialized with --log-bin-trust-function-creators=1, Server is initialized with --local-infile=1 (for bulk inserts), Connection String has: AllowLoadLocalInfile=true",
      "secret": false,
      "strategy": "default",
      "default": "9.2.0-mysql"
    },
    {
      "key": "UI__HIDEDATEBUTTONS",
      "service": "squidex",
      "description": "Hide the today and now button.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "UI__REDIRECTTOLOGIN",
      "service": "squidex",
      "description": "Redirect to login automatically.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "URLS__TRUSTEDHOSTED",
      "service": "squidex",
      "description": "A list of trusted hosts for redirects.",
      "secret": false,
      "strategy": "default",
      "default": "[]"
    },
    {
      "key": "ASSETS__FOLDERPERAPP",
      "service": "squidex",
      "description": "Create one folder per app. WARNING: If you change this parameter, previous assets are not available anymore.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "ASSETS__TIMEOUTQUERY",
      "service": "squidex",
      "description": "The timeout when searching for multiple items in the database.",
      "secret": false,
      "strategy": "default",
      "default": "00:00:05"
    },
    {
      "key": "COMPRESSION__ENABLED",
      "service": "squidex",
      "description": "Enables compression.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "CONTENTS__MAXRESULTS",
      "service": "squidex",
      "description": "The maximum number of items to return for each query. Warning: Use pagination and not large number of items.",
      "secret": false,
      "strategy": "default",
      "default": "200"
    },
    {
      "key": "IDENTITY__OIDCPROMPT",
      "service": "squidex",
      "description": "Provide a value for IDENTITY__OIDCPROMPT.",
      "secret": false,
      "strategy": "default",
      "default": "null"
    },
    {
      "key": "IDENTITY__PRIVACYURL",
      "service": "squidex",
      "description": "The url to you privacy statements, if you host squidex by yourself.",
      "secret": false,
      "strategy": "default",
      "default": "https://squidex.io/privacy"
    },
    {
      "key": "LOGGING__LOGREQUESTS",
      "service": "squidex",
      "description": "Set to false to disable logging of http requests.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "STORE__SQL__PROVIDER",
      "service": "squidex",
      "description": "The database provider. SUPPORTED: MySql, Postgres, SqlServer",
      "secret": false,
      "strategy": "default",
      "default": "Postgres"
    },
    {
      "key": "APPS__DELETEPERMANENT",
      "service": "squidex",
      "description": "True to delete apps permanently. This process can take a while and is executed in the background.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "ASSETSTORE__FTP__PATH",
      "service": "squidex",
      "description": "The relative or absolute path to the folder to store the assets.",
      "secret": false,
      "strategy": "default",
      "default": "Assets"
    },
    {
      "key": "ASSETS__ALLOWAVIFAUTO",
      "service": "squidex",
      "description": "Deliver the assets in AVIG format automatically if the browser supports that. WARNING: If you change this feature from false to true, you might experience a performance spike the images are getting prepared.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "ASSETS__ALLOWWEBPAUTO",
      "service": "squidex",
      "description": "Deliver the assets in WEBP format automatically if the browser supports that. WARNING: If you change this feature from false to true, you might experience a performance spike the images are getting prepared.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "CONTENTS__TIMEOUTFIND",
      "service": "squidex",
      "description": "The timeout when searching for single items in the database.",
      "secret": false,
      "strategy": "default",
      "default": "00:00:01"
    },
    {
      "key": "LOGGING__STOREENABLED",
      "service": "squidex",
      "description": "False to disable the log store.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "TWITTER__CLIENTSECRET",
      "service": "squidex",
      "description": "The client information for twitter.",
      "secret": true,
      "strategy": "default",
      "default": "Pdu9wdN72T33KJRFdFy1w4urBKDRzIyuKpc0OItQC2E616DuZD"
    },
    {
      "key": "CHATBOT__OPENAI__MODEL",
      "service": "squidex",
      "description": "The chat model.",
      "secret": false,
      "strategy": "default",
      "default": "gpt-3.5-turbo-0125"
    },
    {
      "key": "COMPRESSION__LEVELGZIP",
      "service": "squidex",
      "description": "The compression level for gzip. SUPPORTED: Fastest (default), OptimOptimal, SmallestSize, NoCompression",
      "secret": false,
      "strategy": "default",
      "default": "Fastest"
    },
    {
      "key": "CONTENTS__TIMEOUTQUERY",
      "service": "squidex",
      "description": "The timeout when searching for multiple items in the database.",
      "secret": false,
      "strategy": "default",
      "default": "00:00:05"
    },
    {
      "key": "EMAIL__SMTP__ENABLESSL",
      "service": "squidex",
      "description": "Always use SSL if possible.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "GRAPHQL__CACHEDURATION",
      "service": "squidex",
      "description": "Defines how long the graphl schema is cached. Default: 10 min.",
      "secret": false,
      "strategy": "default",
      "default": "00:10:00"
    },
    {
      "key": "IDENTITY__OIDCERRORMAP",
      "service": "squidex",
      "description": "Provide a value for IDENTITY__OIDCERRORMAP.",
      "secret": false,
      "strategy": "default",
      "default": "null"
    },
    {
      "key": "LOGGING__OTLP__ENABLED",
      "service": "squidex",
      "description": "True, to enable OpenTelemetry Protocol integration.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "ASSETS__DEFAULTPAGESIZE",
      "service": "squidex",
      "description": "The default page size if not specified by a query. Warning: Can slow down queries if increased.",
      "secret": false,
      "strategy": "default",
      "default": "200"
    },
    {
      "key": "ASSETS__DELETEPERMANENT",
      "service": "squidex",
      "description": "True to delete assets files permanently.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "ASSETS__DELETERECURSIVE",
      "service": "squidex",
      "description": "True to delete assets recursively.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "IDENTITY__ADMINRECREATE",
      "service": "squidex",
      "description": "Recreate the admin if it does not exist or the password does not match.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "IDENTITY__OIDCSCOPES__0",
      "service": "squidex",
      "description": "Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions by default contains scopes \"openid\" and \"profile\".",
      "secret": false,
      "strategy": "default",
      "default": "email"
    },
    {
      "key": "LOGGING__OTLP__SAMPLING",
      "service": "squidex",
      "description": "The sample rate as double. 0.5 writes every second trace.",
      "secret": false,
      "strategy": "default",
      "default": "1.0"
    },
    {
      "key": "RULES__JOBQUERYINTERVAL",
      "service": "squidex",
      "description": "How often the rule jobs are queried for updated. Must be greater than zero.",
      "secret": false,
      "strategy": "default",
      "default": "00:00:10"
    },
    {
      "key": "ASSETSTORE__FOLDER__PATH",
      "service": "squidex",
      "description": "The relative or absolute path to the folder to store the assets.",
      "secret": false,
      "strategy": "default",
      "default": "Assets"
    },
    {
      "key": "COMPRESSION__LEVELBROTLI",
      "service": "squidex",
      "description": "The compression level for brotli. SUPPORTED: Fastest (default), OptimOptimal, SmallestSize, NoCompression",
      "secret": false,
      "strategy": "default",
      "default": "Fastest"
    },
    {
      "key": "LOGGING__ZIPKIN__ENABLED",
      "service": "squidex",
      "description": "True, to enable Zipkin integration.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "SCHEMAS__DELETEPERMANENT",
      "service": "squidex",
      "description": "True to delete schemas and the content permanently. This process can take a while and is executed in the background.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "SCRIPTING__TIMEOUTSCRIPT",
      "service": "squidex",
      "description": "The timeout for the synchronous part of the script.",
      "secret": false,
      "strategy": "default",
      "default": "00:00:00.200"
    },
    {
      "key": "STORE__MONGODB__DATABASE",
      "service": "squidex",
      "description": "The database for all your other read collections.",
      "secret": false,
      "strategy": "default",
      "default": "Squidex"
    },
    {
      "key": "STORE__SQL__RUNMIGRATION",
      "service": "squidex",
      "description": "Run the migration.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "UI__MAP__GOOGLEMAPS__KEY",
      "service": "squidex",
      "description": "The optional google maps API key. CREATE YOUR OWN PLEASE.",
      "secret": true,
      "strategy": "default",
      "default": "AIzaSyB_Z8l3nwUxZhMJykiDUJy6bSHXXlwcYMg"
    },
    {
      "key": "CONTENTS__DEFAULTPAGESIZE",
      "service": "squidex",
      "description": "The default page size if not specified by a query. Warning: Can slow down queries if increased.",
      "secret": false,
      "strategy": "default",
      "default": "200"
    },
    {
      "key": "CONTENTS__USETRANSACTIONS",
      "service": "squidex",
      "description": "False to not use transactions. Improves performance. Warning: Can cause consistency issues.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "LOGGING__ZIPKIN__ENDPOINT",
      "service": "squidex",
      "description": "Application Insights Configuration",
      "secret": false,
      "strategy": "default",
      "default": "http://localhost:9411/api/v2/spans"
    },
    {
      "key": "RULES__RULESCACHEDURATION",
      "service": "squidex",
      "description": "The cache duration for rules.",
      "secret": false,
      "strategy": "default",
      "default": "00:00:10"
    },
    {
      "key": "SCRIPTING__TIMEOUTPROMISE",
      "service": "squidex",
      "description": "The timeout for the asynchronous promise of the script.",
      "secret": false,
      "strategy": "default",
      "default": "00:00:04"
    },
    {
      "key": "UI__REGEXSUGGESTIONS__URL",
      "service": "squidex",
      "description": "%[\\\\]@!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=.]+$ # Regex for urls.",
      "secret": false,
      "strategy": "default",
      "default": "^(?:http(s)?:\\\\/\\\\/)?[\\\\w.-]+(?:\\\\.[\\\\w\\\\.-]+)+[\\\\w\\\\-\\\\._~:\\\\/?"
    },
    {
      "key": "DIAGNOSTICS__GC__THRESHOLD",
      "service": "squidex",
      "description": "The maximum number of megabyte that the process can consume until it is marked as not healthy.",
      "secret": false,
      "strategy": "default",
      "default": "8192"
    },
    {
      "key": "FULLTEXT__AZURE__INDEXNAME",
      "service": "squidex",
      "description": "The name of the index.",
      "secret": false,
      "strategy": "default",
      "default": "squidex"
    },
    {
      "key": "IDENTITY__OIDCRESPONSETYPE",
      "service": "squidex",
      "description": "or \"code\"",
      "secret": false,
      "strategy": "default",
      "default": "id_token"
    },
    {
      "key": "LOGGING__LOGLEVEL__DEFAULT",
      "service": "squidex",
      "description": "The log level of the default log adapter.",
      "secret": false,
      "strategy": "default",
      "default": "Information"
    },
    {
      "key": "LOGGING__LOGLEVEL__RUNTIME",
      "service": "squidex",
      "description": "Provide a value for LOGGING__LOGLEVEL__RUNTIME.",
      "secret": false,
      "strategy": "default",
      "default": "Warning"
    },
    {
      "key": "UI__HIDEDATETIMEMODEBUTTON",
      "service": "squidex",
      "description": "Hide the Local/UTC button",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "UI__REGEXSUGGESTIONS__SLUG",
      "service": "squidex",
      "description": "Regex for slugs (e.g. hello-world).",
      "secret": false,
      "strategy": "default",
      "default": "^[a-z0-9]+(\\\\-[a-z0-9]+)*$"
    },
    {
      "key": "URLS__ENABLEFORWARDHEADERS",
      "service": "squidex",
      "description": "Set it to true to use the X-Forwarded- headers for host name and scheme.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "ASSETSTORE__EXPOSESOURCEURL",
      "service": "squidex",
      "description": "Allow to expose the url in GraphQL URL.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "ASSETSTORE__FTP__SERVERPORT",
      "service": "squidex",
      "description": "The host of the ftp service",
      "secret": false,
      "strategy": "default",
      "default": "21"
    },
    {
      "key": "ASSETSTORE__MONGODB__BUCKET",
      "service": "squidex",
      "description": "The name of the Mongo Grid FS bucket.",
      "secret": false,
      "strategy": "default",
      "default": "fs"
    },
    {
      "key": "CACHING__REPLICATED__ENABLE",
      "service": "squidex",
      "description": "OBSOLETE - Set to true to enable a replicated cache for app, schemas and rules. Increases performance but reduces consistency. This setting is obsolete and has been replaced with caching:apps:cacheDuration and caching:schemas:cacheDuration",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "COMPRESSION__ENABLEFORHTTPS",
      "service": "squidex",
      "description": "Indicates if responses over HTTPS connections should be compressed.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "IDENTITY__ALLOWPASSWORDAUTH",
      "service": "squidex",
      "description": "Enable password auth. Set this to false if you want to disable local login, leaving only 3rd party login options.",
      "secret": true,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "IDENTITY__LOCKAUTOMATICALLY",
      "service": "squidex",
      "description": "Lock new users automatically, the administrator must unlock them.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "SCRIPTING__TIMEOUTEXECUTION",
      "service": "squidex",
      "description": "The timeout for the whole script execution.",
      "secret": false,
      "strategy": "default",
      "default": "00:00:04"
    },
    {
      "key": "UI__ONLYADMINSCANCREATEAPPS",
      "service": "squidex",
      "description": "With your setup, only admins can create new apps. If you want to change this set false",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "UI__REGEXSUGGESTIONS__EMAIL",
      "service": "squidex",
      "description": "$%&'*+\\\\/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$ # Regex for emails.",
      "secret": false,
      "strategy": "default",
      "default": "^[a-zA-Z0-9.!#$%&’*+\\\\/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$"
    },
    {
      "key": "UI__REGEXSUGGESTIONS__PHONE",
      "service": "squidex",
      "description": "Regex for phone numbers.",
      "secret": false,
      "strategy": "default",
      "default": "^\\\\(*\\\\+*[1-9]{0,3}\\\\)*-*[1-9]{0,3}[-. /]*\\\\(*[2-9]\\\\d{2}\\\\)*[-. /]*\\\\d{3}[-. /]*\\\\d{4} *e*x*t*\\\\.* *\\\\d{0,4}$"
    },
    {
      "key": "ASSETSTORE__AMAZONS3__BUCKET",
      "service": "squidex",
      "description": "The name of your bucket.",
      "secret": false,
      "strategy": "default",
      "default": "squidex-test"
    },
    {
      "key": "CACHING__APPS__CACHEDURATION",
      "service": "squidex",
      "description": "The cache duration for apps.",
      "secret": false,
      "strategy": "default",
      "default": "00:00:00"
    },
    {
      "key": "DIAGNOSTICS__DUMPTRIGGERINMB",
      "service": "squidex",
      "description": "When more memory is allocated that the defined value (in MB) a dump will be created once automatically and written to the asset store.",
      "secret": false,
      "strategy": "default",
      "default": "0"
    },
    {
      "key": "FULLTEXT__ELASTIC__INDEXNAME",
      "service": "squidex",
      "description": "The name of the index.",
      "secret": false,
      "strategy": "default",
      "default": "squidex"
    },
    {
      "key": "GRAPHQL__DATALOADERBATCHSIZE",
      "service": "squidex",
      "description": "The batch size of the data loader. HINT: Can be overriden with the X-BatchSize header up to a maximum of 5000.",
      "secret": false,
      "strategy": "default",
      "default": "1000"
    },
    {
      "key": "GRAPHQL__ENABLESUBSCRIPTIONS",
      "service": "squidex",
      "description": "Enables subscriptions.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "IDENTITY__ALLOWCUSTOMDOMAINS",
      "service": "squidex",
      "description": "Enable custom domains and oidc settings for teams.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "UI__ONLYADMINSCANCREATETEAMS",
      "service": "squidex",
      "description": "With your setup, only admins can create new teams. If you want to change this set false",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "ASSETSTORE__FTP__CREATEFOLDER",
      "service": "squidex",
      "description": "To create the subfolder if it does not exist. Set it to false it the Squidex process has limited permissions.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "ASSETSTORE__MONGODB__DATABASE",
      "service": "squidex",
      "description": "The name of the event store database.",
      "secret": false,
      "strategy": "default",
      "default": "SquidexAssets"
    },
    {
      "key": "CACHING__MAXSURROGATEKEYSSIZE",
      "service": "squidex",
      "description": "Restrict the surrogate keys to the number of characters.",
      "secret": true,
      "strategy": "default",
      "default": "0"
    },
    {
      "key": "DIAGNOSTICS__GCUMPTRIGGERINMB",
      "service": "squidex",
      "description": "When more memory is allocated than the defined value (in MB) a gcdump will be created once automatically and written to the asset store.",
      "secret": false,
      "strategy": "default",
      "default": "0"
    },
    {
      "key": "EVENTSTORE__MONGODB__DATABASE",
      "service": "squidex",
      "description": "The name of the event store database.",
      "secret": false,
      "strategy": "default",
      "default": "Squidex"
    },
    {
      "key": "EXPOSEDCONFIGURATION__VERSION",
      "service": "squidex",
      "description": "A list of configuration values that should be exposed from the info endpoint and in the UI.",
      "secret": false,
      "strategy": "default",
      "default": "squidex:version"
    },
    {
      "key": "FULLTEXT__ELASTIC__OPENSEARCH",
      "service": "squidex",
      "description": "True, to use the Open Search client.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "LOGGING__LOGLEVEL__OPENIDDICT",
      "service": "squidex",
      "description": "Only logs issued tokens and general request information.",
      "secret": false,
      "strategy": "default",
      "default": "Warning"
    },
    {
      "key": "LOGGING__STACKDRIVER__ENABLED",
      "service": "squidex",
      "description": "True, to enable stackdriver integration.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "LOGGING__STORERETENTIONINDAYS",
      "service": "squidex",
      "description": "The number of days request log items will be stored.",
      "secret": false,
      "strategy": "default",
      "default": "90"
    },
    {
      "key": "STORE__MONGODB__CONFIGURATION",
      "service": "squidex",
      "description": "Provide a value for STORE__MONGODB__CONFIGURATION.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "STORE__MONGODB__TEXTSHARDCOUNT",
      "service": "squidex",
      "description": "Defines the number of collections for texts.",
      "secret": false,
      "strategy": "default",
      "default": "0"
    },
    {
      "key": "ASSETSTORE__AMAZONS3__ACCESSKEY",
      "service": "squidex",
      "description": "The access key for your user. Read More: https://supsystic.com/documentation/id-secret-access-key-amazon-s3/",
      "secret": true,
      "strategy": "default",
      "default": "<MY_KEY>"
    },
    {
      "key": "ASSETSTORE__AMAZONS3__SECRETKEY",
      "service": "squidex",
      "description": "The secret key for your user. Read More: https://supsystic.com/documentation/id-secret-access-key-amazon-s3/",
      "secret": true,
      "strategy": "default",
      "default": "<MY_SECRET>"
    },
    {
      "key": "ASSETSTORE__GOOGLECLOUD__BUCKET",
      "service": "squidex",
      "description": "The name of the bucket in google cloud store.",
      "secret": false,
      "strategy": "default",
      "default": "squidex-assets"
    },
    {
      "key": "CACHING__SCHEMAS__CACHEDURATION",
      "service": "squidex",
      "description": "The cache duration for schemas.",
      "secret": false,
      "strategy": "default",
      "default": "00:00:00"
    },
    {
      "key": "EMAIL__NOTIFICATIONS__USAGEBODY",
      "service": "squidex",
      "description": "The email body when app usage reached",
      "secret": false,
      "strategy": "default",
      "default": "Dear User,\\r\\n\\r\\nYou are about to reach your usage limit for App $APP_NAME at Squidex Headless CMS.\\r\\n\\r\\nYou have already used $API_CALLS of your monthly limit of $API_CALLS_LIMIT API calls.\\r\\n\\r\\nPlease check your clients or upgrade your plan!\\r\\n\\r\\n<<Go to Squidex!>> [$UI_URL]"
    },
    {
      "key": "STORE__MONGODB__ASSETSHARDCOUNT",
      "service": "squidex",
      "description": "Defines the number of collections for assets.",
      "secret": false,
      "strategy": "default",
      "default": "0"
    },
    {
      "key": "STORE__MONGODB__CONTENTDATABASE",
      "service": "squidex",
      "description": "The database for all your content collections (one collection per app).",
      "secret": false,
      "strategy": "default",
      "default": "SquidexContent"
    },
    {
      "key": "UI__REFERENCESDROPDOWNITEMCOUNT",
      "service": "squidex",
      "description": "The number of content items for dropdown selector.",
      "secret": false,
      "strategy": "default",
      "default": "100"
    },
    {
      "key": "ASSETSTORE__AMAZONS3__REGIONNAME",
      "service": "squidex",
      "description": "The region name of your bucket.",
      "secret": false,
      "strategy": "default",
      "default": "eu-central-1"
    },
    {
      "key": "ASSETSTORE__FOLDER__CREATEFOLDER",
      "service": "squidex",
      "description": "To create the subfolder if it does not exist. Set it to false it the Squidex process has limited permissions.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "CONTENTS__OPTIMIZEFORSELFHOSTING",
      "service": "squidex",
      "description": "True to enable an optimization for self hosting. Creates one database per app and one collection per schema. Slows down inserts, but you can create custom indexes.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "FULLTEXT__AZURE__SERVICEENDPOINT",
      "service": "squidex",
      "description": "The URL to your azure search instance. Read More: https://docs.microsoft.com/en-us/azure/search/search-create-service-portal#get-a-key-and-url-endpoint",
      "secret": false,
      "strategy": "default",
      "default": "https://<name>.search.windows.net"
    },
    {
      "key": "FULLTEXT__ELASTIC__CONFIGURATION",
      "service": "squidex",
      "description": "The configuration to your elastic search cluster. Read More: https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/client-configuration.html",
      "secret": false,
      "strategy": "default",
      "default": "http://localhost:9200"
    },
    {
      "key": "RULES__EXECUTIONTIMEOUTINSECONDS",
      "service": "squidex",
      "description": "The timeout to execute rule actions.",
      "secret": false,
      "strategy": "default",
      "default": "10"
    },
    {
      "key": "EMAIL__NOTIFICATIONS__NEWUSERBODY",
      "service": "squidex",
      "description": "The email body when a new user is added as contributor to an app.",
      "secret": false,
      "strategy": "default",
      "default": "Welcome to Squidex\\r\\nDear User,\\r\\n\\r\\n$ASSIGNER_NAME ($ASSIGNER_EMAIL) has invited you to join Project (also called an App) $APP_NAME at Squidex Headless CMS. Login with your GitHub, Google or Microsoft credentials to create a new user account and start editing content now.\\r\\n\\r\\nThank you very much,\\r\\nThe Squidex Team\\r\\n\\r\\n<<Start now!>> [$UI_URL]"
    },
    {
      "key": "IDENTITY__OIDCDISABLEPROFILESCOPE",
      "service": "squidex",
      "description": "When oidcDisableProfileScope is set to true scope \"profile\" will be removed.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "STORE__MONGODB__CONTENTSHARDCOUNT",
      "service": "squidex",
      "description": "Defines the number of collections for contents.",
      "secret": false,
      "strategy": "default",
      "default": "0"
    },
    {
      "key": "ASSETSTORE__AMAZONS3__BUCKETFOLDER",
      "service": "squidex",
      "description": "The optional folder within the bucket.",
      "secret": false,
      "strategy": "default",
      "default": "squidex-assets"
    },
    {
      "key": "ASSETSTORE__MONGODB__CONFIGURATION",
      "service": "squidex",
      "description": "The connection string to your Mongo Server. Read More: https://docs.mongodb.com/manual/reference/connection-string/",
      "secret": false,
      "strategy": "default",
      "default": "mongodb://localhost"
    },
    {
      "key": "EMAIL__NOTIFICATIONS__USAGESUBJECT",
      "service": "squidex",
      "description": "The email subject when app usage reached",
      "secret": false,
      "strategy": "default",
      "default": "[Squidex CMS] You are about to reach your usage limit for App $APP_NAME"
    },
    {
      "key": "EVENTSTORE__MONGODB__CONFIGURATION",
      "service": "squidex",
      "description": "Squidex Configuration - Environment Variables",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "TEMPLATES__REPOSITORIES__0__GITURL",
      "service": "squidex",
      "description": "The url to the git repository.",
      "secret": false,
      "strategy": "default",
      "default": "https://github.com/Squidex/templates.git"
    },
    {
      "key": "ASSETSTORE__AZUREBLOB__CREATEFOLDER",
      "service": "squidex",
      "description": "To create the subfolder if it does not exist. Set it to false it the Squidex process has limited permissions.",
      "secret": false,
      "strategy": "default",
      "default": "true"
    },
    {
      "key": "STORE__MONGODB__VALUEREPRESENTATION",
      "service": "squidex",
      "description": "Defines how key-value-store values are represented in MongoDB (e.g. app, rule, schema). SUPPORTED: Document, String, Binary (from slow to fast).",
      "secret": false,
      "strategy": "default",
      "default": "Undefined"
    },
    {
      "key": "TRANSLATIONS__DEEPL__MAPPING__ZH-CN",
      "service": "squidex",
      "description": "Google Cloud Configuration",
      "secret": false,
      "strategy": "default",
      "default": "zh-CN"
    },
    {
      "key": "TRANSLATIONS__DEEPL__MAPPING__ZH-TW",
      "service": "squidex",
      "description": "Provide a value for TRANSLATIONS__DEEPL__MAPPING__ZH-TW.",
      "secret": false,
      "strategy": "default",
      "default": "zh-TW"
    },
    {
      "key": "ASSETSTORE__AMAZONS3__FORCEPATHSTYLE",
      "service": "squidex",
      "description": "Force path style property for AmazonS3Config",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "ASSETSTORE__AZUREBLOB__CONTAINERNAME",
      "service": "squidex",
      "description": "The name of the container in the Azure Blob Storage",
      "secret": false,
      "strategy": "default",
      "default": "squidex-assets"
    },
    {
      "key": "CHATBOT__DEFAULTS__SYSTEMMESSAGES__0",
      "service": "squidex",
      "description": "Provide a value for CHATBOT__DEFAULTS__SYSTEMMESSAGES__0.",
      "secret": false,
      "strategy": "default",
      "default": "You are a bot to help with all support requests related to Squidex."
    },
    {
      "key": "CHATBOT__DEFAULTS__SYSTEMMESSAGES__1",
      "service": "squidex",
      "description": "Image Configuration",
      "secret": false,
      "strategy": "default",
      "default": "Say hello to the user and explain him about your capabilities in a single, short sentence."
    },
    {
      "key": "EMAIL__NOTIFICATIONS__NEWUSERSUBJECT",
      "service": "squidex",
      "description": "The email subject when a new user is added as contributor to an app.",
      "secret": false,
      "strategy": "default",
      "default": "You have been invited to join Project $APP_NAME at Squidex CMS"
    },
    {
      "key": "CACHING__DOMAINOBJECTS__CACHEDURATION",
      "service": "squidex",
      "description": "The cache duration for domain objects.",
      "secret": false,
      "strategy": "default",
      "default": "00:10:00"
    },
    {
      "key": "EMAIL__NOTIFICATIONS__NEWUSERTEAMBODY",
      "service": "squidex",
      "description": "The email body when a new user is added as contributor to a team.",
      "secret": false,
      "strategy": "default",
      "default": "Welcome to Squidex\\r\\nDear User,\\r\\n\\r\\n$ASSIGNER_NAME ($ASSIGNER_EMAIL) has invited you to join Team $TEAM_NAME at Squidex Headless CMS. Login with your GitHub, Google or Microsoft credentials to create a new user account and start managing the Team now.\\r\\n\\r\\nThank you very much,\\r\\nThe Squidex Team\\r\\n\\r\\n<<Start now!>> [$UI_URL]"
    },
    {
      "key": "IDENTITY__SUPPRESSXFRAMEOPTIONSHEADER",
      "service": "squidex",
      "description": "Specifies whether to suppress the generation of X-Frame-Options header which is used to prevent ClickJacking.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "LOGGING__APPLICATIONINSIGHTS__ENABLED",
      "service": "squidex",
      "description": "True, to enable application insights integraon.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "LOGGING__LOGLEVEL__MICROSOFT.IDENTITY",
      "service": "squidex",
      "description": "Provide a value for LOGGING__LOGLEVEL__MICROSOFT.IDENTITY.",
      "secret": false,
      "strategy": "default",
      "default": "Warning"
    },
    {
      "key": "EMAIL__NOTIFICATIONS__EXISTINGUSERBODY",
      "service": "squidex",
      "description": "The email body when an existing user is added as contributor to an app.",
      "secret": false,
      "strategy": "default",
      "default": "Dear User,\\r\\n\\r\\n$ASSIGNER_NAME ($ASSIGNER_EMAIL) has invited you to join App $APP_NAME at Squidex Headless CMS.\\r\\n\\r\\nLogin or reload the Management UI to see the App.\\r\\n\\r\\nThank you very much,\\r\\nThe Squidex Team\\r\\n\\r\\n<<Start now!>> [$UI_URL]"
    },
    {
      "key": "STORE__MONGODB__ATLAS__FULLTEXTENABLED",
      "service": "squidex",
      "description": "True, if you want to enable mongo atlas for full text search instead of MongoDB.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "TEMPLATES__REPOSITORIES__0__CONTENTURL",
      "service": "squidex",
      "description": "The url to download readme files.",
      "secret": false,
      "strategy": "default",
      "default": "https://raw.githubusercontent.com/Squidex/templates/main"
    },
    {
      "key": "ASSETSTORE__AZUREBLOB__CONNECTIONSTRING",
      "service": "squidex",
      "description": "The connection string to the azure storage service.",
      "secret": false,
      "strategy": "default",
      "default": "UseDevelopmentStorage=true"
    },
    {
      "key": "LOGGING__LOGLEVEL__MICROSOFT.ASPNETCORE",
      "service": "squidex",
      "description": "Provide a value for LOGGING__LOGLEVEL__MICROSOFT.ASPNETCORE.",
      "secret": false,
      "strategy": "default",
      "default": "Warning"
    },
    {
      "key": "CHATBOT__CONFIGURATIONS__IMAGE__TOOLS__0",
      "service": "squidex",
      "description": "Text Configuration",
      "secret": false,
      "strategy": "default",
      "default": "dall-e"
    },
    {
      "key": "EMAIL__NOTIFICATIONS__NEWUSERTEAMSUBJECT",
      "service": "squidex",
      "description": "The email subject when a new user is added as contributor to a team.",
      "secret": false,
      "strategy": "default",
      "default": "You have been invited to join Team $TEAM_NAME at Squidex CMS"
    },
    {
      "key": "EMAIL__NOTIFICATIONS__EXISTINGUSERSUBJECT",
      "service": "squidex",
      "description": "The email subject when an existing user is added as contributor to an app.",
      "secret": false,
      "strategy": "default",
      "default": "[Squidex CMS] You have been invited to join App $APP_NAME"
    },
    {
      "key": "EMAIL__NOTIFICATIONS__EXISTINGTEAMUSERBODY",
      "service": "squidex",
      "description": "The email body when an existing user is added as contributor to a team.",
      "secret": false,
      "strategy": "default",
      "default": "Dear User,\\r\\n\\r\\n$ASSIGNER_NAME ($ASSIGNER_EMAIL) has invited you to join Team $TEAM_NAME at Squidex Headless CMS.\\r\\n\\r\\nLogin or reload the Management UI to see the Team.\\r\\n\\r\\nThank you very much,\\r\\nThe Squidex Team\\r\\n\\r\\n<<Start now!>> [$UI_URL]"
    },
    {
      "key": "ASSETSTORE__AMAZONS3__DISABLEPAYLOADSIGNING",
      "service": "squidex",
      "description": "True, to disable the SigV4 payload signing. This might be needed for some S3-compatible storage solutions, for example Cloudflare R2.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "IDENTITY__OIDCGETCLAIMSFROMUSERINFOENDPOINT",
      "service": "squidex",
      "description": "Provide a value for IDENTITY__OIDCGETCLAIMSFROMUSERINFOENDPOINT.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "EMAIL__NOTIFICATIONS__EXISTINGTEAMUSERSUBJECT",
      "service": "squidex",
      "description": "The email subject when an existing user is added as contributor to a team.",
      "secret": false,
      "strategy": "default",
      "default": "[Squidex CMS] You have been invited to join Team $TEAM_NAME"
    },
    {
      "key": "LOGGING__APPLICATIONINSIGHTS__CONNECTIONSTRING",
      "service": "squidex",
      "description": "============================================",
      "secret": false,
      "strategy": "default",
      "default": "InstrumentationKey=[key];IngestionEndpoint=https://[datacenter].in.applicationinsights.azure.com/"
    },
    {
      "key": "CHATBOT__CONFIGURATIONS__TEXT__SYSTEMMESSAGES__0",
      "service": "squidex",
      "description": "Provide a value for CHATBOT__CONFIGURATIONS__TEXT__SYSTEMMESSAGES__0.",
      "secret": false,
      "strategy": "default",
      "default": "You are a bot to generate text content."
    },
    {
      "key": "CHATBOT__CONFIGURATIONS__TEXT__SYSTEMMESSAGES__1",
      "service": "squidex",
      "description": "Provide a value for CHATBOT__CONFIGURATIONS__TEXT__SYSTEMMESSAGES__1.",
      "secret": false,
      "strategy": "default",
      "default": "Say hello to the user and explain him about your capabilities in a single, short sentence."
    },
    {
      "key": "CHATBOT__CONFIGURATIONS__TEXT__SYSTEMMESSAGES__2",
      "service": "squidex",
      "description": "Provide a value for CHATBOT__CONFIGURATIONS__TEXT__SYSTEMMESSAGES__2.",
      "secret": false,
      "strategy": "default",
      "default": "When you are asked to generate content such as articles, add placeholders for image, describe and use the following pattern: <IMG>{description}</IMG>. {description} is the generated image description."
    },
    {
      "key": "CHATBOT__CONFIGURATIONS__IMAGE__SYSTEMMESSAGES__0",
      "service": "squidex",
      "description": "Provide a value for CHATBOT__CONFIGURATIONS__IMAGE__SYSTEMMESSAGES__0.",
      "secret": false,
      "strategy": "default",
      "default": "You are a bot to generate images."
    },
    {
      "key": "CHATBOT__CONFIGURATIONS__IMAGE__SYSTEMMESSAGES__1",
      "service": "squidex",
      "description": "Provide a value for CHATBOT__CONFIGURATIONS__IMAGE__SYSTEMMESSAGES__1.",
      "secret": false,
      "strategy": "default",
      "default": "Say hello to the user and explain him the user about your capabilities in a single, short sentence."
    },
    {
      "key": "IDENTITY__OIDCOVERRIDEPERMISSIONSWITHCUSTOMCLAIMSONLOGIN",
      "service": "squidex",
      "description": "Provide a value for IDENTITY__OIDCOVERRIDEPERMISSIONSWITHCUSTOMCLAIMSONLOGIN.",
      "secret": false,
      "strategy": "default",
      "default": "false"
    },
    {
      "key": "MONGOHOST",
      "service": "mongo",
      "description": "Railway Private Domain Name.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "MONGOPORT",
      "service": "mongo",
      "description": "MongoDB Port.",
      "secret": false,
      "strategy": "default",
      "default": "27017"
    },
    {
      "key": "MONGOUSER",
      "service": "mongo",
      "description": "Mongodb user.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "MONGO_URL",
      "service": "mongo",
      "description": "Private URL to connect to MongoDB.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "railway_private_domain"
    },
    {
      "key": "MONGOPASSWORD",
      "service": "mongo",
      "description": "Root password.",
      "secret": true,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "MONGO_PUBLIC_URL",
      "service": "mongo",
      "description": "Public URL to connect to MongoDB, used for Data panel.",
      "secret": false,
      "strategy": "railway_provided",
      "railway_source": "reference_variable"
    },
    {
      "key": "MONGO_INITDB_ROOT_PASSWORD",
      "service": "mongo",
      "description": "Root user password, set during initialization.",
      "secret": true,
      "strategy": "generate",
      "generate": "strong_password"
    },
    {
      "key": "MONGO_INITDB_ROOT_USERNAME",
      "service": "mongo",
      "description": "User created during initialization, given the root role.",
      "secret": false,
      "strategy": "default",
      "default": "mongo"
    }
  ],
  "deploy": {
    "mcp": {
      "server": "railway",
      "tool": "deploy_template",
      "args": {
        "template_code": "squidex-headlesscms"
      }
    },
    "cli": "railway deploy --template squidex-headlesscms",
    "api": {
      "method": "POST",
      "path": "/graphql/v2",
      "body": {
        "query": "mutation templateDeploy($input: TemplateDeployV2Input!) { templateDeployV2(input: $input) { projectId workflowId } }",
        "variables": {
          "input": {
            "templateId": "4a46ecd0-b990-49bc-a6d4-2d24665c8a9f",
            "serializedConfig": {
              "services": {
                "80da0899-f06d-43ab-a29c-8de8cf42befc": {
                  "name": "squidex",
                  "source": {
                    "image": "squidex/squidex:7"
                  },
                  "variables": {
                    "PLUGINS__0": {
                      "description": "Define optional paths to plugins.",
                      "defaultValue": "Squidex.Extensions.dll"
                    },
                    "STORE__TYPE": {
                      "description": "Define the type of the read store. SUPPORTED: MongoDb, Sql",
                      "defaultValue": "MongoDb"
                    },
                    "UI__DISABLE": {
                      "description": "Admin UI disable",
                      "defaultValue": "false"
                    },
                    "ROBOTS__TEXT": {
                      "description": "The text for the robots.txt file",
                      "defaultValue": "User-agent: *\\nAllow: /api/assets/*"
                    },
                    "UI__HIDENEWS": {
                      "description": "Hide the news dialog.",
                      "defaultValue": "false"
                    },
                    "UI__SHOWINFO": {
                      "description": "Show the exposed values as information on the apps overview page.",
                      "defaultValue": "true"
                    },
                    "LOGGING__NAME": {
                      "description": "The name that is used for monitoring.",
                      "defaultValue": "Squidex"
                    },
                    "NEWS__APPNAME": {
                      "description": "The app name where the news are stored.",
                      "defaultValue": "squidex-website"
                    },
                    "NOTIFO__APPID": {
                      "isOptional": true,
                      "description": "The ID of the app in notifo. Configure notifo if you want to have support for custom notifications.",
                      "defaultValue": ""
                    },
                    "REBUILD__APPS": {
                      "description": "Set to true to rebuild apps.",
                      "defaultValue": "false"
                    },
                    "UI__MAP__TYPE": {
                      "description": "Define the type of the geolocation service. SUPPORTED: GoogleMaps, OSM",
                      "defaultValue": "OSM"
                    },
                    "URLS__BASEURL": {
                      "description": "The base URL under which Squidex is running. It is used to generate hyperlinks and to make redirects with the correct host name. In some environments, Squidex is running behind several proxies, e.g. cloudflare, google load balancer and so on. In these cases the original host name might get lost. Therefore we introduced this configuration value.",
                      "defaultValue": "https://${{RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "FULLTEXT__TYPE": {
                      "description": "Define the type of the full text store. SUPPORTED: elastic (ElasticSearch), azure (Azure Cognitive Search), default. Default: default",
                      "defaultValue": "default"
                    },
                    "LOGGING__HUMAN": {
                      "description": "Setting the flag to true, enables well formatteds json logs.",
                      "defaultValue": "true"
                    },
                    "LOGGING__LEVEL": {
                      "description": "The log level of the implementation adapter. Trace, Debug, Information, Warning, Error, Fatal",
                      "defaultValue": "Information"
                    },
                    "NEWS__CLIENTID": {
                      "description": "The credentials to the app (Readonly).",
                      "defaultValue": "squidex-website:default"
                    },
                    "NOTIFO__APIKEY": {
                      "isOptional": true,
                      "description": "The API key for your app in notifo.",
                      "defaultValue": ""
                    },
                    "NOTIFO__APIURL": {
                      "description": "The API URL.",
                      "defaultValue": "https://app.notifo.io"
                    },
                    "REBUILD__RULES": {
                      "description": "Set to true to rebuild rules.",
                      "defaultValue": "false"
                    },
                    "REBUILD__TEAMS": {
                      "description": "Set to true to rebuild teams.",
                      "defaultValue": "false"
                    },
                    "SQUIDEX_DOMAIN": {
                      "defaultValue": "${{RAILWAY_PUBLIC_DOMAIN}}"
                    },
                    "URLS__BASEPATH": {
                      "isOptional": true,
                      "description": "The base path when running Squidex behind a reverse proxy like nginx under a subfolder / subpath.",
                      "defaultValue": ""
                    },
                    "ASSETS__MAXSIZE": {
                      "description": "The maximum file size in bytes. Default: 5MB",
                      "defaultValue": "5242880"
                    },
                    "DEEPDETECT__URL": {
                      "isOptional": true,
                      "description": "Deepdetect configuration",
                      "defaultValue": ""
                    },
                    "LOGGING__COLORS": {
                      "description": "Set to true, to use colors.",
                      "defaultValue": "true"
                    },
                    "MESSAGING__TYPE": {
                      "description": "",
                      "defaultValue": "MongoDb"
                    },
                    "REBUILD__ASSETS": {
                      "description": "Set to true to rebuild assets.",
                      "defaultValue": "false"
                    },
                    "UI__HIDEINDEXES": {
                      "description": "Hide the indexes UI.",
                      "defaultValue": "false"
                    },
                    "ASSETSTORE__TYPE": {
                      "description": "Define the type of the read store. SUPPORTED: Folder (local folder), MongoDb (GridFS), GoogleCloud (hosted in Google Cloud only), AzureBlob, AmazonS3, FTP (not recommended).",
                      "defaultValue": "Folder"
                    },
                    "ASSETS__CANCACHE": {
                      "description": "True to enable memory caching. This is only supported in GraphQL with the @cache(duration: 1000) directive.",
                      "defaultValue": "true"
                    },
                    "CLUSTERING__MODE": {
                      "isOptional": true,
                      "description": "Until version 7, Squidex uses Microsoft Orleans for clustering. It is technology, which was written for online games, such as Halo. With Orleans you develop small classes that are deployed automatically to a cluster of nodes. To enable clustering you have to set this setting to Mongo, which means that a MongoDB table is used to store the state of the cluster.",
                      "defaultValue": ""
                    },
                    "EVENTSTORE__TYPE": {
                      "isOptional": false,
                      "defaultValue": "MongoDB"
                    },
                    "MODE__ISREADONLY": {
                      "description": "Use this flag to set Squidex to readonly, e.g. when you deploy a second instance for migration.",
                      "defaultValue": "false"
                    },
                    "REBUILD__SCHEMAS": {
                      "description": "Set to true to rebuild schemas.",
                      "defaultValue": "false"
                    },
                    "EMAIL__SMTP__PORT": {
                      "description": "The port to your email server.",
                      "defaultValue": "587"
                    },
                    "IDENTITY__SHOWPII": {
                      "description": "Set to true to show PII (Personally Identifiable Information) in the logs.",
                      "defaultValue": "true"
                    },
                    "LANGUAGES__CUSTOM": {
                      "isOptional": true,
                      "description": "Use custom languages where the key is the language code and the value is the english name.",
                      "defaultValue": ""
                    },
                    "REBUILD__CONTENTS": {
                      "description": "Set to true to rebuild contents.",
                      "defaultValue": "false"
                    },
                    "TWITTER__CLIENTID": {
                      "description": "The client information for twitter.",
                      "defaultValue": "QZhb3HQcGCvE6G8yNNP9ksNet"
                    },
                    "URLS__ENFORCEHOST": {
                      "description": "Set it to true to return a 400 if the host does not match.",
                      "defaultValue": "false"
                    },
                    "ASSETS__MAXRESULTS": {
                      "description": "The maximum number of items to return for each query. Warning: Use pagination and not large number of items.",
                      "defaultValue": "200"
                    },
                    "ASSETS__RESIZERURL": {
                      "defaultValue": "http://${{resizer.RAILWAY_PRIVATE_DOMAIN}}"
                    },
                    "CLUSTERING__WORKER": {
                      "description": "Defines whether the current instance is a worker. You should have only one worker in your deployment.",
                      "defaultValue": "true"
                    },
                    "CONTENTS__CANCACHE": {
                      "description": "True to enable memory caching. This is only supported in GraphQL with the @cache(duration: 1000) directive.",
                      "defaultValue": "true"
                    },
                    "IDENTITY__OIDCNAME": {
                      "description": "Settings for your custom oidc server.",
                      "defaultValue": "OIDC"
                    },
                    "NEWS__CLIENTSECRET": {
                      "description": "The credentials to the app (Readonly).",
                      "defaultValue": "QGgqxd7bDHBTEkpC6fj8sbdPWgZrPrPfr3xzb3LKoec="
                    },
                    "UI__HIDEONBOARDING": {
                      "description": "Hide all onboarding tooltips and dialogs.",
                      "defaultValue": "false"
                    },
                    "URLS__ENFORCEHTTPS": {
                      "description": "Set it to true to redirect the user from http to https permanently.",
                      "defaultValue": "false"
                    },
                    "URLS__KNOWNPROXIES": {
                      "description": "A list of known proxies to make forward headers safer.",
                      "defaultValue": "[]"
                    },
                    "ASSETS__TIMEOUTFIND": {
                      "description": "The timeout when searching for single items in the database.",
                      "defaultValue": "00:00:01"
                    },
                    "CACHING__STRONGETAG": {
                      "description": "Set to true, to use strong etags.",
                      "defaultValue": "false"
                    },
                    "EMAIL__SMTP__SENDER": {
                      "description": "The sender email address.",
                      "defaultValue": "hello@squidex.io"
                    },
                    "EMAIL__SMTP__SERVER": {
                      "isOptional": true,
                      "description": "The host name to your email server.",
                      "defaultValue": ""
                    },
                    "IDENTITY__ADMINAPPS": {
                      "description": "The apps which should be visible on the dashboard for the admin.",
                      "defaultValue": "[]"
                    },
                    "REBUILD__ASSETFILES": {
                      "description": "Set to true to create dummy asset files if they do not exist. Useful when a backup fail.",
                      "defaultValue": "false"
                    },
                    "STORE__SQL__VERSION": {
                      "description": "The version of the MySQL server. For MySQL - Ensure that: Version is set correctly, Server is initialized with --log-bin-trust-function-creators=1, Server is initialized with --local-infile=1 (for bulk inserts), Connection String has: AllowLoadLocalInfile=true",
                      "defaultValue": "9.2.0-mysql"
                    },
                    "UI__HIDEDATEBUTTONS": {
                      "description": "Hide the today and now button.",
                      "defaultValue": "false"
                    },
                    "UI__REDIRECTTOLOGIN": {
                      "description": "Redirect to login automatically.",
                      "defaultValue": "false"
                    },
                    "URLS__TRUSTEDHOSTED": {
                      "description": "A list of trusted hosts for redirects.",
                      "defaultValue": "[]"
                    },
                    "ASSETS__FOLDERPERAPP": {
                      "description": "Create one folder per app. WARNING: If you change this parameter, previous assets are not available anymore.",
                      "defaultValue": "false"
                    },
                    "ASSETS__TIMEOUTQUERY": {
                      "description": "The timeout when searching for multiple items in the database.",
                      "defaultValue": "00:00:05"
                    },
                    "COMPRESSION__ENABLED": {
                      "description": "Enables compression.",
                      "defaultValue": "false"
                    },
                    "CONTENTS__MAXRESULTS": {
                      "description": "The maximum number of items to return for each query. Warning: Use pagination and not large number of items.",
                      "defaultValue": "200"
                    },
                    "IDENTITY__ADMINEMAIL": {
                      "isOptional": true,
                      "description": "The email address of the admin user. You can also set the admin email with the initial setup screen.",
                      "defaultValue": ""
                    },
                    "IDENTITY__OIDCCLIENT": {
                      "isOptional": true,
                      "description": "Settings for your custom oidc server.",
                      "defaultValue": ""
                    },
                    "IDENTITY__OIDCPROMPT": {
                      "defaultValue": "null"
                    },
                    "IDENTITY__OIDCSECRET": {
                      "isOptional": true,
                      "description": "Settings for your custom oidc server.",
                      "defaultValue": ""
                    },
                    "IDENTITY__PRIVACYURL": {
                      "description": "The url to you privacy statements, if you host squidex by yourself.",
                      "defaultValue": "https://squidex.io/privacy"
                    },
                    "LOGGING__LOGREQUESTS": {
                      "description": "Set to false to disable logging of http requests.",
                      "defaultValue": "true"
                    },
                    "SQUIDEX_GITHUBCLIENT": {
                      "isOptional": true,
                      "description": "Set to empty to disable authentication with third party providers.",
                      "defaultValue": ""
                    },
                    "SQUIDEX_GITHUBSECRET": {
                      "isOptional": true,
                      "defaultValue": ""
                    },
                    "SQUIDEX_GOOGLECLIENT": {
                      "isOptional": true,
                      "description": "Set to empty to disable authentication with third party providers.",
                      "defaultValue": ""
                    },
                    "SQUIDEX_GOOGLESECRET": {
                      "isOptional": true,
                      "defaultValue": ""
                    },
                    "STORE__SQL__PROVIDER": {
                      "description": "The database provider. SUPPORTED: MySql, Postgres, SqlServer",
                      "defaultValue": "Postgres"
                    },
                    "APPS__DELETEPERMANENT": {
                      "description": "True to delete apps permanently. This process can take a while and is executed in the background.",
                      "defaultValue": "false"
                    },
                    "ASSETSTORE__FTP__PATH": {
                      "description": "The relative or absolute path to the folder to store the assets.",
                      "defaultValue": "Assets"
                    },
                    "ASSETS__ALLOWAVIFAUTO": {
                      "description": "Deliver the assets in AVIG format automatically if the browser supports that. WARNING: If you change this feature from false to true, you might experience a performance spike the images are getting prepared.",
                      "defaultValue": "false"
                    },
                    "ASSETS__ALLOWWEBPAUTO": {
                      "description": "Deliver the assets in WEBP format automatically if the browser supports that. WARNING: If you change this feature from false to true, you might experience a performance spike the images are getting prepared.",
                      "defaultValue": "true"
                    },
                    "CONTENTS__TIMEOUTFIND": {
                      "description": "The timeout when searching for single items in the database.",
                      "defaultValue": "00:00:01"
                    },
                    "DIAGNOSTICS__DUMPTOOL": {
                      "isOptional": true,
                      "description": "The path to the dotnet-dump tool binary. REMARKS: Will be set automatically in the official Docker image.",
                      "defaultValue": ""
                    },
                    "EMAIL__SMTP__PASSWORD": {
                      "isOptional": true,
                      "description": "The password to authenticate to your email server.",
                      "defaultValue": ""
                    },
                    "EMAIL__SMTP__USERNAME": {
                      "isOptional": true,
                      "description": "The username to authenticate to your email server",
                      "defaultValue": ""
                    },
                    "LOGGING__STOREENABLED": {
                      "description": "False to disable the log store.",
                      "defaultValue": "true"
                    },
                    "TWITTER__CLIENTSECRET": {
                      "description": "The client information for twitter.",
                      "defaultValue": "Pdu9wdN72T33KJRFdFy1w4urBKDRzIyuKpc0OItQC2E616DuZD"
                    },
                    "CHATBOT__OPENAI__MODEL": {
                      "description": "The chat model.",
                      "defaultValue": "gpt-3.5-turbo-0125"
                    },
                    "COMPRESSION__LEVELGZIP": {
                      "description": "The compression level for gzip. SUPPORTED: Fastest (default), OptimOptimal, SmallestSize, NoCompression",
                      "defaultValue": "Fastest"
                    },
                    "CONTENTS__TIMEOUTQUERY": {
                      "description": "The timeout when searching for multiple items in the database.",
                      "defaultValue": "00:00:05"
                    },
                    "EMAIL__SMTP__ENABLESSL": {
                      "description": "Always use SSL if possible.",
                      "defaultValue": "true"
                    },
                    "GRAPHQL__CACHEDURATION": {
                      "description": "Defines how long the graphl schema is cached. Default: 10 min.",
                      "defaultValue": "00:10:00"
                    },
                    "IDENTITY__OIDCERRORMAP": {
                      "defaultValue": "null"
                    },
                    "LOGGING__OTLP__ENABLED": {
                      "description": "True, to enable OpenTelemetry Protocol integration.",
                      "defaultValue": "false"
                    },
                    "ASSETS__DEFAULTPAGESIZE": {
                      "description": "The default page size if not specified by a query. Warning: Can slow down queries if increased.",
                      "defaultValue": "200"
                    },
                    "ASSETS__DELETEPERMANENT": {
                      "description": "True to delete assets files permanently.",
                      "defaultValue": "false"
                    },
                    "ASSETS__DELETERECURSIVE": {
                      "description": "True to delete assets recursively.",
                      "defaultValue": "true"
                    },
                    "CHATBOT__OPENAI__APIKEY": {
                      "isOptional": true,
                      "description": "The OpenAI API Key.",
                      "defaultValue": ""
                    },
                    "DIAGNOSTICS__GCDUMPTOOL": {
                      "isOptional": true,
                      "description": "The path to the dotnet-gcdump tool binary. REMARKS: Will be set automatically in the official Docker image.",
                      "defaultValue": ""
                    },
                    "FULLTEXT__AZURE__APIKEY": {
                      "isOptional": true,
                      "description": "The api key. See link https://docs.microsoft.com/en-us/azure/search/search-create-service-portal#get-a-key-and-url-endpoint.",
                      "defaultValue": ""
                    },
                    "IDENTITY__ADMINCLIENTID": {
                      "isOptional": true,
                      "description": "Client with all admin permissions.",
                      "defaultValue": ""
                    },
                    "IDENTITY__ADMINPASSWORD": {
                      "isOptional": true,
                      "description": "The password of the admin user (Must contain lowercase, uppercase letter, number and special character). You can also set the admin password with the initial setup screen.",
                      "defaultValue": ""
                    },
                    "IDENTITY__ADMINRECREATE": {
                      "description": "Recreate the admin if it does not exist or the password does not match.",
                      "defaultValue": "true"
                    },
                    "IDENTITY__OIDCAUTHORITY": {
                      "isOptional": true,
                      "description": "Settings for your custom oidc server.",
                      "defaultValue": ""
                    },
                    "IDENTITY__OIDCSCOPES__0": {
                      "description": "Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions by default contains scopes \"openid\" and \"profile\".",
                      "defaultValue": "email"
                    },
                    "KAFKA__BOOTSTRAPSERVERS": {
                      "isOptional": true,
                      "description": "Kafka producer configuration",
                      "defaultValue": ""
                    },
                    "LOGGING__OTLP__ENDPOINT": {
                      "isOptional": true,
                      "description": "The endpoint to the agent.",
                      "defaultValue": ""
                    },
                    "LOGGING__OTLP__SAMPLING": {
                      "description": "The sample rate as double. 0.5 writes every second trace.",
                      "defaultValue": "1.0"
                    },
                    "RULES__JOBQUERYINTERVAL": {
                      "description": "How often the rule jobs are queried for updated. Must be greater than zero.",
                      "defaultValue": "00:00:10"
                    },
                    "SQUIDEX_MICROSOFTCLIENT": {
                      "isOptional": true,
                      "description": "Set to empty to disable authentication with third party providers.",
                      "defaultValue": ""
                    },
                    "SQUIDEX_MICROSOFTSECRET": {
                      "isOptional": true,
                      "defaultValue": ""
                    },
                    "ASSETSTORE__FOLDER__PATH": {
                      "description": "The relative or absolute path to the folder to store the assets.",
                      "defaultValue": "Assets"
                    },
                    "COMPRESSION__LEVELBROTLI": {
                      "description": "The compression level for brotli. SUPPORTED: Fastest (default), OptimOptimal, SmallestSize, NoCompression",
                      "defaultValue": "Fastest"
                    },
                    "LOGGING__ZIPKIN__ENABLED": {
                      "description": "True, to enable Zipkin integration.",
                      "defaultValue": "false"
                    },
                    "SCHEMAS__DELETEPERMANENT": {
                      "description": "True to delete schemas and the content permanently. This process can take a while and is executed in the background.",
                      "defaultValue": "false"
                    },
                    "SCRIPTING__TIMEOUTSCRIPT": {
                      "description": "The timeout for the synchronous part of the script.",
                      "defaultValue": "00:00:00.200"
                    },
                    "STORE__MONGODB__DATABASE": {
                      "description": "The database for all your other read collections.",
                      "defaultValue": "Squidex"
                    },
                    "STORE__SQL__RUNMIGRATION": {
                      "description": "Run the migration.",
                      "defaultValue": "true"
                    },
                    "UI__MAP__GOOGLEMAPS__KEY": {
                      "description": "The optional google maps API key. CREATE YOUR OWN PLEASE.",
                      "defaultValue": "AIzaSyB_Z8l3nwUxZhMJykiDUJy6bSHXXlwcYMg"
                    },
                    "ASSETSTORE__FTP__PASSWORD": {
                      "isOptional": true,
                      "description": "Credentials.",
                      "defaultValue": ""
                    },
                    "ASSETSTORE__FTP__USERNAME": {
                      "isOptional": true,
                      "description": "Credentials.",
                      "defaultValue": ""
                    },
                    "CONTENTS__DEFAULTPAGESIZE": {
                      "description": "The default page size if not specified by a query. Warning: Can slow down queries if increased.",
                      "defaultValue": "200"
                    },
                    "CONTENTS__USETRANSACTIONS": {
                      "description": "False to not use transactions. Improves performance. Warning: Can cause consistency issues.",
                      "defaultValue": "false"
                    },
                    "LOGGING__ZIPKIN__ENDPOINT": {
                      "description": "Application Insights Configuration",
                      "defaultValue": "http://localhost:9411/api/v2/spans"
                    },
                    "RULES__RULESCACHEDURATION": {
                      "description": "The cache duration for rules.",
                      "defaultValue": "00:00:10"
                    },
                    "SCRIPTING__TIMEOUTPROMISE": {
                      "description": "The timeout for the asynchronous promise of the script.",
                      "defaultValue": "00:00:04"
                    },
                    "UI__REGEXSUGGESTIONS__URL": {
                      "description": "%[\\\\]@!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=.]+$ # Regex for urls.",
                      "defaultValue": "^(?:http(s)?:\\\\/\\\\/)?[\\\\w.-]+(?:\\\\.[\\\\w\\\\.-]+)+[\\\\w\\\\-\\\\._~:\\\\/?"
                    },
                    "DIAGNOSTICS__GC__THRESHOLD": {
                      "description": "The maximum number of megabyte that the process can consume until it is marked as not healthy.",
                      "defaultValue": "8192"
                    },
                    "FULLTEXT__AZURE__INDEXNAME": {
                      "description": "The name of the index.",
                      "defaultValue": "squidex"
                    },
                    "IDENTITY__OIDCRESPONSETYPE": {
                      "description": "or \"code\"",
                      "defaultValue": "id_token"
                    },
                    "LOGGING__LOGLEVEL__DEFAULT": {
                      "description": "The log level of the default log adapter.",
                      "defaultValue": "Information"
                    },
                    "LOGGING__LOGLEVEL__RUNTIME": {
                      "defaultValue": "Warning"
                    },
                    "UI__HIDEDATETIMEMODEBUTTON": {
                      "description": "Hide the Local/UTC button",
                      "defaultValue": "false"
                    },
                    "UI__REGEXSUGGESTIONS__SLUG": {
                      "description": "Regex for slugs (e.g. hello-world).",
                      "defaultValue": "^[a-z0-9]+(\\\\-[a-z0-9]+)*$"
                    },
                    "URLS__ENABLEFORWARDHEADERS": {
                      "description": "Set it to true to use the X-Forwarded- headers for host name and scheme.",
                      "defaultValue": "true"
                    },
                    "ASSETSTORE__EXPOSESOURCEURL": {
                      "description": "Allow to expose the url in GraphQL URL.",
                      "defaultValue": "false"
                    },
                    "ASSETSTORE__FTP__SERVERHOST": {
                      "isOptional": true,
                      "description": "The host of the ftp service",
                      "defaultValue": ""
                    },
                    "ASSETSTORE__FTP__SERVERPORT": {
                      "description": "The host of the ftp service",
                      "defaultValue": "21"
                    },
                    "ASSETSTORE__MONGODB__BUCKET": {
                      "description": "The name of the Mongo Grid FS bucket.",
                      "defaultValue": "fs"
                    },
                    "CACHING__REPLICATED__ENABLE": {
                      "description": "OBSOLETE - Set to true to enable a replicated cache for app, schemas and rules. Increases performance but reduces consistency. This setting is obsolete and has been replaced with caching:apps:cacheDuration and caching:schemas:cacheDuration",
                      "defaultValue": "true"
                    },
                    "COMPRESSION__ENABLEFORHTTPS": {
                      "description": "Indicates if responses over HTTPS connections should be compressed.",
                      "defaultValue": "true"
                    },
                    "IDENTITY__ADMINCLIENTSECRET": {
                      "isOptional": true,
                      "description": "Client with all admin permissions.",
                      "defaultValue": ""
                    },
                    "IDENTITY__ALLOWPASSWORDAUTH": {
                      "description": "Enable password auth. Set this to false if you want to disable local login, leaving only 3rd party login options.",
                      "defaultValue": "true"
                    },
                    "IDENTITY__LOCKAUTOMATICALLY": {
                      "description": "Lock new users automatically, the administrator must unlock them.",
                      "defaultValue": "false"
                    },
                    "SCRIPTING__TIMEOUTEXECUTION": {
                      "description": "The timeout for the whole script execution.",
                      "defaultValue": "00:00:04"
                    },
                    "UI__ONLYADMINSCANCREATEAPPS": {
                      "isOptional": false,
                      "description": "With your setup, only admins can create new apps. If you want to change this set false",
                      "defaultValue": "true"
                    },
                    "UI__REGEXSUGGESTIONS__EMAIL": {
                      "description": "$%&'*+\\\\/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$ # Regex for emails.",
                      "defaultValue": "^[a-zA-Z0-9.!#$%&’*+\\\\/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$"
                    },
                    "UI__REGEXSUGGESTIONS__PHONE": {
                      "description": "Regex for phone numbers.",
                      "defaultValue": "^\\\\(*\\\\+*[1-9]{0,3}\\\\)*-*[1-9]{0,3}[-. /]*\\\\(*[2-9]\\\\d{2}\\\\)*[-. /]*\\\\d{3}[-. /]*\\\\d{4} *e*x*t*\\\\.* *\\\\d{0,4}$"
                    },
                    "ASSETSTORE__AMAZONS3__BUCKET": {
                      "description": "The name of your bucket.",
                      "defaultValue": "squidex-test"
                    },
                    "CACHING__APPS__CACHEDURATION": {
                      "description": "The cache duration for apps.",
                      "defaultValue": "00:00:00"
                    },
                    "DIAGNOSTICS__DUMPTRIGGERINMB": {
                      "description": "When more memory is allocated that the defined value (in MB) a dump will be created once automatically and written to the asset store.",
                      "defaultValue": "0"
                    },
                    "FULLTEXT__ELASTIC__INDEXNAME": {
                      "description": "The name of the index.",
                      "defaultValue": "squidex"
                    },
                    "GRAPHQL__DATALOADERBATCHSIZE": {
                      "description": "The batch size of the data loader. HINT: Can be overriden with the X-BatchSize header up to a maximum of 5000.",
                      "defaultValue": "1000"
                    },
                    "GRAPHQL__ENABLESUBSCRIPTIONS": {
                      "description": "Enables subscriptions.",
                      "defaultValue": "true"
                    },
                    "IDENTITY__ALLOWCUSTOMDOMAINS": {
                      "description": "Enable custom domains and oidc settings for teams.",
                      "defaultValue": "true"
                    },
                    "STORE__SQL__CONNECTIONSTRING": {
                      "isOptional": true,
                      "description": "The connection string to your database.",
                      "defaultValue": ""
                    },
                    "TRANSLATIONS__DEEPL__AUTHKEY": {
                      "isOptional": true,
                      "description": "The deepl api key if you want to support automated translations.",
                      "defaultValue": ""
                    },
                    "UI__ONLYADMINSCANCREATETEAMS": {
                      "isOptional": true,
                      "description": "With your setup, only admins can create new teams. If you want to change this set false",
                      "defaultValue": "true"
                    },
                    "ASSETSTORE__FTP__CREATEFOLDER": {
                      "description": "To create the subfolder if it does not exist. Set it to false it the Squidex process has limited permissions.",
                      "defaultValue": "true"
                    },
                    "ASSETSTORE__MONGODB__DATABASE": {
                      "description": "The name of the event store database.",
                      "defaultValue": "SquidexAssets"
                    },
                    "CACHING__MAXSURROGATEKEYSSIZE": {
                      "description": "Restrict the surrogate keys to the number of characters.",
                      "defaultValue": "0"
                    },
                    "DIAGNOSTICS__GCUMPTRIGGERINMB": {
                      "description": "When more memory is allocated than the defined value (in MB) a gcdump will be created once automatically and written to the asset store.",
                      "defaultValue": "0"
                    },
                    "EVENTSTORE__MONGODB__DATABASE": {
                      "description": "The name of the event store database.",
                      "defaultValue": "Squidex"
                    },
                    "EXPOSEDCONFIGURATION__VERSION": {
                      "description": "A list of configuration values that should be exposed from the info endpoint and in the UI.",
                      "defaultValue": "squidex:version"
                    },
                    "FULLTEXT__ELASTIC__OPENSEARCH": {
                      "description": "True, to use the Open Search client.",
                      "defaultValue": "false"
                    },
                    "IDENTITY__OIDCMETADATAADDRESS": {
                      "isOptional": true,
                      "description": "",
                      "defaultValue": ""
                    },
                    "LOGGING__LOGLEVEL__OPENIDDICT": {
                      "description": "Only logs issued tokens and general request information.",
                      "defaultValue": "Warning"
                    },
                    "LOGGING__STACKDRIVER__ENABLED": {
                      "description": "True, to enable stackdriver integration.",
                      "defaultValue": "false"
                    },
                    "LOGGING__STORERETENTIONINDAYS": {
                      "description": "The number of days request log items will be stored.",
                      "defaultValue": "90"
                    },
                    "STORE__MONGODB__CONFIGURATION": {
                      "isOptional": false,
                      "defaultValue": "${{EVENTSTORE__MONGODB__CONFIGURATION}}"
                    },
                    "STORE__MONGODB__ATLAS__GROUPID": {
                      "isOptional": true,
                      "description": "The organization id.",
                      "defaultValue": ""
                    },
                    "STORE__MONGODB__TEXTSHARDCOUNT": {
                      "description": "Defines the number of collections for texts.",
                      "defaultValue": "0"
                    },
                    "ASSETSTORE__AMAZONS3__ACCESSKEY": {
                      "description": "The access key for your user. Read More: https://supsystic.com/documentation/id-secret-access-key-amazon-s3/",
                      "defaultValue": "<MY_KEY>"
                    },
                    "ASSETSTORE__AMAZONS3__SECRETKEY": {
                      "description": "The secret key for your user. Read More: https://supsystic.com/documentation/id-secret-access-key-amazon-s3/",
                      "defaultValue": "<MY_SECRET>"
                    },
                    "ASSETSTORE__GOOGLECLOUD__BUCKET": {
                      "description": "The name of the bucket in google cloud store.",
                      "defaultValue": "squidex-assets"
                    },
                    "CACHING__SCHEMAS__CACHEDURATION": {
                      "description": "The cache duration for schemas.",
                      "defaultValue": "00:00:00"
                    },
                    "EMAIL__NOTIFICATIONS__USAGEBODY": {
                      "description": "The email body when app usage reached",
                      "defaultValue": "Dear User,\\r\\n\\r\\nYou are about to reach your usage limit for App $APP_NAME at Squidex Headless CMS.\\r\\n\\r\\nYou have already used $API_CALLS of your monthly limit of $API_CALLS_LIMIT API calls.\\r\\n\\r\\nPlease check your clients or upgrade your plan!\\r\\n\\r\\n<<Go to Squidex!>> [$UI_URL]"
                    },
                    "LOGGING__STACKDRIVER__PROJECTID": {
                      "isOptional": true,
                      "description": "The ID of your Google Cloud project.",
                      "defaultValue": ""
                    },
                    "STORE__MONGODB__ASSETSHARDCOUNT": {
                      "description": "Defines the number of collections for assets.",
                      "defaultValue": "0"
                    },
                    "STORE__MONGODB__CONTENTDATABASE": {
                      "description": "The database for all your content collections (one collection per app).",
                      "defaultValue": "SquidexContent"
                    },
                    "UI__REFERENCESDROPDOWNITEMCOUNT": {
                      "description": "The number of content items for dropdown selector.",
                      "defaultValue": "100"
                    },
                    "ASSETSTORE__AMAZONS3__REGIONNAME": {
                      "description": "The region name of your bucket.",
                      "defaultValue": "eu-central-1"
                    },
                    "ASSETSTORE__AMAZONS3__SERVICEURL": {
                      "isOptional": true,
                      "description": "The url of the S3 API service. Leave it empty if using the one provided by Amazon",
                      "defaultValue": ""
                    },
                    "ASSETSTORE__FOLDER__CREATEFOLDER": {
                      "description": "To create the subfolder if it does not exist. Set it to false it the Squidex process has limited permissions.",
                      "defaultValue": "true"
                    },
                    "CONTENTS__OPTIMIZEFORSELFHOSTING": {
                      "description": "True to enable an optimization for self hosting. Creates one database per app and one collection per schema. Slows down inserts, but you can create custom indexes.",
                      "defaultValue": "false"
                    },
                    "FULLTEXT__AZURE__SERVICEENDPOINT": {
                      "description": "The URL to your azure search instance. Read More: https://docs.microsoft.com/en-us/azure/search/search-create-service-portal#get-a-key-and-url-endpoint",
                      "defaultValue": "https://<name>.search.windows.net"
                    },
                    "FULLTEXT__ELASTIC__CONFIGURATION": {
                      "description": "The configuration to your elastic search cluster. Read More: https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/client-configuration.html",
                      "defaultValue": "http://localhost:9200"
                    },
                    "RULES__EXECUTIONTIMEOUTINSECONDS": {
                      "description": "The timeout to execute rule actions.",
                      "defaultValue": "10"
                    },
                    "STORE__MONGODB__ATLAS__PUBLICKEY": {
                      "isOptional": true,
                      "description": "Credentials to your account.",
                      "defaultValue": ""
                    },
                    "EMAIL__NOTIFICATIONS__NEWUSERBODY": {
                      "description": "The email body when a new user is added as contributor to an app.",
                      "defaultValue": "Welcome to Squidex\\r\\nDear User,\\r\\n\\r\\n$ASSIGNER_NAME ($ASSIGNER_EMAIL) has invited you to join Project (also called an App) $APP_NAME at Squidex Headless CMS. Login with your GitHub, Google or Microsoft credentials to create a new user account and start editing content now.\\r\\n\\r\\nThank you very much,\\r\\nThe Squidex Team\\r\\n\\r\\n<<Start now!>> [$UI_URL]"
                    },
                    "IDENTITY__OIDCDISABLEPROFILESCOPE": {
                      "description": "When oidcDisableProfileScope is set to true scope \"profile\" will be removed.",
                      "defaultValue": "false"
                    },
                    "STORE__MONGODB__ATLAS__PRIVATEKEY": {
                      "isOptional": true,
                      "description": "Credentials to your account.",
                      "defaultValue": ""
                    },
                    "STORE__MONGODB__CONTENTSHARDCOUNT": {
                      "description": "Defines the number of collections for contents.",
                      "defaultValue": "0"
                    },
                    "ASSETSTORE__AMAZONS3__BUCKETFOLDER": {
                      "description": "The optional folder within the bucket.",
                      "defaultValue": "squidex-assets"
                    },
                    "ASSETSTORE__MONGODB__CONFIGURATION": {
                      "description": "The connection string to your Mongo Server. Read More: https://docs.mongodb.com/manual/reference/connection-string/",
                      "defaultValue": "mongodb://localhost"
                    },
                    "EMAIL__NOTIFICATIONS__USAGESUBJECT": {
                      "description": "The email subject when app usage reached",
                      "defaultValue": "[Squidex CMS] You are about to reach your usage limit for App $APP_NAME"
                    },
                    "EVENTSTORE__MONGODB__CONFIGURATION": {
                      "isOptional": false,
                      "description": "Squidex Configuration - Environment Variables",
                      "defaultValue": "${{mongo.MONGO_URL}}"
                    },
                    "IDENTITY__OIDCONSIGNOUTREDIRECTURL": {
                      "isOptional": true,
                      "description": "",
                      "defaultValue": ""
                    },
                    "STORE__MONGODB__ATLAS__CLUSTERNAME": {
                      "isOptional": true,
                      "description": "The name of the cluster.",
                      "defaultValue": ""
                    },
                    "TEMPLATES__REPOSITORIES__0__GITURL": {
                      "description": "The url to the git repository.",
                      "defaultValue": "https://github.com/Squidex/templates.git"
                    },
                    "ASSETSTORE__AZUREBLOB__CREATEFOLDER": {
                      "description": "To create the subfolder if it does not exist. Set it to false it the Squidex process has limited permissions.",
                      "defaultValue": "true"
                    },
                    "STORE__MONGODB__VALUEREPRESENTATION": {
                      "description": "Defines how key-value-store values are represented in MongoDB (e.g. app, rule, schema). SUPPORTED: Document, String, Binary (from slow to fast).",
                      "defaultValue": "Undefined"
                    },
                    "TRANSLATIONS__DEEPL__MAPPING__ZH-CN": {
                      "description": "Google Cloud Configuration",
                      "defaultValue": "zh-CN"
                    },
                    "TRANSLATIONS__DEEPL__MAPPING__ZH-TW": {
                      "defaultValue": "zh-TW"
                    },
                    "ASSETSTORE__AMAZONS3__FORCEPATHSTYLE": {
                      "description": "Force path style property for AmazonS3Config",
                      "defaultValue": "false"
                    },
                    "ASSETSTORE__AZUREBLOB__CONTAINERNAME": {
                      "description": "The name of the container in the Azure Blob Storage",
                      "defaultValue": "squidex-assets"
                    },
                    "CHATBOT__CONFIGURATIONS__TEXT__TOOLS": {
                      "isOptional": true,
                      "description": "",
                      "defaultValue": ""
                    },
                    "CHATBOT__DEFAULTS__SYSTEMMESSAGES__0": {
                      "defaultValue": "You are a bot to help with all support requests related to Squidex."
                    },
                    "CHATBOT__DEFAULTS__SYSTEMMESSAGES__1": {
                      "description": "Image Configuration",
                      "defaultValue": "Say hello to the user and explain him about your capabilities in a single, short sentence."
                    },
                    "EMAIL__NOTIFICATIONS__NEWUSERSUBJECT": {
                      "description": "The email subject when a new user is added as contributor to an app.",
                      "defaultValue": "You have been invited to join Project $APP_NAME at Squidex CMS"
                    },
                    "TRANSLATIONS__GOOGLECLOUD__PROJECTID": {
                      "isOptional": true,
                      "description": "The google cloud project id if you want to support automated translations.",
                      "defaultValue": ""
                    },
                    "CACHING__DOMAINOBJECTS__CACHEDURATION": {
                      "description": "The cache duration for domain objects.",
                      "defaultValue": "00:10:00"
                    },
                    "EMAIL__NOTIFICATIONS__NEWUSERTEAMBODY": {
                      "description": "The email body when a new user is added as contributor to a team.",
                      "defaultValue": "Welcome to Squidex\\r\\nDear User,\\r\\n\\r\\n$ASSIGNER_NAME ($ASSIGNER_EMAIL) has invited you to join Team $TEAM_NAME at Squidex Headless CMS. Login with your GitHub, Google or Microsoft credentials to create a new user account and start managing the Team now.\\r\\n\\r\\nThank you very much,\\r\\nThe Squidex Team\\r\\n\\r\\n<<Start now!>> [$UI_URL]"
                    },
                    "IDENTITY__SUPPRESSXFRAMEOPTIONSHEADER": {
                      "description": "Specifies whether to suppress the generation of X-Frame-Options header which is used to prevent ClickJacking.",
                      "defaultValue": "false"
                    },
                    "LOGGING__APPLICATIONINSIGHTS__ENABLED": {
                      "description": "True, to enable application insights integraon.",
                      "defaultValue": "false"
                    },
                    "LOGGING__LOGLEVEL__MICROSOFT.IDENTITY": {
                      "defaultValue": "Warning"
                    },
                    "EMAIL__NOTIFICATIONS__EXISTINGUSERBODY": {
                      "description": "The email body when an existing user is added as contributor to an app.",
                      "defaultValue": "Dear User,\\r\\n\\r\\n$ASSIGNER_NAME ($ASSIGNER_EMAIL) has invited you to join App $APP_NAME at Squidex Headless CMS.\\r\\n\\r\\nLogin or reload the Management UI to see the App.\\r\\n\\r\\nThank you very much,\\r\\nThe Squidex Team\\r\\n\\r\\n<<Start now!>> [$UI_URL]"
                    },
                    "STORE__MONGODB__ATLAS__FULLTEXTENABLED": {
                      "description": "True, if you want to enable mongo atlas for full text search instead of MongoDB.",
                      "defaultValue": "false"
                    },
                    "TEMPLATES__REPOSITORIES__0__CONTENTURL": {
                      "description": "The url to download readme files.",
                      "defaultValue": "https://raw.githubusercontent.com/Squidex/templates/main"
                    },
                    "ASSETSTORE__AZUREBLOB__CONNECTIONSTRING": {
                      "description": "The connection string to the azure storage service.",
                      "defaultValue": "UseDevelopmentStorage=true"
                    },
                    "LOGGING__LOGLEVEL__MICROSOFT.ASPNETCORE": {
                      "defaultValue": "Warning"
                    },
                    "CHATBOT__CONFIGURATIONS__IMAGE__TOOLS__0": {
                      "description": "Text Configuration",
                      "defaultValue": "dall-e"
                    },
                    "EMAIL__NOTIFICATIONS__NEWUSERTEAMSUBJECT": {
                      "description": "The email subject when a new user is added as contributor to a team.",
                      "defaultValue": "You have been invited to join Team $TEAM_NAME at Squidex CMS"
                    },
                    "EMAIL__NOTIFICATIONS__EXISTINGUSERSUBJECT": {
                      "description": "The email subject when an existing user is added as contributor to an app.",
                      "defaultValue": "[Squidex CMS] You have been invited to join App $APP_NAME"
                    },
                    "EMAIL__NOTIFICATIONS__EXISTINGTEAMUSERBODY": {
                      "description": "The email body when an existing user is added as contributor to a team.",
                      "defaultValue": "Dear User,\\r\\n\\r\\n$ASSIGNER_NAME ($ASSIGNER_EMAIL) has invited you to join Team $TEAM_NAME at Squidex Headless CMS.\\r\\n\\r\\nLogin or reload the Management UI to see the Team.\\r\\n\\r\\nThank you very much,\\r\\nThe Squidex Team\\r\\n\\r\\n<<Start now!>> [$UI_URL]"
                    },
                    "ASSETSTORE__AMAZONS3__DISABLEPAYLOADSIGNING": {
                      "description": "True, to disable the SigV4 payload signing. This might be needed for some S3-compatible storage solutions, for example Cloudflare R2.",
                      "defaultValue": "false"
                    },
                    "IDENTITY__OIDCGETCLAIMSFROMUSERINFOENDPOINT": {
                      "defaultValue": "false"
                    },
                    "EMAIL__NOTIFICATIONS__EXISTINGTEAMUSERSUBJECT": {
                      "description": "The email subject when an existing user is added as contributor to a team.",
                      "defaultValue": "[Squidex CMS] You have been invited to join Team $TEAM_NAME"
                    },
                    "LOGGING__APPLICATIONINSIGHTS__CONNECTIONSTRING": {
                      "description": "============================================",
                      "defaultValue": "InstrumentationKey=[key];IngestionEndpoint=https://[datacenter].in.applicationinsights.azure.com/"
                    },
                    "CHATBOT__CONFIGURATIONS__TEXT__SYSTEMMESSAGES__0": {
                      "defaultValue": "You are a bot to generate text content."
                    },
                    "CHATBOT__CONFIGURATIONS__TEXT__SYSTEMMESSAGES__1": {
                      "defaultValue": "Say hello to the user and explain him about your capabilities in a single, short sentence."
                    },
                    "CHATBOT__CONFIGURATIONS__TEXT__SYSTEMMESSAGES__2": {
                      "defaultValue": "When you are asked to generate content such as articles, add placeholders for image, describe and use the following pattern: <IMG>{description}</IMG>. {description} is the generated image description."
                    },
                    "CHATBOT__CONFIGURATIONS__IMAGE__SYSTEMMESSAGES__0": {
                      "defaultValue": "You are a bot to generate images."
                    },
                    "CHATBOT__CONFIGURATIONS__IMAGE__SYSTEMMESSAGES__1": {
                      "defaultValue": "Say hello to the user and explain him the user about your capabilities in a single, short sentence."
                    },
                    "IDENTITY__OIDCOVERRIDEPERMISSIONSWITHCUSTOMCLAIMSONLOGIN": {
                      "defaultValue": "false"
                    }
                  },
                  "networking": {
                    "serviceDomains": {
                      "<hasDomain>": {}
                    }
                  },
                  "volumeMounts": {
                    "80da0899-f06d-43ab-a29c-8de8cf42befc": {
                      "mountPath": "/app/Assets"
                    }
                  }
                },
                "943b083c-c7a7-49e3-a5c7-bc87223df8bc": {
                  "name": "resizer",
                  "source": {
                    "image": "squidex/resizer"
                  }
                },
                "e4fc3299-8c60-4209-9b3e-566627630cb5": {
                  "icon": "https://devicons.railway.app/i/mongodb.svg",
                  "name": "mongo",
                  "build": {},
                  "deploy": {
                    "startCommand": "docker-entrypoint.sh mongod --ipv6 --bind_ip ::,0.0.0.0 --setParameter diagnosticDataCollectionEnabled=false",
                    "requiredMountPath": "/data/db"
                  },
                  "source": {
                    "image": "mongo:8.0"
                  },
                  "variables": {
                    "MONGOHOST": {
                      "isOptional": false,
                      "description": "Railway Private Domain Name.",
                      "defaultValue": "${{ RAILWAY_PRIVATE_DOMAIN }}"
                    },
                    "MONGOPORT": {
                      "isOptional": false,
                      "description": "MongoDB Port.",
                      "defaultValue": "27017"
                    },
                    "MONGOUSER": {
                      "isOptional": false,
                      "description": "Mongodb user.",
                      "defaultValue": "${{ MONGO_INITDB_ROOT_USERNAME }}"
                    },
                    "MONGO_URL": {
                      "isOptional": false,
                      "description": "Private URL to connect to MongoDB.",
                      "defaultValue": "mongodb://${{MONGO_INITDB_ROOT_USERNAME}}:${{MONGO_INITDB_ROOT_PASSWORD}}@${{RAILWAY_PRIVATE_DOMAIN}}:27017"
                    },
                    "MONGOPASSWORD": {
                      "isOptional": false,
                      "description": "Root password.",
                      "defaultValue": "${{ MONGO_INITDB_ROOT_PASSWORD }}"
                    },
                    "MONGO_PUBLIC_URL": {
                      "description": "Public URL to connect to MongoDB, used for Data panel.",
                      "defaultValue": "mongodb://${{MONGO_INITDB_ROOT_USERNAME}}:${{MONGO_INITDB_ROOT_PASSWORD}}@${{RAILWAY_TCP_PROXY_DOMAIN}}:${{RAILWAY_TCP_PROXY_PORT}}"
                    },
                    "MONGO_INITDB_ROOT_PASSWORD": {
                      "isOptional": false,
                      "description": "Root user password, set during initialization.",
                      "defaultValue": "{{MONGO_INITDB_ROOT_PASSWORD}}"
                    },
                    "MONGO_INITDB_ROOT_USERNAME": {
                      "isOptional": false,
                      "description": "User created during initialization, given the root role.",
                      "defaultValue": "mongo"
                    }
                  },
                  "networking": {
                    "tcpProxies": {
                      "27017": {}
                    },
                    "serviceDomains": {}
                  },
                  "volumeMounts": {
                    "e4fc3299-8c60-4209-9b3e-566627630cb5": {
                      "mountPath": "/data/db"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "post_deploy": {},
  "resources": {
    "expected_services": 3,
    "needs_volume": true
  },
  "generated_at": "2026-09-20T10:14:37.339Z",
  "generator_version": "0.1.0",
  "status": "validated",
  "validated_at": "2026-09-18T19:20:38.585Z",
  "success_rate_30d": 1,
  "validation": {
    "last_run_id": "run_c87b8bb69b2443d29f78",
    "checks": [
      {
        "name": "workflow_completed",
        "passed": true
      },
      {
        "name": "all_services_deployed",
        "passed": true
      },
      {
        "name": "stays_up",
        "passed": true
      }
    ],
    "typical_ready_seconds": 81,
    "typical_build_seconds": 0,
    "typical_start_seconds": 10,
    "slowest_service": "squidex"
  }
}
