{"id":16884690,"url":"https://github.com/timwis/drake-datasync","last_synced_at":"2026-05-14T23:02:53.340Z","repository":{"id":41075243,"uuid":"45799189","full_name":"timwis/drake-datasync","owner":"timwis","description":"Push a CSV file to a Socrata dataset using Drake and DataSync","archived":false,"fork":false,"pushed_at":"2015-11-08T21:21:44.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-20T05:43:18.316Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/timwis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-11-08T21:08:01.000Z","updated_at":"2015-11-08T21:08:01.000Z","dependencies_parsed_at":"2022-08-29T07:40:42.496Z","dependency_job_id":null,"html_url":"https://github.com/timwis/drake-datasync","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/timwis/drake-datasync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timwis%2Fdrake-datasync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timwis%2Fdrake-datasync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timwis%2Fdrake-datasync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timwis%2Fdrake-datasync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/timwis","download_url":"https://codeload.github.com/timwis/drake-datasync/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timwis%2Fdrake-datasync/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278337795,"owners_count":25970592,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T16:29:50.887Z","updated_at":"2025-10-04T16:17:40.354Z","avatar_url":"https://github.com/timwis.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Drake DataSync\nPush a CSV file to a Socrata dataset using [Drake](https://github.com/factual/drake) and [DataSync](http://socrata.github.io/datasync/)\n\nThis project provides a data workflow that:\n1. Reads a CSV file\n2. Creates Socrata-friendly field names using [slugify-headers](https://github.com/timwis/slugify-headers)\n3. Pushes to a Socrata data store using the efficient data transport ([DataSync](http://socrata.github.io/datasync/))\n\nBy using [Drake](https://github.com/factual/drake) it creates an extensible workflow (or the beginnings of one, at least)\nrather than procedural, one-off code.\n\n## Requirements\n- Java Runtime (for DataSync and Drake)\n- [Drake](https://github.com/Factual/drake)\n- [DataSync](https://socrata.github.io/datasync/)\n- Python (for slugify-headers)\n- [jq](https://stedolan.github.io/jq/)\n\n## Usage\nCopy `config.sample.json` to `config.json` and fill in its values. Generate a Socrata token [here](https://dev.socrata.com/register).\nThen execute the following command inside the project folder, replacing `INFILE` and `DATASET` values with the path to the dataset\nand the Socrata dataset ID, respectively.\n```bash\n$ drake --vars=\"INFILE=path/to/data.csv,DATASET=abcd-1234\"\n```\nNote: I'm new to python so `slugify-headers` may not be as easy to install as it could be. For now, you need to install its\ndependencies in order for this workflow to utilize it. This can be done using `pip install -r requirements.txt` inside its folder.\n\n## Roadmap\nGiven a config file of table names and Socrata dataset IDs, extract each table from a database and push it to its corresponding\nSocrata dataset.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimwis%2Fdrake-datasync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimwis%2Fdrake-datasync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimwis%2Fdrake-datasync/lists"}