atlan-application-sdk 0.1.1rc33__tar.gz → 0.1.1rc35__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 (401) hide show
  1. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.cursor/BUGBOT.md +60 -0
  2. atlan_application_sdk-0.1.1rc35/.github/release_notes.md +7 -0
  3. atlan_application_sdk-0.1.1rc35/.github/workflows/verify-snyk-status.yml +17 -0
  4. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/CHANGELOG.md +18 -0
  5. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/PKG-INFO +1 -1
  6. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/activities/__init__.py +3 -2
  7. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/activities/common/utils.py +21 -1
  8. atlan_application_sdk-0.1.1rc35/application_sdk/activities/metadata_extraction/base.py +104 -0
  9. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/activities/metadata_extraction/sql.py +13 -12
  10. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/activities/query_extraction/sql.py +24 -20
  11. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/application/__init__.py +8 -0
  12. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/clients/atlan_auth.py +2 -2
  13. atlan_application_sdk-0.1.1rc35/application_sdk/clients/base.py +293 -0
  14. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/clients/temporal.py +6 -10
  15. atlan_application_sdk-0.1.1rc35/application_sdk/handlers/base.py +50 -0
  16. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/inputs/json.py +6 -4
  17. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/inputs/parquet.py +16 -13
  18. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/outputs/__init__.py +6 -3
  19. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/outputs/json.py +9 -6
  20. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/outputs/parquet.py +10 -36
  21. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/server/fastapi/__init__.py +4 -5
  22. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/server/fastapi/models.py +1 -1
  23. atlan_application_sdk-0.1.1rc35/application_sdk/services/__init__.py +18 -0
  24. {atlan_application_sdk-0.1.1rc33/application_sdk/outputs → atlan_application_sdk-0.1.1rc35/application_sdk/services}/atlan_storage.py +64 -16
  25. {atlan_application_sdk-0.1.1rc33/application_sdk/outputs → atlan_application_sdk-0.1.1rc35/application_sdk/services}/eventstore.py +68 -6
  26. atlan_application_sdk-0.1.1rc35/application_sdk/services/objectstore.py +407 -0
  27. atlan_application_sdk-0.1.1rc35/application_sdk/services/secretstore.py +344 -0
  28. atlan_application_sdk-0.1.1rc35/application_sdk/services/statestore.py +267 -0
  29. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/version.py +1 -1
  30. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/worker.py +1 -1
  31. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/concepts/activities.md +5 -0
  32. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/concepts/clients.md +102 -1
  33. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/concepts/common.md +2 -2
  34. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/concepts/handlers.md +102 -1
  35. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/concepts/inputs.md +2 -55
  36. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/concepts/output_paths.md +3 -4
  37. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/concepts/outputs.md +4 -11
  38. atlan_application_sdk-0.1.1rc35/docs/docs/concepts/services.md +582 -0
  39. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/concepts/temporal_auth.md +9 -23
  40. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/concepts/workflows.md +5 -5
  41. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/mkdocs.yml +1 -0
  42. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/pyproject.toml +1 -1
  43. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/conftest.py +3 -3
  44. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/activities/test_activities.py +3 -4
  45. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/application/test_application.py +82 -3
  46. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/clients/test_atlan_auth.py +2 -2
  47. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/clients/test_atlanauth.py +2 -2
  48. atlan_application_sdk-0.1.1rc35/tests/unit/clients/test_base_client.py +392 -0
  49. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/clients/test_temporal_client.py +8 -8
  50. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/common/test_credential_utils.py +17 -21
  51. atlan_application_sdk-0.1.1rc35/tests/unit/handlers/test_base_handler.py +203 -0
  52. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/inputs/test_json.py +15 -6
  53. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/inputs/test_parquet.py +42 -41
  54. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/outputs/test_json_output.py +2 -2
  55. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/outputs/test_output.py +10 -5
  56. atlan_application_sdk-0.1.1rc33/tests/unit/outputs/test_atlanstorage.py → atlan_application_sdk-0.1.1rc35/tests/unit/services/test_atlan_storage.py +54 -68
  57. {atlan_application_sdk-0.1.1rc33/tests/unit/outputs → atlan_application_sdk-0.1.1rc35/tests/unit/services}/test_eventstore.py +12 -12
  58. atlan_application_sdk-0.1.1rc35/tests/unit/services/test_objectstore.py +79 -0
  59. {atlan_application_sdk-0.1.1rc33/tests/unit/outputs → atlan_application_sdk-0.1.1rc35/tests/unit/services}/test_statestore.py +13 -7
  60. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/uv.lock +1 -1
  61. atlan_application_sdk-0.1.1rc33/.github/release_notes.md +0 -3
  62. atlan_application_sdk-0.1.1rc33/application_sdk/common/credential_utils.py +0 -85
  63. atlan_application_sdk-0.1.1rc33/application_sdk/inputs/objectstore.py +0 -238
  64. atlan_application_sdk-0.1.1rc33/application_sdk/inputs/secretstore.py +0 -130
  65. atlan_application_sdk-0.1.1rc33/application_sdk/inputs/statestore.py +0 -101
  66. atlan_application_sdk-0.1.1rc33/application_sdk/outputs/objectstore.py +0 -125
  67. atlan_application_sdk-0.1.1rc33/application_sdk/outputs/secretstore.py +0 -38
  68. atlan_application_sdk-0.1.1rc33/application_sdk/outputs/statestore.py +0 -113
  69. atlan_application_sdk-0.1.1rc33/tests/unit/outputs/test_objectstore.py +0 -153
  70. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.cursor/rules/documentation.mdc +0 -0
  71. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.cursor/rules/exception-handling.mdc +0 -0
  72. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.cursor/rules/guidelines.mdc +0 -0
  73. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.cursor/rules/logging.mdc +0 -0
  74. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.cursor/rules/performance.mdc +0 -0
  75. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.cursor/rules/setup.mdc +0 -0
  76. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.cursor/rules/standards.mdc +0 -0
  77. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.cursor/rules/testing.mdc +0 -0
  78. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.env.example +0 -0
  79. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/CODEOWNERS +0 -0
  80. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  81. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/ISSUE_TEMPLATE/config.yaml +0 -0
  82. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  83. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/actions/docgen/action.yaml +0 -0
  84. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/actions/doclint/action.yaml +0 -0
  85. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/actions/docstring-coverage/action.yaml +0 -0
  86. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/actions/e2e-apps/action.yaml +0 -0
  87. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/actions/e2e-examples/action.yaml +0 -0
  88. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/actions/setup-deps/action.yaml +0 -0
  89. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/actions/sync-branches/action.yaml +0 -0
  90. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/actions/trivy/action.yaml +0 -0
  91. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/actions/trivy-container/action.yaml +0 -0
  92. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/actions/unit-tests/action.yaml +0 -0
  93. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/dependabot.yaml +0 -0
  94. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/pull_request_template.md +0 -0
  95. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/scripts/extract_release_notes.py +0 -0
  96. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/scripts/pre_release.py +0 -0
  97. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/scripts/release.py +0 -0
  98. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/scripts/trivy-to-markdown.py +0 -0
  99. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/scripts/update_changelog.py +0 -0
  100. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/AMPM.yml +0 -0
  101. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Accessibility.yml +0 -0
  102. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Acronyms.yml +0 -0
  103. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Adverbs.yml +0 -0
  104. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Auto.yml +0 -0
  105. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Avoid.yml +0 -0
  106. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Contractions.yml +0 -0
  107. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Dashes.yml +0 -0
  108. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/DateFormat.yml +0 -0
  109. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/DateNumbers.yml +0 -0
  110. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/DateOrder.yml +0 -0
  111. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Ellipses.yml +0 -0
  112. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/FirstPerson.yml +0 -0
  113. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Foreign.yml +0 -0
  114. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Gender.yml +0 -0
  115. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/GenderBias.yml +0 -0
  116. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/GeneralURL.yml +0 -0
  117. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/HeadingAcronyms.yml +0 -0
  118. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/HeadingColons.yml +0 -0
  119. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/HeadingPunctuation.yml +0 -0
  120. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Headings.yml +0 -0
  121. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Hyphens.yml +0 -0
  122. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Negative.yml +0 -0
  123. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Ordinal.yml +0 -0
  124. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/OxfordComma.yml +0 -0
  125. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Passive.yml +0 -0
  126. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Percentages.yml +0 -0
  127. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Plurals.yml +0 -0
  128. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Quotes.yml +0 -0
  129. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/RangeTime.yml +0 -0
  130. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Semicolon.yml +0 -0
  131. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/SentenceLength.yml +0 -0
  132. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Spacing.yml +0 -0
  133. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Suspended.yml +0 -0
  134. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Terms.yml +0 -0
  135. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/URLFormat.yml +0 -0
  136. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Units.yml +0 -0
  137. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Vocab.yml +0 -0
  138. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/We.yml +0 -0
  139. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/Wordiness.yml +0 -0
  140. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/Microsoft/meta.json +0 -0
  141. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/config/vocabularies/deviations/accept.txt +0 -0
  142. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/styles/config/vocabularies/deviations/reject.txt +0 -0
  143. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/workflow-templates/checks.properties.json +0 -0
  144. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/workflow-templates/checks.yaml +0 -0
  145. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/workflow-templates/codeql.properties.json +0 -0
  146. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/workflow-templates/codeql.yaml +0 -0
  147. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/workflow-templates/dependency-review.properties.json +0 -0
  148. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/workflow-templates/dependency-review.yml +0 -0
  149. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/workflow-templates/stale.properties.json +0 -0
  150. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/workflow-templates/stale.yml +0 -0
  151. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/workflow-templates/trivy-container.properties.json +0 -0
  152. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/workflow-templates/trivy-container.yaml +0 -0
  153. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/workflow-templates/trivy.properties.json +0 -0
  154. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/workflow-templates/trivy.yaml +0 -0
  155. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/workflows/codeql.yaml +0 -0
  156. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/workflows/pre-release.yaml +0 -0
  157. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/workflows/pull_request.yaml +0 -0
  158. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/workflows/push.yaml +0 -0
  159. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/workflows/release.yaml.disabled +0 -0
  160. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/workflows/scale-tests.yaml +0 -0
  161. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/workflows/schedule.yaml +0 -0
  162. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/workflows/tag-and-publish.yaml +0 -0
  163. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.github/workflows/trivy-container.yaml +0 -0
  164. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.gitignore +0 -0
  165. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.pre-commit-config.yaml +0 -0
  166. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/.vscode/launch.json +0 -0
  167. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/CODE_OF_CONDUCT.md +0 -0
  168. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/CONTRIBUTING.md +0 -0
  169. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/LICENSE +0 -0
  170. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/NOTICE +0 -0
  171. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/README.md +0 -0
  172. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/SECURITY.md +0 -0
  173. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/__init__.py +0 -0
  174. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/activities/common/__init__.py +0 -0
  175. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/activities/common/models.py +0 -0
  176. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/activities/metadata_extraction/__init__.py +0 -0
  177. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/activities/metadata_extraction/rest.py +0 -0
  178. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/activities/query_extraction/__init__.py +0 -0
  179. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/application/metadata_extraction/sql.py +0 -0
  180. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/clients/__init__.py +0 -0
  181. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/clients/async_atlan.py +0 -0
  182. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/clients/atlan.py +0 -0
  183. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/clients/sql.py +0 -0
  184. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/clients/utils.py +0 -0
  185. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/clients/workflow.py +0 -0
  186. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/common/__init__.py +0 -0
  187. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/common/aws_utils.py +0 -0
  188. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/common/dapr_utils.py +0 -0
  189. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/common/dataframe_utils.py +0 -0
  190. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/common/error_codes.py +0 -0
  191. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/common/utils.py +0 -0
  192. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/constants.py +0 -0
  193. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/docgen/__init__.py +0 -0
  194. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/docgen/exporters/__init__.py +0 -0
  195. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/docgen/exporters/mkdocs.py +0 -0
  196. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/docgen/models/__init__.py +0 -0
  197. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/docgen/models/export/__init__.py +0 -0
  198. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/docgen/models/export/page.py +0 -0
  199. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/docgen/models/manifest/__init__.py +0 -0
  200. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/docgen/models/manifest/customer.py +0 -0
  201. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/docgen/models/manifest/internal.py +0 -0
  202. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/docgen/models/manifest/metadata.py +0 -0
  203. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/docgen/models/manifest/page.py +0 -0
  204. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/docgen/models/manifest/section.py +0 -0
  205. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/docgen/parsers/__init__.py +0 -0
  206. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/docgen/parsers/directory.py +0 -0
  207. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/docgen/parsers/manifest.py +0 -0
  208. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/events/__init__.py +0 -0
  209. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/events/models.py +0 -0
  210. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/handlers/__init__.py +0 -0
  211. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/handlers/sql.py +0 -0
  212. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/inputs/__init__.py +0 -0
  213. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/inputs/iceberg.py +0 -0
  214. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/inputs/sql_query.py +0 -0
  215. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/observability/__init__.py +0 -0
  216. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/observability/decorators/observability_decorator.py +0 -0
  217. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/observability/logger_adaptor.py +0 -0
  218. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/observability/metrics_adaptor.py +0 -0
  219. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/observability/observability.py +0 -0
  220. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/observability/traces_adaptor.py +0 -0
  221. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/observability/utils.py +0 -0
  222. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/outputs/iceberg.py +0 -0
  223. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/server/__init__.py +0 -0
  224. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/server/fastapi/middleware/logmiddleware.py +0 -0
  225. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/server/fastapi/middleware/metrics.py +0 -0
  226. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/server/fastapi/routers/__init__.py +0 -0
  227. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/server/fastapi/routers/server.py +0 -0
  228. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/server/fastapi/utils.py +0 -0
  229. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/__init__.py +0 -0
  230. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/e2e/__init__.py +0 -0
  231. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/e2e/base.py +0 -0
  232. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/e2e/client.py +0 -0
  233. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/e2e/conftest.py +0 -0
  234. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/e2e/utils.py +0 -0
  235. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/hypothesis/__init__.py +0 -0
  236. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/hypothesis/strategies/__init__.py +0 -0
  237. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/hypothesis/strategies/clients/__init__.py +0 -0
  238. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/hypothesis/strategies/clients/sql.py +0 -0
  239. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/hypothesis/strategies/common/__init__.py +0 -0
  240. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/hypothesis/strategies/common/logger.py +0 -0
  241. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/hypothesis/strategies/handlers/__init__.py +0 -0
  242. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/__init__.py +0 -0
  243. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/sql_metadata.py +0 -0
  244. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/sql_preflight.py +0 -0
  245. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/hypothesis/strategies/inputs/__init__.py +0 -0
  246. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/hypothesis/strategies/inputs/json_input.py +0 -0
  247. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/hypothesis/strategies/inputs/parquet_input.py +0 -0
  248. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/hypothesis/strategies/outputs/__init__.py +0 -0
  249. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/hypothesis/strategies/outputs/json_output.py +0 -0
  250. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/hypothesis/strategies/outputs/statestore.py +0 -0
  251. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/hypothesis/strategies/server/__init__.py +0 -0
  252. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/hypothesis/strategies/server/fastapi/__init__.py +0 -0
  253. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/hypothesis/strategies/sql_client.py +0 -0
  254. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/hypothesis/strategies/temporal.py +0 -0
  255. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/scale_data_generator/README.md +0 -0
  256. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/scale_data_generator/__init__.py +0 -0
  257. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/scale_data_generator/config_loader.py +0 -0
  258. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/scale_data_generator/data_generator.py +0 -0
  259. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/scale_data_generator/driver.py +0 -0
  260. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/scale_data_generator/examples/config.yaml +0 -0
  261. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/scale_data_generator/output_handler/__init__.py +0 -0
  262. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/scale_data_generator/output_handler/base.py +0 -0
  263. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/scale_data_generator/output_handler/csv_handler.py +0 -0
  264. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/scale_data_generator/output_handler/json_handler.py +0 -0
  265. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/scale_data_generator/output_handler/parquet_handler.py +0 -0
  266. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/test_utils/workflow_monitoring.py +0 -0
  267. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/transformers/__init__.py +0 -0
  268. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/transformers/atlas/__init__.py +0 -0
  269. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/transformers/atlas/sql.py +0 -0
  270. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/transformers/common/__init__.py +0 -0
  271. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/transformers/common/utils.py +0 -0
  272. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/transformers/query/__init__.py +0 -0
  273. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/transformers/query/templates/column.yaml +0 -0
  274. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/transformers/query/templates/database.yaml +0 -0
  275. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/transformers/query/templates/extras-procedure.yaml +0 -0
  276. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/transformers/query/templates/function.yaml +0 -0
  277. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/transformers/query/templates/schema.yaml +0 -0
  278. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/transformers/query/templates/table.yaml +0 -0
  279. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/transformers/query/templates/tag_attachment.yaml +0 -0
  280. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/workflows/__init__.py +0 -0
  281. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/workflows/metadata_extraction/__init__.py +0 -0
  282. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/workflows/metadata_extraction/sql.py +0 -0
  283. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/workflows/query_extraction/__init__.py +0 -0
  284. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/application_sdk/workflows/query_extraction/sql.py +0 -0
  285. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/components/README.md +0 -0
  286. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/components/atlan-storage.yaml +0 -0
  287. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/components/aws-secrets.yaml +0 -0
  288. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/components/deployment-secrets.yaml +0 -0
  289. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/components/eventstore.yaml +0 -0
  290. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/components/objectstore.yaml +0 -0
  291. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/components/secretstore.yaml +0 -0
  292. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/components/statestore.yaml +0 -0
  293. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/concepts/application.md +0 -0
  294. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/concepts/application_sql.md +0 -0
  295. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/concepts/atlanupload.md +0 -0
  296. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/concepts/server.md +0 -0
  297. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/concepts/worker.md +0 -0
  298. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/configuration.md +0 -0
  299. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/guides/architecture.md +0 -0
  300. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/guides/atlantis.md +0 -0
  301. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/guides/best-practices.md +0 -0
  302. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/guides/getting-started.md +0 -0
  303. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/guides/index.md +0 -0
  304. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/guides/partners.md +0 -0
  305. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/guides/secretstores.md +0 -0
  306. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/guides/sql-application-guide.md +0 -0
  307. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/guides/test-framework.md +0 -0
  308. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/index.md +0 -0
  309. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/setup/LINUX.md +0 -0
  310. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/setup/MAC.md +0 -0
  311. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/setup/WINDOWS.md +0 -0
  312. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/setup/troubleshooting.md +0 -0
  313. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/static/assets/logo.svg +0 -0
  314. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/static/images/phoenix-sdk-featureset.png +0 -0
  315. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/static/javascripts/mathjax.js +0 -0
  316. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/docs/docs/static/stylesheets/extra.css +0 -0
  317. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/examples/README.md +0 -0
  318. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/examples/application_custom_fastapi.py +0 -0
  319. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/examples/application_fastapi.py +0 -0
  320. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/examples/application_hello_world.py +0 -0
  321. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/examples/application_sql.py +0 -0
  322. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/examples/application_sql_miner.py +0 -0
  323. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/examples/application_sql_with_custom_pyatlan_transformer.py +0 -0
  324. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/examples/application_sql_with_custom_transformer.py +0 -0
  325. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/examples/run_examples.py +0 -0
  326. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/examples/sql_query_templates/database.yaml +0 -0
  327. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/__init__.py +0 -0
  328. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/__init__.py +0 -0
  329. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/activities/__init__.py +0 -0
  330. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/activities/common/__init__.py +0 -0
  331. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/activities/common/test_utils.py +0 -0
  332. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/activities/metadata_extraction/__init__.py +0 -0
  333. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/activities/metadata_extraction/test_sql.py +0 -0
  334. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/activities/query_extraction/__init__.py +0 -0
  335. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/application/__init__.py +0 -0
  336. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/application/metadata_extraction/test_sql.py +0 -0
  337. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/clients/__init__.py +0 -0
  338. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/clients/test_async_atlan.py +0 -0
  339. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/clients/test_async_sql_client.py +0 -0
  340. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/clients/test_atlan_client.py +0 -0
  341. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/clients/test_sql_client.py +0 -0
  342. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/common/test_aws_utils.py +0 -0
  343. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/common/test_utils.py +0 -0
  344. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/docgen/parsers/test_directory_parser.py +0 -0
  345. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/docgen/parsers/test_manifest_parser.py +0 -0
  346. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/handlers/__init__.py +0 -0
  347. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/handlers/sql/test_auth.py +0 -0
  348. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/handlers/sql/test_check_schemas_and_databases.py +0 -0
  349. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/handlers/sql/test_extract_allowed_schemas.py +0 -0
  350. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/handlers/sql/test_metadata.py +0 -0
  351. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/handlers/sql/test_preflight_check.py +0 -0
  352. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/handlers/sql/test_prepare_metadata.py +0 -0
  353. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/handlers/sql/test_tables_check.py +0 -0
  354. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/handlers/sql/test_validate_filters.py +0 -0
  355. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/observability/__init__.py +0 -0
  356. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/observability/test_logger_adaptor.py +0 -0
  357. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/observability/test_metrics_adaptor.py +0 -0
  358. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/observability/test_traces_adaptor.py +0 -0
  359. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/outputs/test_iceberg.py +0 -0
  360. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/server/__init__.py +0 -0
  361. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/server/fastapi/routers/__init__.py +0 -0
  362. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/server/fastapi/routers/server.py +0 -0
  363. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/server/fastapi/test_fastapi.py +0 -0
  364. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/test_worker.py +0 -0
  365. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/__init__.py +0 -0
  366. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/atlas/__init__.py +0 -0
  367. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/atlas/resources/raw_columns.json +0 -0
  368. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/atlas/resources/raw_databases.json +0 -0
  369. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/atlas/resources/raw_functions.json +0 -0
  370. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/atlas/resources/raw_procedures.json +0 -0
  371. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/atlas/resources/raw_schemas.json +0 -0
  372. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/atlas/resources/raw_tables.json +0 -0
  373. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/atlas/resources/transformed_columns.json +0 -0
  374. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/atlas/resources/transformed_databases.json +0 -0
  375. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/atlas/resources/transformed_functions.json +0 -0
  376. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/atlas/resources/transformed_procedures.json +0 -0
  377. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/atlas/resources/transformed_schemas.json +0 -0
  378. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/atlas/resources/transformed_tables.json +0 -0
  379. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/atlas/test_column.py +0 -0
  380. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/atlas/test_database.py +0 -0
  381. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/atlas/test_function.py +0 -0
  382. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/atlas/test_procedure.py +0 -0
  383. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/atlas/test_schema.py +0 -0
  384. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/atlas/test_table.py +0 -0
  385. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/query/resources/raw/column.json +0 -0
  386. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/query/resources/raw/database.json +0 -0
  387. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/query/resources/raw/extras-procedure.json +0 -0
  388. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/query/resources/raw/function.json +0 -0
  389. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/query/resources/raw/schema.json +0 -0
  390. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/query/resources/raw/table.json +0 -0
  391. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/query/resources/transformed/column.json +0 -0
  392. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/query/resources/transformed/database.json +0 -0
  393. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/query/resources/transformed/extras-procedure.json +0 -0
  394. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/query/resources/transformed/function.json +0 -0
  395. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/query/resources/transformed/schema.json +0 -0
  396. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/query/resources/transformed/table.json +0 -0
  397. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/query/test_sql_transformer.py +0 -0
  398. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/transformers/query/test_sql_transformer_output_validation.py +0 -0
  399. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/workflows/metadata_extraction/test_sql.py +0 -0
  400. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/workflows/query_extraction/__init__.py +0 -0
  401. {atlan_application_sdk-0.1.1rc33 → atlan_application_sdk-0.1.1rc35}/tests/unit/workflows/query_extraction/test_sql.py +0 -0
@@ -58,3 +58,63 @@
58
58
  - **Metrics**: Key operations include appropriate metrics
59
59
  - **Error Context**: Error logs include sufficient context for debugging
60
60
  - **Trace Information**: Critical paths include trace information
61
+
62
+ ## 🚨 Automated Pattern Detection Rules
63
+
64
+ ### Unit Test Requirements
65
+
66
+ - **Mandatory Test Coverage**: PRs with titles starting with "fix:" MUST include corresponding test file changes
67
+ - **Test File Naming**: Test files must follow the pattern `test_*.py` and mirror source structure
68
+
69
+ ### File Naming Conventions
70
+
71
+ - **Model/Dataclass Files**: Files named `base.py` containing dataclasses or pydantic models should be renamed to `models.py` or `model.py`
72
+ - **Descriptive Naming**: File names should clearly indicate their purpose and contents
73
+ - **Consistency**: Follow established naming patterns within the repository
74
+
75
+ ### Directory Structure
76
+
77
+ - **Single File Directories**: Directories containing only one file should be reorganized (e.g., `events/` folder with only one file)
78
+ - **Logical Grouping**: Related functionality should be grouped in appropriate subdirectories
79
+ - **Module Organization**: Avoid creating unnecessary directory nesting for single files
80
+
81
+ ### Magic String Constants
82
+
83
+ - **Operation Strings**: Hardcoded strings like `"create"`, `"update"`, `"delete"` in business logic should be extracted to constants or enums.
84
+ - **Configuration Values**: String literals used across multiple files that are loaded from environment variables should be defined in `constants.py`.
85
+
86
+ ### Method Naming
87
+
88
+ - **Verbose Names**: Method names longer than 25 characters with redundant context should be simplified
89
+ - **Clear Intent**: Method names should be concise but descriptive of their primary purpose
90
+ - **Context Redundancy**: Avoid repeating class or module context in method names
91
+
92
+ ### Dead Code Detection
93
+
94
+ - **Conditional Blocks**: Flag `if False:` blocks and suggest removal
95
+ - **Unused Boolean Flags**: Detect and remove unused boolean flags and conditional logic
96
+ - **Commented Code**: Remove commented-out code blocks that are no longer needed
97
+ - **Unreachable Code**: Identify and remove code that can never be executed
98
+
99
+ ### Code Duplication
100
+
101
+ - **Utility Extraction**: Repeated logic should be extracted into shared utility methods
102
+ - **Configuration Patterns**: Similar configuration setup code should be centralized
103
+
104
+ ### File Management
105
+
106
+ - **Premature Creation**: Flag new empty files or files with minimal content that aren't referenced elsewhere
107
+ - **Unused Files**: Detect files added then immediately marked for removal in the same PR
108
+ - **File Purpose**: Ensure every new file serves a clear, documented purpose
109
+
110
+ ### Import Organization
111
+
112
+ - **Stale Imports**: When code is moved between files, check if old imports still reference moved code
113
+ - **Import Cleanup**: Remove unused imports after code reorganization
114
+ - **Dependency Management**: Ensure imports reflect actual code dependencies
115
+
116
+ ### Async Pattern Consistency
117
+
118
+ - **Workflow Context**: In workflow/temporal contexts, flag sync method calls that should be async
119
+ - **Mixed Patterns**: Ensure consistent async/await usage within the same module
120
+ - **Temporal Best Practices**: Follow Temporal SDK guidelines for async operations
@@ -0,0 +1,7 @@
1
+ ## v0.1.1rc35 (August 28, 2025)
2
+
3
+ Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc34...v0.1.1rc35
4
+
5
+ ### Features
6
+
7
+ - improve services abstraction (#658) (by @Nishchith Shetty in [f5a4c4e](https://github.com/atlanhq/application-sdk/commit/f5a4c4e))
@@ -0,0 +1,17 @@
1
+ name: 'Verify Snyk PR Checks'
2
+
3
+ on:
4
+ pull_request:
5
+ types: [opened, synchronize, reopened]
6
+ branches:
7
+ - 'main'
8
+ - 'master'
9
+
10
+ jobs:
11
+ snyk_scan_results:
12
+ # This 'name' is what appears in the pull request's check list.
13
+ name: Snyk Scan Results
14
+ # Calls the reusable workflow from your central .github repository.
15
+ uses: atlanhq/.github/.github/workflows/reusable-verify-snyk-scans.yml@main
16
+ # Allows the reusable workflow to use the GITHUB_TOKEN from this repository.
17
+ secrets: inherit
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.1.1rc35 (August 28, 2025)
4
+
5
+ Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc34...v0.1.1rc35
6
+
7
+ ### Features
8
+
9
+ - improve services abstraction (#658) (by @Nishchith Shetty in [f5a4c4e](https://github.com/atlanhq/application-sdk/commit/f5a4c4e))
10
+
11
+
12
+
13
+ ## v0.1.1rc34 (August 27, 2025)
14
+
15
+ Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc33...v0.1.1rc34
16
+
17
+ ### Features
18
+
19
+ - Generic Client and Handlers for non-SQL connectors with http request methods (allows custom retry transport) (#660) (by @Prateek Rai in [b077a90](https://github.com/atlanhq/application-sdk/commit/b077a90))
20
+
3
21
  ## v0.1.1rc33 (August 26, 2025)
4
22
 
5
23
  Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc32...v0.1.1rc33
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: atlan-application-sdk
3
- Version: 0.1.1rc33
3
+ Version: 0.1.1rc35
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
@@ -29,7 +29,6 @@ from application_sdk.activities.common.utils import (
29
29
  from application_sdk.common.error_codes import OrchestratorError
30
30
  from application_sdk.constants import TEMPORARY_PATH
31
31
  from application_sdk.handlers import HandlerInterface
32
- from application_sdk.inputs.statestore import StateStoreInput, StateType
33
32
  from application_sdk.observability.logger_adaptor import get_logger
34
33
 
35
34
  logger = get_logger(__name__)
@@ -190,7 +189,9 @@ class ActivitiesInterface(ABC, Generic[ActivitiesStateType]):
190
189
 
191
190
  try:
192
191
  # This already handles the Dapr call internally
193
- workflow_args = StateStoreInput.get_state(workflow_id, StateType.WORKFLOWS)
192
+ from application_sdk.services.statestore import StateStore, StateType
193
+
194
+ workflow_args = await StateStore.get_state(workflow_id, StateType.WORKFLOWS)
194
195
  workflow_args["output_prefix"] = workflow_args.get(
195
196
  "output_prefix", TEMPORARY_PATH
196
197
  )
@@ -5,13 +5,18 @@ including workflow ID retrieval, automatic heartbeating, and periodic heartbeat
5
5
  """
6
6
 
7
7
  import asyncio
8
+ import os
8
9
  from datetime import timedelta
9
10
  from functools import wraps
10
11
  from typing import Any, Awaitable, Callable, Optional, TypeVar, cast
11
12
 
12
13
  from temporalio import activity
13
14
 
14
- from application_sdk.constants import APPLICATION_NAME, WORKFLOW_OUTPUT_PATH_TEMPLATE
15
+ from application_sdk.constants import (
16
+ APPLICATION_NAME,
17
+ TEMPORARY_PATH,
18
+ WORKFLOW_OUTPUT_PATH_TEMPLATE,
19
+ )
15
20
  from application_sdk.observability.logger_adaptor import get_logger
16
21
 
17
22
  logger = get_logger(__name__)
@@ -72,6 +77,21 @@ def build_output_path() -> str:
72
77
  )
73
78
 
74
79
 
80
+ def get_object_store_prefix(path: str) -> str:
81
+ """Get the object store prefix for the path.
82
+ Args:
83
+ path: The path to the output directory.
84
+
85
+ Returns:
86
+ The object store prefix for the path.
87
+
88
+ Example:
89
+ >>> get_object_store_prefix("./local/tmp/artifacts/apps/appName/workflows/wf-123/run-456")
90
+ "artifacts/apps/appName/workflows/wf-123/run-456"
91
+ """
92
+ return os.path.relpath(path, TEMPORARY_PATH)
93
+
94
+
75
95
  def auto_heartbeater(fn: F) -> F:
76
96
  """Decorator that automatically sends heartbeats during activity execution.
77
97
 
@@ -0,0 +1,104 @@
1
+ from typing import Any, Dict, Optional, Type
2
+
3
+ from temporalio import activity
4
+
5
+ from application_sdk.activities import ActivitiesInterface, ActivitiesState
6
+ from application_sdk.activities.common.utils import get_workflow_id
7
+ from application_sdk.clients.base import BaseClient
8
+ from application_sdk.constants import APP_TENANT_ID, APPLICATION_NAME
9
+ from application_sdk.handlers.base import BaseHandler
10
+ from application_sdk.observability.logger_adaptor import get_logger
11
+ from application_sdk.services.secretstore import SecretStore
12
+ from application_sdk.transformers import TransformerInterface
13
+
14
+ logger = get_logger(__name__)
15
+ activity.logger = logger
16
+
17
+
18
+ class BaseMetadataExtractionActivitiesState(ActivitiesState):
19
+ """State for base metadata extraction activities."""
20
+
21
+ client: Optional[BaseClient] = None
22
+ handler: Optional[BaseHandler] = None
23
+ transformer: Optional[TransformerInterface] = None
24
+
25
+
26
+ class BaseMetadataExtractionActivities(ActivitiesInterface):
27
+ """Base activities for non-SQL metadata extraction workflows."""
28
+
29
+ _state: Dict[str, BaseMetadataExtractionActivitiesState] = {}
30
+
31
+ client_class: Type[BaseClient] = BaseClient
32
+ handler_class: Type[BaseHandler] = BaseHandler
33
+ transformer_class: Optional[Type[TransformerInterface]] = None
34
+
35
+ def __init__(
36
+ self,
37
+ client_class: Optional[Type[BaseClient]] = None,
38
+ handler_class: Optional[Type[BaseHandler]] = None,
39
+ transformer_class: Optional[Type[TransformerInterface]] = None,
40
+ ):
41
+ """Initialize the base metadata extraction activities.
42
+
43
+ Args:
44
+ client_class: Client class to use. Defaults to BaseClient.
45
+ handler_class: Handler class to use. Defaults to BaseHandler.
46
+ transformer_class: Transformer class to use. Users must provide their own transformer implementation.
47
+ """
48
+ if client_class:
49
+ self.client_class = client_class
50
+ if handler_class:
51
+ self.handler_class = handler_class
52
+ if transformer_class:
53
+ self.transformer_class = transformer_class
54
+
55
+ super().__init__()
56
+
57
+ async def _set_state(self, workflow_args: Dict[str, Any]):
58
+ """Set up the state for the current workflow.
59
+
60
+ Args:
61
+ workflow_args: Arguments for the workflow.
62
+ """
63
+ workflow_id = get_workflow_id()
64
+ if not self._state.get(workflow_id):
65
+ self._state[workflow_id] = BaseMetadataExtractionActivitiesState()
66
+
67
+ await super()._set_state(workflow_args)
68
+
69
+ state = self._state[workflow_id]
70
+
71
+ # Initialize client
72
+ client = self.client_class()
73
+ # Extract credentials from state store if credential_guid is available
74
+ if "credential_guid" in workflow_args:
75
+ logger.info(
76
+ f"Retrieving credentials for credential_guid: {workflow_args['credential_guid']}"
77
+ )
78
+ try:
79
+ credentials = await SecretStore.get_credentials(
80
+ workflow_args["credential_guid"]
81
+ )
82
+ logger.info(
83
+ f"Successfully retrieved credentials with keys: {list(credentials.keys())}"
84
+ )
85
+ # Load the client with credentials
86
+ await client.load(credentials=credentials)
87
+ except Exception as e:
88
+ logger.error(f"Failed to retrieve credentials: {e}")
89
+ raise
90
+
91
+ state.client = client
92
+
93
+ # Initialize handler
94
+ handler = self.handler_class(client=client)
95
+ state.handler = handler
96
+
97
+ # Initialize transformer if provided
98
+ if self.transformer_class:
99
+ transformer_params = {
100
+ "connector_name": APPLICATION_NAME,
101
+ "connector_type": APPLICATION_NAME,
102
+ "tenant_id": APP_TENANT_ID,
103
+ }
104
+ state.transformer = self.transformer_class(**transformer_params)
@@ -5,25 +5,24 @@ from temporalio import activity
5
5
 
6
6
  from application_sdk.activities import ActivitiesInterface, ActivitiesState
7
7
  from application_sdk.activities.common.models import ActivityStatistics
8
- from application_sdk.activities.common.utils import auto_heartbeater, get_workflow_id
8
+ from application_sdk.activities.common.utils import (
9
+ auto_heartbeater,
10
+ get_object_store_prefix,
11
+ get_workflow_id,
12
+ )
9
13
  from application_sdk.clients.sql import BaseSQLClient
10
- from application_sdk.common.credential_utils import get_credentials
11
14
  from application_sdk.common.dataframe_utils import is_empty_dataframe
12
15
  from application_sdk.common.error_codes import ActivityError
13
16
  from application_sdk.common.utils import prepare_query, read_sql_files
14
- from application_sdk.constants import (
15
- APP_TENANT_ID,
16
- APPLICATION_NAME,
17
- SQL_QUERIES_PATH,
18
- TEMPORARY_PATH,
19
- )
17
+ from application_sdk.constants import APP_TENANT_ID, APPLICATION_NAME, SQL_QUERIES_PATH
20
18
  from application_sdk.handlers.sql import BaseSQLHandler
21
19
  from application_sdk.inputs.parquet import ParquetInput
22
20
  from application_sdk.inputs.sql_query import SQLQueryInput
23
21
  from application_sdk.observability.logger_adaptor import get_logger
24
- from application_sdk.outputs.atlan_storage import AtlanStorageOutput
25
22
  from application_sdk.outputs.json import JsonOutput
26
23
  from application_sdk.outputs.parquet import ParquetOutput
24
+ from application_sdk.services.atlan_storage import AtlanStorage
25
+ from application_sdk.services.secretstore import SecretStore
27
26
  from application_sdk.transformers import TransformerInterface
28
27
  from application_sdk.transformers.query import QueryBasedTransformer
29
28
 
@@ -144,7 +143,9 @@ class BaseSQLMetadataExtractionActivities(ActivitiesInterface):
144
143
  self._state[workflow_id].handler = handler
145
144
 
146
145
  if "credential_guid" in workflow_args:
147
- credentials = await get_credentials(workflow_args["credential_guid"])
146
+ credentials = await SecretStore.get_credentials(
147
+ workflow_args["credential_guid"]
148
+ )
148
149
  await sql_client.load(credentials)
149
150
 
150
151
  self._state[workflow_id].sql_client = sql_client
@@ -536,11 +537,11 @@ class BaseSQLMetadataExtractionActivities(ActivitiesInterface):
536
537
 
537
538
  # Upload data from object store to Atlan storage
538
539
  # Use workflow_id/workflow_run_id as the prefix to migrate specific data
539
- migration_prefix = os.path.relpath(workflow_args["output_path"], TEMPORARY_PATH)
540
+ migration_prefix = get_object_store_prefix(workflow_args["output_path"])
540
541
  logger.info(
541
542
  f"Starting migration from object store with prefix: {migration_prefix}"
542
543
  )
543
- upload_stats = await AtlanStorageOutput.migrate_from_objectstore_to_atlan(
544
+ upload_stats = await AtlanStorage.migrate_from_objectstore_to_atlan(
544
545
  prefix=migration_prefix
545
546
  )
546
547
 
@@ -7,17 +7,20 @@ from pydantic import BaseModel, Field
7
7
  from temporalio import activity
8
8
 
9
9
  from application_sdk.activities import ActivitiesInterface, ActivitiesState
10
- from application_sdk.activities.common.utils import auto_heartbeater, get_workflow_id
10
+ from application_sdk.activities.common.utils import (
11
+ auto_heartbeater,
12
+ get_object_store_prefix,
13
+ get_workflow_id,
14
+ )
11
15
  from application_sdk.clients.sql import BaseSQLClient
12
- from application_sdk.common.credential_utils import get_credentials
13
16
  from application_sdk.constants import UPSTREAM_OBJECT_STORE_NAME
14
17
  from application_sdk.handlers import HandlerInterface
15
18
  from application_sdk.handlers.sql import BaseSQLHandler
16
- from application_sdk.inputs.objectstore import ObjectStoreInput
17
19
  from application_sdk.inputs.sql_query import SQLQueryInput
18
20
  from application_sdk.observability.logger_adaptor import get_logger
19
- from application_sdk.outputs.objectstore import ObjectStoreOutput
20
21
  from application_sdk.outputs.parquet import ParquetOutput
22
+ from application_sdk.services.objectstore import ObjectStore
23
+ from application_sdk.services.secretstore import SecretStore
21
24
  from application_sdk.transformers import TransformerInterface
22
25
  from application_sdk.transformers.atlas import AtlasTransformer
23
26
 
@@ -129,7 +132,9 @@ class SQLQueryExtractionActivities(ActivitiesInterface):
129
132
  workflow_id = get_workflow_id()
130
133
  sql_client = self.sql_client_class()
131
134
  if "credential_guid" in workflow_args:
132
- credentials = await get_credentials(workflow_args["credential_guid"])
135
+ credentials = await SecretStore.get_credentials(
136
+ workflow_args["credential_guid"]
137
+ )
133
138
  await sql_client.load(credentials)
134
139
 
135
140
  handler = self.handler_class(sql_client)
@@ -412,14 +417,14 @@ class SQLQueryExtractionActivities(ActivitiesInterface):
412
417
  f.write(last_marker)
413
418
 
414
419
  logger.info(f"Last marker: {last_marker}")
415
- await ObjectStoreOutput.push_file_to_object_store(
416
- workflow_args["output_prefix"],
417
- marker_file_path,
418
- object_store_name=UPSTREAM_OBJECT_STORE_NAME,
420
+ await ObjectStore.upload_file(
421
+ source=marker_file_path,
422
+ destination=get_object_store_prefix(marker_file_path),
423
+ store_name=UPSTREAM_OBJECT_STORE_NAME,
419
424
  )
420
425
  logger.info(f"Marker file written to {marker_file_path}")
421
426
 
422
- def read_marker(self, workflow_args: Dict[str, Any]) -> Optional[int]:
427
+ async def read_marker(self, workflow_args: Dict[str, Any]) -> Optional[int]:
423
428
  """Read the marker from the output path.
424
429
 
425
430
  This method reads the current marker value from a marker file to determine the
@@ -442,15 +447,12 @@ class SQLQueryExtractionActivities(ActivitiesInterface):
442
447
  marker_file_path = os.path.join(output_path, "markerfile")
443
448
  logger.info(f"Downloading marker file from {marker_file_path}")
444
449
 
445
- os.makedirs(workflow_args["output_prefix"], exist_ok=True)
446
-
447
- ObjectStoreInput.download_file_from_object_store(
448
- workflow_args["output_prefix"],
449
- marker_file_path,
450
- object_store_name=UPSTREAM_OBJECT_STORE_NAME,
450
+ await ObjectStore.download_file(
451
+ source=get_object_store_prefix(marker_file_path),
452
+ destination=marker_file_path,
453
+ store_name=UPSTREAM_OBJECT_STORE_NAME,
451
454
  )
452
455
 
453
- logger.info(f"Output prefix: {workflow_args['output_prefix']}")
454
456
  logger.info(f"Marker file downloaded to {marker_file_path}")
455
457
  if not os.path.exists(marker_file_path):
456
458
  logger.warning(f"Marker file does not exist at {marker_file_path}")
@@ -487,7 +489,7 @@ class SQLQueryExtractionActivities(ActivitiesInterface):
487
489
 
488
490
  miner_args = MinerArgs(**workflow_args.get("miner_args", {}))
489
491
 
490
- current_marker = self.read_marker(workflow_args)
492
+ current_marker = await self.read_marker(workflow_args)
491
493
  if current_marker:
492
494
  miner_args.current_marker = current_marker
493
495
 
@@ -522,8 +524,10 @@ class SQLQueryExtractionActivities(ActivitiesInterface):
522
524
  with open(metadata_file_path, "w") as f:
523
525
  f.write(json.dumps(parallel_markers))
524
526
 
525
- await ObjectStoreOutput.push_file_to_object_store(
526
- workflow_args["output_prefix"], metadata_file_path
527
+ await ObjectStore.upload_file(
528
+ source=metadata_file_path,
529
+ destination=get_object_store_prefix(metadata_file_path),
530
+ store_name=UPSTREAM_OBJECT_STORE_NAME,
527
531
  )
528
532
 
529
533
  try:
@@ -2,8 +2,10 @@ from concurrent.futures import ThreadPoolExecutor
2
2
  from typing import Any, Dict, List, Optional, Tuple, Type
3
3
 
4
4
  from application_sdk.activities import ActivitiesInterface
5
+ from application_sdk.clients.base import BaseClient
5
6
  from application_sdk.clients.utils import get_workflow_client
6
7
  from application_sdk.events.models import EventRegistration
8
+ from application_sdk.handlers.base import BaseHandler
7
9
  from application_sdk.observability.logger_adaptor import get_logger
8
10
  from application_sdk.server import ServerInterface
9
11
  from application_sdk.server.fastapi import APIServer, HttpWorkflowTrigger
@@ -28,6 +30,8 @@ class BaseApplication:
28
30
  name: str,
29
31
  server: Optional[ServerInterface] = None,
30
32
  application_manifest: Optional[dict] = None,
33
+ client_class: Optional[Type[BaseClient]] = None,
34
+ handler_class: Optional[Type[BaseHandler]] = None,
31
35
  ):
32
36
  """
33
37
  Initialize the application.
@@ -48,6 +52,9 @@ class BaseApplication:
48
52
  self.application_manifest: Dict[str, Any] = application_manifest
49
53
  self.bootstrap_event_registration()
50
54
 
55
+ self.client_class = client_class or BaseClient
56
+ self.handler_class = handler_class or BaseHandler
57
+
51
58
  def bootstrap_event_registration(self):
52
59
  self.event_subscriptions = {}
53
60
  if self.application_manifest is None:
@@ -168,6 +175,7 @@ class BaseApplication:
168
175
  self.server = APIServer(
169
176
  workflow_client=self.workflow_client,
170
177
  ui_enabled=ui_enabled,
178
+ handler=self.handler_class(client=self.client_class()),
171
179
  )
172
180
 
173
181
  if self.event_subscriptions:
@@ -13,8 +13,8 @@ from application_sdk.constants import (
13
13
  WORKFLOW_AUTH_ENABLED,
14
14
  WORKFLOW_AUTH_URL_KEY,
15
15
  )
16
- from application_sdk.inputs.secretstore import SecretStoreInput
17
16
  from application_sdk.observability.logger_adaptor import get_logger
17
+ from application_sdk.services.secretstore import SecretStore
18
18
 
19
19
  logger = get_logger(__name__)
20
20
 
@@ -39,7 +39,7 @@ class AtlanAuthClient:
39
39
  (environment variables, AWS Secrets Manager, Azure Key Vault, etc.)
40
40
  """
41
41
  self.application_name = APPLICATION_NAME
42
- self.auth_config: Dict[str, Any] = SecretStoreInput.get_deployment_secret()
42
+ self.auth_config: Dict[str, Any] = SecretStore.get_deployment_secret()
43
43
  self.auth_enabled: bool = WORKFLOW_AUTH_ENABLED
44
44
  self.auth_url: Optional[str] = None
45
45