dagster-cloud 1.11.6__tar.gz → 1.11.8__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 (140) hide show
  1. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/PKG-INFO +7 -7
  2. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/instance/__init__.py +21 -0
  3. dagster_cloud-1.11.8/dagster_cloud/storage/defs_state/__init__.py +1 -0
  4. dagster_cloud-1.11.8/dagster_cloud/storage/defs_state/queries.py +15 -0
  5. dagster_cloud-1.11.8/dagster_cloud/storage/defs_state/storage.py +90 -0
  6. dagster_cloud-1.11.8/dagster_cloud/version.py +1 -0
  7. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/workspace/config_schema/__init__.py +5 -0
  8. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud.egg-info/PKG-INFO +7 -7
  9. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud.egg-info/SOURCES.txt +3 -0
  10. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud.egg-info/requires.txt +6 -6
  11. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/pyproject.toml +6 -6
  12. dagster_cloud-1.11.6/dagster_cloud/version.py +0 -1
  13. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/README.md +0 -0
  14. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/__init__.py +0 -0
  15. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/agent/__init__.py +0 -0
  16. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/agent/cli/__init__.py +0 -0
  17. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/agent/dagster_cloud_agent.py +0 -0
  18. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/agent/instrumentation/__init__.py +0 -0
  19. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/agent/instrumentation/constants.py +0 -0
  20. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/agent/instrumentation/run_launch.py +0 -0
  21. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/agent/instrumentation/schedule.py +0 -0
  22. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/agent/instrumentation/sensor.py +0 -0
  23. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/agent/queries.py +0 -0
  24. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/anomaly_detection/__init__.py +0 -0
  25. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/anomaly_detection/defs.py +0 -0
  26. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/anomaly_detection/mutation.py +0 -0
  27. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/anomaly_detection/types.py +0 -0
  28. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/api/__init__.py +0 -0
  29. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/api/dagster_cloud_api.py +0 -0
  30. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/artifacts/__init__.py +0 -0
  31. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/auth/__init__.py +0 -0
  32. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/auth/constants.py +0 -0
  33. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/batching/__init__.py +0 -0
  34. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/batching/batcher.py +0 -0
  35. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/constants.py +0 -0
  36. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/dagster_insights/__init__.py +0 -0
  37. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/dagster_insights/bigquery/__init__.py +0 -0
  38. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/dagster_insights/bigquery/bigquery_utils.py +0 -0
  39. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/dagster_insights/bigquery/dbt_wrapper.py +0 -0
  40. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/dagster_insights/bigquery/insights_bigquery_resource.py +0 -0
  41. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/dagster_insights/errors.py +0 -0
  42. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/dagster_insights/insights_utils.py +0 -0
  43. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/dagster_insights/metrics_utils.py +0 -0
  44. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/dagster_insights/query.py +0 -0
  45. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/dagster_insights/snowflake/__init__.py +0 -0
  46. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/dagster_insights/snowflake/dagster_snowflake_insights.py +0 -0
  47. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/dagster_insights/snowflake/dbt_wrapper.py +0 -0
  48. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/dagster_insights/snowflake/definitions.py +0 -0
  49. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/dagster_insights/snowflake/insights_snowflake_resource.py +0 -0
  50. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/dagster_insights/snowflake/snowflake_utils.py +0 -0
  51. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/definitions/__init__.py +0 -0
  52. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/definitions/job_selection.py +0 -0
  53. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/execution/__init__.py +0 -0
  54. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/execution/cloud_run_launcher/__init__.py +0 -0
  55. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/execution/cloud_run_launcher/k8s.py +0 -0
  56. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/execution/cloud_run_launcher/process.py +0 -0
  57. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/execution/monitoring/__init__.py +0 -0
  58. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/execution/utils/__init__.py +0 -0
  59. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/execution/utils/process.py +0 -0
  60. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/instrumentation/__init__.py +0 -0
  61. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/metadata/__init__.py +0 -0
  62. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/metadata/source_code.py +0 -0
  63. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/metrics/__init__.py +0 -0
  64. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/metrics/tracer.py +0 -0
  65. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/opentelemetry/__init__.py +0 -0
  66. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/opentelemetry/config/__init__.py +0 -0
  67. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/opentelemetry/config/exporter.py +0 -0
  68. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/opentelemetry/config/log_record_processor.py +0 -0
  69. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/opentelemetry/config/logging_handler.py +0 -0
  70. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/opentelemetry/config/meter_provider.py +0 -0
  71. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/opentelemetry/config/metric_reader.py +0 -0
  72. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/opentelemetry/controller.py +0 -0
  73. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/opentelemetry/enum.py +0 -0
  74. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/opentelemetry/factories/__init__.py +0 -0
  75. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/opentelemetry/factories/logs.py +0 -0
  76. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/opentelemetry/factories/metrics.py +0 -0
  77. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/opentelemetry/metrics/__init__.py +0 -0
  78. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/opentelemetry/metrics/meter.py +0 -0
  79. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/opentelemetry/observers/__init__.py +0 -0
  80. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/opentelemetry/observers/dagster_exception_handler.py +0 -0
  81. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/opentelemetry/observers/execution_observer.py +0 -0
  82. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/pex/__init__.py +0 -0
  83. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/pex/grpc/__generated__/__init__.py +0 -0
  84. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/pex/grpc/__generated__/multi_pex_api_pb2.py +0 -0
  85. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/pex/grpc/__generated__/multi_pex_api_pb2.pyi +0 -0
  86. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/pex/grpc/__generated__/multi_pex_api_pb2_grpc.py +0 -0
  87. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/pex/grpc/__init__.py +0 -0
  88. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/pex/grpc/client.py +0 -0
  89. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/pex/grpc/compile.py +0 -0
  90. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/pex/grpc/server/__init__.py +0 -0
  91. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/pex/grpc/server/cli/__init__.py +0 -0
  92. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/pex/grpc/server/manager.py +0 -0
  93. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/pex/grpc/server/registry.py +0 -0
  94. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/pex/grpc/server/server.py +0 -0
  95. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/pex/grpc/types.py +0 -0
  96. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/py.typed +0 -0
  97. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/secrets/__init__.py +0 -0
  98. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/secrets/loader.py +0 -0
  99. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/serverless/__init__.py +0 -0
  100. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/serverless/io_manager.py +0 -0
  101. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/storage/__init__.py +0 -0
  102. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/storage/client.py +0 -0
  103. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/storage/compute_logs/__init__.py +0 -0
  104. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/storage/compute_logs/compute_log_manager.py +0 -0
  105. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/storage/event_logs/__init__.py +0 -0
  106. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/storage/event_logs/queries.py +0 -0
  107. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/storage/event_logs/storage.py +0 -0
  108. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/storage/event_logs/utils.py +0 -0
  109. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/storage/runs/__init__.py +0 -0
  110. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/storage/runs/queries.py +0 -0
  111. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/storage/runs/storage.py +0 -0
  112. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/storage/schedules/__init__.py +0 -0
  113. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/storage/schedules/queries.py +0 -0
  114. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/storage/schedules/storage.py +0 -0
  115. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/storage/tags.py +0 -0
  116. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/util/__init__.py +0 -0
  117. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/util/container_resources.py +0 -0
  118. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/util/errors.py +0 -0
  119. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/workspace/__init__.py +0 -0
  120. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/workspace/config_schema/docker.py +0 -0
  121. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/workspace/config_schema/ecs.py +0 -0
  122. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/workspace/config_schema/kubernetes.py +0 -0
  123. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/workspace/docker/__init__.py +0 -0
  124. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/workspace/docker/utils.py +0 -0
  125. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/workspace/ecs/__init__.py +0 -0
  126. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/workspace/ecs/client.py +0 -0
  127. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/workspace/ecs/launcher.py +0 -0
  128. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/workspace/ecs/run_launcher.py +0 -0
  129. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/workspace/ecs/service.py +0 -0
  130. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/workspace/ecs/utils.py +0 -0
  131. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/workspace/kubernetes/__init__.py +0 -0
  132. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/workspace/kubernetes/launcher.py +0 -0
  133. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/workspace/kubernetes/utils.py +0 -0
  134. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/workspace/user_code_launcher/__init__.py +0 -0
  135. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/workspace/user_code_launcher/process.py +0 -0
  136. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/workspace/user_code_launcher/user_code_launcher.py +0 -0
  137. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud/workspace/user_code_launcher/utils.py +0 -0
  138. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud.egg-info/dependency_links.txt +0 -0
  139. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/dagster_cloud.egg-info/top_level.txt +0 -0
  140. {dagster_cloud-1.11.6 → dagster_cloud-1.11.8}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dagster-cloud
3
- Version: 1.11.6
3
+ Version: 1.11.8
4
4
  Author-email: Elementl <support@elementl.com>
5
5
  License: Apache-2.0
6
6
  Project-URL: Homepage, https://dagster.io/cloud
@@ -28,9 +28,9 @@ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
28
28
  Classifier: Operating System :: OS Independent
29
29
  Requires-Python: <3.14,>=3.9
30
30
  Description-Content-Type: text/markdown
31
- Requires-Dist: dagster==1.11.6
32
- Requires-Dist: dagster-shared==1.11.6
33
- Requires-Dist: dagster-cloud-cli==1.11.6
31
+ Requires-Dist: dagster==1.11.8
32
+ Requires-Dist: dagster-shared==1.11.8
33
+ Requires-Dist: dagster-cloud-cli==1.11.8
34
34
  Requires-Dist: opentelemetry-api<2,>=1.27.0
35
35
  Requires-Dist: opentelemetry-sdk<2,>=1.27.0
36
36
  Requires-Dist: opentelemetry-exporter-otlp-proto-grpc<2,>=1.27.0
@@ -65,12 +65,12 @@ Provides-Extra: insights
65
65
  Requires-Dist: pyarrow; extra == "insights"
66
66
  Provides-Extra: docker
67
67
  Requires-Dist: docker; extra == "docker"
68
- Requires-Dist: dagster-docker==0.27.6; extra == "docker"
68
+ Requires-Dist: dagster-docker==0.27.8; extra == "docker"
69
69
  Provides-Extra: kubernetes
70
70
  Requires-Dist: kubernetes; extra == "kubernetes"
71
- Requires-Dist: dagster-k8s==0.27.6; extra == "kubernetes"
71
+ Requires-Dist: dagster-k8s==0.27.8; extra == "kubernetes"
72
72
  Provides-Extra: ecs
73
- Requires-Dist: dagster-aws==0.27.6; extra == "ecs"
73
+ Requires-Dist: dagster-aws==0.27.8; extra == "ecs"
74
74
  Requires-Dist: boto3; extra == "ecs"
75
75
  Provides-Extra: sandbox
76
76
  Requires-Dist: supervisor; extra == "sandbox"
@@ -20,6 +20,7 @@ from dagster._core.instance.config import config_field_for_configurable_class
20
20
  from dagster._core.instance.ref import InstanceRef, configurable_class_data
21
21
  from dagster._core.launcher import DefaultRunLauncher, RunLauncher
22
22
  from dagster._core.storage.dagster_run import DagsterRun
23
+ from dagster._core.storage.defs_state.base import DefsStateStorage
23
24
  from dagster._serdes import ConfigurableClassData
24
25
  from dagster_cloud_cli.core.graphql_client import (
25
26
  create_agent_graphql_client,
@@ -64,6 +65,11 @@ class DagsterCloudInstance(DagsterInstance):
64
65
  "run_retries.retry_on_asset_or_op_failure is a deployment setting and can only be accessed by a DeploymentScopedHostInstance"
65
66
  )
66
67
 
68
+ @property
69
+ def defs_state_storage(self) -> Optional[DefsStateStorage]:
70
+ # only DeploymentScopedHostInstance / DagsterCloudAgentInstance have a defs state storage
71
+ return None
72
+
67
73
 
68
74
  class DagsterCloudAgentInstance(DagsterCloudInstance):
69
75
  def __init__(
@@ -144,6 +150,17 @@ class DagsterCloudAgentInstance(DagsterCloudInstance):
144
150
 
145
151
  self._instance_uuid = str(uuid.uuid4())
146
152
 
153
+ @property
154
+ def defs_state_storage(self) -> Optional[DefsStateStorage]:
155
+ # temporary hack to avoid cases where the default BlobStorageStateStorage is used
156
+ from dagster_cloud.storage.defs_state.storage import GraphQLDefsStateStorage
157
+
158
+ return (
159
+ self._defs_state_storage
160
+ if isinstance(self._defs_state_storage, GraphQLDefsStateStorage)
161
+ else None
162
+ )
163
+
147
164
  def _get_processed_config(
148
165
  self, name: str, config: Optional[dict[str, Any]], config_type: dict[str, Any]
149
166
  ):
@@ -578,6 +595,10 @@ instance_class:
578
595
  "dagster_cloud.secrets", "DagsterCloudSecretsLoader", empty_yaml
579
596
  )
580
597
 
598
+ defaults["defs_state_storage"] = ConfigurableClassData( # pyright: ignore[reportIndexIssue]
599
+ "dagster_cloud.storage.defs_state", "GraphQLDefsStateStorage", empty_yaml
600
+ )
601
+
581
602
  return defaults
582
603
 
583
604
  def dispose(self) -> None:
@@ -0,0 +1 @@
1
+ from .storage import GraphQLDefsStateStorage as GraphQLDefsStateStorage
@@ -0,0 +1,15 @@
1
+ GET_LATEST_DEFS_STATE_INFO_QUERY = """
2
+ query getLatestDefsStateInfo {
3
+ latestDefsStateInfo
4
+ }
5
+ """
6
+
7
+ SET_LATEST_VERSION_MUTATION = """
8
+ mutation setLatestDefsStateVersion($key: String!, $version: String!) {
9
+ defsState {
10
+ setLatestDefsStateVersion(key: $key, version: $version) {
11
+ ok
12
+ }
13
+ }
14
+ }
15
+ """
@@ -0,0 +1,90 @@
1
+ from pathlib import Path
2
+ from typing import TYPE_CHECKING, Any, Optional
3
+
4
+ import dagster._check as check
5
+ from dagster._core.storage.defs_state.base import DefsStateStorage
6
+ from dagster._serdes import ConfigurableClass, ConfigurableClassData
7
+ from dagster_cloud_cli.core.artifacts import download_artifact, upload_artifact
8
+ from dagster_shared.serdes import deserialize_value
9
+ from dagster_shared.serdes.objects import DefsStateInfo
10
+ from typing_extensions import Self
11
+
12
+ from dagster_cloud.instance import DagsterCloudInstanceScope
13
+
14
+ from .queries import GET_LATEST_DEFS_STATE_INFO_QUERY, SET_LATEST_VERSION_MUTATION
15
+
16
+ if TYPE_CHECKING:
17
+ from dagster_cloud.instance import DagsterCloudAgentInstance # noqa: F401
18
+
19
+
20
+ class GraphQLDefsStateStorage(DefsStateStorage["DagsterCloudAgentInstance"], ConfigurableClass):
21
+ def __init__(
22
+ self, inst_data: Optional[ConfigurableClassData] = None, override_graphql_client=None
23
+ ):
24
+ """Initialize this class directly only for test (using `override_graphql_client`).
25
+ Use the ConfigurableClass machinery to init from instance yaml.
26
+ """
27
+ self._inst_data = check.opt_inst_param(inst_data, "inst_data", ConfigurableClassData)
28
+ self._override_graphql_client = override_graphql_client
29
+
30
+ @property
31
+ def inst_data(self):
32
+ return self._inst_data
33
+
34
+ @classmethod
35
+ def config_type(cls):
36
+ return {}
37
+
38
+ @classmethod
39
+ def from_config_value(cls, inst_data: ConfigurableClassData, config_value: Any) -> Self:
40
+ return cls(inst_data=inst_data)
41
+
42
+ @property
43
+ def _graphql_client(self):
44
+ return (
45
+ self._override_graphql_client
46
+ if self._override_graphql_client
47
+ else self._instance.graphql_client # pyright: ignore[reportAttributeAccessIssue]
48
+ )
49
+
50
+ @property
51
+ def _url(self) -> str:
52
+ return f"{self._instance.dagster_cloud_url}"
53
+
54
+ def _execute_query(self, query, variables=None, idempotent_mutation=False):
55
+ return self._graphql_client.execute(
56
+ query, variable_values=variables, idempotent_mutation=idempotent_mutation
57
+ )
58
+
59
+ def _get_artifact_key(self, key: str, version: str) -> str:
60
+ return f"__state__/{key}/{version}"
61
+
62
+ def download_state_to_path(self, key: str, version: str, path: Path) -> None:
63
+ download_artifact(
64
+ url=self._url,
65
+ scope=DagsterCloudInstanceScope.DEPLOYMENT,
66
+ api_token=check.not_none(self._instance.dagster_cloud_agent_token),
67
+ key=self._get_artifact_key(key, version),
68
+ path=path,
69
+ )
70
+
71
+ def upload_state_from_path(self, key: str, version: str, path: Path) -> None:
72
+ upload_artifact(
73
+ url=self._url,
74
+ scope=DagsterCloudInstanceScope.DEPLOYMENT,
75
+ api_token=check.not_none(self._instance.dagster_cloud_agent_token),
76
+ key=self._get_artifact_key(key, version),
77
+ path=path,
78
+ )
79
+ self.set_latest_version(key, version)
80
+
81
+ def get_latest_defs_state_info(self) -> Optional[DefsStateInfo]:
82
+ res = self._execute_query(GET_LATEST_DEFS_STATE_INFO_QUERY)
83
+ result = res["data"]["latestDefsStateInfo"]
84
+ if result is not None:
85
+ return deserialize_value(result, DefsStateInfo)
86
+ else:
87
+ return None
88
+
89
+ def set_latest_version(self, key: str, version: str) -> None:
90
+ self._execute_query(SET_LATEST_VERSION_MUTATION, variables={"key": key, "version": version})
@@ -0,0 +1 @@
1
+ __version__ = "1.11.8"
@@ -276,6 +276,11 @@ CONFIG_SCHEMA_FIELDS = {
276
276
  is_required=False,
277
277
  description="Locations that specify an agent queue will only have their requests handled by agents configured to read from a matching queue. By default, requests are placed on a default queue that's handled by all agents.",
278
278
  ),
279
+ "defs_state_info": Field(
280
+ config=Map(str, Shape(fields={"version": str, "create_timestamp": float})),
281
+ is_required=False,
282
+ description="Defs state info for the code location.",
283
+ ),
279
284
  }
280
285
 
281
286
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dagster-cloud
3
- Version: 1.11.6
3
+ Version: 1.11.8
4
4
  Author-email: Elementl <support@elementl.com>
5
5
  License: Apache-2.0
6
6
  Project-URL: Homepage, https://dagster.io/cloud
@@ -28,9 +28,9 @@ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
28
28
  Classifier: Operating System :: OS Independent
29
29
  Requires-Python: <3.14,>=3.9
30
30
  Description-Content-Type: text/markdown
31
- Requires-Dist: dagster==1.11.6
32
- Requires-Dist: dagster-shared==1.11.6
33
- Requires-Dist: dagster-cloud-cli==1.11.6
31
+ Requires-Dist: dagster==1.11.8
32
+ Requires-Dist: dagster-shared==1.11.8
33
+ Requires-Dist: dagster-cloud-cli==1.11.8
34
34
  Requires-Dist: opentelemetry-api<2,>=1.27.0
35
35
  Requires-Dist: opentelemetry-sdk<2,>=1.27.0
36
36
  Requires-Dist: opentelemetry-exporter-otlp-proto-grpc<2,>=1.27.0
@@ -65,12 +65,12 @@ Provides-Extra: insights
65
65
  Requires-Dist: pyarrow; extra == "insights"
66
66
  Provides-Extra: docker
67
67
  Requires-Dist: docker; extra == "docker"
68
- Requires-Dist: dagster-docker==0.27.6; extra == "docker"
68
+ Requires-Dist: dagster-docker==0.27.8; extra == "docker"
69
69
  Provides-Extra: kubernetes
70
70
  Requires-Dist: kubernetes; extra == "kubernetes"
71
- Requires-Dist: dagster-k8s==0.27.6; extra == "kubernetes"
71
+ Requires-Dist: dagster-k8s==0.27.8; extra == "kubernetes"
72
72
  Provides-Extra: ecs
73
- Requires-Dist: dagster-aws==0.27.6; extra == "ecs"
73
+ Requires-Dist: dagster-aws==0.27.8; extra == "ecs"
74
74
  Requires-Dist: boto3; extra == "ecs"
75
75
  Provides-Extra: sandbox
76
76
  Requires-Dist: supervisor; extra == "sandbox"
@@ -99,6 +99,9 @@ dagster_cloud/storage/client.py
99
99
  dagster_cloud/storage/tags.py
100
100
  dagster_cloud/storage/compute_logs/__init__.py
101
101
  dagster_cloud/storage/compute_logs/compute_log_manager.py
102
+ dagster_cloud/storage/defs_state/__init__.py
103
+ dagster_cloud/storage/defs_state/queries.py
104
+ dagster_cloud/storage/defs_state/storage.py
102
105
  dagster_cloud/storage/event_logs/__init__.py
103
106
  dagster_cloud/storage/event_logs/queries.py
104
107
  dagster_cloud/storage/event_logs/storage.py
@@ -1,6 +1,6 @@
1
- dagster==1.11.6
2
- dagster-shared==1.11.6
3
- dagster-cloud-cli==1.11.6
1
+ dagster==1.11.8
2
+ dagster-shared==1.11.8
3
+ dagster-cloud-cli==1.11.8
4
4
  opentelemetry-api<2,>=1.27.0
5
5
  opentelemetry-sdk<2,>=1.27.0
6
6
  opentelemetry-exporter-otlp-proto-grpc<2,>=1.27.0
@@ -12,10 +12,10 @@ typer
12
12
 
13
13
  [docker]
14
14
  docker
15
- dagster-docker==0.27.6
15
+ dagster-docker==0.27.8
16
16
 
17
17
  [ecs]
18
- dagster-aws==0.27.6
18
+ dagster-aws==0.27.8
19
19
  boto3
20
20
 
21
21
  [insights]
@@ -23,7 +23,7 @@ pyarrow
23
23
 
24
24
  [kubernetes]
25
25
  kubernetes
26
- dagster-k8s==0.27.6
26
+ dagster-k8s==0.27.8
27
27
 
28
28
  [pex]
29
29
  boto3
@@ -29,9 +29,9 @@ classifiers = [
29
29
  "Operating System :: OS Independent",
30
30
  ]
31
31
  dependencies = [
32
- "dagster==1.11.6",
33
- "dagster-shared==1.11.6",
34
- "dagster-cloud-cli==1.11.6",
32
+ "dagster==1.11.8",
33
+ "dagster-shared==1.11.8",
34
+ "dagster-cloud-cli==1.11.8",
35
35
  "opentelemetry-api>=1.27.0,<2",
36
36
  "opentelemetry-sdk>=1.27.0,<2",
37
37
  "opentelemetry-exporter-otlp-proto-grpc>=1.27.0,<2",
@@ -90,14 +90,14 @@ insights = [
90
90
  ]
91
91
  docker = [
92
92
  "docker",
93
- "dagster-docker==0.27.6",
93
+ "dagster-docker==0.27.8",
94
94
  ]
95
95
  kubernetes = [
96
96
  "kubernetes",
97
- "dagster-k8s==0.27.6",
97
+ "dagster-k8s==0.27.8",
98
98
  ]
99
99
  ecs = [
100
- "dagster-aws==0.27.6",
100
+ "dagster-aws==0.27.8",
101
101
  "boto3",
102
102
  ]
103
103
  sandbox = [
@@ -1 +0,0 @@
1
- __version__ = "1.11.6"
File without changes
File without changes