From 3c12dda8564c841881d0a728ad6e926ac0ee9d4f Mon Sep 17 00:00:00 2001 From: Sameer Kankute Date: Thu, 5 Feb 2026 09:21:20 +0530 Subject: [PATCH] =?UTF-8?q?bump:=20litellm-proxy-extras=200.4.29=20?= =?UTF-8?q?=E2=86=92=200.4.30?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add allow_team_guardrail_config field to TeamTable and DeletedTeamTable - Add migration 20260205091235_allow_team_guardrail_config --- ...litellm_proxy_extras-0.4.30-py3-none-any.whl | Bin 0 -> 51217 bytes .../dist/litellm_proxy_extras-0.4.30.tar.gz | Bin 0 -> 23752 bytes .../migration.sql | 6 ++++++ litellm-proxy-extras/pyproject.toml | 4 ++-- pyproject.toml | 2 +- requirements.txt | 2 +- schema.prisma | 2 ++ 7 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 litellm-proxy-extras/dist/litellm_proxy_extras-0.4.30-py3-none-any.whl create mode 100644 litellm-proxy-extras/dist/litellm_proxy_extras-0.4.30.tar.gz create mode 100644 litellm-proxy-extras/litellm_proxy_extras/migrations/20260205091235_allow_team_guardrail_config/migration.sql diff --git a/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.30-py3-none-any.whl b/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.30-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..383f9b7b43ffce0cbeb9041dd657e016abc1e1db GIT binary patch literal 51217 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 Ar~m)} literal 0 HcmV?d00001 diff --git a/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.30.tar.gz b/litellm-proxy-extras/dist/litellm_proxy_extras-0.4.30.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..484c28ba7b1ccc0b02ef5b00bed2e8550f7ce38e GIT binary patch literal 23752 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
O02j5a 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 W$^8G%&G)BwxF5tOk{@6QAN~h@a3?bW literal 0 HcmV?d00001 diff --git a/litellm-proxy-extras/litellm_proxy_extras/migrations/20260205091235_allow_team_guardrail_config/migration.sql b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260205091235_allow_team_guardrail_config/migration.sql new file mode 100644 index 0000000000..000b96b3b8 --- /dev/null +++ b/litellm-proxy-extras/litellm_proxy_extras/migrations/20260205091235_allow_team_guardrail_config/migration.sql @@ -0,0 +1,6 @@ +-- AlterTable +ALTER TABLE "LiteLLM_DeletedTeamTable" ADD COLUMN "allow_team_guardrail_config" BOOLEAN NOT NULL DEFAULT false; + +-- AlterTable +ALTER TABLE "LiteLLM_TeamTable" ADD COLUMN "allow_team_guardrail_config" BOOLEAN NOT NULL DEFAULT false; + diff --git a/litellm-proxy-extras/pyproject.toml b/litellm-proxy-extras/pyproject.toml index fb6996b71d..d43b591686 100644 --- a/litellm-proxy-extras/pyproject.toml +++ b/litellm-proxy-extras/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "litellm-proxy-extras" -version = "0.4.29" +version = "0.4.30" description = "Additional files for the LiteLLM Proxy. Reduces the size of the main litellm package." authors = ["BerriAI"] readme = "README.md" @@ -22,7 +22,7 @@ requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.commitizen] -version = "0.4.29" +version = "0.4.30" version_files = [ "pyproject.toml:version", "../requirements.txt:litellm-proxy-extras==", diff --git a/pyproject.toml b/pyproject.toml index 9832ca483d..80841912c5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -61,7 +61,7 @@ boto3 = { version = "1.40.76", optional = true } redisvl = {version = "^0.4.1", optional = true, markers = "python_version >= '3.9' and python_version < '3.14'"} mcp = {version = ">=1.25.0,<2.0.0", optional = true, python = ">=3.10"} a2a-sdk = {version = "^0.3.22", optional = true, python = ">=3.10"} -litellm-proxy-extras = {version = "0.4.29", optional = true} +litellm-proxy-extras = {version = "0.4.30", optional = true} rich = {version = "13.7.1", optional = true} litellm-enterprise = {version = "0.1.27", optional = true} diskcache = {version = "^5.6.1", optional = true} diff --git a/requirements.txt b/requirements.txt index 69768b6c1f..aca27bf284 100644 --- a/requirements.txt +++ b/requirements.txt @@ -50,7 +50,7 @@ sentry_sdk==2.21.0 # for sentry error handling detect-secrets==1.5.0 # Enterprise - secret detection / masking in LLM requests cryptography==44.0.1 tzdata==2025.1 # IANA time zone database -litellm-proxy-extras==0.4.29 # for proxy extras - e.g. prisma migrations +litellm-proxy-extras==0.4.30 # for proxy extras - e.g. prisma migrations llm-sandbox==0.3.31 # for skill execution in sandbox ### LITELLM PACKAGE DEPENDENCIES python-dotenv==1.0.1 # for env diff --git a/schema.prisma b/schema.prisma index b118400b62..03b910db85 100644 --- a/schema.prisma +++ b/schema.prisma @@ -129,6 +129,7 @@ model LiteLLM_TeamTable { team_member_permissions String[] @default([]) policies String[] @default([]) model_id Int? @unique // id for LiteLLM_ModelTable -> stores team-level model aliases + allow_team_guardrail_config Boolean @default(false) // if true, team admin can configure guardrails for this team litellm_organization_table LiteLLM_OrganizationTable? @relation(fields: [organization_id], references: [organization_id]) litellm_model_table LiteLLM_ModelTable? @relation(fields: [model_id], references: [id]) object_permission LiteLLM_ObjectPermissionTable? @relation(fields: [object_permission_id], references: [object_permission_id]) @@ -160,6 +161,7 @@ model LiteLLM_DeletedTeamTable { team_member_permissions String[] @default([]) policies String[] @default([]) model_id Int? // id for LiteLLM_ModelTable -> stores team-level model aliases + allow_team_guardrail_config Boolean @default(false) // Original timestamps from team creation/updates created_at DateTime? @map("created_at")