Skip to content

Update a function

patch/v1/projects/{ref}/functions/{function_slug}

Updates a function with the specified slug and project.

OAuth scopes

  • edge_functions:write

The fine-grained token must include the following permissions to access this endpoint:

  • edge_functions_write

Path parameters

  • ref
    Required
    string

    Project ref

  • function_slug
    Required
    string

    Function slug

Query parameters

  • slug
    Optional
    string
  • name
    Optional
    string
  • verify_jwt
    Optional
    string
  • import_map
    Optional
    string
  • entrypoint_path
    Optional
    string
  • import_map_path
    Optional
    string
  • ezbr_sha256
    Optional
    string

Body

string

Raw Brotli-compressed ESZIP binary file.

Validation requirements - The file must start with the four magic bytes EZBR (hex: 45 5A 42 52).

  • The ezbr_sha256 query parameter must contain the SHA-256 hash of the uploaded ESZIP payload.

Example

import { readFile } from 'node:fs/promises';
import { brotliCompress } from 'node:zlib';
import { promisify } from 'node:util';
import { createHash } from 'node:crypto';
const compress = promisify(brotliCompress);
const marker = Buffer.from('EZBR', 'ascii');
const file = await readFile('./function.eszip');
const compressed = await compress(file);
const payload = Buffer.concat([marker, compressed]);
const ezbr_sha256 = createHash('sha256')
.update(payload)
.digest('hex');
console.log(ezbr_sha256);

Response codes

  • 200
  • 401
  • 403
  • 429
  • 500

Response (200)

{
"id": "lorem",
"slug": "lorem",
"name": "lorem",
"status": "ACTIVE",
"version": -9007199254740991,
"created_at": -9007199254740991,
"updated_at": -9007199254740991,
"verify_jwt": true,
"import_map": true,
"entrypoint_path": "lorem",
"import_map_path": "lorem",
"ezbr_sha256": "lorem"
}
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"ACTIVE",
"REMOVED",
"THROTTLED"
]
},
"version": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"created_at": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"format": "int64"
},
"updated_at": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"format": "int64"
},
"verify_jwt": {
"type": "boolean"
},
"import_map": {
"type": "boolean"
},
"entrypoint_path": {
"type": "string"
},
"import_map_path": {
"type": "string"
},
"ezbr_sha256": {
"type": "string"
}
},
"required": [
"id",
"slug",
"name",
"status",
"version",
"created_at",
"updated_at"
]
}