Update Dev Notes

Jon Roeber 2024-01-17 04:26:49 +00:00
parent 8b4830ce3a
commit c7453d5ffe

@ -1,3 +1,33 @@
## 20240116
https://github.com/CrunchyData/pg_featureserv - a lightweight alternative to Geoserver for serving WFS3 (found from https://gis.stackexchange.com/a/379506)
QGIS has very rich PostGIS integration.
Could periodically generate `gpkg` files: https://gis.stackexchange.com/a/365600
This guy in 2013 said to use PostGIS instead of Geoserver: https://gis.stackexchange.com/a/57693
A few WFS caches from 2011: https://gis.stackexchange.com/a/13972 (investigate WFS caching more)
Article on enforcing TLS in PostgreSQL: https://www.percona.com/blog/enabling-and-enforcing-ssl-tls-for-postgresql-connections/
Docs on `pg_hba.conf`: https://www.postgresql.org/docs/current/auth-pg-hba-conf.html - can force clients to use TLS and also optionally use a client certificate
Need to get familiar with PostgreSQL roles and accounts. That will be the primary way to determine if someone has "read meters" "read/modify/add meter metadata" or other tasks. Then create accounts with passwords, or use some other auth system (e.g. LDAP or RADIUS). OAuth2 is basically not supported (there is a Linux-only PAM module abandoned many years ago, https://www.janua.fr/postgres-oauth2-authentication/).
Geoserver *does* support OAuth 2.0, but it looks like maybe only a few providers. Maybe the OIDC 2.0 one works with any provider? https://docs.geoserver.org/latest/en/user/community/oauth2/installing.html
Probably best to start with PostGIS-internal role-based access control (RBAC), directly connected to QGIS.
QGIS can create joins and views directly, but best to have it done elsewhere (either in PostGIS directly from ChirpStack event table or as a microservice that receives events and puts them into a special QGIS-friendly table).
So the choice right now is between creating a microservice or creating a monstrous PostGIS command to create a view. The latter requires parsing JSON, which has a tutorial here: https://www.postgresqltutorial.com/postgresql-tutorial/postgresql-json/
To create a view: https://www.guru99.com/postgresql-view.html
It might be best right now to try to create a view and then connect PostGIS that way. No need for a microservice right now (though later on it's like there will need to be some admin control panel app).
## 20240114
PostGIS setup, PostgreSQL commands, ChirpStack integration