atlan-application-sdk 0.1.1rc21__tar.gz → 0.1.1rc23__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 (369) hide show
  1. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/actions/e2e-examples/action.yaml +1 -0
  2. atlan_application_sdk-0.1.1rc23/.github/release_notes.md +8 -0
  3. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/CHANGELOG.md +23 -0
  4. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/PKG-INFO +2 -2
  5. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/activities/__init__.py +21 -4
  6. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/activities/common/utils.py +29 -0
  7. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/activities/metadata_extraction/sql.py +2 -2
  8. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/activities/query_extraction/sql.py +5 -5
  9. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/clients/temporal.py +5 -4
  10. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/common/credential_utils.py +3 -1
  11. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/common/utils.py +0 -34
  12. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/constants.py +23 -5
  13. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/inputs/objectstore.py +5 -0
  14. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/inputs/secretstore.py +39 -27
  15. atlan_application_sdk-0.1.1rc23/application_sdk/inputs/statestore.py +98 -0
  16. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/observability/logger_adaptor.py +12 -3
  17. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/observability/metrics_adaptor.py +5 -3
  18. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/observability/observability.py +10 -8
  19. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/observability/traces_adaptor.py +2 -2
  20. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/observability/utils.py +22 -0
  21. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/outputs/objectstore.py +2 -0
  22. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/outputs/parquet.py +4 -1
  23. atlan_application_sdk-0.1.1rc23/application_sdk/outputs/secretstore.py +38 -0
  24. atlan_application_sdk-0.1.1rc23/application_sdk/outputs/statestore.py +109 -0
  25. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/server/fastapi/__init__.py +19 -8
  26. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/server/fastapi/models.py +3 -11
  27. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/e2e/__init__.py +0 -3
  28. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/version.py +1 -1
  29. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/workflows/__init__.py +0 -3
  30. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/workflows/metadata_extraction/sql.py +0 -7
  31. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/workflows/query_extraction/sql.py +0 -5
  32. atlan_application_sdk-0.1.1rc23/docs/docs/concepts/output_paths.md +143 -0
  33. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/concepts/workflows.md +0 -3
  34. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/configuration.md +0 -1
  35. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/guides/getting-started.md +5 -0
  36. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/guides/test-framework.md +1 -1
  37. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/pyproject.toml +2 -2
  38. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/activities/test_activities.py +50 -11
  39. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/clients/test_temporal_client.py +20 -9
  40. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/common/test_credential_utils.py +40 -10
  41. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/common/test_utils.py +1 -48
  42. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/observability/test_metrics_adaptor.py +0 -1
  43. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/observability/test_traces_adaptor.py +0 -1
  44. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/outputs/test_objectstore.py +4 -2
  45. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/outputs/test_statestore.py +7 -62
  46. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/workflows/query_extraction/test_sql.py +2 -4
  47. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/uv.lock +498 -381
  48. atlan_application_sdk-0.1.1rc21/.github/release_notes.md +0 -12
  49. atlan_application_sdk-0.1.1rc21/application_sdk/inputs/statestore.py +0 -66
  50. atlan_application_sdk-0.1.1rc21/application_sdk/outputs/secretstore.py +0 -29
  51. atlan_application_sdk-0.1.1rc21/application_sdk/outputs/statestore.py +0 -55
  52. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.cursor/rules/documentation.mdc +0 -0
  53. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.cursor/rules/guidelines.mdc +0 -0
  54. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.cursor/rules/logging.mdc +0 -0
  55. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.cursor/rules/setup.mdc +0 -0
  56. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.cursor/rules/standards.mdc +0 -0
  57. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.cursor/rules/testing.mdc +0 -0
  58. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.env.example +0 -0
  59. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/CODEOWNERS +0 -0
  60. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  61. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/ISSUE_TEMPLATE/config.yaml +0 -0
  62. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  63. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/actions/docgen/action.yaml +0 -0
  64. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/actions/doclint/action.yaml +0 -0
  65. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/actions/docstring-coverage/action.yaml +0 -0
  66. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/actions/e2e-apps/action.yaml +0 -0
  67. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/actions/setup-deps/action.yaml +0 -0
  68. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/actions/sync-branches/action.yaml +0 -0
  69. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/actions/trivy/action.yaml +0 -0
  70. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/actions/trivy-container/action.yaml +0 -0
  71. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/actions/unit-tests/action.yaml +0 -0
  72. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/dependabot.yaml +0 -0
  73. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/pull_request_template.md +0 -0
  74. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/scripts/extract_release_notes.py +0 -0
  75. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/scripts/pre_release.py +0 -0
  76. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/scripts/release.py +0 -0
  77. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/scripts/trivy-to-markdown.py +0 -0
  78. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/scripts/update_changelog.py +0 -0
  79. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/AMPM.yml +0 -0
  80. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Accessibility.yml +0 -0
  81. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Acronyms.yml +0 -0
  82. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Adverbs.yml +0 -0
  83. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Auto.yml +0 -0
  84. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Avoid.yml +0 -0
  85. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Contractions.yml +0 -0
  86. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Dashes.yml +0 -0
  87. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/DateFormat.yml +0 -0
  88. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/DateNumbers.yml +0 -0
  89. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/DateOrder.yml +0 -0
  90. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Ellipses.yml +0 -0
  91. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/FirstPerson.yml +0 -0
  92. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Foreign.yml +0 -0
  93. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Gender.yml +0 -0
  94. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/GenderBias.yml +0 -0
  95. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/GeneralURL.yml +0 -0
  96. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/HeadingAcronyms.yml +0 -0
  97. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/HeadingColons.yml +0 -0
  98. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/HeadingPunctuation.yml +0 -0
  99. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Headings.yml +0 -0
  100. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Hyphens.yml +0 -0
  101. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Negative.yml +0 -0
  102. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Ordinal.yml +0 -0
  103. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/OxfordComma.yml +0 -0
  104. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Passive.yml +0 -0
  105. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Percentages.yml +0 -0
  106. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Plurals.yml +0 -0
  107. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Quotes.yml +0 -0
  108. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/RangeTime.yml +0 -0
  109. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Semicolon.yml +0 -0
  110. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/SentenceLength.yml +0 -0
  111. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Spacing.yml +0 -0
  112. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Suspended.yml +0 -0
  113. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Terms.yml +0 -0
  114. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/URLFormat.yml +0 -0
  115. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Units.yml +0 -0
  116. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Vocab.yml +0 -0
  117. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/We.yml +0 -0
  118. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/Wordiness.yml +0 -0
  119. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/Microsoft/meta.json +0 -0
  120. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/config/vocabularies/deviations/accept.txt +0 -0
  121. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/styles/config/vocabularies/deviations/reject.txt +0 -0
  122. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/workflow-templates/checks.properties.json +0 -0
  123. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/workflow-templates/checks.yaml +0 -0
  124. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/workflow-templates/codeql.properties.json +0 -0
  125. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/workflow-templates/codeql.yaml +0 -0
  126. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/workflow-templates/dependency-review.properties.json +0 -0
  127. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/workflow-templates/dependency-review.yml +0 -0
  128. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/workflow-templates/stale.properties.json +0 -0
  129. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/workflow-templates/stale.yml +0 -0
  130. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/workflow-templates/trivy-container.properties.json +0 -0
  131. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/workflow-templates/trivy-container.yaml +0 -0
  132. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/workflow-templates/trivy.properties.json +0 -0
  133. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/workflow-templates/trivy.yaml +0 -0
  134. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/workflows/codeql.yaml +0 -0
  135. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/workflows/pre-release.yaml +0 -0
  136. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/workflows/pull_request.yaml +0 -0
  137. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/workflows/push.yaml +0 -0
  138. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/workflows/release.yaml.disabled +0 -0
  139. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/workflows/scale-tests.yaml +0 -0
  140. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/workflows/schedule.yaml +0 -0
  141. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/workflows/tag-and-publish.yaml +0 -0
  142. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.github/workflows/trivy-container.yaml +0 -0
  143. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.gitignore +0 -0
  144. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.pre-commit-config.yaml +0 -0
  145. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/.vscode/launch.json +0 -0
  146. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/CODE_OF_CONDUCT.md +0 -0
  147. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/CONTRIBUTING.md +0 -0
  148. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/LICENSE +0 -0
  149. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/NOTICE +0 -0
  150. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/README.md +0 -0
  151. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/SECURITY.md +0 -0
  152. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/__init__.py +0 -0
  153. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/activities/common/__init__.py +0 -0
  154. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/activities/common/models.py +0 -0
  155. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/activities/metadata_extraction/__init__.py +0 -0
  156. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/activities/metadata_extraction/rest.py +0 -0
  157. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/activities/query_extraction/__init__.py +0 -0
  158. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/application/__init__.py +0 -0
  159. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/application/metadata_extraction/sql.py +0 -0
  160. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/clients/__init__.py +0 -0
  161. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/clients/sql.py +0 -0
  162. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/clients/utils.py +0 -0
  163. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/clients/workflow.py +0 -0
  164. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/common/__init__.py +0 -0
  165. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/common/aws_utils.py +0 -0
  166. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/common/dataframe_utils.py +0 -0
  167. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/common/error_codes.py +0 -0
  168. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/docgen/__init__.py +0 -0
  169. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/docgen/exporters/__init__.py +0 -0
  170. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/docgen/exporters/mkdocs.py +0 -0
  171. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/docgen/models/__init__.py +0 -0
  172. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/docgen/models/export/__init__.py +0 -0
  173. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/docgen/models/export/page.py +0 -0
  174. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/docgen/models/manifest/__init__.py +0 -0
  175. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/docgen/models/manifest/customer.py +0 -0
  176. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/docgen/models/manifest/internal.py +0 -0
  177. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/docgen/models/manifest/metadata.py +0 -0
  178. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/docgen/models/manifest/page.py +0 -0
  179. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/docgen/models/manifest/section.py +0 -0
  180. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/docgen/parsers/__init__.py +0 -0
  181. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/docgen/parsers/directory.py +0 -0
  182. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/docgen/parsers/manifest.py +0 -0
  183. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/handlers/__init__.py +0 -0
  184. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/handlers/sql.py +0 -0
  185. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/inputs/__init__.py +0 -0
  186. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/inputs/iceberg.py +0 -0
  187. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/inputs/json.py +0 -0
  188. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/inputs/parquet.py +0 -0
  189. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/inputs/sql_query.py +0 -0
  190. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/observability/__init__.py +0 -0
  191. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/observability/decorators/observability_decorator.py +0 -0
  192. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/outputs/__init__.py +0 -0
  193. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/outputs/eventstore.py +0 -0
  194. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/outputs/iceberg.py +0 -0
  195. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/outputs/json.py +0 -0
  196. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/server/__init__.py +0 -0
  197. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/server/fastapi/middleware/logmiddleware.py +0 -0
  198. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/server/fastapi/middleware/metrics.py +0 -0
  199. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/server/fastapi/routers/__init__.py +0 -0
  200. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/server/fastapi/routers/server.py +0 -0
  201. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/server/fastapi/utils.py +0 -0
  202. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/__init__.py +0 -0
  203. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/e2e/base.py +0 -0
  204. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/e2e/client.py +0 -0
  205. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/e2e/conftest.py +0 -0
  206. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/e2e/utils.py +0 -0
  207. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/hypothesis/__init__.py +0 -0
  208. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/hypothesis/strategies/__init__.py +0 -0
  209. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/hypothesis/strategies/clients/__init__.py +0 -0
  210. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/hypothesis/strategies/clients/sql.py +0 -0
  211. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/hypothesis/strategies/common/__init__.py +0 -0
  212. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/hypothesis/strategies/common/logger.py +0 -0
  213. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/hypothesis/strategies/handlers/__init__.py +0 -0
  214. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/__init__.py +0 -0
  215. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/sql_metadata.py +0 -0
  216. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/sql_preflight.py +0 -0
  217. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/hypothesis/strategies/inputs/__init__.py +0 -0
  218. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/hypothesis/strategies/inputs/json_input.py +0 -0
  219. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/hypothesis/strategies/outputs/__init__.py +0 -0
  220. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/hypothesis/strategies/outputs/json_output.py +0 -0
  221. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/hypothesis/strategies/outputs/statestore.py +0 -0
  222. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/hypothesis/strategies/server/__init__.py +0 -0
  223. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/hypothesis/strategies/server/fastapi/__init__.py +0 -0
  224. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/hypothesis/strategies/sql_client.py +0 -0
  225. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/hypothesis/strategies/temporal.py +0 -0
  226. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/scale_data_generator/README.md +0 -0
  227. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/scale_data_generator/__init__.py +0 -0
  228. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/scale_data_generator/config_loader.py +0 -0
  229. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/scale_data_generator/data_generator.py +0 -0
  230. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/scale_data_generator/driver.py +0 -0
  231. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/scale_data_generator/examples/config.yaml +0 -0
  232. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/scale_data_generator/output_handler/__init__.py +0 -0
  233. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/scale_data_generator/output_handler/base.py +0 -0
  234. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/scale_data_generator/output_handler/csv_handler.py +0 -0
  235. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/scale_data_generator/output_handler/json_handler.py +0 -0
  236. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/scale_data_generator/output_handler/parquet_handler.py +0 -0
  237. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/test_utils/workflow_monitoring.py +0 -0
  238. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/transformers/__init__.py +0 -0
  239. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/transformers/atlas/__init__.py +0 -0
  240. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/transformers/atlas/sql.py +0 -0
  241. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/transformers/common/__init__.py +0 -0
  242. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/transformers/common/utils.py +0 -0
  243. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/transformers/query/__init__.py +0 -0
  244. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/transformers/query/templates/column.yaml +0 -0
  245. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/transformers/query/templates/database.yaml +0 -0
  246. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/transformers/query/templates/extras-procedure.yaml +0 -0
  247. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/transformers/query/templates/function.yaml +0 -0
  248. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/transformers/query/templates/schema.yaml +0 -0
  249. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/transformers/query/templates/table.yaml +0 -0
  250. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/transformers/query/templates/tag_attachment.yaml +0 -0
  251. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/worker.py +0 -0
  252. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/workflows/metadata_extraction/__init__.py +0 -0
  253. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/application_sdk/workflows/query_extraction/__init__.py +0 -0
  254. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/components/README.md +0 -0
  255. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/components/aws-secrets.yaml +0 -0
  256. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/components/eventstore.yaml +0 -0
  257. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/components/objectstore.yaml +0 -0
  258. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/components/secretstore.yaml +0 -0
  259. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/components/statestore.yaml +0 -0
  260. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/concepts/activities.md +0 -0
  261. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/concepts/application.md +0 -0
  262. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/concepts/application_sql.md +0 -0
  263. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/concepts/clients.md +0 -0
  264. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/concepts/common.md +0 -0
  265. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/concepts/handlers.md +0 -0
  266. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/concepts/inputs.md +0 -0
  267. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/concepts/outputs.md +0 -0
  268. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/concepts/server.md +0 -0
  269. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/concepts/worker.md +0 -0
  270. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/guides/architecture.md +0 -0
  271. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/guides/atlantis.md +0 -0
  272. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/guides/best-practices.md +0 -0
  273. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/guides/index.md +0 -0
  274. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/guides/partners.md +0 -0
  275. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/guides/secretstores.md +0 -0
  276. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/guides/sql-application-guide.md +0 -0
  277. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/index.md +0 -0
  278. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/setup/LINUX.md +0 -0
  279. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/setup/MAC.md +0 -0
  280. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/setup/WINDOWS.md +0 -0
  281. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/setup/troubleshooting.md +0 -0
  282. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/static/assets/logo.svg +0 -0
  283. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/static/images/phoenix-sdk-featureset.png +0 -0
  284. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/static/javascripts/mathjax.js +0 -0
  285. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/docs/static/stylesheets/extra.css +0 -0
  286. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/docs/mkdocs.yml +0 -0
  287. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/examples/README.md +0 -0
  288. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/examples/application_custom_fastapi.py +0 -0
  289. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/examples/application_fastapi.py +0 -0
  290. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/examples/application_hello_world.py +0 -0
  291. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/examples/application_sql.py +0 -0
  292. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/examples/application_sql_miner.py +0 -0
  293. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/examples/application_sql_with_custom_pyatlan_transformer.py +0 -0
  294. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/examples/application_sql_with_custom_transformer.py +0 -0
  295. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/examples/run_examples.py +0 -0
  296. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/examples/sql_query_templates/database.yaml +0 -0
  297. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/__init__.py +0 -0
  298. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/__init__.py +0 -0
  299. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/activities/__init__.py +0 -0
  300. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/activities/common/__init__.py +0 -0
  301. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/activities/common/test_utils.py +0 -0
  302. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/activities/metadata_extraction/__init__.py +0 -0
  303. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/activities/metadata_extraction/test_sql.py +0 -0
  304. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/activities/query_extraction/__init__.py +0 -0
  305. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/application/__init__.py +0 -0
  306. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/application/metadata_extraction/test_sql.py +0 -0
  307. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/application/test_application.py +0 -0
  308. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/clients/__init__.py +0 -0
  309. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/clients/test_async_sql_client.py +0 -0
  310. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/clients/test_sql_client.py +0 -0
  311. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/common/test_aws_utils.py +0 -0
  312. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/docgen/parsers/test_directory_parser.py +0 -0
  313. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/docgen/parsers/test_manifest_parser.py +0 -0
  314. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/handlers/__init__.py +0 -0
  315. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/handlers/sql/test_auth.py +0 -0
  316. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/handlers/sql/test_check_schemas_and_databases.py +0 -0
  317. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/handlers/sql/test_extract_allowed_schemas.py +0 -0
  318. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/handlers/sql/test_metadata.py +0 -0
  319. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/handlers/sql/test_preflight_check.py +0 -0
  320. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/handlers/sql/test_prepare_metadata.py +0 -0
  321. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/handlers/sql/test_tables_check.py +0 -0
  322. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/handlers/sql/test_validate_filters.py +0 -0
  323. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/inputs/test_json.py +0 -0
  324. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/observability/__init__.py +0 -0
  325. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/observability/test_logger_adaptor.py +0 -0
  326. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/outputs/test_iceberg.py +0 -0
  327. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/outputs/test_json_output.py +0 -0
  328. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/outputs/test_output.py +0 -0
  329. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/server/__init__.py +0 -0
  330. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/server/fastapi/routers/__init__.py +0 -0
  331. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/server/fastapi/routers/server.py +0 -0
  332. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/server/fastapi/test_fastapi.py +0 -0
  333. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/test_worker.py +0 -0
  334. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/__init__.py +0 -0
  335. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/atlas/__init__.py +0 -0
  336. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/atlas/resources/raw_columns.json +0 -0
  337. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/atlas/resources/raw_databases.json +0 -0
  338. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/atlas/resources/raw_functions.json +0 -0
  339. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/atlas/resources/raw_procedures.json +0 -0
  340. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/atlas/resources/raw_schemas.json +0 -0
  341. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/atlas/resources/raw_tables.json +0 -0
  342. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/atlas/resources/transformed_columns.json +0 -0
  343. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/atlas/resources/transformed_databases.json +0 -0
  344. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/atlas/resources/transformed_functions.json +0 -0
  345. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/atlas/resources/transformed_procedures.json +0 -0
  346. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/atlas/resources/transformed_schemas.json +0 -0
  347. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/atlas/resources/transformed_tables.json +0 -0
  348. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/atlas/test_column.py +0 -0
  349. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/atlas/test_database.py +0 -0
  350. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/atlas/test_function.py +0 -0
  351. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/atlas/test_procedure.py +0 -0
  352. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/atlas/test_schema.py +0 -0
  353. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/atlas/test_table.py +0 -0
  354. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/query/resources/raw/column.json +0 -0
  355. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/query/resources/raw/database.json +0 -0
  356. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/query/resources/raw/extras-procedure.json +0 -0
  357. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/query/resources/raw/function.json +0 -0
  358. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/query/resources/raw/schema.json +0 -0
  359. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/query/resources/raw/table.json +0 -0
  360. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/query/resources/transformed/column.json +0 -0
  361. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/query/resources/transformed/database.json +0 -0
  362. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/query/resources/transformed/extras-procedure.json +0 -0
  363. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/query/resources/transformed/function.json +0 -0
  364. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/query/resources/transformed/schema.json +0 -0
  365. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/query/resources/transformed/table.json +0 -0
  366. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/query/test_sql_transformer.py +0 -0
  367. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/transformers/query/test_sql_transformer_output_validation.py +0 -0
  368. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/workflows/metadata_extraction/test_sql.py +0 -0
  369. {atlan_application_sdk-0.1.1rc21 → atlan_application_sdk-0.1.1rc23}/tests/unit/workflows/query_extraction/__init__.py +0 -0
@@ -125,6 +125,7 @@ runs:
125
125
  SNOWFLAKE_ACCOUNT_ID: ${{ inputs.snowflake-account-id }}
126
126
  SNOWFLAKE_USER: ${{ inputs.snowflake-user }}
127
127
  SNOWFLAKE_PASSWORD: ${{ inputs.snowflake-password }}
128
+ ATLAN_LOCAL_DEVELOPMENT: true
128
129
  run: |
129
130
  cd examples
130
131
  uv run run_examples.py
@@ -0,0 +1,8 @@
1
+ ## v0.1.1rc23 (July 29, 2025)
2
+
3
+ Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc22...v0.1.1rc23
4
+
5
+ ### Bug Fixes
6
+
7
+ - marker file being saved at incorrect location (#620) (by @Abhishek Agrawal in [d3de56f](https://github.com/atlanhq/application-sdk/commit/d3de56f))
8
+ - issues with inferring workflow_run_id (#624) (by @Nishchith Shetty in [61e7a4d](https://github.com/atlanhq/application-sdk/commit/61e7a4d))
@@ -1,5 +1,28 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.1.1rc23 (July 29, 2025)
4
+
5
+ Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc22...v0.1.1rc23
6
+
7
+ ### Bug Fixes
8
+
9
+ - marker file being saved at incorrect location (#620) (by @Abhishek Agrawal in [d3de56f](https://github.com/atlanhq/application-sdk/commit/d3de56f))
10
+ - issues with inferring workflow_run_id (#624) (by @Nishchith Shetty in [61e7a4d](https://github.com/atlanhq/application-sdk/commit/61e7a4d))
11
+
12
+
13
+
14
+ ## v0.1.1rc22 (July 21, 2025)
15
+
16
+ Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc21...v0.1.1rc22
17
+
18
+ ### Features
19
+
20
+ - use object store as state store, path update and fixes (#618) (by @Nishchith Shetty in [d439cb4](https://github.com/atlanhq/application-sdk/commit/d439cb4))
21
+
22
+ ### Bug Fixes
23
+
24
+ - suppress daft dependency loggers (#611) (by @Nishchith Shetty in [3e379d4](https://github.com/atlanhq/application-sdk/commit/3e379d4))
25
+
3
26
 
4
27
  ## v0.1.1rc21 (July 10, 2025)
5
28
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: atlan-application-sdk
3
- Version: 0.1.1rc21
3
+ Version: 0.1.1rc23
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
@@ -25,7 +25,7 @@ Requires-Dist: fastapi[standard]>=0.115.0
25
25
  Requires-Dist: loguru>=0.7.3
26
26
  Requires-Dist: opentelemetry-exporter-otlp>=1.27.0
27
27
  Requires-Dist: psutil>=7.0.0
28
- Requires-Dist: pyatlan==7.1.1
28
+ Requires-Dist: pyatlan>=7.1.1
29
29
  Requires-Dist: pydantic>=2.10.6
30
30
  Requires-Dist: python-dotenv>=1.1.0
31
31
  Requires-Dist: uvloop>=0.21.0; sys_platform != 'win32'
@@ -13,16 +13,23 @@ Example:
13
13
  ... await state.handler.do_something()
14
14
  """
15
15
 
16
+ import os
16
17
  from abc import ABC
17
18
  from typing import Any, Dict, Generic, Optional, TypeVar
18
19
 
19
20
  from pydantic import BaseModel
20
21
  from temporalio import activity
21
22
 
22
- from application_sdk.activities.common.utils import auto_heartbeater, get_workflow_id
23
+ from application_sdk.activities.common.utils import (
24
+ auto_heartbeater,
25
+ build_output_path,
26
+ get_workflow_id,
27
+ get_workflow_run_id,
28
+ )
23
29
  from application_sdk.common.error_codes import OrchestratorError
30
+ from application_sdk.constants import TEMPORARY_PATH
24
31
  from application_sdk.handlers import HandlerInterface
25
- from application_sdk.inputs.statestore import StateStoreInput
32
+ from application_sdk.inputs.statestore import StateStoreInput, StateType
26
33
  from application_sdk.observability.logger_adaptor import get_logger
27
34
 
28
35
  logger = get_logger(__name__)
@@ -177,13 +184,23 @@ class ActivitiesInterface(ABC, Generic[ActivitiesStateType]):
177
184
  Raises:
178
185
  IOError: If configuration cannot be retrieved from state store
179
186
  """
180
- workflow_id = workflow_config.get("workflow_id")
187
+ workflow_id = workflow_config.get("workflow_id", get_workflow_id())
181
188
  if not workflow_id:
182
189
  raise ValueError("workflow_id is required in workflow_config")
183
190
 
184
191
  try:
185
192
  # This already handles the Dapr call internally
186
- return StateStoreInput.extract_configuration(workflow_id)
193
+ workflow_args = StateStoreInput.get_state(workflow_id, StateType.WORKFLOWS)
194
+ workflow_args["output_prefix"] = workflow_args.get(
195
+ "output_prefix", TEMPORARY_PATH
196
+ )
197
+ workflow_args["output_path"] = os.path.join(
198
+ workflow_args["output_prefix"], build_output_path()
199
+ )
200
+ workflow_args["workflow_id"] = workflow_id
201
+ workflow_args["workflow_run_id"] = get_workflow_run_id()
202
+ return workflow_args
203
+
187
204
  except Exception as e:
188
205
  logger.error(
189
206
  f"Failed to retrieve workflow configuration for {workflow_id}: {str(e)}",
@@ -11,6 +11,7 @@ from typing import Any, Awaitable, Callable, Optional, TypeVar, cast
11
11
 
12
12
  from temporalio import activity
13
13
 
14
+ from application_sdk.constants import APPLICATION_NAME, WORKFLOW_OUTPUT_PATH_TEMPLATE
14
15
  from application_sdk.observability.logger_adaptor import get_logger
15
16
 
16
17
  logger = get_logger(__name__)
@@ -43,6 +44,34 @@ def get_workflow_id() -> str:
43
44
  raise Exception("Failed to get workflow id")
44
45
 
45
46
 
47
+ def get_workflow_run_id() -> str:
48
+ """Get the workflow run ID from the current activity."""
49
+ try:
50
+ return activity.info().workflow_run_id
51
+ except Exception as e:
52
+ logger.error("Failed to get workflow run id", exc_info=e)
53
+ raise Exception("Failed to get workflow run id")
54
+
55
+
56
+ def build_output_path() -> str:
57
+ """Build a standardized output path for workflow artifacts.
58
+
59
+ This method creates a consistent output path format across all workflows using the WORKFLOW_OUTPUT_PATH_TEMPLATE constant.
60
+
61
+ Returns:
62
+ str: The standardized output path.
63
+
64
+ Example:
65
+ >>> build_output_path()
66
+ "artifacts/apps/appName/workflows/wf-123/run-456"
67
+ """
68
+ return WORKFLOW_OUTPUT_PATH_TEMPLATE.format(
69
+ application_name=APPLICATION_NAME,
70
+ workflow_id=get_workflow_id(),
71
+ run_id=get_workflow_run_id(),
72
+ )
73
+
74
+
46
75
  def auto_heartbeater(fn: F) -> F:
47
76
  """Decorator that automatically sends heartbeats during activity execution.
48
77
 
@@ -137,8 +137,8 @@ class BaseSQLMetadataExtractionActivities(ActivitiesInterface):
137
137
  self._state[workflow_id].handler = handler
138
138
 
139
139
  if "credential_guid" in workflow_args:
140
- credentials = SecretStoreInput.extract_credentials(
141
- workflow_args["credential_guid"]
140
+ credentials = await SecretStoreInput.fetch_secret(
141
+ secret_key=workflow_args["credential_guid"]
142
142
  )
143
143
  await sql_client.load(credentials)
144
144
 
@@ -128,8 +128,8 @@ class SQLQueryExtractionActivities(ActivitiesInterface):
128
128
  workflow_id = get_workflow_id()
129
129
  sql_client = self.sql_client_class()
130
130
  if "credential_guid" in workflow_args:
131
- credentials = SecretStoreInput.extract_credentials(
132
- workflow_args["credential_guid"]
131
+ credentials = await SecretStoreInput.fetch_secret(
132
+ secret_key=workflow_args["credential_guid"]
133
133
  )
134
134
  await sql_client.load(credentials)
135
135
 
@@ -398,7 +398,7 @@ class SQLQueryExtractionActivities(ActivitiesInterface):
398
398
  Raises:
399
399
  Exception: If marker file writing or object store upload fails
400
400
  """
401
- output_path = workflow_args["output_path"].rsplit("/", 2)[0]
401
+ output_path = workflow_args["output_path"].rsplit("/", 1)[0]
402
402
  logger.info(f"Writing marker file to {output_path}")
403
403
  marker_file_path = os.path.join(output_path, "markerfile")
404
404
 
@@ -436,7 +436,7 @@ class SQLQueryExtractionActivities(ActivitiesInterface):
436
436
  Exception: If marker file reading fails (logged as warning, not re-raised)
437
437
  """
438
438
  try:
439
- output_path = workflow_args["output_path"].rsplit("/", 2)[0]
439
+ output_path = workflow_args["output_path"].rsplit("/", 1)[0]
440
440
  marker_file_path = os.path.join(output_path, "markerfile")
441
441
  logger.info(f"Downloading marker file from {marker_file_path}")
442
442
 
@@ -485,7 +485,7 @@ class SQLQueryExtractionActivities(ActivitiesInterface):
485
485
 
486
486
  current_marker = self.read_marker(workflow_args)
487
487
  if current_marker:
488
- miner_args.miner_start_time_epoch = current_marker
488
+ miner_args.current_marker = current_marker
489
489
 
490
490
  queries_sql_query = self.fetch_queries_sql.format(
491
491
  database_name_cleaned=miner_args.database_name_cleaned,
@@ -28,6 +28,7 @@ from application_sdk.constants import (
28
28
  WORKFLOW_NAMESPACE,
29
29
  WORKFLOW_PORT,
30
30
  )
31
+ from application_sdk.inputs.statestore import StateType
31
32
  from application_sdk.observability.logger_adaptor import get_logger
32
33
  from application_sdk.outputs.eventstore import (
33
34
  ApplicationEventNames,
@@ -312,13 +313,12 @@ class TemporalWorkflowClient(WorkflowClient):
312
313
  """
313
314
  if "credentials" in workflow_args:
314
315
  # remove credentials from workflow_args and add reference to credentials
315
- workflow_args["credential_guid"] = SecretStoreOutput.store_credentials(
316
+ workflow_args["credential_guid"] = await SecretStoreOutput.save_secret(
316
317
  workflow_args["credentials"]
317
318
  )
318
319
  del workflow_args["credentials"]
319
320
 
320
321
  workflow_id = workflow_args.get("workflow_id")
321
- output_prefix = workflow_args.get("output_prefix", "/tmp/output")
322
322
  if not workflow_id:
323
323
  # if workflow_id is not provided, create a new one
324
324
  workflow_id = workflow_args.get("argo_workflow_name", str(uuid.uuid4()))
@@ -327,11 +327,12 @@ class TemporalWorkflowClient(WorkflowClient):
327
327
  {
328
328
  "application_name": self.application_name,
329
329
  "workflow_id": workflow_id,
330
- "output_prefix": output_prefix,
331
330
  }
332
331
  )
333
332
 
334
- StateStoreOutput.store_configuration(workflow_id, workflow_args)
333
+ await StateStoreOutput.save_state_object(
334
+ id=workflow_id, value=workflow_args, type=StateType.WORKFLOWS
335
+ )
335
336
 
336
337
  logger.info(f"Created workflow config with ID: {workflow_id}")
337
338
 
@@ -43,7 +43,9 @@ async def resolve_credentials(credentials: Dict[str, Any]) -> Dict[str, Any]:
43
43
  )
44
44
 
45
45
  # Fetch and apply secret using SecretStoreInput
46
- secret_data = await SecretStoreInput.fetch_secret(credential_source, secret_key)
46
+ secret_data = await SecretStoreInput.fetch_secret(
47
+ secret_key=secret_key, component_name=credential_source
48
+ )
47
49
  return SecretStoreInput.apply_secret_values(credentials, secret_data)
48
50
 
49
51
  except Exception as e:
@@ -18,9 +18,7 @@ from typing import (
18
18
  )
19
19
 
20
20
  from application_sdk.common.error_codes import CommonError
21
- from application_sdk.inputs.statestore import StateStoreInput
22
21
  from application_sdk.observability.logger_adaptor import get_logger
23
- from application_sdk.outputs.statestore import StateStoreOutput
24
22
 
25
23
  logger = get_logger(__name__)
26
24
 
@@ -268,38 +266,6 @@ def normalize_filters(
268
266
  return normalized_filter_list
269
267
 
270
268
 
271
- def get_workflow_config(config_id: str) -> Dict[str, Any]:
272
- """Gets the workflow configuration from the state store using config id.
273
-
274
- Args:
275
- config_id: The configuration ID to retrieve.
276
-
277
- Returns:
278
- dict: The workflow configuration.
279
- """
280
- return StateStoreInput.extract_configuration(config_id)
281
-
282
-
283
- def update_workflow_config(config_id: str, config: Dict[str, Any]) -> Dict[str, Any]:
284
- """Updates the workflow configuration.
285
-
286
- Args:
287
- config_id: The configuration ID to update.
288
- config: The new configuration dictionary.
289
-
290
- Returns:
291
- dict: The updated workflow configuration.
292
- """
293
- extracted_config = get_workflow_config(config_id)
294
-
295
- for key in extracted_config.keys():
296
- if key in config and config[key] is not None:
297
- extracted_config[key] = config[key]
298
-
299
- StateStoreOutput.store_configuration(config_id, extracted_config)
300
- return extracted_config
301
-
302
-
303
269
  def read_sql_files(
304
270
  queries_prefix: str = f"{os.path.dirname(os.path.abspath(__file__))}/queries",
305
271
  ) -> Dict[str, str]:
@@ -44,6 +44,28 @@ APP_DASHBOARD_PORT = int(os.getenv("ATLAN_APP_DASHBOARD_PORT", "8000"))
44
44
  SQL_SERVER_MIN_VERSION = os.getenv("ATLAN_SQL_SERVER_MIN_VERSION")
45
45
  #: Path to the SQL queries directory
46
46
  SQL_QUERIES_PATH = os.getenv("ATLAN_SQL_QUERIES_PATH", "app/sql")
47
+ #: Whether to use local development mode (used for instance to fetch secrets from the local state store)
48
+ LOCAL_DEVELOPMENT = os.getenv("ATLAN_LOCAL_DEVELOPMENT", "false").lower() == "true"
49
+
50
+
51
+ # Output Path Constants
52
+ #: Output path format for workflows (example: objectstore://bucket/artifacts/apps/{application_name}/workflows/{workflow_id}/{workflow_run_id})
53
+ WORKFLOW_OUTPUT_PATH_TEMPLATE = (
54
+ "artifacts/apps/{application_name}/workflows/{workflow_id}/{run_id}"
55
+ )
56
+
57
+ # Temporary Path (used to store intermediate files)
58
+ TEMPORARY_PATH = os.getenv("ATLAN_TEMPORARY_PATH", "./local/tmp/")
59
+
60
+ # State Store Constants
61
+ #: Path template for state store files (example: objectstore://bucket/persistent-artifacts/apps/{application_name}/{state_type}/{id}/config.json)
62
+ STATE_STORE_PATH_TEMPLATE = (
63
+ "persistent-artifacts/apps/{application_name}/{state_type}/{id}/config.json"
64
+ )
65
+
66
+ # Observability Constants
67
+ #: Directory for storing observability data
68
+ OBSERVABILITY_DIR = "artifacts/apps/{application_name}/observability"
47
69
 
48
70
  # Workflow Client Constants
49
71
  #: Host address for the Temporal server
@@ -87,6 +109,7 @@ OBJECT_STORE_NAME = os.getenv("OBJECT_STORE_NAME", "objectstore")
87
109
  #: Name of the pubsub component in DAPR
88
110
  EVENT_STORE_NAME = os.getenv("EVENT_STORE_NAME", "eventstore")
89
111
 
112
+
90
113
  # Logger Constants
91
114
  #: Log level for the application (DEBUG, INFO, WARNING, ERROR, CRITICAL)
92
115
  LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO").upper()
@@ -120,10 +143,6 @@ OTEL_QUEUE_SIZE = int(os.getenv("OTEL_QUEUE_SIZE", "2048"))
120
143
  #: AWS Session Name
121
144
  AWS_SESSION_NAME = os.getenv("AWS_SESSION_NAME", "temp-session")
122
145
 
123
- # Observability Constants
124
- #: Directory for storing observability data
125
- OBSERVABILITY_DIR = os.environ.get("ATLAN_OBSERVABILITY_DIR", "/tmp/observability")
126
-
127
146
  # Log batching configuration
128
147
  LOG_BATCH_SIZE = int(os.environ.get("ATLAN_LOG_BATCH_SIZE", 100))
129
148
  LOG_FLUSH_INTERVAL_SECONDS = int(os.environ.get("ATLAN_LOG_FLUSH_INTERVAL_SECONDS", 10))
@@ -133,7 +152,6 @@ LOG_RETENTION_DAYS = int(os.environ.get("ATLAN_LOG_RETENTION_DAYS", 30))
133
152
  LOG_CLEANUP_ENABLED = bool(os.environ.get("ATLAN_LOG_CLEANUP_ENABLED", False))
134
153
 
135
154
  # Log Location configuration
136
- LOG_DIR = os.environ.get("ATLAN_LOG_DIR", "/tmp/observability")
137
155
  LOG_FILE_NAME = os.environ.get("ATLAN_LOG_FILE_NAME", "log.parquet")
138
156
  # Hive Partitioning Configuration
139
157
  ENABLE_HIVE_PARTITIONING = (
@@ -88,11 +88,16 @@ class ObjectStoreInput:
88
88
 
89
89
  Args:
90
90
  download_file_prefix (str): The base path to calculate relative paths from.
91
+ example: /tmp/output
91
92
  file_path (str): The full path to where the file should be downloaded.
93
+ example: /tmp/output/persistent-artifacts/apps/myapp/data/wf-123/state.json
92
94
 
93
95
  Raises:
94
96
  Exception: If there's an error downloading the file from the object store.
95
97
  """
98
+ if not os.path.exists(os.path.dirname(file_path)):
99
+ os.makedirs(os.path.dirname(file_path), exist_ok=True)
100
+
96
101
  with DaprClient() as client:
97
102
  relative_path = os.path.relpath(file_path, download_file_prefix)
98
103
  metadata = {"key": relative_path, "fileName": relative_path}
@@ -7,7 +7,8 @@ from typing import Any, Dict
7
7
 
8
8
  from dapr.clients import DaprClient
9
9
 
10
- from application_sdk.inputs.statestore import StateStoreInput
10
+ from application_sdk.constants import LOCAL_DEVELOPMENT, SECRET_STORE_NAME
11
+ from application_sdk.inputs.statestore import StateStoreInput, StateType
11
12
  from application_sdk.observability.logger_adaptor import get_logger
12
13
 
13
14
  logger = get_logger(__name__)
@@ -15,7 +16,34 @@ logger = get_logger(__name__)
15
16
 
16
17
  class SecretStoreInput:
17
18
  @classmethod
18
- async def fetch_secret(cls, component_name: str, secret_key: str) -> Dict[str, Any]:
19
+ def get_secret(
20
+ cls, secret_key: str, component_name: str = SECRET_STORE_NAME
21
+ ) -> Dict[str, Any]:
22
+ """Get secret from the Dapr component.
23
+
24
+ Args:
25
+ secret_key: Key of the secret to fetch
26
+ component_name: Name of the Dapr component to fetch from
27
+
28
+ Returns:
29
+ Dict with processed secret data
30
+ """
31
+ try:
32
+ with DaprClient() as client:
33
+ dapr_secret_object = client.get_secret(
34
+ store_name=component_name, key=secret_key
35
+ )
36
+ return cls._process_secret_data(dapr_secret_object.secret)
37
+ except Exception as e:
38
+ logger.error(
39
+ f"Failed to fetch secret using component {component_name}: {str(e)}"
40
+ )
41
+ raise
42
+
43
+ @classmethod
44
+ async def fetch_secret(
45
+ cls, secret_key: str, component_name: str = SECRET_STORE_NAME
46
+ ) -> Dict[str, Any]:
19
47
  """Fetch secret using the Dapr component.
20
48
 
21
49
  Args:
@@ -29,9 +57,15 @@ class SecretStoreInput:
29
57
  Exception: If secret fetching fails
30
58
  """
31
59
  try:
32
- with DaprClient() as client:
33
- secret = client.get_secret(store_name=component_name, key=secret_key)
34
- return cls._process_secret_data(secret.secret)
60
+ secret = {}
61
+ if not LOCAL_DEVELOPMENT:
62
+ secret = cls.get_secret(secret_key, component_name)
63
+
64
+ credential_config = StateStoreInput.get_state(
65
+ secret_key, StateType.CREDENTIALS
66
+ )
67
+ secret.update(credential_config)
68
+ return secret
35
69
  except Exception as e:
36
70
  logger.error(
37
71
  f"Failed to fetch secret using component {component_name}: {str(e)}"
@@ -93,25 +127,3 @@ class SecretStoreInput:
93
127
  result_data["extra"][key] = secret_data[value]
94
128
 
95
129
  return result_data
96
-
97
- @classmethod
98
- def extract_credentials(cls, credential_guid: str) -> Dict[str, Any]:
99
- """Extract credentials from the state store using the credential GUID.
100
-
101
- Args:
102
- credential_guid: The unique identifier for the credentials.
103
-
104
- Returns:
105
- Dict[str, Any]: The credentials if found.
106
-
107
- Raises:
108
- ValueError: If the credential_guid is invalid or credentials are not found.
109
- Exception: If there's an error with the Dapr client operations.
110
-
111
- Examples:
112
- >>> SecretStoreInput.extract_credentials("1234567890")
113
- {"username": "admin", "password": "password"}
114
- """
115
- if not credential_guid:
116
- raise ValueError("Invalid credential GUID provided.")
117
- return StateStoreInput.get_state(f"credential_{credential_guid}")
@@ -0,0 +1,98 @@
1
+ """State store for the application."""
2
+
3
+ import json
4
+ import os
5
+ from enum import Enum
6
+ from typing import Any, Dict
7
+
8
+ from temporalio import activity
9
+
10
+ from application_sdk.constants import (
11
+ APPLICATION_NAME,
12
+ STATE_STORE_PATH_TEMPLATE,
13
+ TEMPORARY_PATH,
14
+ )
15
+ from application_sdk.inputs.objectstore import ObjectStoreInput
16
+ from application_sdk.observability.logger_adaptor import get_logger
17
+
18
+ logger = get_logger(__name__)
19
+ activity.logger = logger
20
+
21
+
22
+ class StateType(Enum):
23
+ WORKFLOWS = "workflows"
24
+ CREDENTIALS = "credentials"
25
+
26
+ @classmethod
27
+ def is_member(cls, type: str) -> bool:
28
+ return type in cls._value2member_map_
29
+
30
+
31
+ def build_state_store_path(id: str, state_type: StateType) -> str:
32
+ """Build the state file path for the given id and type.
33
+
34
+ Args:
35
+ id: The unique identifier for the state.
36
+ state_type: The type of state (workflows, credentials, etc.).
37
+
38
+ Returns:
39
+ str: The constructed state file path.
40
+
41
+ Example:
42
+ >>> build_state_store_path("wf-123", "workflows")
43
+ 'persistent-artifacts/apps/my-app/workflows/wf-123/config.json'
44
+ """
45
+ return STATE_STORE_PATH_TEMPLATE.format(
46
+ application_name=APPLICATION_NAME, state_type=state_type.value, id=id
47
+ )
48
+
49
+
50
+ class StateStoreInput:
51
+ @classmethod
52
+ def get_state(cls, id: str, type: StateType) -> Dict[str, Any]:
53
+ """Get state from the store.
54
+
55
+ Args:
56
+ id: The key to retrieve the state for.
57
+ type: The type of state to retrieve.
58
+
59
+ Returns:
60
+ Dict[str, Any]: The retrieved state data.
61
+
62
+ Raises:
63
+ ValueError: If no state is found for the given key.
64
+ IOError: If there's an error with the Dapr client operations.
65
+
66
+ Example:
67
+ >>> from application_sdk.inputs.statestore import StateStoreInput
68
+
69
+ >>> state = StateStoreInput.get_state("wf-123")
70
+ >>> print(state)
71
+ {'test': 'test'}
72
+ """
73
+
74
+ state_file_path = build_state_store_path(id, type)
75
+ state = {}
76
+
77
+ try:
78
+ local_state_file_path = os.path.join(TEMPORARY_PATH, state_file_path)
79
+ ObjectStoreInput.download_file_from_object_store(
80
+ download_file_prefix=TEMPORARY_PATH,
81
+ file_path=local_state_file_path,
82
+ )
83
+
84
+ with open(local_state_file_path, "r") as file:
85
+ state = json.load(file)
86
+
87
+ except Exception as e:
88
+ # local error message is "file not found", while in object store it is "object not found"
89
+ if "not found" in str(e).lower():
90
+ logger.debug(
91
+ f"No state found for {type.value} with id '{id}', returning empty dict"
92
+ )
93
+ pass
94
+ else:
95
+ logger.error(f"Failed to extract state: {str(e)}")
96
+ raise
97
+
98
+ return state
@@ -24,7 +24,6 @@ from application_sdk.constants import (
24
24
  LOG_FLUSH_INTERVAL_SECONDS,
25
25
  LOG_LEVEL,
26
26
  LOG_RETENTION_DAYS,
27
- OBSERVABILITY_DIR,
28
27
  OTEL_BATCH_DELAY_MS,
29
28
  OTEL_BATCH_SIZE,
30
29
  OTEL_EXPORTER_OTLP_ENDPOINT,
@@ -36,7 +35,10 @@ from application_sdk.constants import (
36
35
  SERVICE_VERSION,
37
36
  )
38
37
  from application_sdk.observability.observability import AtlanObservability
39
- from application_sdk.observability.utils import get_workflow_context
38
+ from application_sdk.observability.utils import (
39
+ get_observability_dir,
40
+ get_workflow_context,
41
+ )
40
42
 
41
43
 
42
44
  class LogExtraModel(BaseModel):
@@ -200,6 +202,13 @@ logging.basicConfig(
200
202
  level=logging.getLevelNamesMapping()[LOG_LEVEL], handlers=[InterceptHandler()]
201
203
  )
202
204
 
205
+ DEPENDENCY_LOGGERS = ["daft_io.stats", "tracing.span"]
206
+
207
+ # Configure external dependency loggers to reduce noise
208
+ for logger_name in DEPENDENCY_LOGGERS:
209
+ logging.getLogger(logger_name).setLevel(logging.WARNING)
210
+
211
+
203
212
  # Add these constants
204
213
  SEVERITY_MAPPING = {
205
214
  "DEBUG": SeverityNumber.DEBUG,
@@ -245,7 +254,7 @@ class AtlanLoggerAdapter(AtlanObservability[LogRecordModel]):
245
254
  flush_interval=LOG_FLUSH_INTERVAL_SECONDS,
246
255
  retention_days=LOG_RETENTION_DAYS,
247
256
  cleanup_enabled=LOG_CLEANUP_ENABLED,
248
- data_dir=OBSERVABILITY_DIR,
257
+ data_dir=get_observability_dir(),
249
258
  file_name=LOG_FILE_NAME,
250
259
  )
251
260
  self.logger_name = logger_name
@@ -19,7 +19,6 @@ from application_sdk.constants import (
19
19
  METRICS_FILE_NAME,
20
20
  METRICS_FLUSH_INTERVAL_SECONDS,
21
21
  METRICS_RETENTION_DAYS,
22
- OBSERVABILITY_DIR,
23
22
  OTEL_BATCH_DELAY_MS,
24
23
  OTEL_EXPORTER_OTLP_ENDPOINT,
25
24
  OTEL_EXPORTER_TIMEOUT_SECONDS,
@@ -30,7 +29,10 @@ from application_sdk.constants import (
30
29
  )
31
30
  from application_sdk.observability.logger_adaptor import get_logger
32
31
  from application_sdk.observability.observability import AtlanObservability
33
- from application_sdk.observability.utils import get_workflow_context
32
+ from application_sdk.observability.utils import (
33
+ get_observability_dir,
34
+ get_workflow_context,
35
+ )
34
36
 
35
37
 
36
38
  class MetricType(Enum):
@@ -165,7 +167,7 @@ class AtlanMetricsAdapter(AtlanObservability[MetricRecord]):
165
167
  flush_interval=METRICS_FLUSH_INTERVAL_SECONDS,
166
168
  retention_days=METRICS_RETENTION_DAYS,
167
169
  cleanup_enabled=METRICS_CLEANUP_ENABLED,
168
- data_dir=OBSERVABILITY_DIR,
170
+ data_dir=get_observability_dir(),
169
171
  file_name=METRICS_FILE_NAME,
170
172
  )
171
173