Félix Tremblay
02/20/2023, 6:57 PMdaniel
02/21/2023, 1:55 PMlocalSecretsFileContents
:
query LocalSecretsFileQuery {
localSecretsFileContents
}
so if you made a graphql query using a Dagster Cloud User token in the "Dagster-Cloud-Api-Token" header, I would expect it to return the contents that could be placed in that fileFélix Tremblay
02/21/2023, 7:59 PM{
"error": {
"data": null,
"errors": [
{
"message": "Cannot query field 'localSecretsFileContents' on type 'DagitQuery'.",
"locations": [
{
"line": 2,
"column": 3
}
]
}
]
}
}
daniel
02/25/2023, 8:21 PMFélix Tremblay
02/25/2023, 8:38 PMimport os
import warnings
from dagster import ExperimentalWarning
from dagster_graphql import DagsterGraphQLClient
from gql.transport.requests import RequestsHTTPTransport
# Ignore experimental warnings
warnings.filterwarnings("ignore", category=ExperimentalWarning)
# Create GraphQL client for Dagster Cloud
token = os.environ.get("DAGSTER_CLOUD_API_TOKEN")
org = os.environ.get("DAGSTER_CLOUD_ORGANIZATION")
url = f"https://{org}.dagster.cloud/prod"
cloud_client = DagsterGraphQLClient(
url,
transport=RequestsHTTPTransport(
url=url + "/graphql", headers={"Dagster-Cloud-Api-Token": token}
),
use_https=True,
)
# Define query to fetch secrets for "local" deployment scope
# <https://docs.dagster.io/dagster-cloud/developing-testing/environment-variables-and-secrets#exporting-variables-to-a-env-file>
query = "query LocalSecretsFileQuery { localSecretsFileContents }"
# Get secrets
result = cloud_client._execute(query)
secrets = result["localSecretsFileContents"]
# Write secrets to file
path = ".env"
with open(path, "w") as f:
f.write(secrets)