Skip to content

feat(v9): add creators for TagAttachment, S3Prefix and FlowControlOperation - #1083

Open
cmgrote wants to merge 2 commits into
mainfrom
FND-3846
Open

cmgrote wants to merge 2 commits into
mainfrom
FND-3846

Conversation

@cmgrote

@cmgrote cmgrote commented Oct 14, 2026

Copy link
Copy Markdown
Collaborator

✨ Description

Adds creator() to three shared types that more than one app builds. Each creator reproduces every app's existing qualifiedName, so no app changes identity.

Linear: FND-3846. The issue comments hold the template-reconciliation and required-attribute tables.

Type qualifiedName App
TagAttachment, qn_style="tag_object" (default) {tag_qn}/{object_qn} databricks
TagAttachment, qn_style="tag_attachments_object" {tag_qn}/attachments/{object_qn} dbt
TagAttachment, qn_style="object_tag" {object_qn}/{tag_name} bridge
S3Prefix {bucket_qn}/{prefix}/ (trailing slash) s3, bridge
FlowControlOperation, with scope {conn}/{scope}/{source_id} fabric notebook, sagemaker
FlowControlOperation, with parent_qualified_name {parent_qn}/jobs/{source_id} + flow_controlled_by fabric Spark job

Notes:

  • How the creators are added: as hand-written overlays in pyatlan_v9/model/assets/_overlays/, spliced into the generated class files the same way the generator does it (FND-3843 decision).
  • TagAttachment is passthrough = true in models, so its class is hand-managed. The creator is added directly to tag_attachment.py. The overlay copy only takes effect once passthrough types are generated.
  • S3Prefix also sets the s3_bucket relationship, s3_parent_prefix_qualified_name and s3_prefix_hierarchy, matching atlan-s3-app. The s3_parent_prefix relationship is left to the caller.
  • Known gap: the generated S3Prefix._QUALIFIED_NAME_PATTERN rejects the trailing slash. A strict xfail records this until qualifiedNameFormula is added to S3Prefix in atlanhq/models (follow-up PR).

🧩 Type of change

  • 🚀 New feature (non-breaking change that adds functionality)
  • 🐛 Bug fix (non-breaking change that fixes an issue)
  • 🔄 Refactor (code change that neither fixes a bug nor adds a feature)
  • 💥 Breaking change (fix or feature that may break existing functionality)
  • 📦 Dependency upgrade/downgrade
  • 📚 Documentation updates

✅ How has this been tested?

  • New tests_v9/unit/model/{s3_prefix,flow_control_operation,tag_attachment}_test.py: one parity test per app template, plus tests for invalid and blank inputs. Synthetic values only.
  • uv run pytest tests_v9/unit: 7715 passed, 5 skipped, 1 xfailed (the known gap above).
  • mypy: no new errors in the changed files (137 before, 137 after).

📋 Checklist

  • My code follows the project’s style guidelines
  • I’ve performed a self-review of my code
  • I’ve added comments in tricky or complex areas
  • I’ve updated the documentation as needed
  • There are no new warnings from my changes
  • I’ve added tests to cover my changes
  • All new and existing tests pass locally

🤖 Generated with Claude Code

https://claude.ai/code/session_01Wc98jPXjP7pdqJoAh3vtfY

…ration

Shared types built by more than one app (FND-3846). Each creator reproduces
every app's existing qualifiedName, so no app changes identity:

- TagAttachment.creator(qn_style=...): tag_object (databricks),
  tag_attachments_object (dbt), object_tag (bridge). Passthrough type, so the
  creator is hand-added to tag_attachment.py; overlay kept for when passthrough
  types are generated.
- S3Prefix.creator: {bucket_qn}/{prefix}/ with trailing slash (s3, bridge);
  sets bucket relationship, parent prefix qualified name and hierarchy.
- FlowControlOperation.creator: {conn}/{scope}/{source_id} (fabric notebook,
  sagemaker) or {parent_qn}/jobs/{source_id} with flow_controlled_by (fabric
  Spark job).

Parity tests cover every app template. A strict xfail records that the
generated S3Prefix _QUALIFIED_NAME_PATTERN rejects the trailing slash until
qualifiedNameFormula is added in atlanhq/models.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wc98jPXjP7pdqJoAh3vtfY
@linear

linear Bot commented Oct 14, 2026

Copy link
Copy Markdown

FND-3846

Resolve s3_prefix.py / flow_control_operation.py by taking main's regenerated
class files and re-injecting the creator overlays.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wc98jPXjP7pdqJoAh3vtfY

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant