BrewOS

Tekninen järjestelmäkuvaus

BrewOS on PHP/MariaDB-sovellus, jota operoidaan Linux-palvelimilla. Järjestelmän teknisestä suunnittelusta ja kehityksestä vastaa BrewOS.

Ohjelmistokoodissa on hyödynnetty erilaisia avoimen lähdekoodin projekteja niiden määrittelemillä lisenssiehdoilla, kuten:

Lisäksi toteutuksessa on hyödynnetty seuraavia HTML/JavaScript-projekteja ja resursseja:

Teknisen toteutuksen keskeiset piirteet

Ohjelmistoarkkitehtuuri perustuu MVC-malliin.

Ohjelmisto ja sen tietomalli on suunniteltu usean toisistaan erillisen organisaation samanaikaiseen käyttöön. Tiedot tallennetaan jaettuihin tietokantatauluihin, ja jokainen tieto on sidottu siihen tiliin, jolle se kuuluu. Jokaisella pyynnöllä tarkistetaan, että käyttäjällä on rooli kyseisellä tilillä.

Tietokanta hyödyntää laajasti vierasavaimia (foreign key) tietokannan eheyden varmistamiseksi. Lisäksi ohjelmisto suorittaa muokkaukset tietokantatransaktioina, joiden sisällä tapahtuvat virheet peruvat koko muutoksen automaattisesti (rollback).

Kirjautuminen ja istunnot

  • Salasanoja ei tallenneta selväkielisinä, vaan suolattuina tiivisteinä.
  • Käyttäjä voi ottaa käyttöön aikaperusteisen kertakäyttökoodin (TOTP, RFC 6238) kirjautumisen toiseksi tekijäksi. Katso Vahva tunnistautuminen.
  • Istunto säilyy selaimen istuntoevästeessä. Käyttäjä voi valita "muista kirjautuminen", jolloin selaimeen tallennetaan allekirjoitettu kirjautumiseväste, joka on voimassa 14 päivää viimeisestä käytöstä. Salasanan vaihto mitätöi aiemmin annetut kirjautumisevästeet.
  • Salasanan palautus ja käyttäjäkutsut toimivat kertakäyttöisillä sähköpostilinkeillä, jotka vanhenevat 24 tunnissa.
  • Lomakkeissa käytetään kertakäyttöisiä tunnisteita, jotka estävät saman lomakkeen käsittelyn kahteen kertaan.

Tekoälyrajapinta (MCP) ja OAuth

BrewOS tarjoaa Model Context Protocol (MCP) -rajapinnan osoitteessa /mcp. Rajapintaan liitytään OAuth 2.1 -valtuutuksella:

  • palvelin julkaisee OAuth-metatiedot (/.well-known/oauth-authorization-server, /.well-known/oauth-protected-resource) ja tukee dynaamista asiakasrekisteröintiä
  • PKCE (S256) on pakollinen
  • pääsytunniste on voimassa tunnin, ja se uusitaan kierrätettävällä uusintatunnisteella, jonka voimassaolo päättyy viimeistään 60 päivän kuluttua valtuutuksesta
  • tunnisteet tallennetaan tietokantaan vain tiivisteinä
  • valtuutus on sidottu yhteen tiliin ja toimii valtuuttaneen käyttäjän oikeuksilla, jotka tarkistetaan jokaisella kutsulla; valtuutukselle voi myös antaa pelkän lukuoikeuden
  • kutsumäärä on rajoitettu 120 kutsuun minuutissa valtuutusta kohden
  • tietoja muuttavat kutsut kirjataan tilin tapahtumalogiin.

Operointi

Järjestelmä toimii Cloud Cityn kotimaisessa konesalissa.

Varmuuskopiointi perustuu siihen, että pysyvä tieto, myös käyttäjien tallentamat tiedostot, säilytetään tietokannassa. Tietokannasta otetaan automaattisesti varmuuskopio kerran vuorokaudessa.

Ohjelmistokehityksen laatu

Ohjelmistoa ylläpidetään Git-versionhallinnassa.

Ohjelmistolle on kirjoitettu automaattisia yksikkötestejä (PHPUnit).

Sivua viimeksi päivitetty 9.10.2026 17:44