# TODO

## App

- [ ] Display `last_sale_date` attribute from `owners.rds` somewhere in the UI
      so users know how current the ownership data is

## Data

- [ ] Verify SCPA Public.xlsx column structure is stable across downloads
- [ ] Delete app from shinyapps.io (account: rob-wiederstein, appId: 14173710)
- [ ] Add cron job to run `update_owners.R` weekly inside the rstudio container:
      `docker exec rstudio Rscript /home/rstudio/projects/r/stAndrews/data-raw/update_owners.R`
      Note: app must reload `owners.rds` after refresh — either restart container or
      make app reactive to file changes

## Deployment

Everything must be scripted from within the project folder. No manual steps
on the server outside of what the workflow handles.

- [ ] Create Dockerfile (follow veniceProp pattern — `rocker/shiny:4.5.2`)
- [ ] Create docker-compose.yml (bind to `127.0.0.1:<port>:3838`)
- [ ] Create `.gitea/workflows/deploy.yaml` that:
      - Builds the Docker image
      - Runs `docker compose up -d`
      - SSHes into analytics VM and idempotently adds route to gateway Caddyfile
      - Restarts the gateway container
- [ ] Push to Gitea — act_runner handles all future deploys automatically
