Releases: atlanhq/atlan-python
Releases Β· atlanhq/atlan-python
v9.7.4
v9.7.3
π New Features
skillArtifactContentattribute onSkillArtifact: Adds theskill_artifact_content(skillArtifactContent) field toSkillArtifactin bothpyatlanandpyatlan_v9. The Atlas API returns this attribute on SkillArtifact entities but PyAtlan was silently dropping it (Config.extra = ignore). This unblocks the Atlan MCP server from surfacing skill.mdbody content viaget_asset/search_assetswithout needing a raw HTTP fallback. (#937)
π Bug Fixes
Connection.creatorvalidates connector_type slug (BLDX-1294):Connection.creatorandConnection.creator_async(both pyatlan and pyatlan_v9) now validateconnector_type.valueagainst^[a-z0-9-]+$β the same pattern the Atlan platform's server-side asset-import (RAB) path enforces. RaisesInvalidRequestError(ATLAN-PYTHON-400-079) on violation. Mirrors the Java SDK constraint. Root cause: a customer-createddev_cmdrconnection (underscore in slug) caused RAB to reject every asset-import referencing it, leaving phantomConnectionrows in Atlas. (#939)
Full Changelog: 9.7.2...9.7.3
v9.7.2
π New Features
- Add
AMAZON_MSKtoAtlanConnectorType: NewAMAZON_MSK = ("amazon-msk", AtlanConnectionCategory.EVENT_BUS)enum entry, matching the Java SDK. Removes the need for theextend_enumworkaround.
π Bug Fixes
DataProduct.creatornow defaultsdaap_visibilitytoPRIVATE: Mirrors the Atlan UI default. Fixes the marketplace Overview Assets tile rendering blank for products created via the SDK because the UI required bothdaapStatusanddaapVisibilityto be non-null. The earlier partial fix only setdaap_status. New optional overrides also exposed oncreator()/create():daap_visibility,daap_visibility_users,daap_visibility_groups,owner_users,owner_groups.DataProduct.creatordefaultsowner_usersto the calling user: When a client is passed, the creating user's username is used as the default owner, matching UI behavior.
Full Changelog: 9.7.1...9.7.2
v9.7.1
π Bug Fixes
DbtProcessandDbtColumnProcessnow extend the correct process parent: Atlas typedefs listDbtfirst insuperTypes, causing the class generator to pickDbtoverProcess/ColumnProcessas the Python superclass. This madeissubclass(cls, Process)returnFalse, causingatlan-publish-appto place dbt-process types in Batch 1 alongside their upstream entities and producing ATLAS-404 errors on everyinputs/outputslookup.
Full Changelog: 9.7.0...9.7.1
v9.7.0
New Features π
GENERIC_OPENLINEAGEconnector type: AddedAtlanConnectorType.GENERIC_OPENLINEAGE = ("generic-openlineage", AtlanConnectionCategory.ELT)so the SDK can target the marketplacegeneric-openlineage(GOLC) ingestion endpoint at/events/openlineage/generic-openlineage/api/v1/lineage. Mirrored inpyatlan_v9.OpenLineageEvent.emit()acceptsconnector_type:emit()andemit_async()now take an optionalconnector_typekwarg (defaulting toSPARK), matching the pattern already used byemit_raw()/emit_raw_async(). Removes the previous hardcoded SPARK assumption so callers can route events to any OpenLineage-compatible connector.
Bug Fixes π
DbtMeasureextendsSemanticMeasure, notDbt: The Atlas type hierarchy isDbtMeasure β SemanticMeasure β Semantic, but the generator pickedDbtas the Python parent because the typedef listssuperTypes=["Dbt", "SemanticMeasure"](Dbt first). This brokeatlan-publish-app's ordering graph βDbtSemanticModel β DbtMeasureedges were never created via thesemantic_measuresrelationship, causing publish to fail with ATLAS-404 onsemanticModellookup.
Experimental: pyatlan_v9 π§ͺ
- Generated latest typedef models.
Full Changelog: 9.6.0...9.7.0
v9.6.0
New Features π
- Deprecated Phosphor icon enum values: Added 11 deprecated Phosphor icon names (
PhActivity,PhCircleWavy*,PhFileDotted,PhFileSearch,PhFolderDotted,PhFolderSimpleDotted,PhPedestrian,PhTextBolder) toAtlanIconso the SDK can deserialize tag definitions that reference old icon names without failing.
Bug Fixes π
- httpcore connection pool deadlock fix: Fixed a production deadlock where concurrent
replace_custom_metadatacalls could hang indefinitely. Root cause: httpcore's connection pool filled with CLOSE_WAIT zombie sockets (nginx closed idle connections at 75s, httpcore didn't detect this) andpool=Nonetimeout meant threads waited forever. Fix addspool=30.0timeout,keepalive_expiry=30.0(< nginx 75s), andresponse.close()before retry sleep to release connection slots. Includesreset_http_session()for recovering degraded pools in long-running workflows.
QOL Improvements π₯
- Connection pool config extracted to constants:
_DEFAULT_POOL_LIMITSand_DEFAULT_POOL_TIMEOUT_SECONDSdefined once at module level instead of repeated 4 times across init, reset, max_retries, and timeout. - Trivy CI fix: Bumped Trivy from v0.69.0 (broken download) to v0.70.0.
Full Changelog: 9.5.0...9.6.0
v9.5.0
New Features π
- Data contract delete methods: Added
client.contracts.delete(guid)to hard-delete all versions of a data contract andclient.contracts.delete_latest_version(guid)to delete only the latest version and promote the previous one.
docs: https://developer.atlan.com/snippets/datacontract/manage-via-sdks
Bug Fixes π
showAsFeaturedsilent data loss on typedef update:AttributeDef.Optionswas missing theshow_as_featuredfield, causing Pydantic to silently discard it on parse. Any SDK operation that fetched and re-submitted a Custom Metadata typedef withshowAsFeaturedset was clearing that setting in the backend. Addedshow_as_featured: Optional[bool]so the field now round-trips correctly.
Experimental: pyatlan_v9 π§ͺ
- Data contract delete methods: Same
deleteanddelete_latest_versionmethods added to the v9 async/sync clients. show_as_featuredfield: Added to v9AttributeDef.Optionsas well.
Full Changelog: 9.4.1...9.5.0
v9.4.1
New Features π
- Agentic type hierarchy: Added Python SDK support for the new Agentic hierarchy (
Agentic,Artifact,Skill,SkillArtifact,Context,ContextRepository,ContextArtifact) with NanoID-based qualifiedName patterns and auto-populated parent refs on creators. IncludesContextLifecycleStatusenum andFileType.YAML/FileType.SQLadditions. FileType.MDenum value: Addedmdfile type to theFileTypeenum.
QOL Improvements π₯
- Generator
--overrideflag: Added--overrideflag to the generator script to force re-download of typedefs, bypassing the daily cache check. - Generator template coverage: Added Jinja2 asset, attribute, and import templates for all Agentic types so the code generator can reproduce creator methods.
_CORE_ASSETSupdates: Added Agentic types, Dremio, Cloud, Google, and GCPDataplex to the core assets list to stabilize code generation layout.- Regenerated models from latest typedefs.
Full Changelog: 9.4.0...9.4.1
v8.5.4
v9.4.0
Experimental: pyatlan_v9 π§ͺ
BusinessPolicyException,BusinessPolicyIncident,BusinessPolicyLogstandalone classes: Added full standalone flat asset classes for these three business policy types. Previously onlyRelated*reference types existed, so users couldn't create, search, or deprecate these asset types viapyatlan_v9.
QOL Improvements π₯
- Generated latest typedef models.
Full Changelog: 9.3.2...9.4.0