atlan-application-sdk 0.1.1rc24__tar.gz → 0.1.1rc26__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 (382) hide show
  1. atlan_application_sdk-0.1.1rc26/.cursor/BUGBOT.md +60 -0
  2. atlan_application_sdk-0.1.1rc26/.cursor/rules/exception-handling.mdc +198 -0
  3. atlan_application_sdk-0.1.1rc26/.cursor/rules/performance.mdc +294 -0
  4. atlan_application_sdk-0.1.1rc26/.env.example +37 -0
  5. atlan_application_sdk-0.1.1rc26/.github/release_notes.md +11 -0
  6. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/CHANGELOG.md +22 -0
  7. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/PKG-INFO +2 -1
  8. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/activities/metadata_extraction/sql.py +67 -6
  9. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/activities/query_extraction/sql.py +9 -6
  10. atlan_application_sdk-0.1.1rc26/application_sdk/clients/atlan_auth.py +232 -0
  11. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/clients/sql.py +16 -23
  12. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/clients/temporal.py +123 -22
  13. atlan_application_sdk-0.1.1rc26/application_sdk/common/credential_utils.py +85 -0
  14. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/common/error_codes.py +12 -0
  15. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/common/utils.py +34 -9
  16. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/constants.py +33 -3
  17. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/handlers/sql.py +8 -5
  18. atlan_application_sdk-0.1.1rc26/application_sdk/inputs/objectstore.py +252 -0
  19. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/inputs/secretstore.py +20 -35
  20. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/inputs/statestore.py +2 -1
  21. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/observability/observability.py +7 -6
  22. atlan_application_sdk-0.1.1rc26/application_sdk/outputs/atlan_storage.py +166 -0
  23. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/outputs/objectstore.py +13 -5
  24. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/outputs/statestore.py +7 -3
  25. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/version.py +1 -1
  26. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/workflows/metadata_extraction/sql.py +26 -5
  27. atlan_application_sdk-0.1.1rc26/components/atlan-storage.yaml +20 -0
  28. atlan_application_sdk-0.1.1rc26/components/deployment-secrets.yaml +7 -0
  29. atlan_application_sdk-0.1.1rc26/docs/docs/concepts/atlanupload.md +339 -0
  30. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/concepts/inputs.md +0 -2
  31. atlan_application_sdk-0.1.1rc26/docs/docs/concepts/temporal_auth.md +534 -0
  32. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/pyproject.toml +6 -1
  33. atlan_application_sdk-0.1.1rc26/tests/conftest.py +15 -0
  34. atlan_application_sdk-0.1.1rc26/tests/unit/clients/test_atlan_auth.py +131 -0
  35. atlan_application_sdk-0.1.1rc26/tests/unit/clients/test_atlanauth.py +121 -0
  36. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/clients/test_sql_client.py +8 -8
  37. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/clients/test_temporal_client.py +31 -24
  38. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/common/test_credential_utils.py +5 -94
  39. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/common/test_utils.py +36 -0
  40. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/handlers/sql/test_check_schemas_and_databases.py +47 -0
  41. atlan_application_sdk-0.1.1rc26/tests/unit/outputs/test_atlanstorage.py +253 -0
  42. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/outputs/test_objectstore.py +10 -21
  43. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/outputs/test_statestore.py +0 -21
  44. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/workflows/metadata_extraction/test_sql.py +2 -1
  45. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/uv.lock +3 -1
  46. atlan_application_sdk-0.1.1rc24/.env.example +0 -15
  47. atlan_application_sdk-0.1.1rc24/.github/release_notes.md +0 -12
  48. atlan_application_sdk-0.1.1rc24/application_sdk/common/credential_utils.py +0 -56
  49. atlan_application_sdk-0.1.1rc24/application_sdk/inputs/objectstore.py +0 -122
  50. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.cursor/rules/documentation.mdc +0 -0
  51. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.cursor/rules/guidelines.mdc +0 -0
  52. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.cursor/rules/logging.mdc +0 -0
  53. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.cursor/rules/setup.mdc +0 -0
  54. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.cursor/rules/standards.mdc +0 -0
  55. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.cursor/rules/testing.mdc +0 -0
  56. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/CODEOWNERS +0 -0
  57. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  58. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/ISSUE_TEMPLATE/config.yaml +0 -0
  59. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  60. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/actions/docgen/action.yaml +0 -0
  61. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/actions/doclint/action.yaml +0 -0
  62. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/actions/docstring-coverage/action.yaml +0 -0
  63. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/actions/e2e-apps/action.yaml +0 -0
  64. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/actions/e2e-examples/action.yaml +0 -0
  65. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/actions/setup-deps/action.yaml +0 -0
  66. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/actions/sync-branches/action.yaml +0 -0
  67. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/actions/trivy/action.yaml +0 -0
  68. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/actions/trivy-container/action.yaml +0 -0
  69. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/actions/unit-tests/action.yaml +0 -0
  70. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/dependabot.yaml +0 -0
  71. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/pull_request_template.md +0 -0
  72. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/scripts/extract_release_notes.py +0 -0
  73. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/scripts/pre_release.py +0 -0
  74. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/scripts/release.py +0 -0
  75. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/scripts/trivy-to-markdown.py +0 -0
  76. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/scripts/update_changelog.py +0 -0
  77. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/AMPM.yml +0 -0
  78. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Accessibility.yml +0 -0
  79. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Acronyms.yml +0 -0
  80. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Adverbs.yml +0 -0
  81. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Auto.yml +0 -0
  82. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Avoid.yml +0 -0
  83. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Contractions.yml +0 -0
  84. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Dashes.yml +0 -0
  85. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/DateFormat.yml +0 -0
  86. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/DateNumbers.yml +0 -0
  87. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/DateOrder.yml +0 -0
  88. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Ellipses.yml +0 -0
  89. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/FirstPerson.yml +0 -0
  90. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Foreign.yml +0 -0
  91. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Gender.yml +0 -0
  92. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/GenderBias.yml +0 -0
  93. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/GeneralURL.yml +0 -0
  94. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/HeadingAcronyms.yml +0 -0
  95. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/HeadingColons.yml +0 -0
  96. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/HeadingPunctuation.yml +0 -0
  97. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Headings.yml +0 -0
  98. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Hyphens.yml +0 -0
  99. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Negative.yml +0 -0
  100. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Ordinal.yml +0 -0
  101. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/OxfordComma.yml +0 -0
  102. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Passive.yml +0 -0
  103. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Percentages.yml +0 -0
  104. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Plurals.yml +0 -0
  105. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Quotes.yml +0 -0
  106. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/RangeTime.yml +0 -0
  107. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Semicolon.yml +0 -0
  108. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/SentenceLength.yml +0 -0
  109. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Spacing.yml +0 -0
  110. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Suspended.yml +0 -0
  111. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Terms.yml +0 -0
  112. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/URLFormat.yml +0 -0
  113. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Units.yml +0 -0
  114. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Vocab.yml +0 -0
  115. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/We.yml +0 -0
  116. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/Wordiness.yml +0 -0
  117. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/Microsoft/meta.json +0 -0
  118. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/config/vocabularies/deviations/accept.txt +0 -0
  119. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/styles/config/vocabularies/deviations/reject.txt +0 -0
  120. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/workflow-templates/checks.properties.json +0 -0
  121. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/workflow-templates/checks.yaml +0 -0
  122. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/workflow-templates/codeql.properties.json +0 -0
  123. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/workflow-templates/codeql.yaml +0 -0
  124. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/workflow-templates/dependency-review.properties.json +0 -0
  125. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/workflow-templates/dependency-review.yml +0 -0
  126. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/workflow-templates/stale.properties.json +0 -0
  127. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/workflow-templates/stale.yml +0 -0
  128. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/workflow-templates/trivy-container.properties.json +0 -0
  129. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/workflow-templates/trivy-container.yaml +0 -0
  130. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/workflow-templates/trivy.properties.json +0 -0
  131. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/workflow-templates/trivy.yaml +0 -0
  132. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/workflows/codeql.yaml +0 -0
  133. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/workflows/pre-release.yaml +0 -0
  134. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/workflows/pull_request.yaml +0 -0
  135. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/workflows/push.yaml +0 -0
  136. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/workflows/release.yaml.disabled +0 -0
  137. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/workflows/scale-tests.yaml +0 -0
  138. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/workflows/schedule.yaml +0 -0
  139. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/workflows/tag-and-publish.yaml +0 -0
  140. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.github/workflows/trivy-container.yaml +0 -0
  141. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.gitignore +0 -0
  142. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.pre-commit-config.yaml +0 -0
  143. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/.vscode/launch.json +0 -0
  144. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/CODE_OF_CONDUCT.md +0 -0
  145. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/CONTRIBUTING.md +0 -0
  146. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/LICENSE +0 -0
  147. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/NOTICE +0 -0
  148. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/README.md +0 -0
  149. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/SECURITY.md +0 -0
  150. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/__init__.py +0 -0
  151. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/activities/__init__.py +0 -0
  152. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/activities/common/__init__.py +0 -0
  153. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/activities/common/models.py +0 -0
  154. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/activities/common/utils.py +0 -0
  155. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/activities/metadata_extraction/__init__.py +0 -0
  156. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/activities/metadata_extraction/rest.py +0 -0
  157. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/activities/query_extraction/__init__.py +0 -0
  158. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/application/__init__.py +0 -0
  159. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/application/metadata_extraction/sql.py +0 -0
  160. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/clients/__init__.py +0 -0
  161. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/clients/utils.py +0 -0
  162. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/clients/workflow.py +0 -0
  163. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/common/__init__.py +0 -0
  164. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/common/aws_utils.py +0 -0
  165. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/common/dataframe_utils.py +0 -0
  166. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/docgen/__init__.py +0 -0
  167. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/docgen/exporters/__init__.py +0 -0
  168. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/docgen/exporters/mkdocs.py +0 -0
  169. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/docgen/models/__init__.py +0 -0
  170. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/docgen/models/export/__init__.py +0 -0
  171. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/docgen/models/export/page.py +0 -0
  172. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/docgen/models/manifest/__init__.py +0 -0
  173. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/docgen/models/manifest/customer.py +0 -0
  174. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/docgen/models/manifest/internal.py +0 -0
  175. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/docgen/models/manifest/metadata.py +0 -0
  176. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/docgen/models/manifest/page.py +0 -0
  177. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/docgen/models/manifest/section.py +0 -0
  178. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/docgen/parsers/__init__.py +0 -0
  179. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/docgen/parsers/directory.py +0 -0
  180. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/docgen/parsers/manifest.py +0 -0
  181. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/handlers/__init__.py +0 -0
  182. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/inputs/__init__.py +0 -0
  183. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/inputs/iceberg.py +0 -0
  184. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/inputs/json.py +0 -0
  185. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/inputs/parquet.py +0 -0
  186. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/inputs/sql_query.py +0 -0
  187. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/observability/__init__.py +0 -0
  188. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/observability/decorators/observability_decorator.py +0 -0
  189. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/observability/logger_adaptor.py +0 -0
  190. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/observability/metrics_adaptor.py +0 -0
  191. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/observability/traces_adaptor.py +0 -0
  192. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/observability/utils.py +0 -0
  193. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/outputs/__init__.py +0 -0
  194. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/outputs/eventstore.py +0 -0
  195. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/outputs/iceberg.py +0 -0
  196. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/outputs/json.py +0 -0
  197. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/outputs/parquet.py +0 -0
  198. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/outputs/secretstore.py +0 -0
  199. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/server/__init__.py +0 -0
  200. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/server/fastapi/__init__.py +0 -0
  201. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/server/fastapi/middleware/logmiddleware.py +0 -0
  202. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/server/fastapi/middleware/metrics.py +0 -0
  203. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/server/fastapi/models.py +0 -0
  204. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/server/fastapi/routers/__init__.py +0 -0
  205. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/server/fastapi/routers/server.py +0 -0
  206. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/server/fastapi/utils.py +0 -0
  207. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/__init__.py +0 -0
  208. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/e2e/__init__.py +0 -0
  209. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/e2e/base.py +0 -0
  210. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/e2e/client.py +0 -0
  211. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/e2e/conftest.py +0 -0
  212. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/e2e/utils.py +0 -0
  213. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/hypothesis/__init__.py +0 -0
  214. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/hypothesis/strategies/__init__.py +0 -0
  215. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/hypothesis/strategies/clients/__init__.py +0 -0
  216. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/hypothesis/strategies/clients/sql.py +0 -0
  217. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/hypothesis/strategies/common/__init__.py +0 -0
  218. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/hypothesis/strategies/common/logger.py +0 -0
  219. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/hypothesis/strategies/handlers/__init__.py +0 -0
  220. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/__init__.py +0 -0
  221. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/sql_metadata.py +0 -0
  222. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/sql_preflight.py +0 -0
  223. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/hypothesis/strategies/inputs/__init__.py +0 -0
  224. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/hypothesis/strategies/inputs/json_input.py +0 -0
  225. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/hypothesis/strategies/outputs/__init__.py +0 -0
  226. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/hypothesis/strategies/outputs/json_output.py +0 -0
  227. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/hypothesis/strategies/outputs/statestore.py +0 -0
  228. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/hypothesis/strategies/server/__init__.py +0 -0
  229. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/hypothesis/strategies/server/fastapi/__init__.py +0 -0
  230. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/hypothesis/strategies/sql_client.py +0 -0
  231. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/hypothesis/strategies/temporal.py +0 -0
  232. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/scale_data_generator/README.md +0 -0
  233. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/scale_data_generator/__init__.py +0 -0
  234. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/scale_data_generator/config_loader.py +0 -0
  235. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/scale_data_generator/data_generator.py +0 -0
  236. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/scale_data_generator/driver.py +0 -0
  237. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/scale_data_generator/examples/config.yaml +0 -0
  238. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/scale_data_generator/output_handler/__init__.py +0 -0
  239. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/scale_data_generator/output_handler/base.py +0 -0
  240. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/scale_data_generator/output_handler/csv_handler.py +0 -0
  241. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/scale_data_generator/output_handler/json_handler.py +0 -0
  242. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/scale_data_generator/output_handler/parquet_handler.py +0 -0
  243. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/test_utils/workflow_monitoring.py +0 -0
  244. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/transformers/__init__.py +0 -0
  245. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/transformers/atlas/__init__.py +0 -0
  246. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/transformers/atlas/sql.py +0 -0
  247. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/transformers/common/__init__.py +0 -0
  248. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/transformers/common/utils.py +0 -0
  249. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/transformers/query/__init__.py +0 -0
  250. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/transformers/query/templates/column.yaml +0 -0
  251. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/transformers/query/templates/database.yaml +0 -0
  252. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/transformers/query/templates/extras-procedure.yaml +0 -0
  253. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/transformers/query/templates/function.yaml +0 -0
  254. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/transformers/query/templates/schema.yaml +0 -0
  255. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/transformers/query/templates/table.yaml +0 -0
  256. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/transformers/query/templates/tag_attachment.yaml +0 -0
  257. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/worker.py +0 -0
  258. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/workflows/__init__.py +0 -0
  259. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/workflows/metadata_extraction/__init__.py +0 -0
  260. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/workflows/query_extraction/__init__.py +0 -0
  261. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/application_sdk/workflows/query_extraction/sql.py +0 -0
  262. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/components/README.md +0 -0
  263. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/components/aws-secrets.yaml +0 -0
  264. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/components/eventstore.yaml +0 -0
  265. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/components/objectstore.yaml +0 -0
  266. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/components/secretstore.yaml +0 -0
  267. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/components/statestore.yaml +0 -0
  268. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/concepts/activities.md +0 -0
  269. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/concepts/application.md +0 -0
  270. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/concepts/application_sql.md +0 -0
  271. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/concepts/clients.md +0 -0
  272. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/concepts/common.md +0 -0
  273. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/concepts/handlers.md +0 -0
  274. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/concepts/output_paths.md +0 -0
  275. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/concepts/outputs.md +0 -0
  276. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/concepts/server.md +0 -0
  277. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/concepts/worker.md +0 -0
  278. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/concepts/workflows.md +0 -0
  279. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/configuration.md +0 -0
  280. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/guides/architecture.md +0 -0
  281. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/guides/atlantis.md +0 -0
  282. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/guides/best-practices.md +0 -0
  283. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/guides/getting-started.md +0 -0
  284. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/guides/index.md +0 -0
  285. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/guides/partners.md +0 -0
  286. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/guides/secretstores.md +0 -0
  287. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/guides/sql-application-guide.md +0 -0
  288. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/guides/test-framework.md +0 -0
  289. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/index.md +0 -0
  290. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/setup/LINUX.md +0 -0
  291. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/setup/MAC.md +0 -0
  292. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/setup/WINDOWS.md +0 -0
  293. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/setup/troubleshooting.md +0 -0
  294. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/static/assets/logo.svg +0 -0
  295. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/static/images/phoenix-sdk-featureset.png +0 -0
  296. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/static/javascripts/mathjax.js +0 -0
  297. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/docs/static/stylesheets/extra.css +0 -0
  298. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/docs/mkdocs.yml +0 -0
  299. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/examples/README.md +0 -0
  300. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/examples/application_custom_fastapi.py +0 -0
  301. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/examples/application_fastapi.py +0 -0
  302. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/examples/application_hello_world.py +0 -0
  303. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/examples/application_sql.py +0 -0
  304. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/examples/application_sql_miner.py +0 -0
  305. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/examples/application_sql_with_custom_pyatlan_transformer.py +0 -0
  306. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/examples/application_sql_with_custom_transformer.py +0 -0
  307. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/examples/run_examples.py +0 -0
  308. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/examples/sql_query_templates/database.yaml +0 -0
  309. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/__init__.py +0 -0
  310. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/__init__.py +0 -0
  311. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/activities/__init__.py +0 -0
  312. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/activities/common/__init__.py +0 -0
  313. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/activities/common/test_utils.py +0 -0
  314. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/activities/metadata_extraction/__init__.py +0 -0
  315. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/activities/metadata_extraction/test_sql.py +0 -0
  316. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/activities/query_extraction/__init__.py +0 -0
  317. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/activities/test_activities.py +0 -0
  318. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/application/__init__.py +0 -0
  319. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/application/metadata_extraction/test_sql.py +0 -0
  320. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/application/test_application.py +0 -0
  321. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/clients/__init__.py +0 -0
  322. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/clients/test_async_sql_client.py +0 -0
  323. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/common/test_aws_utils.py +0 -0
  324. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/docgen/parsers/test_directory_parser.py +0 -0
  325. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/docgen/parsers/test_manifest_parser.py +0 -0
  326. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/handlers/__init__.py +0 -0
  327. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/handlers/sql/test_auth.py +0 -0
  328. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/handlers/sql/test_extract_allowed_schemas.py +0 -0
  329. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/handlers/sql/test_metadata.py +0 -0
  330. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/handlers/sql/test_preflight_check.py +0 -0
  331. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/handlers/sql/test_prepare_metadata.py +0 -0
  332. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/handlers/sql/test_tables_check.py +0 -0
  333. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/handlers/sql/test_validate_filters.py +0 -0
  334. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/inputs/test_json.py +0 -0
  335. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/observability/__init__.py +0 -0
  336. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/observability/test_logger_adaptor.py +0 -0
  337. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/observability/test_metrics_adaptor.py +0 -0
  338. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/observability/test_traces_adaptor.py +0 -0
  339. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/outputs/test_iceberg.py +0 -0
  340. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/outputs/test_json_output.py +0 -0
  341. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/outputs/test_output.py +0 -0
  342. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/server/__init__.py +0 -0
  343. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/server/fastapi/routers/__init__.py +0 -0
  344. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/server/fastapi/routers/server.py +0 -0
  345. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/server/fastapi/test_fastapi.py +0 -0
  346. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/test_worker.py +0 -0
  347. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/__init__.py +0 -0
  348. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/atlas/__init__.py +0 -0
  349. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/atlas/resources/raw_columns.json +0 -0
  350. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/atlas/resources/raw_databases.json +0 -0
  351. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/atlas/resources/raw_functions.json +0 -0
  352. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/atlas/resources/raw_procedures.json +0 -0
  353. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/atlas/resources/raw_schemas.json +0 -0
  354. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/atlas/resources/raw_tables.json +0 -0
  355. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/atlas/resources/transformed_columns.json +0 -0
  356. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/atlas/resources/transformed_databases.json +0 -0
  357. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/atlas/resources/transformed_functions.json +0 -0
  358. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/atlas/resources/transformed_procedures.json +0 -0
  359. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/atlas/resources/transformed_schemas.json +0 -0
  360. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/atlas/resources/transformed_tables.json +0 -0
  361. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/atlas/test_column.py +0 -0
  362. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/atlas/test_database.py +0 -0
  363. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/atlas/test_function.py +0 -0
  364. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/atlas/test_procedure.py +0 -0
  365. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/atlas/test_schema.py +0 -0
  366. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/atlas/test_table.py +0 -0
  367. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/query/resources/raw/column.json +0 -0
  368. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/query/resources/raw/database.json +0 -0
  369. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/query/resources/raw/extras-procedure.json +0 -0
  370. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/query/resources/raw/function.json +0 -0
  371. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/query/resources/raw/schema.json +0 -0
  372. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/query/resources/raw/table.json +0 -0
  373. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/query/resources/transformed/column.json +0 -0
  374. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/query/resources/transformed/database.json +0 -0
  375. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/query/resources/transformed/extras-procedure.json +0 -0
  376. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/query/resources/transformed/function.json +0 -0
  377. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/query/resources/transformed/schema.json +0 -0
  378. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/query/resources/transformed/table.json +0 -0
  379. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/query/test_sql_transformer.py +0 -0
  380. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/transformers/query/test_sql_transformer_output_validation.py +0 -0
  381. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/workflows/query_extraction/__init__.py +0 -0
  382. {atlan_application_sdk-0.1.1rc24 → atlan_application_sdk-0.1.1rc26}/tests/unit/workflows/query_extraction/test_sql.py +0 -0
@@ -0,0 +1,60 @@
1
+ # Project Review Guidelines - Application SDK
2
+
3
+ ## Core Principles
4
+
5
+ **Less Code is Better** - Prioritize simplicity, readability, and maintainability over cleverness. Every line of code is a liability that must be justified.
6
+
7
+ ## Critical Review Checklist
8
+
9
+ ### 🔍 Code Quality & Minimalism
10
+
11
+ - **Necessity Check**: Is this code absolutely necessary? Can existing functionality be reused?
12
+ - **Single Responsibility**: Does each function/class do exactly one thing well?
13
+ - **DRY Violations**: Any repeated logic that should be extracted into shared utilities?
14
+ - **Cognitive Load**: Can a new developer understand this change with less cognitive load?
15
+ - **Magic Numbers/Strings**: All constants properly defined and named in @application_sdk/constants.py
16
+ - **Spell Check**: No typos in code, comments, docstrings, or documentation
17
+ - **Exception Handling Standards**: All exception handling must follow these principles. See detailed guidelines in [exception-handling.mdc](mdc:.cursor/rules/exception-handling.mdc).
18
+
19
+ ### 🏗️ Architecture & Design
20
+
21
+ - **Module Boundaries**: Changes respect existing module responsibilities
22
+ - **Error Handling**: Proper exception handling with meaningful error messages
23
+ - **Resource Management**: Files, connections, and resources properly closed/released
24
+ - **Async Patterns**: Proper async/await usage where applicable
25
+ - **Configuration**: No hardcoded values; use proper configuration management
26
+
27
+ ### 📝 Documentation Requirements
28
+
29
+ - **Docstrings**: All public functions, classes, and modules have Google-style docstrings
30
+ - **Type Hints**: All function parameters and return values are typed
31
+ - **Complex Logic**: Non-obvious business logic has inline comments explaining "why"
32
+
33
+ ### 🧪 Testing
34
+
35
+ - **Testing Standards**: Testing standards are defined in [testing.mdc](mdc:.cursor/rules/testing.mdc)
36
+ - **Test Coverage**: New code has corresponding tests (unit/integration/e2e as appropriate)
37
+ - **Edge Cases**: Error conditions and boundary cases are tested
38
+ - **Mock Strategy**: External dependencies properly mocked/isolated
39
+ - **Test Naming**: Test names clearly describe the scenario being tested
40
+
41
+ ### 🔒 Security & Performance
42
+
43
+ - **Input Validation**: All external inputs validated and sanitized
44
+ - **Secrets Management**: No secrets in code; proper credential handling
45
+ - **SQL Injection**: Parameterized queries used for all SQL operations
46
+ - **Performance Standards**: All performance considerations must follow these principles. See detailed guidelines in [performance.mdc](mdc:.cursor/rules/performance.mdc).
47
+ - **Memory Management**: Resources properly closed, large datasets processed in chunks
48
+ - **DataFrame Optimization**: Appropriate dtypes, avoid unnecessary copies, use chunked processing
49
+ - **SQL Query Efficiency**: Use LIMIT, specific columns, proper WHERE clauses, connection pooling
50
+ - **Serialization Performance**: Use orjson for large datasets, implement compression
51
+ - **Algorithm Efficiency**: Use appropriate data structures, avoid O(n²) when O(n) alternatives exist
52
+ - **Caching Strategy**: Cache expensive operations and database queries
53
+ - **Async Usage**: Use async for I/O operations, sync for CPU-bound tasks
54
+
55
+ ### 📊 Observability & Logging
56
+
57
+ - **Logging Standards**: logging standards are defined in [logging.mdc](mdc:.cursor/rules/logging.mdc)
58
+ - **Metrics**: Key operations include appropriate metrics
59
+ - **Error Context**: Error logs include sufficient context for debugging
60
+ - **Trace Information**: Critical paths include trace information
@@ -0,0 +1,198 @@
1
+ ---
2
+ alwaysApply: false
3
+ globs: application_sdk/**/*.py
4
+ ---
5
+ # Exception Handling Standards
6
+
7
+ ## Core Principles
8
+
9
+ **Default Behavior: Re-raise Exceptions** - Exceptions should be re-raised by default unless explicitly handled for a specific reason. Silent exception swallowing is not allowed.
10
+
11
+ ## Critical Rules
12
+
13
+ ### **Exception Propagation**
14
+ - **Rule**: Always re-raise exceptions after logging unless in non-critical operations
15
+ - **Anti-pattern**: `except Exception as e: logger.error(f"Error: {e}")` - This swallows exceptions
16
+ - **Correct pattern**: `except Exception as e: logger.error(f"Error: {e}"); raise`
17
+
18
+ ### **Specific Exception Types**
19
+ - **Use specific exception types** instead of generic `Exception`
20
+ - **Examples**: `ValueError`, `ConnectionError`, `TimeoutError`, `FileNotFoundError`
21
+ - **Create custom exceptions** in `application_sdk/common/error_codes.py` for domain-specific errors
22
+ - **Anti-pattern**: `except Exception:` - Too broad, masks real issues
23
+
24
+ ## Exception Handling Patterns
25
+
26
+ ### **✅ DO: Proper exception handling with re-raising**
27
+ ```python
28
+ try:
29
+ result = some_operation()
30
+ return result
31
+ except ValueError as e:
32
+ logger.error(f"Invalid input: {e}")
33
+ raise # Re-raise to propagate the error
34
+ except ConnectionError as e:
35
+ logger.error(f"Connection failed: {e}")
36
+ raise # Re-raise to propagate the error
37
+ except Exception as e:
38
+ logger.error(f"Unexpected error: {e}")
39
+ raise # Re-raise to propagate the error
40
+ ```
41
+
42
+ ### **❌ DON'T: Swallowing exceptions**
43
+ ```python
44
+ try:
45
+ result = some_operation()
46
+ return result
47
+ except Exception as e:
48
+ logger.error(f"Error: {e}")
49
+ # Missing raise - this swallows the exception!
50
+ ```
51
+
52
+ ## Context-Specific Guidelines
53
+
54
+ ### **1. Critical Operations (Database, Network, File I/O)**
55
+ - **Always re-raise** exceptions after logging
56
+ - **Include context** in error messages
57
+ - **Use specific exception types**
58
+
59
+ ### **2. Non-Critical Operations (Logging, Metrics, Observability)**
60
+ - **May swallow exceptions** to prevent cascading failures
61
+ - **Log the failure** for debugging
62
+ - **Continue operation** if possible
63
+
64
+ ### **3. Resource Cleanup**
65
+ - **Use try/finally** for guaranteed cleanup
66
+ - **Log cleanup failures** but don't re-raise (to avoid masking original error)
67
+
68
+ ## Common Anti-patterns to Reject
69
+
70
+ ### **❌ Silent Exception Swallowing**
71
+ ```python
72
+ try:
73
+ operation()
74
+ except Exception:
75
+ pass # REJECT: Silent failure
76
+ ```
77
+
78
+ ### **❌ Generic Exception Catching Without Re-raising**
79
+ ```python
80
+ try:
81
+ operation()
82
+ except Exception as e:
83
+ logger.error(f"Error: {e}") # REJECT: Swallows exception
84
+ ```
85
+
86
+ ### **❌ Overly Broad Exception Handling**
87
+ ```python
88
+ try:
89
+ operation()
90
+ except Exception as e: # REJECT: Too broad
91
+ logger.error(f"Error: {e}")
92
+ raise
93
+ ```
94
+
95
+ ### **❌ Exception Handling Without Context**
96
+ ```python
97
+ try:
98
+ operation()
99
+ except Exception as e:
100
+ logger.error(f"Error: {e}") # REJECT: No context about what failed
101
+ raise
102
+ ```
103
+
104
+ ## Best Practices
105
+
106
+ ### **✅ DO: Proper exception handling with context**
107
+ ```python
108
+ try:
109
+ result = database_connection.execute_query(query)
110
+ return result
111
+ except ConnectionError as e:
112
+ logger.error(f"Database connection failed for query {query[:50]}...: {e}")
113
+ raise
114
+ except ValueError as e:
115
+ logger.error(f"Invalid query parameters: {e}")
116
+ raise
117
+ except Exception as e:
118
+ logger.error(f"Unexpected error during database operation: {e}")
119
+ raise
120
+ ```
121
+
122
+ ### **✅ DO: Resource cleanup with exception handling**
123
+ ```python
124
+ file_handle = None
125
+ try:
126
+ file_handle = open(filename, 'r')
127
+ return file_handle.read()
128
+ except FileNotFoundError as e:
129
+ logger.error(f"File not found: {filename}")
130
+ raise
131
+ finally:
132
+ if file_handle:
133
+ try:
134
+ file_handle.close()
135
+ except Exception as e:
136
+ logger.warning(f"Failed to close file {filename}: {e}")
137
+ # Don't re-raise cleanup errors
138
+ ```
139
+
140
+ ### **✅ DO: Non-critical operation exception handling**
141
+ ```python
142
+ try:
143
+ metrics.record_metric("operation_success", 1)
144
+ except Exception as e:
145
+ logger.warning(f"Failed to record metric: {e}")
146
+ # Don't re-raise for non-critical operations
147
+ ```
148
+
149
+ ## Module-Specific Guidelines
150
+
151
+ ### **Handlers (`application_sdk/handlers/`)**
152
+ - **Critical**: Always re-raise exceptions after logging
153
+ - **Include operation context** in error messages
154
+ - **Use specific exception types** for different error scenarios
155
+
156
+ ### **Outputs (`application_sdk/outputs/`)**
157
+ - **Critical**: Re-raise exceptions for data writing operations
158
+ - **Non-critical**: May swallow exceptions for metrics/logging operations
159
+ - **Resource cleanup**: Ensure files/connections are properly closed
160
+
161
+ ### **Inputs (`application_sdk/inputs/`)**
162
+ - **Critical**: Re-raise exceptions for data reading operations
163
+ - **Include file/connection context** in error messages
164
+ - **Handle specific I/O exceptions** appropriately
165
+
166
+ ### **Observability (`application_sdk/observability/`)**
167
+ - **Non-critical**: May swallow exceptions to prevent cascading failures
168
+ - **Log all failures** for debugging
169
+ - **Continue operation** when possible
170
+
171
+ ### **Workflows (`application_sdk/workflows/`)**
172
+ - **Critical**: Re-raise exceptions to trigger workflow retry logic
173
+ - **Include workflow context** in error messages
174
+ - **Handle Temporal-specific exceptions** appropriately
175
+
176
+ ### **Server (`application_sdk/server/`)**
177
+ - **Critical**: Re-raise exceptions to return proper HTTP error responses
178
+ - **Include request context** in error messages
179
+ - **Handle HTTP-specific exceptions** appropriately
180
+
181
+ ## Review Checklist
182
+
183
+ When reviewing code, check for:
184
+
185
+ 1. **Exception Propagation**: Are exceptions properly re-raised when they should be?
186
+ 2. **Specific Exception Types**: Are specific exception types used instead of generic `Exception`?
187
+ 3. **Error Context**: Do error messages include sufficient context for debugging?
188
+ 4. **Resource Cleanup**: Are resources properly cleaned up in finally blocks?
189
+ 5. **Non-Critical Operations**: Are non-critical operations (logging, metrics) handled appropriately?
190
+ 6. **Custom Exceptions**: Are domain-specific exceptions defined in `error_codes.py`?
191
+ 7. **Exception Documentation**: Are exceptions documented in function docstrings?
192
+
193
+ ## Implementation Notes
194
+
195
+ - **Custom Exceptions**: Define domain-specific exceptions in `application_sdk/common/error_codes.py`
196
+ - **Logging**: Use `AtlanLoggerAdapter` for all logging with proper context
197
+ - **Context**: Always include relevant context in error messages (query, filename, operation, etc.)
198
+ - **Documentation**: Document all exceptions that functions can raise in docstrings
@@ -0,0 +1,294 @@
1
+ ---
2
+ alwaysApply: false
3
+ globs: application_sdk/**/*.py
4
+ ---
5
+ # Performance Standards
6
+
7
+ ## Core Principles
8
+
9
+ **Performance is a Feature** - Performance issues are bugs that affect user experience and system reliability. All code must be written with performance considerations in mind.
10
+
11
+ ## Critical Performance Areas
12
+
13
+ ### **Memory Management**
14
+
15
+ #### **Memory Leaks Prevention**
16
+ - **Rule**: Always close resources (files, connections, iterators) in finally blocks
17
+ - **Anti-pattern**: Opening resources without proper cleanup
18
+ - **Correct pattern**: Use context managers or try/finally
19
+
20
+ **✅ DO: Proper resource management**
21
+ ```python
22
+ # Using context manager
23
+ with open(filename, 'r') as f:
24
+ data = f.read()
25
+
26
+ # Using try/finally
27
+ file_handle = None
28
+ try:
29
+ file_handle = open(filename, 'r')
30
+ data = file_handle.read()
31
+ finally:
32
+ if file_handle:
33
+ file_handle.close()
34
+ ```
35
+
36
+ **❌ DON'T: Resource leaks**
37
+ ```python
38
+ # REJECT: No cleanup
39
+ file_handle = open(filename, 'r')
40
+ data = file_handle.read()
41
+ # Missing file_handle.close()
42
+ ```
43
+
44
+ #### **Large Object Management**
45
+ - **Rule**: Process large datasets in chunks, not all at once
46
+ - **Anti-pattern**: Loading entire dataset into memory
47
+ - **Correct pattern**: Use generators, iterators, or chunked processing
48
+
49
+ **✅ DO: Chunked processing**
50
+ ```python
51
+ def process_large_file(filename: str, chunk_size: int = 1000):
52
+ """Process large file in chunks to avoid memory issues."""
53
+ with open(filename, 'r') as f:
54
+ chunk = []
55
+ for line in f:
56
+ chunk.append(line.strip())
57
+ if len(chunk) >= chunk_size:
58
+ yield process_chunk(chunk)
59
+ chunk = []
60
+ if chunk: # Process remaining items
61
+ yield process_chunk(chunk)
62
+ ```
63
+
64
+ **❌ DON'T: Load everything into memory**
65
+ ```python
66
+ # REJECT: Memory intensive
67
+ def process_large_file(filename: str):
68
+ with open(filename, 'r') as f:
69
+ all_lines = f.readlines() # Loads entire file into memory
70
+ return process_all_lines(all_lines)
71
+ ```
72
+
73
+ ### **DataFrame Performance**
74
+
75
+ #### **Memory-Efficient DataFrame Operations**
76
+ - **Rule**: Use appropriate data types and avoid unnecessary copies
77
+ - **Anti-pattern**: Creating multiple copies of large DataFrames
78
+ - **Correct pattern**: Use inplace operations and proper dtypes
79
+
80
+ **✅ DO: Memory-efficient DataFrame operations**
81
+ ```python
82
+ # Use appropriate dtypes
83
+ df = pd.read_csv('large_file.csv', dtype={
84
+ 'id': 'int32',
85
+ 'category': 'category', # More memory efficient than object
86
+ 'value': 'float32'
87
+ })
88
+
89
+ # Use inplace operations when possible
90
+ df.dropna(inplace=True) # Instead of df = df.dropna()
91
+ df.reset_index(drop=True, inplace=True)
92
+
93
+ # Use query() for filtering (more memory efficient)
94
+ filtered_df = df.query('value > 100 and category == "A"')
95
+ ```
96
+
97
+ **❌ DON'T: Inefficient DataFrame operations**
98
+ ```python
99
+ # REJECT: Creates unnecessary copies
100
+ df = df.dropna() # Creates copy
101
+ df = df.reset_index() # Creates another copy
102
+ df = df[df['value'] > 100] # Creates another copy
103
+ df = df[df['category'] == 'A'] # Creates another copy
104
+ ```
105
+
106
+ #### **DataFrame Chunking**
107
+ - **Rule**: Process large DataFrames in chunks
108
+ - **Anti-pattern**: Processing entire DataFrame at once
109
+ - **Correct pattern**: Use chunked reading and processing
110
+
111
+ **✅ DO: Chunked DataFrame processing**
112
+ ```python
113
+ def process_large_dataframe(filename: str, chunk_size: int = 10000):
114
+ """Process large CSV file in chunks."""
115
+ for chunk in pd.read_csv(filename, chunksize=chunk_size):
116
+ # Process each chunk
117
+ processed_chunk = process_chunk(chunk)
118
+ yield processed_chunk
119
+ ```
120
+
121
+ **❌ DON'T: Load entire DataFrame**
122
+ ```python
123
+ # REJECT: Memory intensive for large files
124
+ df = pd.read_csv('very_large_file.csv') # Loads entire file
125
+ process_dataframe(df)
126
+ ```
127
+
128
+ ### **SQL Query Performance**
129
+
130
+ #### **Query Optimization**
131
+ - **Rule**: Write efficient SQL queries with proper indexing and limiting
132
+ - **Anti-pattern**: SELECT * without LIMIT on large tables
133
+ - **Correct pattern**: Use specific columns, LIMIT, and proper WHERE clauses
134
+
135
+ **✅ DO: Optimized SQL queries**
136
+ ```python
137
+ # Use specific columns instead of SELECT *
138
+ query = "SELECT id, name, created_at FROM users WHERE status = 'active' LIMIT 1000"
139
+
140
+ # Use parameterized queries for security and performance
141
+ query = "SELECT * FROM users WHERE age > %s AND city = %s LIMIT %s"
142
+ params = (18, 'New York', 100)
143
+
144
+ # Use appropriate indexes in WHERE clauses
145
+ query = "SELECT * FROM orders WHERE user_id = %s AND created_at > %s"
146
+ ```
147
+
148
+ **❌ DON'T: Inefficient SQL queries**
149
+ ```python
150
+ # REJECT: No LIMIT on large table
151
+ query = "SELECT * FROM users" # Could return millions of rows
152
+
153
+ # REJECT: No WHERE clause on indexed columns
154
+ query = "SELECT * FROM orders WHERE amount > 0" # Should use user_id or date
155
+
156
+ # REJECT: String concatenation (SQL injection risk)
157
+ query = f"SELECT * FROM users WHERE name = '{user_input}'"
158
+ ```
159
+
160
+ #### **Connection and Transaction Management**
161
+ - **Rule**: Use connection pooling and proper transaction management
162
+ - **Anti-pattern**: Creating new connections for each query
163
+ - **Correct pattern**: Reuse connections and use transactions
164
+
165
+ **✅ DO: Proper connection management**
166
+ ```python
167
+ # Use connection pooling
168
+ async def execute_queries():
169
+ async with get_db_connection() as conn:
170
+ async with conn.transaction():
171
+ await conn.execute("INSERT INTO logs (message) VALUES ($1)", "info")
172
+ await conn.execute("UPDATE counters SET value = value + 1")
173
+ ```
174
+
175
+ **❌ DON'T: Poor connection management**
176
+ ```python
177
+ # REJECT: Creating new connection for each query
178
+ for query in queries:
179
+ conn = create_new_connection() # Expensive
180
+ conn.execute(query)
181
+ conn.close()
182
+ ```
183
+
184
+ ### **Serialization/Deserialization Performance**
185
+
186
+ #### **JSON Serialization Optimization**
187
+ - **Rule**: Use efficient serialization libraries and avoid unnecessary conversions
188
+ - **Anti-pattern**: Using default json module for large datasets
189
+ - **Correct pattern**: Use orjson, ujson, or custom serializers
190
+
191
+ **✅ DO: Efficient JSON serialization**
192
+ ```python
193
+ import orjson # Much faster than json
194
+
195
+ # Use orjson for better performance
196
+ data = orjson.dumps(large_dict, option=orjson.OPT_APPEND_NEWLINE)
197
+
198
+ # Use streaming for large datasets
199
+ def serialize_large_dataset(data_iterator):
200
+ for item in data_iterator:
201
+ yield orjson.dumps(item) + b'\n'
202
+ ```
203
+
204
+ **❌ DON'T: Inefficient serialization**
205
+ ```python
206
+ # REJECT: Using default json for large datasets
207
+ import json
208
+ data = json.dumps(large_dict) # Slower than orjson
209
+
210
+ # REJECT: Converting to string unnecessarily
211
+ data = str(orjson.dumps(large_dict)) # Unnecessary conversion
212
+ ```
213
+
214
+
215
+ ### **CPU Performance**
216
+
217
+ #### **Algorithm Efficiency**
218
+ - **Rule**: Use appropriate algorithms and data structures
219
+ - **Anti-pattern**: O(n²) algorithms when O(n) or O(log n) alternatives exist
220
+ - **Correct pattern**: Choose efficient algorithms and data structures
221
+
222
+ **✅ DO: Efficient algorithms**
223
+ ```python
224
+ # Use set for O(1) lookups
225
+ def find_duplicates(items):
226
+ seen = set()
227
+ duplicates = set()
228
+ for item in items:
229
+ if item in seen:
230
+ duplicates.add(item)
231
+ else:
232
+ seen.add(item)
233
+ return list(duplicates)
234
+
235
+ # Use list comprehension instead of loops when appropriate
236
+ squares = [x**2 for x in range(1000)] # More efficient than loop
237
+ ```
238
+
239
+ **❌ DON'T: Inefficient algorithms**
240
+ ```python
241
+ # REJECT: O(n²) algorithm
242
+ def find_duplicates(items):
243
+ duplicates = []
244
+ for i, item in enumerate(items):
245
+ if item in items[i+1:]: # O(n) lookup
246
+ duplicates.append(item)
247
+ return duplicates
248
+ ```
249
+
250
+ #### **Async/Await Performance**
251
+ - **Rule**: Use async/await for I/O operations, not CPU-bound tasks
252
+ - **Anti-pattern**: Using async for CPU-intensive operations
253
+ - **Correct pattern**: Use async for I/O, sync for CPU-bound tasks
254
+
255
+ **✅ DO: Proper async usage**
256
+ ```python
257
+ import asyncio
258
+ import aiofiles
259
+
260
+ # Async for I/O operations
261
+ async def read_files_async(filenames):
262
+ async def read_single_file(filename):
263
+ async with aiofiles.open(filename, 'r') as f:
264
+ return await f.read()
265
+
266
+ tasks = [read_single_file(filename) for filename in filenames]
267
+ return await asyncio.gather(*tasks)
268
+
269
+ # Sync for CPU-bound operations
270
+ def process_data_cpu_intensive(data):
271
+ # CPU-intensive processing
272
+ return [x * 2 for x in data]
273
+ ```
274
+
275
+ **❌ DON'T: Misusing async**
276
+ ```python
277
+ # REJECT: Using async for CPU-bound operations
278
+ async def process_data_cpu_intensive(data):
279
+ # This should be sync
280
+ return [x * 2 for x in data]
281
+ ```
282
+
283
+ ## Performance Review Checklist
284
+
285
+ When reviewing code for performance, check for:
286
+
287
+ 1. **Memory Management**: Are resources properly closed? Are large datasets processed in chunks?
288
+ 2. **DataFrame Operations**: Are appropriate dtypes used? Are unnecessary copies avoided?
289
+ 3. **SQL Queries**: Are queries optimized with LIMIT and proper WHERE clauses?
290
+ 4. **Serialization**: Are efficient libraries (orjson) used for large datasets?
291
+ 5. **Algorithm Efficiency**: Are appropriate data structures and algorithms used?
292
+ 6. **Async Usage**: Is async used for I/O operations, not CPU-bound tasks?
293
+ 7. **Connection Pooling**: Are database connections reused?
294
+ 8. **Batch Processing**: Are operations batched when possible?
@@ -0,0 +1,37 @@
1
+ # refer application_sdk/constants.py for extensive list of environment configurations
2
+
3
+ ATLAN_WORKFLOW_HOST=localhost
4
+ ATLAN_WORKFLOW_PORT=7233
5
+ ATLAN_WORKFLOW_NAMESPACE=default
6
+ ATLAN_APPLICATION_NAME=default
7
+ ATLAN_TENANT_ID=development
8
+ ATLAN_WORKFLOW_UI_HOST=localhost
9
+ ATLAN_WORKFLOW_UI_PORT=8233
10
+ ATLAN_WORKFLOW_MAX_TIMEOUT_HOURS=1
11
+ ATLAN_MAX_CONCURRENT_ACTIVITIES=5
12
+ ATLAN_APP_DASHBOARD_HOST=localhost
13
+ ATLAN_APP_DASHBOARD_PORT=3000
14
+ ATLAN_APP_HTTP_HOST=0.0.0.0
15
+ ATLAN_APP_HTTP_PORT=8000
16
+ ATLAN_WORKFLOW_METRICS_PORT=8234
17
+ ATLAN_SQL_SERVER_MIN_VERSION=1.0
18
+ ENABLE_OTLP_LOGS=false
19
+ ATLAN_HEARTBEAT_TIMEOUT_SECONDS=120 # 2 minutes
20
+ ATLAN_START_TO_CLOSE_TIMEOUT_SECONDS=7200 # 2 hours
21
+ # ATLAN_ENABLE_OBSERVABILITY_DAPR_SINK="false"
22
+
23
+
24
+ # if you plan to deploy the app in customer environment, below is a sample environment variables you need to set
25
+ ATLAN_WORKFLOW_HOST="tenant-temporal.atlan.com"
26
+ ATLAN_WORKFLOW_PORT="443"
27
+ ATLAN_LOCAL_DEVELOPMENT=false
28
+ ATLAN_WORKFLOW_AUTH_ENABLED="true"
29
+ ENABLE_ATLAN_UPLOAD="true"
30
+ ATLAN_DEPLOYMENT_SECRETS='{"appName_app_client_id":"enter_client_id","appName_app_client_secret":"enter_secret","atlan_auth_url":"https://tenant.atlan.com/auth/realms/default/protocol/openid-connect/token","workflow_tls_enabled":"true","deployment_name":"agent-v2"}'
31
+
32
+ # Storage:
33
+ DEPLOYMENT_OBJECT_STORE_NAME="objectstore"
34
+ UPSTREAM_OBJECT_STORE_NAME="atlan-storage"
35
+
36
+ # Secret Store
37
+ SECRET_STORE_NAME="aws-secrets"
@@ -0,0 +1,11 @@
1
+ ## v0.1.1rc26 (August 07, 2025)
2
+
3
+ Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc25...v0.1.1rc26
4
+
5
+ ### Features
6
+
7
+ - add cursor and bugbot rules (#636) (by @Amit Prabhu in [cbbecd9](https://github.com/atlanhq/application-sdk/commit/cbbecd9))
8
+
9
+ ### Bug Fixes
10
+
11
+ - handle str and dict types in preflight checks (#638) (by @Nishchith Shetty in [57ee9a0](https://github.com/atlanhq/application-sdk/commit/57ee9a0))
@@ -1,6 +1,28 @@
1
1
  # Changelog
2
2
 
3
3
 
4
+ ## v0.1.1rc26 (August 07, 2025)
5
+
6
+ Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc25...v0.1.1rc26
7
+
8
+ ### Features
9
+
10
+ - add cursor and bugbot rules (#636) (by @Amit Prabhu in [cbbecd9](https://github.com/atlanhq/application-sdk/commit/cbbecd9))
11
+
12
+ ### Bug Fixes
13
+
14
+ - handle str and dict types in preflight checks (#638) (by @Nishchith Shetty in [57ee9a0](https://github.com/atlanhq/application-sdk/commit/57ee9a0))
15
+
16
+ ## v0.1.1rc25 (August 05, 2025)
17
+
18
+ Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc24...v0.1.1rc25
19
+
20
+ ### Features
21
+
22
+ - implement OAuth2 authentication and data transfer for applications (#634) (by @nishantmunjal7 in [e5e70a2](https://github.com/atlanhq/application-sdk/commit/e5e70a2))
23
+
24
+
25
+
4
26
  ## v0.1.1rc24 (August 01, 2025)
5
27
 
6
28
  Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc23...v0.1.1rc24
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: atlan-application-sdk
3
- Version: 0.1.1rc24
3
+ Version: 0.1.1rc26
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
@@ -19,6 +19,7 @@ Classifier: Programming Language :: Python :: 3.11
19
19
  Classifier: Programming Language :: Python :: 3.12
20
20
  Classifier: Programming Language :: Python :: 3.13
21
21
  Requires-Python: >=3.11
22
+ Requires-Dist: aiohttp>=3.10.0
22
23
  Requires-Dist: duckdb-engine>=0.17.0
23
24
  Requires-Dist: duckdb>=1.1.3
24
25
  Requires-Dist: fastapi[standard]>=0.115.0