Repository navigation
FND-3848: add pyatlan_v9 creators for the 10 Cognos asset types - #1078
Open
sachi-atlan wants to merge 2 commits into
Open
sachi-atlan wants to merge 2 commits into
sachi-atlan wants to merge 2 commits into
Conversation
sachi-atlan
marked this pull request as ready for review
October 14, 2026 09:35
Aryamanz29
requested changes
Oct 14, 2026
Aryamanz29
left a comment
Member
There was a problem hiding this comment.
Looks good overall - two things:
- could you please resolve the merge conflicts? Looks like they're just code formatting.
- could you please also add integration tests for these creators? Assuming the typedefs are GA on the tenants, that'll confirm everything works as expected 🙏
Adds hand-written creator overlays for CognosReport, CognosDashboard,
CognosExploration, CognosFile, CognosModule, CognosPackage, CognosDataset,
CognosFolder, CognosDatasource and CognosColumn, and regenerates the classes
from atlanhq/models (the paired models change adds qualifiedNameFormula per type).
Each creator emits {connection_qualified_name}/{slug}/{cognos_id}, the exact
string atlan-cognos-app emits today (FND-3838 census), including the dataSet2
slug for CognosDataset. Cognos qualifiedNames are flat and id-based, so the
creators follow the Metabase creators: they take no parent, and the caller
sets the folder or column-parent relationship. Blank inputs raise.
tests_v9/unit/model/cognos_test.py asserts each literal app qualifiedName.
Review follow-up. tests_v9/integration/cognos_asset_test.py creates a Cognos
connection, then every Cognos type through its creator: a folder, the seven
folder children with the folder relationship set by the caller (as
atlan-cognos-app does), a datasource and a column under a dataset. It
retrieves each by guid and asserts the exact qualifiedName, cognos_id,
connector and parent relationship, then purges everything.
Connection.creator needs a connector type, and AtlanConnectorType had no
Cognos entry, so this adds COGNOS ("cognos", BI).
sachi-atlan
force-pushed
the
sachipatankar/fnd-3848
branch
from
October 14, 2026 11:20
a0c86ab to
28f5f0d
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
✨ Description
Adds
creator()for the 10 Cognos asset types in pyatlan_v9: CognosReport, CognosDashboard, CognosExploration, CognosFile, CognosModule, CognosPackage, CognosDataset, CognosFolder, CognosDatasource, CognosColumn. This is the exemplar connector for the Fill creator gaps in pyatlan project; later connector PRs copy its structure.{connection_qualified_name}/<slug>/{cognos_id}, the string atlan-cognos-app emits today (FND-3838 census), including thedataSet2slug for CognosDataset. A different string would re-key existing Cognos assets on every tenant.MetabaseDashboardthe creators take no parent; the caller sets the folder / column-parent relationship. The typedef keeps the folderrequiredForCreation, sovalidate(for_creation=True)is unchanged.validate_required_fields).cognos_idis the column uuid (the value its qualifiedName is keyed on). atlan-cognos-app does not setcognosIdon columns today, so on adoption columns gain acognosIdvalue; their qualifiedName is unchanged.pyatlan_v9/model/assets/_overlays/cognos_*.py; the 10 classes are regenerated from atlanhq/models with these overlays (pklsdkOnly=python+ pre-commit, the same steps assync-python-sdk.yaml).Linear: FND-3848
Paired models PR: https://github.com/atlanhq/models/pull/2077 (merged); the classes here are regenerated from models master
585a201on top of main after #1076. — adds the matchingqualifiedNameFormula, which drives the regenerated_QUALIFIED_NAME_PATTERN.🧩 Type of change
✅ How has this been tested?
tests_v9/integration/cognos_asset_test.py(review follow-up): creates a Cognos connection and every Cognos type through its creator (folder, the 7 folder children with the folder link set by the caller, datasource, column under a dataset), retrieves each and asserts the exact qualifiedName,cognos_id, connector and parent link, then purges. AddsAtlanConnectorType.COGNOS, whichConnection.creatorneeds.tests_v9/unit/model/cognos_test.py(70 tests): literal app qualifiedName per type, name pattern match,validate(), missing / blank inputs,createalias.dataSet2→datasetfails the parity tests.pytest tests_v9/unit: 7745 passed, 5 skipped.pre-commitclean on all changed files._QUALIFIED_NAME_PATTERNfor their type (Column 9,618 · Dataset 52 · Report 43 · Folder 22 · Datasource 6 · Package 6 · Module 5); 0 do not. So the stricter pattern rejects no existing asset.-_.~) give qualifiedNames identical to the creators.tests/integrationjobs also fail on every recent run of this workflow (including the sync PRs and the merged ci: ignore anyio CVE-2026-63374 for the Python 3.9 lock entry in the Trivy gate #1074); this PR touches onlypyatlan_v9.📋 Checklist
🤖 Generated with Claude Code