atlan-application-sdk 2.2.0__tar.gz → 2.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- atlan_application_sdk-2.3.1/.cursor/rules/deepwiki.mdc +53 -0
- atlan_application_sdk-2.3.1/.cursor/rules/documentation.mdc +20 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.cursor/rules/setup.mdc +4 -5
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.cursor/rules/standards.mdc +2 -2
- atlan_application_sdk-2.3.1/.github/release_notes.md +7 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflows/build-image.yaml +2 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflows/pull_request.yaml +1 -1
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflows/push.yaml +1 -1
- atlan_application_sdk-2.3.1/AGENTS.md +20 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/CHANGELOG.md +22 -0
- atlan_application_sdk-2.3.1/CLAUDE.md +20 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/Dockerfile +9 -3
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/PKG-INFO +3 -3
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/README.md +2 -2
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/application/__init__.py +68 -1
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/application/metadata_extraction/sql.py +44 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/clients/temporal.py +6 -1
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/constants.py +25 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/version.py +1 -1
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/worker.py +104 -6
- atlan_application_sdk-2.3.1/docs/agents/coding-standards.md +5 -0
- atlan_application_sdk-2.3.1/docs/agents/commits-prs.md +4 -0
- atlan_application_sdk-2.3.1/docs/agents/deepwiki.md +35 -0
- atlan_application_sdk-2.3.1/docs/agents/dev-commands.md +5 -0
- atlan_application_sdk-2.3.1/docs/agents/docs-updates.md +4 -0
- atlan_application_sdk-2.3.1/docs/agents/project-structure.md +9 -0
- atlan_application_sdk-2.3.1/docs/agents/review.md +3 -0
- atlan_application_sdk-2.3.1/docs/agents/testing.md +5 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/concepts/API.md +2 -2
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/guides/sql-application-guide.md +2 -2
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/index.md +3 -3
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/setup/LINUX.md +1 -1
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/setup/MAC.md +1 -1
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/setup/WINDOWS.md +1 -1
- atlan_application_sdk-2.3.1/entrypoint.sh +53 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/examples/README.md +3 -3
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/mkdocs.yml +18 -1
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/pyproject.toml +10 -7
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/application/metadata_extraction/test_sql.py +127 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/application/test_application.py +126 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/clients/test_temporal_client.py +1 -0
- atlan_application_sdk-2.3.1/tests/unit/test_worker.py +353 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/uv.lock +14 -8
- atlan_application_sdk-2.2.0/.cursor/rules/documentation.mdc +0 -20
- atlan_application_sdk-2.2.0/.github/release_notes.md +0 -8
- atlan_application_sdk-2.2.0/tests/unit/test_worker.py +0 -145
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.cursor/rules/commits.mdc +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.cursor/rules/exception-handling.mdc +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.cursor/rules/guidelines.mdc +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.cursor/rules/logging.mdc +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.cursor/rules/performance.mdc +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.cursor/rules/testing.mdc +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.dockerignore +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.env.example +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/CODEOWNERS +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/ISSUE_TEMPLATE/config.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/actions/docgen/action.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/actions/doclint/action.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/actions/docstring-coverage/action.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/actions/e2e-apps/action.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/actions/e2e-examples/action.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/actions/secure-build-push-apps/action.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/actions/setup-deps/action.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/actions/sync-branches/action.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/actions/trivy/action.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/actions/trivy-container/action.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/actions/unit-tests/action.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/dependabot.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/pull_request_template.md +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/scripts/extract_release_notes.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/scripts/release.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/scripts/trivy-to-markdown.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/scripts/update_changelog.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/AMPM.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Accessibility.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Acronyms.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Adverbs.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Auto.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Avoid.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Contractions.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Dashes.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/DateFormat.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/DateNumbers.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/DateOrder.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Ellipses.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/FirstPerson.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Foreign.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Gender.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/GenderBias.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/GeneralURL.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/HeadingAcronyms.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/HeadingColons.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/HeadingPunctuation.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Headings.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Hyphens.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Negative.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Ordinal.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/OxfordComma.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Passive.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Percentages.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Plurals.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Quotes.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/RangeTime.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Semicolon.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/SentenceLength.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Spacing.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Suspended.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Terms.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/URLFormat.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Units.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Vocab.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/We.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/Wordiness.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/Microsoft/meta.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/config/vocabularies/deviations/accept.txt +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/styles/config/vocabularies/deviations/reject.txt +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflow-templates/checks.properties.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflow-templates/checks.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflow-templates/codeql.properties.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflow-templates/codeql.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflow-templates/dependency-review.properties.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflow-templates/dependency-review.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflow-templates/stale.properties.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflow-templates/stale.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflow-templates/trivy-container.properties.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflow-templates/trivy-container.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflow-templates/trivy.properties.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflow-templates/trivy.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflows/codeql.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflows/release.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflows/scale-tests.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflows/schedule.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflows/tag-and-publish.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflows/trivy-container.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflows/verify-snyk-status.yml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.gitignore +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.pre-commit-config.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.vscode/launch.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/CODE_OF_CONDUCT.md +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/CONTRIBUTING.md +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/LICENSE +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/NOTICE +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/SECURITY.md +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/activities/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/activities/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/activities/common/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/activities/common/models.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/activities/common/sql_utils.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/activities/common/utils.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/activities/lock_management.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/activities/metadata_extraction/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/activities/metadata_extraction/base.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/activities/metadata_extraction/rest.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/activities/metadata_extraction/sql.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/activities/query_extraction/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/activities/query_extraction/sql.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/clients/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/clients/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/clients/atlan.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/clients/atlan_auth.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/clients/azure/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/clients/azure/auth.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/clients/azure/client.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/clients/base.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/clients/models.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/clients/redis.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/clients/sql.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/clients/utils.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/clients/workflow.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/common/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/common/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/common/aws_utils.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/common/error_codes.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/common/file_converter.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/common/types.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/common/utils.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/decorators/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/decorators/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/decorators/locks.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/decorators/mcp_tool.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/docgen/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/docgen/exporters/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/docgen/exporters/mkdocs.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/docgen/models/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/docgen/models/export/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/docgen/models/export/page.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/docgen/models/manifest/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/docgen/models/manifest/customer.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/docgen/models/manifest/internal.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/docgen/models/manifest/metadata.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/docgen/models/manifest/page.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/docgen/models/manifest/section.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/docgen/parsers/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/docgen/parsers/directory.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/docgen/parsers/manifest.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/handlers/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/handlers/base.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/handlers/sql.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/interceptors/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/interceptors/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/interceptors/cleanup.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/interceptors/correlation_context.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/interceptors/events.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/interceptors/lock.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/interceptors/models.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/io/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/io/json.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/io/parquet.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/io/utils.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/observability/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/observability/context.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/observability/decorators/observability_decorator.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/observability/logger_adaptor.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/observability/metrics_adaptor.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/observability/observability.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/observability/traces_adaptor.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/observability/utils.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/server/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/server/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/server/fastapi/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/server/fastapi/middleware/logmiddleware.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/server/fastapi/middleware/metrics.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/server/fastapi/models.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/server/fastapi/routers/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/server/fastapi/routers/server.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/server/fastapi/utils.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/server/mcp/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/server/mcp/models.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/server/mcp/server.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/services/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/services/_utils.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/services/atlan_storage.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/services/eventstore.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/services/objectstore.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/services/secretstore.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/services/statestore.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/e2e/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/e2e/base.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/e2e/client.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/e2e/conftest.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/e2e/utils.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/hypothesis/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/hypothesis/strategies/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/hypothesis/strategies/clients/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/hypothesis/strategies/clients/sql.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/hypothesis/strategies/common/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/hypothesis/strategies/common/logger.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/hypothesis/strategies/handlers/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/sql_metadata.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/sql_preflight.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/hypothesis/strategies/inputs/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/hypothesis/strategies/inputs/json_input.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/hypothesis/strategies/inputs/parquet_input.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/hypothesis/strategies/outputs/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/hypothesis/strategies/outputs/json_output.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/hypothesis/strategies/outputs/statestore.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/hypothesis/strategies/server/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/hypothesis/strategies/server/fastapi/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/hypothesis/strategies/sql_client.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/hypothesis/strategies/temporal.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/scale_data_generator/README.md +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/scale_data_generator/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/scale_data_generator/config_loader.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/scale_data_generator/data_generator.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/scale_data_generator/driver.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/scale_data_generator/examples/config.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/scale_data_generator/output_handler/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/scale_data_generator/output_handler/base.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/scale_data_generator/output_handler/csv_handler.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/scale_data_generator/output_handler/json_handler.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/scale_data_generator/output_handler/parquet_handler.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/test_utils/workflow_monitoring.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/transformers/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/transformers/atlas/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/transformers/atlas/sql.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/transformers/common/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/transformers/common/utils.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/transformers/query/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/transformers/query/templates/column.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/transformers/query/templates/database.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/transformers/query/templates/extras-procedure.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/transformers/query/templates/function.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/transformers/query/templates/schema.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/transformers/query/templates/table.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/transformers/query/templates/tag_attachment.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/workflows/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/workflows/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/workflows/metadata_extraction/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/workflows/metadata_extraction/sql.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/workflows/query_extraction/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/workflows/query_extraction/sql.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/components/README.md +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/components/atlan-storage.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/components/aws-secrets.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/components/configuration.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/components/deployment-secrets.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/components/eventstore.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/components/objectstore.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/components/pubsub.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/components/secretstore.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/components/statestore.yaml +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/concepts/activities.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/concepts/application.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/concepts/application_sql.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/concepts/atlanupload.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/concepts/clients.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/concepts/common.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/concepts/handlers.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/concepts/inputs.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/concepts/mcp.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/concepts/output_paths.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/concepts/outputs.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/concepts/server.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/concepts/services.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/concepts/temporal_auth.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/concepts/worker.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/concepts/workflows.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/configuration.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/guides/architecture.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/guides/atlantis.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/guides/best-practices.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/guides/getting-started.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/guides/index.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/guides/secretstores.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/guides/test-framework.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/setup/troubleshooting.md +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/static/assets/logo.svg +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/static/images/phoenix-sdk-featureset.png +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/static/javascripts/mathjax.js +0 -0
- {atlan_application_sdk-2.2.0/docs → atlan_application_sdk-2.3.1}/docs/static/stylesheets/extra.css +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/examples/application_custom_fastapi.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/examples/application_fastapi.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/examples/application_hello_world.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/examples/application_sql.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/examples/application_sql_miner.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/examples/application_sql_with_custom_pyatlan_transformer.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/examples/application_sql_with_custom_transformer.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/examples/run_examples.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/examples/sql_query_templates/database.yaml +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/conftest.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/activities/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/activities/common/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/activities/common/test_sql_utils.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/activities/common/test_utils.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/activities/metadata_extraction/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/activities/metadata_extraction/test_sql.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/activities/query_extraction/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/activities/test_activities.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/activities/test_lock_management.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/application/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/clients/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/clients/test_async_sql_client.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/clients/test_atlan_auth.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/clients/test_atlan_client.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/clients/test_atlanauth.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/clients/test_azure_auth.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/clients/test_azure_client.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/clients/test_base_client.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/clients/test_redis_client.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/clients/test_sql_client.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/common/test_aws_utils.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/common/test_credential_utils.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/common/test_file_converter.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/common/test_utils.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/common/test_utils_file_discovery.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/decorators/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/decorators/test_mcp_tool.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/docgen/parsers/test_directory_parser.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/docgen/parsers/test_manifest_parser.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/handlers/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/handlers/sql/test_auth.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/handlers/sql/test_check_schemas_and_databases.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/handlers/sql/test_extract_allowed_schemas.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/handlers/sql/test_metadata.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/handlers/sql/test_preflight_check.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/handlers/sql/test_prepare_metadata.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/handlers/sql/test_tables_check.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/handlers/sql/test_validate_filters.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/handlers/test_base_handler.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/interceptors/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/interceptors/test_correlation_context.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/io/readers/test_json_reader.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/io/readers/test_parquet_reader.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/io/test_base_io.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/io/writers/test_json_writer.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/io/writers/test_parquet_writer.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/observability/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/observability/test_logger_adaptor.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/observability/test_metrics_adaptor.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/observability/test_traces_adaptor.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/server/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/server/fastapi/routers/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/server/fastapi/routers/server.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/server/fastapi/test_fastapi.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/server/mcp/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/server/mcp/test_mcp_server.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/services/test_atlan_storage.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/services/test_eventstore.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/services/test_objectstore.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/services/test_statestore.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/atlas/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/atlas/resources/raw_columns.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/atlas/resources/raw_databases.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/atlas/resources/raw_functions.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/atlas/resources/raw_procedures.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/atlas/resources/raw_schemas.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/atlas/resources/raw_tables.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/atlas/resources/transformed_columns.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/atlas/resources/transformed_databases.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/atlas/resources/transformed_functions.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/atlas/resources/transformed_procedures.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/atlas/resources/transformed_schemas.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/atlas/resources/transformed_tables.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/atlas/test_column.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/atlas/test_database.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/atlas/test_function.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/atlas/test_procedure.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/atlas/test_schema.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/atlas/test_table.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/query/resources/raw/column.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/query/resources/raw/database.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/query/resources/raw/extras-procedure.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/query/resources/raw/function.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/query/resources/raw/schema.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/query/resources/raw/table.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/query/resources/transformed/column.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/query/resources/transformed/database.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/query/resources/transformed/extras-procedure.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/query/resources/transformed/function.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/query/resources/transformed/schema.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/query/resources/transformed/table.json +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/query/test_sql_transformer.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/transformers/query/test_sql_transformer_output_validation.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/workflows/metadata_extraction/test_sql_workflow.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/workflows/query_extraction/__init__.py +0 -0
- {atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/tests/unit/workflows/query_extraction/test_sql.py +0 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: SDK development rules using DeepWiki MCP for verification
|
|
3
|
+
globs:
|
|
4
|
+
alwaysApply: true
|
|
5
|
+
---
|
|
6
|
+
# SDK Development with DeepWiki MCP
|
|
7
|
+
|
|
8
|
+
DeepWiki MCP provides AI-powered documentation and search for public GitHub repositories.
|
|
9
|
+
|
|
10
|
+
## Available Tools
|
|
11
|
+
|
|
12
|
+
- read_wiki_structure: Get documentation topics for a repository
|
|
13
|
+
- read_wiki_contents: View repository documentation
|
|
14
|
+
- ask_question: Ask questions about a repository (AI-powered, context-grounded)
|
|
15
|
+
|
|
16
|
+
## Core Rule: Always Verify with DeepWiki
|
|
17
|
+
|
|
18
|
+
Never assume SDK implementation details for:
|
|
19
|
+
- atlanhq/atlan-python
|
|
20
|
+
- atlanhq/application-sdk
|
|
21
|
+
|
|
22
|
+
Always use DeepWiki MCP tools to verify against actual source code and documentation.
|
|
23
|
+
|
|
24
|
+
## Workflow
|
|
25
|
+
|
|
26
|
+
1. Use ask_question for specific implementation questions
|
|
27
|
+
2. Use read_wiki_structure to understand available documentation
|
|
28
|
+
3. Use read_wiki_contents to read detailed documentation
|
|
29
|
+
4. Provide answers based on verified information
|
|
30
|
+
|
|
31
|
+
## When to Use DeepWiki
|
|
32
|
+
|
|
33
|
+
Use for:
|
|
34
|
+
- SDK API usage and method signatures
|
|
35
|
+
- Error debugging
|
|
36
|
+
- Implementation patterns
|
|
37
|
+
- Parameter types and return values
|
|
38
|
+
- Usage examples from actual code
|
|
39
|
+
|
|
40
|
+
## Examples
|
|
41
|
+
|
|
42
|
+
Instead of guessing:
|
|
43
|
+
"How does application-sdk handle authentication?" -> ask_question tool
|
|
44
|
+
"What methods are available in atlan-java Client class?" -> ask_question tool
|
|
45
|
+
"Show me the structure of atlan-python docs" -> read_wiki_structure tool
|
|
46
|
+
|
|
47
|
+
## Response Format
|
|
48
|
+
|
|
49
|
+
When using DeepWiki findings:
|
|
50
|
+
- Reference the repository queried
|
|
51
|
+
- Include specific method/class names found
|
|
52
|
+
- Provide code examples when available
|
|
53
|
+
- Link to relevant documentation sections
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Update conceptual documentation when SDK code changes to keep docs synchronized with implementation
|
|
3
|
+
globs: application_sdk/**/*.py
|
|
4
|
+
alwaysApply: false
|
|
5
|
+
---
|
|
6
|
+
# Documentation Updates
|
|
7
|
+
|
|
8
|
+
When modifying SDK code, update corresponding conceptual documentation under `docs/concepts/` to reflect changes.
|
|
9
|
+
|
|
10
|
+
**Module to Concept Doc Mapping:**
|
|
11
|
+
* `application_sdk/application/**` -> `docs/concepts/application.md`
|
|
12
|
+
* `application_sdk/server/**` -> `docs/concepts/server.md`
|
|
13
|
+
* `application_sdk/handlers/**` -> `docs/concepts/handlers.md`
|
|
14
|
+
* `application_sdk/clients/**` -> `docs/concepts/clients.md`
|
|
15
|
+
* `application_sdk/activities/**` -> `docs/concepts/activities.md`
|
|
16
|
+
* `application_sdk/common/**` or `application_sdk/constants.py` -> `docs/concepts/common.md`
|
|
17
|
+
* `application_sdk/io/**` -> `docs/concepts/inputs.md` (for readers) AND `docs/concepts/outputs.md` (for writers)
|
|
18
|
+
* `application_sdk/transformers/**` -> `docs/concepts/transformers.md`
|
|
19
|
+
* `application_sdk/workflows/**` -> `docs/concepts/workflows.md`
|
|
20
|
+
* `application_sdk/worker.py` -> `docs/concepts/worker.md`
|
|
@@ -17,13 +17,12 @@ The Atlan Python Application SDK requires the following components regardless of
|
|
|
17
17
|
|
|
18
18
|
Please follow the appropriate guide for your operating system:
|
|
19
19
|
|
|
20
|
-
- [MAC.md](mdc:docs/
|
|
21
|
-
- [LINUX.md](mdc:docs/
|
|
22
|
-
- [WINDOWS.md](mdc:docs/
|
|
20
|
+
- [MAC.md](mdc:docs/setup/MAC.md)
|
|
21
|
+
- [LINUX.md](mdc:docs/setup/LINUX.md)
|
|
22
|
+
- [WINDOWS.md](mdc:docs/setup/WINDOWS.md)
|
|
23
23
|
|
|
24
|
-
Once the development environment is setup follow the [getting-started.md](mdc:docs/
|
|
24
|
+
Once the development environment is setup follow the [getting-started.md](mdc:docs/guides/getting-started.md) to setup project dependencies and run an example
|
|
25
25
|
|
|
26
26
|
## Need Help?
|
|
27
27
|
|
|
28
28
|
If you encounter any issues during setup, please reach out to us at connect@atlan.com.
|
|
29
|
-
|
|
@@ -24,8 +24,8 @@ This document outlines the development standards for the Application SDK, includ
|
|
|
24
24
|
- Use Google-style docstrings
|
|
25
25
|
- Include type information in docstrings
|
|
26
26
|
- Document all public APIs
|
|
27
|
-
- Build docs using `uv sync --
|
|
28
|
-
- Docs must go under ./docs
|
|
27
|
+
- Build docs using `uv sync --group docs --all-extras && uv run poe generate-apidocs`
|
|
28
|
+
- Docs must go under ./docs
|
|
29
29
|
|
|
30
30
|
- **Single Responsibility**
|
|
31
31
|
- Each function should do exactly one thing
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
## v2.3.1 (January 28, 2026)
|
|
2
|
+
|
|
3
|
+
Full Changelog: https://github.com/atlanhq/application-sdk/compare/v2.3.0...v2.3.1
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
- add entrypoint wrapper for SIGTERM forward (#950) (by @anuj-atlan in [7c0b517](https://github.com/atlanhq/application-sdk/commit/7c0b517))
|
{atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/.github/workflows/pull_request.yaml
RENAMED
|
@@ -200,7 +200,7 @@ jobs:
|
|
|
200
200
|
|
|
201
201
|
- name: Upload Docs to Kryptonite Bucket
|
|
202
202
|
run: |
|
|
203
|
-
aws s3 sync ./
|
|
203
|
+
aws s3 sync ./site s3://kryptonite-store/application-sdk/${{ github.head_ref }} --delete
|
|
204
204
|
|
|
205
205
|
- name: Comment Kryptonite URL on PR
|
|
206
206
|
uses: mshick/add-pr-comment@v2
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Repository Guidelines
|
|
2
|
+
|
|
3
|
+
Atlan Application SDK is a Python library for building applications on the Atlan platform.
|
|
4
|
+
|
|
5
|
+
Package manager: `uv` (task runner via `poe` in `pyproject.toml`).
|
|
6
|
+
|
|
7
|
+
Non-standard commands used across the repo:
|
|
8
|
+
- `uv sync --all-extras --all-groups` (full dev/test deps)
|
|
9
|
+
- `uv run poe start-deps` (local Dapr + Temporal)
|
|
10
|
+
- `uv run poe generate-apidocs` (MkDocs + API docs)
|
|
11
|
+
|
|
12
|
+
Where to look next (progressive disclosure):
|
|
13
|
+
- `docs/agents/project-structure.md` — quick map of key directories.
|
|
14
|
+
- `docs/agents/dev-commands.md` — setup and repeatable workflows.
|
|
15
|
+
- `docs/agents/coding-standards.md` — formatting, logging, exceptions, performance.
|
|
16
|
+
- `docs/agents/testing.md` — test command, coverage config, test layout.
|
|
17
|
+
- `docs/agents/commits-prs.md` — commit format and PR expectations.
|
|
18
|
+
- `docs/agents/docs-updates.md` — which conceptual docs to update with code changes.
|
|
19
|
+
- `docs/agents/review.md` — code review checklist.
|
|
20
|
+
- `docs/agents/deepwiki.md` — DeepWiki MCP setup and when to verify SDK details.
|
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v2.3.1 (January 28, 2026)
|
|
4
|
+
|
|
5
|
+
Full Changelog: https://github.com/atlanhq/application-sdk/compare/v2.3.0...v2.3.1
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
- add entrypoint wrapper for SIGTERM forward (#950) (by @anuj-atlan in [7c0b517](https://github.com/atlanhq/application-sdk/commit/7c0b517))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
## v2.3.0 (January 22, 2026)
|
|
13
|
+
|
|
14
|
+
Full Changelog: https://github.com/atlanhq/application-sdk/compare/v2.2.0...v2.3.0
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
- split worker / server and support graceful shutdown (#944) (by @SanilK2108 in [a551e8e](https://github.com/atlanhq/application-sdk/commit/a551e8e))
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
- event loop policy for Windows (#927) (by @sachi-atlan in [9df1513](https://github.com/atlanhq/application-sdk/commit/9df1513))
|
|
23
|
+
|
|
24
|
+
|
|
3
25
|
## v2.2.0 (January 14, 2026)
|
|
4
26
|
|
|
5
27
|
Full Changelog: https://github.com/atlanhq/application-sdk/compare/v2.1.1...v2.2.0
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Repository Guidelines
|
|
2
|
+
|
|
3
|
+
Atlan Application SDK is a Python library for building applications on the Atlan platform.
|
|
4
|
+
|
|
5
|
+
Package manager: `uv` (task runner via `poe` in `pyproject.toml`).
|
|
6
|
+
|
|
7
|
+
Non-standard commands used across the repo:
|
|
8
|
+
- `uv sync --all-extras --all-groups` (full dev/test deps)
|
|
9
|
+
- `uv run poe start-deps` (local Dapr + Temporal)
|
|
10
|
+
- `uv run poe generate-apidocs` (MkDocs + API docs)
|
|
11
|
+
|
|
12
|
+
Where to look next (progressive disclosure):
|
|
13
|
+
- `docs/agents/project-structure.md` — quick map of key directories.
|
|
14
|
+
- `docs/agents/dev-commands.md` — setup and repeatable workflows.
|
|
15
|
+
- `docs/agents/coding-standards.md` — formatting, logging, exceptions, performance.
|
|
16
|
+
- `docs/agents/testing.md` — test command, coverage config, test layout.
|
|
17
|
+
- `docs/agents/commits-prs.md` — commit format and PR expectations.
|
|
18
|
+
- `docs/agents/docs-updates.md` — which conceptual docs to update with code changes.
|
|
19
|
+
- `docs/agents/review.md` — code review checklist.
|
|
20
|
+
- `docs/agents/deepwiki.md` — DeepWiki MCP setup and when to verify SDK details.
|
|
@@ -37,8 +37,14 @@ ENV UV_CACHE_DIR=/home/appuser/.cache/uv \
|
|
|
37
37
|
XDG_CACHE_HOME=/home/appuser/.cache \
|
|
38
38
|
ATLAN_DAPR_HTTP_PORT=3500 \
|
|
39
39
|
ATLAN_DAPR_GRPC_PORT=50001 \
|
|
40
|
-
ATLAN_DAPR_METRICS_PORT=3100
|
|
40
|
+
ATLAN_DAPR_METRICS_PORT=3100 \
|
|
41
|
+
DAPR_LOG_LEVEL=info \
|
|
42
|
+
DAPR_APP_ID=app \
|
|
43
|
+
DAPR_MAX_BODY_SIZE="1024Mi"
|
|
41
44
|
|
|
42
|
-
#
|
|
43
|
-
|
|
45
|
+
# Copy entrypoint script for graceful shutdown handling
|
|
46
|
+
COPY --chown=appuser:appuser entrypoint.sh /usr/local/bin/entrypoint.sh
|
|
47
|
+
RUN chmod +x /usr/local/bin/entrypoint.sh
|
|
48
|
+
|
|
49
|
+
ENTRYPOINT ["sh", "/usr/local/bin/entrypoint.sh"]
|
|
44
50
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: atlan-application-sdk
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.1
|
|
4
4
|
Summary: Atlan Application SDK is a Python library for developing applications on the Atlan Platform
|
|
5
5
|
Project-URL: Repository, https://github.com/atlanhq/application-sdk
|
|
6
6
|
Project-URL: Documentation, https://github.com/atlanhq/application-sdk/README.md
|
|
@@ -93,8 +93,8 @@ poetry add atlan-application-sdk
|
|
|
93
93
|
|
|
94
94
|
## Getting Started
|
|
95
95
|
|
|
96
|
-
- Want to develop locally or run examples from this repository? Check out our [Getting Started Guide](docs/
|
|
97
|
-
- Detailed documentation for the application-sdk is available at [docs](https://github.com/atlanhq/application-sdk/blob/main/docs/
|
|
96
|
+
- Want to develop locally or run examples from this repository? Check out our [Getting Started Guide](docs/guides/getting-started.md) for a step-by-step walkthrough!
|
|
97
|
+
- Detailed documentation for the application-sdk is available at [docs](https://github.com/atlanhq/application-sdk/blob/main/docs/) folder.
|
|
98
98
|
|
|
99
99
|
## Contributing
|
|
100
100
|
|
|
@@ -29,8 +29,8 @@ poetry add atlan-application-sdk
|
|
|
29
29
|
|
|
30
30
|
## Getting Started
|
|
31
31
|
|
|
32
|
-
- Want to develop locally or run examples from this repository? Check out our [Getting Started Guide](docs/
|
|
33
|
-
- Detailed documentation for the application-sdk is available at [docs](https://github.com/atlanhq/application-sdk/blob/main/docs/
|
|
32
|
+
- Want to develop locally or run examples from this repository? Check out our [Getting Started Guide](docs/guides/getting-started.md) for a step-by-step walkthrough!
|
|
33
|
+
- Detailed documentation for the application-sdk is available at [docs](https://github.com/atlanhq/application-sdk/blob/main/docs/) folder.
|
|
34
34
|
|
|
35
35
|
## Contributing
|
|
36
36
|
|
{atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/application/__init__.py
RENAMED
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
from concurrent.futures import ThreadPoolExecutor
|
|
2
2
|
from typing import Any, Dict, List, Optional, Tuple, Type
|
|
3
3
|
|
|
4
|
+
from typing_extensions import deprecated
|
|
5
|
+
|
|
4
6
|
from application_sdk.activities import ActivitiesInterface
|
|
5
7
|
from application_sdk.clients.base import BaseClient
|
|
6
8
|
from application_sdk.clients.utils import get_workflow_client
|
|
7
|
-
from application_sdk.constants import ENABLE_MCP
|
|
9
|
+
from application_sdk.constants import APPLICATION_MODE, ENABLE_MCP, ApplicationMode
|
|
8
10
|
from application_sdk.handlers.base import BaseHandler
|
|
9
11
|
from application_sdk.interceptors.models import EventRegistration
|
|
12
|
+
from application_sdk.observability.decorators.observability_decorator import (
|
|
13
|
+
observability,
|
|
14
|
+
)
|
|
10
15
|
from application_sdk.observability.logger_adaptor import get_logger
|
|
16
|
+
from application_sdk.observability.metrics_adaptor import get_metrics
|
|
17
|
+
from application_sdk.observability.traces_adaptor import get_traces
|
|
11
18
|
from application_sdk.server import ServerInterface
|
|
12
19
|
from application_sdk.server.fastapi import APIServer, HttpWorkflowTrigger
|
|
13
20
|
from application_sdk.server.fastapi.models import EventWorkflowTrigger
|
|
@@ -15,6 +22,8 @@ from application_sdk.worker import Worker
|
|
|
15
22
|
from application_sdk.workflows import WorkflowInterface
|
|
16
23
|
|
|
17
24
|
logger = get_logger(__name__)
|
|
25
|
+
metrics = get_metrics()
|
|
26
|
+
traces = get_traces()
|
|
18
27
|
|
|
19
28
|
|
|
20
29
|
class BaseApplication:
|
|
@@ -110,6 +119,40 @@ class BaseApplication:
|
|
|
110
119
|
|
|
111
120
|
self.event_subscriptions[event_id].workflow_class = workflow_class
|
|
112
121
|
|
|
122
|
+
async def start(
|
|
123
|
+
self,
|
|
124
|
+
workflow_class: Type[WorkflowInterface],
|
|
125
|
+
ui_enabled: bool = True,
|
|
126
|
+
has_configmap: bool = False,
|
|
127
|
+
):
|
|
128
|
+
"""Start the application based on the configured APPLICATION_MODE.
|
|
129
|
+
|
|
130
|
+
Args:
|
|
131
|
+
workflow_class: The workflow class to register with the server.
|
|
132
|
+
ui_enabled: Whether to enable the UI. Defaults to True.
|
|
133
|
+
has_configmap: Whether the application has a configmap. Defaults to False.
|
|
134
|
+
|
|
135
|
+
Behavior based on APPLICATION_MODE:
|
|
136
|
+
- LOCAL: Starts worker in daemon mode and server (for local development)
|
|
137
|
+
- WORKER: Starts only the worker in non-daemon mode (for production worker pods)
|
|
138
|
+
- SERVER: Starts only the server (for production API server pods)
|
|
139
|
+
|
|
140
|
+
Raises:
|
|
141
|
+
ValueError: If APPLICATION_MODE is not a valid ApplicationMode value.
|
|
142
|
+
"""
|
|
143
|
+
if APPLICATION_MODE in (ApplicationMode.LOCAL, ApplicationMode.WORKER):
|
|
144
|
+
await self._start_worker(
|
|
145
|
+
daemon=APPLICATION_MODE == ApplicationMode.LOCAL,
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
if APPLICATION_MODE in (ApplicationMode.LOCAL, ApplicationMode.SERVER):
|
|
149
|
+
await self._setup_server(
|
|
150
|
+
workflow_class=workflow_class,
|
|
151
|
+
ui_enabled=ui_enabled,
|
|
152
|
+
has_configmap=has_configmap,
|
|
153
|
+
)
|
|
154
|
+
await self._start_server()
|
|
155
|
+
|
|
113
156
|
async def setup_workflow(
|
|
114
157
|
self,
|
|
115
158
|
workflow_and_activities_classes: List[
|
|
@@ -167,7 +210,12 @@ class BaseApplication:
|
|
|
167
210
|
raise ValueError("Workflow client not initialized")
|
|
168
211
|
return await self.workflow_client.start_workflow(workflow_args, workflow_class) # type: ignore
|
|
169
212
|
|
|
213
|
+
@deprecated("Use application.start(). Deprecated since v2.3.0.")
|
|
214
|
+
@observability(logger=logger, metrics=metrics, traces=traces)
|
|
170
215
|
async def start_worker(self, daemon: bool = True):
|
|
216
|
+
return await self._start_worker(daemon=daemon)
|
|
217
|
+
|
|
218
|
+
async def _start_worker(self, daemon: bool = True):
|
|
171
219
|
"""
|
|
172
220
|
Start the worker for the application.
|
|
173
221
|
|
|
@@ -178,11 +226,25 @@ class BaseApplication:
|
|
|
178
226
|
raise ValueError("Worker not initialized")
|
|
179
227
|
await self.worker.start(daemon=daemon)
|
|
180
228
|
|
|
229
|
+
@deprecated("Use application.start(). Deprecated since v2.3.0.")
|
|
230
|
+
@observability(logger=logger, metrics=metrics, traces=traces)
|
|
181
231
|
async def setup_server(
|
|
182
232
|
self,
|
|
183
233
|
workflow_class: Type[WorkflowInterface],
|
|
184
234
|
ui_enabled: bool = True,
|
|
185
235
|
has_configmap: bool = False,
|
|
236
|
+
):
|
|
237
|
+
return await self._setup_server(
|
|
238
|
+
workflow_class=workflow_class,
|
|
239
|
+
ui_enabled=ui_enabled,
|
|
240
|
+
has_configmap=has_configmap,
|
|
241
|
+
)
|
|
242
|
+
|
|
243
|
+
async def _setup_server(
|
|
244
|
+
self,
|
|
245
|
+
workflow_class: Type[WorkflowInterface],
|
|
246
|
+
ui_enabled: bool = True,
|
|
247
|
+
has_configmap: bool = False,
|
|
186
248
|
):
|
|
187
249
|
"""
|
|
188
250
|
Set up FastAPI server and automatically mount MCP if enabled.
|
|
@@ -239,7 +301,12 @@ class BaseApplication:
|
|
|
239
301
|
triggers=[HttpWorkflowTrigger()],
|
|
240
302
|
)
|
|
241
303
|
|
|
304
|
+
@deprecated("Use application.start(). Deprecated since v2.3.0.")
|
|
305
|
+
@observability(logger=logger, metrics=metrics, traces=traces)
|
|
242
306
|
async def start_server(self):
|
|
307
|
+
return await self._start_server()
|
|
308
|
+
|
|
309
|
+
async def _start_server(self):
|
|
243
310
|
"""
|
|
244
311
|
Start the FastAPI server for the application.
|
|
245
312
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
from concurrent.futures import ThreadPoolExecutor
|
|
2
2
|
from typing import Any, Dict, List, Optional, Tuple, Type
|
|
3
3
|
|
|
4
|
+
from typing_extensions import deprecated
|
|
5
|
+
|
|
4
6
|
from application_sdk.application import BaseApplication
|
|
5
7
|
from application_sdk.clients.sql import BaseSQLClient
|
|
6
8
|
from application_sdk.clients.utils import get_workflow_client
|
|
@@ -146,8 +148,33 @@ class BaseSQLMetadataExtractionApplication(BaseApplication):
|
|
|
146
148
|
)
|
|
147
149
|
return workflow_response
|
|
148
150
|
|
|
151
|
+
@observability(logger=logger, metrics=metrics, traces=traces)
|
|
152
|
+
async def start(
|
|
153
|
+
self,
|
|
154
|
+
workflow_class: Type = BaseSQLMetadataExtractionWorkflow,
|
|
155
|
+
ui_enabled: bool = True,
|
|
156
|
+
has_configmap: bool = False,
|
|
157
|
+
):
|
|
158
|
+
"""Start the SQL metadata extraction application.
|
|
159
|
+
|
|
160
|
+
Args:
|
|
161
|
+
workflow_class: The workflow class to register. Defaults to BaseSQLMetadataExtractionWorkflow.
|
|
162
|
+
ui_enabled: Whether to enable the UI. Defaults to True.
|
|
163
|
+
has_configmap: Whether the application has a configmap. Defaults to False.
|
|
164
|
+
"""
|
|
165
|
+
await super().start(
|
|
166
|
+
workflow_class=workflow_class,
|
|
167
|
+
ui_enabled=ui_enabled,
|
|
168
|
+
has_configmap=has_configmap,
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
@deprecated("Use application.start(). Deprecated since v2.3.0.")
|
|
149
172
|
@observability(logger=logger, metrics=metrics, traces=traces)
|
|
150
173
|
async def start_worker(self, daemon: bool = True):
|
|
174
|
+
return await self._start_worker(daemon=daemon)
|
|
175
|
+
|
|
176
|
+
@observability(logger=logger, metrics=metrics, traces=traces)
|
|
177
|
+
async def _start_worker(self, daemon: bool = True):
|
|
151
178
|
"""
|
|
152
179
|
Start the worker for the SQL metadata extraction application.
|
|
153
180
|
"""
|
|
@@ -155,12 +182,27 @@ class BaseSQLMetadataExtractionApplication(BaseApplication):
|
|
|
155
182
|
raise ValueError("Worker not initialized")
|
|
156
183
|
await self.worker.start(daemon=daemon)
|
|
157
184
|
|
|
185
|
+
@deprecated("Use application.start(). Deprecated since v2.3.0.")
|
|
158
186
|
@observability(logger=logger, metrics=metrics, traces=traces)
|
|
159
187
|
async def setup_server(
|
|
188
|
+
self,
|
|
189
|
+
workflow_class: Type = BaseSQLMetadataExtractionWorkflow,
|
|
190
|
+
ui_enabled: bool = True,
|
|
191
|
+
has_configmap: bool = False,
|
|
192
|
+
):
|
|
193
|
+
return await self._setup_server(
|
|
194
|
+
workflow_class=workflow_class,
|
|
195
|
+
ui_enabled=ui_enabled,
|
|
196
|
+
has_configmap=has_configmap,
|
|
197
|
+
)
|
|
198
|
+
|
|
199
|
+
@observability(logger=logger, metrics=metrics, traces=traces)
|
|
200
|
+
async def _setup_server(
|
|
160
201
|
self,
|
|
161
202
|
workflow_class: Type[
|
|
162
203
|
BaseSQLMetadataExtractionWorkflow
|
|
163
204
|
] = BaseSQLMetadataExtractionWorkflow,
|
|
205
|
+
ui_enabled: bool = True,
|
|
164
206
|
has_configmap: bool = False,
|
|
165
207
|
) -> Any:
|
|
166
208
|
"""
|
|
@@ -168,6 +210,7 @@ class BaseSQLMetadataExtractionApplication(BaseApplication):
|
|
|
168
210
|
|
|
169
211
|
Args:
|
|
170
212
|
workflow_class (Type): Workflow class to register with the server. Defaults to BaseSQLMetadataExtractionWorkflow.
|
|
213
|
+
ui_enabled (bool): Whether to enable the UI. Defaults to True.
|
|
171
214
|
has_configmap (bool): Whether the application has a configmap. Defaults to False.
|
|
172
215
|
|
|
173
216
|
Returns:
|
|
@@ -180,6 +223,7 @@ class BaseSQLMetadataExtractionApplication(BaseApplication):
|
|
|
180
223
|
self.server = APIServer(
|
|
181
224
|
handler=self.handler_class(sql_client=self.client_class()),
|
|
182
225
|
workflow_client=self.workflow_client,
|
|
226
|
+
ui_enabled=ui_enabled,
|
|
183
227
|
has_configmap=has_configmap,
|
|
184
228
|
)
|
|
185
229
|
|
{atlan_application_sdk-2.2.0 → atlan_application_sdk-2.3.1}/application_sdk/clients/temporal.py
RENAMED
|
@@ -2,6 +2,7 @@ import asyncio
|
|
|
2
2
|
import time
|
|
3
3
|
import uuid
|
|
4
4
|
from concurrent.futures import ThreadPoolExecutor
|
|
5
|
+
from datetime import timedelta
|
|
5
6
|
from typing import Any, Dict, Optional, Sequence, Type
|
|
6
7
|
|
|
7
8
|
from temporalio import activity, workflow
|
|
@@ -18,6 +19,7 @@ from application_sdk.clients.workflow import WorkflowClient
|
|
|
18
19
|
from application_sdk.constants import (
|
|
19
20
|
APPLICATION_NAME,
|
|
20
21
|
DEPLOYMENT_NAME,
|
|
22
|
+
GRACEFUL_SHUTDOWN_TIMEOUT_SECONDS,
|
|
21
23
|
IS_LOCKING_DISABLED,
|
|
22
24
|
MAX_CONCURRENT_ACTIVITIES,
|
|
23
25
|
WORKFLOW_HOST,
|
|
@@ -357,7 +359,7 @@ class TemporalWorkflowClient(WorkflowClient):
|
|
|
357
359
|
activity_executor: Optional[ThreadPoolExecutor] = None,
|
|
358
360
|
auto_start_token_refresh: bool = True,
|
|
359
361
|
) -> Worker:
|
|
360
|
-
"""Create a Temporal worker with automatic token refresh.
|
|
362
|
+
"""Create a Temporal worker with automatic token refresh and graceful shutdown.
|
|
361
363
|
|
|
362
364
|
Args:
|
|
363
365
|
activities (Sequence[CallableType]): Activity functions to register.
|
|
@@ -432,6 +434,9 @@ class TemporalWorkflowClient(WorkflowClient):
|
|
|
432
434
|
),
|
|
433
435
|
max_concurrent_activities=max_concurrent_activities,
|
|
434
436
|
activity_executor=activity_executor,
|
|
437
|
+
graceful_shutdown_timeout=timedelta(
|
|
438
|
+
seconds=GRACEFUL_SHUTDOWN_TIMEOUT_SECONDS
|
|
439
|
+
),
|
|
435
440
|
interceptors=[
|
|
436
441
|
CorrelationContextInterceptor(),
|
|
437
442
|
EventInterceptor(),
|
|
@@ -22,6 +22,7 @@ Note:
|
|
|
22
22
|
|
|
23
23
|
import os
|
|
24
24
|
from datetime import timedelta
|
|
25
|
+
from enum import Enum
|
|
25
26
|
|
|
26
27
|
from dotenv import load_dotenv
|
|
27
28
|
|
|
@@ -135,6 +136,14 @@ START_TO_CLOSE_TIMEOUT = timedelta(
|
|
|
135
136
|
) # 2 hours
|
|
136
137
|
)
|
|
137
138
|
|
|
139
|
+
#: Graceful shutdown timeout for workers
|
|
140
|
+
#: This is the maximum time the worker will wait for in-flight activities to complete
|
|
141
|
+
#: before forcing shutdown when receiving SIGTERM/SIGINT signals.
|
|
142
|
+
#: The worker will exit early if all activities complete before this timeout.
|
|
143
|
+
GRACEFUL_SHUTDOWN_TIMEOUT_SECONDS = int(
|
|
144
|
+
os.getenv("ATLAN_GRACEFUL_SHUTDOWN_TIMEOUT_SECONDS", 12 * 60 * 60) # 12 hours
|
|
145
|
+
)
|
|
146
|
+
|
|
138
147
|
# SQL Client Constants
|
|
139
148
|
#: Whether to use server-side cursors for SQL operations
|
|
140
149
|
USE_SERVER_SIDE_CURSOR = bool(os.getenv("ATLAN_SQL_USE_SERVER_SIDE_CURSOR", "true"))
|
|
@@ -279,6 +288,22 @@ ENABLE_MCP = os.getenv("ENABLE_MCP", "false").lower() == "true"
|
|
|
279
288
|
MCP_METADATA_KEY = "__atlan_application_sdk_mcp_metadata"
|
|
280
289
|
|
|
281
290
|
|
|
291
|
+
class ApplicationMode(str, Enum):
|
|
292
|
+
"""Application execution mode.
|
|
293
|
+
|
|
294
|
+
Determines which components of the application are started:
|
|
295
|
+
- LOCAL: Starts both the worker (daemon mode) and the server. Used for local development.
|
|
296
|
+
- WORKER: Starts only the worker (non-daemon mode). Used in production for worker pods.
|
|
297
|
+
- SERVER: Starts only the server. Used in production for API server pods.
|
|
298
|
+
"""
|
|
299
|
+
|
|
300
|
+
LOCAL = "LOCAL"
|
|
301
|
+
WORKER = "WORKER"
|
|
302
|
+
SERVER = "SERVER"
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
APPLICATION_MODE = ApplicationMode(os.getenv("APPLICATION_MODE", "LOCAL").upper())
|
|
306
|
+
|
|
282
307
|
# Disable Analytics Configuration for DAFT
|
|
283
308
|
os.environ["DO_NOT_TRACK"] = "true"
|
|
284
309
|
os.environ["SCARF_NO_ANALYTICS"] = "true"
|