Mask contact data the sharing preferences form withholds
This commit is contained in:
+4
-4
@@ -8,15 +8,15 @@ http://localhost:8080 (override with `PORT`). With `DIRECTORY_SHEET` unset the s
|
||||
|
||||
Sample-mode limits: the map section needs a real Maps JavaScript key (`GOOGLE_MAPS_BROWSER_KEY`) to render tiles, and self-service edits and media uploads need real-data mode — there is no writable backend or blob store behind the sample CSVs.
|
||||
|
||||
`sampledata/` mirrors the production Sheets layout: one directory per app, one CSV per table, first row is the schema, served through the same data-source interface the Sheets backend implements. It stays fictional — real community data never goes here.
|
||||
`sampledata/` mirrors the production Sheets layout: one directory per app, one CSV per table, first row is the schema, served through the same data-source interface the Sheets backend implements. It stays fictional — real community data never goes here. `sampledata/preferences/` is the consent form's response sheet, exercising every combination the loader has to resolve: both permissions, each alone, an opt-out, a superseded submission, and a two-household student whose parents answered differently.
|
||||
|
||||
In sample mode `tools/screenshot` captures pages directly, no session needed (see `docs/screenshots.md`).
|
||||
|
||||
## Real data
|
||||
|
||||
DIRECTORY_SHEET=<spreadsheet id> go run .
|
||||
DIRECTORY_SHEET=<spreadsheet id> PREFERENCES_SHEET=<spreadsheet id> go run .
|
||||
|
||||
serves from the production spreadsheet and media bucket (see `docs/data.md`) and turns on the full stack. The model loads at startup — the server refuses to start if the load fails — and reloads every five minutes. Real data never leaves the process: nothing is written to disk. Requirements:
|
||||
serves from the production spreadsheets and media bucket (see `docs/data.md`) and turns on the full stack. Both ids are required together; the server refuses to start with only one. The model loads at startup — the server refuses to start if the load fails — and reloads every five minutes. Real data never leaves the process: nothing is written to disk. Requirements:
|
||||
|
||||
- **Sign-in** — everything sits behind Google sign-in restricted to the school's Workspace domain (API paths get a 401 instead of the login page). The OAuth web client is read from `creds/oauth-client.json` or `GOOGLE_CLIENT_ID`; its authorized JavaScript origins must include `http://localhost:8080`. The server issues its own HMAC-signed session cookie; set `SESSION_KEY` to keep sessions valid across restarts.
|
||||
- **Data access** — Google credentials come from application-default credentials impersonating the data service account, set up once per machine:
|
||||
@@ -48,7 +48,7 @@ Each runs as `go run ./tools/<name>`. The sheet, drive, and bucket tools authent
|
||||
- `deploy` — apply the full production service configuration (needs `DIRECTORY_SHEET`); see `docs/deploy.md`
|
||||
- `startserver` — launch the app detached, wait for it to listen, print the pid, log path, and a minted session cookie (needs `SESSION_KEY` and `DIRECTORY_SHEET`)
|
||||
- `cookie` — print a signed session cookie for local API testing
|
||||
- `loadcheck` — run the full load pipeline against a sheet and print a model summary
|
||||
- `loadcheck` — run the full load pipeline against the directory and preferences sheets and print a model summary
|
||||
- `columns` — print each directory table's column names from the configured source
|
||||
- `findsheet` — list spreadsheets visible to the service account
|
||||
- `sheets` — dump a sheet's tabs, sizes, and header rows
|
||||
|
||||
Reference in New Issue
Block a user