atlan-application-sdk 0.1.1rc20__tar.gz → 0.1.1rc22__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.
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.cursor/rules/testing.mdc +2 -4
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/actions/e2e-examples/action.yaml +50 -5
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/actions/setup-deps/action.yaml +6 -2
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/actions/unit-tests/action.yaml +7 -1
- atlan_application_sdk-0.1.1rc22/.github/release_notes.md +11 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflows/pull_request.yaml +14 -2
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflows/push.yaml +1 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflows/tag-and-publish.yaml +1 -1
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.gitignore +2 -1
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/CHANGELOG.md +27 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/PKG-INFO +2 -2
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/activities/__init__.py +17 -3
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/activities/common/utils.py +29 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/activities/metadata_extraction/sql.py +2 -2
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/activities/query_extraction/sql.py +2 -2
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/clients/temporal.py +5 -4
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/common/credential_utils.py +3 -1
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/common/utils.py +93 -35
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/constants.py +23 -5
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/handlers/sql.py +4 -4
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/inputs/json.py +2 -1
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/inputs/objectstore.py +5 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/inputs/secretstore.py +39 -27
- atlan_application_sdk-0.1.1rc22/application_sdk/inputs/statestore.py +98 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/observability/logger_adaptor.py +12 -3
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/observability/metrics_adaptor.py +5 -3
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/observability/observability.py +10 -8
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/observability/traces_adaptor.py +2 -2
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/observability/utils.py +22 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/outputs/objectstore.py +2 -0
- atlan_application_sdk-0.1.1rc22/application_sdk/outputs/secretstore.py +38 -0
- atlan_application_sdk-0.1.1rc22/application_sdk/outputs/statestore.py +109 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/server/fastapi/__init__.py +19 -8
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/server/fastapi/models.py +3 -11
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/e2e/__init__.py +0 -3
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/version.py +1 -1
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/workflows/metadata_extraction/sql.py +0 -4
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/workflows/query_extraction/sql.py +0 -5
- atlan_application_sdk-0.1.1rc22/docs/docs/concepts/output_paths.md +143 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/configuration.md +0 -1
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/guides/getting-started.md +5 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/guides/test-framework.md +1 -1
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/examples/run_examples.py +3 -3
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/pyproject.toml +8 -3
- atlan_application_sdk-0.1.1rc22/tests/unit/activities/common/test_utils.py +197 -0
- atlan_application_sdk-0.1.1rc22/tests/unit/activities/metadata_extraction/test_sql.py +354 -0
- atlan_application_sdk-0.1.1rc22/tests/unit/activities/test_activities.py +278 -0
- atlan_application_sdk-0.1.1rc22/tests/unit/application/metadata_extraction/test_sql.py +355 -0
- atlan_application_sdk-0.1.1rc22/tests/unit/application/test_application.py +359 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/clients/test_temporal_client.py +20 -9
- atlan_application_sdk-0.1.1rc22/tests/unit/common/test_aws_utils.py +159 -0
- {atlan_application_sdk-0.1.1rc20/tests/unit/credentials → atlan_application_sdk-0.1.1rc22/tests/unit/common}/test_credential_utils.py +40 -10
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/common/test_utils.py +163 -37
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/handlers/sql/test_metadata.py +7 -5
- atlan_application_sdk-0.1.1rc22/tests/unit/inputs/test_json.py +301 -0
- atlan_application_sdk-0.1.1rc20/tests/unit/common/test_logger_adapter.py → atlan_application_sdk-0.1.1rc22/tests/unit/observability/test_logger_adaptor.py +6 -1
- atlan_application_sdk-0.1.1rc20/tests/unit/common/test_metrics_adapter.py → atlan_application_sdk-0.1.1rc22/tests/unit/observability/test_metrics_adaptor.py +0 -1
- {atlan_application_sdk-0.1.1rc20/tests/unit/common → atlan_application_sdk-0.1.1rc22/tests/unit/observability}/test_traces_adaptor.py +0 -1
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/outputs/test_objectstore.py +4 -2
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/outputs/test_statestore.py +7 -62
- atlan_application_sdk-0.1.1rc22/tests/unit/server/fastapi/routers/__init__.py +0 -0
- atlan_application_sdk-0.1.1rc22/tests/unit/server/fastapi/routers/server.py +0 -0
- atlan_application_sdk-0.1.1rc22/tests/unit/test_worker.py +140 -0
- atlan_application_sdk-0.1.1rc22/tests/unit/transformers/__init__.py +0 -0
- atlan_application_sdk-0.1.1rc22/tests/unit/transformers/atlas/__init__.py +0 -0
- atlan_application_sdk-0.1.1rc22/tests/unit/workflows/query_extraction/__init__.py +1 -0
- atlan_application_sdk-0.1.1rc22/tests/unit/workflows/query_extraction/test_sql.py +154 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/uv.lock +498 -381
- atlan_application_sdk-0.1.1rc20/.github/release_notes.md +0 -7
- atlan_application_sdk-0.1.1rc20/application_sdk/inputs/statestore.py +0 -66
- atlan_application_sdk-0.1.1rc20/application_sdk/outputs/secretstore.py +0 -29
- atlan_application_sdk-0.1.1rc20/application_sdk/outputs/statestore.py +0 -55
- atlan_application_sdk-0.1.1rc20/tests/unit/inputs/test_json_input.py +0 -81
- atlan_application_sdk-0.1.1rc20/tests/unit/worker.py +0 -52
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.cursor/rules/documentation.mdc +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.cursor/rules/guidelines.mdc +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.cursor/rules/logging.mdc +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.cursor/rules/setup.mdc +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.cursor/rules/standards.mdc +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.env.example +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/CODEOWNERS +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/ISSUE_TEMPLATE/config.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/actions/docgen/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/actions/doclint/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/actions/docstring-coverage/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/actions/e2e-apps/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/actions/sync-branches/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/actions/trivy/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/actions/trivy-container/action.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/dependabot.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/pull_request_template.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/scripts/extract_release_notes.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/scripts/pre_release.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/scripts/release.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/scripts/trivy-to-markdown.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/scripts/update_changelog.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/AMPM.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Accessibility.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Acronyms.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Adverbs.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Auto.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Avoid.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Contractions.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Dashes.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/DateFormat.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/DateNumbers.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/DateOrder.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Ellipses.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/FirstPerson.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Foreign.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Gender.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/GenderBias.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/GeneralURL.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/HeadingAcronyms.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/HeadingColons.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/HeadingPunctuation.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Headings.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Hyphens.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Negative.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Ordinal.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/OxfordComma.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Passive.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Percentages.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Plurals.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Quotes.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/RangeTime.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Semicolon.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/SentenceLength.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Spacing.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Suspended.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Terms.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/URLFormat.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Units.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Vocab.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/We.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/Wordiness.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/Microsoft/meta.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/config/vocabularies/deviations/accept.txt +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/styles/config/vocabularies/deviations/reject.txt +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflow-templates/checks.properties.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflow-templates/checks.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflow-templates/codeql.properties.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflow-templates/codeql.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflow-templates/dependency-review.properties.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflow-templates/dependency-review.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflow-templates/stale.properties.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflow-templates/stale.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflow-templates/trivy-container.properties.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflow-templates/trivy-container.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflow-templates/trivy.properties.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflow-templates/trivy.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflows/codeql.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflows/pre-release.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflows/release.yaml.disabled +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflows/scale-tests.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflows/schedule.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflows/trivy-container.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.pre-commit-config.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.vscode/launch.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/CODE_OF_CONDUCT.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/CONTRIBUTING.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/LICENSE +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/NOTICE +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/README.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/SECURITY.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/activities/common/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/activities/common/models.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/activities/metadata_extraction/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/activities/metadata_extraction/rest.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/activities/query_extraction/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/application/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/application/metadata_extraction/sql.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/clients/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/clients/sql.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/clients/utils.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/clients/workflow.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/common/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/common/aws_utils.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/common/dataframe_utils.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/common/error_codes.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/docgen/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/docgen/exporters/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/docgen/exporters/mkdocs.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/docgen/models/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/docgen/models/export/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/docgen/models/export/page.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/docgen/models/manifest/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/docgen/models/manifest/customer.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/docgen/models/manifest/internal.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/docgen/models/manifest/metadata.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/docgen/models/manifest/page.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/docgen/models/manifest/section.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/docgen/parsers/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/docgen/parsers/directory.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/docgen/parsers/manifest.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/handlers/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/inputs/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/inputs/iceberg.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/inputs/parquet.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/inputs/sql_query.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/observability/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/observability/decorators/observability_decorator.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/outputs/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/outputs/eventstore.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/outputs/iceberg.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/outputs/json.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/outputs/parquet.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/server/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/server/fastapi/middleware/logmiddleware.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/server/fastapi/middleware/metrics.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/server/fastapi/routers/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/server/fastapi/routers/server.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/server/fastapi/utils.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/e2e/base.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/e2e/client.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/e2e/conftest.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/e2e/utils.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/hypothesis/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/hypothesis/strategies/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/hypothesis/strategies/clients/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/hypothesis/strategies/clients/sql.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/hypothesis/strategies/common/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/hypothesis/strategies/common/logger.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/hypothesis/strategies/handlers/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/sql_metadata.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/hypothesis/strategies/handlers/sql/sql_preflight.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/hypothesis/strategies/inputs/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/hypothesis/strategies/inputs/json_input.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/hypothesis/strategies/outputs/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/hypothesis/strategies/outputs/json_output.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/hypothesis/strategies/outputs/statestore.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/hypothesis/strategies/server/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/hypothesis/strategies/server/fastapi/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/hypothesis/strategies/sql_client.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/hypothesis/strategies/temporal.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/scale_data_generator/README.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/scale_data_generator/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/scale_data_generator/config_loader.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/scale_data_generator/data_generator.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/scale_data_generator/driver.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/scale_data_generator/examples/config.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/scale_data_generator/output_handler/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/scale_data_generator/output_handler/base.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/scale_data_generator/output_handler/csv_handler.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/scale_data_generator/output_handler/json_handler.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/scale_data_generator/output_handler/parquet_handler.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/test_utils/workflow_monitoring.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/transformers/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/transformers/atlas/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/transformers/atlas/sql.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/transformers/common/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/transformers/common/utils.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/transformers/query/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/transformers/query/templates/column.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/transformers/query/templates/database.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/transformers/query/templates/extras-procedure.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/transformers/query/templates/function.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/transformers/query/templates/schema.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/transformers/query/templates/table.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/transformers/query/templates/tag_attachment.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/worker.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/workflows/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/workflows/metadata_extraction/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/workflows/query_extraction/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/components/README.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/components/aws-secrets.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/components/eventstore.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/components/objectstore.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/components/secretstore.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/components/statestore.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/concepts/activities.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/concepts/application.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/concepts/application_sql.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/concepts/clients.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/concepts/common.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/concepts/handlers.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/concepts/inputs.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/concepts/outputs.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/concepts/server.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/concepts/worker.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/concepts/workflows.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/guides/architecture.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/guides/atlantis.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/guides/best-practices.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/guides/index.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/guides/partners.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/guides/secretstores.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/guides/sql-application-guide.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/index.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/setup/LINUX.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/setup/MAC.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/setup/WINDOWS.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/setup/troubleshooting.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/static/assets/logo.svg +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/static/images/phoenix-sdk-featureset.png +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/static/javascripts/mathjax.js +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/docs/static/stylesheets/extra.css +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/docs/mkdocs.yml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/examples/README.md +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/examples/application_custom_fastapi.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/examples/application_fastapi.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/examples/application_hello_world.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/examples/application_sql.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/examples/application_sql_miner.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/examples/application_sql_with_custom_pyatlan_transformer.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/examples/application_sql_with_custom_transformer.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/examples/sql_query_templates/database.yaml +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/activities/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20/tests/unit/clients → atlan_application_sdk-0.1.1rc22/tests/unit/activities/common}/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20/tests/unit/handlers → atlan_application_sdk-0.1.1rc22/tests/unit/activities/metadata_extraction}/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20/tests/unit/server → atlan_application_sdk-0.1.1rc22/tests/unit/activities/query_extraction}/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20/tests/unit/server/fastapi/routers → atlan_application_sdk-0.1.1rc22/tests/unit/application}/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20/tests/unit/transformers → atlan_application_sdk-0.1.1rc22/tests/unit/clients}/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/clients/test_async_sql_client.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/clients/test_sql_client.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/docgen/parsers/test_directory_parser.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/docgen/parsers/test_manifest_parser.py +0 -0
- {atlan_application_sdk-0.1.1rc20/tests/unit/transformers/atlas → atlan_application_sdk-0.1.1rc22/tests/unit/handlers}/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/handlers/sql/test_auth.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/handlers/sql/test_check_schemas_and_databases.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/handlers/sql/test_extract_allowed_schemas.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/handlers/sql/test_preflight_check.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/handlers/sql/test_prepare_metadata.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/handlers/sql/test_tables_check.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/handlers/sql/test_validate_filters.py +0 -0
- {atlan_application_sdk-0.1.1rc20/tests/unit/workflows/sql → atlan_application_sdk-0.1.1rc22/tests/unit/observability}/__init__.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/outputs/test_iceberg.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/outputs/test_json_output.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/outputs/test_output.py +0 -0
- /atlan_application_sdk-0.1.1rc20/tests/unit/server/fastapi/routers/server.py → /atlan_application_sdk-0.1.1rc22/tests/unit/server/__init__.py +0 -0
- /atlan_application_sdk-0.1.1rc20/tests/unit/server/fastapi/test__init__.py → /atlan_application_sdk-0.1.1rc22/tests/unit/server/fastapi/test_fastapi.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/atlas/resources/raw_columns.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/atlas/resources/raw_databases.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/atlas/resources/raw_functions.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/atlas/resources/raw_procedures.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/atlas/resources/raw_schemas.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/atlas/resources/raw_tables.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/atlas/resources/transformed_columns.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/atlas/resources/transformed_databases.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/atlas/resources/transformed_functions.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/atlas/resources/transformed_procedures.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/atlas/resources/transformed_schemas.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/atlas/resources/transformed_tables.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/atlas/test_column.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/atlas/test_database.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/atlas/test_function.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/atlas/test_procedure.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/atlas/test_schema.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/atlas/test_table.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/query/resources/raw/column.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/query/resources/raw/database.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/query/resources/raw/extras-procedure.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/query/resources/raw/function.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/query/resources/raw/schema.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/query/resources/raw/table.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/query/resources/transformed/column.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/query/resources/transformed/database.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/query/resources/transformed/extras-procedure.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/query/resources/transformed/function.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/query/resources/transformed/schema.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/query/resources/transformed/table.json +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/query/test_sql_transformer.py +0 -0
- {atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/tests/unit/transformers/query/test_sql_transformer_output_validation.py +0 -0
- /atlan_application_sdk-0.1.1rc20/tests/unit/workflows/sql/test_workflow.py → /atlan_application_sdk-0.1.1rc22/tests/unit/workflows/metadata_extraction/test_sql.py +0 -0
{atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.cursor/rules/testing.mdc
RENAMED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
globs: tests/**/*.py
|
|
4
|
-
alwaysApply: false
|
|
2
|
+
alwaysApply: true
|
|
5
3
|
---
|
|
6
4
|
# Testing Guidelines
|
|
7
5
|
|
|
8
|
-
- Run the unit tests using the command: `uv run
|
|
6
|
+
- Run the unit tests using the command: `uv run coverage run -m pytest --import-mode=importlib --capture=no --log-cli-level=INFO tests/ -v --full-trace --hypothesis-show-statistics`
|
|
9
7
|
|
|
10
8
|
|
|
11
9
|
- **Test Framework**
|
|
@@ -14,6 +14,9 @@ description: |
|
|
|
14
14
|
and can serve as reliable reference implementations for SDK users.
|
|
15
15
|
|
|
16
16
|
inputs:
|
|
17
|
+
operating-system:
|
|
18
|
+
required: true
|
|
19
|
+
description: The operating system to use for the action.
|
|
17
20
|
github-token:
|
|
18
21
|
required: true
|
|
19
22
|
description: The GitHub token to use for the action.
|
|
@@ -38,22 +41,46 @@ runs:
|
|
|
38
41
|
steps:
|
|
39
42
|
- uses: actions/checkout@v4
|
|
40
43
|
|
|
41
|
-
- name: Install Dapr CLI
|
|
44
|
+
- name: Install Dapr CLI (Linux/macOS)
|
|
45
|
+
if: runner.os != 'Windows'
|
|
42
46
|
shell: bash
|
|
43
47
|
run: |
|
|
44
48
|
wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash -s 1.14.1
|
|
45
49
|
dapr init --runtime-version 1.13.6 --slim
|
|
46
50
|
|
|
51
|
+
- name: Install Dapr CLI (Windows)
|
|
52
|
+
if: runner.os == 'Windows'
|
|
53
|
+
shell: pwsh
|
|
54
|
+
run: |
|
|
55
|
+
$script=iwr -useb https://raw.githubusercontent.com/dapr/cli/master/install/install.ps1; $block=[ScriptBlock]::Create($script); invoke-command -ScriptBlock $block -ArgumentList 1.14.1, "$env:USERPROFILE\.dapr\bin\"
|
|
56
|
+
$env:Path += ";$env:USERPROFILE\.dapr\bin\"
|
|
57
|
+
dapr init --runtime-version 1.13.6 --slim
|
|
58
|
+
|
|
47
59
|
- name: Install Temporal CLI and Start Server
|
|
60
|
+
if: runner.os != 'Windows'
|
|
48
61
|
shell: bash
|
|
49
62
|
run: |
|
|
50
63
|
curl -sSf https://temporal.download/cli.sh | sh
|
|
51
64
|
export PATH="$HOME/.temporalio/bin:$PATH"
|
|
52
|
-
|
|
53
|
-
|
|
65
|
+
|
|
66
|
+
- name: Install Temporal CLI and Start Server (Windows)
|
|
67
|
+
if: runner.os == 'Windows'
|
|
68
|
+
shell: pwsh
|
|
69
|
+
run: |
|
|
70
|
+
# Create a directory for Temporal CLI
|
|
71
|
+
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.temporalio\bin"
|
|
72
|
+
|
|
73
|
+
# Download Temporal CLI
|
|
74
|
+
Invoke-WebRequest -Uri "https://temporal.download/cli/archive/latest?platform=windows&arch=amd64" -OutFile "$env:USERPROFILE\.temporalio\temporal.zip"
|
|
75
|
+
|
|
76
|
+
# Extract and install
|
|
77
|
+
Expand-Archive -Path "$env:USERPROFILE\.temporalio\temporal.zip" -DestinationPath "$env:USERPROFILE\.temporalio\bin" -Force
|
|
78
|
+
|
|
79
|
+
# Add to PATH
|
|
80
|
+
$env:Path += ";$env:USERPROFILE\.temporalio\bin"
|
|
54
81
|
|
|
55
82
|
- name: Set up Python 3.11
|
|
56
|
-
uses: actions/setup-python@
|
|
83
|
+
uses: actions/setup-python@v5
|
|
57
84
|
with:
|
|
58
85
|
python-version: "3.11"
|
|
59
86
|
|
|
@@ -66,6 +93,21 @@ runs:
|
|
|
66
93
|
shell: bash
|
|
67
94
|
run: uv sync --all-extras --all-groups
|
|
68
95
|
|
|
96
|
+
# Set up PATH for DAPR and Temporal globally
|
|
97
|
+
- name: Setup PATH for DAPR and Temporal (Linux/macOS)
|
|
98
|
+
if: runner.os != 'Windows'
|
|
99
|
+
shell: bash
|
|
100
|
+
run: |
|
|
101
|
+
echo "$HOME/.dapr/bin" >> $GITHUB_PATH
|
|
102
|
+
echo "$HOME/.temporalio/bin" >> $GITHUB_PATH
|
|
103
|
+
|
|
104
|
+
- name: Setup PATH for DAPR and Temporal (Windows)
|
|
105
|
+
if: runner.os == 'Windows'
|
|
106
|
+
shell: pwsh
|
|
107
|
+
run: |
|
|
108
|
+
echo "$env:USERPROFILE\.dapr\bin" >> $env:GITHUB_PATH
|
|
109
|
+
echo "$env:USERPROFILE\.temporalio\bin" >> $env:GITHUB_PATH
|
|
110
|
+
|
|
69
111
|
# Start all services
|
|
70
112
|
- name: Start Platform Services
|
|
71
113
|
shell: bash
|
|
@@ -83,6 +125,7 @@ runs:
|
|
|
83
125
|
SNOWFLAKE_ACCOUNT_ID: ${{ inputs.snowflake-account-id }}
|
|
84
126
|
SNOWFLAKE_USER: ${{ inputs.snowflake-user }}
|
|
85
127
|
SNOWFLAKE_PASSWORD: ${{ inputs.snowflake-password }}
|
|
128
|
+
ATLAN_LOCAL_DEVELOPMENT: true
|
|
86
129
|
run: |
|
|
87
130
|
cd examples
|
|
88
131
|
uv run run_examples.py
|
|
@@ -90,11 +133,13 @@ runs:
|
|
|
90
133
|
echo "Workflow status:"
|
|
91
134
|
cat workflow_status.md
|
|
92
135
|
|
|
136
|
+
echo "Operating system: **${{ inputs.operating-system }}**" >> workflow_status.md
|
|
137
|
+
|
|
93
138
|
- name: Comment test results on Pull Request
|
|
94
139
|
if: ${{ !cancelled() && github.event_name == 'pull_request' }}
|
|
95
140
|
uses: mshick/add-pr-comment@v2
|
|
96
141
|
with:
|
|
97
|
-
message-id: "
|
|
142
|
+
message-id: "workflow_status_${{ inputs.operating-system }}"
|
|
98
143
|
message-path: "examples/workflow_status.md"
|
|
99
144
|
|
|
100
145
|
# Stop all services
|
|
@@ -10,6 +10,10 @@ inputs:
|
|
|
10
10
|
description: "Enable dependency caching"
|
|
11
11
|
required: false
|
|
12
12
|
default: "true"
|
|
13
|
+
python-version:
|
|
14
|
+
required: false
|
|
15
|
+
description: The Python version to use for the action.
|
|
16
|
+
default: "3.11"
|
|
13
17
|
|
|
14
18
|
runs:
|
|
15
19
|
using: "composite"
|
|
@@ -18,11 +22,11 @@ runs:
|
|
|
18
22
|
with:
|
|
19
23
|
fetch-depth: 0
|
|
20
24
|
|
|
21
|
-
- name: Set up Python
|
|
25
|
+
- name: Set up Python
|
|
22
26
|
id: setup-python
|
|
23
27
|
uses: actions/setup-python@v5
|
|
24
28
|
with:
|
|
25
|
-
python-version:
|
|
29
|
+
python-version: ${{ inputs.python-version }}
|
|
26
30
|
|
|
27
31
|
- name: Install uv
|
|
28
32
|
uses: astral-sh/setup-uv@v5
|
|
@@ -20,6 +20,10 @@ inputs:
|
|
|
20
20
|
required: false
|
|
21
21
|
description: The minimum coverage threshold to enforce. Default is 60%.
|
|
22
22
|
default: "50"
|
|
23
|
+
python-version:
|
|
24
|
+
required: false
|
|
25
|
+
description: The Python version to use for the action.
|
|
26
|
+
default: "3.11"
|
|
23
27
|
|
|
24
28
|
runs:
|
|
25
29
|
using: "composite"
|
|
@@ -27,6 +31,8 @@ runs:
|
|
|
27
31
|
- uses: actions/checkout@v4
|
|
28
32
|
|
|
29
33
|
- uses: "./.github/actions/setup-deps"
|
|
34
|
+
with:
|
|
35
|
+
python-version: ${{ inputs.python-version }}
|
|
30
36
|
|
|
31
37
|
- name: Get branch name
|
|
32
38
|
shell: bash
|
|
@@ -36,7 +42,7 @@ runs:
|
|
|
36
42
|
- name: Run Unit and Integration Tests with Coverage
|
|
37
43
|
shell: bash
|
|
38
44
|
run: |
|
|
39
|
-
uv run coverage run -m pytest --capture=no --log-cli-level=INFO tests/ -v --full-trace --hypothesis-show-statistics
|
|
45
|
+
uv run coverage run -m pytest --import-mode=importlib --capture=no --log-cli-level=INFO tests/ -v --full-trace --hypothesis-show-statistics
|
|
40
46
|
uv run coverage xml
|
|
41
47
|
uv run coverage html
|
|
42
48
|
uv run coverage report --fail-under=${{ inputs.fail-under }}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
## v0.1.1rc22 (July 21, 2025)
|
|
2
|
+
|
|
3
|
+
Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc21...v0.1.1rc22
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- use object store as state store, path update and fixes (#618) (by @Nishchith Shetty in [d439cb4](https://github.com/atlanhq/application-sdk/commit/d439cb4))
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
- suppress daft dependency loggers (#611) (by @Nishchith Shetty in [3e379d4](https://github.com/atlanhq/application-sdk/commit/3e379d4))
|
|
@@ -49,13 +49,20 @@ jobs:
|
|
|
49
49
|
# Testing
|
|
50
50
|
unit:
|
|
51
51
|
name: Unit Tests
|
|
52
|
-
runs-on:
|
|
52
|
+
runs-on: ${{ matrix.os }}
|
|
53
|
+
timeout-minutes: 10
|
|
54
|
+
strategy:
|
|
55
|
+
fail-fast: false
|
|
56
|
+
matrix:
|
|
57
|
+
python-version: ["3.11", "3.12", "3.13"]
|
|
58
|
+
os: [ubuntu-22.04, macOS-latest, windows-latest]
|
|
53
59
|
steps:
|
|
54
60
|
- uses: actions/checkout@v4
|
|
55
61
|
- uses: "./.github/actions/unit-tests"
|
|
56
62
|
with:
|
|
57
63
|
github-token: ${{ secrets.ORG_PAT_GITHUB }}
|
|
58
64
|
fail-under: "50"
|
|
65
|
+
python-version: ${{ matrix.python-version }}
|
|
59
66
|
|
|
60
67
|
matrix-builder:
|
|
61
68
|
name: Build Test Matrix
|
|
@@ -137,11 +144,16 @@ jobs:
|
|
|
137
144
|
name: Run Examples
|
|
138
145
|
needs: matrix-builder
|
|
139
146
|
if: ((github.event.action == 'labeled' && github.event.label.name == 'run-examples') || contains(github.event.pull_request.labels.*.name, 'run-examples'))
|
|
140
|
-
runs-on:
|
|
147
|
+
runs-on: ${{ matrix.os }}
|
|
148
|
+
strategy:
|
|
149
|
+
fail-fast: false
|
|
150
|
+
matrix:
|
|
151
|
+
os: [ubuntu-22.04, macOS-latest, windows-latest]
|
|
141
152
|
steps:
|
|
142
153
|
- uses: actions/checkout@v4
|
|
143
154
|
- uses: "./.github/actions/e2e-examples"
|
|
144
155
|
with:
|
|
156
|
+
operating-system: ${{ matrix.os }}
|
|
145
157
|
github-token: ${{ secrets.ORG_PAT_GITHUB }}
|
|
146
158
|
postgres-host: ${{ secrets.POSTGRES_HOST }}
|
|
147
159
|
postgres-password: ${{ secrets.POSTGRES_PASSWORD }}
|
{atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/.github/workflows/push.yaml
RENAMED
|
@@ -33,6 +33,7 @@ jobs:
|
|
|
33
33
|
- uses: actions/checkout@v4
|
|
34
34
|
- uses: "./.github/actions/e2e-examples"
|
|
35
35
|
with:
|
|
36
|
+
operating-system: ubuntu-latest
|
|
36
37
|
github-token: ${{ secrets.ORG_PAT_GITHUB }}
|
|
37
38
|
postgres-host: ${{ secrets.POSTGRES_HOST }}
|
|
38
39
|
postgres-password: ${{ secrets.POSTGRES_PASSWORD }}
|
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
|
|
4
|
+
## v0.1.1rc22 (July 21, 2025)
|
|
5
|
+
|
|
6
|
+
Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc21...v0.1.1rc22
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- use object store as state store, path update and fixes (#618) (by @Nishchith Shetty in [d439cb4](https://github.com/atlanhq/application-sdk/commit/d439cb4))
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
- suppress daft dependency loggers (#611) (by @Nishchith Shetty in [3e379d4](https://github.com/atlanhq/application-sdk/commit/3e379d4))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## v0.1.1rc21 (July 10, 2025)
|
|
18
|
+
|
|
19
|
+
Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc20...v0.1.1rc21
|
|
20
|
+
|
|
21
|
+
### Features
|
|
22
|
+
|
|
23
|
+
- enable tests and examples on macOS and windows as part of CI (#606) (by @Nishchith Shetty in [e717fa0](https://github.com/atlanhq/application-sdk/commit/e717fa0))
|
|
24
|
+
|
|
25
|
+
### Bug Fixes
|
|
26
|
+
|
|
27
|
+
- multi-database fetch based on include / exclude filter (#610) (by @Abhishek Agrawal in [954584e](https://github.com/atlanhq/application-sdk/commit/954584e))
|
|
28
|
+
- unit tests structure, add missing tests (#609) (by @Nishchith Shetty in [b146004](https://github.com/atlanhq/application-sdk/commit/b146004))
|
|
29
|
+
|
|
3
30
|
## v0.1.1rc20 (July 02, 2025)
|
|
4
31
|
|
|
5
32
|
Full Changelog: https://github.com/atlanhq/application-sdk/compare/v0.1.1rc19...v0.1.1rc20
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: atlan-application-sdk
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1rc22
|
|
4
4
|
Summary: Atlan Application SDK is a Python library for developing applications on the Atlan Platform
|
|
5
5
|
Project-URL: Repository, https://github.com/atlanhq/application-sdk
|
|
6
6
|
Project-URL: Documentation, https://github.com/atlanhq/application-sdk/README.md
|
|
@@ -25,7 +25,7 @@ Requires-Dist: fastapi[standard]>=0.115.0
|
|
|
25
25
|
Requires-Dist: loguru>=0.7.3
|
|
26
26
|
Requires-Dist: opentelemetry-exporter-otlp>=1.27.0
|
|
27
27
|
Requires-Dist: psutil>=7.0.0
|
|
28
|
-
Requires-Dist: pyatlan
|
|
28
|
+
Requires-Dist: pyatlan>=7.1.1
|
|
29
29
|
Requires-Dist: pydantic>=2.10.6
|
|
30
30
|
Requires-Dist: python-dotenv>=1.1.0
|
|
31
31
|
Requires-Dist: uvloop>=0.21.0; sys_platform != 'win32'
|
|
@@ -13,16 +13,22 @@ Example:
|
|
|
13
13
|
... await state.handler.do_something()
|
|
14
14
|
"""
|
|
15
15
|
|
|
16
|
+
import os
|
|
16
17
|
from abc import ABC
|
|
17
18
|
from typing import Any, Dict, Generic, Optional, TypeVar
|
|
18
19
|
|
|
19
20
|
from pydantic import BaseModel
|
|
20
21
|
from temporalio import activity
|
|
21
22
|
|
|
22
|
-
from application_sdk.activities.common.utils import
|
|
23
|
+
from application_sdk.activities.common.utils import (
|
|
24
|
+
auto_heartbeater,
|
|
25
|
+
build_output_path,
|
|
26
|
+
get_workflow_id,
|
|
27
|
+
)
|
|
23
28
|
from application_sdk.common.error_codes import OrchestratorError
|
|
29
|
+
from application_sdk.constants import TEMPORARY_PATH
|
|
24
30
|
from application_sdk.handlers import HandlerInterface
|
|
25
|
-
from application_sdk.inputs.statestore import StateStoreInput
|
|
31
|
+
from application_sdk.inputs.statestore import StateStoreInput, StateType
|
|
26
32
|
from application_sdk.observability.logger_adaptor import get_logger
|
|
27
33
|
|
|
28
34
|
logger = get_logger(__name__)
|
|
@@ -183,7 +189,15 @@ class ActivitiesInterface(ABC, Generic[ActivitiesStateType]):
|
|
|
183
189
|
|
|
184
190
|
try:
|
|
185
191
|
# This already handles the Dapr call internally
|
|
186
|
-
|
|
192
|
+
workflow_args = StateStoreInput.get_state(workflow_id, StateType.WORKFLOWS)
|
|
193
|
+
workflow_args["output_prefix"] = workflow_args.get(
|
|
194
|
+
"output_prefix", TEMPORARY_PATH
|
|
195
|
+
)
|
|
196
|
+
workflow_args["output_path"] = os.path.join(
|
|
197
|
+
workflow_args["output_prefix"], build_output_path()
|
|
198
|
+
)
|
|
199
|
+
return workflow_args
|
|
200
|
+
|
|
187
201
|
except Exception as e:
|
|
188
202
|
logger.error(
|
|
189
203
|
f"Failed to retrieve workflow configuration for {workflow_id}: {str(e)}",
|
|
@@ -11,6 +11,7 @@ from typing import Any, Awaitable, Callable, Optional, TypeVar, cast
|
|
|
11
11
|
|
|
12
12
|
from temporalio import activity
|
|
13
13
|
|
|
14
|
+
from application_sdk.constants import APPLICATION_NAME, WORKFLOW_OUTPUT_PATH_TEMPLATE
|
|
14
15
|
from application_sdk.observability.logger_adaptor import get_logger
|
|
15
16
|
|
|
16
17
|
logger = get_logger(__name__)
|
|
@@ -43,6 +44,34 @@ def get_workflow_id() -> str:
|
|
|
43
44
|
raise Exception("Failed to get workflow id")
|
|
44
45
|
|
|
45
46
|
|
|
47
|
+
def get_workflow_run_id() -> str:
|
|
48
|
+
"""Get the workflow run ID from the current activity."""
|
|
49
|
+
try:
|
|
50
|
+
return activity.info().workflow_run_id
|
|
51
|
+
except Exception as e:
|
|
52
|
+
logger.error("Failed to get workflow run id", exc_info=e)
|
|
53
|
+
raise Exception("Failed to get workflow run id")
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def build_output_path() -> str:
|
|
57
|
+
"""Build a standardized output path for workflow artifacts.
|
|
58
|
+
|
|
59
|
+
This method creates a consistent output path format across all workflows using the WORKFLOW_OUTPUT_PATH_TEMPLATE constant.
|
|
60
|
+
|
|
61
|
+
Returns:
|
|
62
|
+
str: The standardized output path.
|
|
63
|
+
|
|
64
|
+
Example:
|
|
65
|
+
>>> build_output_path()
|
|
66
|
+
"artifacts/apps/appName/workflows/wf-123/run-456"
|
|
67
|
+
"""
|
|
68
|
+
return WORKFLOW_OUTPUT_PATH_TEMPLATE.format(
|
|
69
|
+
application_name=APPLICATION_NAME,
|
|
70
|
+
workflow_id=get_workflow_id(),
|
|
71
|
+
run_id=get_workflow_run_id(),
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
|
|
46
75
|
def auto_heartbeater(fn: F) -> F:
|
|
47
76
|
"""Decorator that automatically sends heartbeats during activity execution.
|
|
48
77
|
|
|
@@ -137,8 +137,8 @@ class BaseSQLMetadataExtractionActivities(ActivitiesInterface):
|
|
|
137
137
|
self._state[workflow_id].handler = handler
|
|
138
138
|
|
|
139
139
|
if "credential_guid" in workflow_args:
|
|
140
|
-
credentials = SecretStoreInput.
|
|
141
|
-
workflow_args["credential_guid"]
|
|
140
|
+
credentials = await SecretStoreInput.fetch_secret(
|
|
141
|
+
secret_key=workflow_args["credential_guid"]
|
|
142
142
|
)
|
|
143
143
|
await sql_client.load(credentials)
|
|
144
144
|
|
|
@@ -128,8 +128,8 @@ class SQLQueryExtractionActivities(ActivitiesInterface):
|
|
|
128
128
|
workflow_id = get_workflow_id()
|
|
129
129
|
sql_client = self.sql_client_class()
|
|
130
130
|
if "credential_guid" in workflow_args:
|
|
131
|
-
credentials = SecretStoreInput.
|
|
132
|
-
workflow_args["credential_guid"]
|
|
131
|
+
credentials = await SecretStoreInput.fetch_secret(
|
|
132
|
+
secret_key=workflow_args["credential_guid"]
|
|
133
133
|
)
|
|
134
134
|
await sql_client.load(credentials)
|
|
135
135
|
|
|
@@ -28,6 +28,7 @@ from application_sdk.constants import (
|
|
|
28
28
|
WORKFLOW_NAMESPACE,
|
|
29
29
|
WORKFLOW_PORT,
|
|
30
30
|
)
|
|
31
|
+
from application_sdk.inputs.statestore import StateType
|
|
31
32
|
from application_sdk.observability.logger_adaptor import get_logger
|
|
32
33
|
from application_sdk.outputs.eventstore import (
|
|
33
34
|
ApplicationEventNames,
|
|
@@ -312,13 +313,12 @@ class TemporalWorkflowClient(WorkflowClient):
|
|
|
312
313
|
"""
|
|
313
314
|
if "credentials" in workflow_args:
|
|
314
315
|
# remove credentials from workflow_args and add reference to credentials
|
|
315
|
-
workflow_args["credential_guid"] = SecretStoreOutput.
|
|
316
|
+
workflow_args["credential_guid"] = await SecretStoreOutput.save_secret(
|
|
316
317
|
workflow_args["credentials"]
|
|
317
318
|
)
|
|
318
319
|
del workflow_args["credentials"]
|
|
319
320
|
|
|
320
321
|
workflow_id = workflow_args.get("workflow_id")
|
|
321
|
-
output_prefix = workflow_args.get("output_prefix", "/tmp/output")
|
|
322
322
|
if not workflow_id:
|
|
323
323
|
# if workflow_id is not provided, create a new one
|
|
324
324
|
workflow_id = workflow_args.get("argo_workflow_name", str(uuid.uuid4()))
|
|
@@ -327,11 +327,12 @@ class TemporalWorkflowClient(WorkflowClient):
|
|
|
327
327
|
{
|
|
328
328
|
"application_name": self.application_name,
|
|
329
329
|
"workflow_id": workflow_id,
|
|
330
|
-
"output_prefix": output_prefix,
|
|
331
330
|
}
|
|
332
331
|
)
|
|
333
332
|
|
|
334
|
-
StateStoreOutput.
|
|
333
|
+
await StateStoreOutput.save_state_object(
|
|
334
|
+
id=workflow_id, value=workflow_args, type=StateType.WORKFLOWS
|
|
335
|
+
)
|
|
335
336
|
|
|
336
337
|
logger.info(f"Created workflow config with ID: {workflow_id}")
|
|
337
338
|
|
|
@@ -43,7 +43,9 @@ async def resolve_credentials(credentials: Dict[str, Any]) -> Dict[str, Any]:
|
|
|
43
43
|
)
|
|
44
44
|
|
|
45
45
|
# Fetch and apply secret using SecretStoreInput
|
|
46
|
-
secret_data = await SecretStoreInput.fetch_secret(
|
|
46
|
+
secret_data = await SecretStoreInput.fetch_secret(
|
|
47
|
+
secret_key=secret_key, component_name=credential_source
|
|
48
|
+
)
|
|
47
49
|
return SecretStoreInput.apply_secret_values(credentials, secret_data)
|
|
48
50
|
|
|
49
51
|
except Exception as e:
|
{atlan_application_sdk-0.1.1rc20 → atlan_application_sdk-0.1.1rc22}/application_sdk/common/utils.py
RENAMED
|
@@ -2,19 +2,98 @@ import asyncio
|
|
|
2
2
|
import glob
|
|
3
3
|
import json
|
|
4
4
|
import os
|
|
5
|
+
import re
|
|
5
6
|
from concurrent.futures import ThreadPoolExecutor
|
|
6
|
-
from typing import
|
|
7
|
+
from typing import (
|
|
8
|
+
Any,
|
|
9
|
+
Awaitable,
|
|
10
|
+
Callable,
|
|
11
|
+
Dict,
|
|
12
|
+
List,
|
|
13
|
+
Optional,
|
|
14
|
+
Set,
|
|
15
|
+
Tuple,
|
|
16
|
+
TypeVar,
|
|
17
|
+
Union,
|
|
18
|
+
)
|
|
7
19
|
|
|
8
20
|
from application_sdk.common.error_codes import CommonError
|
|
9
|
-
from application_sdk.inputs.statestore import StateStoreInput
|
|
10
21
|
from application_sdk.observability.logger_adaptor import get_logger
|
|
11
|
-
from application_sdk.outputs.statestore import StateStoreOutput
|
|
12
22
|
|
|
13
23
|
logger = get_logger(__name__)
|
|
14
24
|
|
|
15
25
|
F = TypeVar("F", bound=Callable[..., Awaitable[Any]])
|
|
16
26
|
|
|
17
27
|
|
|
28
|
+
def extract_database_names_from_regex(normalized_regex: str) -> str:
|
|
29
|
+
"""
|
|
30
|
+
Extract database names from normalized regex patterns and return a regex string suitable for SQL queries.
|
|
31
|
+
|
|
32
|
+
This function parses regex patterns like 'dev\\.external_schema$|wide_world_importers\\.bronze_sales$'
|
|
33
|
+
or 'dev\\.*|wide_world_importers\\.*' to extract the database names, and returns a regex string
|
|
34
|
+
like '^(dev|wide_world_importers)$' for use in SQL queries.
|
|
35
|
+
|
|
36
|
+
Args:
|
|
37
|
+
normalized_regex (str): The normalized regex pattern containing database.schema patterns
|
|
38
|
+
|
|
39
|
+
Returns:
|
|
40
|
+
str: A regex string in the format ^(name1|name2|...)$ or '^$' if no names are found.
|
|
41
|
+
|
|
42
|
+
Examples:
|
|
43
|
+
>>> extract_database_names_from_regex('dev\\.external_schema$|wide_world_importers\\.bronze_sales$')
|
|
44
|
+
'^(dev|wide_world_importers)$'
|
|
45
|
+
>>> extract_database_names_from_regex('dev\\.*|wide_world_importers\\.*')
|
|
46
|
+
'^(dev|wide_world_importers)$'
|
|
47
|
+
>>> extract_database_names_from_regex('^$')
|
|
48
|
+
'^$'
|
|
49
|
+
|
|
50
|
+
Raises:
|
|
51
|
+
CommonError: If the input is invalid or processing fails
|
|
52
|
+
"""
|
|
53
|
+
try:
|
|
54
|
+
if not normalized_regex or not isinstance(normalized_regex, str):
|
|
55
|
+
logger.warning("Invalid normalized_regex input: empty or non-string value")
|
|
56
|
+
return "'^$'"
|
|
57
|
+
|
|
58
|
+
database_names: Set[str] = set()
|
|
59
|
+
|
|
60
|
+
# Split by | to get individual patterns
|
|
61
|
+
patterns = normalized_regex.split("|")
|
|
62
|
+
|
|
63
|
+
for pattern in patterns:
|
|
64
|
+
try:
|
|
65
|
+
# Skip empty patterns
|
|
66
|
+
if not pattern or not pattern.strip():
|
|
67
|
+
continue
|
|
68
|
+
|
|
69
|
+
# Split by \\. to get database name (first part)
|
|
70
|
+
# The \\. represents an escaped dot in the regex
|
|
71
|
+
parts = pattern.split("\\.")
|
|
72
|
+
if parts:
|
|
73
|
+
db_name = parts[0].strip()
|
|
74
|
+
if db_name and db_name not in (".*", "^$"):
|
|
75
|
+
# Validate database name format
|
|
76
|
+
if re.match(r"^[a-zA-Z_][a-zA-Z0-9_]*$", db_name):
|
|
77
|
+
database_names.add(db_name)
|
|
78
|
+
else:
|
|
79
|
+
logger.warning(f"Invalid database name format: {db_name}")
|
|
80
|
+
|
|
81
|
+
except Exception as e:
|
|
82
|
+
logger.warning(f"Error processing pattern '{pattern}': {str(e)}")
|
|
83
|
+
continue
|
|
84
|
+
|
|
85
|
+
if not database_names:
|
|
86
|
+
return "'^$'"
|
|
87
|
+
return f"'^({'|'.join(sorted(database_names))})$'"
|
|
88
|
+
|
|
89
|
+
except Exception as e:
|
|
90
|
+
logger.error(
|
|
91
|
+
f"Error extracting database names from regex '{normalized_regex}': {str(e)}"
|
|
92
|
+
)
|
|
93
|
+
# Return a safe default that excludes everything
|
|
94
|
+
return "'^$'"
|
|
95
|
+
|
|
96
|
+
|
|
18
97
|
def prepare_query(
|
|
19
98
|
query: Optional[str],
|
|
20
99
|
workflow_args: Dict[str, Any],
|
|
@@ -67,12 +146,23 @@ def prepare_query(
|
|
|
67
146
|
include_filter, exclude_filter
|
|
68
147
|
)
|
|
69
148
|
|
|
149
|
+
# Extract database names from the normalized regex patterns
|
|
150
|
+
include_databases = extract_database_names_from_regex(normalized_include_regex)
|
|
151
|
+
exclude_databases = extract_database_names_from_regex(normalized_exclude_regex)
|
|
152
|
+
|
|
153
|
+
if include_databases == "'^$'" and exclude_databases == "'^$'":
|
|
154
|
+
include_databases = "'.*'"
|
|
155
|
+
exclude_databases = "'^$'"
|
|
156
|
+
|
|
157
|
+
# Use sets directly for SQL query formatting
|
|
70
158
|
exclude_empty_tables = workflow_args.get("metadata", {}).get(
|
|
71
159
|
"exclude_empty_tables", False
|
|
72
160
|
)
|
|
73
161
|
exclude_views = workflow_args.get("metadata", {}).get("exclude_views", False)
|
|
74
162
|
|
|
75
163
|
return query.format(
|
|
164
|
+
include_databases=include_databases,
|
|
165
|
+
exclude_databases=exclude_databases,
|
|
76
166
|
normalized_include_regex=normalized_include_regex,
|
|
77
167
|
normalized_exclude_regex=normalized_exclude_regex,
|
|
78
168
|
temp_table_regex_sql=temp_table_regex_sql,
|
|
@@ -176,38 +266,6 @@ def normalize_filters(
|
|
|
176
266
|
return normalized_filter_list
|
|
177
267
|
|
|
178
268
|
|
|
179
|
-
def get_workflow_config(config_id: str) -> Dict[str, Any]:
|
|
180
|
-
"""Gets the workflow configuration from the state store using config id.
|
|
181
|
-
|
|
182
|
-
Args:
|
|
183
|
-
config_id: The configuration ID to retrieve.
|
|
184
|
-
|
|
185
|
-
Returns:
|
|
186
|
-
dict: The workflow configuration.
|
|
187
|
-
"""
|
|
188
|
-
return StateStoreInput.extract_configuration(config_id)
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
def update_workflow_config(config_id: str, config: Dict[str, Any]) -> Dict[str, Any]:
|
|
192
|
-
"""Updates the workflow configuration.
|
|
193
|
-
|
|
194
|
-
Args:
|
|
195
|
-
config_id: The configuration ID to update.
|
|
196
|
-
config: The new configuration dictionary.
|
|
197
|
-
|
|
198
|
-
Returns:
|
|
199
|
-
dict: The updated workflow configuration.
|
|
200
|
-
"""
|
|
201
|
-
extracted_config = get_workflow_config(config_id)
|
|
202
|
-
|
|
203
|
-
for key in extracted_config.keys():
|
|
204
|
-
if key in config and config[key] is not None:
|
|
205
|
-
extracted_config[key] = config[key]
|
|
206
|
-
|
|
207
|
-
StateStoreOutput.store_configuration(config_id, extracted_config)
|
|
208
|
-
return extracted_config
|
|
209
|
-
|
|
210
|
-
|
|
211
269
|
def read_sql_files(
|
|
212
270
|
queries_prefix: str = f"{os.path.dirname(os.path.abspath(__file__))}/queries",
|
|
213
271
|
) -> Dict[str, str]:
|