UNPKG

firebase-tools

Version:
1,406 lines (1,405 loc) 66.2 kB
{ "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "definitions": { "DataConnectSingle": { "additionalProperties": false, "properties": { "postdeploy": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "predeploy": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "source": { "type": "string" } }, "required": [ "source" ], "type": "object" }, "DatabaseSingle": { "additionalProperties": false, "properties": { "postdeploy": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "predeploy": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "rules": { "type": "string" } }, "required": [ "rules" ], "type": "object" }, "ExtensionsConfig": { "additionalProperties": false, "type": "object" }, "FirestoreSingle": { "additionalProperties": false, "properties": { "database": { "type": "string" }, "indexes": { "type": "string" }, "location": { "type": "string" }, "postdeploy": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "predeploy": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "rules": { "type": "string" } }, "type": "object" }, "FrameworksBackendOptions": { "additionalProperties": false, "properties": { "concurrency": { "description": "Number of requests a function can serve at once.", "type": "number" }, "cors": { "description": "If true, allows CORS on requests to this function.\nIf this is a `string` or `RegExp`, allows requests from domains that match the provided value.\nIf this is an `Array`, allows requests from domains matching at least one entry of the array.\nDefaults to true for {@link https.CallableFunction} and false otherwise.", "type": [ "string", "boolean" ] }, "cpu": { "anyOf": [ { "const": "gcf_gen1", "type": "string" }, { "type": "number" } ], "description": "Fractional number of CPUs to allocate to a function." }, "enforceAppCheck": { "description": "Determines whether Firebase AppCheck is enforced. Defaults to false.", "type": "boolean" }, "ingressSettings": { "description": "Ingress settings which control where this function can be called from.", "enum": [ "ALLOW_ALL", "ALLOW_INTERNAL_AND_GCLB", "ALLOW_INTERNAL_ONLY" ], "type": "string" }, "invoker": { "const": "public", "description": "Invoker to set access control on https functions.", "type": "string" }, "labels": { "$ref": "#/definitions/Record<string,string>", "description": "User labels to set on the function." }, "maxInstances": { "description": "Max number of instances to be running in parallel.", "type": "number" }, "memory": { "description": "Amount of memory to allocate to a function.", "enum": [ "128MiB", "16GiB", "1GiB", "256MiB", "2GiB", "32GiB", "4GiB", "512MiB", "8GiB" ], "type": "string" }, "minInstances": { "description": "Min number of actual instances to be running at a given time.", "type": "number" }, "omit": { "description": "If true, do not deploy or emulate this function.", "type": "boolean" }, "preserveExternalChanges": { "description": "Controls whether function configuration modified outside of function source is preserved. Defaults to false.", "type": "boolean" }, "region": { "description": "HTTP functions can override global options and can specify multiple regions to deploy to.", "type": "string" }, "secrets": { "items": { "type": "string" }, "type": "array" }, "serviceAccount": { "description": "Specific service account for the function to run as.", "type": "string" }, "timeoutSeconds": { "description": "Timeout for the function in seconds, possible values are 0 to 540.\nHTTPS functions can specify a higher timeout.", "type": "number" }, "vpcConnector": { "description": "Connect cloud function to specified VPC connector.", "type": "string" }, "vpcConnectorEgressSettings": { "description": "Egress settings for VPC connector.", "enum": [ "ALL_TRAFFIC", "PRIVATE_RANGES_ONLY" ], "type": "string" } }, "type": "object" }, "FunctionConfig": { "additionalProperties": false, "properties": { "codebase": { "type": "string" }, "ignore": { "items": { "type": "string" }, "type": "array" }, "postdeploy": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "predeploy": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "runtime": { "enum": [ "nodejs20", "nodejs22", "python310", "python311", "python312", "python313" ], "type": "string" }, "source": { "type": "string" } }, "type": "object" }, "HostingHeaders": { "anyOf": [ { "additionalProperties": false, "properties": { "glob": { "type": "string" }, "headers": { "items": { "additionalProperties": false, "properties": { "key": { "type": "string" }, "value": { "type": "string" } }, "required": [ "key", "value" ], "type": "object" }, "type": "array" } }, "required": [ "glob", "headers" ], "type": "object" }, { "additionalProperties": false, "properties": { "headers": { "items": { "additionalProperties": false, "properties": { "key": { "type": "string" }, "value": { "type": "string" } }, "required": [ "key", "value" ], "type": "object" }, "type": "array" }, "source": { "type": "string" } }, "required": [ "headers", "source" ], "type": "object" }, { "additionalProperties": false, "properties": { "headers": { "items": { "additionalProperties": false, "properties": { "key": { "type": "string" }, "value": { "type": "string" } }, "required": [ "key", "value" ], "type": "object" }, "type": "array" }, "regex": { "type": "string" } }, "required": [ "headers", "regex" ], "type": "object" } ] }, "HostingRedirects": { "anyOf": [ { "additionalProperties": false, "properties": { "destination": { "type": "string" }, "glob": { "type": "string" }, "type": { "type": "number" } }, "required": [ "destination", "glob" ], "type": "object" }, { "additionalProperties": false, "properties": { "destination": { "type": "string" }, "source": { "type": "string" }, "type": { "type": "number" } }, "required": [ "destination", "source" ], "type": "object" }, { "additionalProperties": false, "properties": { "destination": { "type": "string" }, "regex": { "type": "string" }, "type": { "type": "number" } }, "required": [ "destination", "regex" ], "type": "object" } ] }, "HostingRewrites": { "anyOf": [ { "additionalProperties": false, "properties": { "destination": { "type": "string" }, "glob": { "type": "string" } }, "required": [ "destination", "glob" ], "type": "object" }, { "additionalProperties": false, "properties": { "function": { "type": "string" }, "glob": { "type": "string" }, "region": { "type": "string" } }, "required": [ "function", "glob" ], "type": "object" }, { "additionalProperties": false, "properties": { "function": { "additionalProperties": false, "properties": { "functionId": { "type": "string" }, "pinTag": { "type": "boolean" }, "region": { "type": "string" } }, "required": [ "functionId" ], "type": "object" }, "glob": { "type": "string" } }, "required": [ "function", "glob" ], "type": "object" }, { "additionalProperties": false, "properties": { "glob": { "type": "string" }, "run": { "additionalProperties": false, "properties": { "pinTag": { "type": "boolean" }, "region": { "type": "string" }, "serviceId": { "type": "string" } }, "required": [ "serviceId" ], "type": "object" } }, "required": [ "glob", "run" ], "type": "object" }, { "additionalProperties": false, "properties": { "dynamicLinks": { "type": "boolean" }, "glob": { "type": "string" } }, "required": [ "dynamicLinks", "glob" ], "type": "object" }, { "additionalProperties": false, "properties": { "destination": { "type": "string" }, "source": { "type": "string" } }, "required": [ "destination", "source" ], "type": "object" }, { "additionalProperties": false, "properties": { "function": { "type": "string" }, "region": { "type": "string" }, "source": { "type": "string" } }, "required": [ "function", "source" ], "type": "object" }, { "additionalProperties": false, "properties": { "function": { "additionalProperties": false, "properties": { "functionId": { "type": "string" }, "pinTag": { "type": "boolean" }, "region": { "type": "string" } }, "required": [ "functionId" ], "type": "object" }, "source": { "type": "string" } }, "required": [ "function", "source" ], "type": "object" }, { "additionalProperties": false, "properties": { "run": { "additionalProperties": false, "properties": { "pinTag": { "type": "boolean" }, "region": { "type": "string" }, "serviceId": { "type": "string" } }, "required": [ "serviceId" ], "type": "object" }, "source": { "type": "string" } }, "required": [ "run", "source" ], "type": "object" }, { "additionalProperties": false, "properties": { "dynamicLinks": { "type": "boolean" }, "source": { "type": "string" } }, "required": [ "dynamicLinks", "source" ], "type": "object" }, { "additionalProperties": false, "properties": { "destination": { "type": "string" }, "regex": { "type": "string" } }, "required": [ "destination", "regex" ], "type": "object" }, { "additionalProperties": false, "properties": { "function": { "type": "string" }, "regex": { "type": "string" }, "region": { "type": "string" } }, "required": [ "function", "regex" ], "type": "object" }, { "additionalProperties": false, "properties": { "function": { "additionalProperties": false, "properties": { "functionId": { "type": "string" }, "pinTag": { "type": "boolean" }, "region": { "type": "string" } }, "required": [ "functionId" ], "type": "object" }, "regex": { "type": "string" } }, "required": [ "function", "regex" ], "type": "object" }, { "additionalProperties": false, "properties": { "regex": { "type": "string" }, "run": { "additionalProperties": false, "properties": { "pinTag": { "type": "boolean" }, "region": { "type": "string" }, "serviceId": { "type": "string" } }, "required": [ "serviceId" ], "type": "object" } }, "required": [ "regex", "run" ], "type": "object" }, { "additionalProperties": false, "properties": { "dynamicLinks": { "type": "boolean" }, "regex": { "type": "string" } }, "required": [ "dynamicLinks", "regex" ], "type": "object" } ] }, "HostingSingle": { "additionalProperties": false, "properties": { "appAssociation": { "enum": [ "AUTO", "NONE" ], "type": "string" }, "cleanUrls": { "type": "boolean" }, "frameworksBackend": { "$ref": "#/definitions/FrameworksBackendOptions" }, "headers": { "items": { "$ref": "#/definitions/HostingHeaders" }, "type": "array" }, "i18n": { "additionalProperties": false, "properties": { "root": { "type": "string" } }, "required": [ "root" ], "type": "object" }, "ignore": { "items": { "type": "string" }, "type": "array" }, "postdeploy": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "predeploy": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "public": { "type": "string" }, "redirects": { "items": { "$ref": "#/definitions/HostingRedirects" }, "type": "array" }, "rewrites": { "items": { "$ref": "#/definitions/HostingRewrites" }, "type": "array" }, "site": { "type": "string" }, "source": { "type": "string" }, "target": { "type": "string" }, "trailingSlash": { "type": "boolean" } }, "type": "object" }, "Record<string,string>": { "additionalProperties": false, "type": "object" }, "RemoteConfigConfig": { "additionalProperties": false, "properties": { "postdeploy": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "predeploy": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "template": { "type": "string" } }, "required": [ "template" ], "type": "object" }, "StorageSingle": { "additionalProperties": false, "properties": { "postdeploy": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "predeploy": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "rules": { "type": "string" }, "target": { "type": "string" } }, "required": [ "rules" ], "type": "object" } }, "properties": { "$schema": { "format": "uri", "type": "string" }, "apphosting": { "anyOf": [ { "additionalProperties": false, "properties": { "alwaysDeployFromSource": { "type": "boolean" }, "backendId": { "type": "string" }, "ignore": { "items": { "type": "string" }, "type": "array" }, "rootDir": { "type": "string" } }, "required": [ "backendId", "ignore", "rootDir" ], "type": "object" }, { "items": { "additionalProperties": false, "properties": { "alwaysDeployFromSource": { "type": "boolean" }, "backendId": { "type": "string" }, "ignore": { "items": { "type": "string" }, "type": "array" }, "rootDir": { "type": "string" } }, "required": [ "backendId", "ignore", "rootDir" ], "type": "object" }, "type": "array" } ] }, "database": { "anyOf": [ { "$ref": "#/definitions/DatabaseSingle" }, { "items": { "anyOf": [ { "additionalProperties": false, "properties": { "instance": { "type": "string" }, "postdeploy": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "predeploy": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "rules": { "type": "string" }, "target": { "type": "string" } }, "required": [ "instance", "rules" ], "type": "object" }, { "additionalProperties": false, "properties": { "instance": { "type": "string" }, "postdeploy": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "predeploy": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "rules": { "type": "string" }, "target": { "type": "string" } }, "required": [ "rules", "target" ], "type": "object" } ] }, "type": "array" } ] }, "dataconnect": { "anyOf": [ { "$ref": "#/definitions/DataConnectSingle" }, { "items": { "$ref": "#/definitions/DataConnectSingle" }, "type": "array" } ] }, "emulators": { "additionalProperties": false, "properties": { "apphosting": { "additionalProperties": false, "properties": { "host": { "type": "string" }, "port": { "type": "number" }, "rootDirectory": { "type": "string" }, "startCommand": { "type": "string" }, "startCommandOverride": { "type": "string" } }, "type": "object" }, "auth": { "additionalProperties": false, "properties": { "host": { "type": "string" }, "port": { "type": "number" } }, "type": "object" }, "database": { "additionalProperties": false, "properties": { "host": { "type": "string" }, "port": { "type": "number" } }, "type": "object" }, "dataconnect": { "additionalProperties": false, "properties": { "dataDir": { "type": "string" }, "host": { "type": "string" }, "port": { "type": "number" }, "postgresHost": { "type": "string" }, "postgresPort": { "type": "number" } }, "type": "object" }, "eventarc": { "additionalProperties": false, "properties": { "host": { "type": "string" }, "port": { "type": "number" } }, "type": "object" }, "extensions": { "properties": {}, "type": "object" }, "firestore": { "additionalProperties": false, "properties": { "host": { "type": "string" }, "port": { "type": "number" }, "websocketPort": { "type": "number" } }, "type": "object" }, "functions": { "additionalProperties": false, "properties": { "host": { "type": "string" }, "port": { "type": "number" } }, "type": "object" }, "hosting": { "additionalProperties": false, "properties": { "host": { "type": "string" }, "port": { "type": "number" } }, "type": "object" }, "hub": { "additionalProperties": false, "properties": { "host": { "type": "string" }, "port": { "type": "number" } }, "type": "object" }, "logging": { "additionalProperties": false, "properties": { "host": { "type": "string" }, "port": { "type": "number" } }, "type": "object" }, "pubsub": { "additionalProperties": false, "properties": { "host": { "type": "string" }, "port": { "type": "number" } }, "type": "object" }, "singleProjectMode": { "type": "boolean" }, "storage": { "additionalProperties": false, "properties": { "host": { "type": "string" }, "port": { "type": "number" } }, "type": "object" }, "tasks": { "additionalProperties": false, "properties": { "host": { "type": "string" }, "port": { "type": "number" } }, "type": "object" }, "ui": { "additionalProperties": false, "properties": { "enabled": { "type": "boolean" }, "host": { "type": "string" }, "port": { "type": "number" } }, "type": "object" } }, "type": "object" }, "extensions": { "$ref": "#/definitions/ExtensionsConfig" }, "firestore": { "anyOf": [ { "$ref": "#/definitions/FirestoreSingle" }, { "items": { "anyOf": [ { "additionalProperties": false, "properties": { "database": { "type": "string" }, "indexes": { "type": "string" }, "postdeploy": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "string" } ] }, "predeploy": { "anyOf": [ { "items": { "type": "string" }, "type": "array"