build-your-own-radar
build-your-own-radar copied to clipboard
Problem using .csv
All - I'm having an issue using a .csv file on a self hosted Radar site. If I use a Google Sheet version of the file, the Radar builds as expected so I know the site itself is working as expected. If I use the same file, but as a .csv, the Radar never builds and I sit on the screen saying "Your Technology Radar will be available in just a few seconds".
My goal is to use an internally hosted .csv instead of a public Google Sheet.
Here's the example .csv file I am using. I took the sample linked on GitHub and deleted all rows except 4 of them to simplify and know that it is not a data issue.
https://www.dropbox.com/s/m9no8g9x1v4c55e/test-radar.csv
I have tried hosting the file in different locations (GDrive, Dropbox, etc.) and the same results, the .csv never loads.
Thoughts? Is there some sort of config I need to tell the site to use a .csv?
Thanks, Steve
Exactly same issue for me. I tried putting the .csv file on the publicly visible Github repo but it just says "Your Technology Radar will be available in just a few seconds" and never comes up. I have to ideally host this internally on private repo and generate Radar. Any help would be much appreciated.
I had the same problem. I decided so: Added quotes to the CSV header, added a link to Radar from GitHub in RAW format.

Thanks a lot! The raw format worked. And it worked even without the quotes to header text. However I am having some access issue now - if my repo is public, it just works fine, creates the radar. If I make it private it just keeps trying and never comes up. Any way I can pass the credentials of the user I have enabled access on this repo; BYOR URL; any config in the BYOR setting or while bringing up the BYOR container or anything else possible here to make it work with privately accessible repo. I need my csv to be private-hosted given confidentiality requirements.
Hi -
I've worked on some changes and got into a point where this is working for me. Here's a quick way to test it:
$ docker pull dcasati/build-your-own-radar
$ docker run --rm -p 8080:80 -e SERVER_NAMES="localhost 127.0.0.1" -v /mnt/radar/sheets/:/opt/build-your-own-radar/sheets dcasati/build-your-own-radar
$ open http://localhost:8080
This will:
- spawn a server that will listen locally on port 8080
- mount the host volume on /mnt/radar/sheets/ into the container on /opt/build-your-own-radar/sheets/.
- open http://localhost:8080 and for the URL piece '(Enter the URL of your Google Sheet of CSV file bellow...)' type: http://localhost:8080/sheets/${NAME_OF_YOUR_SHEET}.csv - it needs to be a csv file.
You can now work locally on your machine, updating the csv file, rendering the result back on your browser.
I believe this should work in a fully private environment but I have not tested.
Related PR: https://github.com/thoughtworks/build-your-own-radar/pull/176
I'm having the same problem with a public .csv hosted at S3, using the public BYOR site. I'm confident that the CSV is publicly accessible. The content is dead simple:
"name","ring","quadrant","isNew","description"
one,ring1,q1,false,One
two,ring2,q2,true,Two
three,ring3,q3,false,threeface
four,ring4,q4,false,Fourplex
The URL is https://grnds-development-public.s3.amazonaws.com/radar/latest/radar.csv
Curl to that page responds with:
$ curl -v https://grnds-development-public.s3.amazonaws.com/radar/latest/radar.csv
...
< HTTP/1.1 200 OK
< x-amz-id-2: e0zpGnU4bRdNr+Jw14bv0UNYlm9VHT6Bons3hoiBkTEVZw9AwDvajUFto2MzO7a1BYqlFlNBmFk=
< x-amz-request-id: 9170M5A9160KF8ER
< Date: Wed, 23 Mar 2022 18:37:11 GMT
< Last-Modified: Wed, 23 Mar 2022 18:29:05 GMT
< ETag: "f52bdad34c64704e1db5e5043d455233"
< x-amz-version-id: p5.yzlMe9uzue..ZoQ5.5JePbTJ5soTs
< Accept-Ranges: bytes
< Content-Type: text/csv
< Server: AmazonS3
< Content-Length: 152
<
"name","ring","quadrant","isNew","description"
one,ring1,q1,false,One
two,ring2,q2,true,Two
three,ring3,q3,false,threeface
four,ring4,q4,false,Fourplex
* Connection #0 to host grnds-development-public.s3.amazonaws.com left intact
* Closing connection 0
My suspicion is that it's the Content-Type, but is there some debugging output that would explain what's going on?
It's not the Content-Type: it's a CORS problem. Investigating what I can do. The request shows up in Chrome debugger with referrer-policy: strict-origin-when-cross-origin and as a CORS Error on the request.
For anybody looking at this in the future, the minimal policy I needed to add to the bucket was:
[
{
"AllowedHeaders": [
"Authorization"
],
"AllowedMethods": [
"GET",
"HEAD"
],
"AllowedOrigins": [
"https://radar.thoughtworks.com"
],
"ExposeHeaders": [
"Access-Control-Allow-Origin"
]
}
]
I was surprised to need the https:// part of the allowed origins, but it was definitely necessary.
@devansh-sharma-tw this should be able to be closed now