atlan-application-sdk 0.1.1rc45__tar.gz → 0.1.1rc46__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-0.1.1rc46/.github/release_notes.md +7 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/CHANGELOG.md +9 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/PKG-INFO +1 -1
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/lock_management.py +43 -42
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/interceptors/lock.py +10 -5
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/version.py +1 -1
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/pyproject.toml +1 -1
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/activities/test_lock_management.py +19 -2
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/uv.lock +1 -1
- atlan_application_sdk-0.1.1rc45/.github/release_notes.md +0 -9
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/documentation.mdc +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/exception-handling.mdc +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/guidelines.mdc +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/logging.mdc +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/performance.mdc +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/setup.mdc +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/standards.mdc +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/testing.mdc +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.env.example +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/CODEOWNERS +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/ISSUE_TEMPLATE/config.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/actions/docgen/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/actions/doclint/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/actions/docstring-coverage/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/actions/e2e-apps/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/actions/e2e-examples/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/actions/setup-deps/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/actions/sync-branches/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/actions/trivy/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/actions/trivy-container/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/actions/unit-tests/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/dependabot.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/pull_request_template.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/scripts/extract_release_notes.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/scripts/pre_release.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/scripts/release.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/scripts/trivy-to-markdown.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/scripts/update_changelog.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/AMPM.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Accessibility.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Acronyms.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Adverbs.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Auto.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Avoid.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Contractions.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Dashes.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/DateFormat.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/DateNumbers.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/DateOrder.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Ellipses.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/FirstPerson.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Foreign.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Gender.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/GenderBias.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/GeneralURL.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/HeadingAcronyms.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/HeadingColons.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/HeadingPunctuation.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Headings.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Hyphens.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Negative.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Ordinal.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/OxfordComma.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Passive.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Percentages.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Plurals.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Quotes.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/RangeTime.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Semicolon.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/SentenceLength.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Spacing.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Suspended.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Terms.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/URLFormat.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Units.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Vocab.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/We.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Wordiness.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/meta.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/config/vocabularies/deviations/accept.txt +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/config/vocabularies/deviations/reject.txt +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/checks.properties.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/checks.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/codeql.properties.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/codeql.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/dependency-review.properties.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/dependency-review.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/stale.properties.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/stale.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/trivy-container.properties.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/trivy-container.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/trivy.properties.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/trivy.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflows/codeql.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflows/pre-release.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflows/pull_request.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflows/push.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflows/release.yaml.disabled +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflows/scale-tests.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflows/schedule.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflows/tag-and-publish.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflows/trivy-container.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflows/verify-snyk-status.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.gitignore +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.pre-commit-config.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.vscode/launch.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/CODE_OF_CONDUCT.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/CONTRIBUTING.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/LICENSE +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/NOTICE +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/README.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/SECURITY.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/common/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/common/models.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/common/utils.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/metadata_extraction/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/metadata_extraction/base.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/metadata_extraction/rest.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/metadata_extraction/sql.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/query_extraction/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/query_extraction/sql.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/application/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/application/metadata_extraction/sql.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/atlan.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/atlan_auth.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/base.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/models.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/redis.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/sql.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/temporal.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/utils.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/workflow.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/common/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/common/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/common/aws_utils.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/common/dapr_utils.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/common/dataframe_utils.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/common/error_codes.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/common/utils.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/constants.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/decorators/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/decorators/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/decorators/locks.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/decorators/mcp_tool.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/exporters/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/exporters/mkdocs.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/models/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/models/export/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/models/export/page.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/models/manifest/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/models/manifest/customer.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/models/manifest/internal.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/models/manifest/metadata.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/models/manifest/page.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/models/manifest/section.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/parsers/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/parsers/directory.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/parsers/manifest.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/events/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/events/models.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/handlers/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/handlers/base.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/handlers/sql.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/inputs/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/inputs/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/inputs/iceberg.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/inputs/json.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/inputs/parquet.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/inputs/sql_query.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/interceptors/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/interceptors/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/interceptors/cleanup.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/interceptors/events.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/observability/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/observability/decorators/observability_decorator.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/observability/logger_adaptor.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/observability/metrics_adaptor.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/observability/observability.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/observability/traces_adaptor.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/observability/utils.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/outputs/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/outputs/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/outputs/iceberg.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/outputs/json.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/outputs/parquet.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/server/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/server/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/server/fastapi/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/server/fastapi/middleware/logmiddleware.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/server/fastapi/middleware/metrics.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/server/fastapi/models.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/server/fastapi/routers/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/server/fastapi/routers/server.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/server/fastapi/utils.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/server/mcp/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/server/mcp/models.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/server/mcp/server.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/services/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/services/atlan_storage.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/services/eventstore.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/services/objectstore.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/services/secretstore.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/services/statestore.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/e2e/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/e2e/base.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/e2e/client.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/e2e/conftest.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/e2e/utils.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/clients/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/clients/sql.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/common/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/common/logger.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/handlers/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/sql_metadata.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/sql_preflight.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/inputs/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/inputs/json_input.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/inputs/parquet_input.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/outputs/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/outputs/json_output.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/outputs/statestore.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/server/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/server/fastapi/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/sql_client.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/temporal.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/README.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/config_loader.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/data_generator.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/driver.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/examples/config.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/output_handler/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/output_handler/base.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/output_handler/csv_handler.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/output_handler/json_handler.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/output_handler/parquet_handler.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/workflow_monitoring.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/atlas/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/atlas/sql.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/common/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/common/utils.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/query/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/query/templates/column.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/query/templates/database.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/query/templates/extras-procedure.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/query/templates/function.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/query/templates/schema.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/query/templates/table.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/query/templates/tag_attachment.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/worker.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/workflows/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/workflows/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/workflows/metadata_extraction/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/workflows/metadata_extraction/sql.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/workflows/query_extraction/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/workflows/query_extraction/sql.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/components/README.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/components/atlan-storage.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/components/aws-secrets.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/components/deployment-secrets.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/components/eventstore.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/components/objectstore.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/components/secretstore.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/components/statestore.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/API.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/activities.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/application.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/application_sql.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/atlanupload.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/clients.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/common.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/handlers.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/inputs.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/mcp.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/output_paths.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/outputs.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/server.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/services.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/temporal_auth.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/worker.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/workflows.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/configuration.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/guides/architecture.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/guides/atlantis.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/guides/best-practices.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/guides/getting-started.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/guides/index.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/guides/partners.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/guides/secretstores.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/guides/sql-application-guide.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/guides/test-framework.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/index.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/setup/LINUX.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/setup/MAC.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/setup/WINDOWS.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/setup/troubleshooting.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/static/assets/logo.svg +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/static/images/phoenix-sdk-featureset.png +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/static/javascripts/mathjax.js +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/docs/static/stylesheets/extra.css +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/docs/mkdocs.yml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/examples/README.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/examples/application_custom_fastapi.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/examples/application_fastapi.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/examples/application_hello_world.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/examples/application_sql.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/examples/application_sql_miner.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/examples/application_sql_with_custom_pyatlan_transformer.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/examples/application_sql_with_custom_transformer.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/examples/run_examples.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/examples/sql_query_templates/database.yaml +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/.cursor/BUGBOT.md +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/conftest.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/activities/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/activities/common/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/activities/common/test_utils.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/activities/metadata_extraction/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/activities/metadata_extraction/test_sql.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/activities/query_extraction/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/activities/test_activities.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/application/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/application/metadata_extraction/test_sql.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/application/test_application.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/clients/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/clients/test_async_sql_client.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/clients/test_atlan_auth.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/clients/test_atlan_client.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/clients/test_atlanauth.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/clients/test_base_client.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/clients/test_redis_client.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/clients/test_sql_client.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/clients/test_temporal_client.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/common/test_aws_utils.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/common/test_credential_utils.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/common/test_utils.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/common/test_utils_file_discovery.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/decorators/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/decorators/test_mcp_tool.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/docgen/parsers/test_directory_parser.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/docgen/parsers/test_manifest_parser.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/handlers/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/handlers/sql/test_auth.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/handlers/sql/test_check_schemas_and_databases.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/handlers/sql/test_extract_allowed_schemas.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/handlers/sql/test_metadata.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/handlers/sql/test_preflight_check.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/handlers/sql/test_prepare_metadata.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/handlers/sql/test_tables_check.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/handlers/sql/test_validate_filters.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/handlers/test_base_handler.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/inputs/test_base_input.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/inputs/test_json.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/inputs/test_parquet.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/observability/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/observability/test_logger_adaptor.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/observability/test_metrics_adaptor.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/observability/test_traces_adaptor.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/outputs/test_iceberg.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/outputs/test_json_output.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/outputs/test_output.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/outputs/test_parquet_output.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/server/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/server/fastapi/routers/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/server/fastapi/routers/server.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/server/fastapi/test_fastapi.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/server/mcp/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/server/mcp/test_mcp_server.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/services/test_atlan_storage.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/services/test_eventstore.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/services/test_objectstore.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/services/test_statestore.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/test_worker.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/raw_columns.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/raw_databases.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/raw_functions.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/raw_procedures.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/raw_schemas.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/raw_tables.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/transformed_columns.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/transformed_databases.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/transformed_functions.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/transformed_procedures.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/transformed_schemas.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/transformed_tables.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/test_column.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/test_database.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/test_function.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/test_procedure.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/test_schema.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/test_table.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/raw/column.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/raw/database.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/raw/extras-procedure.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/raw/function.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/raw/schema.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/raw/table.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/transformed/column.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/transformed/database.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/transformed/extras-procedure.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/transformed/function.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/transformed/schema.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/transformed/table.json +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/test_sql_transformer.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/test_sql_transformer_output_validation.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/workflows/metadata_extraction/test_sql_workflow.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/workflows/query_extraction/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/tests/unit/workflows/query_extraction/test_sql.py +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
## v0.1.1rc46 (September 18, 2025)
|
|
2
|
+
|
|
3
|
+
Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc45...v0.1.1rc46
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
- Fix semaphore implementation to allow multiple batching without getting into max_concurrent_activities issue (#725) (by @Mustafa in [2a66f13](https://github.com/atlanhq/application-sdk/commit/2a66f13))
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
|
|
4
|
+
## v0.1.1rc46 (September 18, 2025)
|
|
5
|
+
|
|
6
|
+
Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc45...v0.1.1rc46
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- Fix semaphore implementation to allow multiple batching without getting into max_concurrent_activities issue (#725) (by @Mustafa in [2a66f13](https://github.com/atlanhq/application-sdk/commit/2a66f13))
|
|
11
|
+
|
|
3
12
|
## v0.1.1rc45 (September 18, 2025)
|
|
4
13
|
|
|
5
14
|
Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc44...v0.1.1rc45
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: atlan-application-sdk
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1rc46
|
|
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
|
|
@@ -5,15 +5,15 @@ allowing the workflow to orchestrate locking without hitting Temporal's
|
|
|
5
5
|
deadlock timeout.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
-
import asyncio
|
|
9
8
|
import random
|
|
10
9
|
from typing import Any, Dict
|
|
11
10
|
|
|
12
11
|
from temporalio import activity
|
|
12
|
+
from temporalio.exceptions import ApplicationError
|
|
13
13
|
|
|
14
14
|
from application_sdk.clients.redis import RedisClientAsync
|
|
15
15
|
from application_sdk.common.error_codes import ActivityError
|
|
16
|
-
from application_sdk.constants import APPLICATION_NAME
|
|
16
|
+
from application_sdk.constants import APPLICATION_NAME
|
|
17
17
|
from application_sdk.observability.logger_adaptor import get_logger
|
|
18
18
|
|
|
19
19
|
logger = get_logger(__name__)
|
|
@@ -45,40 +45,41 @@ async def acquire_distributed_lock(
|
|
|
45
45
|
"""
|
|
46
46
|
# Input validation
|
|
47
47
|
if max_locks <= 0:
|
|
48
|
-
raise
|
|
49
|
-
f"{ActivityError.LOCK_ACQUISITION_ERROR}: max_locks must be greater than 0, got {max_locks}"
|
|
48
|
+
raise ApplicationError(
|
|
49
|
+
f"{ActivityError.LOCK_ACQUISITION_ERROR}: max_locks must be greater than 0, got {max_locks}",
|
|
50
|
+
non_retryable=True,
|
|
51
|
+
)
|
|
52
|
+
slot = random.randint(0, max_locks - 1)
|
|
53
|
+
resource_id = f"{APPLICATION_NAME}:{lock_name}:{slot}"
|
|
54
|
+
|
|
55
|
+
try:
|
|
56
|
+
async with RedisClientAsync() as redis_client:
|
|
57
|
+
# Acquire lock - connection will stay open until context exits
|
|
58
|
+
acquired = await redis_client._acquire_lock(
|
|
59
|
+
resource_id, owner_id, ttl_seconds
|
|
60
|
+
)
|
|
61
|
+
if acquired:
|
|
62
|
+
logger.info(f"Lock acquired for slot {slot}, resource: {resource_id}")
|
|
63
|
+
return {
|
|
64
|
+
"status": True,
|
|
65
|
+
"slot_id": slot,
|
|
66
|
+
"resource_id": resource_id,
|
|
67
|
+
"owner_id": owner_id,
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
raise ActivityError(
|
|
71
|
+
f"{ActivityError.LOCK_ACQUISITION_ERROR}: Lock not acquired for {resource_id}, will retry after some time"
|
|
72
|
+
)
|
|
73
|
+
except Exception as e:
|
|
74
|
+
# Redis connection or operation failed - propagate as activity error
|
|
75
|
+
if isinstance(e, (ActivityError)):
|
|
76
|
+
raise e
|
|
77
|
+
logger.error(f"Redis error during lock acquisition: {e}")
|
|
78
|
+
raise ApplicationError(
|
|
79
|
+
f"Redis error during lock acquisition for {resource_id}, error: {e}",
|
|
80
|
+
non_retryable=True,
|
|
81
|
+
type=type(e).__name__,
|
|
50
82
|
)
|
|
51
|
-
|
|
52
|
-
async with RedisClientAsync() as redis_client:
|
|
53
|
-
while True:
|
|
54
|
-
slot = random.randint(0, max_locks - 1)
|
|
55
|
-
resource_id = f"{APPLICATION_NAME}:{lock_name}:{slot}"
|
|
56
|
-
|
|
57
|
-
try:
|
|
58
|
-
# Acquire lock - connection will stay open until context exits
|
|
59
|
-
acquired = await redis_client._acquire_lock(
|
|
60
|
-
resource_id, owner_id, ttl_seconds
|
|
61
|
-
)
|
|
62
|
-
if acquired:
|
|
63
|
-
logger.info(
|
|
64
|
-
f"Lock acquired for slot {slot}, resource: {resource_id}"
|
|
65
|
-
)
|
|
66
|
-
return {
|
|
67
|
-
"slot_id": slot,
|
|
68
|
-
"resource_id": resource_id,
|
|
69
|
-
"owner_id": owner_id,
|
|
70
|
-
}
|
|
71
|
-
# If not acquired, continue retrying (lock held by another owner)
|
|
72
|
-
|
|
73
|
-
except Exception as e:
|
|
74
|
-
# Redis connection or operation failed - propagate as activity error
|
|
75
|
-
logger.error(f"Redis error during lock acquisition: {e}")
|
|
76
|
-
raise ActivityError(
|
|
77
|
-
f"{ActivityError.LOCK_ACQUISITION_ERROR}: Redis error during lock acquisition for {resource_id}"
|
|
78
|
-
)
|
|
79
|
-
|
|
80
|
-
# Wait before retrying
|
|
81
|
-
await asyncio.sleep(LOCK_RETRY_INTERVAL)
|
|
82
83
|
|
|
83
84
|
|
|
84
85
|
@activity.defn
|
|
@@ -94,8 +95,8 @@ async def release_distributed_lock(
|
|
|
94
95
|
Returns:
|
|
95
96
|
True if lock was released successfully, False otherwise
|
|
96
97
|
"""
|
|
97
|
-
|
|
98
|
-
|
|
98
|
+
try:
|
|
99
|
+
async with RedisClientAsync() as redis_client:
|
|
99
100
|
released, result = await redis_client._release_lock(resource_id, owner_id)
|
|
100
101
|
if released:
|
|
101
102
|
logger.info(
|
|
@@ -103,8 +104,8 @@ async def release_distributed_lock(
|
|
|
103
104
|
)
|
|
104
105
|
return released
|
|
105
106
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
107
|
+
except Exception as e:
|
|
108
|
+
logger.error(f"Redis error during lock release for {resource_id}: {e}")
|
|
109
|
+
# Don't raise exception for lock release failures - log and return False
|
|
110
|
+
# Lock release is best-effort and shouldn't fail the workflow
|
|
111
|
+
return False
|
|
@@ -22,6 +22,7 @@ from application_sdk.constants import (
|
|
|
22
22
|
APPLICATION_NAME,
|
|
23
23
|
IS_LOCKING_DISABLED,
|
|
24
24
|
LOCK_METADATA_KEY,
|
|
25
|
+
LOCK_RETRY_INTERVAL,
|
|
25
26
|
)
|
|
26
27
|
from application_sdk.observability.logger_adaptor import get_logger
|
|
27
28
|
|
|
@@ -106,13 +107,17 @@ class RedisLockOutboundInterceptor(WorkflowOutboundInterceptor):
|
|
|
106
107
|
lock_result = None
|
|
107
108
|
|
|
108
109
|
try:
|
|
109
|
-
# Step 1: Acquire lock via dedicated activity
|
|
110
|
-
|
|
111
|
-
lock_result = await workflow.
|
|
110
|
+
# Step 1: Acquire lock via dedicated activity with Temporal retry policy
|
|
111
|
+
schedule_to_close_timeout = workflow.info().execution_timeout
|
|
112
|
+
lock_result = await workflow.execute_local_activity(
|
|
112
113
|
"acquire_distributed_lock",
|
|
113
114
|
args=[lock_name, max_locks, ttl_seconds, owner_id],
|
|
114
|
-
start_to_close_timeout=
|
|
115
|
-
retry_policy=RetryPolicy(
|
|
115
|
+
start_to_close_timeout=timedelta(seconds=30),
|
|
116
|
+
retry_policy=RetryPolicy(
|
|
117
|
+
initial_interval=timedelta(seconds=int(LOCK_RETRY_INTERVAL)),
|
|
118
|
+
backoff_coefficient=1.0,
|
|
119
|
+
),
|
|
120
|
+
schedule_to_close_timeout=schedule_to_close_timeout,
|
|
116
121
|
)
|
|
117
122
|
|
|
118
123
|
logger.debug(f"Lock acquired: {lock_result}, executing {input.activity}")
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
from unittest.mock import AsyncMock, patch
|
|
4
4
|
|
|
5
5
|
import pytest
|
|
6
|
+
from temporalio.exceptions import ApplicationError
|
|
6
7
|
|
|
7
8
|
from application_sdk.activities.lock_management import (
|
|
8
9
|
acquire_distributed_lock,
|
|
@@ -27,6 +28,7 @@ class TestAcquireDistributedLock:
|
|
|
27
28
|
result = await acquire_distributed_lock("test_resource", 5, 100, "owner1")
|
|
28
29
|
|
|
29
30
|
# Verify
|
|
31
|
+
assert result["status"] is True
|
|
30
32
|
assert "slot_id" in result
|
|
31
33
|
assert "resource_id" in result
|
|
32
34
|
assert "owner_id" in result
|
|
@@ -36,7 +38,7 @@ class TestAcquireDistributedLock:
|
|
|
36
38
|
@patch("application_sdk.activities.lock_management.RedisClientAsync")
|
|
37
39
|
async def test_acquire_lock_invalid_max_locks(self, mock_redis_client_class):
|
|
38
40
|
"""Test lock acquisition with invalid max_locks."""
|
|
39
|
-
with pytest.raises(
|
|
41
|
+
with pytest.raises(ApplicationError) as exc_info:
|
|
40
42
|
await acquire_distributed_lock("test_resource", 0, 100, "owner1")
|
|
41
43
|
|
|
42
44
|
assert "ATLAN-ACTIVITY-503-01" in str(exc_info.value)
|
|
@@ -50,12 +52,27 @@ class TestAcquireDistributedLock:
|
|
|
50
52
|
mock_client._acquire_lock.side_effect = Exception("Redis connection failed")
|
|
51
53
|
mock_redis_client_class.return_value.__aenter__.return_value = mock_client
|
|
52
54
|
|
|
55
|
+
# Execute and verify
|
|
56
|
+
with pytest.raises(ApplicationError) as exc_info:
|
|
57
|
+
await acquire_distributed_lock("test_resource", 5, 100, "owner1")
|
|
58
|
+
|
|
59
|
+
assert "Redis error during lock acquisition" in str(exc_info.value)
|
|
60
|
+
assert "Redis connection failed" in str(exc_info.value)
|
|
61
|
+
|
|
62
|
+
@patch("application_sdk.activities.lock_management.RedisClientAsync")
|
|
63
|
+
async def test_acquire_lock_not_available(self, mock_redis_client_class):
|
|
64
|
+
"""Test lock acquisition when lock is not available."""
|
|
65
|
+
# Setup mock to return False (lock not acquired)
|
|
66
|
+
mock_client = AsyncMock()
|
|
67
|
+
mock_client._acquire_lock.return_value = False
|
|
68
|
+
mock_redis_client_class.return_value.__aenter__.return_value = mock_client
|
|
69
|
+
|
|
53
70
|
# Execute and verify
|
|
54
71
|
with pytest.raises(ActivityError) as exc_info:
|
|
55
72
|
await acquire_distributed_lock("test_resource", 5, 100, "owner1")
|
|
56
73
|
|
|
57
74
|
assert "ATLAN-ACTIVITY-503-01" in str(exc_info.value)
|
|
58
|
-
assert "
|
|
75
|
+
assert "Lock not acquired" in str(exc_info.value)
|
|
59
76
|
|
|
60
77
|
|
|
61
78
|
class TestReleaseDistributedLock:
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
## v0.1.1rc45 (September 18, 2025)
|
|
2
|
-
|
|
3
|
-
Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc44...v0.1.1rc45
|
|
4
|
-
|
|
5
|
-
### Features
|
|
6
|
-
|
|
7
|
-
- add MCP (Model Context Protocol) integration to application-sdk (#698) (by @AdvitXAtlan in [a5d496e](https://github.com/atlanhq/application-sdk/commit/a5d496e))
|
|
8
|
-
- fix credentials and extra field information in docs (#724) (by @Nishchith Shetty in [a0808db](https://github.com/atlanhq/application-sdk/commit/a0808db))
|
|
9
|
-
- add minimal API docs for endpoints exposed (#721) (by @Nishchith Shetty in [3301b61](https://github.com/atlanhq/application-sdk/commit/3301b61))
|
|
File without changes
|
{atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/documentation.mdc
RENAMED
|
File without changes
|
|
File without changes
|
{atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/guidelines.mdc
RENAMED
|
File without changes
|
{atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/logging.mdc
RENAMED
|
File without changes
|
{atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/performance.mdc
RENAMED
|
File without changes
|
|
File without changes
|
{atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/standards.mdc
RENAMED
|
File without changes
|
{atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/testing.mdc
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/pull_request_template.md
RENAMED
|
File without changes
|
|
File without changes
|
{atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/scripts/pre_release.py
RENAMED
|
File without changes
|
{atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/scripts/release.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/We.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflows/codeql.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflows/push.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/.github/workflows/schedule.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/atlan.py
RENAMED
|
File without changes
|
|
File without changes
|
{atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/base.py
RENAMED
|
File without changes
|
|
File without changes
|
{atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/redis.py
RENAMED
|
File without changes
|
{atlan_application_sdk-0.1.1rc45 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/sql.py
RENAMED
|
File without changes
|