Skip to content

Releases: truefoundry/truefoundry-python-sdk

v0.4.0

Choose a tag to compare

@truefoundry-saas truefoundry-saas released this 03 Jul 12:21
a63bba6

🚨 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.ml sub-client was removed. client.users.* (including
get_teams/get_resources/get_permissions), client.internal.users, and
client.internal.ai_gateway are 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/pangea will 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 the TrueFoundryAgentConfig
    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

intfloat 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.variablesDict[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...

Read more

v0.4.0-rc.2

v0.4.0-rc.2 Pre-release
Pre-release

Choose a tag to compare

@truefoundry-saas truefoundry-saas released this 03 Jul 11:55
f15a90e

🚨 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.ml sub-client was removed. client.users.* (including
get_teams/get_resources/get_permissions), client.internal.users, and
client.internal.ai_gateway are 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/pangea will 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 the TrueFoundryAgentConfig
    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

intfloat 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.variablesDict[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...

Read more

v0.3.4

Choose a tag to compare

@innoavator innoavator released this 04 May 20:04
35cf6a1

What's Changed

Full Changelog: v0.3.3...v0.3.4

v0.3.3

Choose a tag to compare

@bhaveshpatel640 bhaveshpatel640 released this 27 Apr 09:24
cd2b9bc

Full Changelog: v0.3.2...v0.3.3

v0.3.2

Choose a tag to compare

@bhaveshpatel640 bhaveshpatel640 released this 27 Apr 05:01
4e2a8cf

Full Changelog: v0.3.1...v0.3.2

v0.3.2-rc.2

v0.3.2-rc.2 Pre-release
Pre-release

Choose a tag to compare

@chiragjn chiragjn released this 24 Apr 15:46
3f40852

v0.3.2-rc.1

v0.3.2-rc.1 Pre-release
Pre-release

Choose a tag to compare

@innoavator innoavator released this 24 Apr 13:58
17bd3b8

Full Changelog: v0.3.1...v0.3.2-rc.1

v0.3.1

Choose a tag to compare

@innoavator innoavator released this 19 Apr 19:43
812d503

Full Changelog: v0.3.0...v0.3.1

v0.3.0

Choose a tag to compare

@innoavator innoavator released this 16 Apr 15:21
a719199

What's Changed

Full Changelog: v0.2.1...v0.3.0

v0.2.1

Choose a tag to compare

@innoavator innoavator released this 13 Apr 13:11
3d8bf6d

Full Changelog: v0.2.0...v0.2.1