atlan-application-sdk 0.1.1rc44__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.
Files changed (425) hide show
  1. atlan_application_sdk-0.1.1rc46/.github/release_notes.md +7 -0
  2. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/CHANGELOG.md +20 -0
  3. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/PKG-INFO +1 -1
  4. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/lock_management.py +43 -42
  5. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/application/__init__.py +55 -15
  6. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/constants.py +6 -0
  7. atlan_application_sdk-0.1.1rc46/application_sdk/decorators/mcp_tool.py +63 -0
  8. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/interceptors/lock.py +10 -5
  9. atlan_application_sdk-0.1.1rc46/application_sdk/server/mcp/__init__.py +4 -0
  10. atlan_application_sdk-0.1.1rc46/application_sdk/server/mcp/models.py +11 -0
  11. atlan_application_sdk-0.1.1rc46/application_sdk/server/mcp/server.py +96 -0
  12. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/version.py +1 -1
  13. atlan_application_sdk-0.1.1rc46/docs/docs/concepts/API.md +563 -0
  14. atlan_application_sdk-0.1.1rc46/docs/docs/concepts/mcp.md +206 -0
  15. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/pyproject.toml +4 -1
  16. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/activities/test_lock_management.py +19 -2
  17. atlan_application_sdk-0.1.1rc46/tests/unit/decorators/test_mcp_tool.py +442 -0
  18. atlan_application_sdk-0.1.1rc46/tests/unit/server/mcp/test_mcp_server.py +218 -0
  19. atlan_application_sdk-0.1.1rc46/tests/unit/transformers/__init__.py +0 -0
  20. atlan_application_sdk-0.1.1rc46/tests/unit/transformers/atlas/__init__.py +0 -0
  21. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/uv.lock +336 -1
  22. atlan_application_sdk-0.1.1rc44/.github/release_notes.md +0 -7
  23. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.cursor/BUGBOT.md +0 -0
  24. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/documentation.mdc +0 -0
  25. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/exception-handling.mdc +0 -0
  26. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/guidelines.mdc +0 -0
  27. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/logging.mdc +0 -0
  28. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/performance.mdc +0 -0
  29. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/setup.mdc +0 -0
  30. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/standards.mdc +0 -0
  31. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.cursor/rules/testing.mdc +0 -0
  32. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.env.example +0 -0
  33. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/CODEOWNERS +0 -0
  34. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  35. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/ISSUE_TEMPLATE/config.yaml +0 -0
  36. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  37. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/actions/docgen/action.yaml +0 -0
  38. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/actions/doclint/action.yaml +0 -0
  39. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/actions/docstring-coverage/action.yaml +0 -0
  40. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/actions/e2e-apps/action.yaml +0 -0
  41. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/actions/e2e-examples/action.yaml +0 -0
  42. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/actions/setup-deps/action.yaml +0 -0
  43. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/actions/sync-branches/action.yaml +0 -0
  44. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/actions/trivy/action.yaml +0 -0
  45. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/actions/trivy-container/action.yaml +0 -0
  46. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/actions/unit-tests/action.yaml +0 -0
  47. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/dependabot.yaml +0 -0
  48. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/pull_request_template.md +0 -0
  49. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/scripts/extract_release_notes.py +0 -0
  50. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/scripts/pre_release.py +0 -0
  51. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/scripts/release.py +0 -0
  52. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/scripts/trivy-to-markdown.py +0 -0
  53. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/scripts/update_changelog.py +0 -0
  54. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/AMPM.yml +0 -0
  55. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Accessibility.yml +0 -0
  56. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Acronyms.yml +0 -0
  57. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Adverbs.yml +0 -0
  58. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Auto.yml +0 -0
  59. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Avoid.yml +0 -0
  60. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Contractions.yml +0 -0
  61. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Dashes.yml +0 -0
  62. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/DateFormat.yml +0 -0
  63. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/DateNumbers.yml +0 -0
  64. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/DateOrder.yml +0 -0
  65. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Ellipses.yml +0 -0
  66. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/FirstPerson.yml +0 -0
  67. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Foreign.yml +0 -0
  68. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Gender.yml +0 -0
  69. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/GenderBias.yml +0 -0
  70. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/GeneralURL.yml +0 -0
  71. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/HeadingAcronyms.yml +0 -0
  72. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/HeadingColons.yml +0 -0
  73. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/HeadingPunctuation.yml +0 -0
  74. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Headings.yml +0 -0
  75. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Hyphens.yml +0 -0
  76. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Negative.yml +0 -0
  77. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Ordinal.yml +0 -0
  78. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/OxfordComma.yml +0 -0
  79. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Passive.yml +0 -0
  80. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Percentages.yml +0 -0
  81. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Plurals.yml +0 -0
  82. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Quotes.yml +0 -0
  83. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/RangeTime.yml +0 -0
  84. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Semicolon.yml +0 -0
  85. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/SentenceLength.yml +0 -0
  86. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Spacing.yml +0 -0
  87. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Suspended.yml +0 -0
  88. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Terms.yml +0 -0
  89. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/URLFormat.yml +0 -0
  90. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Units.yml +0 -0
  91. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Vocab.yml +0 -0
  92. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/We.yml +0 -0
  93. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/Wordiness.yml +0 -0
  94. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/Microsoft/meta.json +0 -0
  95. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/config/vocabularies/deviations/accept.txt +0 -0
  96. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/styles/config/vocabularies/deviations/reject.txt +0 -0
  97. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/checks.properties.json +0 -0
  98. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/checks.yaml +0 -0
  99. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/codeql.properties.json +0 -0
  100. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/codeql.yaml +0 -0
  101. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/dependency-review.properties.json +0 -0
  102. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/dependency-review.yml +0 -0
  103. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/stale.properties.json +0 -0
  104. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/stale.yml +0 -0
  105. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/trivy-container.properties.json +0 -0
  106. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/trivy-container.yaml +0 -0
  107. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/trivy.properties.json +0 -0
  108. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflow-templates/trivy.yaml +0 -0
  109. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflows/codeql.yaml +0 -0
  110. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflows/pre-release.yaml +0 -0
  111. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflows/pull_request.yaml +0 -0
  112. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflows/push.yaml +0 -0
  113. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflows/release.yaml.disabled +0 -0
  114. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflows/scale-tests.yaml +0 -0
  115. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflows/schedule.yaml +0 -0
  116. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflows/tag-and-publish.yaml +0 -0
  117. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflows/trivy-container.yaml +0 -0
  118. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.github/workflows/verify-snyk-status.yml +0 -0
  119. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.gitignore +0 -0
  120. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.pre-commit-config.yaml +0 -0
  121. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/.vscode/launch.json +0 -0
  122. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/CODE_OF_CONDUCT.md +0 -0
  123. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/CONTRIBUTING.md +0 -0
  124. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/LICENSE +0 -0
  125. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/NOTICE +0 -0
  126. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/README.md +0 -0
  127. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/SECURITY.md +0 -0
  128. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/__init__.py +0 -0
  129. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/.cursor/BUGBOT.md +0 -0
  130. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/__init__.py +0 -0
  131. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/common/__init__.py +0 -0
  132. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/common/models.py +0 -0
  133. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/common/utils.py +0 -0
  134. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/metadata_extraction/__init__.py +0 -0
  135. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/metadata_extraction/base.py +0 -0
  136. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/metadata_extraction/rest.py +0 -0
  137. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/metadata_extraction/sql.py +0 -0
  138. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/query_extraction/__init__.py +0 -0
  139. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/activities/query_extraction/sql.py +0 -0
  140. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/application/metadata_extraction/sql.py +0 -0
  141. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/.cursor/BUGBOT.md +0 -0
  142. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/__init__.py +0 -0
  143. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/atlan.py +0 -0
  144. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/atlan_auth.py +0 -0
  145. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/base.py +0 -0
  146. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/models.py +0 -0
  147. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/redis.py +0 -0
  148. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/sql.py +0 -0
  149. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/temporal.py +0 -0
  150. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/utils.py +0 -0
  151. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/clients/workflow.py +0 -0
  152. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/common/.cursor/BUGBOT.md +0 -0
  153. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/common/__init__.py +0 -0
  154. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/common/aws_utils.py +0 -0
  155. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/common/dapr_utils.py +0 -0
  156. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/common/dataframe_utils.py +0 -0
  157. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/common/error_codes.py +0 -0
  158. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/common/utils.py +0 -0
  159. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/decorators/.cursor/BUGBOT.md +0 -0
  160. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/decorators/__init__.py +0 -0
  161. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/decorators/locks.py +0 -0
  162. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/__init__.py +0 -0
  163. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/exporters/__init__.py +0 -0
  164. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/exporters/mkdocs.py +0 -0
  165. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/models/__init__.py +0 -0
  166. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/models/export/__init__.py +0 -0
  167. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/models/export/page.py +0 -0
  168. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/models/manifest/__init__.py +0 -0
  169. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/models/manifest/customer.py +0 -0
  170. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/models/manifest/internal.py +0 -0
  171. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/models/manifest/metadata.py +0 -0
  172. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/models/manifest/page.py +0 -0
  173. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/models/manifest/section.py +0 -0
  174. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/parsers/__init__.py +0 -0
  175. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/parsers/directory.py +0 -0
  176. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/docgen/parsers/manifest.py +0 -0
  177. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/events/__init__.py +0 -0
  178. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/events/models.py +0 -0
  179. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/handlers/__init__.py +0 -0
  180. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/handlers/base.py +0 -0
  181. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/handlers/sql.py +0 -0
  182. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/inputs/.cursor/BUGBOT.md +0 -0
  183. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/inputs/__init__.py +0 -0
  184. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/inputs/iceberg.py +0 -0
  185. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/inputs/json.py +0 -0
  186. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/inputs/parquet.py +0 -0
  187. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/inputs/sql_query.py +0 -0
  188. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/interceptors/.cursor/BUGBOT.md +0 -0
  189. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/interceptors/__init__.py +0 -0
  190. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/interceptors/cleanup.py +0 -0
  191. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/interceptors/events.py +0 -0
  192. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/observability/__init__.py +0 -0
  193. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/observability/decorators/observability_decorator.py +0 -0
  194. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/observability/logger_adaptor.py +0 -0
  195. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/observability/metrics_adaptor.py +0 -0
  196. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/observability/observability.py +0 -0
  197. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/observability/traces_adaptor.py +0 -0
  198. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/observability/utils.py +0 -0
  199. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/outputs/.cursor/BUGBOT.md +0 -0
  200. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/outputs/__init__.py +0 -0
  201. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/outputs/iceberg.py +0 -0
  202. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/outputs/json.py +0 -0
  203. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/outputs/parquet.py +0 -0
  204. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/server/.cursor/BUGBOT.md +0 -0
  205. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/server/__init__.py +0 -0
  206. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/server/fastapi/__init__.py +0 -0
  207. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/server/fastapi/middleware/logmiddleware.py +0 -0
  208. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/server/fastapi/middleware/metrics.py +0 -0
  209. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/server/fastapi/models.py +0 -0
  210. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/server/fastapi/routers/__init__.py +0 -0
  211. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/server/fastapi/routers/server.py +0 -0
  212. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/server/fastapi/utils.py +0 -0
  213. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/services/__init__.py +0 -0
  214. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/services/atlan_storage.py +0 -0
  215. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/services/eventstore.py +0 -0
  216. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/services/objectstore.py +0 -0
  217. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/services/secretstore.py +0 -0
  218. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/services/statestore.py +0 -0
  219. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/__init__.py +0 -0
  220. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/e2e/__init__.py +0 -0
  221. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/e2e/base.py +0 -0
  222. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/e2e/client.py +0 -0
  223. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/e2e/conftest.py +0 -0
  224. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/e2e/utils.py +0 -0
  225. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/__init__.py +0 -0
  226. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/__init__.py +0 -0
  227. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/clients/__init__.py +0 -0
  228. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/clients/sql.py +0 -0
  229. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/common/__init__.py +0 -0
  230. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/common/logger.py +0 -0
  231. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/handlers/__init__.py +0 -0
  232. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/__init__.py +0 -0
  233. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/sql_metadata.py +0 -0
  234. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/sql_preflight.py +0 -0
  235. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/inputs/__init__.py +0 -0
  236. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/inputs/json_input.py +0 -0
  237. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/inputs/parquet_input.py +0 -0
  238. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/outputs/__init__.py +0 -0
  239. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/outputs/json_output.py +0 -0
  240. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/outputs/statestore.py +0 -0
  241. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/server/__init__.py +0 -0
  242. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/server/fastapi/__init__.py +0 -0
  243. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/sql_client.py +0 -0
  244. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/hypothesis/strategies/temporal.py +0 -0
  245. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/README.md +0 -0
  246. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/__init__.py +0 -0
  247. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/config_loader.py +0 -0
  248. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/data_generator.py +0 -0
  249. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/driver.py +0 -0
  250. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/examples/config.yaml +0 -0
  251. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/output_handler/__init__.py +0 -0
  252. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/output_handler/base.py +0 -0
  253. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/output_handler/csv_handler.py +0 -0
  254. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/output_handler/json_handler.py +0 -0
  255. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/scale_data_generator/output_handler/parquet_handler.py +0 -0
  256. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/test_utils/workflow_monitoring.py +0 -0
  257. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/__init__.py +0 -0
  258. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/atlas/__init__.py +0 -0
  259. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/atlas/sql.py +0 -0
  260. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/common/__init__.py +0 -0
  261. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/common/utils.py +0 -0
  262. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/query/__init__.py +0 -0
  263. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/query/templates/column.yaml +0 -0
  264. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/query/templates/database.yaml +0 -0
  265. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/query/templates/extras-procedure.yaml +0 -0
  266. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/query/templates/function.yaml +0 -0
  267. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/query/templates/schema.yaml +0 -0
  268. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/query/templates/table.yaml +0 -0
  269. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/transformers/query/templates/tag_attachment.yaml +0 -0
  270. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/worker.py +0 -0
  271. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/workflows/.cursor/BUGBOT.md +0 -0
  272. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/workflows/__init__.py +0 -0
  273. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/workflows/metadata_extraction/__init__.py +0 -0
  274. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/workflows/metadata_extraction/sql.py +0 -0
  275. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/workflows/query_extraction/__init__.py +0 -0
  276. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/application_sdk/workflows/query_extraction/sql.py +0 -0
  277. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/components/README.md +0 -0
  278. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/components/atlan-storage.yaml +0 -0
  279. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/components/aws-secrets.yaml +0 -0
  280. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/components/deployment-secrets.yaml +0 -0
  281. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/components/eventstore.yaml +0 -0
  282. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/components/objectstore.yaml +0 -0
  283. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/components/secretstore.yaml +0 -0
  284. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/components/statestore.yaml +0 -0
  285. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/activities.md +0 -0
  286. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/application.md +0 -0
  287. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/application_sql.md +0 -0
  288. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/atlanupload.md +0 -0
  289. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/clients.md +0 -0
  290. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/common.md +0 -0
  291. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/handlers.md +0 -0
  292. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/inputs.md +0 -0
  293. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/output_paths.md +0 -0
  294. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/outputs.md +0 -0
  295. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/server.md +0 -0
  296. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/services.md +0 -0
  297. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/temporal_auth.md +0 -0
  298. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/worker.md +0 -0
  299. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/concepts/workflows.md +0 -0
  300. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/configuration.md +0 -0
  301. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/guides/architecture.md +0 -0
  302. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/guides/atlantis.md +0 -0
  303. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/guides/best-practices.md +0 -0
  304. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/guides/getting-started.md +0 -0
  305. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/guides/index.md +0 -0
  306. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/guides/partners.md +0 -0
  307. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/guides/secretstores.md +0 -0
  308. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/guides/sql-application-guide.md +0 -0
  309. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/guides/test-framework.md +0 -0
  310. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/index.md +0 -0
  311. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/setup/LINUX.md +0 -0
  312. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/setup/MAC.md +0 -0
  313. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/setup/WINDOWS.md +0 -0
  314. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/setup/troubleshooting.md +0 -0
  315. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/static/assets/logo.svg +0 -0
  316. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/static/images/phoenix-sdk-featureset.png +0 -0
  317. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/static/javascripts/mathjax.js +0 -0
  318. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/docs/static/stylesheets/extra.css +0 -0
  319. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/docs/mkdocs.yml +0 -0
  320. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/examples/README.md +0 -0
  321. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/examples/application_custom_fastapi.py +0 -0
  322. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/examples/application_fastapi.py +0 -0
  323. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/examples/application_hello_world.py +0 -0
  324. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/examples/application_sql.py +0 -0
  325. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/examples/application_sql_miner.py +0 -0
  326. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/examples/application_sql_with_custom_pyatlan_transformer.py +0 -0
  327. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/examples/application_sql_with_custom_transformer.py +0 -0
  328. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/examples/run_examples.py +0 -0
  329. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/examples/sql_query_templates/database.yaml +0 -0
  330. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/.cursor/BUGBOT.md +0 -0
  331. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/__init__.py +0 -0
  332. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/conftest.py +0 -0
  333. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/__init__.py +0 -0
  334. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/activities/__init__.py +0 -0
  335. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/activities/common/__init__.py +0 -0
  336. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/activities/common/test_utils.py +0 -0
  337. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/activities/metadata_extraction/__init__.py +0 -0
  338. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/activities/metadata_extraction/test_sql.py +0 -0
  339. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/activities/query_extraction/__init__.py +0 -0
  340. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/activities/test_activities.py +0 -0
  341. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/application/__init__.py +0 -0
  342. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/application/metadata_extraction/test_sql.py +0 -0
  343. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/application/test_application.py +0 -0
  344. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/clients/__init__.py +0 -0
  345. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/clients/test_async_sql_client.py +0 -0
  346. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/clients/test_atlan_auth.py +0 -0
  347. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/clients/test_atlan_client.py +0 -0
  348. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/clients/test_atlanauth.py +0 -0
  349. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/clients/test_base_client.py +0 -0
  350. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/clients/test_redis_client.py +0 -0
  351. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/clients/test_sql_client.py +0 -0
  352. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/clients/test_temporal_client.py +0 -0
  353. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/common/test_aws_utils.py +0 -0
  354. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/common/test_credential_utils.py +0 -0
  355. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/common/test_utils.py +0 -0
  356. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/common/test_utils_file_discovery.py +0 -0
  357. {atlan_application_sdk-0.1.1rc44/tests/unit/handlers → atlan_application_sdk-0.1.1rc46/tests/unit/decorators}/__init__.py +0 -0
  358. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/docgen/parsers/test_directory_parser.py +0 -0
  359. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/docgen/parsers/test_manifest_parser.py +0 -0
  360. {atlan_application_sdk-0.1.1rc44/tests/unit/observability → atlan_application_sdk-0.1.1rc46/tests/unit/handlers}/__init__.py +0 -0
  361. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/handlers/sql/test_auth.py +0 -0
  362. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/handlers/sql/test_check_schemas_and_databases.py +0 -0
  363. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/handlers/sql/test_extract_allowed_schemas.py +0 -0
  364. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/handlers/sql/test_metadata.py +0 -0
  365. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/handlers/sql/test_preflight_check.py +0 -0
  366. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/handlers/sql/test_prepare_metadata.py +0 -0
  367. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/handlers/sql/test_tables_check.py +0 -0
  368. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/handlers/sql/test_validate_filters.py +0 -0
  369. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/handlers/test_base_handler.py +0 -0
  370. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/inputs/test_base_input.py +0 -0
  371. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/inputs/test_json.py +0 -0
  372. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/inputs/test_parquet.py +0 -0
  373. {atlan_application_sdk-0.1.1rc44/tests/unit/server → atlan_application_sdk-0.1.1rc46/tests/unit/observability}/__init__.py +0 -0
  374. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/observability/test_logger_adaptor.py +0 -0
  375. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/observability/test_metrics_adaptor.py +0 -0
  376. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/observability/test_traces_adaptor.py +0 -0
  377. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/outputs/test_iceberg.py +0 -0
  378. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/outputs/test_json_output.py +0 -0
  379. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/outputs/test_output.py +0 -0
  380. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/outputs/test_parquet_output.py +0 -0
  381. {atlan_application_sdk-0.1.1rc44/tests/unit/server/fastapi/routers → atlan_application_sdk-0.1.1rc46/tests/unit/server}/__init__.py +0 -0
  382. {atlan_application_sdk-0.1.1rc44/tests/unit/transformers → atlan_application_sdk-0.1.1rc46/tests/unit/server/fastapi/routers}/__init__.py +0 -0
  383. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/server/fastapi/routers/server.py +0 -0
  384. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/server/fastapi/test_fastapi.py +0 -0
  385. {atlan_application_sdk-0.1.1rc44/tests/unit/transformers/atlas → atlan_application_sdk-0.1.1rc46/tests/unit/server/mcp}/__init__.py +0 -0
  386. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/services/test_atlan_storage.py +0 -0
  387. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/services/test_eventstore.py +0 -0
  388. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/services/test_objectstore.py +0 -0
  389. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/services/test_statestore.py +0 -0
  390. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/test_worker.py +0 -0
  391. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/raw_columns.json +0 -0
  392. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/raw_databases.json +0 -0
  393. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/raw_functions.json +0 -0
  394. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/raw_procedures.json +0 -0
  395. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/raw_schemas.json +0 -0
  396. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/raw_tables.json +0 -0
  397. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/transformed_columns.json +0 -0
  398. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/transformed_databases.json +0 -0
  399. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/transformed_functions.json +0 -0
  400. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/transformed_procedures.json +0 -0
  401. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/transformed_schemas.json +0 -0
  402. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/resources/transformed_tables.json +0 -0
  403. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/test_column.py +0 -0
  404. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/test_database.py +0 -0
  405. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/test_function.py +0 -0
  406. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/test_procedure.py +0 -0
  407. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/test_schema.py +0 -0
  408. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/atlas/test_table.py +0 -0
  409. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/raw/column.json +0 -0
  410. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/raw/database.json +0 -0
  411. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/raw/extras-procedure.json +0 -0
  412. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/raw/function.json +0 -0
  413. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/raw/schema.json +0 -0
  414. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/raw/table.json +0 -0
  415. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/transformed/column.json +0 -0
  416. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/transformed/database.json +0 -0
  417. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/transformed/extras-procedure.json +0 -0
  418. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/transformed/function.json +0 -0
  419. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/transformed/schema.json +0 -0
  420. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/resources/transformed/table.json +0 -0
  421. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/test_sql_transformer.py +0 -0
  422. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/transformers/query/test_sql_transformer_output_validation.py +0 -0
  423. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/workflows/metadata_extraction/test_sql_workflow.py +0 -0
  424. {atlan_application_sdk-0.1.1rc44 → atlan_application_sdk-0.1.1rc46}/tests/unit/workflows/query_extraction/__init__.py +0 -0
  425. {atlan_application_sdk-0.1.1rc44 → 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,6 +1,26 @@
1
1
  # Changelog
2
2
 
3
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
+
12
+ ## v0.1.1rc45 (September 18, 2025)
13
+
14
+ Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc44...v0.1.1rc45
15
+
16
+ ### Features
17
+
18
+ - add MCP (Model Context Protocol) integration to application-sdk (#698) (by @AdvitXAtlan in [a5d496e](https://github.com/atlanhq/application-sdk/commit/a5d496e))
19
+ - fix credentials and extra field information in docs (#724) (by @Nishchith Shetty in [a0808db](https://github.com/atlanhq/application-sdk/commit/a0808db))
20
+ - add minimal API docs for endpoints exposed (#721) (by @Nishchith Shetty in [3301b61](https://github.com/atlanhq/application-sdk/commit/3301b61))
21
+
22
+
23
+
4
24
  ## v0.1.1rc44 (September 17, 2025)
5
25
 
6
26
  Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc43...v0.1.1rc44
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: atlan-application-sdk
3
- Version: 0.1.1rc44
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, LOCK_RETRY_INTERVAL
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 ActivityError(
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
- async with RedisClientAsync() as redis_client:
98
- try:
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
- except Exception as e:
107
- logger.error(f"Redis error during lock release for {resource_id}: {e}")
108
- # Don't raise exception for lock release failures - log and return False
109
- # Lock release is best-effort and shouldn't fail the workflow
110
- return False
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
@@ -4,6 +4,7 @@ from typing import Any, Dict, List, Optional, Tuple, Type
4
4
  from application_sdk.activities import ActivitiesInterface
5
5
  from application_sdk.clients.base import BaseClient
6
6
  from application_sdk.clients.utils import get_workflow_client
7
+ from application_sdk.constants import ENABLE_MCP
7
8
  from application_sdk.events.models import EventRegistration
8
9
  from application_sdk.handlers.base import BaseHandler
9
10
  from application_sdk.observability.logger_adaptor import get_logger
@@ -29,7 +30,7 @@ class BaseApplication:
29
30
  self,
30
31
  name: str,
31
32
  server: Optional[ServerInterface] = None,
32
- application_manifest: Optional[dict] = None,
33
+ application_manifest: Optional[Dict[str, Any]] = None,
33
34
  client_class: Optional[Type[BaseClient]] = None,
34
35
  handler_class: Optional[Type[BaseHandler]] = None,
35
36
  ):
@@ -39,6 +40,9 @@ class BaseApplication:
39
40
  Args:
40
41
  name (str): The name of the application.
41
42
  server (ServerInterface): The server class for the application.
43
+ application_manifest (Optional[Dict[str, Any]]): Application manifest configuration.
44
+ client_class (Optional[Type[BaseClient]]): Client class for the application.
45
+ handler_class (Optional[Type[BaseHandler]]): Handler class for the application.
42
46
  """
43
47
  self.application_name = name
44
48
 
@@ -49,14 +53,21 @@ class BaseApplication:
49
53
 
50
54
  self.workflow_client = get_workflow_client(application_name=name)
51
55
 
52
- self.application_manifest: Dict[str, Any] = application_manifest
56
+ self.application_manifest: Optional[Dict[str, Any]] = application_manifest
53
57
  self.bootstrap_event_registration()
54
58
 
55
59
  self.client_class = client_class or BaseClient
56
60
  self.handler_class = handler_class or BaseHandler
57
61
 
62
+ # MCP configuration
63
+ self.mcp_server: Optional["MCPServer"] = None
64
+ if ENABLE_MCP:
65
+ from application_sdk.server.mcp import MCPServer
66
+
67
+ self.mcp_server = MCPServer(application_name=name)
68
+
58
69
  def bootstrap_event_registration(self):
59
- self.event_subscriptions = {}
70
+ self.event_subscriptions: Dict[str, EventWorkflowTrigger] = {}
60
71
  if self.application_manifest is None:
61
72
  logger.warning("No application manifest found, skipping event registration")
62
73
  return
@@ -122,8 +133,8 @@ class BaseApplication:
122
133
  ]
123
134
  workflow_activities = []
124
135
  for workflow_class, activities_class in workflow_and_activities_classes:
125
- workflow_activities.extend(
126
- workflow_class.get_activities(activities_class())
136
+ workflow_activities.extend( # type: ignore
137
+ workflow_class.get_activities(activities_class()) # type: ignore
127
138
  )
128
139
 
129
140
  self.worker = Worker(
@@ -134,6 +145,13 @@ class BaseApplication:
134
145
  activity_executor=activity_executor,
135
146
  )
136
147
 
148
+ # Register MCP tools if ENABLED_MCP is True and an MCP server is initialized
149
+ if self.mcp_server:
150
+ logger.info("Registering MCP tools from workflow and activities classes")
151
+ await self.mcp_server.register_tools( # type: ignore
152
+ workflow_and_activities_classes=workflow_and_activities_classes
153
+ )
154
+
137
155
  async def start_workflow(self, workflow_args, workflow_class) -> Any:
138
156
  """
139
157
  Start a new workflow execution.
@@ -147,7 +165,7 @@ class BaseApplication:
147
165
  """
148
166
  if self.workflow_client is None:
149
167
  raise ValueError("Workflow client not initialized")
150
- return await self.workflow_client.start_workflow(workflow_args, workflow_class)
168
+ return await self.workflow_client.start_workflow(workflow_args, workflow_class) # type: ignore
151
169
 
152
170
  async def start_worker(self, daemon: bool = True):
153
171
  """
@@ -162,39 +180,61 @@ class BaseApplication:
162
180
 
163
181
  async def setup_server(
164
182
  self,
165
- workflow_class,
183
+ workflow_class: Type[WorkflowInterface],
166
184
  ui_enabled: bool = True,
167
185
  has_configmap: bool = False,
168
186
  ):
169
187
  """
170
- Optionally set up a server for the application. (No-op by default)
188
+ Set up FastAPI server and automatically mount MCP if enabled.
189
+
190
+ Args:
191
+ workflow_class (WorkflowInterface): The workflow class for the application.
192
+ ui_enabled (bool): Whether to enable the UI.
193
+ has_configmap (bool): Whether to enable the configmap.
171
194
  """
172
195
  if self.workflow_client is None:
173
196
  await self.workflow_client.load()
174
197
 
175
- # Overrides the application server. serves the UI, and handles the various triggers
198
+ mcp_http_app: Optional[Any] = None
199
+ lifespan: Optional[Any] = None
200
+
201
+ if self.mcp_server:
202
+ try:
203
+ mcp_http_app = await self.mcp_server.get_http_app()
204
+ lifespan = mcp_http_app.lifespan
205
+ except Exception as e:
206
+ logger.warning(f"Failed to get MCP HTTP app: {e}")
207
+
176
208
  self.server = APIServer(
209
+ lifespan=lifespan,
177
210
  workflow_client=self.workflow_client,
178
211
  ui_enabled=ui_enabled,
179
212
  handler=self.handler_class(client=self.client_class()),
180
213
  has_configmap=has_configmap,
181
214
  )
182
215
 
216
+ # Mount MCP at root
217
+ if mcp_http_app:
218
+ try:
219
+ self.server.app.mount("", mcp_http_app) # Mount at root
220
+ except Exception as e:
221
+ logger.warning(f"Failed to mount MCP HTTP app: {e}")
222
+
223
+ # Register event-based workflows if any
183
224
  if self.event_subscriptions:
184
225
  for event_trigger in self.event_subscriptions.values():
185
- if event_trigger.workflow_class is None:
226
+ if event_trigger.workflow_class is None: # type: ignore
186
227
  raise ValueError(
187
228
  f"Workflow class not set for event trigger {event_trigger.event_id}"
188
229
  )
189
230
 
190
- self.server.register_workflow(
191
- workflow_class=event_trigger.workflow_class,
231
+ self.server.register_workflow( # type: ignore
232
+ workflow_class=event_trigger.workflow_class, # type: ignore
192
233
  triggers=[event_trigger],
193
234
  )
194
235
 
195
- # register the workflow on the application server
196
- # the workflow is by default triggered by an HTTP POST request to the /start endpoint
197
- self.server.register_workflow(
236
+ # Register the main workflow (HTTP POST /start endpoint)
237
+ self.server.register_workflow( # type: ignore
198
238
  workflow_class=workflow_class,
199
239
  triggers=[HttpWorkflowTrigger()],
200
240
  )
@@ -255,3 +255,9 @@ REDIS_SENTINEL_HOSTS = os.getenv("REDIS_SENTINEL_HOSTS", "")
255
255
  IS_LOCKING_DISABLED = os.getenv("IS_LOCKING_DISABLED", "true").lower() == "true"
256
256
  #: Retry interval for lock acquisition
257
257
  LOCK_RETRY_INTERVAL = int(os.getenv("LOCK_RETRY_INTERVAL", "5"))
258
+
259
+ # MCP Configuration
260
+ #: Flag to indicate if MCP should be enabled or not. Turning this to true will setup an MCP server along
261
+ #: with the application.
262
+ ENABLE_MCP = os.getenv("ENABLE_MCP", "false").lower() == "true"
263
+ MCP_METADATA_KEY = "__atlan_application_sdk_mcp_metadata"
@@ -0,0 +1,63 @@
1
+ """
2
+ MCP tool decorator for marking activities as MCP tools.
3
+
4
+ This module provides the @mcp_tool decorator that developers use to mark
5
+ activities for automatic exposure via Model Context Protocol.
6
+ """
7
+
8
+ from typing import Any, Callable, Optional
9
+
10
+ from application_sdk.constants import MCP_METADATA_KEY
11
+ from application_sdk.server.mcp import MCPMetadata
12
+
13
+
14
+ def mcp_tool(
15
+ name: Optional[str] = None,
16
+ description: Optional[str] = None,
17
+ visible: bool = True,
18
+ *args,
19
+ **kwargs,
20
+ ):
21
+ """
22
+ Decorator to mark functions as MCP tools.
23
+
24
+ Use this decorator to mark any function as an MCP tool. You can additionally use the `visible`
25
+ parameter to control whether the tool is visible at runtime or not.
26
+
27
+ Function parameters that are Pydantic models will be automatically converted into correct JSON schema
28
+ for the tool specification. This is handled by the underlying FastMCP server implementation.
29
+
30
+ Args:
31
+ name(Optional[str]): The name of the tool. Defaults to the function name.
32
+ description(Optional[str]): The description of the tool. Defaults to the function docstring.
33
+ visible(bool): Whether the MCP tool is visible at runtime or not. Defaults to True.
34
+ *args: Additional arguments to pass to the tool.
35
+ **kwargs: Additional keyword arguments to pass to the tool.
36
+
37
+ Examples:
38
+ >>> @mcp_tool(name="add_numbers", description="Add two numbers", visible=True)
39
+ >>> def add_numbers(self, a: int, b: int) -> int:
40
+ >>> return a + b
41
+
42
+
43
+ >>> # Use with Temporal activity decorator
44
+ >>> @activity.defn
45
+ >>> @mcp_tool(name="get_weather", description="Get the weather for a given city")
46
+ >>> async def get_weather(self, city: str) -> str:
47
+ >>> # ... activity implementation unchanged ...
48
+ """
49
+
50
+ def decorator(f: Callable[..., Any]) -> Callable[..., Any]:
51
+ mcp_metadata = MCPMetadata(
52
+ name=name if name else f.__name__,
53
+ description=description if description else f.__doc__,
54
+ visible=visible,
55
+ args=args,
56
+ kwargs=kwargs,
57
+ )
58
+
59
+ setattr(f, MCP_METADATA_KEY, mcp_metadata)
60
+
61
+ return f
62
+
63
+ return decorator
@@ -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 (can take >2s safely)
110
- start_to_close_timeout = workflow.info().execution_timeout
111
- lock_result = await workflow.execute_activity(
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=start_to_close_timeout,
115
- retry_policy=RetryPolicy(maximum_attempts=1),
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}")
@@ -0,0 +1,4 @@
1
+ from application_sdk.server.mcp.models import MCPMetadata
2
+ from application_sdk.server.mcp.server import MCPServer
3
+
4
+ __all__ = ["MCPServer", "MCPMetadata"]
@@ -0,0 +1,11 @@
1
+ from typing import Any, Dict, Optional, Tuple
2
+
3
+ from pydantic import BaseModel
4
+
5
+
6
+ class MCPMetadata(BaseModel):
7
+ name: str
8
+ description: Optional[str]
9
+ visible: bool
10
+ args: Tuple[Any, ...] = ()
11
+ kwargs: Dict[str, Any] = {}
@@ -0,0 +1,96 @@
1
+ """
2
+ MCP Server implementation using FastMCP for Atlan Application SDK.
3
+
4
+ This module provides the MCPServer class that automatically discovers
5
+ activities marked with @mcp_tool decorators and mounts them on FastAPI
6
+ using streamable HTTP transport.
7
+ """
8
+
9
+ from typing import Any, Callable, List, Optional, Tuple, Type
10
+
11
+ from fastmcp import FastMCP
12
+ from fastmcp.server.http import StarletteWithLifespan
13
+
14
+ from application_sdk.activities import ActivitiesInterface
15
+ from application_sdk.constants import MCP_METADATA_KEY
16
+ from application_sdk.observability.logger_adaptor import get_logger
17
+ from application_sdk.server.mcp.models import MCPMetadata
18
+ from application_sdk.workflows import WorkflowInterface
19
+
20
+
21
+ class MCPServer:
22
+ """
23
+ MCP Server using FastMCP 2.0 with FastAPI mounting capability.
24
+
25
+ This server automatically discovers activities marked with @mcp_tool
26
+ and creates a FastMCP server that can be mounted on FastAPI.
27
+ """
28
+
29
+ def __init__(self, application_name: str, instructions: Optional[str] = None):
30
+ """
31
+ Initialize the MCP server.
32
+
33
+ Args:
34
+ application_name (str): Name of the application
35
+ instructions (Optional[str]): Description for the MCP server
36
+ """
37
+ self.application_name = application_name
38
+
39
+ self.logger = get_logger(__name__)
40
+
41
+ # FastMCP Server
42
+ self.server = FastMCP(
43
+ name=f"{application_name} MCP",
44
+ instructions=instructions,
45
+ on_duplicate_tools="error",
46
+ )
47
+
48
+ async def register_tools(
49
+ self,
50
+ workflow_and_activities_classes: List[
51
+ Tuple[Type[WorkflowInterface], Type[ActivitiesInterface]]
52
+ ],
53
+ ) -> None:
54
+ """
55
+ Discover activities marked with @mcp_tool and register them.
56
+
57
+ Args:
58
+ workflow_and_activities_classes: List of (workflow_class, activities_class) tuples
59
+ """
60
+ activity_methods: List[Callable[..., Any]] = []
61
+ for workflow_class, activities_class in workflow_and_activities_classes:
62
+ activities_instance = activities_class()
63
+ activity_methods.extend(workflow_class.get_activities(activities_instance)) # type: ignore
64
+
65
+ for f in activity_methods:
66
+ mcp_metadata: Optional[MCPMetadata] = getattr(f, MCP_METADATA_KEY, None)
67
+ if not mcp_metadata:
68
+ self.logger.info(
69
+ f"No MCP metadata found on activity method {f.__name__}. Skipping tool registration"
70
+ )
71
+ continue
72
+
73
+ if mcp_metadata.visible:
74
+ self.logger.info(
75
+ f"Registering tool {mcp_metadata.name} with description: {mcp_metadata.description}"
76
+ )
77
+ self.server.tool(
78
+ f,
79
+ name=mcp_metadata.name,
80
+ description=mcp_metadata.description,
81
+ *mcp_metadata.args,
82
+ **mcp_metadata.kwargs,
83
+ )
84
+ else:
85
+ self.logger.info(
86
+ f"Tool {mcp_metadata.name} is marked as not visible. Skipping tool registration"
87
+ )
88
+
89
+ tools = await self.server.get_tools()
90
+ self.logger.info(f"Registered {len(tools)} tools: {list(tools.keys())}")
91
+
92
+ async def get_http_app(self) -> StarletteWithLifespan:
93
+ """
94
+ Get the HTTP app for the MCP server.
95
+ """
96
+ return self.server.http_app()
@@ -2,4 +2,4 @@
2
2
  Version information for the application_sdk package.
3
3
  """
4
4
 
5
- __version__ = "0.1.1rc44"
5
+ __version__ = "0.1.1rc46"