PATCH /v1/storedProcedures/{id}
from metadata.sdk import configure
from metadata.sdk.entities import StoredProcedures
configure(
host="https://your-company.open-metadata.org/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}")
import static org.openmetadata.sdk.fluent.StoredProcedures.*;
// Retrieve, modify, and update
var sp = StoredProcedures.retrieve("770e8400-e29b-41d4-a716-446655440000");
sp.setDescription("Updated: Refreshes materialized analytics views with incremental logic");
var updated = StoredProcedures.update(sp);
# Update by ID
curl -X PATCH "{base_url}/api/v1/storedProcedures/d02b24fa-a246-4563-adf1-9ad21f251c0e" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated procedure to calculate average of integer arrays"}
]'
# Update by name
curl -X PATCH "{base_url}/api/v1/storedProcedures/name/sample_data.ecommerce_db.shopify.calculate_average" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated procedure to calculate average of integer arrays"}
]'
{
"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 stored procedure properties using JSON Patch
PATCH
/
v1
/
storedProcedures
/
{id}
PATCH /v1/storedProcedures/{id}
from metadata.sdk import configure
from metadata.sdk.entities import StoredProcedures
configure(
host="https://your-company.open-metadata.org/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}")
import static org.openmetadata.sdk.fluent.StoredProcedures.*;
// Retrieve, modify, and update
var sp = StoredProcedures.retrieve("770e8400-e29b-41d4-a716-446655440000");
sp.setDescription("Updated: Refreshes materialized analytics views with incremental logic");
var updated = StoredProcedures.update(sp);
# Update by ID
curl -X PATCH "{base_url}/api/v1/storedProcedures/d02b24fa-a246-4563-adf1-9ad21f251c0e" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated procedure to calculate average of integer arrays"}
]'
# Update by name
curl -X PATCH "{base_url}/api/v1/storedProcedures/name/sample_data.ecommerce_db.shopify.calculate_average" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated procedure to calculate average of integer arrays"}
]'
{
"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
UUID of the stored procedure to update.
Update by Name
UsePATCH /v1/storedProcedures/name/{fqn} to update by fully qualified name.
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.Updated description in Markdown format.
Updated display name.
Updated domain FQN.
Updated custom property values.
PATCH /v1/storedProcedures/{id}
from metadata.sdk import configure
from metadata.sdk.entities import StoredProcedures
configure(
host="https://your-company.open-metadata.org/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}")
import static org.openmetadata.sdk.fluent.StoredProcedures.*;
// Retrieve, modify, and update
var sp = StoredProcedures.retrieve("770e8400-e29b-41d4-a716-446655440000");
sp.setDescription("Updated: Refreshes materialized analytics views with incremental logic");
var updated = StoredProcedures.update(sp);
# Update by ID
curl -X PATCH "{base_url}/api/v1/storedProcedures/d02b24fa-a246-4563-adf1-9ad21f251c0e" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated procedure to calculate average of integer arrays"}
]'
# Update by name
curl -X PATCH "{base_url}/api/v1/storedProcedures/name/sample_data.ecommerce_db.shopify.calculate_average" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated procedure to calculate average of integer arrays"}
]'
{
"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
Unique identifier for the stored procedure (UUID format).
Stored procedure name.
Fully qualified name in format
service.database.schema.storedProcedure.Updated description.
Incremented version number.
Error Handling
| Code | Error Type | Description |
|---|---|---|
400 | BAD_REQUEST | Invalid JSON patch or malformed request |
401 | UNAUTHORIZED | Invalid or missing authentication token |
403 | FORBIDDEN | User lacks permission to update this stored procedure |
404 | NOT_FOUND | Stored procedure with given ID or FQN does not exist |
409 | CONFLICT | Concurrent modification detected |
Was this page helpful?
⌘I