Opetushallituksen ePerusteet-palvelu tutkintojen ja yleissivistävän koulutuksen opetussuunnitelmien perusteiden laadintaan ja julkaisuun.
https://wiki.eduuni.fi/display/ophpolku/ePerusteet+palvelukokonaisuus
Javalla ja Springillä toteutettu web service (eperusteet-service kansio). Tarjoaa rajapinnan eperusteet-ui:lle ja ulkoisille palveluille. Tallentaa tiedot postgreSQL-kantaan.
Sisältää myös vanhan eperusteet käyttöliittymän (eperusteet-app kansio) mutta tämän on jo korvannut uusi eperusteet-ui.
Asenna haluammallasi tavalla
- Amazon Corretto JDK 11
- Maven 3
- Docker
- luo dev-settingsin mukaiset käyttäjäkohtaisten asetusten tiedostot annettuihin polkuihin ja täytä omilla tiedoilla
Riippuvuuksien takia käännösaikana tarvitaan pääsy sisäiseen pakettien hallintaan, koska osa paketeista (lähinnä build-parent) ei ole julkisissa repoissa.
Ajoaikana riippuu mm. keskitetystä autentikaatiosta (CAS), käyttäjähallinnasta, organisaatiopalvelusta ja koodistosta joihin täytyy olla ajoympäristöstä pääsy.
cd eperusteet/eperusteet-service
mvn clean install
Tietokantamigraatiot on toteutettu flywaylla ja ajetaan automaattisesti kännistyksen yhteydessä. Migraatiotiedostot löytyvät kansioista
eperusteet/eperusteet-service/src/main/resources/db/migration
eperusteet/eperusteet-service/src/main/java/db/migration
Tietokantojen lokaalia pyöritystä varten luo koneellesi esim projektin juureen docker-compose.yml tiedosto jonka sisältö on alla:
version: "3.1"
services:
eperusteet:
image: postgres:12.10
environment:
POSTGRES_USER: oph
POSTGRES_PASSWORD: test
POSTGRES_DB: eperusteet
ports:
- "127.0.0.1:5432:5432"
#volumes:
# - "./eperusteet:/var/lib/postgresql/data"
eperusteet-amosaa:
image: postgres:12.10
environment:
POSTGRES_USER: oph
POSTGRES_PASSWORD: test
POSTGRES_DB: amosaa
ports:
- "127.0.0.1:5433:5432"
#volumes:
# - "./eperusteet:/var/lib/postgresql/data"
eperusteet-ylops:
image: postgres:12.10
environment:
POSTGRES_USER: oph
POSTGRES_PASSWORD: test
POSTGRES_DB: ylops
ports:
- "127.0.0.1:5434:5432"
#volumes:
# - "./eperusteet:/var/lib/postgresql/data"
aja tiedoston kanssa samassa kansiossa komento docker compose up
Tämän jälkeen palvelun saa käyntiin seuraavilla komennoilla:
cd eperusteet/eperusteet-service
mvn spring-boot:run -Dspring-boot.run.profiles=default,dev
Jos muutat tietomallia tai rajapintoja aja tämä (vaatii https://github.com/casey/just):
just gen_openapi
ExternalController-rajapintojen muutoksien jälkeen aja tämä:
just gen_openapi_ext
IDEAssa saattaa olla helpompi avata vain eperusteet-service koko repon juuren sijaan, sillä joillakin on tullut ide:n sekoilua koko repon avauksen tapauksessa.
Git käytäntönä projektissa on suosittu kehityshaaran squashausta päähaaraan mergettäessä.
Testiympäristön rajapintojen swaggerit löytyvät osoitteesta virkailija.testiopintopolku.fi/eperusteet-service/swagger External-rajapintojen swaggerit löytyvät osoitteesta opetushallitus.github.io/eperusteet
Lokit löytyvät AWS:n cloudwatchista
Buildipalveluna käytetään Github Actionsia (build.yml). Pushaaminen remoteen aiheuttaa sen että eperusteet-ui ja eperusteet-service buildataan. Tämän jälkeen luodaan kontti-image OPH:n deploytyökaluja varten.
Projekti | Build status | Maintainability | Test Coverage | Known Vulnerabilities |
---|---|---|---|---|
ePerusteet | ||||
ePerusteet-amosaa | ||||
ePerusteet-ylops | ||||
ePerusteet-ui | ||||
eperusteet-ylops-ui | ||||
ePerusteet-amosaa-ui | ||||
ePerusteet-opintopolku | ||||
ePerusteet-backend-utils | ||||
ePerusteet-frontend-utils | ||||
ePerusteet-pdf | ||||
eperusteet-e2e-smoke-test |