docs: durchgaengig ID statt Kennung
In der Oberflaeche hiess das Feld Kennung, in der Konfiguration id, in der README beides. Drei Namen fuer dieselbe Sache, und man muss sie beim Eintragen zusammenbringen — jetzt ueberall ID. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
7c8a4b8c9a
commit
3b7367944b
6 files changed
+12
-12
No files matched your search
@@ -104,7 +104,7 @@ entfällt der Schlüssel und alles funktioniert ohne Einschränkung.
|
||||
|
||||
| Feld | wofür |
|
||||
|---|---|
|
||||
| Kennung | klein, ohne Leerzeichen — muss zu `data-app` der Leiste passen |
|
||||
| ID | klein, ohne Leerzeichen — muss zu `data-app` der Leiste passen |
|
||||
| Name, Untertitel | Beschriftung auf Kachel und Symbol |
|
||||
| Adresse | wohin der Start springt |
|
||||
| Symbol | cloud · note · box · chip · folder · gear · globe · disk |
|
||||
@@ -191,7 +191,7 @@ HTML geschrieben wird, lässt sich hinterher nicht mehr ändern. Und der Service
|
||||
Worker einer PWA hebt ganze Antworten auf, samt Kopfzeilen; eine ins HTML
|
||||
eingefrorene Adresse überlebt dort jede Konfigurationsänderung.
|
||||
|
||||
`data-app` ist die Kennung aus der App-Liste. Die Liste holt sich die Leiste selbst von
|
||||
`data-app` ist die ID aus der App-Liste. Die Liste holt sich die Leiste selbst von
|
||||
`/api/apps` — mit deiner HoneyOS-Sitzung, weil alle Adressen unter derselben Domain liegen.
|
||||
**Freigegeben sind nur die Ursprünge, die selbst als App eingetragen sind**: die App-Liste
|
||||
ist zugleich ihre eigene CORS-Freigabe.
|
||||
@@ -346,7 +346,7 @@ Nicht viel, aber nicht nichts:
|
||||
Einsetzer für beliebig viele Dienste in einem Stapel.** Zwei Tabellen oben in
|
||||
der Datei sagen, welcher Name zu welchem Behälter gehört und welche App das
|
||||
für HoneyOS ist; eine neue App sind zwei Zeilen. Die Leiste hebt die aktuelle
|
||||
App hervor, sobald `$appid` der `id` in der App-Liste entspricht — genau wie
|
||||
App hervor, sobald `$appid` der `ID` in der App-Liste entspricht — genau wie
|
||||
in Aether und InkNote. Am Host erkennt nginx, welcher
|
||||
Dienst gemeint ist; eine neue App sind zwei Zeilen in den Tabellen oben in
|
||||
`leiste.conf`. Das ist der Aufbau, den man haben will, sobald es mehr als ein
|
||||
|
||||
+2
-2
@@ -283,8 +283,8 @@ func TestAppsAnlegenUndPrüfen(t *testing.T) {
|
||||
{"leere Adresse", `[{"id":"x","url":""}]`},
|
||||
{"Adresse ohne Schema", `[{"id":"x","url":"cloud.example.test"}]`},
|
||||
{"javascript:", `[{"id":"x","url":"javascript:alert(1)"}]`},
|
||||
{"Kennung mit Leerzeichen", `[{"id":"mein app","url":"https://a.test"}]`},
|
||||
{"Kennung doppelt", `[{"id":"a","url":"https://a.test"},{"id":"a","url":"https://b.test"}]`},
|
||||
{"ID mit Leerzeichen", `[{"id":"mein app","url":"https://a.test"}]`},
|
||||
{"ID doppelt", `[{"id":"a","url":"https://a.test"},{"id":"a","url":"https://b.test"}]`},
|
||||
}
|
||||
for _, c := range schlecht {
|
||||
if rec := put(c.body); rec.Code != http.StatusBadRequest {
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#
|
||||
# docker compose up -d
|
||||
# → in Pangolin die Ressource auf leiste:80 zeigen lassen,
|
||||
# und in HoneyOS BentoPDF als App eintragen (id: bentopdf, URL: die
|
||||
# und in HoneyOS BentoPDF als App eintragen (ID: bentopdf, URL: die
|
||||
# öffentliche Adresse, exakt so, wie du sie im Browser aufrufst).
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
services:
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
# docker compose up -d
|
||||
#
|
||||
# Danach in Pangolin: honeyos.… → honeyos:8080, jede App → leiste:80.
|
||||
# Und in HoneyOS jede App eintragen — die `id` dort muss dem `$appid` hier
|
||||
# Und in HoneyOS jede App eintragen — die `ID` dort muss dem `$appid` hier
|
||||
# entsprechen, sonst weiß die Leiste nicht, in welcher App man gerade ist.
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
@@ -74,7 +74,7 @@ configs:
|
||||
}
|
||||
|
||||
# ── Und welche App das für HoneyOS ist ────────────────────────────────
|
||||
# Muss der `id` in der App-Liste entsprechen. Daran erkennt die Leiste,
|
||||
# Muss der `ID` in der App-Liste entsprechen. Daran erkennt die Leiste,
|
||||
# wo man gerade ist, und hebt den Eintrag hervor — wie in Aether.
|
||||
map $$host $$appid {
|
||||
default "";
|
||||
|
||||
@@ -121,10 +121,10 @@ func (s *Store) SetApps(apps []App) error {
|
||||
a.TokenKey = strings.TrimSpace(a.TokenKey)
|
||||
|
||||
if !idPattern.MatchString(a.ID) {
|
||||
return fmt.Errorf("App %d: Kennung muss klein geschrieben sein und mit Buchstabe oder Ziffer beginnen", i+1)
|
||||
return fmt.Errorf("App %d: ID muss klein geschrieben sein und mit Buchstabe oder Ziffer beginnen", i+1)
|
||||
}
|
||||
if seen[a.ID] {
|
||||
return fmt.Errorf("Kennung %q kommt doppelt vor", a.ID)
|
||||
return fmt.Errorf("ID %q kommt doppelt vor", a.ID)
|
||||
}
|
||||
seen[a.ID] = true
|
||||
|
||||
|
||||
@@ -1167,7 +1167,7 @@ function openApps() {
|
||||
<span class="ae-url">${escapeHtml(a.url || "")}</span>
|
||||
</summary>
|
||||
<div class="ae-body">
|
||||
<label class="ae-field"><span>Kennung</span>
|
||||
<label class="ae-field"><span>ID</span>
|
||||
<input data-i="${i}" data-f="id" value="${escapeAttr(a.id || "")}" placeholder="aether" spellcheck="false" /></label>
|
||||
<p class="ae-hint">klein, ohne Leerzeichen — muss zu <code>data-app</code> der Leiste passen</p>
|
||||
<label class="ae-field"><span>Name</span>
|
||||
@@ -1355,7 +1355,7 @@ const LOGIN_ERRORS = {
|
||||
abgelaufen: "Der Versuch hat zu lange gedauert. Noch einmal.",
|
||||
state: "Die Antwort passte nicht zur Anfrage. Noch einmal.",
|
||||
kein_code: "Der Anbieter hat keinen Code geschickt.",
|
||||
tausch: "Der Code ließ sich nicht einlösen — Client-Kennung oder Geheimnis prüfen.",
|
||||
tausch: "Der Code ließ sich nicht einlösen — Client-ID oder Geheimnis prüfen.",
|
||||
kein_id_token: "Der Anbieter hat kein ID-Token geschickt.",
|
||||
token: "Das ID-Token war ungültig.",
|
||||
claims: "Das ID-Token nannte keinen Nutzer.",
|
||||
|
||||
Reference in new issue
Block a user