Couchbase · Schema

EventingFunction

Eventing Function definition

AnalyticsApp ServicesBackupCapellaCloudDatabaseDBaaSEventingFull-Text SearchGatewayJSONMobileNoSQLReplicationSQL++SyncVector SearchXDCR

Properties

Name Type Description
appname string Name of the Eventing Function
appcode string JavaScript handler code for the function
depcfg object Dependency configuration including bindings
settings object Function deployment settings
function_scope object Scope of the function definition
View JSON Schema on GitHub

JSON Schema

couchbase-eventingfunction-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/EventingFunction",
  "title": "EventingFunction",
  "type": "object",
  "description": "Eventing Function definition",
  "required": [
    "appname",
    "appcode"
  ],
  "properties": {
    "appname": {
      "type": "string",
      "description": "Name of the Eventing Function"
    },
    "appcode": {
      "type": "string",
      "description": "JavaScript handler code for the function"
    },
    "depcfg": {
      "type": "object",
      "description": "Dependency configuration including bindings",
      "properties": {
        "buckets": {
          "type": "array",
          "description": "Bucket bindings for the function",
          "items": {
            "type": "object",
            "properties": {
              "alias": {
                "type": "string",
                "description": "Alias name used in handler code"
              },
              "bucket_name": {
                "type": "string",
                "description": "Name of the bound bucket"
              },
              "scope_name": {
                "type": "string",
                "description": "Name of the scope"
              },
              "collection_name": {
                "type": "string",
                "description": "Name of the collection"
              },
              "access": {
                "type": "string",
                "description": "Access level for the bucket binding",
                "enum": [
                  "r",
                  "rw"
                ]
              }
            }
          }
        },
        "curl": {
          "type": "array",
          "description": "cURL bindings for external HTTP calls",
          "items": {
            "type": "object",
            "properties": {
              "hostname": {
                "type": "string",
                "description": "URL of the external endpoint"
              },
              "value": {
                "type": "string",
                "description": "Alias name used in handler code"
              },
              "auth_type": {
                "type": "string",
                "description": "Authentication type",
                "enum": [
                  "no-auth",
                  "basic",
                  "bearer",
                  "digest"
                ]
              },
              "allow_cookies": {
                "type": "boolean",
                "description": "Whether to allow cookies"
              },
              "validate_ssl_certificate": {
                "type": "boolean",
                "description": "Whether to validate SSL certificates"
              }
            }
          }
        },
        "constants": {
          "type": "array",
          "description": "Constant bindings",
          "items": {
            "type": "object",
            "properties": {
              "value": {
                "type": "string",
                "description": "Alias name"
              },
              "literal": {
                "type": "string",
                "description": "Constant value"
              }
            }
          }
        },
        "source_bucket": {
          "type": "string",
          "description": "Source bucket for mutations"
        },
        "source_scope": {
          "type": "string",
          "description": "Source scope for mutations"
        },
        "source_collection": {
          "type": "string",
          "description": "Source collection for mutations"
        },
        "metadata_bucket": {
          "type": "string",
          "description": "Metadata bucket for checkpoints"
        },
        "metadata_scope": {
          "type": "string",
          "description": "Metadata scope for checkpoints"
        },
        "metadata_collection": {
          "type": "string",
          "description": "Metadata collection for checkpoints"
        }
      }
    },
    "settings": {
      "type": "object",
      "description": "Function deployment settings",
      "properties": {
        "dcp_stream_boundary": {
          "type": "string",
          "description": "Starting point for processing mutations",
          "enum": [
            "everything",
            "from_now"
          ]
        },
        "deployment_status": {
          "type": "boolean",
          "description": "Whether the function is deployed"
        },
        "processing_status": {
          "type": "boolean",
          "description": "Whether the function is processing mutations"
        },
        "log_level": {
          "type": "string",
          "description": "Log level for the function",
          "enum": [
            "INFO",
            "ERROR",
            "WARNING",
            "DEBUG",
            "TRACE"
          ]
        },
        "language_compatibility": {
          "type": "string",
          "description": "Language compatibility version"
        },
        "execution_timeout": {
          "type": "integer",
          "description": "Maximum execution time for a single handler invocation in seconds"
        },
        "timer_context_size": {
          "type": "integer",
          "description": "Maximum size of timer context in bytes"
        },
        "worker_count": {
          "type": "integer",
          "description": "Number of worker threads"
        },
        "num_timer_partitions": {
          "type": "integer",
          "description": "Number of timer partitions"
        }
      }
    },
    "function_scope": {
      "type": "object",
      "description": "Scope of the function definition",
      "properties": {
        "bucket": {
          "type": "string",
          "description": "Bucket for the function scope"
        },
        "scope": {
          "type": "string",
          "description": "Scope name"
        }
      }
    }
  }
}