Skip to content

Commit

Permalink
myndla-api
Browse files Browse the repository at this point in the history
This patch moves all the myndla related stuff from learningpath-api to
`myndla` and `myndla-api`. Everything is still in learningpath-api while
we migrate the other applications.
  • Loading branch information
jnatten committed Dec 7, 2023
1 parent 33ff9e5 commit 441fe51
Show file tree
Hide file tree
Showing 136 changed files with 7,577 additions and 3,853 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/integration-tests_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ on:
paths:
- integration-tests/**
- project/integrationtests*.scala
- validation/**
- project/validation*.scala
- scalatestsuite/**
- project/scalatestsuite*.scala
- article-api/**
Expand All @@ -24,6 +26,8 @@ on:
paths:
- integration-tests/**
- project/integrationtests*.scala
- validation/**
- project/validation*.scala
- scalatestsuite/**
- project/scalatestsuite*.scala
- article-api/**
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/language_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
- uses: actions/setup-java@v3
with:
distribution: temurin
java-version: '17'
java-version: '20'
- name: Login to ECR repo
run: RES=$(aws sts assume-role --role-arn $CI_RELEASE_ROLE --role-session-name
github-actions-ecr-login) AWS_ACCESS_KEY_ID=$(echo $RES | jq -r .Credentials.AccessKeyId)
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/learningpath-api_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ on:
- project/common*.scala
- search/**
- project/search*.scala
- myndla/**
- project/myndla*.scala
- scalatestsuite/**
- project/scalatestsuite*.scala
- project/Dependencies.scala
Expand All @@ -36,6 +38,8 @@ on:
- project/common*.scala
- search/**
- project/search*.scala
- myndla/**
- project/myndla*.scala
- scalatestsuite/**
- project/scalatestsuite*.scala
- project/Dependencies.scala
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/learningpath-api_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ on:
- project/common*.scala
- search/**
- project/search*.scala
- myndla/**
- project/myndla*.scala
- scalatestsuite/**
- project/scalatestsuite*.scala
- project/Dependencies.scala
Expand Down
75 changes: 75 additions & 0 deletions .github/workflows/myndla-api_ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# AUTOGENERATED BY: project/GithubWorkflowPlugin.scala (sbt `ghGenerate`)
# DO NOT EDIT MANUALLY.
name: 'CI: myndla-api'
on:
workflow_dispatch:
inputs: { }
push:
paths:
- myndla-api/**
- project/myndlaapi*.scala
- network/**
- project/network*.scala
- mapping/**
- project/mapping*.scala
- language/**
- project/language*.scala
- common/**
- project/common*.scala
- myndla/**
- project/myndla*.scala
- scalatestsuite/**
- project/scalatestsuite*.scala
- project/Dependencies.scala
- project/Module.scala
pull_request:
paths:
- myndla-api/**
- project/myndlaapi*.scala
- network/**
- project/network*.scala
- mapping/**
- project/mapping*.scala
- language/**
- project/language*.scala
- common/**
- project/common*.scala
- myndla/**
- project/myndla*.scala
- scalatestsuite/**
- project/scalatestsuite*.scala
- project/Dependencies.scala
- project/Module.scala
env:
AWS_ACCESS_KEY_ID: ${{ secrets.CI_AWS_CLIENT_ID }}
AWS_DEFAULT_REGION: eu-west-1
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_AWS_CLIENT_SECRET }}
NDLA_AWS_ECR_REPO: ${{ secrets.NDLA_AWS_ECR_REPO }}
CI_RELEASE_ROLE: ${{ secrets.CI_RELEASE_ROLE }}
CI_GITHUB_TOKEN: ${{ secrets.CI_GITHUB_TOKEN }}
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
NDLA_RELEASES: ${{ secrets.NDLA_RELEASES }}
COMPONENT: myndla-api
jobs:
unit_tests:
name: Unit tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: coursier/cache-action@v6
- uses: actions/setup-java@v3
with:
distribution: temurin
java-version: '20'
- name: Login to ECR repo
run: RES=$(aws sts assume-role --role-arn $CI_RELEASE_ROLE --role-session-name
github-actions-ecr-login) AWS_ACCESS_KEY_ID=$(echo $RES | jq -r .Credentials.AccessKeyId)
AWS_SECRET_ACCESS_KEY=$(echo $RES | jq -r .Credentials.SecretAccessKey) AWS_SESSION_TOKEN=$(echo
$RES | jq -r .Credentials.SessionToken) aws ecr get-login-password --region
eu-central-1 | docker login --username AWS --password-stdin $NDLA_AWS_ECR_REPO
- name: Login to dockerhub
run: echo $DOCKER_HUB_PASSWORD | docker login --username $DOCKER_HUB_USERNAME
--password-stdin
- name: Unit tests
run: sbt myndla-api/test
126 changes: 126 additions & 0 deletions .github/workflows/myndla-api_release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
# AUTOGENERATED BY: project/GithubWorkflowPlugin.scala (sbt `ghGenerate`)
# DO NOT EDIT MANUALLY.
name: 'Release: myndla-api'
on:
workflow_dispatch:
inputs: { }
push:
branches:
- master
paths:
- myndla-api/**
- project/myndlaapi*.scala
- network/**
- project/network*.scala
- mapping/**
- project/mapping*.scala
- language/**
- project/language*.scala
- common/**
- project/common*.scala
- myndla/**
- project/myndla*.scala
- scalatestsuite/**
- project/scalatestsuite*.scala
- project/Dependencies.scala
- project/Module.scala
env:
AWS_ACCESS_KEY_ID: ${{ secrets.CI_AWS_CLIENT_ID }}
AWS_DEFAULT_REGION: eu-west-1
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_AWS_CLIENT_SECRET }}
NDLA_AWS_ECR_REPO: ${{ secrets.NDLA_AWS_ECR_REPO }}
CI_RELEASE_ROLE: ${{ secrets.CI_RELEASE_ROLE }}
CI_GITHUB_TOKEN: ${{ secrets.CI_GITHUB_TOKEN }}
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
NDLA_RELEASES: ${{ secrets.NDLA_RELEASES }}
NDLA_ENVIRONMENT: local
NDLA_HOME: ${{ github.workspace }}/ndla
NDLA_DEPLOY: ${{ github.workspace }}/ndla/deploy
COMPONENT: myndla-api
GPG_KEY: ${{ secrets.DEPLOY_BLACKBOX_GPG_KEY_B64 }}
jobs:
release:
name: Release and push to registry
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
path: ndla/${{ github.event.repository.name }}
- uses: actions/checkout@v4
with:
repository: NDLANO/deploy
token: ${{ secrets.CI_GITHUB_TOKEN }}
path: ndla/deploy
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- uses: abatilo/actions-poetry@v2
with:
poetry-version: "1.6.1"
- uses: actions/setup-java@v3
with:
distribution: temurin
java-version: '20'
- name: Setup ~/bin directory
run: |
mkdir -p /home/runner/bin
echo "/home/runner/bin" >> $GITHUB_PATH
- name: Login to ECR repo
run: RES=$(aws sts assume-role --role-arn $CI_RELEASE_ROLE --role-session-name
github-actions-ecr-login) AWS_ACCESS_KEY_ID=$(echo $RES | jq -r .Credentials.AccessKeyId)
AWS_SECRET_ACCESS_KEY=$(echo $RES | jq -r .Credentials.SecretAccessKey) AWS_SESSION_TOKEN=$(echo
$RES | jq -r .Credentials.SessionToken) aws ecr get-login-password --region
eu-central-1 | docker login --username AWS --password-stdin $NDLA_AWS_ECR_REPO
- name: Login to dockerhub
run: echo $DOCKER_HUB_PASSWORD | docker login --username $DOCKER_HUB_USERNAME
--password-stdin
- name: Cache pip
uses: actions/cache@v3
with:
path: ndla/deploy/.venv
key: ${{ runner.os }}-pip-${{ hashFiles('ndla/deploy/poetry.lock')
}}
restore-keys: |
${{ runner.os }}-pip-
${{ runner.os }}-
- name: Install python dependencies
run: |
# Setup the virtualenv in the repo to make caching of dependencies easier
poetry config virtualenvs.create true --local
poetry config virtualenvs.in-project true --local
# Install the deps!
poetry --directory $NDLA_DEPLOY install
- name: Download blackbox
uses: actions/checkout@v3
with:
repository: StackExchange/blackbox
path: blackbox
- name: Install Blackbox and key
run: |
# Move binaries to path
sudo mv blackbox/bin/* /home/runner/bin/
echo -n "$GPG_KEY" | base64 --decode | gpg --import
- name: Install kubectl
run: |
curl -L https://storage.googleapis.com/kubernetes-release/release/v1.21.11/bin/linux/amd64/kubectl > kubectl
sudo mv kubectl /home/runner/bin/kubectl
sudo chmod +x /home/runner/bin/kubectl
mkdir -p ~/.kube
- name: Install aws-iam-authenticator
run: |
sudo curl -L https://amazon-eks.s3-us-west-2.amazonaws.com/1.12.7/2019-03-27/bin/linux/amd64/aws-iam-authenticator > aws-iam-authenticator
sudo mv aws-iam-authenticator /home/runner/bin/aws-iam-authenticator
sudo chmod +x /home/runner/bin/aws-iam-authenticator
- name: Install helm /w push-plugin
run: |
curl -L https://get.helm.sh/helm-v3.11.3-linux-amd64.tar.gz > /tmp/helm.tar.gz
tar xvzf /tmp/helm.tar.gz -C /tmp/
sudo mv /tmp/linux-amd64/helm /home/runner/bin/
sudo chmod +x /home/runner/bin/helm
- name: Build kubernetes config
run: poetry -C $NDLA_DEPLOY run ndla env kubeconfig test
- name: Do release
shell: bash
run: poetry -C $NDLA_DEPLOY run ndla release $COMPONENT --update-chart
63 changes: 63 additions & 0 deletions .github/workflows/myndla_ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# AUTOGENERATED BY: project/GithubWorkflowPlugin.scala (sbt `ghGenerate`)
# DO NOT EDIT MANUALLY.
name: 'CI: myndla'
on:
workflow_dispatch:
inputs: { }
push:
paths:
- myndla/**
- project/myndla*.scala
- common/**
- project/common*.scala
- network/**
- project/network*.scala
- scalatestsuite/**
- project/scalatestsuite*.scala
- project/Dependencies.scala
- project/Module.scala
pull_request:
paths:
- myndla/**
- project/myndla*.scala
- common/**
- project/common*.scala
- network/**
- project/network*.scala
- scalatestsuite/**
- project/scalatestsuite*.scala
- project/Dependencies.scala
- project/Module.scala
env:
AWS_ACCESS_KEY_ID: ${{ secrets.CI_AWS_CLIENT_ID }}
AWS_DEFAULT_REGION: eu-west-1
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_AWS_CLIENT_SECRET }}
NDLA_AWS_ECR_REPO: ${{ secrets.NDLA_AWS_ECR_REPO }}
CI_RELEASE_ROLE: ${{ secrets.CI_RELEASE_ROLE }}
CI_GITHUB_TOKEN: ${{ secrets.CI_GITHUB_TOKEN }}
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
NDLA_RELEASES: ${{ secrets.NDLA_RELEASES }}
COMPONENT: myndla
jobs:
unit_tests:
name: Unit tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: coursier/cache-action@v6
- uses: actions/setup-java@v3
with:
distribution: temurin
java-version: '20'
- name: Login to ECR repo
run: RES=$(aws sts assume-role --role-arn $CI_RELEASE_ROLE --role-session-name
github-actions-ecr-login) AWS_ACCESS_KEY_ID=$(echo $RES | jq -r .Credentials.AccessKeyId)
AWS_SECRET_ACCESS_KEY=$(echo $RES | jq -r .Credentials.SecretAccessKey) AWS_SESSION_TOKEN=$(echo
$RES | jq -r .Credentials.SessionToken) aws ecr get-login-password --region
eu-central-1 | docker login --username AWS --password-stdin $NDLA_AWS_ECR_REPO
- name: Login to dockerhub
run: echo $DOCKER_HUB_PASSWORD | docker login --username $DOCKER_HUB_USERNAME
--password-stdin
- name: Unit tests
run: sbt myndla/test
2 changes: 1 addition & 1 deletion .github/workflows/search_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
- uses: actions/setup-java@v3
with:
distribution: temurin
java-version: '17'
java-version: '20'
- name: Login to ECR repo
run: RES=$(aws sts assume-role --role-arn $CI_RELEASE_ROLE --role-session-name
github-actions-ecr-login) AWS_ACCESS_KEY_ID=$(echo $RES | jq -r .Credentials.AccessKeyId)
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/validation_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
- uses: actions/setup-java@v3
with:
distribution: temurin
java-version: '17'
java-version: '20'
- name: Login to ECR repo
run: RES=$(aws sts assume-role --role-arn $CI_RELEASE_ROLE --role-session-name
github-actions-ecr-login) AWS_ACCESS_KEY_ID=$(echo $RES | jq -r .Credentials.AccessKeyId)
Expand Down
5 changes: 2 additions & 3 deletions article-api/src/main/scala/no/ndla/articleapi/Main.scala
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,10 @@

package no.ndla.articleapi

import cats.effect.{ExitCode, IO, IOApp}
import no.ndla.common.Environment.setPropsFromEnv

object Main extends IOApp {
def run(args: List[String]): IO[ExitCode] = {
object Main {
def main(args: Array[String]): Unit = {
setPropsFromEnv()
val props = new ArticleApiProperties
val mainClass = new MainClass(props)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,6 @@ class MainClass(override val props: ArticleApiProperties) extends NdlaTapirMain[
logger.info(s"Done db migration, took ${System.currentTimeMillis() - startDBMillis}ms")
}

override def startServer(name: String, port: Int)(warmupFunc: => Unit): IO[Unit] =
override def startServer(name: String, port: Int)(warmupFunc: => Unit): Unit =
componentRegistry.Routes.startJdkServer(name, port)(warmupFunc)
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,17 @@ package no.ndla.articleapi.controller

import cats.implicits._
import io.circe.generic.auto._
import no.ndla.articleapi.{Eff, Props}
import no.ndla.articleapi.model.api
import no.ndla.articleapi.model.api._
import no.ndla.articleapi.model.domain.{DynamicHeaders, Sort}
import no.ndla.articleapi.service.search.{ArticleSearchService, SearchConverterService}
import no.ndla.articleapi.service.{ConverterService, ReadService, WriteService}
import no.ndla.articleapi.validation.ContentValidator
import no.ndla.articleapi.{Eff, Props}
import no.ndla.common.ContentURIUtil.parseArticleIdAndRevision
import no.ndla.language.Language.AllLanguages
import no.ndla.network.tapir.NoNullJsonPrinter.jsonBody
import no.ndla.network.tapir.Parameters.feideHeader
import no.ndla.network.tapir.Service
import no.ndla.network.tapir.TapirErrors.errorOutputsFor
import sttp.tapir.EndpointIO.annotations.{header, jsonbody}
Expand Down Expand Up @@ -97,11 +98,6 @@ trait ArticleControllerV2 {
)
.default(Delimited[",", String](List.empty))

private val feideHeader = sttp.tapir
.header[Option[String]]("FeideAuthorization")
.description("Header containing FEIDE access token.")
.mapDecode(mbHeader => DecodeResult.Value(mbHeader.map(_.replaceFirst("Bearer ", ""))))(x => x)

private case class SummaryWithHeader(
@jsonbody
body: SearchResultV2,
Expand Down
Loading

0 comments on commit 441fe51

Please sign in to comment.