Releases: truefoundry/truefoundry-python-sdk
Release list
v0.4.0
🚨 Breaking Changes
1. Client Methods Removed
| Method | Notes |
|---|---|
client.internal.ml.apply(manifest) |
removed (returned ApplyMlEntityResponse) |
client.internal.ml.delete(manifest) |
removed |
Only the
client.internal.mlsub-client was removed.client.users.*(including
get_teams/get_resources/get_permissions),client.internal.users, and
client.internal.ai_gatewayare all still present in this release.
2. Client Method Parameters Removed
client.teams.list() — the type filter ("team" / "sso-team", typed
TeamsListRequestType) was removed. role and attributes were added (see New Features).
3. Client Parameter Type Changes
| Method | Param | Old | New |
|---|---|---|---|
users.update_roles() |
resource_type |
Optional[str] |
Optional[ResourceType] |
applications.list() |
application_type |
Optional[str] |
Optional[ApplicationType] |
logs.get() |
start_ts |
Optional[int] |
Optional[str] |
logs.get() |
end_ts |
Optional[int] |
Optional[str] |
# Before
client.logs.get(..., start_ts=1779262323000000000, end_ts=1779262333000000000)
# After
client.logs.get(..., start_ts="1779262323000000000", end_ts="1779262333000000000")4. Client Return Type Changes
| Method | Old Return | New Return |
|---|---|---|
clusters.delete() |
ClustersDeleteResponse |
DeleteClusterResponse |
workspaces.delete() |
WorkspacesDeleteResponse |
DeleteWorkspaceResponse |
5. Types Removed
These exported classes no longer exist (import will fail):
| Removed Type | Notes |
|---|---|
ApplyMlEntityResponse, ApplyMlEntityResponseData |
internal.ml removed |
BaseArtifactVersionManifest |
|
HttpValidationError, ValidationError, ValidationErrorLocItem |
error models |
LogsFilterQuery, LogsFilterQueryType |
log filtering now a JSON string |
ChatPromptManifestMessagesItem |
renamed → ChatMessageTurn (§6) |
ClustersDeleteResponse, WorkspacesDeleteResponse |
renamed (§6 / §4) |
TeamsListRequestType |
teams.list() type filter removed |
PangeaGuardrailConfig, PangeaGuardrailConfigConfig, PangeaGuardrailConfigOperation, PangeaKeyAuth, PangeaGuardType |
renamed → CrowdStrike AIDR (§6) |
TrueFoundryAgentManifestResponseFormat, TrueFoundryAgentManifestModelParams |
renamed (§6) |
TrueFoundryAgentManifestModelParamsReasoningEffort, TrueFoundryAgentManifestSandbox, TrueFoundryAgentMcpTool |
agent manifest restructured |
6. Types & Enums Renamed
Importing/type-referencing the old names breaks. Wire values are unchanged unless noted.
| Old Name | New Name |
|---|---|
ChatPromptManifestMessagesItem |
ChatMessageTurn |
TrueFoundryAgentManifestResponseFormat |
TrueFoundryAgentResponseFormat |
TrueFoundryAgentManifestModelParams |
TrueFoundryAgentModelParams |
ClustersDeleteResponse |
DeleteClusterResponse |
WorkspacesDeleteResponse |
DeleteWorkspaceResponse |
Pangea guardrail → CrowdStrike AIDR (full rebrand):
| Old | New |
|---|---|
PangeaGuardrailConfig |
CrowdStrikeAidrGuardrailConfig |
PangeaGuardrailConfigConfig |
CrowdStrikeAidrGuardrailConfigConfig |
PangeaGuardrailConfigOperation |
CrowdStrikeAidrGuardrailConfigOperation |
PangeaKeyAuth |
CrowdStrikeAidrKeyAuth |
discriminator "integration/guardrail-config/pangea" |
"integration/guardrail-config/crowdstrike-aidr" |
The Pangea rename is breaking on the wire — persisted configs with
type: integration/guardrail-config/pangeawill no longer deserialize.
7. Type Fields Removed
| Type | Removed Fields |
|---|---|
ArtifactVersion, ModelVersion, PromptVersion, InternalArtifactVersion, InternalModelVersion |
version_alias |
BaseArtifactVersion |
id, fqn, created_at, updated_at, created_by_subject, ml_repo_id, manifest (now the manifest base: name/metadata/ml_repo/version) |
AgentSkill |
description, tags, examples, input_modes, output_modes (moved to A2AAgentSkill; AgentSkill is now an artifact-style entity) |
TrueFoundryAgentManifest |
instruction, iteration_limit, model_params, sandbox |
TrueFoundryAgentMcpServer |
deferred, tools |
TrueFoundryAgentSkill |
preload_skill_md |
UserMetadata |
is_primary_sso |
8. Field Type Changes
Now required (was optional):
| Type | Field | Old | New |
|---|---|---|---|
ArtifactManifest |
step |
Optional[int] |
int (default 0) |
ModelManifest |
step |
Optional[int] |
int (default 0) |
Now optional (was required):
| Type | Field | Old | New |
|---|---|---|---|
AzureOpenAiModel |
deployment_type |
AzureOpenAiModelDeploymentType |
Optional[...] |
OpenaiProviderAccount |
auth_data |
OpenaiApiKeyAuth |
Optional[OpenaiApiKeyAuth] |
Environment |
priority |
float |
Optional[float] |
Referenced type changed:
| Type | Field | Old | New |
|---|---|---|---|
Artifact |
type |
ArtifactType |
Optional[Literal["artifact"]] |
Artifact |
latest_version |
Optional[BaseArtifactVersion] |
Optional[ArtifactVersion] |
ChatPromptManifest |
messages |
List[ChatPromptManifestMessagesItem] |
List[ChatMessageTurn] |
Deployment |
application |
Optional[Application] |
Optional[ApplicationSummary] |
BitbucketProviderAccount |
integrations |
List[BitbucketIntegration] |
List[BitbucketIntegrations] |
PromptSource |
skills |
List[AgentSkill] |
List[A2AAgentSkill] |
PersonalAccessTokenManifest |
owned_by (ownedBy) |
Optional[OwnedBy] |
Optional[VirtualAccountOwnedBy] |
TrueFoundryAgentManifest |
model |
str |
TrueFoundryAgentModel |
TrueFoundryAgentManifest |
response_format |
Optional[TrueFoundryAgentManifestResponseFormat] |
Optional[TrueFoundryAgentResponseFormat] |
9. Enums Removed
| Removed Enum | Members it had |
|---|---|
LogsFilterQueryType |
REGEX, SUBSTRING, IGNORE_CASE_SUBSTRING |
TeamsListRequestType |
team, sso-team |
TrueFoundryAgentManifestModelParamsReasoningEffort |
NONE, MINIMAL, LOW, MEDIUM, HIGH |
PangeaGuardType |
TEXT_GUARD, PII |
✨ New Features
New Resource Clients
| Client | Methods |
|---|---|
client.agents |
list, create_or_update, get, delete |
client.agent_versions |
list |
client.runs |
create, get, update, delete, search, get_metric_history, list_metric_history, log_metric, log_parameter, set_tag, delete_tag, log_batch |
New Client Methods
client.teams.list_members(id, *, limit=100, offset=0, filter=None)→SyncPager[TeamSubjectRow, ListTeamMembersResponse]client.teams.list_managers(id, *, limit=100, offset=0, filter=None)→SyncPager[TeamSubjectRow, ListTeamManagersResponse]client.internal.ai_gateway.get_budget_usage(...)
New Optional Client Parameters
| Method | New Param | Type |
|---|---|---|
workspaces.list(), ml_repos.list(), clusters.list(), clusters.get_addons(), secret_groups.list(), teams.list() |
attributes |
Optional[Union[str, Sequence[str]]] |
teams.list() |
role |
Optional[Literal["manager"]] |
artifact_versions.list() |
artifact_types |
Optional[Sequence[ArtifactType]] |
secret_groups.delete() |
force_delete |
Optional[bool] |
personal_access_tokens.create() |
team_name, token_type |
str, CreatePersonalAccessTokenRequestTokenType |
personal_access_tokens.get() |
team_name |
Optional[str] |
Notable New Types
- Agents / Runs:
Agent,AgentVersion,Run,RunData,RunInfo,RunParam,RunTag,
MetricCollection,A2AAgentSkill,ChatMessageTurn, and theTrueFoundryAgentConfig
family (compaction / sandbox / context-management / response-format / sub-agents configs),
TrueFoundryAgentModel,TrueFoundryAgentModelParams,TrueFoundryAgentResponseFormat. - Budget v2:
BudgetV2*family,TeamBudgetConfig,TenantBudgetConfig(+ mode enums). - New provider integrations: AWS Bedrock Mantle, AWS Claude Platform, Smallest AI, Wafer,
Microsoft Teams (MsTeams*). - Guardrails:
CrowdStrikeAidrGuardrailConfig(replaces Pangea),TfyMetadataGuardrailConfig. - Identity:
AgentIdentityManifest/Config,IdentityProviderBackedIdentity,
TruefoundryBackedIdentity,JwtTokenType, token-type enums on PAT / virtual-account manifests. - Snowflake / Flyte task templates:
SnowflakeConfig,SnowflakeSql,
NativeSnowflakeFlyteTaskTemplate,TruefoundryFlyteTaskTemplate. - Misc:
ApplicationSummary,ResourceType,SessionActor,InternalServerError,
McpToolAnnotations,GuardrailSettings,TfyManagedMcpServerManifest.
⚙️ Non-Breaking Adjustments
int → float widenings (accept both; only matters for strict type-checkers):
Artifact/Model/Prompt.run_steps items, Metric.step/timestamp, FileInfo.file_size,
InternalArtifactVersion/InternalModelVersion.artifact_size, CreateMultiPartUploadRequest.num_parts,
ListFilesRequest.limit.
Widened optionality: ChatPromptManifest.variables → Dict[str, Optional[str]];
MlRepo.artifact_type_counts values → Optional[int].
Docs only: description strings were added to many existing fields (Team, VirtualAccount,
Workspace, Deployment, Application, GatewayConfiguration, …) — no type or optionality change.
**Preserved...
v0.4.0-rc.2
🚨 Breaking Changes
1. Client Methods Removed
| Method | Notes |
|---|---|
client.internal.ml.apply(manifest) |
removed (returned ApplyMlEntityResponse) |
client.internal.ml.delete(manifest) |
removed |
Only the
client.internal.mlsub-client was removed.client.users.*(including
get_teams/get_resources/get_permissions),client.internal.users, and
client.internal.ai_gatewayare all still present in this release.
2. Client Method Parameters Removed
client.teams.list() — the type filter ("team" / "sso-team", typed
TeamsListRequestType) was removed. role and attributes were added (see New Features).
3. Client Parameter Type Changes
| Method | Param | Old | New |
|---|---|---|---|
users.update_roles() |
resource_type |
Optional[str] |
Optional[ResourceType] |
applications.list() |
application_type |
Optional[str] |
Optional[ApplicationType] |
logs.get() |
start_ts |
Optional[int] |
Optional[str] |
logs.get() |
end_ts |
Optional[int] |
Optional[str] |
# Before
client.logs.get(..., start_ts=1779262323000000000, end_ts=1779262333000000000)
# After
client.logs.get(..., start_ts="1779262323000000000", end_ts="1779262333000000000")4. Client Return Type Changes
| Method | Old Return | New Return |
|---|---|---|
clusters.delete() |
ClustersDeleteResponse |
DeleteClusterResponse |
workspaces.delete() |
WorkspacesDeleteResponse |
DeleteWorkspaceResponse |
5. Types Removed
These exported classes no longer exist (import will fail):
| Removed Type | Notes |
|---|---|
ApplyMlEntityResponse, ApplyMlEntityResponseData |
internal.ml removed |
BaseArtifactVersionManifest |
|
HttpValidationError, ValidationError, ValidationErrorLocItem |
error models |
LogsFilterQuery, LogsFilterQueryType |
log filtering now a JSON string |
ChatPromptManifestMessagesItem |
renamed → ChatMessageTurn (§6) |
ClustersDeleteResponse, WorkspacesDeleteResponse |
renamed (§6 / §4) |
TeamsListRequestType |
teams.list() type filter removed |
PangeaGuardrailConfig, PangeaGuardrailConfigConfig, PangeaGuardrailConfigOperation, PangeaKeyAuth, PangeaGuardType |
renamed → CrowdStrike AIDR (§6) |
TrueFoundryAgentManifestResponseFormat, TrueFoundryAgentManifestModelParams |
renamed (§6) |
TrueFoundryAgentManifestModelParamsReasoningEffort, TrueFoundryAgentManifestSandbox, TrueFoundryAgentMcpTool |
agent manifest restructured |
6. Types & Enums Renamed
Importing/type-referencing the old names breaks. Wire values are unchanged unless noted.
| Old Name | New Name |
|---|---|
ChatPromptManifestMessagesItem |
ChatMessageTurn |
TrueFoundryAgentManifestResponseFormat |
TrueFoundryAgentResponseFormat |
TrueFoundryAgentManifestModelParams |
TrueFoundryAgentModelParams |
ClustersDeleteResponse |
DeleteClusterResponse |
WorkspacesDeleteResponse |
DeleteWorkspaceResponse |
Pangea guardrail → CrowdStrike AIDR (full rebrand):
| Old | New |
|---|---|
PangeaGuardrailConfig |
CrowdStrikeAidrGuardrailConfig |
PangeaGuardrailConfigConfig |
CrowdStrikeAidrGuardrailConfigConfig |
PangeaGuardrailConfigOperation |
CrowdStrikeAidrGuardrailConfigOperation |
PangeaKeyAuth |
CrowdStrikeAidrKeyAuth |
discriminator "integration/guardrail-config/pangea" |
"integration/guardrail-config/crowdstrike-aidr" |
The Pangea rename is breaking on the wire — persisted configs with
type: integration/guardrail-config/pangeawill no longer deserialize.
7. Type Fields Removed
| Type | Removed Fields |
|---|---|
ArtifactVersion, ModelVersion, PromptVersion, InternalArtifactVersion, InternalModelVersion |
version_alias |
BaseArtifactVersion |
id, fqn, created_at, updated_at, created_by_subject, ml_repo_id, manifest (now the manifest base: name/metadata/ml_repo/version) |
AgentSkill |
description, tags, examples, input_modes, output_modes (moved to A2AAgentSkill; AgentSkill is now an artifact-style entity) |
TrueFoundryAgentManifest |
instruction, iteration_limit, model_params, sandbox |
TrueFoundryAgentMcpServer |
deferred, tools |
TrueFoundryAgentSkill |
preload_skill_md |
UserMetadata |
is_primary_sso |
8. Field Type Changes
Now required (was optional):
| Type | Field | Old | New |
|---|---|---|---|
ArtifactManifest |
step |
Optional[int] |
int (default 0) |
ModelManifest |
step |
Optional[int] |
int (default 0) |
Now optional (was required):
| Type | Field | Old | New |
|---|---|---|---|
AzureOpenAiModel |
deployment_type |
AzureOpenAiModelDeploymentType |
Optional[...] |
OpenaiProviderAccount |
auth_data |
OpenaiApiKeyAuth |
Optional[OpenaiApiKeyAuth] |
Environment |
priority |
float |
Optional[float] |
Referenced type changed:
| Type | Field | Old | New |
|---|---|---|---|
Artifact |
type |
ArtifactType |
Optional[Literal["artifact"]] |
Artifact |
latest_version |
Optional[BaseArtifactVersion] |
Optional[ArtifactVersion] |
ChatPromptManifest |
messages |
List[ChatPromptManifestMessagesItem] |
List[ChatMessageTurn] |
Deployment |
application |
Optional[Application] |
Optional[ApplicationSummary] |
BitbucketProviderAccount |
integrations |
List[BitbucketIntegration] |
List[BitbucketIntegrations] |
PromptSource |
skills |
List[AgentSkill] |
List[A2AAgentSkill] |
PersonalAccessTokenManifest |
owned_by (ownedBy) |
Optional[OwnedBy] |
Optional[VirtualAccountOwnedBy] |
TrueFoundryAgentManifest |
model |
str |
TrueFoundryAgentModel |
TrueFoundryAgentManifest |
response_format |
Optional[TrueFoundryAgentManifestResponseFormat] |
Optional[TrueFoundryAgentResponseFormat] |
9. Enums Removed
| Removed Enum | Members it had |
|---|---|
LogsFilterQueryType |
REGEX, SUBSTRING, IGNORE_CASE_SUBSTRING |
TeamsListRequestType |
team, sso-team |
TrueFoundryAgentManifestModelParamsReasoningEffort |
NONE, MINIMAL, LOW, MEDIUM, HIGH |
PangeaGuardType |
TEXT_GUARD, PII |
✨ New Features
New Resource Clients
| Client | Methods |
|---|---|
client.agents |
list, create_or_update, get, delete |
client.agent_versions |
list |
client.runs |
create, get, update, delete, search, get_metric_history, list_metric_history, log_metric, log_parameter, set_tag, delete_tag, log_batch |
New Client Methods
client.teams.list_members(id, *, limit=100, offset=0, filter=None)→SyncPager[TeamSubjectRow, ListTeamMembersResponse]client.teams.list_managers(id, *, limit=100, offset=0, filter=None)→SyncPager[TeamSubjectRow, ListTeamManagersResponse]client.internal.ai_gateway.get_budget_usage(...)
New Optional Client Parameters
| Method | New Param | Type |
|---|---|---|
workspaces.list(), ml_repos.list(), clusters.list(), clusters.get_addons(), secret_groups.list(), teams.list() |
attributes |
Optional[Union[str, Sequence[str]]] |
teams.list() |
role |
Optional[Literal["manager"]] |
artifact_versions.list() |
artifact_types |
Optional[Sequence[ArtifactType]] |
secret_groups.delete() |
force_delete |
Optional[bool] |
personal_access_tokens.create() |
team_name, token_type |
str, CreatePersonalAccessTokenRequestTokenType |
personal_access_tokens.get() |
team_name |
Optional[str] |
Notable New Types
- Agents / Runs:
Agent,AgentVersion,Run,RunData,RunInfo,RunParam,RunTag,
MetricCollection,A2AAgentSkill,ChatMessageTurn, and theTrueFoundryAgentConfig
family (compaction / sandbox / context-management / response-format / sub-agents configs),
TrueFoundryAgentModel,TrueFoundryAgentModelParams,TrueFoundryAgentResponseFormat. - Budget v2:
BudgetV2*family,TeamBudgetConfig,TenantBudgetConfig(+ mode enums). - New provider integrations: AWS Bedrock Mantle, AWS Claude Platform, Smallest AI, Wafer,
Microsoft Teams (MsTeams*). - Guardrails:
CrowdStrikeAidrGuardrailConfig(replaces Pangea),TfyMetadataGuardrailConfig. - Identity:
AgentIdentityManifest/Config,IdentityProviderBackedIdentity,
TruefoundryBackedIdentity,JwtTokenType, token-type enums on PAT / virtual-account manifests. - Snowflake / Flyte task templates:
SnowflakeConfig,SnowflakeSql,
NativeSnowflakeFlyteTaskTemplate,TruefoundryFlyteTaskTemplate. - Misc:
ApplicationSummary,ResourceType,SessionActor,InternalServerError,
McpToolAnnotations,GuardrailSettings,TfyManagedMcpServerManifest.
⚙️ Non-Breaking Adjustments
int → float widenings (accept both; only matters for strict type-checkers):
Artifact/Model/Prompt.run_steps items, Metric.step/timestamp, FileInfo.file_size,
InternalArtifactVersion/InternalModelVersion.artifact_size, CreateMultiPartUploadRequest.num_parts,
ListFilesRequest.limit.
Widened optionality: ChatPromptManifest.variables → Dict[str, Optional[str]];
MlRepo.artifact_type_counts values → Optional[int].
Docs only: description strings were added to many existing fields (Team, VirtualAccount,
Workspace, Deployment, Application, GatewayConfiguration, …) — no type or optionality change.
**Preserved...