{"id":16603225,"url":"https://github.com/laserpants/groundfork-antenna-postgres","last_synced_at":"2026-04-17T20:31:10.411Z","repository":{"id":34250231,"uuid":"38133802","full_name":"laserpants/groundfork-antenna-postgres","owner":"laserpants","description":"Synchronization framework for ground computing","archived":false,"fork":false,"pushed_at":"2015-08-01T01:08:18.000Z","size":296,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-09T17:45:30.915Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/laserpants.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-26T21:06:54.000Z","updated_at":"2015-06-26T21:07:18.000Z","dependencies_parsed_at":"2022-08-03T20:00:35.662Z","dependency_job_id":null,"html_url":"https://github.com/laserpants/groundfork-antenna-postgres","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/laserpants/groundfork-antenna-postgres","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laserpants%2Fgroundfork-antenna-postgres","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laserpants%2Fgroundfork-antenna-postgres/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laserpants%2Fgroundfork-antenna-postgres/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laserpants%2Fgroundfork-antenna-postgres/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/laserpants","download_url":"https://codeload.github.com/laserpants/groundfork-antenna-postgres/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laserpants%2Fgroundfork-antenna-postgres/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31944921,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T17:29:20.459Z","status":"ssl_error","status_checked_at":"2026-04-17T17:28:47.801Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-12T00:48:26.803Z","updated_at":"2026-04-17T20:31:10.368Z","avatar_url":"https://github.com/laserpants.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# groundfork-antenna-postgres\n\n#### GET /log\n\n```bash\n$ curl --user root:root http://localhost:3333/log \n```\n\n```bash\n$ curl -G \\\n    --user root:root \\\n    --data-urlencode page=1 \\\n    --data-urlencode size=15 \\\n    http://localhost:3333/log\n```\n\n#### POST /log/reset\n\n```bash\n$ curl --user root:root -X POST http://localhost:3333/log/reset  \n```\n\n#### GET /nodes\n\n```bash\n$ curl --user root:root http://localhost:3333/nodes\n```\n\n#### POST /nodes\n\n| Property      | Type          | Extra                      |   \n| ------------- |---------------|----------------------------| \n| name          | string        |                            |\n| type          | string        | 'device' \u0026#124; 'virtual'  |\n| password      | string        | Applies to device nodes only. |\n| locked        | boolean       |                            |\n\n```bash\n$ curl --user root:root \\\n    -X POST \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\"name\":\"virtual-1\",\"type\":\"virtual\",\"locked\":false}' \\\n    http://localhost:3333/nodes  \n```\n\n```bash\n$ curl --user root:root \\\n    -X POST \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\"name\":\"device-1\",\"password\":\"pass\",\"type\":\"device\",\"locked\":false}' \\\n    http://localhost:3333/nodes \n```\n\n#### PUT /nodes/:id\n\n| Property      | Type          | Extra                      |   \n| ------------- |---------------|----------------------------| \n| name          | string        |                            |\n| password      | string        | Applies to device nodes only. |\n| locked        | boolean       |                            |\n\n```\n$ curl --user root:root \\ \n     -X PUT \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\"name\":\"new-name\"}' \\\n     http://localhost:3333/nodes/3215\n```\n\n#### DELETE /nodes/:id\n\n```bash\n$ curl --user root:root -X DELETE http://localhost:3333/nodes/3216\n```\n\n#### GET /ping\n\n```bash\n$ curl http://localhost:3333/ping\n```\n\n```\nPong!\n```\n\n#### GET /sp\n\n```bash\n$ curl --user root:root http://localhost:3333/sp \n```\n\n```json\n{\n   \"status\"  : \"success\",\n   \"message\" : \"OK\",\n   \"body\"    : {\n      \"syncPoint\" : 1438174179\n   }\n}\n```\n\n#### POST /sync\n\n| Property      | Type          | Extra                      |   \n| ------------- |---------------|----------------------------| \n| targets       | array         |                            |\n| syncPoint     | string \u0026#124; number | A timestamp, or '*'.     |\n| commit        | array         | Action log.                |\n\n```bash \n$ cat request.json\n```\n\n```json\n{\n    \"targets\": [\"root\"],\n    \"syncPoint\": 0,\n    \"commit\": [ \n        { \n            \"up\": { \n                \"method\": \"POST\", \n                \"resource\": \"posts\", \n                \"payload\": {\n                    \"title\": \"My first post\",\n                    \"body\": \"In omnium maluisset eum, per putent singulis tincidunt id.\",\n                    \"user\": \"bob\",\n                    \"_links\": {\n                        \"self\": { \"href\": \"||posts/1||\" }\n                    }\n                }\n            }, \n            \"down\": { \n                \"method\": \"DELETE\", \n                \"resource\": \"||posts/1||\" \n            },                   \n            \"index\": 1,                                                         \n            \"timestamp\": 1438388891 \n        } \n    ] \n}\n```\n\n```bash\n$ curl --user root:root \\\n     -X POST \\ \n     -H \"Content-Type: application/json\" \\\n     -d @request.json \\\n     http://localhost:3333/sync \n```\n\n```json\n{\n    \"status\": \"success\",\n    \"forward\": [\n        {\n            \"payload\": {\n                \"body\": \"In omnium maluisset eum, per putent singulis tincidunt id.\",\n                \"user\": \"bob\",\n                \"_links\": {\n                    \"self\": { \"href\": \"posts/_2zsB\" }\n                },\n                \"title\": \"My first post\"\n            },\n            \"method\": \"POST\",\n            \"resource\": \"posts\"\n        }\n    ],\n    \"reverse\": [],\n    \"syncPoint\": \"*\"\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaserpants%2Fgroundfork-antenna-postgres","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaserpants%2Fgroundfork-antenna-postgres","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaserpants%2Fgroundfork-antenna-postgres/lists"}