docs: TODO gegen die produktive Instanz abgeglichen
Sechs der elf Migrationen sind laengst gelaufen - der Backend-Deploy hat
alles bis 1754500900 mitgenommen. Die Datei behauptete weiter, es stehe
alles aus, samt eines Symptoms ("Only superusers can perform this action"),
das es so nicht mehr gibt.
Die Tabelle sagt jetzt je Migration, was gelaufen ist und was nicht, und
benennt, welche Funktionen bis zum naechsten Deploy ins Leere laufen.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014dh9W1i7aLSdPYJzQPid5o
This commit is contained in:
parent
fae50d3209
commit
b1594d99c4
1 changed files with 35 additions and 31 deletions
66
TODO.md
66
TODO.md
|
|
@ -1,7 +1,8 @@
|
||||||
# Offene Punkte
|
# Offene Punkte
|
||||||
|
|
||||||
Stand: 2026-09-02. Die fachlichen Entscheidungen sind gefallen und gebaut; was
|
Stand: 2026-09-02, abgeglichen mit der produktiven Instanz. Die fachlichen
|
||||||
hier steht, passiert außerhalb des Repos oder wartet auf den nächsten Deploy.
|
Entscheidungen sind gefallen und gebaut; was hier steht, passiert außerhalb des
|
||||||
|
Repos oder wartet auf den nächsten Deploy.
|
||||||
|
|
||||||
## Vor dem nächsten Deploy
|
## Vor dem nächsten Deploy
|
||||||
|
|
||||||
|
|
@ -15,43 +16,43 @@ Gelesen wird er über `$env/dynamic/public`, das heißt: Die Variable muss in de
|
||||||
In Coolify als normale Umgebungsvariable eintragen genügt. Fehlt sie, laufen die
|
In Coolify als normale Umgebungsvariable eintragen genügt. Fehlt sie, laufen die
|
||||||
Kacheln ohne Schlüssel weiter — die Karte bleibt also sichtbar.
|
Kacheln ohne Schlüssel weiter — die Karte bleibt also sichtbar.
|
||||||
|
|
||||||
### Migrationen greifen beim nächsten Start
|
### Migrationen: sechs gelaufen, fünf offen
|
||||||
|
|
||||||
Elf neue Migrationen liegen in `backend/pb_migrations/`:
|
Abgeglichen mit `api.stammtisch-hersbruck.de` (nur gelesen): Der Backend-Deploy
|
||||||
|
hat alles bis `1754500900` mitgenommen, ab `1754501000` steht es noch aus.
|
||||||
|
|
||||||
| Datei | Was sie tut |
|
| Datei | Was sie tut | Stand |
|
||||||
|---|---|
|
|---|---|---|
|
||||||
| `1754500500_riders_user_and_admin_rules` | `riders.user`, Fahrerpflege nur noch Teamleitung, `users.viewRule`/`createRule` gelockert |
|
| `1754500500_riders_user_and_admin_rules` | `riders.user`, Fahrerpflege nur Teamleitung, `users.viewRule`/`createRule` | gelaufen |
|
||||||
| `1754500600_events_dates_instead_of_status` | `events.status` **raus**, `starts`/`ends` rein |
|
| `1754500600_events_dates_instead_of_status` | `events.status` raus, `starts`/`ends` rein | gelaufen |
|
||||||
| `1754500700_trail_status_meta` | `trails.status_changed`, `trails.status_by` |
|
| `1754500700_trail_status_meta` | `trails.status_changed`, `status_by` | gelaufen |
|
||||||
| `1754500800_trail_markers_custom` | `trail_markers.label`/`icon`, `flag` nicht mehr Pflicht |
|
| `1754500800_trail_markers_custom` | `trail_markers.label`/`icon`, `flag` optional | gelaufen |
|
||||||
| `1754500900_users_superadmin` | `users.superadmin`, gesetzt für stammtisch@dne.name |
|
| `1754500900_users_superadmin` | `users.superadmin` samt Schutz vor Selbstbeförderung | gelaufen |
|
||||||
| `1754501000_teams_logo` | `teams.logo` |
|
| `1754501000_teams_logo` | `teams.logo` | **offen** |
|
||||||
| `1754501100_trails_status_report` | Mitglieder dürfen den Trail-Zustand melden |
|
| `1754501100_trails_status_report` | Mitglieder dürfen den Trail-Zustand melden | **offen** |
|
||||||
| `1754501200_users_list_for_invites` | `users.listRule` gelockert (Kontosuche) |
|
| `1754501200_users_list_for_invites` | `users.listRule` gelockert (Kontosuche) | **offen** |
|
||||||
| `1754501300_event_participants` | neue Collection, **verschiebt Daten**, entfernt `riders.event`/`riders.number` |
|
| `1754501300_event_participants` | neue Collection, **verschiebt Daten**, entfernt `riders.event`/`number` | **offen** |
|
||||||
| `1754501400_events_timing_participation` | `events.timing`/`participation`, Regeln für Selbsteintrag |
|
| `1754501400_events_timing_participation` | `events.timing`/`participation` | **offen** |
|
||||||
| `1754501500_event_series` | neue Collection `event_series`, `events.series` |
|
| `1754501500_event_series` | `event_series`, `events.series` | **offen** |
|
||||||
|
|
||||||
Solange sie nicht gelaufen sind, scheitert alles, was auf den neuen Regeln
|
Bis zum nächsten Deploy laufen deshalb ins Leere: Team-Logo, Zustandsmeldung
|
||||||
aufbaut. Am deutlichsten beim Anlegen eines Mitglieds oder eines Fahrer-Logins:
|
durch Mitglieder, Kontosuche per E-Mail, Teilnehmerlisten, die Event-Schalter
|
||||||
**„Only superusers can perform this action"** — genau das sagt die noch
|
und die Serien. Die Oberfläche dafür ist da und wird beim Speichern eine
|
||||||
unveränderte `users.createRule` (null = nur Superuser).
|
Fehlermeldung von PocketBase zeigen.
|
||||||
|
|
||||||
**Drei Dinge sind nicht zurückzunehmen:**
|
**Zwei Dinge sind beim Nachziehen nicht zurückzunehmen:**
|
||||||
|
|
||||||
1. `events.status` verschwindet samt seiner Werte.
|
1. `1754501300` legt für jeden Fahrer mit Event einen Teilnehmer an und entfernt
|
||||||
2. `1754501300` legt für jeden Fahrer mit Event einen Teilnehmer an und
|
danach `riders.event` und `riders.number`. Eine Startnummer an einem Fahrer
|
||||||
entfernt danach `riders.event` und `riders.number`. Eine Startnummer an
|
**ohne** Event hat danach keinen Platz mehr und geht verloren — sie war
|
||||||
einem Fahrer **ohne** Event hat danach keinen Platz mehr und geht verloren —
|
ohnehin nirgends sichtbar, weil alle Listen nach Event filterten.
|
||||||
sie war ohnehin nirgends sichtbar, weil alle Listen nach Event filterten.
|
2. Bestehende Events werden auf `timing = true` und `participation =
|
||||||
3. Bestehende Events werden auf `timing = true` und `participation =
|
|
||||||
geschlossen` gesetzt. Genau so wurden sie bisher benutzt; wer einen
|
geschlossen` gesetzt. Genau so wurden sie bisher benutzt; wer einen
|
||||||
Stammtisch daraus machen will, schaltet die Zeitnahme im Dialog ab.
|
Stammtisch daraus machen will, schaltet die Zeitnahme im Dialog ab.
|
||||||
|
|
||||||
Ebenfalls neu und bewusst so: Jeder Eingeloggte kann Konten auflisten
|
Ebenfalls bewusst so: Nach `1754501200` kann jeder Eingeloggte Konten
|
||||||
(`users.listRule`), damit sich bestehende Konten wieder per E-Mail ins Team
|
auflisten, damit sich bestehende Konten per E-Mail ins Team holen lassen.
|
||||||
holen lassen. E-Mail-Adressen bleiben über `emailVisibility` verborgen.
|
E-Mail-Adressen bleiben über `emailVisibility` verborgen.
|
||||||
|
|
||||||
### Typen einmal neu erzeugen
|
### Typen einmal neu erzeugen
|
||||||
|
|
||||||
|
|
@ -93,6 +94,9 @@ Deploy unter Einstellungen → Team → Logo hoch.
|
||||||
|
|
||||||
## Kleinigkeiten
|
## Kleinigkeiten
|
||||||
|
|
||||||
|
- Wer Regeln direkt im PocketBase-Admin ändert, hinterlässt keine Spur im Repo.
|
||||||
|
Die Migrationen bleiben die Quelle: Sie setzen dieselben Werte noch einmal und
|
||||||
|
überschreiben eine abweichende Handänderung stillschweigend.
|
||||||
- Die Rolle **Superadmin** ist gesetzt, gibt in der App aber noch keine
|
- Die Rolle **Superadmin** ist gesetzt, gibt in der App aber noch keine
|
||||||
besonderen Rechte. Sie ist bewusst nur in PocketBase vergebbar: Die
|
besonderen Rechte. Sie ist bewusst nur in PocketBase vergebbar: Die
|
||||||
`updateRule` der users-Collection schließt `superadmin` vom Selbstsetzen aus.
|
`updateRule` der users-Collection schließt `superadmin` vom Selbstsetzen aus.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue