:wave: Hey team, I’m currently trying to execute t...
# community-support
t
👋 Hey team, I’m currently trying to execute the
edr send-report …
command and am running into an issue in prod:
Copy code
elementary.exceptions.exceptions.InvalidArgumentsError: You must provide a platform to upload the report to (Slack token / S3 / GCS).
We’re running
0.12.1
due to a
pandas
conflict, but I don’t see any options in the help command to set the platform. Any guidance would be appreciated. Thank you
n
Hey @Timothy Allard 👋🏼 You can see here what should be set to send report to Slack/S3/Azure Blob/GCS.
t
Hi @Noy Arie thanks for the response. Unfortunately, those directions are failing when deployed to Airflow. It works locally though
Looking through the code, it looks like I am hitting the
config..py
file: https://github.com/elementary-data/elementary/blob/master/elementary/config/config.py#L200
I wouldn’t expect to have to hit the config file with our command of:
Copy code
edr send-report --profiles-dir <redacted> --profile-target <redacted> --gcs-bucket-name <redacted> --bucket-file-path <redacted>/edr_target/report.html
The first call in
send-report
is `config.validate_send_report()`: https://github.com/elementary-data/elementary/blob/master/elementary/monitor/cli.py#L691C9-L691C38 which then checks for `has_gcs`: https://github.com/elementary-data/elementary/blob/master/elementary/config/config.py#L200
has_gcs
then checks for a bucket name, which we’re providing. But then it also checks for
has_gcloud
: https://github.com/elementary-data/elementary/blob/master/elementary/config/config.py#L235
has_gcloud
either expects a service account path or tries to use the default google auth: https://github.com/elementary-data/elementary/blob/master/elementary/config/config.py#L229
Which suggests it’s a credentials issue. I’ve confirmed the profile is the same as local. The default
google.auth
just looks for the
GOOGLE_APPLICATION_CREDENTIALS
which is set as an ENV var in our test env. 🤔
n
Does your Airflow has
GOOGLE_APPLICATION_CREDENTIALS
defined as well?
t
Not explicitly, we use a connection Id