atlan-application-sdk 0.1.1rc39__tar.gz → 0.1.1rc40__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 (413) hide show
  1. atlan_application_sdk-0.1.1rc40/.cursor/BUGBOT.md +647 -0
  2. atlan_application_sdk-0.1.1rc40/.github/release_notes.md +12 -0
  3. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflows/pull_request.yaml +1 -1
  4. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/CHANGELOG.md +14 -0
  5. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/PKG-INFO +1 -1
  6. atlan_application_sdk-0.1.1rc40/application_sdk/activities/.cursor/BUGBOT.md +424 -0
  7. atlan_application_sdk-0.1.1rc40/application_sdk/clients/.cursor/BUGBOT.md +280 -0
  8. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/clients/sql.py +110 -74
  9. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/clients/temporal.py +3 -1
  10. atlan_application_sdk-0.1.1rc40/application_sdk/common/.cursor/BUGBOT.md +316 -0
  11. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/constants.py +8 -0
  12. atlan_application_sdk-0.1.1rc40/application_sdk/decorators/.cursor/BUGBOT.md +279 -0
  13. atlan_application_sdk-0.1.1rc40/application_sdk/inputs/.cursor/BUGBOT.md +250 -0
  14. atlan_application_sdk-0.1.1rc40/application_sdk/interceptors/.cursor/BUGBOT.md +320 -0
  15. atlan_application_sdk-0.1.1rc40/application_sdk/interceptors/cleanup.py +171 -0
  16. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/interceptors/events.py +6 -6
  17. atlan_application_sdk-0.1.1rc40/application_sdk/outputs/.cursor/BUGBOT.md +295 -0
  18. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/outputs/iceberg.py +4 -0
  19. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/outputs/json.py +6 -0
  20. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/outputs/parquet.py +13 -3
  21. atlan_application_sdk-0.1.1rc40/application_sdk/server/.cursor/BUGBOT.md +442 -0
  22. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/services/objectstore.py +16 -3
  23. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/version.py +1 -1
  24. atlan_application_sdk-0.1.1rc40/application_sdk/workflows/.cursor/BUGBOT.md +218 -0
  25. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/pyproject.toml +1 -1
  26. atlan_application_sdk-0.1.1rc40/tests/.cursor/BUGBOT.md +459 -0
  27. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/clients/test_async_sql_client.py +82 -30
  28. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/clients/test_sql_client.py +30 -10
  29. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/clients/test_temporal_client.py +2 -3
  30. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/services/test_objectstore.py +5 -2
  31. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/uv.lock +1 -1
  32. atlan_application_sdk-0.1.1rc39/.cursor/BUGBOT.md +0 -120
  33. atlan_application_sdk-0.1.1rc39/.github/release_notes.md +0 -8
  34. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.cursor/rules/documentation.mdc +0 -0
  35. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.cursor/rules/exception-handling.mdc +0 -0
  36. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.cursor/rules/guidelines.mdc +0 -0
  37. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.cursor/rules/logging.mdc +0 -0
  38. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.cursor/rules/performance.mdc +0 -0
  39. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.cursor/rules/setup.mdc +0 -0
  40. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.cursor/rules/standards.mdc +0 -0
  41. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.cursor/rules/testing.mdc +0 -0
  42. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.env.example +0 -0
  43. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/CODEOWNERS +0 -0
  44. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  45. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/ISSUE_TEMPLATE/config.yaml +0 -0
  46. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  47. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/actions/docgen/action.yaml +0 -0
  48. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/actions/doclint/action.yaml +0 -0
  49. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/actions/docstring-coverage/action.yaml +0 -0
  50. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/actions/e2e-apps/action.yaml +0 -0
  51. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/actions/e2e-examples/action.yaml +0 -0
  52. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/actions/setup-deps/action.yaml +0 -0
  53. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/actions/sync-branches/action.yaml +0 -0
  54. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/actions/trivy/action.yaml +0 -0
  55. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/actions/trivy-container/action.yaml +0 -0
  56. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/actions/unit-tests/action.yaml +0 -0
  57. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/dependabot.yaml +0 -0
  58. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/pull_request_template.md +0 -0
  59. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/scripts/extract_release_notes.py +0 -0
  60. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/scripts/pre_release.py +0 -0
  61. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/scripts/release.py +0 -0
  62. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/scripts/trivy-to-markdown.py +0 -0
  63. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/scripts/update_changelog.py +0 -0
  64. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/AMPM.yml +0 -0
  65. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Accessibility.yml +0 -0
  66. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Acronyms.yml +0 -0
  67. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Adverbs.yml +0 -0
  68. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Auto.yml +0 -0
  69. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Avoid.yml +0 -0
  70. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Contractions.yml +0 -0
  71. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Dashes.yml +0 -0
  72. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/DateFormat.yml +0 -0
  73. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/DateNumbers.yml +0 -0
  74. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/DateOrder.yml +0 -0
  75. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Ellipses.yml +0 -0
  76. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/FirstPerson.yml +0 -0
  77. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Foreign.yml +0 -0
  78. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Gender.yml +0 -0
  79. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/GenderBias.yml +0 -0
  80. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/GeneralURL.yml +0 -0
  81. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/HeadingAcronyms.yml +0 -0
  82. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/HeadingColons.yml +0 -0
  83. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/HeadingPunctuation.yml +0 -0
  84. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Headings.yml +0 -0
  85. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Hyphens.yml +0 -0
  86. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Negative.yml +0 -0
  87. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Ordinal.yml +0 -0
  88. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/OxfordComma.yml +0 -0
  89. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Passive.yml +0 -0
  90. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Percentages.yml +0 -0
  91. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Plurals.yml +0 -0
  92. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Quotes.yml +0 -0
  93. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/RangeTime.yml +0 -0
  94. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Semicolon.yml +0 -0
  95. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/SentenceLength.yml +0 -0
  96. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Spacing.yml +0 -0
  97. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Suspended.yml +0 -0
  98. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Terms.yml +0 -0
  99. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/URLFormat.yml +0 -0
  100. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Units.yml +0 -0
  101. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Vocab.yml +0 -0
  102. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/We.yml +0 -0
  103. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/Wordiness.yml +0 -0
  104. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/Microsoft/meta.json +0 -0
  105. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/config/vocabularies/deviations/accept.txt +0 -0
  106. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/styles/config/vocabularies/deviations/reject.txt +0 -0
  107. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflow-templates/checks.properties.json +0 -0
  108. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflow-templates/checks.yaml +0 -0
  109. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflow-templates/codeql.properties.json +0 -0
  110. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflow-templates/codeql.yaml +0 -0
  111. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflow-templates/dependency-review.properties.json +0 -0
  112. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflow-templates/dependency-review.yml +0 -0
  113. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflow-templates/stale.properties.json +0 -0
  114. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflow-templates/stale.yml +0 -0
  115. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflow-templates/trivy-container.properties.json +0 -0
  116. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflow-templates/trivy-container.yaml +0 -0
  117. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflow-templates/trivy.properties.json +0 -0
  118. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflow-templates/trivy.yaml +0 -0
  119. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflows/codeql.yaml +0 -0
  120. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflows/pre-release.yaml +0 -0
  121. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflows/push.yaml +0 -0
  122. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflows/release.yaml.disabled +0 -0
  123. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflows/scale-tests.yaml +0 -0
  124. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflows/schedule.yaml +0 -0
  125. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflows/tag-and-publish.yaml +0 -0
  126. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflows/trivy-container.yaml +0 -0
  127. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.github/workflows/verify-snyk-status.yml +0 -0
  128. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.gitignore +0 -0
  129. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.pre-commit-config.yaml +0 -0
  130. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/.vscode/launch.json +0 -0
  131. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/CODE_OF_CONDUCT.md +0 -0
  132. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/CONTRIBUTING.md +0 -0
  133. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/LICENSE +0 -0
  134. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/NOTICE +0 -0
  135. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/README.md +0 -0
  136. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/SECURITY.md +0 -0
  137. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/__init__.py +0 -0
  138. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/activities/__init__.py +0 -0
  139. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/activities/common/__init__.py +0 -0
  140. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/activities/common/models.py +0 -0
  141. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/activities/common/utils.py +0 -0
  142. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/activities/lock_management.py +0 -0
  143. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/activities/metadata_extraction/__init__.py +0 -0
  144. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/activities/metadata_extraction/base.py +0 -0
  145. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/activities/metadata_extraction/rest.py +0 -0
  146. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/activities/metadata_extraction/sql.py +0 -0
  147. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/activities/query_extraction/__init__.py +0 -0
  148. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/activities/query_extraction/sql.py +0 -0
  149. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/application/__init__.py +0 -0
  150. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/application/metadata_extraction/sql.py +0 -0
  151. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/clients/__init__.py +0 -0
  152. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/clients/atlan.py +0 -0
  153. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/clients/atlan_auth.py +0 -0
  154. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/clients/base.py +0 -0
  155. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/clients/redis.py +0 -0
  156. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/clients/utils.py +0 -0
  157. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/clients/workflow.py +0 -0
  158. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/common/__init__.py +0 -0
  159. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/common/aws_utils.py +0 -0
  160. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/common/dapr_utils.py +0 -0
  161. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/common/dataframe_utils.py +0 -0
  162. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/common/error_codes.py +0 -0
  163. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/common/utils.py +0 -0
  164. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/decorators/__init__.py +0 -0
  165. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/decorators/locks.py +0 -0
  166. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/docgen/__init__.py +0 -0
  167. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/docgen/exporters/__init__.py +0 -0
  168. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/docgen/exporters/mkdocs.py +0 -0
  169. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/docgen/models/__init__.py +0 -0
  170. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/docgen/models/export/__init__.py +0 -0
  171. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/docgen/models/export/page.py +0 -0
  172. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/docgen/models/manifest/__init__.py +0 -0
  173. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/docgen/models/manifest/customer.py +0 -0
  174. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/docgen/models/manifest/internal.py +0 -0
  175. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/docgen/models/manifest/metadata.py +0 -0
  176. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/docgen/models/manifest/page.py +0 -0
  177. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/docgen/models/manifest/section.py +0 -0
  178. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/docgen/parsers/__init__.py +0 -0
  179. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/docgen/parsers/directory.py +0 -0
  180. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/docgen/parsers/manifest.py +0 -0
  181. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/events/__init__.py +0 -0
  182. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/events/models.py +0 -0
  183. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/handlers/__init__.py +0 -0
  184. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/handlers/base.py +0 -0
  185. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/handlers/sql.py +0 -0
  186. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/inputs/__init__.py +0 -0
  187. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/inputs/iceberg.py +0 -0
  188. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/inputs/json.py +0 -0
  189. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/inputs/parquet.py +0 -0
  190. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/inputs/sql_query.py +0 -0
  191. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/interceptors/__init__.py +0 -0
  192. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/interceptors/lock.py +0 -0
  193. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/observability/__init__.py +0 -0
  194. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/observability/decorators/observability_decorator.py +0 -0
  195. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/observability/logger_adaptor.py +0 -0
  196. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/observability/metrics_adaptor.py +0 -0
  197. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/observability/observability.py +0 -0
  198. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/observability/traces_adaptor.py +0 -0
  199. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/observability/utils.py +0 -0
  200. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/outputs/__init__.py +0 -0
  201. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/server/__init__.py +0 -0
  202. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/server/fastapi/__init__.py +0 -0
  203. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/server/fastapi/middleware/logmiddleware.py +0 -0
  204. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/server/fastapi/middleware/metrics.py +0 -0
  205. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/server/fastapi/models.py +0 -0
  206. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/server/fastapi/routers/__init__.py +0 -0
  207. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/server/fastapi/routers/server.py +0 -0
  208. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/server/fastapi/utils.py +0 -0
  209. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/services/__init__.py +0 -0
  210. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/services/atlan_storage.py +0 -0
  211. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/services/eventstore.py +0 -0
  212. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/services/secretstore.py +0 -0
  213. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/services/statestore.py +0 -0
  214. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/__init__.py +0 -0
  215. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/e2e/__init__.py +0 -0
  216. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/e2e/base.py +0 -0
  217. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/e2e/client.py +0 -0
  218. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/e2e/conftest.py +0 -0
  219. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/e2e/utils.py +0 -0
  220. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/hypothesis/__init__.py +0 -0
  221. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/hypothesis/strategies/__init__.py +0 -0
  222. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/hypothesis/strategies/clients/__init__.py +0 -0
  223. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/hypothesis/strategies/clients/sql.py +0 -0
  224. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/hypothesis/strategies/common/__init__.py +0 -0
  225. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/hypothesis/strategies/common/logger.py +0 -0
  226. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/hypothesis/strategies/handlers/__init__.py +0 -0
  227. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/__init__.py +0 -0
  228. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/sql_metadata.py +0 -0
  229. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/sql_preflight.py +0 -0
  230. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/hypothesis/strategies/inputs/__init__.py +0 -0
  231. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/hypothesis/strategies/inputs/json_input.py +0 -0
  232. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/hypothesis/strategies/inputs/parquet_input.py +0 -0
  233. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/hypothesis/strategies/outputs/__init__.py +0 -0
  234. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/hypothesis/strategies/outputs/json_output.py +0 -0
  235. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/hypothesis/strategies/outputs/statestore.py +0 -0
  236. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/hypothesis/strategies/server/__init__.py +0 -0
  237. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/hypothesis/strategies/server/fastapi/__init__.py +0 -0
  238. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/hypothesis/strategies/sql_client.py +0 -0
  239. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/hypothesis/strategies/temporal.py +0 -0
  240. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/scale_data_generator/README.md +0 -0
  241. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/scale_data_generator/__init__.py +0 -0
  242. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/scale_data_generator/config_loader.py +0 -0
  243. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/scale_data_generator/data_generator.py +0 -0
  244. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/scale_data_generator/driver.py +0 -0
  245. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/scale_data_generator/examples/config.yaml +0 -0
  246. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/scale_data_generator/output_handler/__init__.py +0 -0
  247. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/scale_data_generator/output_handler/base.py +0 -0
  248. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/scale_data_generator/output_handler/csv_handler.py +0 -0
  249. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/scale_data_generator/output_handler/json_handler.py +0 -0
  250. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/scale_data_generator/output_handler/parquet_handler.py +0 -0
  251. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/test_utils/workflow_monitoring.py +0 -0
  252. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/transformers/__init__.py +0 -0
  253. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/transformers/atlas/__init__.py +0 -0
  254. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/transformers/atlas/sql.py +0 -0
  255. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/transformers/common/__init__.py +0 -0
  256. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/transformers/common/utils.py +0 -0
  257. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/transformers/query/__init__.py +0 -0
  258. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/transformers/query/templates/column.yaml +0 -0
  259. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/transformers/query/templates/database.yaml +0 -0
  260. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/transformers/query/templates/extras-procedure.yaml +0 -0
  261. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/transformers/query/templates/function.yaml +0 -0
  262. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/transformers/query/templates/schema.yaml +0 -0
  263. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/transformers/query/templates/table.yaml +0 -0
  264. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/transformers/query/templates/tag_attachment.yaml +0 -0
  265. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/worker.py +0 -0
  266. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/workflows/__init__.py +0 -0
  267. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/workflows/metadata_extraction/__init__.py +0 -0
  268. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/workflows/metadata_extraction/sql.py +0 -0
  269. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/workflows/query_extraction/__init__.py +0 -0
  270. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/application_sdk/workflows/query_extraction/sql.py +0 -0
  271. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/components/README.md +0 -0
  272. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/components/atlan-storage.yaml +0 -0
  273. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/components/aws-secrets.yaml +0 -0
  274. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/components/deployment-secrets.yaml +0 -0
  275. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/components/eventstore.yaml +0 -0
  276. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/components/objectstore.yaml +0 -0
  277. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/components/secretstore.yaml +0 -0
  278. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/components/statestore.yaml +0 -0
  279. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/concepts/activities.md +0 -0
  280. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/concepts/application.md +0 -0
  281. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/concepts/application_sql.md +0 -0
  282. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/concepts/atlanupload.md +0 -0
  283. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/concepts/clients.md +0 -0
  284. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/concepts/common.md +0 -0
  285. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/concepts/handlers.md +0 -0
  286. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/concepts/inputs.md +0 -0
  287. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/concepts/output_paths.md +0 -0
  288. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/concepts/outputs.md +0 -0
  289. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/concepts/server.md +0 -0
  290. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/concepts/services.md +0 -0
  291. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/concepts/temporal_auth.md +0 -0
  292. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/concepts/worker.md +0 -0
  293. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/concepts/workflows.md +0 -0
  294. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/configuration.md +0 -0
  295. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/guides/architecture.md +0 -0
  296. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/guides/atlantis.md +0 -0
  297. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/guides/best-practices.md +0 -0
  298. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/guides/getting-started.md +0 -0
  299. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/guides/index.md +0 -0
  300. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/guides/partners.md +0 -0
  301. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/guides/secretstores.md +0 -0
  302. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/guides/sql-application-guide.md +0 -0
  303. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/guides/test-framework.md +0 -0
  304. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/index.md +0 -0
  305. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/setup/LINUX.md +0 -0
  306. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/setup/MAC.md +0 -0
  307. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/setup/WINDOWS.md +0 -0
  308. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/setup/troubleshooting.md +0 -0
  309. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/static/assets/logo.svg +0 -0
  310. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/static/images/phoenix-sdk-featureset.png +0 -0
  311. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/static/javascripts/mathjax.js +0 -0
  312. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/docs/static/stylesheets/extra.css +0 -0
  313. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/docs/mkdocs.yml +0 -0
  314. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/examples/README.md +0 -0
  315. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/examples/application_custom_fastapi.py +0 -0
  316. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/examples/application_fastapi.py +0 -0
  317. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/examples/application_hello_world.py +0 -0
  318. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/examples/application_sql.py +0 -0
  319. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/examples/application_sql_miner.py +0 -0
  320. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/examples/application_sql_with_custom_pyatlan_transformer.py +0 -0
  321. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/examples/application_sql_with_custom_transformer.py +0 -0
  322. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/examples/run_examples.py +0 -0
  323. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/examples/sql_query_templates/database.yaml +0 -0
  324. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/__init__.py +0 -0
  325. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/conftest.py +0 -0
  326. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/__init__.py +0 -0
  327. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/activities/__init__.py +0 -0
  328. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/activities/common/__init__.py +0 -0
  329. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/activities/common/test_utils.py +0 -0
  330. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/activities/metadata_extraction/__init__.py +0 -0
  331. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/activities/metadata_extraction/test_sql.py +0 -0
  332. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/activities/query_extraction/__init__.py +0 -0
  333. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/activities/test_activities.py +0 -0
  334. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/activities/test_lock_management.py +0 -0
  335. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/application/__init__.py +0 -0
  336. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/application/metadata_extraction/test_sql.py +0 -0
  337. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/application/test_application.py +0 -0
  338. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/clients/__init__.py +0 -0
  339. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/clients/test_atlan_auth.py +0 -0
  340. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/clients/test_atlan_client.py +0 -0
  341. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/clients/test_atlanauth.py +0 -0
  342. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/clients/test_base_client.py +0 -0
  343. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/clients/test_redis_client.py +0 -0
  344. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/common/test_aws_utils.py +0 -0
  345. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/common/test_credential_utils.py +0 -0
  346. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/common/test_utils.py +0 -0
  347. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/docgen/parsers/test_directory_parser.py +0 -0
  348. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/docgen/parsers/test_manifest_parser.py +0 -0
  349. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/handlers/__init__.py +0 -0
  350. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/handlers/sql/test_auth.py +0 -0
  351. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/handlers/sql/test_check_schemas_and_databases.py +0 -0
  352. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/handlers/sql/test_extract_allowed_schemas.py +0 -0
  353. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/handlers/sql/test_metadata.py +0 -0
  354. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/handlers/sql/test_preflight_check.py +0 -0
  355. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/handlers/sql/test_prepare_metadata.py +0 -0
  356. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/handlers/sql/test_tables_check.py +0 -0
  357. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/handlers/sql/test_validate_filters.py +0 -0
  358. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/handlers/test_base_handler.py +0 -0
  359. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/inputs/test_json.py +0 -0
  360. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/inputs/test_parquet.py +0 -0
  361. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/observability/__init__.py +0 -0
  362. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/observability/test_logger_adaptor.py +0 -0
  363. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/observability/test_metrics_adaptor.py +0 -0
  364. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/observability/test_traces_adaptor.py +0 -0
  365. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/outputs/test_iceberg.py +0 -0
  366. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/outputs/test_json_output.py +0 -0
  367. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/outputs/test_output.py +0 -0
  368. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/outputs/test_parquet_output.py +0 -0
  369. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/server/__init__.py +0 -0
  370. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/server/fastapi/routers/__init__.py +0 -0
  371. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/server/fastapi/routers/server.py +0 -0
  372. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/server/fastapi/test_fastapi.py +0 -0
  373. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/services/test_atlan_storage.py +0 -0
  374. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/services/test_eventstore.py +0 -0
  375. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/services/test_statestore.py +0 -0
  376. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/test_worker.py +0 -0
  377. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/__init__.py +0 -0
  378. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/atlas/__init__.py +0 -0
  379. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/atlas/resources/raw_columns.json +0 -0
  380. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/atlas/resources/raw_databases.json +0 -0
  381. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/atlas/resources/raw_functions.json +0 -0
  382. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/atlas/resources/raw_procedures.json +0 -0
  383. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/atlas/resources/raw_schemas.json +0 -0
  384. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/atlas/resources/raw_tables.json +0 -0
  385. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/atlas/resources/transformed_columns.json +0 -0
  386. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/atlas/resources/transformed_databases.json +0 -0
  387. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/atlas/resources/transformed_functions.json +0 -0
  388. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/atlas/resources/transformed_procedures.json +0 -0
  389. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/atlas/resources/transformed_schemas.json +0 -0
  390. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/atlas/resources/transformed_tables.json +0 -0
  391. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/atlas/test_column.py +0 -0
  392. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/atlas/test_database.py +0 -0
  393. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/atlas/test_function.py +0 -0
  394. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/atlas/test_procedure.py +0 -0
  395. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/atlas/test_schema.py +0 -0
  396. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/atlas/test_table.py +0 -0
  397. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/query/resources/raw/column.json +0 -0
  398. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/query/resources/raw/database.json +0 -0
  399. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/query/resources/raw/extras-procedure.json +0 -0
  400. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/query/resources/raw/function.json +0 -0
  401. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/query/resources/raw/schema.json +0 -0
  402. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/query/resources/raw/table.json +0 -0
  403. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/query/resources/transformed/column.json +0 -0
  404. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/query/resources/transformed/database.json +0 -0
  405. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/query/resources/transformed/extras-procedure.json +0 -0
  406. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/query/resources/transformed/function.json +0 -0
  407. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/query/resources/transformed/schema.json +0 -0
  408. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/query/resources/transformed/table.json +0 -0
  409. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/query/test_sql_transformer.py +0 -0
  410. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/transformers/query/test_sql_transformer_output_validation.py +0 -0
  411. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/workflows/metadata_extraction/test_sql_workflow.py +0 -0
  412. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/workflows/query_extraction/__init__.py +0 -0
  413. {atlan_application_sdk-0.1.1rc39 → atlan_application_sdk-0.1.1rc40}/tests/unit/workflows/query_extraction/test_sql.py +0 -0
@@ -0,0 +1,647 @@
1
+ # Application SDK Code Review Guidelines
2
+
3
+ ## Review Mental Framework
4
+
5
+ Follow this systematic review process that mirrors how experienced developers think through code changes.
6
+
7
+ ### Phase 1: Immediate Safety Assessment
8
+
9
+ **Mental Question: "Could this cause immediate harm?"**
10
+ Review for critical issues first - these take priority over everything else.
11
+
12
+ #### Security Vulnerabilities
13
+
14
+ **Always flag immediately:**
15
+
16
+ - Hardcoded secrets, passwords, API keys, or tokens anywhere in code
17
+ - SQL queries using string concatenation instead of parameters
18
+ - User input directly included in system commands without sanitization
19
+ - Missing authentication checks on protected operations
20
+ - Sensitive data in log messages or error responses
21
+ - Unsafe deserialization of user-provided data
22
+
23
+ **Python SDK specific security patterns:**
24
+
25
+ - Missing input validation in handler functions
26
+ - Direct SQL execution without parameterization in `application_sdk/clients/sql.py`
27
+ - Unencrypted credential storage in configuration
28
+ - API keys or database passwords in plaintext
29
+
30
+ **Example Educational Feedback:**
31
+ "String concatenation in SQL queries creates SQL injection vulnerabilities. In our SDK handling enterprise data, this could expose sensitive customer information. Always use parameterized queries with the SQL client's execute method, which automatically escapes user input. This follows the principle of defense in depth for data security."
32
+
33
+ #### Performance Disasters
34
+
35
+ **Always flag immediately:**
36
+
37
+ - Operations that load entire large datasets into memory unnecessarily
38
+ - N+1 query problems (database queries inside loops)
39
+ - Synchronous blocking operations in async contexts
40
+ - Missing pagination for operations returning large collections
41
+ - Expensive computations repeated unnecessarily without caching
42
+ - DataFrame operations without proper dtype optimization
43
+ - Missing LIMIT clauses on SQL queries
44
+ - String concatenation in loops (use join patterns)
45
+ - Synchronous database calls in async workflow activities
46
+
47
+ **Python SDK performance patterns:**
48
+
49
+ - Loading entire tables without chunking in metadata extraction
50
+ - Missing connection pooling in SQL clients
51
+ - Inefficient serialization using default json instead of orjson
52
+ - Not using appropriate DataFrame dtypes for memory optimization
53
+ - Processing large datasets without generators or chunking
54
+
55
+ #### Critical System Stability
56
+
57
+ **Always flag immediately:**
58
+
59
+ - Operations that could corrupt shared state or data
60
+ - Missing error handling that could crash the application
61
+ - Resource leaks (unclosed files, connections, database sessions)
62
+ - Race conditions in concurrent code
63
+ - Operations without timeouts that could hang indefinitely
64
+ - Silent exception swallowing without re-raising
65
+ - Missing finally blocks for resource cleanup
66
+ - Direct prop mutation in reactive frameworks
67
+
68
+ ---
69
+
70
+ ### Phase 2: Code Quality Foundation
71
+
72
+ **Mental Question: "Is this code maintainable and reliable?"**
73
+
74
+ #### Code Organization and File Structure
75
+
76
+ **Critical organization patterns:**
77
+
78
+ - **File Location Consistency**: Code must be placed in appropriate directories
79
+ - Decorators belong in `application_sdk/decorators/`, not scattered across modules
80
+ - Interceptors should be consolidated, not duplicated across files
81
+ - Similar functionality must be grouped together
82
+ - Dead code or "no need" code must be removed immediately
83
+
84
+ **Import Organization Standards:**
85
+
86
+ - Imports must be at the top of files (flag any imports inside functions unless required)
87
+ - Import order: standard library → third-party → local application
88
+ - Group imports by source and separate with blank lines
89
+ - Remove unused imports immediately
90
+ - No circular dependencies between modules
91
+
92
+ **File Naming and Directory Structure:**
93
+
94
+ - Use descriptive file names that clearly indicate purpose
95
+ - Follow SDK naming conventions: `Base` prefix, not `Generic`
96
+ - Avoid creating directories for single files
97
+ - Move shared constants to `application_sdk/constants.py`
98
+ - Files with similar responsibilities should be in the same directory
99
+
100
+ ```python
101
+ # ❌ REJECT: Poor file organization
102
+ # Having decorators scattered across multiple files
103
+ application_sdk/lock/__init__.py # Contains decorators
104
+ application_sdk/observability/decorators/ # Contains other decorators
105
+
106
+ # ✅ REQUIRE: Centralized organization
107
+ application_sdk/decorators/locks.py # All lock decorators
108
+ application_sdk/decorators/observability_decorator.py # All observability decorators
109
+ ```
110
+
111
+ #### Python Code Organization and Style
112
+
113
+ **Critical Python patterns:**
114
+
115
+ - snake_case for variables/functions, PascalCase for classes, UPPER_SNAKE_CASE for constants
116
+ - Use type hints for all function parameters and return values
117
+ - Use dataclasses or Pydantic for structured data
118
+ - Follow PEP 8 formatting standards (120 character line length)
119
+ - Use double quotes for strings consistently
120
+ - Use list comprehensions when they improve readability
121
+
122
+ **Universal naming rules:**
123
+
124
+ - Boolean variables must start with `is_`, `has_`, `can_`, `should_`
125
+ - No single-letter variables except loop counters (`i`, `j`, `k`)
126
+ - No abbreviations that aren't widely understood
127
+ - Function names must be verbs describing what they do
128
+ - Constants must describe their purpose, not just their value
129
+ - Variables named `temp`, `test`, `debug`, `foo`, `bar` are forbidden
130
+
131
+ #### Function and Class Structure
132
+
133
+ **Universal quality rules:**
134
+
135
+ - Functions should do one thing (Single Responsibility Principle)
136
+ - Maximum function length: 75 lines
137
+ - Maximum class size: 300 lines
138
+ - No nested conditionals deeper than 3 levels
139
+ - No functions with more than 7 parameters
140
+ - Extract complex logic into well-named helper functions
141
+
142
+ **Code Consolidation Requirements:**
143
+
144
+ - **Always flag repetitive logic**: If similar code appears in multiple methods, extract it into a shared function
145
+ - **Separate class responsibilities**: Classes doing multiple unrelated things must be split (e.g., RedisClient handling both client and lock functionality)
146
+ - **Centralize shared constants**: Magic strings or numbers used across files must be moved to constants
147
+ - **Extract testable functions**: Complex logic that can't be easily unit tested must be broken into smaller, testable functions
148
+
149
+ #### Configuration and Environment Management
150
+
151
+ **Configuration consistency patterns:**
152
+
153
+ - **Environment variable naming**: Use consistent, descriptive names (e.g., `FAIL_WORKFLOW_ON_REDIS_UNAVAILABLE` not `REDIS_ERROR_MODE`)
154
+ - **Default value strategy**: Define which parameters should be programmatic vs environment-driven
155
+ - **Development/Production compatibility**: All features must work in both local development and production environments
156
+ - **Configuration validation**: All environment variables must be validated on application startup
157
+ - **Parameter inference**: Values that can be inferred (like application name, run ID) should not require explicit passing
158
+
159
+ ```python
160
+ # ❌ REJECT: Poor configuration management
161
+ max_locks = os.getenv("MAX_LOCKS") # No validation, no defaults
162
+ REDIS_ERROR = "true" # Hardcoded, not configurable
163
+
164
+ # ✅ REQUIRE: Proper configuration management
165
+ FAIL_WORKFLOW_ON_REDIS_UNAVAILABLE = os.getenv("FAIL_WORKFLOW_ON_REDIS_UNAVAILABLE", "false").lower() == "true"
166
+ max_locks = int(os.getenv("MAX_LOCKS", "10")) # Default with validation
167
+ ```
168
+
169
+ #### Documentation Requirements
170
+
171
+ **Always require:**
172
+
173
+ - **Complete docstrings**: Public functions must have Google-style docstrings with usage examples and parameter documentation
174
+ - **Parameter documentation**: All parameters must be documented with types, defaults, and constraints
175
+ - **TODO management**: TODO/FIXME comments must include issue references and deadlines, or be removed
176
+ - **Complex algorithms**: Must have explanatory comments explaining business logic and "why"
177
+ - **Magic numbers**: Must be extracted to `application_sdk/constants.py` with explanations
178
+
179
+ **Documentation quality standards:**
180
+
181
+ ```python
182
+ # ✅ DO: Complete documentation
183
+ def create_distributed_lock(
184
+ lock_name: str,
185
+ max_locks: int = 10,
186
+ ttl_seconds: int = 300,
187
+ owner_id: Optional[str] = None
188
+ ) -> LockManager:
189
+ """
190
+ Create a distributed lock manager for coordinating resource access.
191
+
192
+ Args:
193
+ lock_name: Unique identifier for the lock resource
194
+ max_locks: Maximum number of concurrent lock holders (default: 10)
195
+ ttl_seconds: Lock expiration time in seconds (default: 300)
196
+ owner_id: Lock owner identifier, defaults to application_name:run_id
197
+
198
+ Returns:
199
+ LockManager: Configured lock manager instance
200
+
201
+ Raises:
202
+ ValueError: If max_locks <= 0 or lock_name is empty
203
+ ConnectionError: If unable to connect to lock store
204
+
205
+ Example:
206
+ >>> lock_mgr = create_distributed_lock("metadata_extraction", max_locks=5)
207
+ >>> async with lock_mgr.acquire():
208
+ ... await process_metadata()
209
+ """
210
+ ```
211
+
212
+ #### Import and Dependency Organization
213
+
214
+ **Always enforce:**
215
+
216
+ - No unused imports or dependencies
217
+ - Consistent import ordering within files
218
+ - No circular dependencies between modules
219
+ - Standard library → third-party → local application imports
220
+ - Group imports by source and separate with blank lines
221
+
222
+ ---
223
+
224
+ ### Phase 3: Testing and Verification
225
+
226
+ **Mental Question: "How do we know this works correctly?"**
227
+
228
+ #### Test Coverage Requirements
229
+
230
+ **Always enforce:**
231
+
232
+ - New public functions must have corresponding unit tests
233
+ - New API endpoints must have integration tests
234
+ - New workflow activities must have activity tests
235
+ - Minimum test coverage: 85% for new code
236
+ - Critical business logic must have comprehensive edge case testing
237
+
238
+ **Testing command:** `uv run coverage run -m pytest --import-mode=importlib --capture=no --log-cli-level=INFO tests/ -v --full-trace --hypothesis-show-statistics`
239
+
240
+ #### Test Quality Standards
241
+
242
+ **Always require:**
243
+
244
+ - Test names must clearly describe what is being tested
245
+ - Tests must be independent (no shared state between tests)
246
+ - External dependencies must be mocked in unit tests
247
+ - Tests must cover error conditions and edge cases
248
+ - No tests calling real external services (databases, APIs, etc.)
249
+ - Use pytest fixtures for common setup/teardown
250
+ - Use hypothesis for property-based testing
251
+
252
+ **Test organization:**
253
+
254
+ - Unit tests: `tests/unit/`
255
+ - Integration tests: `tests/integration/`
256
+ - End-to-end tests: `tests/e2e/`
257
+ - Test files mirror source structure
258
+ - Test file names start with `test_`
259
+ - Each test file has one `describe` block per class/function
260
+
261
+ #### Error Handling Patterns
262
+
263
+ **Critical exception handling rules:**
264
+
265
+ - **Always re-raise exceptions** after logging unless in non-critical operations
266
+ - **Use SDK-specific exceptions**: Use `ClientError` and internal error codes from `application_sdk/common/error_codes.py`, not generic exceptions
267
+ - **Add comprehensive try-catch**: Operations that can fail must be wrapped in try-catch with specific exception types
268
+ - **Error context**: Error messages must include debugging context (operation, parameters, state)
269
+ - **Resource cleanup**: Failed operations must be logged with appropriate detail
270
+ - **Non-critical operations**: May swallow exceptions to prevent cascading failures
271
+
272
+ ```python
273
+ # ✅ DO: Proper error handling with SDK exceptions
274
+ from application_sdk.common.error_codes import ClientError
275
+
276
+ try:
277
+ result = database_connection.execute_query(query)
278
+ return result
279
+ except ConnectionError as e:
280
+ logger.error(f"Database connection failed for query {query[:50]}...: {e}")
281
+ raise ClientError(f"Database connection failed: {e}")
282
+ except ValueError as e:
283
+ logger.error(f"Invalid query parameters: {e}")
284
+ raise ClientError(f"Query validation failed: {e}")
285
+
286
+ # ❌ DON'T: Generic exceptions without context
287
+ try:
288
+ result = some_operation()
289
+ except Exception as e:
290
+ logger.error(f"Error: {e}") # No context, generic exception
291
+ ```
292
+
293
+ ---
294
+
295
+ ### Phase 4: System Integration Review
296
+
297
+ **Mental Question: "How does this fit into the broader system?"**
298
+
299
+ #### API Design and Consistency
300
+
301
+ **Always check:**
302
+
303
+ - HTTP status codes are semantically correct and consistent
304
+ - Error response formats match established patterns
305
+ - Breaking changes are properly versioned
306
+ - Input validation happens at appropriate boundaries
307
+ - API contracts are backward compatible
308
+ - FastAPI route handlers follow established patterns
309
+
310
+ #### Data Handling Patterns
311
+
312
+ **Strongly typed models required:**
313
+
314
+ - Use Pydantic models for all data crossing boundaries
315
+ - No "naked" dictionaries/objects for structured data
316
+ - All user inputs must be validated before processing
317
+ - Data transformations must preserve type safety
318
+ - Database schema changes must be reversible
319
+ - Sensitive data must be handled according to privacy requirements
320
+
321
+ #### Performance and Scalability Patterns
322
+
323
+ **Performance optimization opportunities:**
324
+
325
+ - **Parallelization identification**: Flag operations that could benefit from parallel processing (file downloads, uploads, batch operations)
326
+ - **Async enforcement**: Ensure blocking operations don't interfere with async workflows
327
+ - **Resource limits**: Validate constraints like Redis key length limits, connection pool sizes
328
+ - **Batch processing**: Encourage batching for operations that can be grouped
329
+
330
+ **Scale-aware review questions:**
331
+
332
+ - Will this design work with enterprise-scale datasets (millions of records)?
333
+ - Are we maintaining constant memory usage regardless of input size?
334
+ - Do we have appropriate caching strategies for database queries?
335
+ - Are expensive operations batched appropriately?
336
+ - Is the database query pattern efficient at scale?
337
+
338
+ **Memory management requirements:**
339
+
340
+ - Process large datasets in chunks, not all at once
341
+ - Use appropriate DataFrame dtypes for memory efficiency
342
+ - Use connection pooling for database operations
343
+ - Close resources in finally blocks or context managers
344
+
345
+ ```python
346
+ # ✅ DO: Identify parallelization opportunities
347
+ # Flag this pattern for parallelization suggestion
348
+ for file in files:
349
+ await download_file(file) # Sequential, could be parallel
350
+
351
+ # Suggest this improvement:
352
+ tasks = [download_file(file) for file in files]
353
+ await asyncio.gather(*tasks) # Parallel processing
354
+ ```
355
+
356
+ ---
357
+
358
+ ### Phase 5: Future Impact Assessment
359
+
360
+ **Mental Question: "What are the long-term consequences of this change?"**
361
+
362
+ #### Maintainability and Extensibility
363
+
364
+ **Always assess:**
365
+
366
+ - Can other team members easily understand and modify this code?
367
+ - Are we following established patterns consistent with the rest of the SDK?
368
+ - Would adding new features require major changes to this design?
369
+ - Is this creating or reducing technical debt?
370
+ - Are we building abstractions at the right level?
371
+
372
+ #### Architecture Alignment
373
+
374
+ **Always verify:**
375
+
376
+ - Does this change move toward or away from our target SDK architecture?
377
+ - Are we respecting established layer boundaries (clients, handlers, activities, workflows)?
378
+ - Is this solving the root cause or adding a workaround?
379
+ - Are dependencies flowing in the correct direction?
380
+ - Is this increasing or decreasing system complexity?
381
+
382
+ #### Team Knowledge Distribution
383
+
384
+ **Always consider:**
385
+
386
+ - Is this creating knowledge silos or sharing knowledge?
387
+ - Are patterns and practices documented for team learning?
388
+ - Can new team members contribute to this area effectively?
389
+ - Are we using technologies and patterns the team can support long-term?
390
+
391
+ ---
392
+
393
+ ## Universal Anti-Patterns - Always Reject
394
+
395
+ ### Debug and Development Code
396
+
397
+ **Never allow in production:**
398
+
399
+ - `print()`, `console.log`, `debugger` statements
400
+ - Commented-out code blocks (suggest removal)
401
+ - TODO/FIXME comments without issue references or deadlines
402
+ - Variables named `temp`, `test`, `debug`, `foo`, `bar`
403
+ - Development-only configuration in production files
404
+ - `if False:` blocks and unused boolean flags
405
+
406
+ ### Resource Management Anti-Patterns
407
+
408
+ **Always flag:**
409
+
410
+ - File handles not properly closed (missing try-with-resources/context managers)
411
+ - Database connections not returned to connection pool
412
+ - Missing timeout configurations for external service calls
413
+ - Memory leaks from circular references or event listeners
414
+ - Expensive resources created repeatedly instead of reused
415
+
416
+ ### Data Safety Anti-Patterns
417
+
418
+ **Always flag:**
419
+
420
+ - Naked dictionaries/objects for structured data (require Pydantic models)
421
+ - Missing null/None checks before accessing properties
422
+ - Type coercion without explicit validation
423
+ - Mutable global state that could cause race conditions
424
+ - Direct manipulation of shared data structures without synchronization
425
+
426
+ ### Python-Specific Anti-Patterns
427
+
428
+ **Always flag:**
429
+
430
+ - **Mutable default arguments**: Using mutable objects (dict, list) as default parameter values
431
+ - **Mixed type annotations**: Inconsistent typing approaches in function signatures
432
+ - **Blocking operations in async code**: Using `time.sleep()` instead of `await asyncio.sleep()`
433
+ - **Unreachable code blocks**: `if False:` blocks, conditions that can never be True
434
+ - **Invalid range operations**: Operations like `random.randint(0, max_value-1)` where `max_value` could be 0
435
+
436
+ ```python
437
+ # ❌ REJECT: Mutable default arguments
438
+ def bad_function(items: list = []): # Shared mutable default!
439
+ items.append("new_item")
440
+ return items
441
+
442
+ def bad_config(settings: dict = {}): # Shared mutable default!
443
+ settings["new_key"] = "value"
444
+ return settings
445
+
446
+ # ✅ REQUIRE: Immutable defaults with None
447
+ def good_function(items: Optional[list] = None) -> list:
448
+ if items is None:
449
+ items = []
450
+ items.append("new_item")
451
+ return items
452
+
453
+ def good_config(settings: Optional[dict] = None) -> dict:
454
+ if settings is None:
455
+ settings = {}
456
+ settings["new_key"] = "value"
457
+ return settings
458
+
459
+ # ❌ REJECT: Mixed typing approaches
460
+ def bad_typing_mix(
461
+ param1: str,
462
+ param2, # No type hint
463
+ param3: "SomeClass", # String type hint
464
+ param4: List[dict] # Correct typing
465
+ ):
466
+ pass
467
+
468
+ # ✅ REQUIRE: Consistent type annotations
469
+ from typing import List, Optional
470
+ from some_module import SomeClass
471
+
472
+ def good_typing_consistency(
473
+ param1: str,
474
+ param2: int, # Proper type hint
475
+ param3: SomeClass, # Direct import, not string
476
+ param4: List[dict]
477
+ ) -> dict:
478
+ pass
479
+
480
+ # ❌ REJECT: Blocking in async code
481
+ async def bad_async_function():
482
+ await some_io_operation()
483
+ time.sleep(5) # Blocks entire event loop!
484
+ await another_operation()
485
+
486
+ # ✅ REQUIRE: Proper async patterns
487
+ async def good_async_function():
488
+ await some_io_operation()
489
+ await asyncio.sleep(5) # Non-blocking async sleep
490
+ await another_operation()
491
+
492
+ # ❌ REJECT: Unreachable code and invalid ranges
493
+ def bad_validation(max_value: int):
494
+ if False: # Unreachable code
495
+ print("This never executes")
496
+
497
+ # Can crash if max_value is 0
498
+ random_slot = random.randint(0, max_value - 1) # ValueError if max_value <= 0
499
+ return random_slot
500
+
501
+ # ✅ REQUIRE: Proper validation and reachable code
502
+ def good_validation(max_value: int) -> int:
503
+ if max_value <= 0:
504
+ raise ValueError(f"max_value must be positive, got: {max_value}")
505
+
506
+ random_slot = random.randint(0, max_value - 1)
507
+ return random_slot
508
+ ```
509
+
510
+ ### Performance Anti-Patterns
511
+
512
+ **Always flag:**
513
+
514
+ - String concatenation in loops (use join patterns)
515
+ - Repeated expensive calculations without memoization
516
+ - Complex operations in render/template loops
517
+ - Missing indexes on frequently queried database columns
518
+ - Synchronous operations blocking async workflows
519
+ - Loading entire DataFrames when chunked processing should be used
520
+
521
+ ### Code Organization Anti-Patterns
522
+
523
+ **Always reject:**
524
+
525
+ - **Scattered functionality**: Related code spread across multiple inappropriate locations
526
+ - **Import organization violations**: Imports not at the top, wrong order, or unused imports
527
+ - **File misplacement**: Decorators outside `decorators/`, constants not in `constants.py`
528
+ - **Dead code**: Any code marked as "no need" or unused
529
+ - **DRY violations**: Repeated logic that should be extracted into shared functions
530
+ - **Naming inconsistencies**: Using different naming patterns for similar concepts
531
+
532
+ ---
533
+
534
+ ## Repository-Specific Customization Zones
535
+
536
+ ### Zone 1: Python SDK Advanced Patterns
537
+
538
+ **Advanced Python patterns:**
539
+
540
+ - Use context managers for resource handling (`with` statements)
541
+ - Implement proper `__str__` and `__repr__` methods for classes
542
+ - Use generators for memory-efficient iteration
543
+ - Follow asyncio best practices for concurrent code
544
+ - Use dataclasses or Pydantic models for structured data
545
+ - Implement proper exception hierarchies in `error_codes.py`
546
+
547
+ **Temporal workflow patterns:**
548
+
549
+ - Activities must be async when calling external services
550
+ - Workflow definitions must be deterministic
551
+ - Use proper activity retry policies
552
+ - Handle workflow failures gracefully
553
+ - Use Temporal's built-in serialization
554
+
555
+ ### Zone 2: Enterprise SDK Business Rules
556
+
557
+ **Data processing compliance:**
558
+
559
+ - All metadata extraction must be reversible and traceable
560
+ - Query processing must preserve data lineage information
561
+ - All data transformations must maintain audit trails
562
+ - Customer data must be handled according to privacy policies
563
+ - Database schema changes must be backward compatible
564
+
565
+ **Performance requirements:**
566
+
567
+ - Metadata extraction must handle enterprise-scale databases (millions of objects)
568
+ - Query processing must support concurrent execution
569
+ - Memory usage must remain constant regardless of dataset size
570
+ - Database operations must use connection pooling
571
+
572
+ ### Zone 3: Integration and Infrastructure Rules
573
+
574
+ **Temporal integration patterns:**
575
+
576
+ - All workflow activities must have proper timeout and retry policies
577
+ - Service dependencies must be declared explicitly in activity definitions
578
+ - Circuit breakers required for external service dependencies
579
+ - Workflow state must be serializable and deterministic
580
+
581
+ **Database integration patterns:**
582
+
583
+ - All SQL clients must use parameterized queries
584
+ - Connection pooling required for all database operations
585
+ - Transaction boundaries must be explicit
586
+ - Database migrations must be reversible
587
+
588
+ ### Zone 4: Team and Process Specific Rules
589
+
590
+ **Code review process:**
591
+
592
+ - Performance-sensitive changes require load testing
593
+ - Database schema changes require DBA review
594
+ - Breaking API changes require architecture review
595
+ - Security-sensitive changes require security team review
596
+
597
+ **Documentation requirements:**
598
+
599
+ - Architecture decisions must be documented in conceptual docs
600
+ - Public APIs must have comprehensive docstrings with examples
601
+ - Breaking changes must update corresponding documentation
602
+ - Module changes must update concept documentation mapping
603
+
604
+ ### Zone 5: Quality and Compliance Standards
605
+
606
+ **Quality standards:**
607
+
608
+ - Code complexity metrics must be below established thresholds
609
+ - Technical debt must be tracked and addressed
610
+ - Performance benchmarks must be maintained
611
+ - Test coverage must be above 85% for new code
612
+
613
+ **Observability requirements:**
614
+
615
+ - All operations must include appropriate metrics
616
+ - Error conditions must be logged with context
617
+ - Trace information required for critical paths
618
+ - Use `AtlanLoggerAdapter` for all logging with proper context
619
+
620
+ ---
621
+
622
+ ## Educational Approach - Always Explain Why
623
+
624
+ When flagging any issue, always provide educational context:
625
+
626
+ ### Include These Elements:
627
+
628
+ 1. **Specific Issue**: Exactly what pattern or problem was detected
629
+ 2. **Impact**: Why this matters for maintainability, performance, security, or team productivity
630
+ 3. **Better Approach**: Specific alternative that follows established patterns
631
+ 4. **Principle**: Which coding principle or architectural pattern this relates to
632
+ 5. **Context**: How this relates to enterprise SDK scale and requirements
633
+
634
+ ### Example Educational Feedback:
635
+
636
+ Instead of: "Don't use string concatenation in loops"
637
+ Provide: "String concatenation in loops creates O(n²) complexity because strings are immutable - each concatenation creates a new string object. In our enterprise SDK processing millions of metadata records, this could cause significant performance degradation and memory issues. Use join() patterns instead, which maintain O(n) complexity. This follows the principle of choosing appropriate data structures for the access pattern and becomes critical when handling large-scale enterprise datasets."
638
+
639
+ ### Focus on Growth and Learning:
640
+
641
+ - Help developers understand the reasoning behind patterns
642
+ - Connect specific rules to broader architectural principles
643
+ - Explain how choices affect future maintainability and team productivity
644
+ - Build intuition for making good decisions independently
645
+ - Reference Python best practices and async programming patterns
646
+ - Connect to performance implications at enterprise scale
647
+ - Relate to data integrity and security considerations
@@ -0,0 +1,12 @@
1
+ ## v0.1.1rc40 (September 09, 2025)
2
+
3
+ Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc39...v0.1.1rc40
4
+
5
+ ### Features
6
+
7
+ - add retain_local_copy option to upload methods in ObjectStore (#691) (by @Mustafa in [38285f0](https://github.com/atlanhq/application-sdk/commit/38285f0))
8
+ - enhance bugbot rules (#681) (by @AdvitXAtlan in [546d23f](https://github.com/atlanhq/application-sdk/commit/546d23f))
9
+
10
+ ### Bug Fixes
11
+
12
+ - make sql client use context managers (#699) (by @Nishchith Shetty in [211f31b](https://github.com/atlanhq/application-sdk/commit/211f31b))
@@ -75,7 +75,7 @@ jobs:
75
75
 
76
76
  - name: Get PR Labels
77
77
  id: get-labels
78
- uses: actions/github-script@v7
78
+ uses: actions/github-script@v8
79
79
  with:
80
80
  github-token: ${{ secrets.GITHUB_TOKEN }}
81
81
  script: |
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+
4
+ ## v0.1.1rc40 (September 09, 2025)
5
+
6
+ Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc39...v0.1.1rc40
7
+
8
+ ### Features
9
+
10
+ - add retain_local_copy option to upload methods in ObjectStore (#691) (by @Mustafa in [38285f0](https://github.com/atlanhq/application-sdk/commit/38285f0))
11
+ - enhance bugbot rules (#681) (by @AdvitXAtlan in [546d23f](https://github.com/atlanhq/application-sdk/commit/546d23f))
12
+
13
+ ### Bug Fixes
14
+
15
+ - make sql client use context managers (#699) (by @Nishchith Shetty in [211f31b](https://github.com/atlanhq/application-sdk/commit/211f31b))
16
+
3
17
  ## v0.1.1rc39 (September 04, 2025)
4
18
 
5
19
  Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc38...v0.1.1rc39
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: atlan-application-sdk
3
- Version: 0.1.1rc39
3
+ Version: 0.1.1rc40
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