The cloud portion of Nidus
Find a file
Eli Ribble c0b527c9a3
Add cell debug page.
This makes it much easier to troubleshoot information related to a cell
by showing detailed data about a single cell. At this point much is a
placeholder, but we at least get the cell boundary coordinates and a
map.

This also starts to make some code common around doing things like
mapping.
2025-11-19 15:21:06 +00:00
arcgis-go@6344702fe1 Remove redundant API error type, use arcgis 2025-11-14 23:08:26 +00:00
dberrors Go to h3 v4, Add initial h3 aggregation work 2025-11-13 23:49:12 +00:00
dbinfo Go to h3 v4, Add initial h3 aggregation work 2025-11-13 23:49:12 +00:00
enums Go to h3 v4, Add initial h3 aggregation work 2025-11-13 23:49:12 +00:00
factory Go to h3 v4, Add initial h3 aggregation work 2025-11-13 23:49:12 +00:00
migrations Add geometry info to h3 aggregation table 2025-11-15 21:33:01 +00:00
models Go to h3 v4, Add initial h3 aggregation work 2025-11-13 23:49:12 +00:00
sql Add oauth token failure model and notification 2025-11-11 20:10:56 +00:00
static Add a basic main page with login 2025-11-03 22:13:19 +00:00
templates Add cell debug page. 2025-11-19 15:21:06 +00:00
.air.toml Shorten the time waiting for air to kill my webserver 2025-11-07 08:46:26 +00:00
.gitattributes Add a basic main page with login 2025-11-03 22:13:19 +00:00
.gitignore Ignore air's temp building directory 2025-11-05 17:17:21 +00:00
.gitmodules Push an H3 cell to javascript and render it 2025-11-13 20:01:15 +00:00
arcgis.go Remove redundant API error type, use arcgis 2025-11-14 23:08:26 +00:00
auth.go Create separate signin page, make auth redirect there. 2025-11-19 15:19:42 +00:00
bobgen.yaml Add generated Bob database integration 2025-11-04 23:11:32 +00:00
content_negotiation.go Create settings page placeholder, add auth pattern 2025-11-13 16:48:23 +00:00
database.go Add geometry info to h3 aggregation table 2025-11-15 21:33:01 +00:00
default.nix Make buildable release for prod 2025-11-11 16:09:18 +00:00
endpoint.go Add cell debug page. 2025-11-19 15:21:06 +00:00
errors.go Remove redundant API error type, use arcgis 2025-11-14 23:08:26 +00:00
fileserver.go Format all source files. 2025-11-06 22:31:51 +00:00
flake.lock Add a basic 'hello-world' buildable with Nix 2025-11-03 12:22:06 +00:00
flake.nix Add user sessions and login 2025-11-05 17:15:33 +00:00
go.mod Go to h3 v4, Add initial h3 aggregation work 2025-11-13 23:49:12 +00:00
go.sum Go to h3 v4, Add initial h3 aggregation work 2025-11-13 23:49:12 +00:00
h3.go Add cell debug page. 2025-11-19 15:21:06 +00:00
html.go Add cell debug page. 2025-11-19 15:21:06 +00:00
lefthook.yml Add lefthook configuration for formatting 2025-11-06 22:31:29 +00:00
LICENSE Initial commit 2025-11-03 05:12:02 -07:00
main.go Add cell debug page. 2025-11-19 15:21:06 +00:00
notification.go Wrap errors. Don't emit crash message on no oauth tokens. 2025-11-13 20:53:20 +00:00
README.md Save information about the organization and user from ArcGIS 2025-11-07 02:07:33 +00:00
response.go Format all source files. 2025-11-06 22:31:51 +00:00
strings.go Add cell debug page. 2025-11-19 15:21:06 +00:00

Nidus Sync

This is the software that powers Nidus Cloud Sync.

Building from source

First, you'll need Nix.

Then:

nix develop
go build .

Running

> BASE_URL=https://sync.nidus.cloud ARCGIS_CLIENT_ID=foo ARCGIS_CLIENT_SECRET=bar POSTGRES_DSN='postgresql://?host=/var/run/postgresql&dbname=nidus-sync' ./nidus-sync

Hacking

air

This project uses air for fast compile-and-test loops. You can run it with:

> BASE_URL=https://sync.nidus.cloud ARCGIS_CLIENT_ID=foo ARCGIS_CLIENT_SECRET=bar POSTGRES_DSN='postgresql://?host=/var/run/postgresql&dbname=nidus-sync' air

bob

This uses the bob query framework. You can regenerate the models for bob with:

PSQL_DSN="postgresql://dbname?host=/var/run/postgresql&sslmode=disable" go run github.com/stephenafamo/bob/gen/bobgen-psql@latest"
PSQL_DSN="postgresql://?host=/var/run/postgresql&sslmode=disable&dbname=nidus-sync" go run github.com/stephenafamo/bob/gen/bobgen-psql@latest

This will generate a bunch of files. They're already committed, you only need this if you change the database schema in some way.

goose

This uses goose. You can use the goose command line to check status and make changes

> cd migrations
> GOOSE_DRIVER=postgres GOOSE_DBSTRING="dbname=nidus-sync sslmode=disable" goose status
> GOOSE_DRIVER=postgres GOOSE_DBSTRING="dbname=nidus-sync sslmode=disable" goose down
> GOOSE_DRIVER=postgres GOOSE_DBSTRING="dbname=nidus-sync sslmode=disable" goose up