Skip to main content
PATCH
https://sandbox.getcollate.io/api
/
v1
/
storedProcedures
/
{id}
PATCH /v1/storedProcedures/{id}
from metadata.sdk import configure
from metadata.sdk.entities import StoredProcedures

configure(
    host="https://your-company.getcollate.io/api",
    jwt_token="your-jwt-token"
)

# Retrieve, modify, and update
sp = StoredProcedures.retrieve("770e8400-e29b-41d4-a716-446655440000")
sp.description = "Updated: Refreshes materialized analytics views with incremental logic"
sp.storedProcedureCode = {
    "code": "CREATE OR REPLACE PROCEDURE usp_refresh_analytics() ... -- v2",
    "language": "SQL"
}
updated = StoredProcedures.update(sp)

print(f"Updated to version {updated.version}")
{
  "id": "d02b24fa-a246-4563-adf1-9ad21f251c0e",
  "name": "calculate_average",
  "fullyQualifiedName": "sample_data.ecommerce_db.shopify.calculate_average",
  "description": "Updated procedure to calculate average of integer arrays",
  "storedProcedureCode": {
    "code": "CREATE OR REPLACE PROCEDURE calculate_average(numbers INT ARRAY) RETURNS FLOAT NOT NULL LANGUAGE SQL AS $$DECLARE sum_val INT = 0;count_val INT = 0;average_val FLOAT;BEGIN\n  FOR num IN ARRAY numbers DO sum_val := sum_val + num;\n  count_val := count_val + 1;\nEND FOR;\nIF count_val = 0 THEN\n  average_val := 0.0;\nELSE\n  average_val := sum_val / count_val;\nEND IF;\nRETURN average_val;\nEND;$$;"
  },
  "version": 0.2,
  "updatedAt": 1769982660822,
  "updatedBy": "admin",
  "storedProcedureType": "StoredProcedure",
  "href": "http://localhost:8585/api/v1/storedProcedures/d02b24fa-a246-4563-adf1-9ad21f251c0e",
  "databaseSchema": {
    "id": "4dd30184-009c-4792-b296-9562eaed651f",
    "type": "databaseSchema",
    "name": "shopify",
    "fullyQualifiedName": "sample_data.ecommerce_db.shopify",
    "description": "This **mock** database contains schema related to shopify sales and orders with related dimension tables.",
    "displayName": "shopify",
    "deleted": false,
    "href": "http://localhost:8585/api/v1/databaseSchemas/4dd30184-009c-4792-b296-9562eaed651f"
  },
  "database": {
    "id": "0be090de-0941-48c4-af49-a6157c91cda0",
    "type": "database",
    "name": "ecommerce_db",
    "fullyQualifiedName": "sample_data.ecommerce_db",
    "description": "This **mock** database contains schemas related to shopify sales and orders with related dimension tables.",
    "displayName": "ecommerce_db",
    "deleted": false,
    "href": "http://localhost:8585/api/v1/databases/0be090de-0941-48c4-af49-a6157c91cda0"
  },
  "serviceType": "BigQuery",
  "deleted": false,
  "owners": [],
  "tags": [],
  "domains": [],
  "processedLineage": false,
  "entityStatus": "Unprocessed"
}

Update a Stored Procedure

Update a stored procedure’s properties using JSON Merge Patch. You can update by ID or by fully qualified name.

Update by ID

id
string
required
UUID of the stored procedure to update.

Update by Name

Use PATCH /v1/storedProcedures/name/{fqn} to update by fully qualified name.
fqn
string
required
Fully qualified name of the stored procedure (e.g., snowflake_prod.analytics.public.usp_refresh_analytics).

Body Parameters

Send a JSON object with the fields to update. Only provided fields are changed.
description
string
Updated description in Markdown format.
displayName
string
Updated display name.
storedProcedureCode
object
Updated source code and language.
owners
array
Updated list of owner references.
tags
array
Updated classification tags.
domain
string
Updated domain FQN.
extension
object
Updated custom property values.
PATCH /v1/storedProcedures/{id}
from metadata.sdk import configure
from metadata.sdk.entities import StoredProcedures

configure(
    host="https://your-company.getcollate.io/api",
    jwt_token="your-jwt-token"
)

# Retrieve, modify, and update
sp = StoredProcedures.retrieve("770e8400-e29b-41d4-a716-446655440000")
sp.description = "Updated: Refreshes materialized analytics views with incremental logic"
sp.storedProcedureCode = {
    "code": "CREATE OR REPLACE PROCEDURE usp_refresh_analytics() ... -- v2",
    "language": "SQL"
}
updated = StoredProcedures.update(sp)

print(f"Updated to version {updated.version}")
{
  "id": "d02b24fa-a246-4563-adf1-9ad21f251c0e",
  "name": "calculate_average",
  "fullyQualifiedName": "sample_data.ecommerce_db.shopify.calculate_average",
  "description": "Updated procedure to calculate average of integer arrays",
  "storedProcedureCode": {
    "code": "CREATE OR REPLACE PROCEDURE calculate_average(numbers INT ARRAY) RETURNS FLOAT NOT NULL LANGUAGE SQL AS $$DECLARE sum_val INT = 0;count_val INT = 0;average_val FLOAT;BEGIN\n  FOR num IN ARRAY numbers DO sum_val := sum_val + num;\n  count_val := count_val + 1;\nEND FOR;\nIF count_val = 0 THEN\n  average_val := 0.0;\nELSE\n  average_val := sum_val / count_val;\nEND IF;\nRETURN average_val;\nEND;$$;"
  },
  "version": 0.2,
  "updatedAt": 1769982660822,
  "updatedBy": "admin",
  "storedProcedureType": "StoredProcedure",
  "href": "http://localhost:8585/api/v1/storedProcedures/d02b24fa-a246-4563-adf1-9ad21f251c0e",
  "databaseSchema": {
    "id": "4dd30184-009c-4792-b296-9562eaed651f",
    "type": "databaseSchema",
    "name": "shopify",
    "fullyQualifiedName": "sample_data.ecommerce_db.shopify",
    "description": "This **mock** database contains schema related to shopify sales and orders with related dimension tables.",
    "displayName": "shopify",
    "deleted": false,
    "href": "http://localhost:8585/api/v1/databaseSchemas/4dd30184-009c-4792-b296-9562eaed651f"
  },
  "database": {
    "id": "0be090de-0941-48c4-af49-a6157c91cda0",
    "type": "database",
    "name": "ecommerce_db",
    "fullyQualifiedName": "sample_data.ecommerce_db",
    "description": "This **mock** database contains schemas related to shopify sales and orders with related dimension tables.",
    "displayName": "ecommerce_db",
    "deleted": false,
    "href": "http://localhost:8585/api/v1/databases/0be090de-0941-48c4-af49-a6157c91cda0"
  },
  "serviceType": "BigQuery",
  "deleted": false,
  "owners": [],
  "tags": [],
  "domains": [],
  "processedLineage": false,
  "entityStatus": "Unprocessed"
}

Returns

Returns the updated stored procedure object with the new version number.

Response

id
string
Unique identifier for the stored procedure (UUID format).
name
string
Stored procedure name.
fullyQualifiedName
string
Fully qualified name in format service.database.schema.storedProcedure.
description
string
Updated description.
version
number
Incremented version number.

Error Handling

CodeError TypeDescription
400BAD_REQUESTInvalid JSON patch or malformed request
401UNAUTHORIZEDInvalid or missing authentication token
403FORBIDDENUser lacks permission to update this stored procedure
404NOT_FOUNDStored procedure with given ID or FQN does not exist
409CONFLICTConcurrent modification detected