Appinnstillinger
Tema, oversettelser, autentisering og registrering, brukerkontoer, tillatelser og rotasjon av oppføringer — alt som finjusteres i en app, seksjon for seksjon.
Hver app har sine egne innstillinger — temaet tilhører denne appen, kontoene tilhører denne appen, tillatelsene tilhører denne appen. Det er derfor innstillingene reiser med den når du eksporterer den i en pakke (med unntakene som siden «Importere og eksportere apper» går gjennom). Denne siden går gjennom alle seksjonene, med særlig blikk på de seks som brukes mest: tema, oversettelser, autentisering, kontoer, tillatelser og rotasjon av oppføringer.
Åpne innstillingene
- Åpne appen i sidefeltet.
- Øverst i applinjen, klikk på tannhjulknappen Appinnstillinger. Navigasjonstreet viker for innstillingstreet, organisert i grupper.
- Klikk på en seksjon: den åpnes som en fane i arbeidsområdet — som en skjerm eller et skript — med navnet på appen i toppteksten, den aktive seksjonen i et merke ved siden av, og knappene til seksjonen (for eksempel Lagre) alltid øverst til høyre.

Det komplette kartet:
| Gruppe | Seksjon | Hva som defineres |
|---|---|---|
| Applikasjon | Generelt | Identifikasjon, publisering, eksport og sletting — se de to første sidene i dette kapitlet. |
| Applikasjon | Autentisering | Hvordan brukerne logger inn i appen, offentlig registrering og gjenoppretting. |
| Applikasjon | Varsler | Varselkanalene til appen: i appen og e-post (egen SMTP). |
| Applikasjon | Lagring | Hvor filene som brukerne av appen laster opp havner (disken til appen, S3, SFTP, nettverksdeling). |
| Brukere | Brukere av appen | Kontoene til de som bruker den bygde appen. |
| Brukere | Tillatelser | Roller og regler: data, skjermer, menyer og handlinger. |
| Utseende | Tema | Farger, form og typografi i den bygde appen, med forhåndsvisning. |
| Lokalisering | Oversettelser | Språkene i appen og de oversatte setningene, i en matrise. |
| Data | Rotasjon av oppføringer | Hvor mange dager hver type oppføring beholdes før den slettes. |
Merk
Dette er innstillingene til appen — ikke å forveksle med Innstillinger for plattformen (i administrasjonssonen i sidefeltet), som styrer hele installasjonen: bakgrunnsprosesser, varslinger, økter og globale grenser.
Tema
Seksjonen Tema maler den bygde appen — den brukerne dine ser — uten å røre en eneste skjerm. Til venstre ligger fargegruppene; til høyre viser panelet Forhåndsvisning «Eksempel med de nåværende verdiene — oppdateres direkte»: hver farge du endrer dukker opp der i samme øyeblikk.

| Gruppe | Hva den maler |
|---|---|
| Basis | «Bakgrunn og tekst i appen, kanter og fokus.» |
| Flater | «Kort og popovers (menyer, nedtrekkslister, verktøytips).» |
| Farger | «Semantiske farger for komponentene og teksten oppå hver av dem» — primær, sekundær, destruktiv, aksent, dempet. |
| Navigasjon | «Navigasjonslinjene i appen (topp, sider, menyer).» Som standard følger de flatene; endre dem for å legge på din egen merkevare. Topplinjens logoområde har egen bakgrunn (Bakgrunn for logoområdet); som standard er det fargen på linjen. |
Hver farge har en visuell velger og et heksadesimalt felt (#rrggbb) —
skriv eller velg, det er det samme. Nederst i listen definerer Form og
typografi resten:
- Hjørneradius — fra Uten avrunding (0) til Maksimum (1rem), i fem trinn.
- Plassering av meldingene — i hvilket hjørne meldingene (toasts) i appen vises.
- Skrift (sans) — skriftstacken til appen.
For å lagre, Lagre; for å gå tilbake til fargene fra start, Tilbakestill til standard (tilbakestiller i editoren — det blir først endelig når du lagrer). Det lagrede temaet gjelder umiddelbart i den bygde appen, og reiser med den i enhver pakke.
Oversettelser — språkene i appen
Seksjonen Oversettelser er en matrise: én rad per setning, én kolonne per språk. Det er her appen får språk, og her setningene fra skjermene oversettes uten å forlate ett eneste rutenett.

- Opprette en setning: skriv på den siste raden, som alltid står tom og venter («skriv for å opprette…»). Nøkkelen til setningen «(hentes fra setningen)» — det er selve teksten på basisspråket som identifiserer den på skjermene.
- Legge til et språk: klikk på + i overskriften, velg i «velg språk…» og bekreft med Legg til språk. Et nytt språk er en ny kolonne, som fødes tom.
- Bytte basisspråk eller slette et språk: i kolonnemenyen — Gjør til basisspråk og Slett dette språket («Oversettelsene på dette språket forsvinner med det.»).
- Slette en setning: i radmenyen, Slett setning — den forsvinner fra alle språkene når du lagrer.
- Finne det som mangler: søket «Søk på alle språk…» og filteret Ufullstendige viser bare setningene med tomme celler.
På skjermene brukes setningene via teksten: t("Lista de clientes") i en
TypeScript-hendelse gir tilbake oversettelsen på språket til den som
bruker appen. For verdier midt i setningen, skriv dem i krøllparenteser —
«{n} registos» gir «3 registos» — og plattformen varsler (gul celle) når
en oversettelse mister en krøllparentes som originalen har: på det språket
ville verdien ikke vises.
Tips
Å endre teksten i en allerede lagret setning er å endre nøkkelen dens — og plattformen bytter den også på skjermene som bruker den, og sier hvor mange den rørte. Ingenting blir stående og peke på en setning som ikke lenger finnes.
Til slutt, Lagre: «Oversettelsene er lagret og kompilert.»
Den som bruker appen, velger språk i navigasjonens språkvelger (elementet
Språk) eller med en knapp på en skjerm som kaller keplin.i18n.setLocale.
Uten valg åpnes appen på nettleserens eller telefonens språk hvis appen har det,
og ellers på basisspråket.
Autentisering og registrering
Seksjonen Autentisering definerer hvordan man kommer inn i den bygde appen — ikke i plattformen. Det er tre blokker:

Autentiseringsmodus — grunnvalget:
| Modus | Hvordan det virker |
|---|---|
| Brukernavn og passord | «Brukerne av appen logger inn med legitimasjonen som administreres i fanen Brukere.» Alt bor i appen; det er moduset fra start. |
Modusen OAuth / OpenID Connect er ikke tilgjengelig ennå: det eneste valget er innlogging med brukernavn og passord. Når den finnes, vises leverandørens felt (issuer, client, hemmelighet og scopes) i denne seksjonen.
Registrering og gjenoppretting — de offentlige systemskjermene i appen:
- Tillat offentlig registrering: på, «hvem som helst kan opprette en konto på skjermen /register. Er dette av, serveres ikke skjermen.»
- Rolle for nye registreringer: «Rollen som automatisk tildeles den som registrerer seg.» Velg en rolle fra listen i Tillatelser, eller Ingen rolle — men uten rolle kommer kontoen inn og ser verken data eller skjermer.
- Gjenoppretting av passord sender lenken via e-postkanalen definert under Varsler — kanalen må være aktiv og ha komplett SMTP, ellers blir det ingen gjenopprettingse-poster.
Lagre med Lagre («Autentiseringen er lagret.»).
Brukere av appen — kontoene
Seksjonen Brukere av appen administrerer kontoene til de som bruker appen. Advarselen øverst er gyllenregelen: «Disse brukerne tilhører den bygde appen — de logger inn i appen i runtime og har ingen tilgang overhodet til KEPLIN-plattformen.»

Listen viser hver konto med Bruker, Roller og Sist pålogget («har aldri logget inn» når det aldri har vært en pålogging), og den er laget for å svare på spørsmål:
- Søket «Søk på navn, brukernavn eller e-post…» og filtrene på rolle og status finner enhver konto.
- Den ravgule advarselen «… bruker(e) uten noen rolle — de ser verken data eller skjermer» er klikkbar og filtrerer straks fram de kontoene — det er årsak nummer én til at «appen er tom».
- Velg flere kontoer for å handle i bulk: Gi rolle, Fjern rolle, Aktiver, Deaktiver — å gi samme rolle til tolv personer er én operasjon, ikke tolv vinduer.
Opprette eller redigere en konto (knappen Ny bruker, eller Rediger i radmenyen — åpnes som side, aldri som modal):
| Felt | Merknader |
|---|---|
| Brukernavn | Påkrevd. «Bokstaver, tall, punktum, bindestrek, _ og @.» |
| Navn / E-post | Valgfrie; e-posten trengs for gjenoppretting av passord. |
| Passord | Ved opprettelse er det det første passordet — «brukeren kan endre det i appen.» Ved redigering, «fyll bare inn hvis du vil sette et nytt passord.» |
| Aktiv | Er den av, finnes kontoen, men «kommer ikke inn i appen.» |
| Roller | Krysses av per rolle. En ny konto kommer med rollene som «gis som standard» i Tillatelser ferdig avkrysset. |
Å slette en konto (radmenyen → Slett) kan ikke angres — brukeren kommer ikke lenger inn i appen.
Merk
Tillatelsene redigeres ikke på kontoen. De redigeres alltid i rollene, i seksjonen Tillatelser — et unntak lagt på én person er et unntak ingen finner igjen.
Tillatelser
Seksjonen Tillatelser definerer hva hver rolle kan gjøre i appen, langs fire akser: data, skjermer, menyer og handlinger. «Tillatelsene summeres: den som har to roller, får det beste fra begge.»

Listen over Roller viser hver av dem med antall brukere og regler, og merkene «full tilgang» og «standard». Ny rolle oppretter en og åpner straks siden dens, med fem faner:
Generelt — Navn, Beskrivelse og to brytere:
- Full tilgang: «Alt, uten unntak — og det forblir riktig når appen vokser.» Det er administratorrollen i appen; med den på gjelder ikke de andre fanene engang.
- Gis som standard: «Tildeles den som registrerer seg eller opprettes på nytt.»
Data — én rad per tabell-API, med fire avkrysninger — Vis, Opprett, Endre, Slett — og et Omfang som sier hvilke poster man når:
| Omfang | Betydning |
|---|---|
| Alle poster | Ingen radbegrensning. |
| Bare mine | Bare postene der «Feltet som sier hvem posten tilhører» er den påloggede brukeren. |
| Med betingelse… | Bare postene som oppfyller et filter du setter sammen — med faste verdier eller verdier fra økten. En betingelse «ikke lik» eller «ingen av» tar med poster der feltet er tomt. En betingelse på et felt som ikke lenger finnes i modellen, avviser dataene i stedet for å vise alt. |
«Omfanget håndheves på serveren, ved all lesing og skriving — på skjermene, i koden, i rapportene og i arbeidsflytene. Uten en eneste regel ser denne rollen ingenting fra denne API-en.»
Skjermer — for hver skjerm og hver enhet (Web, Nettbrett, Mobil), et nivå: Skjult («vises ikke i menyene, og en rute som skrives inn manuelt blir avvist»), Vis (kun lesing) («åpnes kun for lesing — felt og knapper som skriver er deaktivert») eller Rediger. Snarveiene «vis alle» / «skjul alle» fyller en hel kolonne. «Vis» er en visuell hjelp; det som virkelig stopper skriving er tillatelsene under Data, på serveren.
Menyer — i motsetning til skjermene er en meny synlig som standard: døren er skjermen, og den er allerede lukket. Her skjules resten — en hel gruppe, varselbjellen — per enhet. Fjerner du haken på en gruppe, følger barna med.
Handlinger — verbene som bare finnes i denne appen: godkjenne, lukke,
eksportere. De deklareres i panelet Handlinger i rollelisten (en
Nøkkel som aprovar-despesa og et Navn, knappen Ny handling),
og hver rolle krysser av dem den gir. På skjermene har enhver widget
kategorien «Tilgang» for å kreve en handling; i TypeScript-kode spør du
keplin.session.can("aprovar-despesa").
Alt lagres på én gang med Lagre («Tillatelsene er lagret.»). Å slette en rolle varsler hvor mange brukere som mister den — «den som blir stående uten rolle ser ikke lenger data.»
Lagring
Seksjonen Lagring sier hvor filene som appens brukere laster opp, havner. Det finnes fire typer:
| Type | Hvor filene ligger |
|---|---|
| Appens disk | På appens disk, i en undermappe i lageret dens (uploads som standard). |
| S3 (eller kompatibel) | I en S3- eller kompatibel bucket (MinIO, Wasabi, R2): endpoint, region, bucket, nøkler og et prefiks. |
| SFTP | På en server via SSH, i en basismappe. |
| Nettverksdeling (Samba) | På en Samba-deling som allerede er montert i operativsystemet: monteringspunktet (for eksempel /mnt/docs) og en undermappe. |
En app uten konfigurert lagring får Appens disk av seg selv ved første opplasting. Med flere merker du én med Bruk som standard: dit går opplastingene som ikke velger lagring. Test skriver, leser og sletter en ekte fil før du lagrer.
Undermappen er alltid en enkel relativ sti — mapper skilt med /, uten
.. — og en delings monteringspunkt er alltid en absolutt sti utenfor
plattformens datamappe og programmappen. En konfigurasjon utenfor disse
reglene avvises når du lagrer.
Rotasjon av oppføringer
En app med trafikk skriver historikk uten stans — kall, kjøringer, klikk. Seksjonen Rotasjon av oppføringer bestemmer «hvor mange dager hver type oppføring beholdes før den slettes. Null dager betyr at den beholdes for alltid.»

Det er et rutenett med én rad per type Oppføring og fristen under Behold (feltet viser «Beholdes for alltid» når det står på null):
| Oppføring | Hva det er | Fra start |
|---|---|---|
| Kall til API-ene | «Én rad per GraphQL-forespørsel. Det er dette som vokser raskest i en app med trafikk.» | Beholdes for alltid |
| Kjøringer av skript | «Historikken bak knappen «Kjøringer» i skripteditoren.» | Beholdes for alltid |
| Feil i appene | «Forekomstene bak problemene som Radar viser. Å slette dem får ikke problemet til å forsvinne, bare historikken til det.» | Beholdes for alltid |
| Navigasjon og klikk | «Stort volum og kort verdi: det er til å undersøke det som nettopp skjedde, ikke til historikk.» | 2 dager |
| Tidsplaner | «De planlagte tidspunktene og det som ble stående ugjort. Det som feilet, beholdes dobbelt så lenge.» | 30 dager |
| Instanser av arbeidsflyter | «Bare de som allerede er ferdige. Instanser som fortsatt kjører eller venter på noen, slettes aldri. De som feilet, beholdes dobbelt så lenge.» | Beholdes for alltid |
| Revisjon | «Hvem som gjorde hva. Den deles av alle appene, så den lengste fristen blant dem gjelder alltid.» | Beholdes for alltid |
Oppryddingen kjører i alle versjoner av appen som har oppføringer på disk — arbeidsversjonen og de publiserte — hver med policyen som er lagret i den versjonen.
Lagre setter politikken i verk («Rotasjonen er lagret.») og oppryddingen begynner å kjøre i bakgrunnen, hver dag.
Tips
I en produksjonsapp, sett reelle frister fra første dag — 30 til 90 dager for kallene til API-ene er et sunt utgangspunkt. «Beholdes for alltid» er strålende i utvikling og en diskregning i produksjon.
Grenser å ha i bakhodet
Grensene du støter på i innstillingene og bevegelsene i dette kapitlet:
| Hva | Grense |
|---|---|
| Navnet på appen | 2 til 120 tegn |
| Beskrivelsen av appen | Opptil 500 tegn |
| Brukernavnet til en bruker av appen | 2 til 120 tegn (bokstaver, tall, punktum, bindestrek, _ og @) |
| Passfrase for eksport | Minst 8 tegn |
| Importpakke | Maksimalt 1 GB |
| Rotasjon av oppføringer | 0 til 3650 dager per type (0 = beholdes for alltid) |
De globale grensene — varigheten av øktene og maksimal størrelse på opplastede filer — er ikke per app: de bor i plattformens Innstillinger, i panelet «Økter og grenser», og gjelder for hele installasjonen.